summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess
diff options
context:
space:
mode:
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
commit6e6684c33fec10c3762b68e3ff78aaf8569dd55d (patch)
tree0cf80b29e3b0099e9eed9d72f56639933680357c /src/mess
parent2a5250b9e09a9a0a0aee5ee27eaf0cc7419add66 (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.c18
-rw-r--r--src/mess/includes/at.h4
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_ */