mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
(MESS) Cleanup. (nw)
This commit is contained in:
parent
24dfc80a3f
commit
e2d32cf032
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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 )
|
||||
|
@ -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 )
|
||||
|
@ -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 )
|
||||
|
@ -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;
|
||||
|
@ -42,6 +42,14 @@ Notes:
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
|
||||
- floppy broken (wd1770 digital PLL FM mode incomplete)
|
||||
|
||||
*/
|
||||
|
||||
#include "comx_fd.h"
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user