diff options
author | 2012-12-16 03:35:50 +0000 | |
---|---|---|
committer | 2012-12-16 03:35:50 +0000 | |
commit | dac144a74b8e6d9ac6416e0a735388da70bb19b8 (patch) | |
tree | 57e7da10949e4dac336f1deba0ef66cc76486491 /src/mess/machine/mackbd.c | |
parent | fb31a90efbc1d7d3e22421e539b8659e90316810 (diff) |
(MESS) mackbd: dumped correct ROM, prep for actual emulation [Lord Nightmare, R. Belmont]
Diffstat (limited to 'src/mess/machine/mackbd.c')
-rw-r--r-- | src/mess/machine/mackbd.c | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/src/mess/machine/mackbd.c b/src/mess/machine/mackbd.c index 95093cee754..769eff4a417 100644 --- a/src/mess/machine/mackbd.c +++ b/src/mess/machine/mackbd.c @@ -44,6 +44,8 @@ ---x Data to Mac The T1 line is "Option". + + There is a later M0110 keyboard version which uses a GI PIC1657; we do not have a dump of that version. */ @@ -63,10 +65,12 @@ const device_type MACKBD = &device_creator<mackbd_device>; -// typed in from the listing in the above-cited "IM Underground", but the PDF on Bitsavers is missing a page :( ROM_START( mackbd ) - ROM_REGION(0x400, MACKBD_CPU_TAG, 0) - ROM_LOAD( "mackbd.bin", 0x0000, 0x0400, BAD_DUMP CRC(c9af25a5) SHA1(4a6f81da036b071d2ea090cbde78e11c43a3b3b3) ) + ROM_REGION(0x800, MACKBD_CPU_TAG, 0) + // original Mac keyboard and optional external keypad + ROM_LOAD( "ip8021h_2173.bin", 0x000000, 0x000400, CRC(5fbd9a94) SHA1(32a3b58afb445a8675b12a4de3aec2fa00c99222) ) + // Mac Plus all-in-one keyboard (not yet supported) + ROM_LOAD( "341-0332-a.bin", 0x000400, 0x000400, CRC(6554f5b6) SHA1(a80404a122d74721cda13b285c412057c2c78bd7) ) ROM_END //------------------------------------------------- @@ -74,7 +78,15 @@ ROM_END //------------------------------------------------- static ADDRESS_MAP_START( mackbd_map, AS_PROGRAM, 8, mackbd_device ) -// AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION(MACKBD_CPU_TAG, 0) + AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION(MACKBD_CPU_TAG, 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mackbd_io_map, AS_IO, 8, mackbd_device ) + AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(p0_r) + AM_RANGE(0x2f, 0x2f) AM_WRITE(p0_w) + AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_r, p1_w) + AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_r, p2_w) + AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_r) ADDRESS_MAP_END //------------------------------------------------- @@ -84,7 +96,7 @@ ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( mackbd ) MCFG_CPU_ADD(MACKBD_CPU_TAG, I8021, 100000) // "100,000 operations per second"? MCFG_CPU_PROGRAM_MAP(mackbd_map) - MCFG_DEVICE_DISABLE() + MCFG_CPU_IO_MAP(mackbd_io_map) MACHINE_CONFIG_END @@ -140,3 +152,35 @@ void mackbd_device::device_config_complete() m_shortname = "mackbd"; } +READ8_MEMBER(mackbd_device::p0_r) +{ + return 0x20; // 0x20 indicates we're a keyboard rather than the keypad +} + +WRITE8_MEMBER(mackbd_device::p0_w) +{ +} + +READ8_MEMBER(mackbd_device::p1_r) +{ + return 0; +} + +WRITE8_MEMBER(mackbd_device::p1_w) +{ +} + +READ8_MEMBER(mackbd_device::p2_r) +{ + return 0; +} + +WRITE8_MEMBER(mackbd_device::p2_w) +{ +} + +READ8_MEMBER(mackbd_device::t1_r) +{ + return 0; +} + |