diff options
author | mahlemiut <mahlemiut@users.noreply.github.com> | 2014-05-10 04:48:14 +0000 |
---|---|---|
committer | mahlemiut <mahlemiut@users.noreply.github.com> | 2014-05-10 04:48:14 +0000 |
commit | 6e6684c33fec10c3762b68e3ff78aaf8569dd55d (patch) | |
tree | 0cf80b29e3b0099e9eed9d72f56639933680357c /src/mess | |
parent | 2a5250b9e09a9a0a0aee5ee27eaf0cc7419add66 (diff) |
megapc: added hacks to get the keyboard working, to be removed when the keyboard controller code is dumped. (no whatsnew)
Diffstat (limited to 'src/mess')
-rw-r--r-- | src/mess/drivers/at.c | 18 | ||||
-rw-r--r-- | src/mess/includes/at.h | 4 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/mess/drivers/at.c b/src/mess/drivers/at.c index 673481ad1a4..f06ac85bcb4 100644 --- a/src/mess/drivers/at.c +++ b/src/mess/drivers/at.c @@ -194,6 +194,20 @@ static ADDRESS_MAP_START( at586_io, AS_IO, 32, at586_state ) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write) ADDRESS_MAP_END +DRIVER_INIT_MEMBER(megapc_state, megapc) +{ + UINT8* ROM = memregion("bios")->base(); + ROM[0xf9145] = 0x45; // hack to fix keyboard. To be removed when the keyboard controller from the MegaPC is dumped + ROM[0xffea0] = 0x20; // to correct checksum +} + +DRIVER_INIT_MEMBER(megapc_state, megapcpl) +{ + UINT8* ROM = memregion("bios")->base(); + ROM[0xf87b1] = 0x55; // hack to fix keyboard. To be removed when the keyboard controller from the MegaPC is dumped + ROM[0xffea0] = 0x20; // to correct checksum +} + READ16_MEMBER( megapc_state::wd7600_ior ) { if (offset < 4) @@ -1549,8 +1563,8 @@ COMP ( 1990, at586, ibm5170, 0, at586, atvga, at586_state, at586, COMP ( 1990, at586x3, ibm5170, 0, at586x3, atvga, at586_state, at586, "<generic>", "PC/AT 586 (PIIX3)", GAME_NOT_WORKING ) COMP ( 1989, neat, ibm5170, 0, neat, atvga, at_state, atvga, "<generic>", "NEAT (VGA, MF2 Keyboard)", GAME_NOT_WORKING ) COMP ( 1993, ec1849, ibm5170, 0, ec1849, atcga, at_state, atcga, "<unknown>", "EC-1849", GAME_NOT_WORKING ) -COMP ( 1993, megapc, 0, 0, megapc, 0, driver_device, 0, "Amstrad plc", "MegaPC", GAME_NOT_WORKING ) -COMP ( 199?, megapcpl, megapc, 0, megapcpl, 0, driver_device, 0, "Amstrad plc", "MegaPC Plus", GAME_NOT_WORKING ) +COMP ( 1993, megapc, 0, 0, megapc, 0, megapc_state, megapc, "Amstrad plc", "MegaPC", GAME_NOT_WORKING ) +COMP ( 199?, megapcpl, megapc, 0, megapcpl, 0, megapc_state, megapcpl,"Amstrad plc", "MegaPC Plus", GAME_NOT_WORKING ) COMP ( 1989, pc2386, ibm5170, 0, at386, atvga, at_state, atvga, "Amstrad plc", "Amstrad PC2386", GAME_NOT_WORKING ) COMP ( 1991, aprfte, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FT//ex 486 (J3 Motherboard)", GAME_NOT_WORKING ) COMP ( 1991, ftsserv, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FTs (Scorpion)", GAME_NOT_WORKING ) diff --git a/src/mess/includes/at.h b/src/mess/includes/at.h index eccae4c5894..1284816977b 100644 --- a/src/mess/includes/at.h +++ b/src/mess/includes/at.h @@ -179,6 +179,9 @@ public: required_device<isa16_device> m_isabus; required_device<speaker_sound_device> m_speaker; + DECLARE_DRIVER_INIT(megapc); + DECLARE_DRIVER_INIT(megapcpl); + DECLARE_READ16_MEMBER( wd7600_ior ); DECLARE_WRITE16_MEMBER( wd7600_iow ); DECLARE_WRITE_LINE_MEMBER( wd7600_hold ); @@ -186,4 +189,5 @@ public: DECLARE_WRITE_LINE_MEMBER( wd7600_spkr ) { m_speaker->level_w(state); } }; + #endif /* AT_H_ */ |