diff --git a/src/mess/drivers/bullet.c b/src/mess/drivers/bullet.c index 043a45fd7dc..b06d8729c9a 100644 --- a/src/mess/drivers/bullet.c +++ b/src/mess/drivers/bullet.c @@ -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; diff --git a/src/mess/drivers/c900.c b/src/mess/drivers/c900.c index 39dd3f1cf4a..a805ca2e006 100644 --- a/src/mess/drivers/c900.c +++ b/src/mess/drivers/c900.c @@ -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) diff --git a/src/mess/drivers/cosmicos.c b/src/mess/drivers/cosmicos.c index d147b6bda7f..bf4fbd3f206 100644 --- a/src/mess/drivers/cosmicos.c +++ b/src/mess/drivers/cosmicos.c @@ -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 ) diff --git a/src/mess/drivers/d6809.c b/src/mess/drivers/d6809.c index ec242b9eaf7..9510fca5cb5 100644 --- a/src/mess/drivers/d6809.c +++ b/src/mess/drivers/d6809.c @@ -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) diff --git a/src/mess/drivers/konin.c b/src/mess/drivers/konin.c index 33dd98a9e7c..f15548155d6 100644 --- a/src/mess/drivers/konin.c +++ b/src/mess/drivers/konin.c @@ -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) diff --git a/src/mess/drivers/kyocera.c b/src/mess/drivers/kyocera.c index cab6583e980..b42ca2945e4 100644 --- a/src/mess/drivers/kyocera.c +++ b/src/mess/drivers/kyocera.c @@ -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 ) diff --git a/src/mess/drivers/microkit.c b/src/mess/drivers/microkit.c index fb4c59c6d43..d3692a309ec 100644 --- a/src/mess/drivers/microkit.c +++ b/src/mess/drivers/microkit.c @@ -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 ) diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c index 78d0e462810..17c4dad3db4 100644 --- a/src/mess/drivers/trs80m2.c +++ b/src/mess/drivers/trs80m2.c @@ -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 ) diff --git a/src/mess/drivers/v1050.c b/src/mess/drivers/v1050.c index e369e68b703..dc64584ccba 100644 --- a/src/mess/drivers/v1050.c +++ b/src/mess/drivers/v1050.c @@ -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 ) diff --git a/src/mess/includes/cosmicos.h b/src/mess/includes/cosmicos.h index fc0c0c4f175..9762fd83c0a 100644 --- a/src/mess/includes/cosmicos.h +++ b/src/mess/includes/cosmicos.h @@ -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; diff --git a/src/mess/machine/comx_fd.c b/src/mess/machine/comx_fd.c index ecab6d24e2d..e1853895ddf 100644 --- a/src/mess/machine/comx_fd.c +++ b/src/mess/machine/comx_fd.c @@ -42,6 +42,14 @@ Notes: */ +/* + + TODO: + + - floppy broken (wd1770 digital PLL FM mode incomplete) + +*/ + #include "comx_fd.h"