(MESS) Cleanup. (nw)

This commit is contained in:
Curt Coder 2013-08-08 14:58:22 +00:00
parent 24dfc80a3f
commit e2d32cf032
11 changed files with 186 additions and 136 deletions

View File

@ -666,18 +666,10 @@ ADDRESS_MAP_END
INPUT_PORTS_START( bullet )
PORT_START("SW1")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:1" )
PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:2" )
PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" )
PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:4" )
PORT_DIPNAME( 0xf0, 0x50, "Floppy Type" ) PORT_DIPLOCATION("SW1:5,6,7,8")
PORT_DIPSETTING( 0xf0, "5.25\" SD" )
PORT_DIPSETTING( 0x50, "5.25\" DD" )
@ -695,12 +687,8 @@ INPUT_PORTS_START( bulletf )
PORT_DIPNAME( 0x01, 0x01, "SCSI Bus Termination" ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:2" )
PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" )
PORT_DIPNAME( 0x08, 0x08, "Boot ROM Device" ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x00, "Onboard" )
PORT_DIPSETTING( 0x08, "EPROM" )
@ -742,10 +730,10 @@ WRITE_LINE_MEMBER( bullet_state::dart_rxtxca_w )
static Z80CTC_INTERFACE( ctc_intf )
{
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0), // interrupt handler
DEVCB_DRIVER_LINE_MEMBER(bullet_state, dart_rxtxca_w), // ZC/TO0 callback
DEVCB_DEVICE_LINE_MEMBER(Z80DART_TAG, z80dart_device, rxtxcb_w), // ZC/TO1 callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF, z80ctc_device, trg3) // ZC/TO2 callback
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_DRIVER_LINE_MEMBER(bullet_state, dart_rxtxca_w),
DEVCB_DEVICE_LINE_MEMBER(Z80DART_TAG, z80dart_device, rxtxcb_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF, z80ctc_device, trg3)
};
@ -849,17 +837,14 @@ WRITE8_MEMBER( bullet_state::dma_mreq_w )
READ8_MEMBER(bullet_state::io_read_byte)
{
address_space& prog_space = m_maincpu->space(AS_IO);
return prog_space.read_byte(offset);
return m_maincpu->space(AS_IO).read_byte(offset);
}
WRITE8_MEMBER(bullet_state::io_write_byte)
{
address_space& prog_space = m_maincpu->space(AS_IO);
return prog_space.write_byte(offset, data);
m_maincpu->space(AS_IO).write_byte(offset, data);
}
static Z80DMA_INTERFACE( dma_intf )
{
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_HALT),
@ -882,7 +867,7 @@ void bulletf_state::update_dma_rdy()
if (BIT(m_xdma0, 0))
{
rdy = m_wack | m_wrdy;
rdy = m_wack || m_wrdy;
}
else
{
@ -937,16 +922,10 @@ READ8_MEMBER( bullet_state::pio_pb_r )
UINT8 data = 0;
// centronics busy
// centronics
data |= m_centronics->busy_r();
// centronics paper end
data |= m_centronics->pe_r() << 1;
// centronics selected
data |= m_centronics->vcc_r() << 2;
// centronics fault
data |= m_centronics->fault_r() << 3;
return data;

View File

@ -100,4 +100,4 @@ ROM_START( c900 )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1985, c900, 0, 0, c900, c900, driver_device, 0, "Commodore", "Commodore 900", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1985, c900, 0, 0, c900, c900, driver_device, 0, "Commodore", "Commodore 900", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND)

View File

@ -21,7 +21,6 @@
TODO:
- fix direct update handler to make system work again
- display interface INH
- 2 segment display
- single step
@ -45,6 +44,42 @@ enum
/* Read/Write Handlers */
READ8_MEMBER( cosmicos_state::read )
{
if (m_boot) offset |= 0xc0c0;
UINT8 data = 0;
if (offset < 0xc000)
{
// TODO
}
else if (offset < 0xd000)
{
data = m_rom->base()[offset & 0xfff];
}
else if (!m_ram_disable && (offset >= 0xff00))
{
data = m_ram->pointer()[offset & 0xff];
}
return data;
}
WRITE8_MEMBER( cosmicos_state::write )
{
if (m_boot) offset |= 0xc0c0;
if (offset < 0xc000)
{
// TODO
}
else if (!m_ram_disable && !m_ram_protect && (offset >= 0xff00))
{
m_ram->pointer()[offset & 0xff] = data;
}
}
READ8_MEMBER( cosmicos_state::video_off_r )
{
UINT8 data = 0;
@ -138,9 +173,7 @@ WRITE8_MEMBER( cosmicos_state::display_w )
/* Memory Maps */
static ADDRESS_MAP_START( cosmicos_mem, AS_PROGRAM, 8, cosmicos_state )
AM_RANGE(0x0000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xcfff) AM_ROM AM_REGION(CDP1802_TAG, 0)
AM_RANGE(0xff00, 0xffff) AM_RAM
AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cosmicos_io, AS_IO, 8, cosmicos_state )
@ -249,40 +282,14 @@ INPUT_CHANGED_MEMBER( cosmicos_state::clear_data )
clear_input_data();
}
void cosmicos_state::set_ram_mode()
{
address_space &program = m_maincpu->space(AS_PROGRAM);
UINT8 *ram = m_ram->pointer();
if (m_ram_disable)
{
program.unmap_readwrite(0xff00, 0xffff);
}
else
{
if (m_ram_protect)
{
program.install_rom(0xff00, 0xffff, ram);
}
else
{
program.install_ram(0xff00, 0xffff, ram);
}
}
}
INPUT_CHANGED_MEMBER( cosmicos_state::memory_protect )
{
m_ram_protect = newval;
set_ram_mode();
}
INPUT_CHANGED_MEMBER( cosmicos_state::memory_disable )
{
m_ram_disable = newval;
set_ram_mode();
}
static INPUT_PORTS_START( cosmicos )
@ -463,25 +470,9 @@ static COSMAC_INTERFACE( cosmicos_config )
void cosmicos_state::machine_start()
{
address_space &program = m_maincpu->space(AS_PROGRAM);
/* initialize LED display */
m_led->rbi_w(1);
/* setup memory banking */
switch (m_ram->size())
{
case 256:
program.unmap_readwrite(0x0000, 0xbfff);
break;
case 4*1024:
program.unmap_readwrite(0x1000, 0xbfff);
break;
}
set_ram_mode();
// find keyboard rows
m_key_row[0] = m_y1;
m_key_row[1] = m_y2;
@ -592,22 +583,5 @@ ROM_END
/* System Drivers */
DIRECT_UPDATE_MEMBER(cosmicos_state::cosmicos_direct_update_handler)
{
if (m_boot)
{
/* force A6 and A7 high */
direct.explicit_configure(0x0000, 0xffff, 0x3f3f, m_rom->base() + 0xc0);
return ~0;
}
return address;
}
DRIVER_INIT_MEMBER(cosmicos_state,cosmicos)
{
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(cosmicos_state::cosmicos_direct_update_handler), this));
}
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1979, cosmicos, 0, 0, cosmicos, cosmicos, cosmicos_state, cosmicos, "Radio Bulletin", "Cosmicos", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
COMP( 1979, cosmicos, 0, 0, cosmicos, cosmicos, driver_device, 0, "Radio Bulletin", "Cosmicos", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )

View File

@ -164,4 +164,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1983, d6809, 0, 0, d6809, d6809, driver_device, 0, "Dunfield", "6809 Portable", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
COMP( 1983, d6809, 0, 0, d6809, d6809, driver_device, 0, "Dunfield", "6809 Portable", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND_HW)

View File

@ -109,4 +109,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( ????, konin, 0, 0, konin, konin, driver_device, 0, "Mera-Elzab", "Konin", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 198?, konin, 0, 0, konin, konin, driver_device, 0, "Mera-Elzab", "Konin", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND)

View File

@ -35,7 +35,7 @@
- pc8201 NEC PC-8241A video interface (TMS9918, 16K videoRAM, 8K ROM)
- pc8201 NEC PC-8233 floppy controller
- pc8201 NEC floppy disc drives (PC-8031-1W, PC-8031-2W, PC-80S31)
- trsm100 Tandy Portable Disk Drive (TPDD: 100k 3?", TPDD2: 200k 3?") (undumped HD63A01V1 MCU + full custom uPD65002, serial comms via the missing IM6042, not going to happen anytime soon)
- trsm100 Tandy Portable Disk Drive (TPDD: 100k 3?", TPDD2: 200k 3?") (undumped HD63A01V1 MCU + full custom uPD65002, serial comms via IM6042)
- trsm100 Chipmunk disk drive (384k 3?") (full custom logic, not going to happen)
- trsm100 RS232/modem select
- tandy200 RTC alarm
@ -162,7 +162,7 @@ WRITE8_MEMBER( pc8201_state::bank_w )
7
*/
printf("bank %02x\n",data);
bankswitch(data);
}
@ -734,6 +734,60 @@ static INPUT_PORTS_START( kc85 )
PORT_CONFSETTING( 0x00, "Low Battery" )
INPUT_PORTS_END
static INPUT_PORTS_START( pc8201 )
PORT_INCLUDE( kc85 )
PORT_MODIFY("Y3")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') PORT_CHAR('|')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('^')
PORT_MODIFY("Y4")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
PORT_MODIFY("Y5")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAST INS") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RALT) PORT_CHAR('[') PORT_CHAR('{')
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_')
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_MODIFY("Y6")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92|") PORT_CODE(KEYCODE_TAB)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL BKSP") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_MODIFY("Y7")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_MODIFY("Y8")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( pc8201a )
PORT_INCLUDE( kc85 )
@ -1403,6 +1457,12 @@ static MACHINE_CONFIG_START( pc8201, pc8201_state )
MCFG_RAM_EXTRA_OPTIONS("32K,64K,96K")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pc8300, pc8201 )
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("32K")
MCFG_RAM_EXTRA_OPTIONS("64K,96K")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( trsm100, trsm100_state )
/* basic machine hardware */
MCFG_CPU_ADD(I8085_TAG, I8085A, XTAL_4_9152MHz)
@ -1536,7 +1596,6 @@ ROM_START( npc8300 )
ROM_CART_LOAD("cart2", 0x0000, 0x20000, ROM_MIRROR | ROM_OPTIONAL)
ROM_END
ROM_START( trsm100 )
/*
Board Code ROM type ROM Code Comment
@ -1583,13 +1642,14 @@ ROM_START( tandy200 )
ROM_END
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
COMP( 1983, kc85, 0, 0, kc85, kc85, driver_device, 0, "Kyosei", "Kyotronic 85 (Japan)", 0 )
COMP( 1983, m10, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10", 0 )
//COMP( 1983, m10m, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10 Modem (US)", 0 )
COMP( 1983, trsm100, 0, 0, trsm100, kc85, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 100", 0 )
COMP( 1986, tandy102, trsm100,0, tandy102, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 102", 0 )
COMP( 1983, pc8201, 0, 0, pc8201, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8201 (Japan)", GAME_NOT_WORKING ) // keyboard layout wrong
COMP( 1983, pc8201a, pc8201, 0, pc8201, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8201A", 0 )
COMP( 1987, npc8300, pc8201, 0, pc8201, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8300", GAME_NOT_WORKING )
COMP( 1984, tandy200, 0, 0, tandy200, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 200", 0 )
COMP( 1983, kc85, 0, 0, kc85, kc85, driver_device, 0, "Kyosei", "Kyotronic 85 (Japan)", 0 )
COMP( 1983, m10, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10", 0 )
//COMP( 1983, m10m, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10 Modem (US)", 0 )
COMP( 1983, trsm100, 0, 0, trsm100, kc85, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 100", 0 )
COMP( 1986, tandy102, trsm100,0, tandy102, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 102", 0 )
COMP( 1983, pc8201, 0, 0, pc8201, pc8201, driver_device, 0, "Nippon Electronic Company", "PC-8201 (Japan)", GAME_NOT_WORKING ) // keyboard layout wrong
COMP( 1983, pc8201a, pc8201, 0, pc8201, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8201A", 0 )
COMP( 1987, npc8300, pc8201, 0, pc8300, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8300", GAME_NOT_WORKING )
COMP( 1984, tandy200, 0, 0, tandy200, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 200", 0 )

View File

@ -57,4 +57,4 @@ ROM_START( microkit )
ROM_LOAD( "4.2a", 0x100, 0x100, CRC(27267bad) SHA1(838df9be2dc175584a1a6ee1770039118e49482e) )
ROM_END
COMP( 1975, microkit, 0, 0, microkit, microkit, driver_device, 0, "RCA", "COSMAC Microkit", GAME_NOT_WORKING | GAME_NO_SOUND )
COMP( 1975, microkit, 0, 0, microkit, microkit, driver_device, 0, "RCA", "COSMAC Microkit", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )

View File

@ -10,7 +10,7 @@
TODO:
- floppy broken
- CP/M won't load prompt (z80dma_do_operation: invalid mode 0 when reading track 0)
- keyboard CPU ROM
- graphics board
- Tandy 6000 HD
@ -141,9 +141,6 @@ WRITE8_MEMBER( trs80m2_state::drvslt_w )
{
// side select
m_floppy->ss_w(!BIT(data, 6));
// motor
m_floppy->mon_w(0);
}
// FM/MFM
@ -843,8 +840,8 @@ static MACHINE_CONFIG_START( trs80m2, trs80m2_state )
// internal RAM
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("32K")
MCFG_RAM_EXTRA_OPTIONS("64K,96K,128K,160K,192K,224K,256K,288K,320K,352K,384K,416K,448K,480K,512K")
MCFG_RAM_DEFAULT_SIZE("64K")
MCFG_RAM_EXTRA_OPTIONS("32K,96K,128K,160K,192K,224K,256K,288K,320K,352K,384K,416K,448K,480K,512K")
// software list
MCFG_SOFTWARE_LIST_ADD("flop_list", "trs80m2")
@ -884,7 +881,7 @@ static MACHINE_CONFIG_START( trs80m16, trs80m16_state )
MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_8MHz/2, pio_intf)
MCFG_Z80SIO0_ADD(Z80SIO_TAG, XTAL_8MHz/2, sio_intf)
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":0", trs80m2_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":0", trs80m2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":1", trs80m2_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":2", trs80m2_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":3", trs80m2_floppies, NULL, floppy_image_device::default_floppy_formats)
@ -977,8 +974,8 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
COMP( 1979, trs80m2, 0, 0, trs80m2, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model II", GAME_NO_SOUND_HW | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD )
COMP( 1982, trs80m16, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16", GAME_NO_SOUND_HW | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD )
//COMP( 1983, trs80m12, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 12", GAME_NO_SOUND_HW | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD )
//COMP( 1984, trs80m16b,trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16B", GAME_NO_SOUND_HW | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD )
//COMP( 1985, tandy6k, trs80m2, 0, tandy6k, trs80m2, driver_device, 0, "Tandy Radio Shack", "Tandy 6000 HD", GAME_NO_SOUND_HW | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD )
COMP( 1979, trs80m2, 0, 0, trs80m2, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model II", GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
COMP( 1982, trs80m16, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
//COMP( 1983, trs80m12, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 12", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
//COMP( 1984, trs80m16b,trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16B", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
//COMP( 1985, tandy6k, trs80m2, 0, tandy6k, trs80m2, driver_device, 0, "Tandy Radio Shack", "Tandy 6000 HD", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )

View File

@ -91,18 +91,51 @@ Notes:
*/
/*
Using the hard disk
-------------------
Use the chdman utility to create a Tandon TM501 (5MB) or CMI CM-5412 (10MB) hard disk image:
$ chdman createhd -chs 306,2,32 -ss 256 -o tm501.chd
$ chdman createhd -chs 306,4,32 -ss 256 -o cm5412.chd
Start the Visual 1050 emulator with the floppy and hard disk images mounted:
$ mess v1050 -flop1 cpm3:flop2 -hard cm5412.chd
Start the Winchester Format Program from the CP/M prompt:
A>fmtwinch
Enter Y to continue.
Ener A for 5MB, or B for 10MB hard disk.
Enter C to start formatting.
Once the formatting is complete, the CP/M system files need to be copied over to the hard disk:
A>copysys
Enter source drive name "a" and press RETURN.
Enter target drive name "c" and press RETURN.
Enter "y" at the prompt for CPM3.SYS.
Enter "y" at the prompt for CCP.COM.
Press RETURN to return to CP/M.
The hard disk can now be booted from with the following command line:
$ mess v1050 -hard cm5412.chd
*/
/*
TODO:
- floppy broken
- write to banked RAM at 0x0000-0x1fff when ROM is active
- real keyboard w/i8049
- keyboard beeper (NE555 wired in strange mix of astable/monostable modes)
- Winchester (Tandon TM501/CMI CM-5412 10MB drive on Xebec S1410 controller)
chdman createhd -chs 306,2,32 -ss 256 -o tm501.chd
chdman createhd -chs 306,4,32 -ss 256 -o cm5412.chd
*/
@ -1145,4 +1178,4 @@ ROM_END
// System Drivers
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
COMP( 1983, v1050, 0, 0, v1050, v1050, driver_device, 0, "Visual Technology Inc", "Visual 1050", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_KEYBOARD )
COMP( 1983, v1050, 0, 0, v1050, v1050, driver_device, 0, "Visual Technology Inc", "Visual 1050", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_KEYBOARD )

View File

@ -3,7 +3,6 @@
#ifndef __COSMICOS__
#define __COSMICOS__
#include "emu.h"
#include "cpu/cosmac/cosmac.h"
#include "imagedev/cassette.h"
@ -76,6 +75,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( video_off_r );
DECLARE_READ8_MEMBER( video_on_r );
DECLARE_WRITE8_MEMBER( audio_latch_w );
@ -105,13 +106,11 @@ public:
DECLARE_INPUT_CHANGED_MEMBER( clear_data );
DECLARE_INPUT_CHANGED_MEMBER( memory_protect );
DECLARE_INPUT_CHANGED_MEMBER( memory_disable );
DECLARE_DIRECT_UPDATE_MEMBER(cosmicos_direct_update_handler);
DECLARE_QUICKLOAD_LOAD_MEMBER( cosmicos );
void set_cdp1802_mode(int mode);
void clear_input_data();
void set_ram_mode();
/* CPU state */
int m_wait;

View File

@ -42,6 +42,14 @@ Notes:
*/
/*
TODO:
- floppy broken (wd1770 digital PLL FM mode incomplete)
*/
#include "comx_fd.h"