Previous 199869 Revisions Next

r45209 Wednesday 24th February, 2016 at 16:45:12 UTC by Carl
at: create at motherboard device and split pci and ps2 machines into own files [Carl]
[scripts/target/mame]mess.lua
[src/devices/machine]wd7600.cpp
[src/mame/drivers]at.cpp atpci.cpp* indy_indigo2.cpp ps2.cpp*
[src/mame/includes]at.h
[src/mame/machine]at.cpp at.h*

trunk/scripts/target/mame/mess.lua
r253720r253721
12621262createMESSProjects(_target, _subtarget, "at")
12631263files {
12641264   MAME_DIR .. "src/mame/drivers/at.cpp",
1265   MAME_DIR .. "src/mame/includes/at.h",
1265   MAME_DIR .. "src/mame/drivers/atpci.cpp",
1266   MAME_DIR .. "src/mame/drivers/ps2.cpp",
1267   MAME_DIR .. "src/mame/machine/at.h",
12661268   MAME_DIR .. "src/mame/machine/at.cpp",
12671269   MAME_DIR .. "src/mame/drivers/ct486.cpp",
12681270}
trunk/src/devices/machine/wd7600.cpp
r253720r253721
165165
166166   // install video BIOS (we should use the VGA BIOS at the beginning of the system BIOS ROM, but that gives a
167167   // blank display (but still runs))
168   //m_space->install_rom(0x000c0000, 0x000cffff, m_bios + 0xe0000);
168   //m_space->install_rom(0x000c0000, 0x000cffff, m_bios);
169169   m_space->install_rom(0x000c0000, 0x000cffff, m_isa);
170170
171171   // install BIOS ROM at cpu inital pc
172   m_space->install_rom(0x000f0000, 0x000fffff, m_bios + 0xf0000);
173   m_space->install_rom(0xffff0000, 0xffffffff, m_bios + 0xf0000);
172   m_space->install_rom(0x000f0000, 0x000fffff, m_bios + 0x10000);
173   m_space->install_rom(0xffff0000, 0xffffffff, m_bios + 0x10000);
174174
175175   // install i/o accesses
176176   m_space_io->install_readwrite_handler(0x0000, 0x000f, read8_delegate(FUNC(am9517a_device::read), &(*m_dma1)), write8_delegate(FUNC(am9517a_device::write), &(*m_dma1)), 0xffffffff);
trunk/src/mame/drivers/at.cpp
r253720r253721
1212#endif /* i386 */
1313
1414
15#include "includes/at.h"
15#include "emu.h"
16#include "cpu/i86/i286.h"
17#include "cpu/i386/i386.h"
18#include "machine/at.h"
19#include "machine/wd7600.h"
20#include "machine/cs8221.h"
21#include "machine/nvram.h"
22#include "machine/vt82c496.h"
23#include "bus/lpci/pci.h"
24#include "bus/lpci/vt82c505.h"
25#include "machine/ds128x.h"
26#include "machine/ram.h"
27#include "bus/isa/isa_cards.h"
1628#include "bus/pc_kbd/keyboards.h"
17#include "softlist.h"
1829
30class at_state : public driver_device
31{
32public:
33   at_state(const machine_config &mconfig, device_type type, const char *tag)
34      : driver_device(mconfig, type, tag),
35      m_maincpu(*this, "maincpu"),
36      m_mb(*this, "mb"),
37      m_ram(*this, RAM_TAG)
38      { }
39   required_device<cpu_device> m_maincpu;
40   required_device<at_mb_device> m_mb;
41   required_device<ram_device> m_ram;
42   DECLARE_DRIVER_INIT(at);
43   DECLARE_DRIVER_INIT(atpci);
44   DECLARE_DRIVER_INIT(megapcpla);
45   DECLARE_READ16_MEMBER(ps1_unk_r);
46   DECLARE_WRITE16_MEMBER(ps1_unk_w);
47   DECLARE_READ8_MEMBER(ps1_portb_r);
48   DECLARE_MACHINE_START(vrom_fix);
49
50   void init_at_common(int xmsbase);
51   UINT16 m_ps1_reg[2];
52};
53
54class megapc_state : public driver_device
55{
56public:
57   megapc_state(const machine_config &mconfig, device_type type, const char *tag)
58      : driver_device(mconfig, type, tag),
59      m_maincpu(*this, "maincpu"),
60      m_wd7600(*this, "wd7600"),
61      m_isabus(*this, "isabus"),
62      m_speaker(*this, "speaker")
63      { }
64
65public:
66   required_device<cpu_device> m_maincpu;
67   required_device<wd7600_device> m_wd7600;
68   required_device<isa16_device> m_isabus;
69   required_device<speaker_sound_device> m_speaker;
70
71   DECLARE_DRIVER_INIT(megapc);
72   DECLARE_DRIVER_INIT(megapcpl);
73
74   DECLARE_READ16_MEMBER( wd7600_ior );
75   DECLARE_WRITE16_MEMBER( wd7600_iow );
76   DECLARE_WRITE_LINE_MEMBER( wd7600_hold );
77   DECLARE_WRITE8_MEMBER( wd7600_tc ) { m_isabus->eop_w(offset, data); }
78   DECLARE_WRITE_LINE_MEMBER( wd7600_spkr ) { m_speaker->level_w(state); }
79};
80
81
1982static ADDRESS_MAP_START( at16_map, AS_PROGRAM, 16, at_state )
2083   ADDRESS_MAP_UNMAP_HIGH
2184   AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("bank10")
22   AM_RANGE(0x0c0000, 0x0c7fff) AM_ROM
23   AM_RANGE(0x0c8000, 0x0cffff) AM_ROM
24   AM_RANGE(0x0d0000, 0x0effff) AM_RAM
25   AM_RANGE(0x0f0000, 0x0fffff) AM_ROM
26   AM_RANGE(0xff0000, 0xffffff) AM_ROM AM_REGION("maincpu", 0x0f0000)
85   AM_RANGE(0x0e0000, 0x0fffff) AM_ROM AM_REGION("bios", 0)
86   AM_RANGE(0xfe0000, 0xffffff) AM_ROM AM_REGION("bios", 0)
2787ADDRESS_MAP_END
2888
29static ADDRESS_MAP_START( ps2m30286_map, AS_PROGRAM, 16, at_state)
89static ADDRESS_MAP_START( at16l_map, AS_PROGRAM, 16, at_state )
90   ADDRESS_MAP_UNMAP_HIGH
3091   AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("bank10")
31   AM_RANGE(0x0c0000, 0x0c7fff) AM_ROM
32   AM_RANGE(0x0c8000, 0x0cffff) AM_ROM
33   AM_RANGE(0x0d0000, 0x0dffff) AM_RAM
34   AM_RANGE(0x0e0000, 0x0fffff) AM_ROM
35   AM_RANGE(0xfe0000, 0xffffff) AM_ROM AM_REGION("maincpu", 0x0e0000)
92   AM_RANGE(0x0e0000, 0x0fffff) AM_ROM AM_REGION("bios", 0x20000)
93   AM_RANGE(0xfe0000, 0xffffff) AM_ROM AM_REGION("bios", 0x20000)
3694ADDRESS_MAP_END
3795
38static ADDRESS_MAP_START( ps1_286_map, AS_PROGRAM, 16, at_state )
39   AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("bank10")
40   AM_RANGE(0x0a0000, 0x0bffff) AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffff)
41   AM_RANGE(0x0c0000, 0x0fffff) AM_ROM
42   AM_RANGE(0xff0000, 0xffffff) AM_ROM AM_REGION("maincpu", 0x0f0000)
43ADDRESS_MAP_END
44
45static ADDRESS_MAP_START( at386_map, AS_PROGRAM, 32, at_state )
96static ADDRESS_MAP_START( at32_map, AS_PROGRAM, 32, at_state )
4697   ADDRESS_MAP_UNMAP_HIGH
4798   AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
48   AM_RANGE(0x000a0000, 0x000bffff) AM_NOP
49   AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM
50   AM_RANGE(0x000c8000, 0x000cffff) AM_ROM
51   AM_RANGE(0x000d0000, 0x000effff) AM_ROM
52   AM_RANGE(0x000f0000, 0x000fffff) AM_ROM
99   AM_RANGE(0x000e0000, 0x000fffff) AM_ROM AM_REGION("bios", 0)
53100   AM_RANGE(0x00800000, 0x00800bff) AM_RAM AM_SHARE("nvram")
54   AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0x0f0000)
101   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0)
55102ADDRESS_MAP_END
56103
57static ADDRESS_MAP_START( at586_map, AS_PROGRAM, 32, at586_state )
104static ADDRESS_MAP_START( at32l_map, AS_PROGRAM, 32, at_state )
105   ADDRESS_MAP_UNMAP_HIGH
58106   AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
59   AM_RANGE(0x000a0000, 0x000bffff) AM_NOP
107   AM_RANGE(0x000e0000, 0x000fffff) AM_ROM AM_REGION("bios", 0x20000)
60108   AM_RANGE(0x00800000, 0x00800bff) AM_RAM AM_SHARE("nvram")
61   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("isa", 0x20000)
109   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0x20000)
62110ADDRESS_MAP_END
63111
64112static ADDRESS_MAP_START( ficpio_map, AS_PROGRAM, 32, at_state )
113   ADDRESS_MAP_UNMAP_HIGH
65114   AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
66   AM_RANGE(0x000a0000, 0x000bffff) AM_NOP
67   AM_RANGE(0x000c0000, 0x000c7fff) AM_NOP
68   AM_RANGE(0x000c8000, 0x000cffff) AM_NOP
69   AM_RANGE(0x000d0000, 0x000effff) AM_RAM
70   AM_RANGE(0x000f0000, 0x000fffff) AM_RAM
71115   AM_RANGE(0x00800000, 0x00800bff) AM_RAM AM_SHARE("nvram")
72116   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("isa", 0x20000)
73117ADDRESS_MAP_END
74118
75
76READ8_MEMBER( at_state::at_dma8237_2_r )
77{
78   return m_dma8237_2->read(space, offset / 2);
79}
80
81WRITE8_MEMBER( at_state::at_dma8237_2_w )
82{
83   m_dma8237_2->write(space, offset / 2, data);
84}
85
86READ8_MEMBER( at_state::at_keybc_r )
87{
88   switch (offset)
89   {
90   case 0: return m_keybc->data_r(space, 0);
91   case 1: return at_portb_r(space, 0);
92   }
93
94   return 0xff;
95}
96
97WRITE8_MEMBER( at_state::at_keybc_w )
98{
99   switch (offset)
100   {
101   case 0: m_keybc->data_w(space, 0, data); break;
102   case 1: at_portb_w(space, 0, data); break;
103   }
104}
105
106
107WRITE8_MEMBER( at_state::write_rtc )
108{
109   if (offset==0) {
110      m_nmi_enabled = BIT(data,7);
111      m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
112      m_mc146818->write(space,0,data);
113   }
114   else {
115      m_mc146818->write(space,offset,data);
116   }
117}
118
119119static ADDRESS_MAP_START( at16_io, AS_IO, 16, at_state )
120120   ADDRESS_MAP_UNMAP_HIGH
121   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffff)
122   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffff)
123   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffff)
124   AM_RANGE(0x0060, 0x0063) AM_READWRITE8(at_keybc_r, at_keybc_w, 0xffff)
125   AM_RANGE(0x0064, 0x0067) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0xffff)
126   AM_RANGE(0x0070, 0x007f) AM_DEVREAD8("rtc", mc146818_device, read, 0xffff) AM_WRITE8(write_rtc , 0xffff)
127   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffff)
128   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffff)
129   AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffff)
121   AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
130122ADDRESS_MAP_END
131123
132124READ16_MEMBER( at_state::ps1_unk_r )
r253720r253721
139131   if((offset == 0) && (data == 0x60))
140132      data = 0x68;
141133
142   m_ps1_reg[offset] = (m_ps1_reg[offset] & ~mem_mask) | (data & mem_mask);
134   COMBINE_DATA(&m_ps1_reg[offset]);
143135}
144136
145READ8_MEMBER( at_state::ps1_kbdc_r )
137READ8_MEMBER( at_state::ps1_portb_r )
146138{
147      UINT8 ret;
148   if(offset == 0) ret = at_keybc_r(space, offset, mem_mask);
149   else ret = ps2_portb_r(space,offset, mem_mask);
150   return ret;
139   UINT8 data = m_mb->portb_r(space, offset);
140   /* 0x10 is the dram refresh line bit, 15.085us. */
141   data = (data & ~0x10) | ((machine().time().as_ticks(66291) & 1) ? 0x10 : 0);
142
143   return data;
151144}
152145
153static ADDRESS_MAP_START(ps1_286_io, AS_IO, 16, at_state )
154   AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", vga_device, port_03b0_r, port_03b0_w, 0xffff)
155   AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", vga_device, port_03c0_r, port_03c0_w, 0xffff)
156   AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", vga_device, port_03d0_r, port_03d0_w, 0xffff)
157   AM_RANGE(0x0060, 0x0063) AM_READWRITE8(ps1_kbdc_r, at_keybc_w, 0xffff)
146static ADDRESS_MAP_START(ps1_16_io, AS_IO, 16, at_state )
147   ADDRESS_MAP_UNMAP_HIGH
148   AM_RANGE(0x0060, 0x0061) AM_READ8(ps1_portb_r, 0xff00)
149   AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
158150   AM_RANGE(0x0102, 0x0105) AM_READWRITE(ps1_unk_r, ps1_unk_w)
159   AM_IMPORT_FROM( at16_io )
160151ADDRESS_MAP_END
161152
162READ16_MEMBER( at_state::neat_chipset_r )
163{
164   if (ACCESSING_BITS_0_7)
165      return 0xff;
166   if (ACCESSING_BITS_8_15)
167      return m_cs8221->data_r(space, 0, 0) << 8;
168   return 0xffff;
169}
170
171WRITE16_MEMBER( at_state::neat_chipset_w )
172{
173   if (ACCESSING_BITS_0_7)
174      m_cs8221->address_w(space, 0, data, 0);
175
176   if (ACCESSING_BITS_8_15)
177      m_cs8221->data_w(space, 0, data >> 8, 0);
178}
179
180153static ADDRESS_MAP_START( neat_io, AS_IO, 16, at_state )
181154   ADDRESS_MAP_UNMAP_HIGH
182   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffff)
183   AM_RANGE(0x0020, 0x0021) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffff)
184   AM_RANGE(0x0022, 0x0023) AM_READWRITE(neat_chipset_r, neat_chipset_w)
185   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffff)
186   AM_RANGE(0x0060, 0x0063) AM_READWRITE8(at_keybc_r, at_keybc_w, 0xffff)
187   AM_RANGE(0x0064, 0x0067) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0xffff)
188   AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write , 0xffff)
189   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffff)
190   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffff)
191   AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffff)
155   AM_RANGE(0x0022, 0x0023) AM_DEVWRITE8("cs8221", cs8221_device, address_w, 0x00ff)
156   AM_RANGE(0x0022, 0x0023) AM_DEVREADWRITE8("cs8221", cs8221_device, data_r, data_w, 0xff00)
157   AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
192158ADDRESS_MAP_END
193159
194static ADDRESS_MAP_START( at386_io, AS_IO, 32, at_state )
160static ADDRESS_MAP_START( at32_io, AS_IO, 32, at_state )
195161   ADDRESS_MAP_UNMAP_HIGH
196   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffffffff)
197   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffffffff)
198   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff)
199   AM_RANGE(0x0060, 0x0063) AM_READWRITE8(at_keybc_r, at_keybc_w, 0xffff)
200   AM_RANGE(0x0064, 0x0067) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0xffff)
201   AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write , 0xffffffff)
202   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffffffff)
203   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffffffff)
204   AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff)
162   AM_RANGE(0x0000, 0x00ff) AM_DEVICE16("mb", at_mb_device, map, 0xfffffffff)
205163ADDRESS_MAP_END
206164
207static ADDRESS_MAP_START( at586_io, AS_IO, 32, at586_state )
208   ADDRESS_MAP_UNMAP_HIGH
209   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write)
210ADDRESS_MAP_END
211
212165static ADDRESS_MAP_START( ficpio_io, AS_IO, 32, at_state )
213166   ADDRESS_MAP_UNMAP_HIGH
214   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffffffff)
215   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffffffff)
216   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff)
217   AM_RANGE(0x0060, 0x0063) AM_READWRITE8(at_keybc_r, at_keybc_w, 0xffff)
218   AM_RANGE(0x0064, 0x0067) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0xffff)
219   AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write , 0xffffffff)
220   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffffffff)
221   AM_RANGE(0x00a0, 0x00a7) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffffffff)
222167   AM_RANGE(0x00a8, 0x00af) AM_DEVREADWRITE8("chipset", vt82c496_device, read, write, 0xffffffff)
223   AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff)
168   AM_RANGE(0x0000, 0x00ff) AM_DEVICE16("mb", at_mb_device, map, 0xfffffffff)
224169   AM_RANGE(0x0170, 0x0177) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs0, write_cs0)
225170   AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0)
226171   AM_RANGE(0x0370, 0x0377) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs1, write_cs1)
r253720r253721
231176DRIVER_INIT_MEMBER(megapc_state, megapc)
232177{
233178   UINT8* ROM = memregion("bios")->base();
234   ROM[0xf9145] = 0x45;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
235   ROM[0xffea0] = 0x20;  // to correct checksum
179   ROM[0x19145] = 0x45;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
180   ROM[0x1fea0] = 0x20;  // to correct checksum
236181}
237182
238183DRIVER_INIT_MEMBER(megapc_state, megapcpl)
239184{
240185   UINT8* ROM = memregion("bios")->base();
241   ROM[0xf87b1] = 0x55;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
242   ROM[0xffea0] = 0x20;  // to correct checksum
186   ROM[0x187b1] = 0x55;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
187   ROM[0x1fea0] = 0x20;  // to correct checksum
243188}
244189
245190DRIVER_INIT_MEMBER(at_state, megapcpla)
r253720r253721
248193
249194   init_at_common(0xa0000);
250195
251   ROM[0xf3c2a] = 0x45;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
252   ROM[0xfaf37] = 0x45;
253   ROM[0xfcf1b] = 0x54;  // this will allow the keyboard to work during the POST memory test
254   ROM[0xffffe] = 0x1c;
255   ROM[0xfffff] = 0x41;  // to correct checksum
196   ROM[0x33c2a] = 0x45;  // hack to fix keyboard.  To be removed when the keyboard controller from the MegaPC is dumped
197   ROM[0x3af37] = 0x45;
198   ROM[0x3cf1b] = 0x54;  // this will allow the keyboard to work during the POST memory test
199   ROM[0x3fffe] = 0x1c;
200   ROM[0x3ffff] = 0x41;  // to correct checksum
256201}
257202
258203READ16_MEMBER( megapc_state::wd7600_ior )
r253720r253721
294239   ADDRESS_MAP_UNMAP_HIGH
295240ADDRESS_MAP_END
296241
242/**********************************************************
243 *
244 * Init functions
245 *
246 **********************************************************/
297247
298static INPUT_PORTS_START( atcga )
299INPUT_PORTS_END
248void at_state::init_at_common(int xmsbase)
249{
250   address_space& space = m_maincpu->space(AS_PROGRAM);
300251
301static INPUT_PORTS_START( atvga )
302   PORT_START("IN0")
303   PORT_DIPNAME( 0x08, 0x00, "VGA 1")
304   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
305   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
306   PORT_DIPNAME( 0x04, 0x04, "VGA 2")
307   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
308   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
309   PORT_DIPNAME( 0x02, 0x02, "VGA 3")
310   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
311   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
312   PORT_DIPNAME( 0x01, 0x01, "VGA 4")
313   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
314   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
315INPUT_PORTS_END
252   /* MESS managed RAM */
253   membank("bank10")->set_base(m_ram->pointer());
316254
317WRITE_LINE_MEMBER( at_state::at_mc146818_irq )
255   if (m_ram->size() > xmsbase)
256   {
257      offs_t ram_limit = 0x100000 + m_ram->size() - xmsbase;
258      space.install_read_bank(0x100000,  ram_limit - 1, "bank1");
259      space.install_write_bank(0x100000,  ram_limit - 1, "bank1");
260      membank("bank1")->set_base(m_ram->pointer() + xmsbase);
261   }
262}
263
264DRIVER_INIT_MEMBER(at_state,at)
318265{
319   m_pic8259_slave->ir0_w((state) ? 0 : 1);
266   init_at_common(0xa0000);
320267}
321268
322UINT32 at_state::at_286_a20(bool state)
269DRIVER_INIT_MEMBER(at_state,atpci)
323270{
324   return (state ? 0xffffff : 0xefffff);
271   init_at_common(0x100000);
325272}
326273
327WRITE_LINE_MEMBER( at_state::at_shutdown )
274MACHINE_START_MEMBER(at_state,vrom_fix)
328275{
329   if(state)
330      m_maincpu->reset();
276   address_space& space = m_maincpu->space(AS_PROGRAM);
277   space.install_read_bank(0xc0000, 0xcffff, "vrom_bank");
278   membank("vrom_bank")->set_base(machine().root_device().memregion("bios")->base());
331279}
332280
333static MACHINE_CONFIG_FRAGMENT( at_motherboard )
334   MCFG_MACHINE_START_OVERRIDE(at_state, at )
335   MCFG_MACHINE_RESET_OVERRIDE(at_state, at )
281static SLOT_INTERFACE_START( pci_devices )
282   SLOT_INTERFACE_INTERNAL("vt82c505", VT82C505)
283SLOT_INTERFACE_END
336284
337   MCFG_DEVICE_ADD("pit8254", PIT8254, 0)
338   MCFG_PIT8253_CLK0(4772720/4) /* heartbeat IRQ */
339   MCFG_PIT8253_OUT0_HANDLER(WRITELINE(at_state, at_pit8254_out0_changed))
340   MCFG_PIT8253_CLK1(4772720/4) /* dram refresh */
341   MCFG_PIT8253_CLK2(4772720/4) /* pio port c pin 4, and speaker polling enough */
342   MCFG_PIT8253_OUT2_HANDLER(WRITELINE(at_state, at_pit8254_out2_changed))
343
344   MCFG_DEVICE_ADD( "dma8237_1", AM9517A, XTAL_14_31818MHz/3 )
345   MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq0_w))
346   MCFG_I8237_OUT_EOP_CB(WRITELINE(at_state, at_dma8237_out_eop))
347   MCFG_I8237_IN_MEMR_CB(READ8(at_state, pc_dma_read_byte))
348   MCFG_I8237_OUT_MEMW_CB(WRITE8(at_state, pc_dma_write_byte))
349   MCFG_I8237_IN_IOR_0_CB(READ8(at_state, pc_dma8237_0_dack_r))
350   MCFG_I8237_IN_IOR_1_CB(READ8(at_state, pc_dma8237_1_dack_r))
351   MCFG_I8237_IN_IOR_2_CB(READ8(at_state, pc_dma8237_2_dack_r))
352   MCFG_I8237_IN_IOR_3_CB(READ8(at_state, pc_dma8237_3_dack_r))
353   MCFG_I8237_OUT_IOW_0_CB(WRITE8(at_state, pc_dma8237_0_dack_w))
354   MCFG_I8237_OUT_IOW_1_CB(WRITE8(at_state, pc_dma8237_1_dack_w))
355   MCFG_I8237_OUT_IOW_2_CB(WRITE8(at_state, pc_dma8237_2_dack_w))
356   MCFG_I8237_OUT_IOW_3_CB(WRITE8(at_state, pc_dma8237_3_dack_w))
357   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(at_state, pc_dack0_w))
358   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(at_state, pc_dack1_w))
359   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(at_state, pc_dack2_w))
360   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(at_state, pc_dack3_w))
361   MCFG_DEVICE_ADD( "dma8237_2", AM9517A, XTAL_14_31818MHz/3 )
362   MCFG_I8237_OUT_HREQ_CB(WRITELINE(at_state, pc_dma_hrq_changed))
363   MCFG_I8237_IN_MEMR_CB(READ8(at_state, pc_dma_read_word))
364   MCFG_I8237_OUT_MEMW_CB(WRITE8(at_state, pc_dma_write_word))
365   MCFG_I8237_IN_IOR_1_CB(READ8(at_state, pc_dma8237_5_dack_r))
366   MCFG_I8237_IN_IOR_2_CB(READ8(at_state, pc_dma8237_6_dack_r))
367   MCFG_I8237_IN_IOR_3_CB(READ8(at_state, pc_dma8237_7_dack_r))
368   MCFG_I8237_OUT_IOW_1_CB(WRITE8(at_state, pc_dma8237_5_dack_w))
369   MCFG_I8237_OUT_IOW_2_CB(WRITE8(at_state, pc_dma8237_6_dack_w))
370   MCFG_I8237_OUT_IOW_3_CB(WRITE8(at_state, pc_dma8237_7_dack_w))
371   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(at_state, pc_dack4_w))
372   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(at_state, pc_dack5_w))
373   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(at_state, pc_dack6_w))
374   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(at_state, pc_dack7_w))
375
376   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(at_state, get_slave_ack) )
377   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
378
379   MCFG_DEVICE_ADD("isabus", ISA16, 0)
380   MCFG_ISA16_CPU(":maincpu")
381   MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259_slave",  pic8259_device, ir2_w)) // in place of irq 2 on at irq 9 is used
382   MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir3_w))
383   MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir4_w))
384   MCFG_ISA_OUT_IRQ5_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir5_w))
385   MCFG_ISA_OUT_IRQ6_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir6_w))
386   MCFG_ISA_OUT_IRQ7_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w))
387   MCFG_ISA_OUT_IRQ10_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir3_w))
388   MCFG_ISA_OUT_IRQ11_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir4_w))
389   MCFG_ISA_OUT_IRQ12_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir5_w))
390   MCFG_ISA_OUT_IRQ14_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
391   MCFG_ISA_OUT_IRQ15_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
392   MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq0_w))
393   MCFG_ISA_OUT_DRQ1_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq1_w))
394   MCFG_ISA_OUT_DRQ2_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq2_w))
395   MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
396   MCFG_ISA_OUT_DRQ5_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq1_w))
397   MCFG_ISA_OUT_DRQ6_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq2_w))
398   MCFG_ISA_OUT_DRQ7_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq3_w))
399
400   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
401   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET))
402   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(INPUTLINE("maincpu", INPUT_LINE_A20))
403   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir1_w))
404   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
405   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
406   MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
407   MCFG_PC_KBDC_OUT_CLOCK_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_clock_w))
408   MCFG_PC_KBDC_OUT_DATA_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_data_w))
409
410   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
411   MCFG_MC146818_IRQ_HANDLER(WRITELINE(at_state, at_mc146818_irq))
412   MCFG_MC146818_CENTURY_INDEX(0x32)
413
414   /* sound hardware */
415   MCFG_SPEAKER_STANDARD_MONO("mono")
416   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
417   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
418MACHINE_CONFIG_END
419
420static MACHINE_CONFIG_FRAGMENT( at_softlists )
421   /* software lists */
422   MCFG_SOFTWARE_LIST_ADD("pc_disk_list","ibm5150")
423   MCFG_SOFTWARE_LIST_ADD("xt_disk_list","ibm5160_flop")
424   MCFG_SOFTWARE_LIST_ADD("at_disk_list","ibm5170")
425   MCFG_SOFTWARE_LIST_ADD("at_cdrom_list","ibm5170_cdrom")
426MACHINE_CONFIG_END
427
428285static MACHINE_CONFIG_START( ibm5170, at_state )
429286   /* basic machine hardware */
430287   MCFG_CPU_ADD("maincpu", I80286, XTAL_12MHz/2 /*6000000*/)
431288   MCFG_CPU_PROGRAM_MAP(at16_map)
432289   MCFG_CPU_IO_MAP(at16_io)
433   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
434   MCFG_80286_A20(at_state, at_286_a20)
435   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
290   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
291   MCFG_80286_SHUTDOWN(DEVWRITELINE("mb", at_mb_device, shutdown))
436292
293   MCFG_DEVICE_ADD("mb", AT_MB, 0)
437294   MCFG_QUANTUM_TIME(attotime::from_hz(60))
295   MCFG_FRAGMENT_ADD(at_softlists)
438296
439   MCFG_FRAGMENT_ADD( at_motherboard )
297   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "ega", false)
298   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, "fdc", false)
299   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, "comat", false)
300   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, "ide", false)
301   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
440302
441   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "ega", false)
442   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "fdc", false)
443   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
444   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, "ide", false)
445   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
446
447303   /* internal ram */
448304   MCFG_RAM_ADD(RAM_TAG)
449305   MCFG_RAM_DEFAULT_SIZE("1664K")
450306   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
451
452   MCFG_FRAGMENT_ADD( at_softlists )
453307MACHINE_CONFIG_END
454308
455309
r253720r253721
463317   MCFG_CPU_CLOCK(12000000)
464318MACHINE_CONFIG_END
465319
466static MACHINE_CONFIG_DERIVED( ec1849, ibm5170 )
320static MACHINE_CONFIG_DERIVED( ibm5162, ibm5170 )
467321   MCFG_CPU_MODIFY("maincpu")
468   MCFG_CPU_CLOCK(12000000)
322   MCFG_CPU_CLOCK(6000000)
323   MCFG_DEVICE_MODIFY("isa1")
324   MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "cga", false)
469325MACHINE_CONFIG_END
470326
471static MACHINE_CONFIG_START( ibmps1, at_state )
472   MCFG_CPU_ADD("maincpu", I80286, XTAL_10MHz)
473   MCFG_CPU_PROGRAM_MAP(ps1_286_map)
474   MCFG_CPU_IO_MAP(ps1_286_io)
475   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
476   MCFG_80286_A20(at_state, at_286_a20)
477   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
478
479   MCFG_QUANTUM_TIME(attotime::from_hz(60))
480   MCFG_FRAGMENT_ADD( pcvideo_vga )
481
482   MCFG_FRAGMENT_ADD( at_motherboard )
483
484   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "fdc", false)
485   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "comat", false)
486   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "ide", false)
487   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
488
489   /* internal ram */
490   MCFG_RAM_ADD(RAM_TAG)
491   MCFG_RAM_DEFAULT_SIZE("1664K")
492   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
493
494   MCFG_FRAGMENT_ADD( at_softlists )
327static MACHINE_CONFIG_DERIVED( ibmps1, ibm5170 )
328   MCFG_MACHINE_START_OVERRIDE(at_state, vrom_fix)
329   MCFG_CPU_MODIFY("maincpu")
330   MCFG_CPU_CLOCK(XTAL_10MHz)
331   MCFG_CPU_PROGRAM_MAP(at16l_map)
332   MCFG_CPU_IO_MAP(ps1_16_io)
333   MCFG_DEVICE_MODIFY("isa1")
334   MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", true)
335   MCFG_DEVICE_MODIFY("kbd")
336   MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false)
495337MACHINE_CONFIG_END
496338
497static MACHINE_CONFIG_START( ibm5162, at_state )
498   /* basic machine hardware */
499   MCFG_CPU_ADD("maincpu", I80286, 6000000 /*6000000*/)
500   MCFG_CPU_PROGRAM_MAP(at16_map)
501   MCFG_CPU_IO_MAP(at16_io)
502   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
503   MCFG_80286_A20(at_state, at_286_a20)
504   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
505
506   MCFG_QUANTUM_TIME(attotime::from_hz(60))
507
508   MCFG_FRAGMENT_ADD( at_motherboard )
509
510   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "fdc", false)
511   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", false)
512   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
513   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, "cga", false)
514   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
515
516   /* internal ram */
517   MCFG_RAM_ADD(RAM_TAG)
518   MCFG_RAM_DEFAULT_SIZE("1664K")
519   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
520
521   MCFG_FRAGMENT_ADD( at_softlists )
339static MACHINE_CONFIG_DERIVED( atvga, ibm5170 )
340   MCFG_CPU_MODIFY("maincpu")
341   MCFG_CPU_CLOCK(12000000)
342   MCFG_DEVICE_MODIFY("isa1")
343   MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "svga_et4k", false)
344   MCFG_DEVICE_MODIFY("kbd")
345   MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false)
346   MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false)
522347MACHINE_CONFIG_END
523348
524
525static MACHINE_CONFIG_START( ps2m30286, at_state )
526   /* basic machine hardware */
527   MCFG_CPU_ADD("maincpu", I80286, 10000000)
528   MCFG_CPU_PROGRAM_MAP(ps2m30286_map)
529   MCFG_CPU_IO_MAP(ps1_286_io)
530   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
531   MCFG_80286_A20(at_state, at_286_a20)
532   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
533
534   MCFG_QUANTUM_TIME(attotime::from_hz(60))
535   MCFG_FRAGMENT_ADD( pcvideo_vga )
536
537   MCFG_FRAGMENT_ADD( at_motherboard )
538
539   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "fdc", false)
540   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", false)
541   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
542   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
543
544   /* internal ram */
545   MCFG_RAM_ADD(RAM_TAG)
546   MCFG_RAM_DEFAULT_SIZE("1664K")
547   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
548
549   MCFG_FRAGMENT_ADD( at_softlists )
550MACHINE_CONFIG_END
551
552
553static MACHINE_CONFIG_START( neat, at_state )
554   /* basic machine hardware */
555   MCFG_CPU_ADD("maincpu", I80286, 12000000)
556   MCFG_CPU_PROGRAM_MAP(at16_map)
349static MACHINE_CONFIG_DERIVED( neat, atvga )
350   MCFG_CPU_MODIFY("maincpu")
557351   MCFG_CPU_IO_MAP(neat_io)
558   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
559   MCFG_80286_A20(at_state, at_286_a20)
560   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
561
562   MCFG_FRAGMENT_ADD( at_motherboard )
563
564   MCFG_ISA16_SLOT_ADD("isabus", "isa1", pc_isa16_cards, "fdc", false)
565   MCFG_ISA16_SLOT_ADD("isabus", "isa2", pc_isa16_cards, "ide", false)
566   MCFG_ISA16_SLOT_ADD("isabus", "isa3", pc_isa16_cards, "comat", false)
567   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, "svga_et4k", false)
568   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
569
570   MCFG_CS8221_ADD("cs8221", "maincpu", "isa", "bios")
571
572   /* internal ram */
573   MCFG_RAM_ADD(RAM_TAG)
574   MCFG_RAM_DEFAULT_SIZE("1664K")
575   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
576
577   MCFG_FRAGMENT_ADD( at_softlists )
352   MCFG_CS8221_ADD("cs8221", "maincpu", "mb:isa", "bios")
578353MACHINE_CONFIG_END
579354
580static MACHINE_CONFIG_START( atvga, at_state )
581   /* basic machine hardware */
582   MCFG_CPU_ADD("maincpu", I80286, 12000000)
583   MCFG_CPU_PROGRAM_MAP(at16_map)
584   MCFG_CPU_IO_MAP(at16_io)
585   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
586   MCFG_80286_A20(at_state, at_286_a20)
587   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
588
589   MCFG_FRAGMENT_ADD( at_motherboard )
590
591   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "fdcsmc", false)
592   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", false)
593   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
594   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, "ne2000", false)
595   MCFG_ISA16_SLOT_ADD("isabus","isa5", pc_isa16_cards, "svga_et4k", false)
596   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
597
598   /* internal ram */
599   MCFG_RAM_ADD(RAM_TAG)
600   MCFG_RAM_DEFAULT_SIZE("1664K")
601   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
602
603   MCFG_FRAGMENT_ADD( at_softlists )
355static MACHINE_CONFIG_DERIVED( xb42639, atvga )
356   MCFG_CPU_MODIFY("maincpu")
357   MCFG_CPU_CLOCK(12500000)
604358MACHINE_CONFIG_END
605359
606static MACHINE_CONFIG_START( xb42639, at_state )
607   /* basic machine hardware */
608   MCFG_CPU_ADD("maincpu", I80286, 12500000)
609   MCFG_CPU_PROGRAM_MAP(at16_map)
610   MCFG_CPU_IO_MAP(at16_io)
611   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
612   MCFG_80286_A20(at_state, at_286_a20)
613   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
614
615   MCFG_FRAGMENT_ADD( at_motherboard )
616
617   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "fdc", false)
618   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", false)
619   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
620   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, "svga_et4k", false)
621   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
622
623   /* internal ram */
624   MCFG_RAM_ADD(RAM_TAG)
625   MCFG_RAM_DEFAULT_SIZE("1664K")
626   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
627
628   MCFG_FRAGMENT_ADD( at_softlists )
360static MACHINE_CONFIG_DERIVED( k286i, ibm5162 )
361   MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false)
362   MCFG_ISA16_SLOT_ADD("mb:isabus","isa6", pc_isa16_cards, nullptr, false)
363   MCFG_ISA16_SLOT_ADD("mb:isabus","isa7", pc_isa16_cards, nullptr, false)
364   MCFG_ISA16_SLOT_ADD("mb:isabus","isa8", pc_isa16_cards, nullptr, false)
629365MACHINE_CONFIG_END
630366
631
632367static MACHINE_CONFIG_START( at386, at_state )
633368   MCFG_CPU_ADD("maincpu", I386, 12000000)
634   MCFG_CPU_PROGRAM_MAP(at386_map)
635   MCFG_CPU_IO_MAP(at386_io)
636   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
369   MCFG_CPU_PROGRAM_MAP(at32_map)
370   MCFG_CPU_IO_MAP(at32_io)
371   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
637372
638   MCFG_FRAGMENT_ADD( at_motherboard )
373   MCFG_DEVICE_ADD("mb", AT_MB, 0)
374   MCFG_QUANTUM_TIME(attotime::from_hz(60))
375   MCFG_FRAGMENT_ADD(at_softlists)
639376   MCFG_NVRAM_ADD_0FILL("nvram")
640377
641378   // on board devices
642   MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa16_cards, "fdcsmc", true)
643   MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa16_cards, "comat", true)
644   MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa16_cards, "ide", true)
645   MCFG_ISA16_SLOT_ADD("isabus","board4", pc_isa16_cards, "lpt", true)
379   MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true)
380   MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true)
381   MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "ide", true)
382   MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "lpt", true)
646383   // ISA cards
647   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "svga_et4k", false)
648   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, nullptr, false)
649   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, nullptr, false)
650   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, nullptr, false)
651   MCFG_ISA16_SLOT_ADD("isabus","isa5", pc_isa16_cards, nullptr, false)
652   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
384   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
385   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false)
386   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false)
387   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false)
388   MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false)
389   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
653390
654391   /* internal ram */
655392   MCFG_RAM_ADD(RAM_TAG)
656393   MCFG_RAM_DEFAULT_SIZE("1664K")
657   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M,16M,32M,64M,128M,256M")
394   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M,16M,32M,64M")
395MACHINE_CONFIG_END
658396
659   MCFG_FRAGMENT_ADD( at_softlists )
397static MACHINE_CONFIG_DERIVED( at386l, at386 )
398   MCFG_CPU_MODIFY("maincpu")
399   MCFG_CPU_PROGRAM_MAP(at32l_map)
660400MACHINE_CONFIG_END
661401
662
663402static MACHINE_CONFIG_DERIVED( at486, at386 )
664403   MCFG_CPU_REPLACE("maincpu", I486, 25000000)
665   MCFG_CPU_PROGRAM_MAP(at386_map)
666   MCFG_CPU_IO_MAP(at386_io)
667   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
404   MCFG_CPU_PROGRAM_MAP(at32_map)
405   MCFG_CPU_IO_MAP(at32_io)
406   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
668407MACHINE_CONFIG_END
669408
670
671static MACHINE_CONFIG_START( k286i, at_state )
672   /* basic machine hardware */
673   MCFG_CPU_ADD("maincpu", I80286, XTAL_12MHz/2 /*6000000*/)
674   MCFG_CPU_PROGRAM_MAP(at16_map)
675   MCFG_CPU_IO_MAP(at16_io)
676   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
677   MCFG_80286_A20(at_state, at_286_a20)
678   MCFG_80286_SHUTDOWN(WRITELINE(at_state, at_shutdown))
679
680   MCFG_QUANTUM_TIME(attotime::from_hz(60))
681
682   MCFG_FRAGMENT_ADD( at_motherboard )
683
684   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "cga", false)
685   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "fdc", false)
686   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, "comat", false)
687   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, nullptr, false)
688   MCFG_ISA16_SLOT_ADD("isabus","isa5", pc_isa16_cards, nullptr, false)
689   MCFG_ISA16_SLOT_ADD("isabus","isa6", pc_isa16_cards, nullptr, false)
690   MCFG_ISA16_SLOT_ADD("isabus","isa7", pc_isa16_cards, nullptr, false)
691   MCFG_ISA16_SLOT_ADD("isabus","isa8", pc_isa16_cards, nullptr, false)
692   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
693
694   /* internal ram */
695   MCFG_RAM_ADD(RAM_TAG)
696   MCFG_RAM_DEFAULT_SIZE("1M")
697   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,16M")
698
699   MCFG_FRAGMENT_ADD( at_softlists )
409static MACHINE_CONFIG_DERIVED( at486l, at486 )
410   MCFG_CPU_MODIFY("maincpu")
411   MCFG_CPU_PROGRAM_MAP(at32l_map)
700412MACHINE_CONFIG_END
701413
702
703static MACHINE_CONFIG_FRAGMENT( tx_config )
704   MCFG_I82439TX_CPU( "maincpu" )
705   MCFG_I82439TX_REGION( "isa" )
706MACHINE_CONFIG_END
707
708static SLOT_INTERFACE_START( pci_devices )
709   SLOT_INTERFACE_INTERNAL("i82439tx", I82439TX)
710   SLOT_INTERFACE_INTERNAL("i82371ab", I82371AB)
711   SLOT_INTERFACE_INTERNAL("i82371sb", I82371SB)
712   SLOT_INTERFACE_INTERNAL("vt82c505", VT82C505)
713SLOT_INTERFACE_END
714
715
716static MACHINE_CONFIG_START( at586, at586_state )
717   MCFG_CPU_ADD("maincpu", PENTIUM, 60000000)
718   MCFG_CPU_PROGRAM_MAP(at586_map)
719   MCFG_CPU_IO_MAP(at586_io)
720   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371ab:pic8259_master", pic8259_device, inta_cb)
721
722   MCFG_RAM_ADD(RAM_TAG)
723   MCFG_RAM_DEFAULT_SIZE("4M")
724   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M,256M")
725
726   MCFG_PCI_BUS_ADD("pcibus", 0)
727   MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
728   MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
729
730   MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371ab", true)
731
732   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
733   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa2", pc_isa16_cards, nullptr, false)
734   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa3", pc_isa16_cards, nullptr, false)
735   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa4", pc_isa16_cards, nullptr, false)
736   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa5", pc_isa16_cards, nullptr, false)
737   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
738
739   MCFG_FRAGMENT_ADD( at_softlists )
740MACHINE_CONFIG_END
741
742static MACHINE_CONFIG_START( at586x3, at586_state )
743   MCFG_CPU_ADD("maincpu", PENTIUM, 60000000)
744   MCFG_CPU_PROGRAM_MAP(at586_map)
745   MCFG_CPU_IO_MAP(at586_io)
746   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371sb:pic8259_master", pic8259_device, inta_cb)
747
748   MCFG_RAM_ADD(RAM_TAG)
749   MCFG_RAM_DEFAULT_SIZE("4M")
750   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M")
751
752   MCFG_PCI_BUS_ADD("pcibus", 0)
753   MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
754   MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
755
756   MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371sb", true)
757
758   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
759   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa2", pc_isa16_cards, nullptr, false)
760   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa3", pc_isa16_cards, nullptr, false)
761   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa4", pc_isa16_cards, nullptr, false)
762   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa5", pc_isa16_cards, nullptr, false)
763   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
764
765   MCFG_FRAGMENT_ADD( at_softlists )
766MACHINE_CONFIG_END
767
768414static MACHINE_CONFIG_DERIVED( at386sx, atvga )
769415   MCFG_CPU_REPLACE("maincpu", I386SX, 16000000)     /* 386SX */
770416   MCFG_CPU_PROGRAM_MAP(at16_map)
771417   MCFG_CPU_IO_MAP(at16_io)
772   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
418   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
773419MACHINE_CONFIG_END
774420
775static MACHINE_CONFIG_DERIVED( ct386sx, neat )
776   MCFG_CPU_REPLACE("maincpu", I386SX, 16000000)
777   MCFG_CPU_PROGRAM_MAP(at16_map)
421static MACHINE_CONFIG_DERIVED( ct386sx, at386sx )
422   MCFG_CPU_MODIFY("maincpu")
778423   MCFG_CPU_IO_MAP(neat_io)
779   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
424   MCFG_CS8221_ADD("cs8221", "maincpu", "mb:isa", "maincpu")
780425MACHINE_CONFIG_END
781426
782427static MACHINE_CONFIG_START( megapc, megapc_state )
r253720r253721
866511
867512static MACHINE_CONFIG_START( megapcpla, at_state )
868513   MCFG_CPU_ADD("maincpu", I486, 66000000 / 2)  // 486SLC
869   MCFG_CPU_PROGRAM_MAP(at386_map)
870   MCFG_CPU_IO_MAP(at386_io)
871   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
514   MCFG_CPU_PROGRAM_MAP(at32l_map)
515   MCFG_CPU_IO_MAP(at32_io)
516   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
517   MCFG_MACHINE_START_OVERRIDE(at_state, vrom_fix)
872518
873   MCFG_FRAGMENT_ADD( at_motherboard )
519   MCFG_DEVICE_ADD("mb", AT_MB, 0)
520   MCFG_QUANTUM_TIME(attotime::from_hz(60))
521   MCFG_FRAGMENT_ADD(at_softlists)
874522   MCFG_NVRAM_ADD_0FILL("nvram")
875523
876524   // on board devices
877   MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa16_cards, "fdcsmc", true)
878   MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa16_cards, "comat", true)
879   MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa16_cards, "ide", true)
880   MCFG_ISA16_SLOT_ADD("isabus","board4", pc_isa16_cards, "lpt", true)
525   MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true)
526   MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true)
527   MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "ide", true)
528   MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "lpt", true)
881529   // ISA cards
882   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "svga_dm", false)  // closest to the CL-GD5420
883   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, nullptr, false)
884   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, nullptr, false)
885   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, nullptr, false)
886   MCFG_ISA16_SLOT_ADD("isabus","isa5", pc_isa16_cards, nullptr, false)
887   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
530   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_dm", false)  // closest to the CL-GD5420
531   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false)
532   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false)
533   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false)
534   MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false)
535   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
888536
889537   /* internal ram */
890538   MCFG_RAM_ADD(RAM_TAG)
r253720r253721
892540   MCFG_RAM_EXTRA_OPTIONS("2M,8M,15M,16M,32M,64M,128M,256M")
893541
894542   /* software lists */
895   MCFG_FRAGMENT_ADD( at_softlists )
896543   MCFG_SOFTWARE_LIST_ADD("disk_list","megapc")
897544MACHINE_CONFIG_END
898545
r253720r253721
900547   MCFG_CPU_ADD("maincpu", I486, 25000000)
901548   MCFG_CPU_PROGRAM_MAP(ficpio_map)
902549   MCFG_CPU_IO_MAP(ficpio_io)
903   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
550   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
904551
905   MCFG_FRAGMENT_ADD(at_motherboard)
552   MCFG_DEVICE_ADD("mb", AT_MB, 0)
553   MCFG_QUANTUM_TIME(attotime::from_hz(60))
554   MCFG_FRAGMENT_ADD(at_softlists)
906555
907   MCFG_DEVICE_REMOVE("rtc")
908   MCFG_DS12885_ADD("rtc")
909   MCFG_MC146818_IRQ_HANDLER(WRITELINE(at_state, at_mc146818_irq))
556   MCFG_DEVICE_REMOVE("mb:rtc")
557   MCFG_DS12885_ADD("mb:rtc")
558   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir0_w)) // this is in :mb
910559   MCFG_MC146818_CENTURY_INDEX(0x32)
911560
912561   MCFG_RAM_ADD(RAM_TAG)
r253720r253721
914563   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M")
915564
916565   // on board devices
917   MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa16_cards, "fdcsmc", true)
918   MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa16_cards, "comat", true)
919   MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa16_cards, "lpt", true)
566   MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true)
567   MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true)
568   MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "lpt", true)
920569
921570   MCFG_IDE_CONTROLLER_32_ADD("ide", ata_devices, "hdd", nullptr, true)
922   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
571   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir6_w))
923572   MCFG_IDE_CONTROLLER_32_ADD("ide2", ata_devices, "cdrom", nullptr, true)
924   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
573   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir7_w))
925574
926575   MCFG_PCI_BUS_ADD("pcibus", 0)
927576   MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "vt82c505", true)
928   MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "svga_et4k", false)
929   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, nullptr, false)
930   MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, nullptr, false)
931   MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, nullptr, false)
932   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
577   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
578   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false)
579   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false)
580   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false)
581   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
933582
934583   MCFG_VT82C496_ADD("chipset")
935584   MCFG_VT82C496_CPU("maincpu")
936585   MCFG_VT82C496_REGION("isa")
937
938   MCFG_FRAGMENT_ADD( at_softlists )
939586MACHINE_CONFIG_END
940587
941#if 0
942   // ibm at
943   // most likely 2 32 kbyte chips for 16 bit access
944   ROM_LOAD("atbios.bin", 0xf0000, 0x10000, CRC(674426be)) // BASIC C1.1, beeps
945   // split into 2 chips for 16 bit access
946   ROM_LOAD_EVEN("ibmat.0", 0xf0000, 0x8000, CRC(4995be7a))
947   ROM_LOAD_ODD("ibmat.1", 0xf0000, 0x8000, CRC(c32713e4))
948
949   /* I know about a 1984 version in 2 32kb roms */
950
951   /* at, ami bios and diagnostics */
952   ROM_LOAD_EVEN("rom01.bin", 0xf0000, 0x8000, CRC(679296a7))
953   ROM_LOAD_ODD("rom02.bin", 0xf0000, 0x8000, CRC(65ae1f97))
954
955   /* */
956   ROM_LOAD("neat286.bin", 0xf0000, 0x10000, CRC(07985d9b))
957   // split into 2 chips for 16 bit access
958   ROM_LOAD_EVEN("neat.0", 0xf0000, 0x8000, CRC(4c36e61d))
959   ROM_LOAD_ODD("neat.1", 0xf0000, 0x8000, CRC(4e90f294))
960
961   /* most likely 1 chip!, for lower costs */
962   ROM_LOAD("at386.bin", 0xf0000, 0x10000, CRC(3df9732a))
963
964   /* at486 */
965   ROM_LOAD("at486.bin", 0xf0000, 0x10000, CRC(31214616))
966
967   ROM_LOAD("", 0x??000, 0x2000, CRC())
968#endif
969
970588ROM_START( ibm5170 )
971   ROM_REGION(0x100000,"maincpu", 0)
589   ROM_REGION(0x20000,"bios", 0)
972590
973591   ROM_SYSTEM_BIOS( 0, "rev1", "IBM PC/AT 5170 01/10/84")
974   ROMX_LOAD("6181028.u27", 0xf0000, 0x8000, CRC(f6573f2a) SHA1(3e52cfa6a6a62b4e8576f4fe076c858c220e6c1a), ROM_SKIP(1) | ROM_BIOS(1)) /* T 6181028 8506AAA // TMM23256P-5878 // (C)IBM CORP 1981,-1984 */
975   ROMX_LOAD("6181029.u47", 0xf0001, 0x8000, CRC(7075fbb2) SHA1(a7b885cfd38710c9bc509da1e3ba9b543a2760be), ROM_SKIP(1) | ROM_BIOS(1)) /* T 6181029 8506AAA // TMM23256P-5879 // (C)IBM CORP 1981,-1984 */
592   ROMX_LOAD("6181028.u27", 0x10000, 0x8000, CRC(f6573f2a) SHA1(3e52cfa6a6a62b4e8576f4fe076c858c220e6c1a), ROM_SKIP(1) | ROM_BIOS(1)) /* T 6181028 8506AAA // TMM23256P-5878 // (C)IBM CORP 1981,-1984 */
593   ROMX_LOAD("6181029.u47", 0x10001, 0x8000, CRC(7075fbb2) SHA1(a7b885cfd38710c9bc509da1e3ba9b543a2760be), ROM_SKIP(1) | ROM_BIOS(1)) /* T 6181029 8506AAA // TMM23256P-5879 // (C)IBM CORP 1981,-1984 */
976594
977595   ROM_SYSTEM_BIOS( 1, "rev2", "IBM PC/AT 5170 06/10/85")  /* Another verifaction of these crcs would be nice */
978   ROMX_LOAD("6480090.u27", 0xf0000, 0x8000, CRC(99703aa9) SHA1(18022e93a0412c8477e58f8c61a87718a0b9ab0e), ROM_SKIP(1) | ROM_BIOS(2))
979   ROMX_LOAD("6480091.u47", 0xf0001, 0x8000, CRC(013ef44b) SHA1(bfa15d2180a1902cb6d38c6eed3740f5617afd16), ROM_SKIP(1) | ROM_BIOS(2))
596   ROMX_LOAD("6480090.u27", 0x10000, 0x8000, CRC(99703aa9) SHA1(18022e93a0412c8477e58f8c61a87718a0b9ab0e), ROM_SKIP(1) | ROM_BIOS(2))
597   ROMX_LOAD("6480091.u47", 0x10001, 0x8000, CRC(013ef44b) SHA1(bfa15d2180a1902cb6d38c6eed3740f5617afd16), ROM_SKIP(1) | ROM_BIOS(2))
980598
981599//  ROM_SYSTEM_BIOS( 2, "atdiag", "IBM PC/AT 5170 w/Super Diagnostics")
982600//  ROMX_LOAD("atdiage.bin", 0xf8000, 0x4000, CRC(e8855d0c) SHA1(c9d53e61c08da0a64f43d691bf6cadae5393843a), ROM_SKIP(1) | ROM_BIOS(3))
r253720r253721
996614ROM_END
997615
998616ROM_START( ec1842 )
999   ROM_REGION16_LE(0x100000,"maincpu", 0)
1000   ROM_LOAD16_BYTE( "4202004.bin", 0xfc001, 0x2000, CRC(33fb5382) SHA1(35eb62328324d93e7a06f2f9d1ad0002f83fc99b))
1001   ROM_LOAD16_BYTE( "4202005.bin", 0xfc000, 0x2000, CRC(8e05c119) SHA1(9d81613b4fc305c14ae9fda0b1dd97a290715530))
1002   ROM_LOAD16_BYTE( "4202006.bin", 0xf8001, 0x2000, CRC(6da537ef) SHA1(f79feb433dcf41f5cdef52b845e3550d5f0fb5c0))
1003   ROM_LOAD16_BYTE( "4202007.bin", 0xf8000, 0x2000, CRC(d6ee0e95) SHA1(6fd4c42190e879501198fede70ae43bc420681d0))
617   ROM_REGION16_LE(0x20000,"bios", 0)
618   ROM_LOAD16_BYTE( "4202004.bin", 0x1c001, 0x2000, CRC(33fb5382) SHA1(35eb62328324d93e7a06f2f9d1ad0002f83fc99b))
619   ROM_LOAD16_BYTE( "4202005.bin", 0x1c000, 0x2000, CRC(8e05c119) SHA1(9d81613b4fc305c14ae9fda0b1dd97a290715530))
620   ROM_LOAD16_BYTE( "4202006.bin", 0x18001, 0x2000, CRC(6da537ef) SHA1(f79feb433dcf41f5cdef52b845e3550d5f0fb5c0))
621   ROM_LOAD16_BYTE( "4202007.bin", 0x18000, 0x2000, CRC(d6ee0e95) SHA1(6fd4c42190e879501198fede70ae43bc420681d0))
1004622   // EGA ROM
1005   ROM_LOAD16_BYTE( "4200009.bin", 0xc0000, 0x2000, CRC(9deeb39f) SHA1(255b859d3ea05891aa65a4a742ecaba744dfc923))
1006   ROM_LOAD16_BYTE( "4200010.bin", 0xc0001, 0x2000, CRC(f2c38d93) SHA1(dcb3741d06089bf1a80cb766a6b94029ad698d73))
623   //ROM_LOAD16_BYTE( "4200009.bin", 0xc0000, 0x2000, CRC(9deeb39f) SHA1(255b859d3ea05891aa65a4a742ecaba744dfc923))
624   //ROM_LOAD16_BYTE( "4200010.bin", 0xc0001, 0x2000, CRC(f2c38d93) SHA1(dcb3741d06089bf1a80cb766a6b94029ad698d73))
1007625ROM_END
1008626
1009627ROM_START( ec1849 )
1010   ROM_REGION16_LE(0x1000000,"maincpu", 0)
1011   ROM_LOAD16_BYTE( "cpu-card_27c256_015.rom", 0xf0000, 0x8000, CRC(68eadf0a) SHA1(903a7f1c3ebc6b27c31b512b2908c483608b5c13))
1012   ROM_LOAD16_BYTE( "cpu-card_27c256_016.rom", 0xf0001, 0x8000, CRC(bc3924d6) SHA1(596be415e6c2bc4ff30a187f146664531565712c))
1013   ROM_LOAD16_BYTE( "video-card_573rf6( 2764)_040.rom", 0xc0001, 0x2000, CRC(a3ece315) SHA1(e800e11c3b1b6fcaf41bfb7d4058a9d34fdd2b3f))
1014   ROM_LOAD16_BYTE( "video-card_573rf6( 2764)_041.rom", 0xc0000, 0x2000, CRC(b0a2ba7f) SHA1(c8160e8bc97cd391558f1dddd3fd3ec4a19d030c))
628   ROM_REGION16_LE(0x20000,"bios", 0)
629   ROM_LOAD16_BYTE( "cpu-card_27c256_015.rom", 0x10000, 0x8000, CRC(68eadf0a) SHA1(903a7f1c3ebc6b27c31b512b2908c483608b5c13))
630   ROM_LOAD16_BYTE( "cpu-card_27c256_016.rom", 0x10001, 0x8000, CRC(bc3924d6) SHA1(596be415e6c2bc4ff30a187f146664531565712c))
631   //ROM_LOAD16_BYTE( "video-card_573rf6( 2764)_040.rom", 0xc0001, 0x2000, CRC(a3ece315) SHA1(e800e11c3b1b6fcaf41bfb7d4058a9d34fdd2b3f))
632   //ROM_LOAD16_BYTE( "video-card_573rf6( 2764)_041.rom", 0xc0000, 0x2000, CRC(b0a2ba7f) SHA1(c8160e8bc97cd391558f1dddd3fd3ec4a19d030c))
1015633ROM_END
1016634
1017635ROM_START( ibm5170a )
1018   ROM_REGION(0x100000,"maincpu", 0)
636   ROM_REGION(0x20000,"bios", 0)
1019637   ROM_SYSTEM_BIOS( 0, "rev3", "IBM PC/AT 5170 11/15/85")
1020   ROMX_LOAD("61x9266.u27", 0xf0000, 0x8000, CRC(4995be7a) SHA1(8e8e5c863ae3b8c55fd394e345d8cca48b6e575c), ROM_SKIP(1) | ROM_BIOS(1))
1021   ROMX_LOAD("61x9265.u47", 0xf0001, 0x8000, CRC(c32713e4) SHA1(22ed4e2be9f948682891e2fd056a97dbea01203c), ROM_SKIP(1) | ROM_BIOS(1))
638   ROMX_LOAD("61x9266.u27", 0x10000, 0x8000, CRC(4995be7a) SHA1(8e8e5c863ae3b8c55fd394e345d8cca48b6e575c), ROM_SKIP(1) | ROM_BIOS(1))
639   ROMX_LOAD("61x9265.u47", 0x10001, 0x8000, CRC(c32713e4) SHA1(22ed4e2be9f948682891e2fd056a97dbea01203c), ROM_SKIP(1) | ROM_BIOS(1))
1022640
1023641   ROM_SYSTEM_BIOS( 1, "3270at", "IBM 3270 PC/AT 5281 11/15/85") /* pretty much just a part string and checksum change from the 5170 rev3 */
1024   ROMX_LOAD("62x0820.u27", 0xf0000, 0x8000, CRC(e9cc3761) SHA1(ff9373c1a1f34a32fb6acdabc189c61b01acf9aa), ROM_SKIP(1) | ROM_BIOS(2)) /* T 62X0820-U27 8714HAK // TMM23256P-6746 // (C)IBM CORP 1981,-1985 */
1025   ROMX_LOAD("62x0821.u47", 0xf0001, 0x8000, CRC(b5978ccb) SHA1(2a1aeb9ae3cd7e60fc4c383ca026208b82156810), ROM_SKIP(1) | ROM_BIOS(2)) /* T 62X0821-U47 8715HAK // TMM23256P-6747 // (C)IBM CORP 1981,-1985 */
642   ROMX_LOAD("62x0820.u27", 0x10000, 0x8000, CRC(e9cc3761) SHA1(ff9373c1a1f34a32fb6acdabc189c61b01acf9aa), ROM_SKIP(1) | ROM_BIOS(2)) /* T 62X0820-U27 8714HAK // TMM23256P-6746 // (C)IBM CORP 1981,-1985 */
643   ROMX_LOAD("62x0821.u47", 0x10001, 0x8000, CRC(b5978ccb) SHA1(2a1aeb9ae3cd7e60fc4c383ca026208b82156810), ROM_SKIP(1) | ROM_BIOS(2)) /* T 62X0821-U47 8715HAK // TMM23256P-6747 // (C)IBM CORP 1981,-1985 */
1026644
1027645   /* Mainboard PALS */
1028646   ROM_REGION( 0x2000, "pals", 0 )
r253720r253721
1038656
1039657
1040658ROM_START( ibm5162 ) //MB p/n 62x1168
1041   ROM_REGION16_LE(0x1000000,"maincpu", 0)
659   ROM_REGION16_LE(0x20000,"bios", 0)
1042660
1043   ROM_LOAD16_BYTE("78x7460.u34", 0xf0000, 0x8000, CRC(1db4bd8f) SHA1(7be669fbb998d8b4626fefa7cd1208d3b2a88c31)) /* 78X7460 U34 // (C) IBM CORP // 1981-1986 */
1044   ROM_LOAD16_BYTE("78x7461.u35", 0xf0001, 0x8000, CRC(be14b453) SHA1(ec7c10087dbd53f9c6d1174e8f14212e2aec1818)) /* 78X7461 U35 // (C) IBM CORP // 1981-1986 */
661   ROM_LOAD16_BYTE("78x7460.u34", 0x10000, 0x8000, CRC(1db4bd8f) SHA1(7be669fbb998d8b4626fefa7cd1208d3b2a88c31)) /* 78X7460 U34 // (C) IBM CORP // 1981-1986 */
662   ROM_LOAD16_BYTE("78x7461.u35", 0x10001, 0x8000, CRC(be14b453) SHA1(ec7c10087dbd53f9c6d1174e8f14212e2aec1818)) /* 78X7461 U35 // (C) IBM CORP // 1981-1986 */
1045663
1046664   /* Mainboard PALS */
1047665   ROM_REGION( 0x2000, "pals", 0 )
r253720r253721
1056674   ROM_LOAD("59x7594.82s147an.u90", 0x0020, 0x0200, NO_DUMP) /* S N82S147AN 8629 // VCT 59X7594 */
1057675ROM_END
1058676
1059
1060ROM_START( i8530286 )
1061   ROM_REGION(0x1000000,"maincpu", 0)
1062   // saved from running machine
1063   ROM_LOAD16_BYTE("ps2m30.0", 0xe0000, 0x10000, CRC(9965a634) SHA1(c237b1760f8a4561ec47dc70fe2e9df664e56596))
1064   ROM_RELOAD(0xfe0000,0x10000)
1065   ROM_LOAD16_BYTE("ps2m30.1", 0xe0001, 0x10000, CRC(1448d3cb) SHA1(13fa26d895ce084278cd5ab1208fc16c80115ebe))
1066   ROM_RELOAD(0xfe0001,0x10000)
1067ROM_END
1068
1069/*
1070
10718530-H31 (Model 30/286)
1072======================
1073  P/N          Date
107433F5381A EC C01446 1990
1075
1076*/
1077ROM_START( i8530h31 )
1078   ROM_REGION(0x1000000,"maincpu", 0)
1079   ROM_LOAD( "33f5381a.bin", 0xe0000, 0x20000, CRC(ff57057d) SHA1(d7f1777077a8df43c3c14d175b9709bd3969c4b1))
1080   ROM_RELOAD(0xfe0000,0x20000)
1081ROM_END
1082
1083/*
10848535-043 (Model 35)
1085===================
1086  P/N    Checksum     Date
108704G2021    C26C       1991    ODD
108804G2022    9B94       1991    EVEN
1089*/
1090ROM_START( i8535043 )
1091   ROM_REGION(0x1000000,"maincpu", 0)
1092   ROM_LOAD16_BYTE( "04g2021.bin", 0xe0001, 0x10000, CRC(4069b2eb) SHA1(9855c84c81d1f07e1da66b1ca45c1c10c0717a90))
1093   ROM_RELOAD(0xfe0001, 0x10000)
1094   ROM_LOAD16_BYTE( "04g2022.bin", 0xe0000, 0x10000, CRC(35c1af65) SHA1(7d2445cc463969c808fdd78e0a27a03db5dfc698))
1095   ROM_RELOAD(0xfe0000, 0x10000)
1096ROM_END
1097
1098/*
10998550-021 (Model 50)
1100===================
1101 Code     Date       Internal
110290X7420  4/12/87 --> 90X6815
110390X7423  8/12/87 --> 90X6816
110490X7426  8/12/87 --> 90X6817
110590X7429 18/12/87 --> 90X6818
1106
1107Same ROMs used by : (According to http://www.ibmmuseum.com/ohlandl/8565/8560.html)
1108
1109IBM Personal System/2 Model 60 (8560-041 and 8560-071)
1110IBM Personal System/2 Model 65 SX (8565-061 and 8565-121)
1111
1112*/
1113ROM_START( i8550021 )
1114   ROM_REGION(0x1000000,"maincpu", 0)
1115   ROM_LOAD16_BYTE( "90x7423.zm14", 0xe0000, 0x8000, CRC(2c1633e0) SHA1(1af7faa526585a7cfb69e71d90a75e1f1c541586))
1116   ROM_RELOAD(0xfe0000, 0x8000)
1117   ROM_LOAD16_BYTE( "90x7426.zm16", 0xe0001, 0x8000, CRC(e7c762ce) SHA1(228f67dc915d84519da7fc1a59b7f9254278f3a0))
1118   ROM_RELOAD(0xfe0001, 0x8000)
1119   ROM_LOAD16_BYTE( "90x7420.zm13", 0xf0001, 0x8000, CRC(19a57cc1) SHA1(5b31ba66cd3690e651a450619a32b7210769945d))
1120   ROM_RELOAD(0xff0001, 0x8000)
1121   ROM_LOAD16_BYTE( "90x7429.zm18", 0xf0000, 0x8000, CRC(6f0120f6) SHA1(e112c291ac3d9f6507c93ac49ad26f9fd2245fd2))
1122   ROM_RELOAD(0xff0000, 0x8000)
1123
1124   ROM_REGION( 0x800, "keyboard", 0 )
1125   ROM_LOAD( "72x8455.zm82", 0x000, 0x800, CRC(7da223d3) SHA1(54c52ff6c6a2310f79b2c7e6d1259be9de868f0e) )
1126ROM_END
1127
1128/*
11298550-061 (Model 50Z)
1130===================
1131                  P/N              Date
1132AMI 8935MKN     15F8365    S63512  1988
1133AMI 8948MML     15F8366    S63512  1988
1134
1135http://ps-2.kev009.com:8081/ohlandl/8550/8550z_Planar.html
1136
1137
1138*/
1139ROM_START( i8550061 )
1140   ROM_REGION(0x1000000,"maincpu", 0)
1141   ROM_LOAD16_BYTE( "15f8365.zm5", 0xe0001, 0x10000, CRC(35aa3ecf) SHA1(a122531092a9cb08600b276da9c9c3ce385aab7b))
1142   ROM_RELOAD(0xfe0001, 0x10000)
1143   ROM_LOAD16_BYTE( "15f8366.zm6", 0xe0000, 0x10000, CRC(11bf564d) SHA1(0dda6a7ca9294cfaab5bdf4c05973be13b2766fc))
1144   ROM_RELOAD(0xfe0000, 0x10000)
1145ROM_END
1146
1147/*
11488555-X61 (Model 55SX)
1149===================
1150         Code     Date       Internal
1151ODD     33F8145  13/03/90 --> 33F8153
1152EVEN    33F8146  31/01/90 --> 33F8152
1153
11548555-081 (Model 55SX)
1155===================
1156                         Code          Date    Internal
1157ODD     AMI 9205MEN     92F0627 EC32680 88 --> 33F8153
1158EVEN    AMI 9203MGS     92F0626 EC32680 88 --> 33F8152
1159
1160*/
1161ROM_START( i8555081 )
1162   ROM_REGION(0x1000000,"maincpu", 0)
1163   ROM_LOAD16_BYTE("33f8145.zm40", 0xe0001, 0x10000, CRC(0895894c) SHA1(7cee77828867ad1bdbe0ac223bc25d23c65b28a0))
1164   ROM_RELOAD(0xfe0001, 0x10000)
1165   ROM_LOAD16_BYTE("33f8146.zm41", 0xe0000, 0x10000, CRC(c6020680) SHA1(b25a64e4b2dca07c567648401100e04e89bbcddb))
1166   ROM_RELOAD(0xfe0000, 0x10000)
1167ROM_END
1168
1169/*
11708580-071 (Model 80)
1171===================
1172                  Code    Date      Internal
1173AMI 8924MBW     90X8548   1987  --> 72X7551
1174AMI 8924MBL     90X8549   1987  --> 72X7554
1175AMI 8924MBG     90X8550   1987  --> 72X7557
1176AMI 8921MBK     90X8551   1987  --> 72X7560
1177*/
1178ROM_START( i8580071 )
1179   ROM_REGION(0x1000000,"maincpu", 0)
1180   ROM_LOAD32_BYTE( "90x8548.bin", 0xe0000, 0x8000, CRC(1f13eea5) SHA1(0bf53ad86f47db3825a713ea2e4ef23715cc4f79))
1181   ROM_LOAD32_BYTE( "90x8549.bin", 0xe0001, 0x8000, CRC(9e0f4a99) SHA1(b8600f04159ed281a57416274390ba9302be541b))
1182   ROM_LOAD32_BYTE( "90x8550.bin", 0xe0002, 0x8000, CRC(cb21df96) SHA1(0c2765f6becfa3f9171c4f13f7b74d19c4c9acc2))
1183   ROM_LOAD32_BYTE( "90x8551.bin", 0xe0003, 0x8000, CRC(3d7e9868) SHA1(2928fe0e48a573cc2c0c41bd7f7188a54a908229))
1184ROM_END
1185
1186/*
11878580-111 (Model 80)
1188===================
1189                 Code    Date    Internal
1190AMI 8934MDL     15F6637  1987 --> 15F6597
1191AMI 8944MDI     15F6639  1987 --> 15F6600
1192*/
1193ROM_START( i8580111 )
1194   ROM_REGION(0x1000000,"maincpu", 0)
1195   ROM_LOAD16_BYTE( "15f6637.bin", 0xe0000, 0x10000, CRC(76c36d1a) SHA1(c68d52a2e5fbd303225ebb006f91869b29ef700a))
1196   ROM_LOAD16_BYTE( "15f6639.bin", 0xe0001, 0x10000, CRC(82cf0f7d) SHA1(13bb39225757b89749af70e881af0228673dbe0c))
1197ROM_END
1198
1199677ROM_START( ibmps1es )
1200   ROM_REGION(0x1000000, "maincpu", 0)
1201   ROM_LOAD16_BYTE( "ibm_1057757_24-05-90.bin", 0xc0000, 0x20000, CRC(c8f81ea4) SHA1(925ed0e98f9f2997cb86554ef384bcfaf2a4ecbe))
1202   ROM_LOAD16_BYTE( "ibm_1057757_29-15-90.bin", 0xc0001, 0x20000, CRC(c2dd6b5c) SHA1(f6b5785002dd628b6b1fb3bb101e076299eba3b6))
678   ROM_REGION(0x40000, "bios", 0)
679   ROM_LOAD16_BYTE( "ibm_1057757_24-05-90.bin", 0x00000, 0x20000, CRC(c8f81ea4) SHA1(925ed0e98f9f2997cb86554ef384bcfaf2a4ecbe))
680   ROM_LOAD16_BYTE( "ibm_1057757_29-15-90.bin", 0x00001, 0x20000, CRC(c2dd6b5c) SHA1(f6b5785002dd628b6b1fb3bb101e076299eba3b6))
1203681ROM_END
1204682
1205683ROM_START( at )
1206   ROM_REGION(0x1000000,"maincpu", 0)
684   ROM_REGION(0x20000,"bios", 0)
1207685   ROM_SYSTEM_BIOS(0, "ami211", "AMI 21.1") /*(Motherboard Manufacturer: Dataexpert Corp. Motherboard) (Neat 286 Bios, 82c21x Chipset ) (BIOS release date:: 09-04-1990)*/
1208   ROMX_LOAD( "ami211.bin",     0xf0000, 0x10000,CRC(a0b5d269) SHA1(44db8227d35a09e39b93ed944f85dcddb0dd0d39), ROM_BIOS(1))
686   ROMX_LOAD( "ami211.bin",     0x10000, 0x10000,CRC(a0b5d269) SHA1(44db8227d35a09e39b93ed944f85dcddb0dd0d39), ROM_BIOS(1))
1209687   ROM_SYSTEM_BIOS(1, "at", "PC 286") /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 03-11-1987)*/
1210   ROMX_LOAD("at110387.1", 0xf0001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3),ROM_SKIP(1) | ROM_BIOS(2) )
1211   ROMX_LOAD("at110387.0", 0xf0000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1),ROM_SKIP(1) | ROM_BIOS(2) )
688   ROMX_LOAD("at110387.1", 0x10001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3),ROM_SKIP(1) | ROM_BIOS(2) )
689   ROMX_LOAD("at110387.0", 0x10000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1),ROM_SKIP(1) | ROM_BIOS(2) )
1212690   ROM_SYSTEM_BIOS(2, "ami206", "AMI C 206.1")  /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 15-10-1990)*/
1213   ROMX_LOAD( "amic206.bin",    0xf0000, 0x10000,CRC(25a67c34) SHA1(91e9d8cdc2f1b40a601a23ceaff2189fd1245f3b), ROM_BIOS(3) )
691   ROMX_LOAD( "amic206.bin",    0x10000, 0x10000,CRC(25a67c34) SHA1(91e9d8cdc2f1b40a601a23ceaff2189fd1245f3b), ROM_BIOS(3) )
1214692   ROM_SYSTEM_BIOS(3, "amic21", "AMI C 21.1") /* bad dump, checksum off by 8 in the lsb*/
1215   ROMX_LOAD( "amic21-2.bin",  0xf0001, 0x8000, CRC(8ffe7752) SHA1(68215f07a170ee7bdcb3e52b370d470af1741f7e),ROM_SKIP(1) | ROM_BIOS(4) )
1216   ROMX_LOAD( "amic21-1.bin",  0xf0000, 0x8000, CRC(5644ed38) SHA1(963555ec77845defc3b42b433280908e1797076e),ROM_SKIP(1) | ROM_BIOS(4) )
693   ROMX_LOAD( "amic21-2.bin",  0x10001, 0x8000, CRC(8ffe7752) SHA1(68215f07a170ee7bdcb3e52b370d470af1741f7e),ROM_SKIP(1) | ROM_BIOS(4) )
694   ROMX_LOAD( "amic21-1.bin",  0x10000, 0x8000, CRC(5644ed38) SHA1(963555ec77845defc3b42b433280908e1797076e),ROM_SKIP(1) | ROM_BIOS(4) )
1217695   ROM_SYSTEM_BIOS(4, "ami101", "AMI HT 101.1") /* Quadtel Enhanced 286 Bios Version 3.04.02 */
1218   ROMX_LOAD( "amiht-h.bin",   0xf0001, 0x8000, CRC(8022545f) SHA1(42541d4392ad00b0e064b3a8ccf2786d875c7c19),ROM_SKIP(1) | ROM_BIOS(5) )
1219   ROMX_LOAD( "amiht-l.bin",   0xf0000, 0x8000, CRC(285f6b8f) SHA1(2fce4ec53b68c9a7580858e16c926dc907820872),ROM_SKIP(1) | ROM_BIOS(5) )
696   ROMX_LOAD( "amiht-h.bin",   0x10001, 0x8000, CRC(8022545f) SHA1(42541d4392ad00b0e064b3a8ccf2786d875c7c19),ROM_SKIP(1) | ROM_BIOS(5) )
697   ROMX_LOAD( "amiht-l.bin",   0x10000, 0x8000, CRC(285f6b8f) SHA1(2fce4ec53b68c9a7580858e16c926dc907820872),ROM_SKIP(1) | ROM_BIOS(5) )
1220698   ROM_SYSTEM_BIOS(5, "ami121", "AMI HT 12.1")
1221   ROMX_LOAD( "ami2od86.bin",  0xf0001, 0x8000, CRC(04a2cec4) SHA1(564d37a8b2c0f4d0e23cd1e280a09d47c9945da8),ROM_SKIP(1) | ROM_BIOS(6) )
1222   ROMX_LOAD( "ami2ev86.bin",  0xf0000, 0x8000, CRC(55deb5c2) SHA1(19ce1a7cc985b5895c585e39211475de2e3b0dd1),ROM_SKIP(1) | ROM_BIOS(6) )
699   ROMX_LOAD( "ami2od86.bin",  0x10001, 0x8000, CRC(04a2cec4) SHA1(564d37a8b2c0f4d0e23cd1e280a09d47c9945da8),ROM_SKIP(1) | ROM_BIOS(6) )
700   ROMX_LOAD( "ami2ev86.bin",  0x10000, 0x8000, CRC(55deb5c2) SHA1(19ce1a7cc985b5895c585e39211475de2e3b0dd1),ROM_SKIP(1) | ROM_BIOS(6) )
1223701   ROM_SYSTEM_BIOS(6, "ami122", "AMI HT 12.2")
1224   ROMX_LOAD( "ami2od89.bin",  0xf0001, 0x8000, CRC(7c81bbe8) SHA1(a2c7eca586f6e2e76b9101191e080a1f1cb8b833),ROM_SKIP(1) | ROM_BIOS(7) )
1225   ROMX_LOAD( "ami2ev89.bin",  0xf0000, 0x8000, CRC(705d36e0) SHA1(0c9cfb71ced4587f109b9b6dfc2a9c92302fdb99),ROM_SKIP(1) | ROM_BIOS(7) )
702   ROMX_LOAD( "ami2od89.bin",  0x10001, 0x8000, CRC(7c81bbe8) SHA1(a2c7eca586f6e2e76b9101191e080a1f1cb8b833),ROM_SKIP(1) | ROM_BIOS(7) )
703   ROMX_LOAD( "ami2ev89.bin",  0x10000, 0x8000, CRC(705d36e0) SHA1(0c9cfb71ced4587f109b9b6dfc2a9c92302fdb99),ROM_SKIP(1) | ROM_BIOS(7) )
1226704   ROM_SYSTEM_BIOS(7, "ami123", "AMI HT 12.3") /*(Motherboard Manufacturer: Aquarius Systems USA Inc.) (BIOS release date:: 13-06-1990)*/
1227   ROMX_LOAD( "ht12h.bin",     0xf0001, 0x8000, CRC(db8b471e) SHA1(7b5fa1c131061fa7719247db3e282f6d30226778),ROM_SKIP(1) | ROM_BIOS(8) )
1228   ROMX_LOAD( "ht12l.bin",     0xf0000, 0x8000, CRC(74fd178a) SHA1(97c8283e574abbed962b701f3e8091fb82823b80),ROM_SKIP(1) | ROM_BIOS(8) )
705   ROMX_LOAD( "ht12h.bin",     0x10001, 0x8000, CRC(db8b471e) SHA1(7b5fa1c131061fa7719247db3e282f6d30226778),ROM_SKIP(1) | ROM_BIOS(8) )
706   ROMX_LOAD( "ht12l.bin",     0x10000, 0x8000, CRC(74fd178a) SHA1(97c8283e574abbed962b701f3e8091fb82823b80),ROM_SKIP(1) | ROM_BIOS(8) )
1229707   ROM_SYSTEM_BIOS(8, "ami181", "AMI HT 18.1") /* not a bad dump, sets unknown probably chipset related registers at 0x1e8 before failing post */
1230   ROMX_LOAD( "ht18.bin",     0xf0000, 0x10000, CRC(f65a6f9a) SHA1(7dfdf7d243f9f645165dc009c5097dd515f86fbb), ROM_BIOS(9) )
708   ROMX_LOAD( "ht18.bin",     0x10000, 0x10000, CRC(f65a6f9a) SHA1(7dfdf7d243f9f645165dc009c5097dd515f86fbb), ROM_BIOS(9) )
1231709   ROM_SYSTEM_BIOS(9, "amiht21", "AMI HT 21.1") /* as above */
1232   ROMX_LOAD( "ht21e.bin",    0xf0000, 0x10000, CRC(e80f7fed) SHA1(62d958d98c95e9e4d1b290a6c1054ae98770f276), ROM_BIOS(10) )
710   ROMX_LOAD( "ht21e.bin",    0x10000, 0x10000, CRC(e80f7fed) SHA1(62d958d98c95e9e4d1b290a6c1054ae98770f276), ROM_BIOS(10) )
1233711   ROM_SYSTEM_BIOS(10, "amip1", "AMI P.1") /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 09-04-1990)*/
1234   ROMX_LOAD( "poisk-h.bin",   0xf0001, 0x8000, CRC(83fd3f8c) SHA1(ca94850bbd949b97b11710629886b0ee69489a81),ROM_SKIP(1) | ROM_BIOS(11) )
1235   ROMX_LOAD( "poisk-l.bin",   0xf0000, 0x8000, CRC(0b2ed291) SHA1(bb51a3f317cf4d429a6cfb44a46ca0ac39d9aaa7),ROM_SKIP(1) | ROM_BIOS(11) )
712   ROMX_LOAD( "poisk-h.bin",   0x10001, 0x8000, CRC(83fd3f8c) SHA1(ca94850bbd949b97b11710629886b0ee69489a81),ROM_SKIP(1) | ROM_BIOS(11) )
713   ROMX_LOAD( "poisk-l.bin",   0x10000, 0x8000, CRC(0b2ed291) SHA1(bb51a3f317cf4d429a6cfb44a46ca0ac39d9aaa7),ROM_SKIP(1) | ROM_BIOS(11) )
1236714   ROM_SYSTEM_BIOS(11, "aw201", "Award 201")
1237   ROMX_LOAD( "83201-5h.bin",  0xf0001, 0x8000, CRC(968d1fc0) SHA1(dc4122a6c696f0b43e7894dc1b669346eed755d5),ROM_SKIP(1) | ROM_BIOS(12) )
1238   ROMX_LOAD( "83201-5l.bin",  0xf0000, 0x8000, CRC(bf50a89a) SHA1(2349a1db6017a7fb0673e99d3680c8753407be8d),ROM_SKIP(1) | ROM_BIOS(12) )
715   ROMX_LOAD( "83201-5h.bin",  0x10001, 0x8000, CRC(968d1fc0) SHA1(dc4122a6c696f0b43e7894dc1b669346eed755d5),ROM_SKIP(1) | ROM_BIOS(12) )
716   ROMX_LOAD( "83201-5l.bin",  0x10000, 0x8000, CRC(bf50a89a) SHA1(2349a1db6017a7fb0673e99d3680c8753407be8d),ROM_SKIP(1) | ROM_BIOS(12) )
1239717   ROM_SYSTEM_BIOS(12, "aw303", "Award 303 NFS")
1240   ROMX_LOAD( "aw303-hi.bin",  0xf8001, 0x4000, CRC(78f32d7e) SHA1(1c88398fb171b33b7e6191bad63704ae85bfed8b), ROM_SKIP(1) | ROM_BIOS(13) )
1241   ROMX_LOAD( "aw303-lo.bin",  0xf8000, 0x4000, CRC(3d2a70c0) SHA1(1329113bec514ed2a6d803067b1132744ef534dd), ROM_SKIP(1) | ROM_BIOS(13) )
718   ROMX_LOAD( "aw303-hi.bin",  0x18001, 0x4000, CRC(78f32d7e) SHA1(1c88398fb171b33b7e6191bad63704ae85bfed8b), ROM_SKIP(1) | ROM_BIOS(13) )
719   ROMX_LOAD( "aw303-lo.bin",  0x18000, 0x4000, CRC(3d2a70c0) SHA1(1329113bec514ed2a6d803067b1132744ef534dd), ROM_SKIP(1) | ROM_BIOS(13) )
1242720   ROM_SYSTEM_BIOS(13, "aw303gs", "Award 303GS")
1243   ROMX_LOAD( "aw303gs-hi.bin",  0xf8001, 0x4000, CRC(82392e18) SHA1(042453b7b29933a1b72301d21fcf8fa6b293c9c9), ROM_SKIP(1) | ROM_BIOS(14) )
1244   ROMX_LOAD( "aw303gs-lo.bin",  0xf8000, 0x4000, CRC(a4cf8ba1) SHA1(b73e34be3b2754aaed1ac06471f4441fea06c67c), ROM_SKIP(1) | ROM_BIOS(14) )
721   ROMX_LOAD( "aw303gs-hi.bin",  0x18001, 0x4000, CRC(82392e18) SHA1(042453b7b29933a1b72301d21fcf8fa6b293c9c9), ROM_SKIP(1) | ROM_BIOS(14) )
722   ROMX_LOAD( "aw303gs-lo.bin",  0x18000, 0x4000, CRC(a4cf8ba1) SHA1(b73e34be3b2754aaed1ac06471f4441fea06c67c), ROM_SKIP(1) | ROM_BIOS(14) )
1245723ROM_END
1246724
1247725ROM_START( cmdpc30 )
1248   ROM_REGION(0x1000000,"maincpu", 0)
1249   ROMX_LOAD( "commodore pc 30 iii even.bin", 0xf8000, 0x4000, CRC(36307aa9) SHA1(50237ffea703b867de426ab9ebc2af46bac1d0e1),ROM_SKIP(1))
1250   ROMX_LOAD( "commodore pc 30 iii odd.bin",  0xf8001, 0x4000, CRC(41bae42d) SHA1(27d6ad9554be86359d44331f25591e3122a31519),ROM_SKIP(1))
726   ROM_REGION(0x20000,"bios", 0)
727   ROMX_LOAD( "commodore pc 30 iii even.bin", 0x18000, 0x4000, CRC(36307aa9) SHA1(50237ffea703b867de426ab9ebc2af46bac1d0e1),ROM_SKIP(1))
728   ROMX_LOAD( "commodore pc 30 iii odd.bin",  0x18001, 0x4000, CRC(41bae42d) SHA1(27d6ad9554be86359d44331f25591e3122a31519),ROM_SKIP(1))
1251729ROM_END
1252730
1253731ROM_START( atvga )
1254   ROM_REGION(0x1000000,"maincpu", 0)
732   ROM_REGION(0x20000,"bios", 0)
1255733   ROM_SYSTEM_BIOS(0, "vl82c", "VL82C311L-FC4")/*(Motherboard Manufacturer: Biostar Microtech Corp.) (BIOS release date: 05-05-1991)*/
1256   ROMX_LOAD( "2vlm001.bin",     0xf0000, 0x10000, CRC(f34d800a) SHA1(638aca592a0e525f957beb525e95ca666a994ee8), ROM_BIOS(1) )
734   ROMX_LOAD( "2vlm001.bin",     0x10000, 0x10000, CRC(f34d800a) SHA1(638aca592a0e525f957beb525e95ca666a994ee8), ROM_BIOS(1) )
1257735   ROM_SYSTEM_BIOS(1, "ami211", "AMI 21.1") /*(Motherboard Manufacturer: Dataexpert Corp. Motherboard) (Neat 286 Bios, 82c21x Chipset ) (BIOS release date:: 09-04-1990)*/
1258   ROMX_LOAD( "ami211.bin",     0xf0000, 0x10000,CRC(a0b5d269) SHA1(44db8227d35a09e39b93ed944f85dcddb0dd0d39), ROM_BIOS(2))
736   ROMX_LOAD( "ami211.bin",     0x10000, 0x10000,CRC(a0b5d269) SHA1(44db8227d35a09e39b93ed944f85dcddb0dd0d39), ROM_BIOS(2))
1259737   ROM_SYSTEM_BIOS(2, "ami206", "AMI C 206.1") /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 15-10-1990)*/
1260   ROMX_LOAD( "amic206.bin",    0xf0000, 0x10000,CRC(25a67c34) SHA1(91e9d8cdc2f1b40a601a23ceaff2189fd1245f3b), ROM_BIOS(3) )
738   ROMX_LOAD( "amic206.bin",    0x10000, 0x10000,CRC(25a67c34) SHA1(91e9d8cdc2f1b40a601a23ceaff2189fd1245f3b), ROM_BIOS(3) )
1261739   ROM_SYSTEM_BIOS(3, "amic21", "AMI C 21.1") /* bad dump, checksum off by 8 in the lsb*/
1262   ROMX_LOAD( "amic21-2.bin",  0xf0001, 0x8000, CRC(8ffe7752) SHA1(68215f07a170ee7bdcb3e52b370d470af1741f7e),ROM_SKIP(1) | ROM_BIOS(4) )
1263   ROMX_LOAD( "amic21-1.bin",  0xf0000, 0x8000, CRC(5644ed38) SHA1(963555ec77845defc3b42b433280908e1797076e),ROM_SKIP(1) | ROM_BIOS(4) )
740   ROMX_LOAD( "amic21-2.bin",  0x10001, 0x8000, CRC(8ffe7752) SHA1(68215f07a170ee7bdcb3e52b370d470af1741f7e),ROM_SKIP(1) | ROM_BIOS(4) )
741   ROMX_LOAD( "amic21-1.bin",  0x10000, 0x8000, CRC(5644ed38) SHA1(963555ec77845defc3b42b433280908e1797076e),ROM_SKIP(1) | ROM_BIOS(4) )
1264742   ROM_SYSTEM_BIOS(4, "ami101", "AMI HT 101.1") /* Quadtel Enhanced 286 Bios Version 3.04.02 */
1265   ROMX_LOAD( "amiht-h.bin",   0xf0001, 0x8000, CRC(8022545f) SHA1(42541d4392ad00b0e064b3a8ccf2786d875c7c19),ROM_SKIP(1) | ROM_BIOS(5) )
1266   ROMX_LOAD( "amiht-l.bin",   0xf0000, 0x8000, CRC(285f6b8f) SHA1(2fce4ec53b68c9a7580858e16c926dc907820872),ROM_SKIP(1) | ROM_BIOS(5) )
743   ROMX_LOAD( "amiht-h.bin",   0x10001, 0x8000, CRC(8022545f) SHA1(42541d4392ad00b0e064b3a8ccf2786d875c7c19),ROM_SKIP(1) | ROM_BIOS(5) )
744   ROMX_LOAD( "amiht-l.bin",   0x10000, 0x8000, CRC(285f6b8f) SHA1(2fce4ec53b68c9a7580858e16c926dc907820872),ROM_SKIP(1) | ROM_BIOS(5) )
1267745   ROM_SYSTEM_BIOS(5, "ami121", "AMI HT 12.1")
1268   ROMX_LOAD( "ami2od86.bin",  0xf0001, 0x8000, CRC(04a2cec4) SHA1(564d37a8b2c0f4d0e23cd1e280a09d47c9945da8),ROM_SKIP(1) | ROM_BIOS(6) )
1269   ROMX_LOAD( "ami2ev86.bin",  0xf0000, 0x8000, CRC(55deb5c2) SHA1(19ce1a7cc985b5895c585e39211475de2e3b0dd1),ROM_SKIP(1) | ROM_BIOS(6) )
746   ROMX_LOAD( "ami2od86.bin",  0x10001, 0x8000, CRC(04a2cec4) SHA1(564d37a8b2c0f4d0e23cd1e280a09d47c9945da8),ROM_SKIP(1) | ROM_BIOS(6) )
747   ROMX_LOAD( "ami2ev86.bin",  0x10000, 0x8000, CRC(55deb5c2) SHA1(19ce1a7cc985b5895c585e39211475de2e3b0dd1),ROM_SKIP(1) | ROM_BIOS(6) )
1270748   ROM_SYSTEM_BIOS(6, "ami122", "AMI HT 12.2")
1271   ROMX_LOAD( "ami2od89.bin",  0xf0001, 0x8000, CRC(7c81bbe8) SHA1(a2c7eca586f6e2e76b9101191e080a1f1cb8b833),ROM_SKIP(1) | ROM_BIOS(7) )
1272   ROMX_LOAD( "ami2ev89.bin",  0xf0000, 0x8000, CRC(705d36e0) SHA1(0c9cfb71ced4587f109b9b6dfc2a9c92302fdb99),ROM_SKIP(1) | ROM_BIOS(7) )
749   ROMX_LOAD( "ami2od89.bin",  0x10001, 0x8000, CRC(7c81bbe8) SHA1(a2c7eca586f6e2e76b9101191e080a1f1cb8b833),ROM_SKIP(1) | ROM_BIOS(7) )
750   ROMX_LOAD( "ami2ev89.bin",  0x10000, 0x8000, CRC(705d36e0) SHA1(0c9cfb71ced4587f109b9b6dfc2a9c92302fdb99),ROM_SKIP(1) | ROM_BIOS(7) )
1273751   ROM_SYSTEM_BIOS(7, "ami123", "AMI HT 12.3") /*(Motherboard Manufacturer: Aquarius Systems USA Inc.) (BIOS release date:: 13-06-1990)*/
1274   ROMX_LOAD( "ht12h.bin",     0xf0001, 0x8000, CRC(db8b471e) SHA1(7b5fa1c131061fa7719247db3e282f6d30226778),ROM_SKIP(1) | ROM_BIOS(8) )
1275   ROMX_LOAD( "ht12l.bin",     0xf0000, 0x8000, CRC(74fd178a) SHA1(97c8283e574abbed962b701f3e8091fb82823b80),ROM_SKIP(1) | ROM_BIOS(8) )
752   ROMX_LOAD( "ht12h.bin",     0x10001, 0x8000, CRC(db8b471e) SHA1(7b5fa1c131061fa7719247db3e282f6d30226778),ROM_SKIP(1) | ROM_BIOS(8) )
753   ROMX_LOAD( "ht12l.bin",     0x10000, 0x8000, CRC(74fd178a) SHA1(97c8283e574abbed962b701f3e8091fb82823b80),ROM_SKIP(1) | ROM_BIOS(8) )
1276754   ROM_SYSTEM_BIOS(8, "ami181", "AMI HT 18.1") /* not a bad dump, sets unknown probably chipset related registers at 0x1e8 before failing post */
1277   ROMX_LOAD( "ht18.bin",     0xf0000, 0x10000, CRC(f65a6f9a) SHA1(7dfdf7d243f9f645165dc009c5097dd515f86fbb), ROM_BIOS(9) )
755   ROMX_LOAD( "ht18.bin",     0x10000, 0x10000, CRC(f65a6f9a) SHA1(7dfdf7d243f9f645165dc009c5097dd515f86fbb), ROM_BIOS(9) )
1278756   ROM_SYSTEM_BIOS(9, "amiht21", "AMI HT 21.1") /* as above */
1279   ROMX_LOAD( "ht21e.bin",    0xf0000, 0x10000, CRC(e80f7fed) SHA1(62d958d98c95e9e4d1b290a6c1054ae98770f276), ROM_BIOS(10) )
757   ROMX_LOAD( "ht21e.bin",    0x10000, 0x10000, CRC(e80f7fed) SHA1(62d958d98c95e9e4d1b290a6c1054ae98770f276), ROM_BIOS(10) )
1280758   ROM_SYSTEM_BIOS(10, "amip1", "AMI P.1") /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 09-04-1990)*/
1281   ROMX_LOAD( "poisk-h.bin",   0xf0001, 0x8000, CRC(83fd3f8c) SHA1(ca94850bbd949b97b11710629886b0ee69489a81),ROM_SKIP(1) | ROM_BIOS(11) )
1282   ROMX_LOAD( "poisk-l.bin",   0xf0000, 0x8000, CRC(0b2ed291) SHA1(bb51a3f317cf4d429a6cfb44a46ca0ac39d9aaa7),ROM_SKIP(1) | ROM_BIOS(11) )
759   ROMX_LOAD( "poisk-h.bin",   0x10001, 0x8000, CRC(83fd3f8c) SHA1(ca94850bbd949b97b11710629886b0ee69489a81),ROM_SKIP(1) | ROM_BIOS(11) )
760   ROMX_LOAD( "poisk-l.bin",   0x10000, 0x8000, CRC(0b2ed291) SHA1(bb51a3f317cf4d429a6cfb44a46ca0ac39d9aaa7),ROM_SKIP(1) | ROM_BIOS(11) )
1283761   ROM_SYSTEM_BIOS(11, "ami1131", "AMI-1131") /*(Motherboard Manufacturer: Elitegroup Computer Co., Ltd.) (BIOS release date:: 09-04-1990)*/
1284   ROMX_LOAD( "2hlm003h.bin",   0xf0001, 0x8000, CRC(2babb42b) SHA1(3da6538f44b434cdec0cbdddd392ccfd34666f06),ROM_SKIP(1) | ROM_BIOS(12) )
1285   ROMX_LOAD( "2hlm003l.bin",   0xf0000, 0x8000, CRC(317cbcbf) SHA1(1adad6280d8b07c2921fc5fc13ecaa10e6bfebdc),ROM_SKIP(1) | ROM_BIOS(12) )
762   ROMX_LOAD( "2hlm003h.bin",   0x10001, 0x8000, CRC(2babb42b) SHA1(3da6538f44b434cdec0cbdddd392ccfd34666f06),ROM_SKIP(1) | ROM_BIOS(12) )
763   ROMX_LOAD( "2hlm003l.bin",   0x10000, 0x8000, CRC(317cbcbf) SHA1(1adad6280d8b07c2921fc5fc13ecaa10e6bfebdc),ROM_SKIP(1) | ROM_BIOS(12) )
1286764   ROM_SYSTEM_BIOS(12, "at", "PC 286") /*(Motherboard Manufacturer: Unknown.) (BIOS release date:: 03-11-1987)*/
1287   ROMX_LOAD("at110387.1", 0xf0001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3),ROM_SKIP(1) | ROM_BIOS(13) )
1288   ROMX_LOAD("at110387.0", 0xf0000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1),ROM_SKIP(1) | ROM_BIOS(13) )
765   ROMX_LOAD("at110387.1", 0x10001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3),ROM_SKIP(1) | ROM_BIOS(13) )
766   ROMX_LOAD("at110387.0", 0x10000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1),ROM_SKIP(1) | ROM_BIOS(13) )
1289767ROM_END
1290768
1291769ROM_START( xb42639 )
1292770   /* actual VGA BIOS not dumped*/
1293   ROM_REGION(0x1000000, "maincpu", 0)
771   ROM_REGION(0x20000, "bios", 0)
1294772   // XEN-S (Venus I Motherboard)
1295   ROM_LOAD16_BYTE("3-10-17i.lo", 0xf0000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
1296   ROM_RELOAD(0xff0000,0x8000)
1297   ROM_LOAD16_BYTE("3-10-17i.hi", 0xf0001, 0x8000, CRC(d66710eb) SHA1(e8c1cd5f9ecfbd8825655e416d7ddf2ae362e69b))
1298   ROM_RELOAD(0xff0001,0x8000)
773   ROM_LOAD16_BYTE("3-10-17i.lo", 0x10000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
774   ROM_LOAD16_BYTE("3-10-17i.hi", 0x10001, 0x8000, CRC(d66710eb) SHA1(e8c1cd5f9ecfbd8825655e416d7ddf2ae362e69b))
1299775ROM_END
1300776
1301777ROM_START( xb42639a )
1302778   /* actual VGA BIOS not dumped*/
1303   ROM_REGION(0x1000000, "maincpu", 0)
779   ROM_REGION(0x20000, "bios", 0)
1304780   // XEN-S (Venus II Motherboard)
1305   ROM_LOAD16_BYTE("10217.lo", 0xf0000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
1306   ROM_RELOAD(0xff0000,0x8000)
1307   ROM_LOAD16_BYTE("10217.hi", 0xf0001, 0x8000, CRC(111725cf) SHA1(f6018a45bda4476d40c5881fb0a506ff75ec1688))
1308   ROM_RELOAD(0xff0001,0x8000)
781   ROM_LOAD16_BYTE("10217.lo", 0x10000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
782   ROM_LOAD16_BYTE("10217.hi", 0x10001, 0x8000, CRC(111725cf) SHA1(f6018a45bda4476d40c5881fb0a506ff75ec1688))
1309783ROM_END
1310784
1311785ROM_START( xb42664 )
1312786   /* actual VGA BIOS not dumped */
1313   ROM_REGION(0x1000000, "maincpu", 0)
787   ROM_REGION(0x20000, "bios", 0)
1314788   // XEN-S (Venus I Motherboard)
1315   ROM_LOAD16_BYTE("3-10-17i.lo", 0xf0000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
1316   ROM_RELOAD(0xff0000,0x8000)
1317   ROM_LOAD16_BYTE("3-10-17i.hi", 0xf0001, 0x8000, CRC(d66710eb) SHA1(e8c1cd5f9ecfbd8825655e416d7ddf2ae362e69b))
1318   ROM_RELOAD(0xff0001,0x8000)
789   ROM_LOAD16_BYTE("3-10-17i.lo", 0x10000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
790   ROM_LOAD16_BYTE("3-10-17i.hi", 0x10001, 0x8000, CRC(d66710eb) SHA1(e8c1cd5f9ecfbd8825655e416d7ddf2ae362e69b))
1319791ROM_END
1320792
1321793ROM_START( xb42664a )
1322794   /* actual VGA BIOS not dumped*/
1323   ROM_REGION(0x1000000, "maincpu", 0)
795   ROM_REGION(0x20000, "bios", 0)
1324796   // XEN-S (Venus II Motherboard)
1325   ROM_LOAD16_BYTE("10217.lo", 0xf0000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
1326   ROM_RELOAD(0xff0000,0x8000)
1327   ROM_LOAD16_BYTE("10217.hi", 0xf0001, 0x8000, CRC(111725cf) SHA1(f6018a45bda4476d40c5881fb0a506ff75ec1688))
1328   ROM_RELOAD(0xff0001,0x8000)
797   ROM_LOAD16_BYTE("10217.lo", 0x10000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
798   ROM_LOAD16_BYTE("10217.hi", 0x10001, 0x8000, CRC(111725cf) SHA1(f6018a45bda4476d40c5881fb0a506ff75ec1688))
1329799ROM_END
1330800
1331801
1332802ROM_START( neat )
1333   ROM_REGION(0x1000000,"maincpu", 0)
803   ROM_REGION(0x20000,"bios", 0)
1334804   //ROM_SYSTEM_BIOS(0, "neat286", "NEAT 286")
1335   ROM_LOAD16_BYTE("at030389.0", 0xf0000, 0x8000, CRC(4c36e61d) SHA1(094e8d5e6819889163cb22a2cf559186de782582))
1336   //ROM_RELOAD(0xff0000,0x8000)
1337   ROM_LOAD16_BYTE("at030389.1", 0xf0001, 0x8000, CRC(4e90f294) SHA1(18c21fd8d7e959e2292a9afbbaf78310f9cad12f))
1338   //ROM_RELOAD(0xff0001,0x8000)
805   ROM_LOAD16_BYTE("at030389.0", 0x10000, 0x8000, CRC(4c36e61d) SHA1(094e8d5e6819889163cb22a2cf559186de782582))
806   ROM_LOAD16_BYTE("at030389.1", 0x10001, 0x8000, CRC(4e90f294) SHA1(18c21fd8d7e959e2292a9afbbaf78310f9cad12f))
1339807ROM_END
1340808
1341809ROM_START( ct386sx )
1342   ROM_REGION(0x1000000,"maincpu", 0)
810   ROM_REGION(0x20000,"bios", 0)
1343811   ROM_SYSTEM_BIOS(0, "neatsx", "NEATsx 386sx")
1344   ROMX_LOAD("012l-u25.bin", 0xf0000, 0x8000, CRC(4ab1862d) SHA1(d4e8d0ff43731270478ca7671a129080ff350a4f),ROM_SKIP(1) | ROM_BIOS(1) )
1345   ROMX_LOAD("012h-u24.bin", 0xf0001, 0x8000, CRC(17472521) SHA1(7588c148fe53d9dc4cb2d0ab6e0fd51a39bb5d1a),ROM_SKIP(1) | ROM_BIOS(1) )
1346   ROM_FILL(0xfe2c9, 1, 0x00) // skip incompatible keyboard controller test
1347   ROM_FILL(0xfe2cb, 1, 0xbb) // fix checksum
812   ROMX_LOAD("012l-u25.bin", 0x10000, 0x8000, CRC(4ab1862d) SHA1(d4e8d0ff43731270478ca7671a129080ff350a4f),ROM_SKIP(1) | ROM_BIOS(1) )
813   ROMX_LOAD("012h-u24.bin", 0x10001, 0x8000, CRC(17472521) SHA1(7588c148fe53d9dc4cb2d0ab6e0fd51a39bb5d1a),ROM_SKIP(1) | ROM_BIOS(1) )
814   ROM_FILL(0x1e2c9, 1, 0x00) // skip incompatible keyboard controller test
815   ROM_FILL(0x1e2cb, 1, 0xbb) // fix checksum
1348816ROM_END
1349817
1350818ROM_START( at386 )
1351   ROM_REGION(0x1000000,"maincpu", 0)
819   ROM_REGION(0x20000,"bios", 0)
1352820   ROM_SYSTEM_BIOS(0, "ami386", "AMI 386")
1353   ROMX_LOAD("ami386.bin",  0xf0000, 0x10000, CRC(3a807d7f) SHA1(8289ba36a3dfc3324333b1a834bc6b0402b546f0), ROM_BIOS(1))
821   ROMX_LOAD("ami386.bin",  0x10000, 0x10000, CRC(3a807d7f) SHA1(8289ba36a3dfc3324333b1a834bc6b0402b546f0), ROM_BIOS(1))
1354822   ROM_SYSTEM_BIOS(1, "at386", "unknown 386")  // This dump possibly comes from a MITAC INC 386 board, given that the original driver had it as manufacturer
1355   ROMX_LOAD("at386.bin",  0xf0000, 0x10000, CRC(3df9732a) SHA1(def71567dee373dc67063f204ef44ffab9453ead), ROM_BIOS(2))
1356   //ROM_RELOAD(0xff0000,0x10000)
1357
823   ROMX_LOAD("at386.bin",  0x10000, 0x10000, CRC(3df9732a) SHA1(def71567dee373dc67063f204ef44ffab9453ead), ROM_BIOS(2))
1358824   ROM_SYSTEM_BIOS(2, "amicg", "AMI CG")
1359   ROMX_LOAD( "amicg.1",        0xf0000, 0x10000,CRC(8408965a) SHA1(9893d3ac851e01b06a68a67d3721df36ca2c96f5), ROM_BIOS(3) )
825   ROMX_LOAD( "amicg.1",        0x10000, 0x10000,CRC(8408965a) SHA1(9893d3ac851e01b06a68a67d3721df36ca2c96f5), ROM_BIOS(3) )
1360826ROM_END
1361827
1362828
1363829ROM_START( at486 )
1364   ROM_REGION(0x1000000, "maincpu", 0)
830   ROM_REGION(0x20000, "bios", 0)
1365831
1366832   ROM_SYSTEM_BIOS(0, "at486", "PC/AT 486")
1367   ROMX_LOAD("at486.bin",   0x0f0000, 0x10000, CRC(31214616) SHA1(51b41fa44d92151025fc9ad06e518e906935e689), ROM_BIOS(1))
833   ROMX_LOAD("at486.bin",   0x10000, 0x10000, CRC(31214616) SHA1(51b41fa44d92151025fc9ad06e518e906935e689), ROM_BIOS(1))
1368834   ROM_SYSTEM_BIOS(1, "mg48602", "UMC MG-48602")
1369   ROMX_LOAD("mg48602.bin", 0x0f0000, 0x10000, CRC(45797823) SHA1(a5fab258aecabde615e1e97af5911d6cf9938c11), ROM_BIOS(2))
835   ROMX_LOAD("mg48602.bin", 0x10000, 0x10000, CRC(45797823) SHA1(a5fab258aecabde615e1e97af5911d6cf9938c11), ROM_BIOS(2))
1370836   ROM_SYSTEM_BIOS(2, "ft01232", "Free Tech 01-232")
1371   ROMX_LOAD("ft01232.bin", 0x0f0000, 0x10000, CRC(30efaf92) SHA1(665c8ef05ca052dcc06bb473c9539546bfef1e86), ROM_BIOS(3))
837   ROMX_LOAD("ft01232.bin", 0x10000, 0x10000, CRC(30efaf92) SHA1(665c8ef05ca052dcc06bb473c9539546bfef1e86), ROM_BIOS(3))
1372838
1373839   /* 486 boards from FIC
1374840
r253720r253721
1384850
1385851   /* this is the year 2000 beta bios from FIC, supports GIO-VT, GAC-V, GAC-2, VIP-IO, VIO-VP and GVT-2 */
1386852   ROM_SYSTEM_BIOS(3, "ficy2k", "FIC 486 3.276GN1") /* 1997-06-16, includes CL-GD5429 VGA BIOS 1.00a */
1387   ROMX_LOAD("3276gn1.bin",  0x0e0000, 0x20000, CRC(d4ff0cc4) SHA1(567b6bdbc9bff306c8c955f275e01ae4c45fd5f2), ROM_BIOS(4))
853   ROMX_LOAD("3276gn1.bin",  0x00000, 0x20000, CRC(d4ff0cc4) SHA1(567b6bdbc9bff306c8c955f275e01ae4c45fd5f2), ROM_BIOS(4))
1388854
1389855   ROM_SYSTEM_BIOS(4, "ficgac2", "FIC 486-GAC-2") /* 1994-04-29, includes CL-GD542X VGA BIOS 1.50 */
1390   ROMX_LOAD("att409be.bin", 0x0e0000, 0x20000, CRC(c58e017b) SHA1(14c19e720ce62eb2afe28a70f4e4ebafab0f9e77), ROM_BIOS(5))
856   ROMX_LOAD("att409be.bin", 0x00000, 0x20000, CRC(c58e017b) SHA1(14c19e720ce62eb2afe28a70f4e4ebafab0f9e77), ROM_BIOS(5))
1391857   ROM_SYSTEM_BIOS(5, "ficgacv", "FIC 486-GAC-V 3.27GN1") /* 1996-04-08, includes CL-GD542X VGA BIOS 1.41 */
1392   ROMX_LOAD("327gn1.awd",   0x0e0000, 0x20000, CRC(017614d4) SHA1(2228c28f21a7e78033d24319449297936465b164), ROM_BIOS(6))
858   ROMX_LOAD("327gn1.awd",   0x00000, 0x20000, CRC(017614d4) SHA1(2228c28f21a7e78033d24319449297936465b164), ROM_BIOS(6))
1393859   ROM_SYSTEM_BIOS(6, "ficgiovp", "FIC 486-GIO-VP 3.15GN") /* 1994-05-06 */
1394   ROMX_LOAD("giovp315.rom", 0x0f0000, 0x10000, CRC(e102c3f5) SHA1(f15a7e9311cc17afe86da0b369607768b030ddec), ROM_BIOS(7))
860   ROMX_LOAD("giovp315.rom", 0x10000, 0x10000, CRC(e102c3f5) SHA1(f15a7e9311cc17afe86da0b369607768b030ddec), ROM_BIOS(7))
1395861   ROM_SYSTEM_BIOS(7, "ficgiovt", "FIC 486-GIO-VT 3.06G") /* 1994-11-20 */
1396   ROMX_LOAD("306gcd00.awd", 0x0f0000, 0x10000, CRC(75f3ded4) SHA1(999d4b58204e0b0f33262d0613c855b528bf9597), ROM_BIOS(8))
862   ROMX_LOAD("306gcd00.awd", 0x10000, 0x10000, CRC(75f3ded4) SHA1(999d4b58204e0b0f33262d0613c855b528bf9597), ROM_BIOS(8))
1397863
1398864   ROM_SYSTEM_BIOS(8, "ficgiovt2_326", "FIC 486-GIO-VT2 3.26G")  /* 1994-07-06 */
1399   ROMX_LOAD("326g1c00.awd", 0x0f0000, 0x10000, CRC(2e729ab5) SHA1(b713f97fa0e0b62856dab917f417f5b21020b354), ROM_BIOS(9))
865   ROMX_LOAD("326g1c00.awd", 0x10000, 0x10000, CRC(2e729ab5) SHA1(b713f97fa0e0b62856dab917f417f5b21020b354), ROM_BIOS(9))
1400866   ROM_SYSTEM_BIOS(9, "ficgiovt2_3276", "FIC 486-GIO-VT2 3.276") /* 1997-07-17 */
1401   ROMX_LOAD("32760000.bin", 0x0f0000, 0x10000, CRC(ad179128) SHA1(595f67ba4a1c8eb5e118d75bf657fff3803dcf4f), ROM_BIOS(10))
867   ROMX_LOAD("32760000.bin", 0x10000, 0x10000, CRC(ad179128) SHA1(595f67ba4a1c8eb5e118d75bf657fff3803dcf4f), ROM_BIOS(10))
1402868
1403869   ROM_SYSTEM_BIOS(10, "ficgvt2", "FIC 486-GVT-2 3.07G") /* 1994-11-02 */
1404   ROMX_LOAD("3073.bin",     0x0f0000, 0x10000, CRC(a6723863) SHA1(ee93a2f1ec84a3d67e267d0a490029f9165f1533), ROM_BIOS(11))
870   ROMX_LOAD("3073.bin",     0x10000, 0x10000, CRC(a6723863) SHA1(ee93a2f1ec84a3d67e267d0a490029f9165f1533), ROM_BIOS(11))
1405871   ROM_SYSTEM_BIOS(11, "ficgpak2", "FIC 486-PAK-2 5.15S") /* 1995-06-27, includes Phoenix S3 TRIO64 Enhanced VGA BIOS 1.4-01 */
1406   ROMX_LOAD("515sbd8a.awd", 0x0e0000, 0x20000, CRC(778247e1) SHA1(07d8f0f2464abf507be1e8dfa06cd88737782411), ROM_BIOS(12))
872   ROMX_LOAD("515sbd8a.awd", 0x00000, 0x20000, CRC(778247e1) SHA1(07d8f0f2464abf507be1e8dfa06cd88737782411), ROM_BIOS(12))
1407873
1408874   ROM_SYSTEM_BIOS(12, "ficpio3g7", "FIC 486-PIO-3 1.15G705") /* pnp */
1409   ROMX_LOAD("115g705.awd",  0x0e0000, 0x20000, CRC(ddb1544a) SHA1(d165c9ecdc9397789abddfe0fef69fdf954fa41b), ROM_BIOS(13))
875   ROMX_LOAD("115g705.awd",  0x00000, 0x20000, CRC(ddb1544a) SHA1(d165c9ecdc9397789abddfe0fef69fdf954fa41b), ROM_BIOS(13))
1410876   ROM_SYSTEM_BIOS(13, "ficpio3g1", "FIC 486-PIO-3 1.15G105") /* non-pnp */
1411   ROMX_LOAD("115g105.awd",  0x0e0000, 0x20000, CRC(b327eb83) SHA1(9e1ff53e07ca035d8d43951bac345fec7131678d), ROM_BIOS(14))
877   ROMX_LOAD("115g105.awd",  0x00000, 0x20000, CRC(b327eb83) SHA1(9e1ff53e07ca035d8d43951bac345fec7131678d), ROM_BIOS(14))
1412878
1413879   ROM_SYSTEM_BIOS(14, "ficpos", "FIC 486-POS")
1414   ROMX_LOAD("116di6b7.bin", 0x0e0000, 0x20000, CRC(d1d84616) SHA1(2f2b27ce100cf784260d8e155b48db8cfbc63285), ROM_BIOS(15))
880   ROMX_LOAD("116di6b7.bin", 0x00000, 0x20000, CRC(d1d84616) SHA1(2f2b27ce100cf784260d8e155b48db8cfbc63285), ROM_BIOS(15))
1415881   ROM_SYSTEM_BIOS(15, "ficpvt", "FIC 486-PVT 5.15")          /* 1995-06-27 */
1416   ROMX_LOAD("5150eef3.awd", 0x0e0000, 0x20000, CRC(eb35785d) SHA1(1e601bc8da73f22f11effe9cdf5a84d52576142b), ROM_BIOS(16))
882   ROMX_LOAD("5150eef3.awd", 0x00000, 0x20000, CRC(eb35785d) SHA1(1e601bc8da73f22f11effe9cdf5a84d52576142b), ROM_BIOS(16))
1417883   ROM_SYSTEM_BIOS(16, "ficpvtio", "FIC 486-PVT-IO 5.162W2")  /* 1995-10-05 */
1418   ROMX_LOAD("5162cf37.awd", 0x0e0000, 0x20000, CRC(378d813d) SHA1(aa674eff5b972b31924941534c3c988f6f78dc93), ROM_BIOS(17))
884   ROMX_LOAD("5162cf37.awd", 0x00000, 0x20000, CRC(378d813d) SHA1(aa674eff5b972b31924941534c3c988f6f78dc93), ROM_BIOS(17))
1419885   ROM_SYSTEM_BIOS(17, "ficvipio426", "FIC 486-VIP-IO 4.26GN2") /* 1994-12-07 */
1420   ROMX_LOAD("426gn2.awd",   0x0e0000, 0x20000, CRC(5f472aa9) SHA1(9160abefae32b450e973651c052657b4becc72ba), ROM_BIOS(18))
886   ROMX_LOAD("426gn2.awd",   0x00000, 0x20000, CRC(5f472aa9) SHA1(9160abefae32b450e973651c052657b4becc72ba), ROM_BIOS(18))
1421887   ROM_SYSTEM_BIOS(18, "ficvipio427", "FIC 486-VIP-IO 4.27GN2A") /* 1996-02-14 */
1422   ROMX_LOAD("427gn2a.awd",  0x0e0000, 0x20000, CRC(035ad56d) SHA1(0086db3eff711fc710b30e7f422fc5b4ab8d47aa), ROM_BIOS(19))
888   ROMX_LOAD("427gn2a.awd",  0x00000, 0x20000, CRC(035ad56d) SHA1(0086db3eff711fc710b30e7f422fc5b4ab8d47aa), ROM_BIOS(19))
1423889   ROM_SYSTEM_BIOS(19, "ficvipio2", "FIC 486-VIP-IO2")
1424   ROMX_LOAD("1164g701.awd", 0x0e0000, 0x20000, CRC(7b762683) SHA1(84debce7239c8b1978246688ae538f7c4f519d13), ROM_BIOS(20))
890   ROMX_LOAD("1164g701.awd", 0x00000, 0x20000, CRC(7b762683) SHA1(84debce7239c8b1978246688ae538f7c4f519d13), ROM_BIOS(20))
1425891
1426892   ROM_SYSTEM_BIOS(20, "qdi", "QDI PX486DX33/50P3")
1427   ROMX_LOAD("qdi_px486.u23", 0x0f0000, 0x10000, CRC(c80ecfb6) SHA1(34cc9ef68ff719cd0771297bf184efa83a805f3e), ROM_BIOS(21))
893   ROMX_LOAD("qdi_px486.u23", 0x10000, 0x10000, CRC(c80ecfb6) SHA1(34cc9ef68ff719cd0771297bf184efa83a805f3e), ROM_BIOS(21))
1428894ROM_END
1429895
1430896
r253720r253721
1442908   ROMX_LOAD("115b101.awd",  0x020000, 0x20000, CRC(ff69617d) SHA1(ecbfc7315dcf6bd3e5b59e3ae9258759f64fe7a0), ROM_BIOS(4))
1443909ROM_END
1444910
1445
1446ROM_START( at586 )
1447   ROM_REGION32_LE(0x40000, "isa", 0)
1448   ROM_SYSTEM_BIOS(0, "sptx", "SP-586TX")
1449   ROMX_LOAD("sp586tx.bin",   0x20000, 0x20000, CRC(1003d72c) SHA1(ec9224ff9b0fdfd6e462cb7bbf419875414739d6), ROM_BIOS(1))
1450   ROM_SYSTEM_BIOS(1, "unisys", "Unisys 586") // probably bad dump due to need of hack in i82439tx to work
1451   ROMX_LOAD("at586.bin",     0x20000, 0x20000, CRC(717037f5) SHA1(1d49d1b7a4a40d07d1a897b7f8c827754d76f824), ROM_BIOS(2))
1452
1453   ROM_SYSTEM_BIOS(2, "ga586t2", "Gigabyte GA-586T2") // ITE 8679 I/O
1454   ROMX_LOAD("gb_ga586t2.bin",  0x20000, 0x20000, CRC(3a50a6e1) SHA1(dea859b4f1492d0d08aacd260ed1e83e00ebac08), ROM_BIOS(3))
1455   ROM_SYSTEM_BIOS(3, "5tx52", "Acorp 5TX52") // W83877TF I/O
1456   ROMX_LOAD("acorp_5tx52.bin", 0x20000, 0x20000, CRC(04d69419) SHA1(983377674fef05e710c8665c14cc348c99166fb6), ROM_BIOS(4))
1457   ROM_SYSTEM_BIOS(4, "txp4", "ASUS TXP4") // W83977TF-A I/O
1458   ROMX_LOAD("asus_txp4.bin",   0x20000, 0x20000, CRC(a1321bb1) SHA1(92e5f14d8505119f85b148a63510617ac12bcdf3), ROM_BIOS(5))
1459ROM_END
1460
1461ROM_START( at586x3 )
1462   ROM_REGION32_LE(0x40000, "isa", 0)
1463   ROM_LOAD("5hx29.bin",   0x20000, 0x20000, CRC(07719a55) SHA1(b63993fd5186cdb4f28c117428a507cd069e1f68))
1464ROM_END
1465
1466911ROM_START( c386sx16 )
1467   ROM_REGION(0x1000000,"maincpu", 0)
912   ROM_REGION(0x20000,"bios", 0)
1468913   /* actual VGA BIOS not dumped - uses a WD Paradise according to http://www.cbmhardware.de/pc/pc.php */
1469914
1470915   /* Commodore 80386SX BIOS Rev. 1.03 */
1471916   /* Copyright (C) 1985-1990 Commodore Electronics Ltd. */
1472917   /* Copyright (C) 1985-1990 Phoenix Technologies Ltd. */
1473   ROM_LOAD16_BYTE( "390914-01.u39", 0xf0000, 0x8000, CRC(8f849198) SHA1(550b04bac0d0807d6e95ec25391a81272779b41b)) /* 390914-01 V1.03 CS-2100 U39 Copyright (C) 1990 CBM */
1474   ROM_LOAD16_BYTE( "390915-01.u38", 0xf0001, 0x8000, CRC(ee4bad92) SHA1(6e02ef97a7ce336485814c06a1693bc099ce5cfb)) /* 390915-01 V1.03 CS-2100 U38 Copyright (C) 1990 CBM */
918   ROM_LOAD16_BYTE( "390914-01.u39", 0x10000, 0x8000, CRC(8f849198) SHA1(550b04bac0d0807d6e95ec25391a81272779b41b)) /* 390914-01 V1.03 CS-2100 U39 Copyright (C) 1990 CBM */
919   ROM_LOAD16_BYTE( "390915-01.u38", 0x10001, 0x8000, CRC(ee4bad92) SHA1(6e02ef97a7ce336485814c06a1693bc099ce5cfb)) /* 390915-01 V1.03 CS-2100 U38 Copyright (C) 1990 CBM */
1475920ROM_END
1476921
1477922ROM_START( xb42663 )
1478   ROM_REGION(0x1000000,"maincpu", 0)
1479   ROM_LOAD16_BYTE( "qi310223.lo", 0xe0000, 0x10000, CRC(53047f49) SHA1(7b38e533f7f27295269549c63e5477d950239167))
1480   ROM_LOAD16_BYTE( "qi310223.hi", 0xe0001, 0x10000, CRC(4852869f) SHA1(98599d4691d40b3fac2936034c70b386ce4caf77))
923   ROM_REGION(0x20000,"bios", 0)
924   ROM_LOAD16_BYTE( "qi310223.lo", 0x00000, 0x10000, CRC(53047f49) SHA1(7b38e533f7f27295269549c63e5477d950239167))
925   ROM_LOAD16_BYTE( "qi310223.hi", 0x00001, 0x10000, CRC(4852869f) SHA1(98599d4691d40b3fac2936034c70b386ce4caf77))
1481926ROM_END
1482927
1483928ROM_START( qi600 )
1484   ROM_REGION(0x1000000,"maincpu", 0)
1485   ROM_LOAD16_BYTE( "qi610223.lo", 0xe0000, 0x10000, CRC(563114a9) SHA1(62932b3bf0b5502ff708f604c21773f00afda58e))
1486   ROM_LOAD16_BYTE( "qi610223.hi", 0xe0001, 0x10000, CRC(0ae133f6) SHA1(6039c366f7fe0ebf60b34c1a7d6b2d781b664001))
929   ROM_REGION(0x20000,"bios", 0)
930   ROM_LOAD16_BYTE( "qi610223.lo", 0x00000, 0x10000, CRC(563114a9) SHA1(62932b3bf0b5502ff708f604c21773f00afda58e))
931   ROM_LOAD16_BYTE( "qi610223.hi", 0x00001, 0x10000, CRC(0ae133f6) SHA1(6039c366f7fe0ebf60b34c1a7d6b2d781b664001))
1487932ROM_END
1488933
1489934ROM_START( qi900 )
1490   ROM_REGION(0x1000000,"maincpu", 0)
1491   ROM_LOAD16_BYTE( "qi910224.lo", 0xe0000, 0x10000, CRC(b012ad3c) SHA1(807e788a6bd03f5e983fe503af3d0b202c754b8a))
1492   ROM_LOAD16_BYTE( "qi910224.hi", 0xe0001, 0x10000, CRC(36e66d56) SHA1(0900c5272ec3ced550f18fb08db59ab7f67a621e))
935   ROM_REGION(0x20000,"bios", 0)
936   ROM_LOAD16_BYTE( "qi910224.lo", 0x00000, 0x10000, CRC(b012ad3c) SHA1(807e788a6bd03f5e983fe503af3d0b202c754b8a))
937   ROM_LOAD16_BYTE( "qi910224.hi", 0x00001, 0x10000, CRC(36e66d56) SHA1(0900c5272ec3ced550f18fb08db59ab7f67a621e))
1493938ROM_END
1494939
1495940ROM_START( ftsserv )
1496   ROM_REGION(0x1000000,"maincpu", 0)
1497   ROM_LOAD16_BYTE( "fts10226.lo", 0xe0000, 0x10000, CRC(efbd738f) SHA1(d5258760bafdaf1bf13c4a49da76d4b5e7b4ccbd))
1498   ROM_LOAD16_BYTE( "fts10226.hi", 0xe0001, 0x10000, CRC(2460853f) SHA1(a6bba8d2f800140afd129c4d5278f7ae8fe7e63a))
941   ROM_REGION(0x20000,"bios", 0)
942   ROM_LOAD16_BYTE( "fts10226.lo", 0x00000, 0x10000, CRC(efbd738f) SHA1(d5258760bafdaf1bf13c4a49da76d4b5e7b4ccbd))
943   ROM_LOAD16_BYTE( "fts10226.hi", 0x00001, 0x10000, CRC(2460853f) SHA1(a6bba8d2f800140afd129c4d5278f7ae8fe7e63a))
1499944   /* FT Server series Front Panel */
1500945   ROM_REGION(0x10000,"front", 0)
1501946   ROM_LOAD( "fp10009.bin",     0x0000, 0x8000, CRC(8aa7f718) SHA1(9ee6c6a5bb92622ea8d3805196d42ff68887d820))
1502947ROM_END
1503948
1504949ROM_START( apxenls3 )
1505   ROM_REGION(0x1000000,"maincpu", 0)
1506   ROM_LOAD16_BYTE( "31020.lo", 0xf0000, 0x8000, CRC(a19678d2) SHA1(d13c12fa7e94333555eabf58b81bad421e21cd91))
1507   ROM_LOAD16_BYTE( "31020.hi", 0xf0001, 0x8000, CRC(4922e020) SHA1(64e6448323dad2209e004cd93fa181582e768ed5))
950   ROM_REGION(0x20000,"bios", 0)
951   ROM_LOAD16_BYTE( "31020.lo", 0x10000, 0x8000, CRC(a19678d2) SHA1(d13c12fa7e94333555eabf58b81bad421e21cd91))
952   ROM_LOAD16_BYTE( "31020.hi", 0x10001, 0x8000, CRC(4922e020) SHA1(64e6448323dad2209e004cd93fa181582e768ed5))
1508953ROM_END
1509954
1510955ROM_START( aplanst )
1511   ROM_REGION(0x1000000,"maincpu", 0)
956   ROM_REGION(0x20000,"bios", 0)
1512957   ROM_SYSTEM_BIOS(0, "31024", "Bios 3-10-24")
1513   ROMX_LOAD("31024.lo", 0xf0000, 0x8000, CRC(e52b59e1) SHA1(cfcaa4d8d658df8df463108ef30695bd4ee7a617), ROM_SKIP(1) | ROM_BIOS(1) )
1514   ROMX_LOAD("31024.hi", 0xf0001, 0x8000, CRC(7286aefa) SHA1(dfc0e3f4936780fa62ae9ec392ce17aa65e717cd), ROM_SKIP(1) | ROM_BIOS(1) )
958   ROMX_LOAD("31024.lo", 0x10000, 0x8000, CRC(e52b59e1) SHA1(cfcaa4d8d658df8df463108ef30695bd4ee7a617), ROM_SKIP(1) | ROM_BIOS(1) )
959   ROMX_LOAD("31024.hi", 0x10001, 0x8000, CRC(7286aefa) SHA1(dfc0e3f4936780fa62ae9ec392ce17aa65e717cd), ROM_SKIP(1) | ROM_BIOS(1) )
1515960   ROM_SYSTEM_BIOS(1, "31025", "Bios 3-10-25")
1516   ROMX_LOAD("31025.lo", 0xf0000, 0x8000, CRC(1aec09bc) SHA1(51d56c97c7c1674554aa89b68945329ea967a8bc), ROM_SKIP(1) | ROM_BIOS(2) )
1517   ROMX_LOAD("31025.hi", 0xf0001, 0x8000, CRC(0763caa5) SHA1(48510a933dcd6efea3b14d04444f584c3e6fefeb), ROM_SKIP(1) | ROM_BIOS(2) )
961   ROMX_LOAD("31025.lo", 0x10000, 0x8000, CRC(1aec09bc) SHA1(51d56c97c7c1674554aa89b68945329ea967a8bc), ROM_SKIP(1) | ROM_BIOS(2) )
962   ROMX_LOAD("31025.hi", 0x10001, 0x8000, CRC(0763caa5) SHA1(48510a933dcd6efea3b14d04444f584c3e6fefeb), ROM_SKIP(1) | ROM_BIOS(2) )
1518963   ROM_SYSTEM_BIOS(2, "31026", "Bios 3-10-26i")
1519   ROMX_LOAD("31026i.lo", 0xf0000, 0x8000, CRC(670b6ab4) SHA1(8d61a0edf187f99b67eb58f5e11276deee801d17), ROM_SKIP(1) | ROM_BIOS(3) )
1520   ROMX_LOAD("31026i.hi", 0xf0001, 0x8000, CRC(ef01c54f) SHA1(911f95d65ab96878e5e7ebccfc4b329db47a1351), ROM_SKIP(1) | ROM_BIOS(3) )
964   ROMX_LOAD("31026i.lo", 0x10000, 0x8000, CRC(670b6ab4) SHA1(8d61a0edf187f99b67eb58f5e11276deee801d17), ROM_SKIP(1) | ROM_BIOS(3) )
965   ROMX_LOAD("31026i.hi", 0x10001, 0x8000, CRC(ef01c54f) SHA1(911f95d65ab96878e5e7ebccfc4b329db47a1351), ROM_SKIP(1) | ROM_BIOS(3) )
1521966ROM_END
1522967
1523968ROM_START( aplannb )
1524   ROM_REGION(0x1000000,"maincpu", 0)
1525   ROM_LOAD16_BYTE( "lsl31025.lo", 0xe0000, 0x10000, CRC(8bb7229b) SHA1(31449d12884ec4e7752e6c1ce7ce9e0d044eadf2))
1526   ROM_LOAD16_BYTE( "lsh31025.hi", 0xe0001, 0x10000, CRC(09e5c1b9) SHA1(d42be83b4181d3733268c29df04a4d2918370f4e))
969   ROM_REGION(0x20000,"bios", 0)
970   ROM_LOAD16_BYTE( "lsl31025.lo", 0x00000, 0x10000, CRC(8bb7229b) SHA1(31449d12884ec4e7752e6c1ce7ce9e0d044eadf2))
971   ROM_LOAD16_BYTE( "lsh31025.hi", 0x00001, 0x10000, CRC(09e5c1b9) SHA1(d42be83b4181d3733268c29df04a4d2918370f4e))
1527972ROM_END
1528973
1529974ROM_START( apvxft )
1530   ROM_REGION(0x1000000,"maincpu", 0)
1531   ROM_LOAD16_BYTE( "ft10221.lo", 0xe0000, 0x10000, CRC(8f339de0) SHA1(a6542406746eaf1ff7f9e3678c5cbe5522fb314a))
1532   ROM_LOAD16_BYTE( "ft10221.hi", 0xe0001, 0x10000, CRC(3b16bc31) SHA1(0592d1d81e7fd4715b0612083482db122d78c7f2))
975   ROM_REGION(0x20000,"bios", 0)
976   ROM_LOAD16_BYTE( "ft10221.lo", 0x00000, 0x10000, CRC(8f339de0) SHA1(a6542406746eaf1ff7f9e3678c5cbe5522fb314a))
977   ROM_LOAD16_BYTE( "ft10221.hi", 0x00001, 0x10000, CRC(3b16bc31) SHA1(0592d1d81e7fd4715b0612083482db122d78c7f2))
1533978ROM_END
1534979
1535980ROM_START( aplscar )
1536   ROM_REGION(0x1000000,"maincpu", 0)
981   ROM_REGION(0x40000,"bios", 0)
1537982   ROM_SYSTEM_BIOS(0, "car306", "Caracal 3.06")
1538   ROMX_LOAD("car306.bin",   0xc0000, 0x40000, CRC(fc271dea) SHA1(6207cfd312c9957243b8157c90a952404e43b237), ROM_BIOS(1))
983   ROMX_LOAD("car306.bin",   0x00000, 0x40000, CRC(fc271dea) SHA1(6207cfd312c9957243b8157c90a952404e43b237), ROM_BIOS(1))
1539984   ROM_SYSTEM_BIOS(1, "car307", "Caracal 3.07")
1540   ROMX_LOAD("car307.bin",   0xc0000, 0x40000, CRC(66a01852) SHA1(b0a68c9d67921d27ba483a1c50463406c08d3085), ROM_BIOS(2))
985   ROMX_LOAD("car307.bin",   0x00000, 0x40000, CRC(66a01852) SHA1(b0a68c9d67921d27ba483a1c50463406c08d3085), ROM_BIOS(2))
1541986ROM_END
1542987
1543988ROM_START( apxena1 )
1544   ROM_REGION(0x1000000,"maincpu", 0)
1545   ROM_LOAD("a1-r26.bin",   0xe0000, 0x20000, CRC(d29e983e) SHA1(5977df7f8d7ac2a154aa043bb6f539d96d51fcad))
989   ROM_REGION(0x20000,"bios", 0)
990   ROM_LOAD("a1-r26.bin",   0x00000, 0x20000, CRC(d29e983e) SHA1(5977df7f8d7ac2a154aa043bb6f539d96d51fcad))
1546991ROM_END
1547992
1548993ROM_START( apxenp2 )
1549   ROM_REGION(0x1000000,"maincpu", 0)
994   ROM_REGION(0x20000,"bios", 0)
1550995   ROM_SYSTEM_BIOS(0, "p2r02g2", "p2r02g2")
1551   ROMX_LOAD("p2r02g2.bin",   0xe0000, 0x20000, CRC(311bcc5a) SHA1(be6fa144322077dcf66b065e7f4e61aab8c278b4), ROM_BIOS(1))
996   ROMX_LOAD("p2r02g2.bin",   0x00000, 0x20000, CRC(311bcc5a) SHA1(be6fa144322077dcf66b065e7f4e61aab8c278b4), ROM_BIOS(1))
1552997   ROM_SYSTEM_BIOS(1, "lep121s", "SCSI-Enabling ROMs")
1553   ROMX_LOAD("p2r01f0.bin",   0xe0000, 0x20000, CRC(bbc68f2e) SHA1(6954a52a7dda5521794151aff7a04225e9c7df77), ROM_BIOS(2))
998   ROMX_LOAD("p2r01f0.bin",   0x00000, 0x20000, CRC(bbc68f2e) SHA1(6954a52a7dda5521794151aff7a04225e9c7df77), ROM_BIOS(2))
1554999ROM_END
15551000
15561001ROM_START( apxeni )
1557   ROM_REGION(0x1000000,"maincpu", 0)
1002   ROM_REGION(0x20000,"bios", 0)
15581003   ROM_SYSTEM_BIOS(0, "lep121", "Rom Bios 1.2.1")
1559   ROMX_LOAD( "lep121.bin", 0xf8000, 0x8000, CRC(948c1927) SHA1(d06bdbd6292db73c815ad1060daf055293dfddf5), ROM_BIOS(1))
1004   ROMX_LOAD( "lep121.bin", 0x18000, 0x8000, CRC(948c1927) SHA1(d06bdbd6292db73c815ad1060daf055293dfddf5), ROM_BIOS(1))
15601005   ROM_SYSTEM_BIOS(1, "lep121s", "SCSI-Enabling ROMs")
1561   ROMX_LOAD( "lep121s.bin", 0xf8000, 0x8000, CRC(296118e4) SHA1(d1feaa9704e6ce3bc10c900bdd310d9494b02304), ROM_BIOS(2))
1006   ROMX_LOAD( "lep121s.bin", 0x18000, 0x8000, CRC(296118e4) SHA1(d1feaa9704e6ce3bc10c900bdd310d9494b02304), ROM_BIOS(2))
15621007ROM_END
15631008
15641009ROM_START( aplsbon )
1565   ROM_REGION(0x1000000,"maincpu", 0)
1010   ROM_REGION(0x20000,"bios", 0)
15661011   ROM_SYSTEM_BIOS(0, "bon106", "Boinsai 1-06")
1567   ROMX_LOAD("bon106.bin",   0xe0000, 0x20000, CRC(98a4eb76) SHA1(e0587afa78aeb9a8803f9b9f9e457e9847b0a2b2), ROM_BIOS(1))
1012   ROMX_LOAD("bon106.bin",   0x00000, 0x20000, CRC(98a4eb76) SHA1(e0587afa78aeb9a8803f9b9f9e457e9847b0a2b2), ROM_BIOS(1))
15681013   ROM_SYSTEM_BIOS(1, "bon203", "Boinsai 2-03")
1569   ROMX_LOAD("bon203.bin",   0xe0000, 0x20000, CRC(32a0e125) SHA1(a4fcbd76952599993fa8b76aa36a96386648abb2), ROM_BIOS(2))
1014   ROMX_LOAD("bon203.bin",   0x00000, 0x20000, CRC(32a0e125) SHA1(a4fcbd76952599993fa8b76aa36a96386648abb2), ROM_BIOS(2))
15701015   ROM_SYSTEM_BIOS(2, "bon10703", "Boinsai 1-07-03")
1571   ROMX_LOAD("bon10703.bin",   0xe0000, 0x20000, CRC(0275b3c2) SHA1(55ef4cbb7f3166f678aaa478234a42049deaba5f), ROM_BIOS(3))
1016   ROMX_LOAD("bon10703.bin",   0x00000, 0x20000, CRC(0275b3c2) SHA1(55ef4cbb7f3166f678aaa478234a42049deaba5f), ROM_BIOS(3))
15721017   ROM_SYSTEM_BIOS(3, "bon20402", "Boinsai 2.03")
1573   ROMX_LOAD("bon20402.bin",   0xe0000, 0x20000, CRC(ac5803fb) SHA1(b8fe92711c6a38a5d9e6497e76a0929c1685c631), ROM_BIOS(4))
1018   ROMX_LOAD("bon20402.bin",   0x00000, 0x20000, CRC(ac5803fb) SHA1(b8fe92711c6a38a5d9e6497e76a0929c1685c631), ROM_BIOS(4))
15741019ROM_END
15751020
15761021ROM_START( apxlsam )
1577   ROM_REGION(0x1000000,"maincpu", 0)
1022   ROM_REGION(0x20000,"bios", 0)
15781023   ROM_SYSTEM_BIOS(0, "sam107", "ROM BIOS Version 1-07")
1579   ROMX_LOAD("sam1-07.bin",   0xe0000, 0x20000, CRC(65e05a8e) SHA1(c3cd198a129122cb05a28798e54331b06cfdd310), ROM_BIOS(1))
1024   ROMX_LOAD("sam1-07.bin",   0x00000, 0x20000, CRC(65e05a8e) SHA1(c3cd198a129122cb05a28798e54331b06cfdd310), ROM_BIOS(1))
15801025   ROM_SYSTEM_BIOS(1, "sam206", "ROM BIOS Version 2-06")
1581   ROMX_LOAD("sam2-06.bin",   0xe0000, 0x20000, CRC(9768bb0f) SHA1(8166b77b133072f72f23debf85984eb19578ffc1), ROM_BIOS(2))
1026   ROMX_LOAD("sam2-06.bin",   0x00000, 0x20000, CRC(9768bb0f) SHA1(8166b77b133072f72f23debf85984eb19578ffc1), ROM_BIOS(2))
15821027ROM_END
15831028
1584/* FIC VT-503 (Intel TX chipset, ITE 8679 Super I/O) */
1585ROM_START( ficvt503 )
1586   ROM_REGION32_LE(0x40000, "isa", 0)
1587   ROM_SYSTEM_BIOS(0, "109gi13", "1.09GI13") /* 1997-10-02 */
1588   ROMX_LOAD("109gi13.bin", 0x20000, 0x20000, CRC(0c32af48) SHA1(2cce40a98598f1ed1f398975f7a90c8be4200667), ROM_BIOS(1))
1589   ROM_SYSTEM_BIOS(1, "109gi14", "1.09GI14") /* 1997-11-07 */
1590   ROMX_LOAD("109gi14.awd", 0x20000, 0x20000, CRC(588c5cc8) SHA1(710e5405850fd975b362a422bfe9bc6d6c9a36cd), ROM_BIOS(2))
1591   ROM_SYSTEM_BIOS(2, "109gi15", "1.09GI15") /* 1997-11-07 */
1592   ROMX_LOAD("109gi15.awd", 0x20000, 0x20000, CRC(649a3481) SHA1(e681c6ab55a67cec5978dfffa75fcddc2aa0de4d), ROM_BIOS(3))
1593   ROM_SYSTEM_BIOS(3, "109gi16", "1.09GI16") /* 2000-03-23 */
1594   ROMX_LOAD("109gi16.bin", 0x20000, 0x20000, CRC(a928f271) SHA1(127a83a60752cc33b3ca49774488e511ec7bac55), ROM_BIOS(4))
1595   ROM_SYSTEM_BIOS(4, "115gk140", "1.15GK140") /* 1999-03-03 */
1596   ROMX_LOAD("115gk140.awd", 0x20000, 0x20000, CRC(65e88956) SHA1(f94bb0732e00b5b0f18f4e349db24a289f8379c5), ROM_BIOS(5))
1597ROM_END
1598
15991029ROM_START( aprpand )
1600   ROM_REGION(0x1000000,"maincpu", 0)
1601   ROM_LOAD16_BYTE( "pf10226.std", 0xe0000, 0x10000, CRC(7396fb87) SHA1(a109cbad2179eec55f86c0297a59bb015461da21))
1602   ROM_CONTINUE( 0xe0001, 0x10000 )
1030   ROM_REGION(0x20000,"bios", 0)
1031   ROM_LOAD16_BYTE( "pf10226.std", 0x00000, 0x10000, CRC(7396fb87) SHA1(a109cbad2179eec55f86c0297a59bb015461da21))
1032   ROM_CONTINUE( 0x00001, 0x10000 )
16031033ROM_END
16041034
16051035ROM_START( aprfte )
1606   ROM_REGION(0x1000000,"maincpu", 0)
1607   ROM_LOAD( "1-2r2-4.486", 0xe0000, 0x20000, CRC(bccc236d) SHA1(0765299363e68cf65710a688c360a087856ece8f))
1036   ROM_REGION(0x20000,"bios", 0)
1037   ROM_LOAD( "1-2r2-4.486", 0x00000, 0x20000, CRC(bccc236d) SHA1(0765299363e68cf65710a688c360a087856ece8f))
16081038ROM_END
16091039
16101040ROM_START( megapc )
16111041   ROM_REGION(0x40000, "isa", ROMREGION_ERASEFF)
1612   ROM_REGION(0x100000, "bios", 0)
1613   ROM_LOAD16_BYTE( "41651-bios lo.u18",  0xe0000, 0x10000, CRC(1e9bd3b7) SHA1(14fd39ec12df7fae99ccdb0484ee097d93bf8d95))
1614   ROM_LOAD16_BYTE( "211253-bios hi.u19", 0xe0001, 0x10000, CRC(6acb573f) SHA1(376d483db2bd1c775d46424e1176b24779591525))
1042   ROM_REGION(0x20000, "bios", 0)
1043   ROM_LOAD16_BYTE( "41651-bios lo.u18",  0x00000, 0x10000, CRC(1e9bd3b7) SHA1(14fd39ec12df7fae99ccdb0484ee097d93bf8d95))
1044   ROM_LOAD16_BYTE( "211253-bios hi.u19", 0x00001, 0x10000, CRC(6acb573f) SHA1(376d483db2bd1c775d46424e1176b24779591525))
16151045ROM_END
16161046
16171047ROM_START( megapcpl )
16181048   ROM_REGION(0x40000, "isa", ROMREGION_ERASEFF)
1619   ROM_REGION(0x100000, "bios", 0)
1620   ROM_LOAD16_BYTE( "41652.u18",  0xe0000, 0x10000, CRC(6f5b9a1c) SHA1(cae981a35a01234fcec99a96cb38075d7bf23474))
1621   ROM_LOAD16_BYTE( "486slc.u19", 0xe0001, 0x10000, CRC(6fb7e3e9) SHA1(c439cb5a0d83176ceb2a3555e295dc1f84d85103))
1049   ROM_REGION(0x20000, "bios", 0)
1050   ROM_LOAD16_BYTE( "41652.u18",  0x00000, 0x10000, CRC(6f5b9a1c) SHA1(cae981a35a01234fcec99a96cb38075d7bf23474))
1051   ROM_LOAD16_BYTE( "486slc.u19", 0x00001, 0x10000, CRC(6fb7e3e9) SHA1(c439cb5a0d83176ceb2a3555e295dc1f84d85103))
16221052ROM_END
16231053
16241054ROM_START( megapcpla )
1625   ROM_REGION(0x40000, "isa", ROMREGION_ERASEFF)
1626   ROM_REGION(0x100000, "maincpu", 0)
1627   ROM_LOAD( "megapc_bios.bin",  0xc0000, 0x10000, CRC(b84938a2) SHA1(cecab72a96993db4f7c648c229b4211a8c53a380))
1628   ROM_CONTINUE(0xf0000, 0x10000)
1055   ROM_REGION(0x40000, "bios", 0)
1056   ROM_LOAD( "megapc_bios.bin",  0x00000, 0x10000, CRC(b84938a2) SHA1(cecab72a96993db4f7c648c229b4211a8c53a380))
1057   ROM_CONTINUE(0x30000, 0x10000)
16291058ROM_END
16301059
16311060ROM_START( t2000sx )
1632   ROM_REGION( 0x1000000, "maincpu", 0 )
1633   ROM_LOAD( "014d.ic9", 0xe0000, 0x20000, CRC(e9010b02) SHA1(75688fc8e222640fa22bcc90343c6966fe0da87f))
1061   ROM_REGION( 0x20000, "bios", 0 )
1062   ROM_LOAD( "014d.ic9", 0x00000, 0x20000, CRC(e9010b02) SHA1(75688fc8e222640fa22bcc90343c6966fe0da87f))
16341063ROM_END
16351064
16361065ROM_START( pc2386 )
1637   ROM_REGION( 0x1000000, "maincpu", 0 )
1638   ROM_LOAD( "c000.bin", 0xc0000, 0x4000, CRC(33145bbf) SHA1(c49eaec19f656482e12c8bf282cd4ee5986d227d) )
1639   ROM_LOAD( "f000.bin", 0xf0000, 0x10000, CRC(f54a063c) SHA1(ce70ec493053afab662f51199ef9c9304a209b8e) )
1066   ROM_REGION( 0x40000, "bios", 0 )
1067   ROM_LOAD( "c000.bin", 0x00000, 0x4000, CRC(33145bbf) SHA1(c49eaec19f656482e12c8bf282cd4ee5986d227d) )
1068   ROM_LOAD( "f000.bin", 0x30000, 0x10000, CRC(f54a063c) SHA1(ce70ec493053afab662f51199ef9c9304a209b8e) )
1069   ROM_FILL(0x3fff1, 1, 0x5b) // f000:e05b is the standard at reset vector jump address
1070   ROM_FILL(0x3fff2, 1, 0xe0) // why does this rom's point to nowhere sane?
1071   ROM_FILL(0x3fff3, 1, 0x00) // and why does the rest of the rom look okay?
1072   ROM_FILL(0x3fff4, 1, 0xf0)
16401073
1641   ROM_REGION( 0x2000, "gfx1", ROMREGION_ERASE00 )
16421074
16431075   ROM_REGION( 0x1000, "keyboard", 0 ) // PC2286 / PC2386 102-key keyboard
16441076   ROM_LOAD( "40211.ic801", 0x000, 0x1000, CRC(4440d981) SHA1(a76006a929f26c178e09908c66f28abc92e7744c) )
16451077ROM_END
16461078
16471079ROM_START( k286i )
1648   ROM_REGION(0x1000000,"maincpu", 0)
1649   ROM_LOAD16_BYTE( "81_1598", 0xf8000, 0x4000, CRC(e25a1e43) SHA1(d00b976ac94323f3867b1c256e315839c906dd5a) )
1650   ROM_LOAD16_BYTE( "81_1599", 0xf8001, 0x4000, CRC(08e2a17b) SHA1(a86ef116e82eb9240e60b52f76e5e510cdd393fd) )
1080   ROM_REGION(0x20000,"bios", 0)
1081   ROM_LOAD16_BYTE( "81_1598", 0x18000, 0x4000, CRC(e25a1e43) SHA1(d00b976ac94323f3867b1c256e315839c906dd5a) )
1082   ROM_LOAD16_BYTE( "81_1599", 0x18001, 0x4000, CRC(08e2a17b) SHA1(a86ef116e82eb9240e60b52f76e5e510cdd393fd) )
16511083ROM_END
16521084
16531085/***************************************************************************
r253720r253721
16571089***************************************************************************/
16581090
16591091/*     YEAR  NAME      PARENT   COMPAT   MACHINE    INPUT       INIT    COMPANY     FULLNAME */
1660COMP ( 1984, ibm5170,  0,       ibm5150, ibm5170,   atcga, at_state,      atcga,  "International Business Machines",  "IBM PC/AT 5170", MACHINE_NOT_WORKING )
1661COMP ( 1985, ibm5170a, ibm5170, 0,       ibm5170a,  atcga, at_state,      atcga,  "International Business Machines",  "IBM PC/AT 5170 8MHz", MACHINE_NOT_WORKING )
1662COMP ( 1985, ibm5162,  ibm5170, 0,       ibm5162,   atcga, at_state,      atcga,  "International Business Machines",  "IBM PC/XT-286 5162", MACHINE_NOT_WORKING )
1663COMP ( 1990, i8530h31, ibm5170, 0,       ps2m30286, atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8530-H31 (Model 30/286)", MACHINE_NOT_WORKING )
1664COMP ( 1988, i8530286, ibm5170, 0,       ps2m30286, atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 Model 30-286", MACHINE_NOT_WORKING )
1665COMP ( 198?, i8535043, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8535-043 (Model 35)", MACHINE_NOT_WORKING )
1666COMP ( 198?, i8550021, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8550-021 (Model 50)", MACHINE_NOT_WORKING )
1667COMP ( 198?, i8550061, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8550-061 (Model 50Z)", MACHINE_NOT_WORKING )
1668COMP ( 1989, i8555081, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8550-081 (Model 55SX)", MACHINE_NOT_WORKING )
1669COMP ( 198?, i8580071, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8580-071 (Model 80)", MACHINE_NOT_WORKING )
1670COMP ( 198?, i8580111, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/2 8580-111 (Model 80)", MACHINE_NOT_WORKING )
1671COMP ( 1989, ibmps1es, ibm5170, 0,       ibmps1,    atvga, at_state,      atvga,  "International Business Machines",  "IBM PS/1 (Spanish)", MACHINE_NOT_WORKING )
1672COMP ( 1987, at,       ibm5170, 0,       ibm5162,   atcga, at_state,      atcga,  "<generic>",  "PC/AT (CGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1673COMP ( 1987, atvga,    ibm5170, 0,       atvga,     atvga, at_state,      atvga,  "<generic>",  "PC/AT (VGA, MF2 Keyboard)" , MACHINE_NOT_WORKING )
1674COMP ( 1988, at386,    ibm5170, 0,       at386,     atvga, at_state,      atvga,  "<generic>",  "PC/AT 386 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1675COMP ( 1988, ct386sx,  ibm5170, 0,       ct386sx,   atvga, at_state,      atvga,  "<generic>",  "NEAT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1676//COMP ( 1988, at386sx,  ibm5170, 0,       ct386sx,   atvga, at_state,      atvga,  "<generic>",  "PC/AT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1677COMP ( 1990, at486,    ibm5170, 0,       at486,     atvga, at_state,      atvga,  "<generic>",  "PC/AT 486 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1678COMP ( 1990, at586,    ibm5170, 0,       at586,     atvga, at586_state,   at586,  "<generic>",  "PC/AT 586 (PIIX4)", MACHINE_NOT_WORKING )
1679COMP ( 1990, at586x3,  ibm5170, 0,       at586x3,   atvga, at586_state,   at586,  "<generic>",  "PC/AT 586 (PIIX3)", MACHINE_NOT_WORKING )
1680COMP ( 1989, neat,     ibm5170, 0,       neat,      atvga, at_state,      atvga,  "<generic>",  "NEAT (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1681COMP ( 1989, ec1842,   ibm5150, 0,       ec1842,    atcga, at_state,      atcga,  "<unknown>",  "EC-1842", MACHINE_NOT_WORKING )
1682COMP ( 1993, ec1849,   ibm5170, 0,       ec1849,    atcga, at_state,      atcga,  "<unknown>",  "EC-1849", MACHINE_NOT_WORKING )
1683COMP ( 1993, megapc,   0,       0,       megapc,    0,     megapc_state,megapc,   "Amstrad plc", "MegaPC", MACHINE_NOT_WORKING )
1684COMP ( 199?, megapcpl, megapc,  0,       megapcpl,  0,     megapc_state,megapcpl, "Amstrad plc", "MegaPC Plus", MACHINE_NOT_WORKING )
1685COMP ( 199?, megapcpla, megapc,  0,      megapcpla, 0,     at_state,    megapcpla,"Amstrad plc", "MegaPC Plus (WINBUS chipset)", MACHINE_NOT_WORKING )
1686COMP ( 1989, pc2386,   ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Amstrad plc", "Amstrad PC2386", MACHINE_NOT_WORKING )
1687COMP ( 1991, aprfte,   ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot FT//ex 486 (J3 Motherboard)", MACHINE_NOT_WORKING )
1688COMP ( 1991, ftsserv,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot FTs (Scorpion)", MACHINE_NOT_WORKING )
1689COMP ( 1992, aprpand,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot FTs (Panther Rev F 1.02.26)", MACHINE_NOT_WORKING )
1690COMP ( 1990, aplanst,  ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot LANstation (Krypton Motherboard)", MACHINE_NOT_WORKING )
1691COMP ( 1990, aplannb,  ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot LANstation (Novell Remote Boot)", MACHINE_NOT_WORKING )
1692COMP ( 1992, aplscar,  ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot LS Pro (Caracal Motherboard)", MACHINE_NOT_WORKING )
1693COMP ( 1992, aplsbon,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot LS Pro (Bonsai Motherboard)", MACHINE_NOT_WORKING )
1694COMP ( 1988, xb42663,  ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot Qi 300 (Rev D,E & F Motherboard)", MACHINE_NOT_WORKING )
1695COMP ( 1988, qi600,    ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot Qi 600 (Neptune Motherboard)", MACHINE_NOT_WORKING )
1696COMP ( 1990, qi900,    ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot Qi 900 (Scorpion Motherboard)", MACHINE_NOT_WORKING )
1697COMP ( 1989, apvxft,   ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot VX FT server", MACHINE_NOT_WORKING )
1698COMP ( 1991, apxenls3, ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-LS (Venus IV Motherboard)", MACHINE_NOT_WORKING )
1699COMP ( 1993, apxlsam,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-LS II (Samurai Motherboard)", MACHINE_NOT_WORKING )
1700COMP ( 1987, apxeni,   ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-i 386 (Leopard Motherboard)" , MACHINE_NOT_WORKING )
1701COMP ( 1989, xb42639,  ibm5170, 0,       xb42639,   atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-S (Venus I Motherboard 286)" , MACHINE_NOT_WORKING )
1702COMP ( 1990, xb42639a, ibm5170, 0,       xb42639,   atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-S (Venus II Motherboard 286)" , MACHINE_NOT_WORKING )
1703COMP ( 1989, xb42664,  ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-S (Venus I Motherboard 386)" , MACHINE_NOT_WORKING )
1704COMP ( 1990, xb42664a, ibm5170, 0,       at386,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN-S (Venus II Motherboard 386)" , MACHINE_NOT_WORKING )
1705COMP ( 1993, apxena1,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN PC (A1 Motherboard)", MACHINE_NOT_WORKING )
1706COMP ( 1993, apxenp2,  ibm5170, 0,       at486,     atvga, at_state,      atvga,  "Apricot",  "Apricot XEN PC (P2 Motherboard)", MACHINE_NOT_WORKING )
1707COMP ( 1990, c386sx16, ibm5170, 0,       at386sx,   atvga, at_state,      atvga,  "Commodore Business Machines", "Commodore 386SX-16", MACHINE_NOT_WORKING )
1708COMP ( 1988, cmdpc30,  ibm5170, 0,       ibm5162,   atcga, at_state,      atcga,  "Commodore Business Machines",  "PC 30 III", MACHINE_NOT_WORKING )
1709COMP ( 1995, ficpio2,  ibm5170, 0,       ficpio2,   atvga, at_state,      atpci,  "FIC", "486-PIO-2", MACHINE_NOT_WORKING )
1710COMP ( 1997, ficvt503, ibm5170, 0,       at586,     atvga, driver_device,      0,      "FIC", "VT-503", MACHINE_NOT_WORKING )
1711COMP ( 1985, k286i,    ibm5170, 0,       k286i,     atcga, at_state,      atcga,  "Kaypro",   "286i", MACHINE_NOT_WORKING )
1712COMP ( 1991, t2000sx,  ibm5170, 0,       at386sx,   atvga, at_state,      atvga,  "Toshiba",  "T2000SX", MACHINE_NOT_WORKING )
1092COMP ( 1984, ibm5170,  0,       ibm5150, ibm5170,   0,    at_state,      at,      "International Business Machines",  "IBM PC/AT 5170", MACHINE_NOT_WORKING )
1093COMP ( 1985, ibm5170a, ibm5170, 0,       ibm5170a,  0,    at_state,      at,      "International Business Machines",  "IBM PC/AT 5170 8MHz", MACHINE_NOT_WORKING )
1094COMP ( 1985, ibm5162,  ibm5170, 0,       ibm5162,   0,    at_state,      at,      "International Business Machines",  "IBM PC/XT-286 5162", MACHINE_NOT_WORKING )
1095COMP ( 1989, ibmps1es, ibm5170, 0,       ibmps1,    0,    at_state,      at,      "International Business Machines",  "IBM PS/1 (Spanish)", MACHINE_NOT_WORKING )
1096COMP ( 1987, at,       ibm5170, 0,       ibm5162,   0,    at_state,      at,      "<generic>",  "PC/AT (CGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1097COMP ( 1987, atvga,    ibm5170, 0,       atvga,     0,    at_state,      at,      "<generic>",  "PC/AT (VGA, MF2 Keyboard)" , MACHINE_NOT_WORKING )
1098COMP ( 1988, at386,    ibm5170, 0,       at386,     0,    at_state,      at,      "<generic>",  "PC/AT 386 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1099COMP ( 1988, ct386sx,  ibm5170, 0,       ct386sx,   0,    at_state,      at,      "<generic>",  "NEAT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1100//COMP ( 1988, at386sx,  ibm5170, 0,       ct386sx,   0,    at_state,      at,      "<generic>",  "PC/AT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1101COMP ( 1990, at486,    ibm5170, 0,       at486,     0,    at_state,      at,      "<generic>",  "PC/AT 486 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1102COMP ( 1989, neat,     ibm5170, 0,       neat,      0,    at_state,      at,      "<generic>",  "NEAT (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
1103COMP ( 1989, ec1842,   ibm5150, 0,       ec1842,    0,    at_state,      at,      "<unknown>",  "EC-1842", MACHINE_NOT_WORKING )
1104COMP ( 1993, ec1849,   ibm5170, 0,       ec1842,    0,    at_state,      at,      "<unknown>",  "EC-1849", MACHINE_NOT_WORKING )
1105COMP ( 1993, megapc,   0,       0,       megapc,    0,    megapc_state,  megapc,   "Amstrad plc", "MegaPC", MACHINE_NOT_WORKING )
1106COMP ( 199?, megapcpl, megapc,  0,       megapcpl,  0,    megapc_state,  megapcpl, "Amstrad plc", "MegaPC Plus", MACHINE_NOT_WORKING )
1107COMP ( 199?, megapcpla, megapc, 0,       megapcpla, 0,    at_state,      megapcpla,"Amstrad plc", "MegaPC Plus (WINBUS chipset)", MACHINE_NOT_WORKING )
1108COMP ( 1989, pc2386,   ibm5170, 0,       at386l,    0,    at_state,      at,      "Amstrad plc", "Amstrad PC2386", MACHINE_NOT_WORKING )
1109COMP ( 1991, aprfte,   ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot FT//ex 486 (J3 Motherboard)", MACHINE_NOT_WORKING )
1110COMP ( 1991, ftsserv,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot FTs (Scorpion)", MACHINE_NOT_WORKING )
1111COMP ( 1992, aprpand,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot FTs (Panther Rev F 1.02.26)", MACHINE_NOT_WORKING )
1112COMP ( 1990, aplanst,  ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot LANstation (Krypton Motherboard)", MACHINE_NOT_WORKING )
1113COMP ( 1990, aplannb,  ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot LANstation (Novell Remote Boot)", MACHINE_NOT_WORKING )
1114COMP ( 1992, aplscar,  ibm5170, 0,       at486l,    0,    at_state,      at,      "Apricot",  "Apricot LS Pro (Caracal Motherboard)", MACHINE_NOT_WORKING )
1115COMP ( 1992, aplsbon,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot LS Pro (Bonsai Motherboard)", MACHINE_NOT_WORKING )
1116COMP ( 1988, xb42663,  ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot Qi 300 (Rev D,E & F Motherboard)", MACHINE_NOT_WORKING )
1117COMP ( 1988, qi600,    ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot Qi 600 (Neptune Motherboard)", MACHINE_NOT_WORKING )
1118COMP ( 1990, qi900,    ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot Qi 900 (Scorpion Motherboard)", MACHINE_NOT_WORKING )
1119COMP ( 1989, apvxft,   ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot VX FT server", MACHINE_NOT_WORKING )
1120COMP ( 1991, apxenls3, ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot XEN-LS (Venus IV Motherboard)", MACHINE_NOT_WORKING )
1121COMP ( 1993, apxlsam,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot XEN-LS II (Samurai Motherboard)", MACHINE_NOT_WORKING )
1122COMP ( 1987, apxeni,   ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot XEN-i 386 (Leopard Motherboard)" , MACHINE_NOT_WORKING )
1123COMP ( 1989, xb42639,  ibm5170, 0,       xb42639,   0,    at_state,      at,      "Apricot",  "Apricot XEN-S (Venus I Motherboard 286)" , MACHINE_NOT_WORKING )
1124COMP ( 1990, xb42639a, ibm5170, 0,       xb42639,   0,    at_state,      at,      "Apricot",  "Apricot XEN-S (Venus II Motherboard 286)" , MACHINE_NOT_WORKING )
1125COMP ( 1989, xb42664,  ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot XEN-S (Venus I Motherboard 386)" , MACHINE_NOT_WORKING )
1126COMP ( 1990, xb42664a, ibm5170, 0,       at386,     0,    at_state,      at,      "Apricot",  "Apricot XEN-S (Venus II Motherboard 386)" , MACHINE_NOT_WORKING )
1127COMP ( 1993, apxena1,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot XEN PC (A1 Motherboard)", MACHINE_NOT_WORKING )
1128COMP ( 1993, apxenp2,  ibm5170, 0,       at486,     0,    at_state,      at,      "Apricot",  "Apricot XEN PC (P2 Motherboard)", MACHINE_NOT_WORKING )
1129COMP ( 1990, c386sx16, ibm5170, 0,       at386sx,   0,    at_state,      at,      "Commodore Business Machines", "Commodore 386SX-16", MACHINE_NOT_WORKING )
1130COMP ( 1988, cmdpc30,  ibm5170, 0,       ibm5162,   0,    at_state,      at,      "Commodore Business Machines",  "PC 30 III", MACHINE_NOT_WORKING )
1131COMP ( 1995, ficpio2,  ibm5170, 0,       ficpio2,   0,    at_state,      atpci,   "FIC", "486-PIO-2", MACHINE_NOT_WORKING )
1132COMP ( 1985, k286i,    ibm5170, 0,       k286i,     0,    at_state,      at,      "Kaypro",   "286i", MACHINE_NOT_WORKING )
1133COMP ( 1991, t2000sx,  ibm5170, 0,       at386sx,   0,    at_state,      at,      "Toshiba",  "T2000SX", MACHINE_NOT_WORKING )
trunk/src/mame/drivers/atpci.cpp
r0r253721
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol, Miodrag Milanovic, Carl
3
4#include "emu.h"
5#include "cpu/i386/i386.h"
6#include "bus/lpci/pci.h"
7#include "bus/lpci/i82371ab.h"
8#include "bus/lpci/i82371sb.h"
9#include "bus/lpci/i82439tx.h"
10#include "machine/at.h"
11#include "bus/pc_kbd/pc_kbdc.h"
12#include "bus/pc_kbd/keyboards.h"
13
14class at586_state : public driver_device
15{
16public:
17   at586_state(const machine_config &mconfig, device_type type, const char *tag)
18      : driver_device(mconfig, type, tag),
19      m_maincpu(*this, "maincpu") { }
20   required_device<cpu_device> m_maincpu;
21
22};
23
24static MACHINE_CONFIG_FRAGMENT( tx_config )
25   MCFG_I82439TX_CPU( "maincpu" )
26   MCFG_I82439TX_REGION( "isa" )
27MACHINE_CONFIG_END
28
29static SLOT_INTERFACE_START( pci_devices )
30   SLOT_INTERFACE_INTERNAL("i82439tx", I82439TX)
31   SLOT_INTERFACE_INTERNAL("i82371ab", I82371AB)
32   SLOT_INTERFACE_INTERNAL("i82371sb", I82371SB)
33SLOT_INTERFACE_END
34
35static ADDRESS_MAP_START( at586_map, AS_PROGRAM, 32, at586_state )
36   AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
37   AM_RANGE(0x000a0000, 0x000bffff) AM_NOP
38   AM_RANGE(0x00800000, 0x00800bff) AM_RAM AM_SHARE("nvram")
39   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("isa", 0x20000)
40ADDRESS_MAP_END
41
42static ADDRESS_MAP_START( at586_io, AS_IO, 32, at586_state )
43   ADDRESS_MAP_UNMAP_HIGH
44   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write)
45ADDRESS_MAP_END
46
47static MACHINE_CONFIG_START( at586, at586_state )
48   MCFG_CPU_ADD("maincpu", PENTIUM, 60000000)
49   MCFG_CPU_PROGRAM_MAP(at586_map)
50   MCFG_CPU_IO_MAP(at586_io)
51   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371ab:pic8259_master", pic8259_device, inta_cb)
52
53   MCFG_RAM_ADD(RAM_TAG)
54   MCFG_RAM_DEFAULT_SIZE("4M")
55   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M,256M")
56
57   MCFG_PCI_BUS_ADD("pcibus", 0)
58   MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
59   MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
60
61   MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371ab", true)
62
63   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
64   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa2", pc_isa16_cards, nullptr, false)
65   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa3", pc_isa16_cards, nullptr, false)
66   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa4", pc_isa16_cards, nullptr, false)
67   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371ab:isabus","isa5", pc_isa16_cards, nullptr, false)
68   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
69
70   MCFG_FRAGMENT_ADD( at_softlists )
71MACHINE_CONFIG_END
72
73static MACHINE_CONFIG_START( at586x3, at586_state )
74   MCFG_CPU_ADD("maincpu", PENTIUM, 60000000)
75   MCFG_CPU_PROGRAM_MAP(at586_map)
76   MCFG_CPU_IO_MAP(at586_io)
77   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371sb:pic8259_master", pic8259_device, inta_cb)
78
79   MCFG_RAM_ADD(RAM_TAG)
80   MCFG_RAM_DEFAULT_SIZE("4M")
81   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M,256M")
82
83   MCFG_PCI_BUS_ADD("pcibus", 0)
84   MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
85   MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
86
87   MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371sb", true)
88
89   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
90   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa2", pc_isa16_cards, nullptr, false)
91   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa3", pc_isa16_cards, nullptr, false)
92   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa4", pc_isa16_cards, nullptr, false)
93   MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa5", pc_isa16_cards, nullptr, false)
94   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
95
96   MCFG_FRAGMENT_ADD( at_softlists )
97MACHINE_CONFIG_END
98
99ROM_START( at586 )
100   ROM_REGION32_LE(0x40000, "isa", 0)
101   ROM_SYSTEM_BIOS(0, "sptx", "SP-586TX")
102   ROMX_LOAD("sp586tx.bin",   0x20000, 0x20000, CRC(1003d72c) SHA1(ec9224ff9b0fdfd6e462cb7bbf419875414739d6), ROM_BIOS(1))
103   ROM_SYSTEM_BIOS(1, "unisys", "Unisys 586") // probably bad dump due to need of hack in i82439tx to work
104   ROMX_LOAD("at586.bin",     0x20000, 0x20000, CRC(717037f5) SHA1(1d49d1b7a4a40d07d1a897b7f8c827754d76f824), ROM_BIOS(2))
105
106   ROM_SYSTEM_BIOS(2, "ga586t2", "Gigabyte GA-586T2") // ITE 8679 I/O
107   ROMX_LOAD("gb_ga586t2.bin",  0x20000, 0x20000, CRC(3a50a6e1) SHA1(dea859b4f1492d0d08aacd260ed1e83e00ebac08), ROM_BIOS(3))
108   ROM_SYSTEM_BIOS(3, "5tx52", "Acorp 5TX52") // W83877TF I/O
109   ROMX_LOAD("acorp_5tx52.bin", 0x20000, 0x20000, CRC(04d69419) SHA1(983377674fef05e710c8665c14cc348c99166fb6), ROM_BIOS(4))
110   ROM_SYSTEM_BIOS(4, "txp4", "ASUS TXP4") // W83977TF-A I/O
111   ROMX_LOAD("asus_txp4.bin",   0x20000, 0x20000, CRC(a1321bb1) SHA1(92e5f14d8505119f85b148a63510617ac12bcdf3), ROM_BIOS(5))
112ROM_END
113
114ROM_START( at586x3 )
115   ROM_REGION32_LE(0x40000, "isa", 0)
116   ROM_LOAD("5hx29.bin",   0x20000, 0x20000, CRC(07719a55) SHA1(b63993fd5186cdb4f28c117428a507cd069e1f68))
117ROM_END
118
119/* FIC VT-503 (Intel TX chipset, ITE 8679 Super I/O) */
120ROM_START( ficvt503 )
121   ROM_REGION32_LE(0x40000, "isa", 0)
122   ROM_SYSTEM_BIOS(0, "109gi13", "1.09GI13") /* 1997-10-02 */
123   ROMX_LOAD("109gi13.bin", 0x20000, 0x20000, CRC(0c32af48) SHA1(2cce40a98598f1ed1f398975f7a90c8be4200667), ROM_BIOS(1))
124   ROM_SYSTEM_BIOS(1, "109gi14", "1.09GI14") /* 1997-11-07 */
125   ROMX_LOAD("109gi14.awd", 0x20000, 0x20000, CRC(588c5cc8) SHA1(710e5405850fd975b362a422bfe9bc6d6c9a36cd), ROM_BIOS(2))
126   ROM_SYSTEM_BIOS(2, "109gi15", "1.09GI15") /* 1997-11-07 */
127   ROMX_LOAD("109gi15.awd", 0x20000, 0x20000, CRC(649a3481) SHA1(e681c6ab55a67cec5978dfffa75fcddc2aa0de4d), ROM_BIOS(3))
128   ROM_SYSTEM_BIOS(3, "109gi16", "1.09GI16") /* 2000-03-23 */
129   ROMX_LOAD("109gi16.bin", 0x20000, 0x20000, CRC(a928f271) SHA1(127a83a60752cc33b3ca49774488e511ec7bac55), ROM_BIOS(4))
130   ROM_SYSTEM_BIOS(4, "115gk140", "1.15GK140") /* 1999-03-03 */
131   ROMX_LOAD("115gk140.awd", 0x20000, 0x20000, CRC(65e88956) SHA1(f94bb0732e00b5b0f18f4e349db24a289f8379c5), ROM_BIOS(5))
132ROM_END
133
134COMP ( 1990, at586,    ibm5170, 0,       at586,     0, driver_device,   0,  "<generic>",  "PC/AT 586 (PIIX4)", MACHINE_NOT_WORKING )
135COMP ( 1990, at586x3,  ibm5170, 0,       at586x3,   0, driver_device,   0,  "<generic>",  "PC/AT 586 (PIIX3)", MACHINE_NOT_WORKING )
136COMP ( 1997, ficvt503, ibm5170, 0,       at586,     0, driver_device,   0,  "FIC", "VT-503",                   MACHINE_NOT_WORKING )
trunk/src/mame/drivers/indy_indigo2.cpp
r253720r253721
4646#include "machine/sgi.h"
4747#include "machine/pckeybrd.h"
4848#include "machine/pc_lpt.h"
49#include "includes/at.h"
5049#include "machine/8042kbdc.h"
5150#include "machine/pit8253.h"
5251#include "video/newport.h"
trunk/src/mame/drivers/ps2.cpp
r0r253721
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol, Miodrag Milanovic, Carl
3
4#include "emu.h"
5#include "cpu/i86/i286.h"
6#include "cpu/i386/i386.h"
7#include "machine/at.h"
8#include "machine/ram.h"
9#include "bus/isa/isa_cards.h"
10#include "bus/pc_kbd/keyboards.h"
11
12class ps2_state : public driver_device
13{
14public:
15   ps2_state(const machine_config &mconfig, device_type type, const char *tag)
16      : driver_device(mconfig, type, tag),
17      m_maincpu(*this, "maincpu"),
18      m_mb(*this, "mb"),
19      m_ram(*this, RAM_TAG)
20      { }
21   required_device<cpu_device> m_maincpu;
22   required_device<at_mb_device> m_mb;
23   required_device<ram_device> m_ram;
24
25protected:
26   void machine_start() override;
27};
28
29static ADDRESS_MAP_START( ps2_16_map, AS_PROGRAM, 16, ps2_state )
30   ADDRESS_MAP_UNMAP_HIGH
31   AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("bank10")
32   AM_RANGE(0x0e0000, 0x0fffff) AM_ROM AM_REGION("bios", 0)
33   AM_RANGE(0xfe0000, 0xffffff) AM_ROM AM_REGION("bios", 0)
34ADDRESS_MAP_END
35
36static ADDRESS_MAP_START( ps2_32_map, AS_PROGRAM, 32, ps2_state )
37   ADDRESS_MAP_UNMAP_HIGH
38   AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
39   AM_RANGE(0x000e0000, 0x000fffff) AM_ROM AM_REGION("bios", 0)
40   AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0)
41ADDRESS_MAP_END
42
43static ADDRESS_MAP_START(ps2_16_io, AS_IO, 16, ps2_state )
44   ADDRESS_MAP_UNMAP_HIGH
45   AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
46ADDRESS_MAP_END
47
48static ADDRESS_MAP_START( ps2_32_io, AS_IO, 32, ps2_state )
49   ADDRESS_MAP_UNMAP_HIGH
50   AM_RANGE(0x0000, 0x00ff) AM_DEVICE16("mb", at_mb_device, map, 0xfffffffff)
51ADDRESS_MAP_END
52
53void ps2_state::machine_start()
54{
55   address_space& space = m_maincpu->space(AS_PROGRAM);
56
57   /* MESS managed RAM */
58   membank("bank10")->set_base(m_ram->pointer());
59
60   if (m_ram->size() > 0xa0000)
61   {
62      offs_t ram_limit = 0x100000 + m_ram->size() - 0xa0000;
63      space.install_read_bank(0x100000,  ram_limit - 1, "bank1");
64      space.install_write_bank(0x100000,  ram_limit - 1, "bank1");
65      membank("bank1")->set_base(m_ram->pointer() + 0xa0000);
66   }
67}
68
69static MACHINE_CONFIG_START( ps2m30286, ps2_state )
70   /* basic machine hardware */
71   MCFG_CPU_ADD("maincpu", I80286, 10000000)
72   MCFG_CPU_PROGRAM_MAP(ps2_16_map)
73   MCFG_CPU_IO_MAP(ps2_16_io)
74   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
75   MCFG_80286_SHUTDOWN(DEVWRITELINE("mb", at_mb_device, shutdown))
76
77   MCFG_DEVICE_ADD("mb", AT_MB, 0)
78   MCFG_QUANTUM_TIME(attotime::from_hz(60))
79   MCFG_FRAGMENT_ADD( at_softlists )
80
81   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "vga", true)
82   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, "fdc", false)
83   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, "ide", false)
84   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, "comat", false)
85   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
86
87   /* internal ram */
88   MCFG_RAM_ADD(RAM_TAG)
89   MCFG_RAM_DEFAULT_SIZE("1664K")
90   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M")
91MACHINE_CONFIG_END
92
93static MACHINE_CONFIG_START( ps2386, ps2_state )
94   MCFG_CPU_ADD("maincpu", I386, 12000000)
95   MCFG_CPU_PROGRAM_MAP(ps2_32_map)
96   MCFG_CPU_IO_MAP(ps2_32_io)
97   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
98
99   MCFG_DEVICE_ADD("mb", AT_MB, 0)
100   MCFG_QUANTUM_TIME(attotime::from_hz(60))
101   MCFG_FRAGMENT_ADD( at_softlists )
102
103   // on board devices
104   MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true)
105   MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true)
106   MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "ide", true)
107   MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "lpt", true)
108   // ISA cards
109   MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_et4k", false)
110   MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false)
111   MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false)
112   MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false)
113   MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false)
114   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
115
116   /* internal ram */
117   MCFG_RAM_ADD(RAM_TAG)
118   MCFG_RAM_DEFAULT_SIZE("1664K")
119   MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M,16M,32M,64M,128M,256M")
120MACHINE_CONFIG_END
121
122ROM_START( i8530286 )
123   ROM_REGION(0x20000,"bios", 0)
124   // saved from running machine
125   ROM_LOAD16_BYTE("ps2m30.0", 0x00000, 0x10000, CRC(9965a634) SHA1(c237b1760f8a4561ec47dc70fe2e9df664e56596))
126   ROM_LOAD16_BYTE("ps2m30.1", 0x00001, 0x10000, CRC(1448d3cb) SHA1(13fa26d895ce084278cd5ab1208fc16c80115ebe))
127ROM_END
128
129/*
130
1318530-H31 (Model 30/286)
132======================
133  P/N          Date
13433F5381A EC C01446 1990
135
136*/
137ROM_START( i8530h31 )
138   ROM_REGION(0x20000,"bios", 0)
139   ROM_LOAD( "33f5381a.bin", 0x00000, 0x20000, CRC(ff57057d) SHA1(d7f1777077a8df43c3c14d175b9709bd3969c4b1))
140ROM_END
141
142/*
1438535-043 (Model 35)
144===================
145  P/N    Checksum     Date
14604G2021    C26C       1991    ODD
14704G2022    9B94       1991    EVEN
148*/
149ROM_START( i8535043 )
150   ROM_REGION(0x20000,"bios", 0)
151   ROM_LOAD16_BYTE( "04g2021.bin", 0x00001, 0x10000, CRC(4069b2eb) SHA1(9855c84c81d1f07e1da66b1ca45c1c10c0717a90))
152   ROM_LOAD16_BYTE( "04g2022.bin", 0x00000, 0x10000, CRC(35c1af65) SHA1(7d2445cc463969c808fdd78e0a27a03db5dfc698))
153ROM_END
154
155/*
1568550-021 (Model 50)
157===================
158 Code     Date       Internal
15990X7420  4/12/87 --> 90X6815
16090X7423  8/12/87 --> 90X6816
16190X7426  8/12/87 --> 90X6817
16290X7429 18/12/87 --> 90X6818
163
164Same ROMs used by : (According to http://www.ibmmuseum.com/ohlandl/8565/8560.html)
165
166IBM Personal System/2 Model 60 (8560-041 and 8560-071)
167IBM Personal System/2 Model 65 SX (8565-061 and 8565-121)
168
169*/
170ROM_START( i8550021 )
171   ROM_REGION(0x20000,"bios", 0)
172   ROM_LOAD16_BYTE( "90x7423.zm14", 0x00000, 0x8000, CRC(2c1633e0) SHA1(1af7faa526585a7cfb69e71d90a75e1f1c541586))
173   ROM_LOAD16_BYTE( "90x7426.zm16", 0x00001, 0x8000, CRC(e7c762ce) SHA1(228f67dc915d84519da7fc1a59b7f9254278f3a0))
174   ROM_LOAD16_BYTE( "90x7420.zm13", 0x10000, 0x8000, CRC(19a57cc1) SHA1(5b31ba66cd3690e651a450619a32b7210769945d))
175   ROM_LOAD16_BYTE( "90x7429.zm18", 0x10001, 0x8000, CRC(6f0120f6) SHA1(e112c291ac3d9f6507c93ac49ad26f9fd2245fd2))
176
177   ROM_REGION( 0x800, "keyboard", 0 )
178   ROM_LOAD( "72x8455.zm82", 0x000, 0x800, CRC(7da223d3) SHA1(54c52ff6c6a2310f79b2c7e6d1259be9de868f0e) )
179ROM_END
180
181/*
1828550-061 (Model 50Z)
183===================
184                  P/N              Date
185AMI 8935MKN     15F8365    S63512  1988
186AMI 8948MML     15F8366    S63512  1988
187
188http://ps-2.kev009.com:8081/ohlandl/8550/8550z_Planar.html
189
190
191*/
192ROM_START( i8550061 )
193   ROM_REGION(0x20000,"bios", 0)
194   ROM_LOAD16_BYTE( "15f8365.zm5", 0x00001, 0x10000, CRC(35aa3ecf) SHA1(a122531092a9cb08600b276da9c9c3ce385aab7b))
195   ROM_LOAD16_BYTE( "15f8366.zm6", 0x00000, 0x10000, CRC(11bf564d) SHA1(0dda6a7ca9294cfaab5bdf4c05973be13b2766fc))
196ROM_END
197
198/*
1998555-X61 (Model 55SX)
200===================
201         Code     Date       Internal
202ODD     33F8145  13/03/90 --> 33F8153
203EVEN    33F8146  31/01/90 --> 33F8152
204
2058555-081 (Model 55SX)
206===================
207                         Code          Date    Internal
208ODD     AMI 9205MEN     92F0627 EC32680 88 --> 33F8153
209EVEN    AMI 9203MGS     92F0626 EC32680 88 --> 33F8152
210
211*/
212ROM_START( i8555081 )
213   ROM_REGION(0x20000,"bios", 0)
214   ROM_LOAD16_BYTE("33f8145.zm40", 0x00001, 0x10000, CRC(0895894c) SHA1(7cee77828867ad1bdbe0ac223bc25d23c65b28a0))
215   ROM_LOAD16_BYTE("33f8146.zm41", 0x00000, 0x10000, CRC(c6020680) SHA1(b25a64e4b2dca07c567648401100e04e89bbcddb))
216ROM_END
217
218/*
2198580-071 (Model 80)
220===================
221                  Code    Date      Internal
222AMI 8924MBW     90X8548   1987  --> 72X7551
223AMI 8924MBL     90X8549   1987  --> 72X7554
224AMI 8924MBG     90X8550   1987  --> 72X7557
225AMI 8921MBK     90X8551   1987  --> 72X7560
226*/
227ROM_START( i8580071 )
228   ROM_REGION(0x20000,"bios", 0)
229   ROM_LOAD32_BYTE( "90x8548.bin", 0x00000, 0x8000, CRC(1f13eea5) SHA1(0bf53ad86f47db3825a713ea2e4ef23715cc4f79))
230   ROM_LOAD32_BYTE( "90x8549.bin", 0x00001, 0x8000, CRC(9e0f4a99) SHA1(b8600f04159ed281a57416274390ba9302be541b))
231   ROM_LOAD32_BYTE( "90x8550.bin", 0x00002, 0x8000, CRC(cb21df96) SHA1(0c2765f6becfa3f9171c4f13f7b74d19c4c9acc2))
232   ROM_LOAD32_BYTE( "90x8551.bin", 0x00003, 0x8000, CRC(3d7e9868) SHA1(2928fe0e48a573cc2c0c41bd7f7188a54a908229))
233ROM_END
234
235/*
2368580-111 (Model 80)
237===================
238                 Code    Date    Internal
239AMI 8934MDL     15F6637  1987 --> 15F6597
240AMI 8944MDI     15F6639  1987 --> 15F6600
241*/
242ROM_START( i8580111 )
243   ROM_REGION(0x20000,"bios", 0)
244   ROM_LOAD16_BYTE( "15f6637.bin", 0x00000, 0x10000, CRC(76c36d1a) SHA1(c68d52a2e5fbd303225ebb006f91869b29ef700a))
245   ROM_LOAD16_BYTE( "15f6639.bin", 0x00001, 0x10000, CRC(82cf0f7d) SHA1(13bb39225757b89749af70e881af0228673dbe0c))
246ROM_END
247
248COMP ( 1990, i8530h31, ibm5170, 0,       ps2m30286, 0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8530-H31 (Model 30/286)", MACHINE_NOT_WORKING )
249COMP ( 1988, i8530286, ibm5170, 0,       ps2m30286, 0, driver_device, 0,  "International Business Machines",  "IBM PS/2 Model 30-286", MACHINE_NOT_WORKING )
250COMP ( 198?, i8535043, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8535-043 (Model 35)", MACHINE_NOT_WORKING )
251COMP ( 198?, i8550021, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8550-021 (Model 50)", MACHINE_NOT_WORKING )
252COMP ( 198?, i8550061, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8550-061 (Model 50Z)", MACHINE_NOT_WORKING )
253COMP ( 1989, i8555081, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8550-081 (Model 55SX)", MACHINE_NOT_WORKING )
254COMP ( 198?, i8580071, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8580-071 (Model 80)", MACHINE_NOT_WORKING )
255COMP ( 198?, i8580111, ibm5170, 0,       ps2386,    0, driver_device, 0,  "International Business Machines",  "IBM PS/2 8580-111 (Model 80)", MACHINE_NOT_WORKING )
trunk/src/mame/includes/at.h
r253720r253721
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol, Miodrag Milanovic
3/*****************************************************************************
4 *
5 * includes/at.h
6 *
7 * IBM AT Compatibles
8 *
9 ****************************************************************************/
10
11#ifndef AT_H_
12#define AT_H_
13
14#include "emu.h"
15#include "cpu/i86/i86.h"
16#include "cpu/i86/i286.h"
17#include "cpu/i386/i386.h"
18
19#include "machine/ins8250.h"
20#include "machine/mc146818.h"
21#include "machine/ds128x.h"
22#include "machine/pic8259.h"
23#include "bus/lpci/i82371ab.h"
24#include "bus/lpci/i82371sb.h"
25#include "bus/lpci/i82439tx.h"
26#include "bus/lpci/vt82c505.h"
27#include "machine/vt82c496.h"
28#include "machine/cs8221.h"
29#include "machine/pit8253.h"
30#include "machine/wd7600.h"
31
32#include "machine/idectrl.h"
33#include "machine/at_keybc.h"
34
35#include "imagedev/harddriv.h"
36#include "machine/am9517a.h"
37#include "bus/lpci/pci.h"
38
39#include "sound/dac.h"
40#include "sound/speaker.h"
41#include "machine/ram.h"
42#include "machine/nvram.h"
43#include "bus/isa/isa.h"
44#include "bus/isa/isa_cards.h"
45
46#include "machine/pc_lpt.h"
47#include "bus/pc_kbd/pc_kbdc.h"
48
49
50class at586_state : public driver_device
51{
52public:
53   at586_state(const machine_config &mconfig, device_type type, const char *tag)
54      : driver_device(mconfig, type, tag),
55      m_maincpu(*this, "maincpu") { }
56   required_device<cpu_device> m_maincpu;
57
58   DECLARE_DRIVER_INIT(at586);
59};
60
61class at_state : public driver_device
62{
63public:
64   at_state(const machine_config &mconfig, device_type type, const char *tag)
65      : driver_device(mconfig, type, tag),
66   m_maincpu(*this, "maincpu"),
67   m_pic8259_master(*this, "pic8259_master"),
68   m_pic8259_slave(*this, "pic8259_slave"),
69   m_dma8237_1(*this, "dma8237_1"),
70   m_dma8237_2(*this, "dma8237_2"),
71   m_pit8254(*this, "pit8254"),
72   m_cs8221(*this, "cs8221"),
73   m_ide(*this, "ide"),
74   m_keybc(*this, "keybc"),
75   m_isabus(*this, "isabus"),
76   m_speaker(*this, "speaker"),
77   m_ram(*this, RAM_TAG),
78   m_mc146818(*this, "rtc"),
79   m_pc_kbdc(*this, "pc_kbdc")
80   { }
81
82   required_device<cpu_device> m_maincpu;
83   optional_device<pic8259_device> m_pic8259_master;
84   optional_device<pic8259_device> m_pic8259_slave;
85   optional_device<am9517a_device> m_dma8237_1;
86   optional_device<am9517a_device> m_dma8237_2;
87   optional_device<pit8254_device> m_pit8254;
88   optional_device<cs8221_device> m_cs8221;
89   optional_device<ide_controller_device> m_ide;
90   optional_device<at_keyboard_controller_device> m_keybc;
91   optional_device<isa16_device> m_isabus;
92   required_device<speaker_sound_device> m_speaker;
93   optional_device<ram_device> m_ram;
94   optional_device<mc146818_device> m_mc146818;
95   optional_device<pc_kbdc_device> m_pc_kbdc;
96   DECLARE_READ8_MEMBER(at_page8_r);
97   DECLARE_WRITE8_MEMBER(at_page8_w);
98   DECLARE_READ8_MEMBER(at_portb_r);
99   DECLARE_WRITE8_MEMBER(at_portb_w);
100   DECLARE_READ8_MEMBER(ps2_portb_r);
101   DECLARE_READ8_MEMBER(get_slave_ack);
102   DECLARE_WRITE_LINE_MEMBER(at_pit8254_out0_changed);
103   DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed);
104   DECLARE_WRITE_LINE_MEMBER(pc_dma_hrq_changed);
105   DECLARE_READ8_MEMBER(pc_dma8237_0_dack_r);
106   DECLARE_READ8_MEMBER(pc_dma8237_1_dack_r);
107   DECLARE_READ8_MEMBER(pc_dma8237_2_dack_r);
108   DECLARE_READ8_MEMBER(pc_dma8237_3_dack_r);
109   DECLARE_READ8_MEMBER(pc_dma8237_5_dack_r);
110   DECLARE_READ8_MEMBER(pc_dma8237_6_dack_r);
111   DECLARE_READ8_MEMBER(pc_dma8237_7_dack_r);
112   DECLARE_WRITE8_MEMBER(pc_dma8237_0_dack_w);
113   DECLARE_WRITE8_MEMBER(pc_dma8237_1_dack_w);
114   DECLARE_WRITE8_MEMBER(pc_dma8237_2_dack_w);
115   DECLARE_WRITE8_MEMBER(pc_dma8237_3_dack_w);
116   DECLARE_WRITE8_MEMBER(pc_dma8237_5_dack_w);
117   DECLARE_WRITE8_MEMBER(pc_dma8237_6_dack_w);
118   DECLARE_WRITE8_MEMBER(pc_dma8237_7_dack_w);
119   DECLARE_WRITE_LINE_MEMBER(at_dma8237_out_eop);
120   DECLARE_WRITE_LINE_MEMBER(pc_dack0_w);
121   DECLARE_WRITE_LINE_MEMBER(pc_dack1_w);
122   DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
123   DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
124   DECLARE_WRITE_LINE_MEMBER(pc_dack4_w);
125   DECLARE_WRITE_LINE_MEMBER(pc_dack5_w);
126   DECLARE_WRITE_LINE_MEMBER(pc_dack6_w);
127   DECLARE_WRITE_LINE_MEMBER(pc_dack7_w);
128   DECLARE_READ8_MEMBER(at_dma8237_2_r);
129   DECLARE_WRITE8_MEMBER(at_dma8237_2_w);
130   DECLARE_READ8_MEMBER(at_keybc_r);
131   DECLARE_WRITE8_MEMBER(at_keybc_w);
132   DECLARE_READ16_MEMBER(neat_chipset_r);
133   DECLARE_WRITE16_MEMBER(neat_chipset_w);
134   DECLARE_WRITE_LINE_MEMBER(at_mc146818_irq);
135   DECLARE_WRITE8_MEMBER(write_rtc);
136   UINT8 m_at_spkrdata;
137   UINT8 m_pit_out2;
138   int m_dma_channel;
139   bool m_cur_eop;
140   UINT8 m_dma_offset[2][4];
141   UINT8 m_at_pages[0x10];
142   UINT16 m_dma_high_byte;
143   UINT8 m_at_speaker;
144   UINT16 m_ps1_reg[2];
145   DECLARE_READ16_MEMBER(ps1_unk_r);
146   DECLARE_WRITE16_MEMBER(ps1_unk_w);
147   DECLARE_READ8_MEMBER(ps1_kbdc_r);
148
149   void at_speaker_set_spkrdata(UINT8 data);
150   DECLARE_WRITE_LINE_MEMBER(at_shutdown);
151
152   UINT8 m_channel_check;
153   UINT8 m_nmi_enabled;
154   DECLARE_READ8_MEMBER(pc_dma_read_byte);
155   DECLARE_WRITE8_MEMBER(pc_dma_write_byte);
156   DECLARE_READ8_MEMBER(pc_dma_read_word);
157   DECLARE_WRITE8_MEMBER(pc_dma_write_word);
158
159   DECLARE_DRIVER_INIT(atcga);
160   DECLARE_DRIVER_INIT(atvga);
161   DECLARE_DRIVER_INIT(megapcpla);
162   DECLARE_DRIVER_INIT(atpci);
163   DECLARE_MACHINE_START(at);
164   DECLARE_MACHINE_RESET(at);
165   void pc_set_dma_channel(int channel, int state);
166   void init_at_common(int xmsbase);
167   UINT32 at_286_a20(bool state);
168};
169
170class megapc_state : public driver_device
171{
172public:
173   megapc_state(const machine_config &mconfig, device_type type, const char *tag)
174      : driver_device(mconfig, type, tag),
175      m_maincpu(*this, "maincpu"),
176      m_wd7600(*this, "wd7600"),
177      m_isabus(*this, "isabus"),
178      m_speaker(*this, "speaker")
179      { }
180
181public:
182   required_device<cpu_device> m_maincpu;
183   required_device<wd7600_device> m_wd7600;
184   required_device<isa16_device> m_isabus;
185   required_device<speaker_sound_device> m_speaker;
186
187   DECLARE_DRIVER_INIT(megapc);
188   DECLARE_DRIVER_INIT(megapcpl);
189
190   DECLARE_READ16_MEMBER( wd7600_ior );
191   DECLARE_WRITE16_MEMBER( wd7600_iow );
192   DECLARE_WRITE_LINE_MEMBER( wd7600_hold );
193   DECLARE_WRITE8_MEMBER( wd7600_tc ) { m_isabus->eop_w(offset, data); }
194   DECLARE_WRITE_LINE_MEMBER( wd7600_spkr ) { m_speaker->level_w(state); }
195};
196
197
198#endif /* AT_H_ */
trunk/src/mame/machine/at.cpp
r253720r253721
11// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol, Miodrag Milanovic
2// copyright-holders:Wilbert Pol, Miodrag Milanovic, Carl
33/***************************************************************************
44
55    IBM AT Compatibles
66
77***************************************************************************/
88
9#include "includes/at.h"
9#include "machine/at.h"
10#include "cpu/i86/i286.h"
11#include "cpu/i386/i386.h"
12#include "machine/at_keybc.h"
13#include "bus/pc_kbd/pc_kbdc.h"
14#include "sound/dac.h"
1015
1116#define LOG_PORT80  0
1217
18const device_type AT_MB = &device_creator<at_mb_device>;
19
20at_mb_device::at_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
21   : device_t(mconfig, AT_MB, "PC/AT Motherboard", tag, owner, clock, "at_mb", __FILE__),
22   m_maincpu(*this, ":maincpu"),
23   m_isabus(*this, "isabus"),
24   m_pic8259_slave(*this, "pic8259_slave"),
25   m_dma8237_1(*this, "dma8237_1"),
26   m_dma8237_2(*this, "dma8237_2"),
27   m_pit8254(*this, "pit8254"),
28   m_speaker(*this, "speaker"),
29   m_mc146818(*this, "rtc")
30{
31}
32
33void at_mb_device::device_reset()
34{
35   m_at_spkrdata = 0;
36   m_pit_out2 = 1;
37   m_dma_channel = -1;
38   m_cur_eop = false;
39}
40
41void at_mb_device::device_start()
42{
43   if(!strncmp(m_maincpu->shortname(), "i80286", 6))
44      i80286_cpu_device::static_set_a20_callback(m_maincpu, i80286_cpu_device::a20_cb(FUNC(at_mb_device::a20_286), this));
45}
46
47MACHINE_CONFIG_FRAGMENT( at_softlists )
48   /* software lists */
49   MCFG_SOFTWARE_LIST_ADD("pc_disk_list","ibm5150")
50   MCFG_SOFTWARE_LIST_ADD("xt_disk_list","ibm5160_flop")
51   MCFG_SOFTWARE_LIST_ADD("at_disk_list","ibm5170")
52   MCFG_SOFTWARE_LIST_ADD("at_cdrom_list","ibm5170_cdrom")
53MACHINE_CONFIG_END
54
55static MACHINE_CONFIG_FRAGMENT( at_mb )
56   MCFG_DEVICE_ADD("pit8254", PIT8254, 0)
57   MCFG_PIT8253_CLK0(4772720/4) /* heartbeat IRQ */
58   MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic8259_master", pic8259_device, ir0_w))
59   MCFG_PIT8253_CLK1(4772720/4) /* dram refresh */
60   MCFG_PIT8253_CLK2(4772720/4) /* pio port c pin 4, and speaker polling enough */
61   MCFG_PIT8253_OUT2_HANDLER(WRITELINE(at_mb_device, pit8254_out2_changed))
62
63   MCFG_DEVICE_ADD( "dma8237_1", AM9517A, XTAL_14_31818MHz/3 )
64   MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq0_w))
65   MCFG_I8237_OUT_EOP_CB(WRITELINE(at_mb_device, dma8237_out_eop))
66   MCFG_I8237_IN_MEMR_CB(READ8(at_mb_device, dma_read_byte))
67   MCFG_I8237_OUT_MEMW_CB(WRITE8(at_mb_device, dma_write_byte))
68   MCFG_I8237_IN_IOR_0_CB(READ8(at_mb_device, dma8237_0_dack_r))
69   MCFG_I8237_IN_IOR_1_CB(READ8(at_mb_device, dma8237_1_dack_r))
70   MCFG_I8237_IN_IOR_2_CB(READ8(at_mb_device, dma8237_2_dack_r))
71   MCFG_I8237_IN_IOR_3_CB(READ8(at_mb_device, dma8237_3_dack_r))
72   MCFG_I8237_OUT_IOW_0_CB(WRITE8(at_mb_device, dma8237_0_dack_w))
73   MCFG_I8237_OUT_IOW_1_CB(WRITE8(at_mb_device, dma8237_1_dack_w))
74   MCFG_I8237_OUT_IOW_2_CB(WRITE8(at_mb_device, dma8237_2_dack_w))
75   MCFG_I8237_OUT_IOW_3_CB(WRITE8(at_mb_device, dma8237_3_dack_w))
76   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(at_mb_device, dack0_w))
77   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(at_mb_device, dack1_w))
78   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(at_mb_device, dack2_w))
79   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(at_mb_device, dack3_w))
80   MCFG_DEVICE_ADD( "dma8237_2", AM9517A, XTAL_14_31818MHz/3 )
81   MCFG_I8237_OUT_HREQ_CB(WRITELINE(at_mb_device, dma_hrq_changed))
82   MCFG_I8237_IN_MEMR_CB(READ8(at_mb_device, dma_read_word))
83   MCFG_I8237_OUT_MEMW_CB(WRITE8(at_mb_device, dma_write_word))
84   MCFG_I8237_IN_IOR_1_CB(READ8(at_mb_device, dma8237_5_dack_r))
85   MCFG_I8237_IN_IOR_2_CB(READ8(at_mb_device, dma8237_6_dack_r))
86   MCFG_I8237_IN_IOR_3_CB(READ8(at_mb_device, dma8237_7_dack_r))
87   MCFG_I8237_OUT_IOW_1_CB(WRITE8(at_mb_device, dma8237_5_dack_w))
88   MCFG_I8237_OUT_IOW_2_CB(WRITE8(at_mb_device, dma8237_6_dack_w))
89   MCFG_I8237_OUT_IOW_3_CB(WRITE8(at_mb_device, dma8237_7_dack_w))
90   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(at_mb_device, dack4_w))
91   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(at_mb_device, dack5_w))
92   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(at_mb_device, dack6_w))
93   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(at_mb_device, dack7_w))
94
95   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(at_mb_device, get_slave_ack) )
96   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
97
98   MCFG_DEVICE_ADD("isabus", ISA16, 0)
99   MCFG_ISA16_CPU(":maincpu")
100   MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259_slave",  pic8259_device, ir2_w)) // in place of irq 2 on at irq 9 is used
101   MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir3_w))
102   MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir4_w))
103   MCFG_ISA_OUT_IRQ5_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir5_w))
104   MCFG_ISA_OUT_IRQ6_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir6_w))
105   MCFG_ISA_OUT_IRQ7_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w))
106   MCFG_ISA_OUT_IRQ10_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir3_w))
107   MCFG_ISA_OUT_IRQ11_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir4_w))
108   MCFG_ISA_OUT_IRQ12_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir5_w))
109   MCFG_ISA_OUT_IRQ14_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
110   MCFG_ISA_OUT_IRQ15_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
111   MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq0_w))
112   MCFG_ISA_OUT_DRQ1_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq1_w))
113   MCFG_ISA_OUT_DRQ2_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq2_w))
114   MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
115   MCFG_ISA_OUT_DRQ5_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq1_w))
116   MCFG_ISA_OUT_DRQ6_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq2_w))
117   MCFG_ISA_OUT_DRQ7_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq3_w))
118
119   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
120   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir0_w))
121   MCFG_MC146818_CENTURY_INDEX(0x32)
122
123   /* sound hardware */
124   MCFG_SPEAKER_STANDARD_MONO("mono")
125   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
126   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
127
128   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
129   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET))
130   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(INPUTLINE(":maincpu", INPUT_LINE_A20))
131   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir1_w))
132   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
133   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
134   MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
135   MCFG_PC_KBDC_OUT_CLOCK_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_clock_w))
136   MCFG_PC_KBDC_OUT_DATA_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_data_w))
137MACHINE_CONFIG_END
138
139machine_config_constructor at_mb_device::device_mconfig_additions() const
140{
141   return MACHINE_CONFIG_NAME(at_mb);
142}
143
144DEVICE_ADDRESS_MAP_START( map, 16, at_mb_device )
145   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffff)
146   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffff)
147   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffff)
148   AM_RANGE(0x0060, 0x0061) AM_READWRITE8(portb_r, portb_w, 0xff00)
149   AM_RANGE(0x0060, 0x0061) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, data_r, data_w, 0x00ff)
150   AM_RANGE(0x0064, 0x0065) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0x00ff)
151   AM_RANGE(0x0070, 0x007f) AM_DEVREAD8("rtc", mc146818_device, read, 0xffff) AM_WRITE8(write_rtc , 0xffff)
152   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(page8_r, page8_w, 0xffff)
153   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffff)
154   AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE8("dma8237_2", am9517a_device, read, write, 0x00ff)
155ADDRESS_MAP_END
156
13157/*************************************************************
14158 *
15159 * pic8259 configuration
16160 *
17161 *************************************************************/
18READ8_MEMBER( at_state::get_slave_ack )
162READ8_MEMBER( at_mb_device::get_slave_ack )
19163{
20164   if (offset==2) // IRQ = 2
21165      return m_pic8259_slave->acknowledge();
r253720r253721
29173 *
30174 *************************************************************************/
31175
32void at_state::at_speaker_set_spkrdata(UINT8 data)
176void at_mb_device::speaker_set_spkrdata(UINT8 data)
33177{
34178   m_at_spkrdata = data ? 1 : 0;
35179   m_speaker->level_w(m_at_spkrdata & m_pit_out2);
r253720r253721
43187 *
44188 *************************************************************/
45189
46WRITE_LINE_MEMBER( at_state::at_pit8254_out0_changed )
190WRITE_LINE_MEMBER( at_mb_device::pit8254_out2_changed )
47191{
48   m_pic8259_master->ir0_w(state);
49}
50
51
52WRITE_LINE_MEMBER( at_state::at_pit8254_out2_changed )
53{
54192   m_pit_out2 = state ? 1 : 0;
55193   m_speaker->level_w(m_at_spkrdata & m_pit_out2);
56194}
r253720r253721
62200 *
63201 *************************************************************************/
64202
65READ8_MEMBER( at_state::at_page8_r )
203READ8_MEMBER( at_mb_device::page8_r )
66204{
67205   UINT8 data = m_at_pages[offset % 0x10];
68206
r253720r253721
85223}
86224
87225
88WRITE8_MEMBER( at_state::at_page8_w )
226WRITE8_MEMBER( at_mb_device::page8_w )
89227{
90228   m_at_pages[offset % 0x10] = data;
91229
r253720r253721
113251}
114252
115253
116WRITE_LINE_MEMBER( at_state::pc_dma_hrq_changed )
254WRITE_LINE_MEMBER( at_mb_device::dma_hrq_changed )
117255{
118256   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
119257
r253720r253721
121259   m_dma8237_2->hack_w(state);
122260}
123261
124READ8_MEMBER(at_state::pc_dma_read_byte)
262READ8_MEMBER(at_mb_device::dma_read_byte)
125263{
126264   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
127265   if(m_dma_channel == -1)
r253720r253721
134272}
135273
136274
137WRITE8_MEMBER(at_state::pc_dma_write_byte)
275WRITE8_MEMBER(at_mb_device::dma_write_byte)
138276{
139277   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
140278   if(m_dma_channel == -1)
r253720r253721
145283}
146284
147285
148READ8_MEMBER(at_state::pc_dma_read_word)
286READ8_MEMBER(at_mb_device::dma_read_word)
149287{
150288   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
151289   if(m_dma_channel == -1)
r253720r253721
160298}
161299
162300
163WRITE8_MEMBER(at_state::pc_dma_write_word)
301WRITE8_MEMBER(at_mb_device::dma_write_word)
164302{
165303   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
166304   if(m_dma_channel == -1)
r253720r253721
170308   prog_space.write_word(page_offset + ( offset << 1 ), m_dma_high_byte | data);
171309}
172310
173READ8_MEMBER( at_state::pc_dma8237_0_dack_r ) { return m_isabus->dack_r(0); }
174READ8_MEMBER( at_state::pc_dma8237_1_dack_r ) { return m_isabus->dack_r(1); }
175READ8_MEMBER( at_state::pc_dma8237_2_dack_r ) { return m_isabus->dack_r(2); }
176READ8_MEMBER( at_state::pc_dma8237_3_dack_r ) { return m_isabus->dack_r(3); }
177READ8_MEMBER( at_state::pc_dma8237_5_dack_r ) { UINT16 ret = m_isabus->dack16_r(5); m_dma_high_byte = ret & 0xff00; return ret; }
178READ8_MEMBER( at_state::pc_dma8237_6_dack_r ) { UINT16 ret = m_isabus->dack16_r(6); m_dma_high_byte = ret & 0xff00; return ret; }
179READ8_MEMBER( at_state::pc_dma8237_7_dack_r ) { UINT16 ret = m_isabus->dack16_r(7); m_dma_high_byte = ret & 0xff00; return ret; }
311READ8_MEMBER( at_mb_device::dma8237_0_dack_r ) { return m_isabus->dack_r(0); }
312READ8_MEMBER( at_mb_device::dma8237_1_dack_r ) { return m_isabus->dack_r(1); }
313READ8_MEMBER( at_mb_device::dma8237_2_dack_r ) { return m_isabus->dack_r(2); }
314READ8_MEMBER( at_mb_device::dma8237_3_dack_r ) { return m_isabus->dack_r(3); }
315READ8_MEMBER( at_mb_device::dma8237_5_dack_r ) { UINT16 ret = m_isabus->dack16_r(5); m_dma_high_byte = ret & 0xff00; return ret; }
316READ8_MEMBER( at_mb_device::dma8237_6_dack_r ) { UINT16 ret = m_isabus->dack16_r(6); m_dma_high_byte = ret & 0xff00; return ret; }
317READ8_MEMBER( at_mb_device::dma8237_7_dack_r ) { UINT16 ret = m_isabus->dack16_r(7); m_dma_high_byte = ret & 0xff00; return ret; }
180318
181319
182WRITE8_MEMBER( at_state::pc_dma8237_0_dack_w ){ m_isabus->dack_w(0, data); }
183WRITE8_MEMBER( at_state::pc_dma8237_1_dack_w ){ m_isabus->dack_w(1, data); }
184WRITE8_MEMBER( at_state::pc_dma8237_2_dack_w ){ m_isabus->dack_w(2, data); }
185WRITE8_MEMBER( at_state::pc_dma8237_3_dack_w ){ m_isabus->dack_w(3, data); }
186WRITE8_MEMBER( at_state::pc_dma8237_5_dack_w ){ m_isabus->dack16_w(5, m_dma_high_byte | data); }
187WRITE8_MEMBER( at_state::pc_dma8237_6_dack_w ){ m_isabus->dack16_w(6, m_dma_high_byte | data); }
188WRITE8_MEMBER( at_state::pc_dma8237_7_dack_w ){ m_isabus->dack16_w(7, m_dma_high_byte | data); }
320WRITE8_MEMBER( at_mb_device::dma8237_0_dack_w ){ m_isabus->dack_w(0, data); }
321WRITE8_MEMBER( at_mb_device::dma8237_1_dack_w ){ m_isabus->dack_w(1, data); }
322WRITE8_MEMBER( at_mb_device::dma8237_2_dack_w ){ m_isabus->dack_w(2, data); }
323WRITE8_MEMBER( at_mb_device::dma8237_3_dack_w ){ m_isabus->dack_w(3, data); }
324WRITE8_MEMBER( at_mb_device::dma8237_5_dack_w ){ m_isabus->dack16_w(5, m_dma_high_byte | data); }
325WRITE8_MEMBER( at_mb_device::dma8237_6_dack_w ){ m_isabus->dack16_w(6, m_dma_high_byte | data); }
326WRITE8_MEMBER( at_mb_device::dma8237_7_dack_w ){ m_isabus->dack16_w(7, m_dma_high_byte | data); }
189327
190WRITE_LINE_MEMBER( at_state::at_dma8237_out_eop )
328WRITE_LINE_MEMBER( at_mb_device::dma8237_out_eop )
191329{
192330   m_cur_eop = state == ASSERT_LINE;
193331   if(m_dma_channel != -1)
194332      m_isabus->eop_w(m_dma_channel, m_cur_eop ? ASSERT_LINE : CLEAR_LINE );
195333}
196334
197void at_state::pc_set_dma_channel(int channel, int state)
335void at_mb_device::set_dma_channel(int channel, int state)
198336{
199337   if(!state) {
200338      m_dma_channel = channel;
r253720r253721
208346   }
209347}
210348
211WRITE_LINE_MEMBER( at_state::pc_dack0_w ) { pc_set_dma_channel(0, state); }
212WRITE_LINE_MEMBER( at_state::pc_dack1_w ) { pc_set_dma_channel(1, state); }
213WRITE_LINE_MEMBER( at_state::pc_dack2_w ) { pc_set_dma_channel(2, state); }
214WRITE_LINE_MEMBER( at_state::pc_dack3_w ) { pc_set_dma_channel(3, state); }
215WRITE_LINE_MEMBER( at_state::pc_dack4_w ) { m_dma8237_1->hack_w(state ? 0 : 1); } // it's inverted
216WRITE_LINE_MEMBER( at_state::pc_dack5_w ) { pc_set_dma_channel(5, state); }
217WRITE_LINE_MEMBER( at_state::pc_dack6_w ) { pc_set_dma_channel(6, state); }
218WRITE_LINE_MEMBER( at_state::pc_dack7_w ) { pc_set_dma_channel(7, state); }
349WRITE8_MEMBER( at_mb_device::write_rtc )
350{
351   if (offset==0) {
352      m_nmi_enabled = BIT(data,7);
353      m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
354      m_mc146818->write(space,0,data);
355   }
356   else {
357      m_mc146818->write(space,offset,data);
358   }
359}
219360
220READ8_MEMBER( at_state::at_portb_r )
361UINT32 at_mb_device::a20_286(bool state)
221362{
222   UINT8 data = m_at_speaker;
223   data &= ~0xd0; /* AT BIOS don't likes this being set */
224
225   /* 0x10 is the dram refresh line bit, 15.085us. */
226   data |= (machine().time().as_ticks(110000) & 1) ? 0x10 : 0;
227
228   if (m_pit_out2)
229      data |= 0x20;
230   else
231      data &= ~0x20; /* ps2m30 wants this */
232
233   return data;
363   return (state ? 0xffffff : 0xefffff);
234364}
235365
236WRITE8_MEMBER( at_state::at_portb_w )
366WRITE_LINE_MEMBER( at_mb_device::shutdown )
237367{
238   m_at_speaker = data;
239   m_pit8254->write_gate2(BIT(data, 0));
240   at_speaker_set_spkrdata( BIT(data, 1));
241   m_channel_check = BIT(data, 3);
242   m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
368   if(state)
369      m_maincpu->reset();
243370}
371WRITE_LINE_MEMBER( at_mb_device::dack0_w ) { set_dma_channel(0, state); }
372WRITE_LINE_MEMBER( at_mb_device::dack1_w ) { set_dma_channel(1, state); }
373WRITE_LINE_MEMBER( at_mb_device::dack2_w ) { set_dma_channel(2, state); }
374WRITE_LINE_MEMBER( at_mb_device::dack3_w ) { set_dma_channel(3, state); }
375WRITE_LINE_MEMBER( at_mb_device::dack4_w ) { m_dma8237_1->hack_w(state ? 0 : 1); } // it's inverted
376WRITE_LINE_MEMBER( at_mb_device::dack5_w ) { set_dma_channel(5, state); }
377WRITE_LINE_MEMBER( at_mb_device::dack6_w ) { set_dma_channel(6, state); }
378WRITE_LINE_MEMBER( at_mb_device::dack7_w ) { set_dma_channel(7, state); }
244379
245READ8_MEMBER( at_state::ps2_portb_r )
380READ8_MEMBER( at_mb_device::portb_r )
246381{
247382   UINT8 data = m_at_speaker;
248383   data &= ~0xd0; /* AT BIOS don't likes this being set */
249384
250385   /* 0x10 is the dram refresh line bit, 15.085us. */
251   data |= (machine().time().as_ticks(66291) & 1) ? 0x10 : 0;
386   data |= (machine().time().as_ticks(110000) & 1) ? 0x10 : 0;
252387
253388   if (m_pit_out2)
254389      data |= 0x20;
r253720r253721
258393   return data;
259394}
260395
261
262/**********************************************************
263 *
264 * Init functions
265 *
266 **********************************************************/
267
268void at_state::init_at_common(int xmsbase)
396WRITE8_MEMBER( at_mb_device::portb_w )
269397{
270   address_space& space = m_maincpu->space(AS_PROGRAM);
271
272   /* MESS managed RAM */
273   membank("bank10")->set_base(m_ram->pointer());
274
275   if (m_ram->size() > xmsbase)
276   {
277      offs_t ram_limit = 0x100000 + m_ram->size() - xmsbase;
278      space.install_read_bank(0x100000,  ram_limit - 1, "bank1");
279      space.install_write_bank(0x100000,  ram_limit - 1, "bank1");
280      membank("bank1")->set_base(m_ram->pointer() + xmsbase);
281   }
398   m_at_speaker = data;
399   m_pit8254->write_gate2(BIT(data, 0));
400   speaker_set_spkrdata( BIT(data, 1));
401   m_channel_check = BIT(data, 3);
402   m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
282403}
283404
284DRIVER_INIT_MEMBER(at_state,atcga)
285{
286   init_at_common(0xa0000);
287}
288
289DRIVER_INIT_MEMBER(at_state,atvga)
290{
291   init_at_common(0xa0000);
292}
293
294DRIVER_INIT_MEMBER(at_state,atpci)
295{
296   init_at_common(0x100000);
297}
298
299DRIVER_INIT_MEMBER(at586_state,at586)
300{
301}
302
303MACHINE_START_MEMBER(at_state,at)
304{
305}
306
307MACHINE_RESET_MEMBER(at_state,at)
308{
309   m_at_spkrdata = 0;
310   m_pit_out2 = 1;
311   m_dma_channel = -1;
312   m_cur_eop = false;
313}
trunk/src/mame/machine/at.h
r0r253721
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol, Miodrag Milanovic, Carl
3#ifndef _AT_H_
4#define _AT_H_
5
6#include "emu.h"
7#include "machine/mc146818.h"
8#include "machine/pic8259.h"
9#include "machine/pit8253.h"
10#include "machine/am9517a.h"
11#include "bus/pc_kbd/pc_kbdc.h"
12#include "bus/isa/isa.h"
13#include "sound/speaker.h"
14#include "softlist.h"
15
16class at_mb_device : public device_t
17{
18public:
19   at_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
20
21   DECLARE_ADDRESS_MAP(map, 16);
22
23   DECLARE_READ8_MEMBER(page8_r);
24   DECLARE_WRITE8_MEMBER(page8_w);
25   DECLARE_READ8_MEMBER(portb_r);
26   DECLARE_WRITE8_MEMBER(portb_w);
27   DECLARE_READ8_MEMBER(get_slave_ack);
28   DECLARE_WRITE_LINE_MEMBER(pit8254_out2_changed);
29   DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed);
30   DECLARE_READ8_MEMBER(dma8237_0_dack_r);
31   DECLARE_READ8_MEMBER(dma8237_1_dack_r);
32   DECLARE_READ8_MEMBER(dma8237_2_dack_r);
33   DECLARE_READ8_MEMBER(dma8237_3_dack_r);
34   DECLARE_READ8_MEMBER(dma8237_5_dack_r);
35   DECLARE_READ8_MEMBER(dma8237_6_dack_r);
36   DECLARE_READ8_MEMBER(dma8237_7_dack_r);
37   DECLARE_WRITE8_MEMBER(dma8237_0_dack_w);
38   DECLARE_WRITE8_MEMBER(dma8237_1_dack_w);
39   DECLARE_WRITE8_MEMBER(dma8237_2_dack_w);
40   DECLARE_WRITE8_MEMBER(dma8237_3_dack_w);
41   DECLARE_WRITE8_MEMBER(dma8237_5_dack_w);
42   DECLARE_WRITE8_MEMBER(dma8237_6_dack_w);
43   DECLARE_WRITE8_MEMBER(dma8237_7_dack_w);
44   DECLARE_WRITE_LINE_MEMBER(dma8237_out_eop);
45   DECLARE_WRITE_LINE_MEMBER(dack0_w);
46   DECLARE_WRITE_LINE_MEMBER(dack1_w);
47   DECLARE_WRITE_LINE_MEMBER(dack2_w);
48   DECLARE_WRITE_LINE_MEMBER(dack3_w);
49   DECLARE_WRITE_LINE_MEMBER(dack4_w);
50   DECLARE_WRITE_LINE_MEMBER(dack5_w);
51   DECLARE_WRITE_LINE_MEMBER(dack6_w);
52   DECLARE_WRITE_LINE_MEMBER(dack7_w);
53   DECLARE_WRITE8_MEMBER(write_rtc);
54
55   DECLARE_WRITE_LINE_MEMBER(shutdown);
56
57   DECLARE_READ8_MEMBER(dma_read_byte);
58   DECLARE_WRITE8_MEMBER(dma_write_byte);
59   DECLARE_READ8_MEMBER(dma_read_word);
60   DECLARE_WRITE8_MEMBER(dma_write_word);
61
62   UINT32 a20_286(bool state);
63protected:
64   void device_start() override;
65   void device_reset() override;
66   virtual machine_config_constructor device_mconfig_additions() const override;
67private:
68   void set_dma_channel(int channel, int state);
69   void speaker_set_spkrdata(UINT8 data);
70
71   required_device<cpu_device> m_maincpu;
72   required_device<isa16_device> m_isabus;
73   required_device<pic8259_device> m_pic8259_slave;
74   required_device<am9517a_device> m_dma8237_1;
75   required_device<am9517a_device> m_dma8237_2;
76   required_device<pit8254_device> m_pit8254;
77   required_device<speaker_sound_device> m_speaker;
78   required_device<mc146818_device> m_mc146818;
79   UINT8 m_at_spkrdata;
80   UINT8 m_pit_out2;
81   int m_dma_channel;
82   bool m_cur_eop;
83   UINT8 m_dma_offset[2][4];
84   UINT8 m_at_pages[0x10];
85   UINT16 m_dma_high_byte;
86   UINT8 m_at_speaker;
87   UINT8 m_channel_check;
88   UINT8 m_nmi_enabled;
89};
90
91extern const device_type AT_MB;
92
93MACHINE_CONFIG_EXTERN(at_softlists);
94
95#endif


Previous 199869 Revisions Next


© 1997-2024 The MAME Team