diff --git a/src/emu/video/pc_vga.c b/src/emu/video/pc_vga.c index 13c358b2a88..7400fbfed88 100644 --- a/src/emu/video/pc_vga.c +++ b/src/emu/video/pc_vga.c @@ -2058,41 +2058,6 @@ void pc_vga_cirrus_init(running_machine &machine, read8_delegate read_dipswitch) } -void pc_vga_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset) -{ - int buswidth; - UINT64 mask = 0; - - buswidth = machine.firstcpu->space_config(AS_PROGRAM)->m_databus_width; - switch(buswidth) - { - case 8: - mask = 0; - break; - - case 16: - mask = 0xffff; - break; - - case 32: - mask = 0xffffffff; - break; - - case 64: - mask = -1; - break; - - default: - fatalerror("VGA: Bus width %d not supported\n", buswidth); - break; - } - io_space.install_legacy_readwrite_handler(port_offset + 0x3b0, port_offset + 0x3bf, FUNC(vga_port_03b0_r), FUNC(vga_port_03b0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3c0, port_offset + 0x3cf, FUNC(vga_port_03c0_r), FUNC(vga_port_03c0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3d0, port_offset + 0x3df, FUNC(vga_port_03d0_r), FUNC(vga_port_03d0_w), mask); - - mem_space.install_legacy_readwrite_handler(mem_offset + 0x00000, mem_offset + 0x1ffff, FUNC(vga_mem_r), FUNC(vga_mem_w), mask); -} - VIDEO_START( vga ) { int i; @@ -2106,18 +2071,17 @@ static VIDEO_RESET( vga ) pc_vga_reset(machine); } - - -void *pc_vga_memory(void) +READ8_HANDLER(vga_mem_linear_r) { - return vga.memory; + return vga.memory[offset]; } -size_t pc_vga_memory_size(void) +WRITE8_HANDLER(vga_mem_linear_w) { - return vga.svga_intf.vram_size; + vga.memory[offset] = data; } + static struct eeprom_interface ati_eeprom_interface = { 6, /* address bits */ @@ -2503,45 +2467,6 @@ WRITE8_HANDLER( tseng_mem_w ) Trident implementation ******************************************/ - -void pc_svga_trident_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset) -{ - int buswidth; - UINT64 mask = 0; - - buswidth = machine.firstcpu->space_config(AS_PROGRAM)->m_databus_width; - switch(buswidth) - { - case 8: - mask = 0; - break; - - case 16: - mask = 0xffff; - break; - - case 32: - mask = 0xffffffff; - break; - - case 64: - mask = -1; - break; - - default: - fatalerror("VGA: Bus width %d not supported\n", buswidth); - break; - } - io_space.install_legacy_readwrite_handler(port_offset + 0x3b0, port_offset + 0x3bf, FUNC(vga_port_03b0_r), FUNC(vga_port_03b0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3c0, port_offset + 0x3cf, FUNC(trident_03c0_r), FUNC(trident_03c0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3d0, port_offset + 0x3df, FUNC(trident_03d0_r), FUNC(trident_03d0_w), mask); - - mem_space.install_legacy_readwrite_handler(mem_offset + 0x00000, mem_offset + 0x1ffff, FUNC(trident_mem_r), FUNC(trident_mem_w), mask); - - // D3h = TGUI9660XGi - svga.id = 0xd3; // TODO: hardcoded for California Chase -} - static UINT8 trident_seq_reg_read(running_machine &machine, UINT8 index) { UINT8 res; @@ -4863,40 +4788,6 @@ WRITE8_HANDLER(vga_port_gamtor_03d0_w) } } -void pc_vga_gamtor_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset) -{ - int buswidth; - UINT64 mask = 0; - - buswidth = machine.firstcpu->space_config(AS_PROGRAM)->m_databus_width; - switch(buswidth) - { - case 8: - mask = 0; - break; - - case 16: - mask = 0xffff; - break; - - case 32: - mask = 0xffffffff; - break; - - case 64: - mask = -1; - break; - - default: - fatalerror("VGA: Bus width %d not supported\n", buswidth); - break; - } - io_space.install_legacy_readwrite_handler(port_offset + 0x3b0, port_offset + 0x3bf, FUNC(vga_port_gamtor_03b0_r), FUNC(vga_port_gamtor_03b0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3c0, port_offset + 0x3cf, FUNC(vga_port_gamtor_03c0_r), FUNC(vga_port_gamtor_03c0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3d0, port_offset + 0x3df, FUNC(vga_port_gamtor_03d0_r), FUNC(vga_port_gamtor_03d0_w), mask); - - mem_space.install_legacy_readwrite_handler(mem_offset + 0x00000, mem_offset + 0x1ffff, FUNC(vga_gamtor_mem_r), FUNC(vga_gamtor_mem_w), mask); -} static void ati_define_video_mode(running_machine &machine) { @@ -5464,38 +5355,3 @@ WRITE8_HANDLER(cirrus_03c0_w) } cirrus_define_video_mode(space.machine()); } - -void pc_svga_cirrus_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset) -{ - int buswidth; - UINT64 mask = 0; - - buswidth = machine.firstcpu->space_config(AS_PROGRAM)->m_databus_width; - switch(buswidth) - { - case 8: - mask = 0; - break; - - case 16: - mask = 0xffff; - break; - - case 32: - mask = 0xffffffff; - break; - - case 64: - mask = -1; - break; - - default: - fatalerror("VGA: Bus width %d not supported\n", buswidth); - break; - } - io_space.install_legacy_readwrite_handler(port_offset + 0x3b0, port_offset + 0x3bf, FUNC(vga_port_03b0_r), FUNC(vga_port_03b0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3c0, port_offset + 0x3cf, FUNC(cirrus_03c0_r), FUNC(cirrus_03c0_w), mask); - io_space.install_legacy_readwrite_handler(port_offset + 0x3d0, port_offset + 0x3df, FUNC(vga_port_03d0_r), FUNC(vga_port_03d0_w), mask); - - mem_space.install_legacy_readwrite_handler(mem_offset + 0x00000, mem_offset + 0x1ffff, FUNC(vga_mem_r), FUNC(vga_mem_w), mask); -} diff --git a/src/emu/video/pc_vga.h b/src/emu/video/pc_vga.h index 9bed33fe429..1da412a0468 100644 --- a/src/emu/video/pc_vga.h +++ b/src/emu/video/pc_vga.h @@ -17,13 +17,7 @@ MACHINE_CONFIG_EXTERN( pcvideo_ati_isa ); VIDEO_START( vga ); void pc_vga_init(running_machine &machine, read8_delegate read_dipswitch); void pc_vga_cirrus_init(running_machine &machine, read8_delegate read_dipswitch); -void pc_vga_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset); -void pc_vga_gamtor_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset); -void pc_svga_trident_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset); -void pc_svga_cirrus_io_init(running_machine &machine, address_space &mem_space, offs_t mem_offset, address_space &io_space, offs_t port_offset); void pc_vga_reset(running_machine &machine); -void *pc_vga_memory(void); -size_t pc_vga_memory_size(void); void pc_video_start(running_machine &machine); void s3_video_start(running_machine &machine); @@ -31,10 +25,12 @@ DECLARE_READ8_HANDLER(vga_port_03b0_r); DECLARE_READ8_HANDLER(vga_port_03c0_r); DECLARE_READ8_HANDLER(vga_port_03d0_r); DECLARE_READ8_HANDLER(vga_mem_r); +DECLARE_READ8_HANDLER(vga_mem_linear_r); DECLARE_WRITE8_HANDLER(vga_port_03b0_w); DECLARE_WRITE8_HANDLER(vga_port_03c0_w); DECLARE_WRITE8_HANDLER(vga_port_03d0_w); DECLARE_WRITE8_HANDLER(vga_mem_w); +DECLARE_WRITE8_HANDLER(vga_mem_linear_w); /* per-device implementations */ DECLARE_READ8_HANDLER(tseng_et4k_03b0_r); @@ -129,7 +125,17 @@ DECLARE_WRITE16_HANDLER(mach8_ec3_w); DECLARE_READ8_HANDLER(ati_mem_r); DECLARE_WRITE8_HANDLER(ati_mem_w); +DECLARE_READ8_HANDLER(cirrus_03c0_r); +DECLARE_WRITE8_HANDLER(cirrus_03c0_w); +DECLARE_READ8_HANDLER(vga_gamtor_mem_r); +DECLARE_WRITE8_HANDLER(vga_gamtor_mem_w); +DECLARE_READ8_HANDLER(vga_port_gamtor_03b0_r); +DECLARE_WRITE8_HANDLER(vga_port_gamtor_03b0_w); +DECLARE_READ8_HANDLER(vga_port_gamtor_03c0_r); +DECLARE_WRITE8_HANDLER(vga_port_gamtor_03c0_w); +DECLARE_READ8_HANDLER(vga_port_gamtor_03d0_r); +DECLARE_WRITE8_HANDLER(vga_port_gamtor_03d0_w); /* pega notes (paradise) build in amstrad pc1640 diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c index e1b29077ac7..b60ba918c42 100644 --- a/src/mame/drivers/calchase.c +++ b/src/mame/drivers/calchase.c @@ -543,7 +543,7 @@ WRITE16_MEMBER(calchase_state::calchase_dac_r_w) static ADDRESS_MAP_START( calchase_map, AS_PROGRAM, 32, calchase_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM // VGA VRAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(trident_mem_r, trident_mem_w, 0xffffffff) // VGA VRAM AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) AM_RANGE(0x000c8000, 0x000cffff) AM_NOP //AM_RANGE(0x000d0000, 0x000d0003) AM_RAM // XYLINX - Sincronus serial communication @@ -600,6 +600,9 @@ static ADDRESS_MAP_START( calchase_io, AS_IO, 32, calchase_state ) AM_RANGE(0x02f8, 0x02ff) AM_NOP //To debug AM_RANGE(0x0320, 0x038f) AM_NOP //To debug AM_RANGE(0x03a0, 0x03a7) AM_NOP //To debug + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(trident_03c0_r, trident_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(trident_03d0_r, trident_03d0_w, 0xffffffff) AM_RANGE(0x03e0, 0x03ef) AM_NOP //To debug AM_RANGE(0x0378, 0x037f) AM_NOP //To debug // AM_RANGE(0x0300, 0x03af) AM_NOP @@ -978,7 +981,6 @@ DRIVER_INIT_MEMBER(calchase_state,calchase) m_bios_ram = auto_alloc_array(machine(), UINT32, 0x20000/4); pc_vga_init(machine(), read8_delegate(FUNC(calchase_state::vga_setting),this)); - pc_svga_trident_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, calchase_set_keyb_int); intel82439tx_init(machine()); diff --git a/src/mame/drivers/gammagic.c b/src/mame/drivers/gammagic.c index 80861a89978..1a80961ade0 100644 --- a/src/mame/drivers/gammagic.c +++ b/src/mame/drivers/gammagic.c @@ -545,7 +545,7 @@ static WRITE32_HANDLER( atapi_w ) // Memory is mostly handled by the chipset static ADDRESS_MAP_START( gammagic_map, AS_PROGRAM, 32, gammagic_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_NOP + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x00100000, 0x07ffffff) AM_RAM AM_RANGE(0x08000000, 0xfffdffff) AM_NOP AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("user", 0x20000)/* System BIOS */ @@ -564,6 +564,9 @@ static ADDRESS_MAP_START( gammagic_io, AS_IO, 32, gammagic_state) AM_RANGE(0x00f0, 0x01ef) AM_NOP //AM_RANGE(0x01f0, 0x01f7) AM_READWRITE_LEGACY(atapi_r, atapi_w) AM_RANGE(0x01f8, 0x03ef) AM_NOP + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f0, 0x0cf7) AM_NOP AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write) AM_RANGE(0x0400, 0xffff) AM_NOP @@ -796,7 +799,6 @@ MACHINE_CONFIG_END DRIVER_INIT_MEMBER(gammagic_state,gammagic) { pc_vga_init(machine(), read8_delegate(FUNC(gammagic_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, gammagic_set_keyb_int); kbdc8042_init(machine(), &at8042); atapi_init(machine()); diff --git a/src/mame/drivers/gamtor.c b/src/mame/drivers/gamtor.c index ee66aac6e93..fef687fcf08 100644 --- a/src/mame/drivers/gamtor.c +++ b/src/mame/drivers/gamtor.c @@ -53,8 +53,12 @@ static ADDRESS_MAP_START( gaminator_map, AS_PROGRAM, 32, gaminator_state ) AM_RANGE(0x20000000, 0x2003ffff) AM_RAM /* standard VGA */ -// AM_RANGE(0x40000000, 0x40000fff) AM_RAM // regs - AM_RANGE(0x44000000, 0x4401ffff) AM_RAM // VRAM + //AM_RANGE(0x40000000, 0x40000fff) AM_RAM // regs + AM_RANGE(0x400003b0, 0x400003bf) AM_READWRITE8_LEGACY(vga_port_gamtor_03b0_r, vga_port_gamtor_03b0_w, 0xffffffff) + AM_RANGE(0x400003c0, 0x400003cf) AM_READWRITE8_LEGACY(vga_port_gamtor_03c0_r, vga_port_gamtor_03c0_w, 0xffffffff) + AM_RANGE(0x400003d0, 0x400003df) AM_READWRITE8_LEGACY(vga_port_gamtor_03d0_r, vga_port_gamtor_03d0_w, 0xffffffff) + + AM_RANGE(0x44000000, 0x4401ffff) AM_READWRITE8_LEGACY(vga_gamtor_mem_r,vga_gamtor_mem_w, 0xffffffff) // VRAM // AM_RANGE(0x44000000, 0x44007fff) AM_RAM AM_SHARE("tmapram1") // puts strings here, looks almost like a tilemap, but where are the tiles? // AM_RANGE(0x440a0000, 0x440a1fff) AM_RAM AM_SHARE("tmapram2") // beetlem (like above, mirror?) @@ -1255,7 +1259,6 @@ READ8_MEMBER(gaminator_state::vga_setting ) { return 0xff; } // hard-code to col DRIVER_INIT_MEMBER(gaminator_state,gaminator) { pc_vga_init(machine(), read8_delegate(FUNC(gaminator_state::vga_setting),this)); - pc_vga_gamtor_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0x44000000, machine().device("maincpu")->memory().space(AS_PROGRAM), 0x40000000); } diff --git a/src/mame/drivers/magtouch.c b/src/mame/drivers/magtouch.c index af5047f324e..b9ff99128a6 100644 --- a/src/mame/drivers/magtouch.c +++ b/src/mame/drivers/magtouch.c @@ -169,7 +169,7 @@ WRITE8_MEMBER(magtouch_state::magtouch_io_w) static ADDRESS_MAP_START( magtouch_map, AS_PROGRAM, 32, magtouch_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_RANGE(0x000d8000, 0x000dffff) AM_ROMBANK("rombank") AM_RANGE(0x000f0000, 0x000fffff) AM_RAM AM_REGION("bios", 0 ) @@ -180,6 +180,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( magtouch_io, AS_IO, 32, magtouch_state ) AM_IMPORT_FROM(pcat32_io_common) AM_RANGE(0x02e0, 0x02e7) AM_READWRITE8(magtouch_io_r, magtouch_io_w, 0xffffffff) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ns16450_0", ns16450_device, ins8250_r, ins8250_w, 0xffffffff) ADDRESS_MAP_END @@ -250,7 +253,6 @@ ROM_END DRIVER_INIT_MEMBER(magtouch_state,magtouch) { pc_vga_init(machine(), read8_delegate(FUNC(magtouch_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } GAME( 1995, magtouch, 0, magtouch, magtouch, magtouch_state, magtouch, ROT0, "Micro Manufacturing", "Magical Touch", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c index cf1138c725f..2fb1daebbce 100644 --- a/src/mame/drivers/midqslvr.c +++ b/src/mame/drivers/midqslvr.c @@ -535,7 +535,7 @@ static I8237_INTERFACE( dma8237_2_config ) static ADDRESS_MAP_START(midqslvr_map, AS_PROGRAM, 32, midqslvr_state) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c3fff) AM_ROMBANK("video_bank1") AM_WRITE(isa_ram1_w) AM_RANGE(0x000c4000, 0x000c7fff) AM_ROMBANK("video_bank2") AM_WRITE(isa_ram2_w) AM_RANGE(0x000e0000, 0x000e3fff) AM_ROMBANK("bios_ext1") AM_WRITE(bios_ext1_ram_w) @@ -559,6 +559,9 @@ static ADDRESS_MAP_START(midqslvr_io, AS_IO, 32, midqslvr_state) AM_RANGE(0x00e8, 0x00ef) AM_NOP AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(ide_r, ide_w) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) @@ -673,7 +676,6 @@ void midqslvr_state::machine_start() kbdc8042_init(machine(), &at8042); pc_vga_init(machine(), read8_delegate(FUNC(midqslvr_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } void midqslvr_state::machine_reset() diff --git a/src/mame/drivers/pangofun.c b/src/mame/drivers/pangofun.c index 73408063ea9..427ad517b79 100644 --- a/src/mame/drivers/pangofun.c +++ b/src/mame/drivers/pangofun.c @@ -113,7 +113,7 @@ public: static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pangofun_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_REGION("bios", 0 ) AM_RANGE(0x00100000, 0x00ffffff) AM_NOP @@ -124,6 +124,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pcat_io, AS_IO, 32, pangofun_state ) AM_IMPORT_FROM(pcat32_io_common) AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) ADDRESS_MAP_END #define AT_KEYB_HELPER(bit, text, key1) \ @@ -245,7 +248,6 @@ ROM_END DRIVER_INIT_MEMBER(pangofun_state,pangofun) { pc_vga_init(machine(), read8_delegate(FUNC(pangofun_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } GAME( 1995, pangofun, 0, pangofun, pangofun, pangofun_state, pangofun, ROT0, "InfoCube", "Pango Fun (Italy)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/mame/drivers/pcat_dyn.c b/src/mame/drivers/pcat_dyn.c index 2cc09097d21..4fe854e6316 100644 --- a/src/mame/drivers/pcat_dyn.c +++ b/src/mame/drivers/pcat_dyn.c @@ -53,7 +53,7 @@ public: /* TODO: understand the proper ROM loading.*/ static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pcat_dyn_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_RANGE(0x000c8000, 0x000cffff) AM_RAM // AM_RANGE(0x000d0000, 0x000d7fff) AM_RAM AM_REGION("disk_bios", 0) @@ -69,6 +69,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pcat_io, AS_IO, 32, pcat_dyn_state ) AM_IMPORT_FROM(pcat32_io_common) AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) ADDRESS_MAP_END #define AT_KEYB_HELPER(bit, text, key1) \ @@ -198,7 +201,6 @@ ROM_END DRIVER_INIT_MEMBER(pcat_dyn_state,pcat_dyn) { pc_vga_init(machine(), read8_delegate(FUNC(pcat_dyn_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } GAME( 1995, toursol, 0, pcat_dyn, pcat_dyn, pcat_dyn_state, pcat_dyn, ROT0, "Dynamo", "Tournament Solitaire (V1.06, 08/03/95)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c index 3ee93f2cd37..caa77a8761f 100644 --- a/src/mame/drivers/pcat_nit.c +++ b/src/mame/drivers/pcat_nit.c @@ -183,7 +183,7 @@ WRITE8_MEMBER(pcat_nit_state::pcat_nit_rombank_w) static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pcat_nit_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_WRITENOP AM_RANGE(0x000d0000, 0x000d3fff) AM_RAM AM_REGION("disk_bios", 0) AM_RANGE(0x000d7000, 0x000d7003) AM_WRITE8(pcat_nit_rombank_w, 0xff) @@ -211,6 +211,9 @@ static ADDRESS_MAP_START( pcat_nit_io, AS_IO, 32, pcat_nit_state ) AM_IMPORT_FROM(pcat32_io_common) AM_RANGE(0x0278, 0x027f) AM_READ8(pcat_nit_io_r, 0xffffffff) AM_WRITENOP AM_RANGE(0x0280, 0x0283) AM_READNOP + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ns16450_0", ns16450_device, ins8250_r, ins8250_w, 0xffffffff) ADDRESS_MAP_END @@ -428,7 +431,6 @@ DRIVER_INIT_MEMBER(pcat_nit_state,pcat_nit) machine().device("nvram")->set_base(m_banked_nvram, 0x2000); pc_vga_init(machine(), read8_delegate(FUNC(pcat_nit_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } GAME( 1993, bonanza, 0, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Bonanza (Revision 3)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c index cffef7c50b2..7a6e5f85e58 100644 --- a/src/mame/drivers/photoply.c +++ b/src/mame/drivers/photoply.c @@ -240,7 +240,7 @@ static const struct pit8253_config at_pit8254_config = static ADDRESS_MAP_START( photoply_map, AS_PROGRAM, 32, photoply_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM // VGA RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) // VGA RAM AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) //??? AM_RANGE(0x000c8000, 0x000cffff) AM_RAM AM_REGION("video_bios", 0) AM_RANGE(0x000d0000, 0x000dffff) AM_RAM AM_REGION("ex_bios", 0) @@ -262,7 +262,10 @@ static ADDRESS_MAP_START( photoply_io, AS_IO, 32, photoply_state ) AM_RANGE(0x00e8, 0x00eb) AM_NOP AM_RANGE(0x0278, 0x027f) AM_RAM //parallel port 2 AM_RANGE(0x0378, 0x037f) AM_RAM //parallel port - AM_RANGE(0x03bc, 0x03bf) AM_RAM //parallel port 3 + //AM_RANGE(0x03bc, 0x03bf) AM_RAM //parallel port 3 + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) // AM_RANGE(0x03f4, 0x03f7) AM_READ_LEGACY(kludge_r) // fdc ADDRESS_MAP_END @@ -379,7 +382,6 @@ ROM_END DRIVER_INIT_MEMBER(photoply_state,photoply) { pc_vga_init(machine(), read8_delegate(FUNC(photoply_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } GAME( 199?, photoply, 0, photoply, photoply, photoply_state, photoply, ROT0, "Funworld", "Photo Play 2000 (v2.01)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c index e13802704e6..1ed4ef16134 100644 --- a/src/mame/drivers/pntnpuzl.c +++ b/src/mame/drivers/pntnpuzl.c @@ -312,8 +312,10 @@ static ADDRESS_MAP_START( pntnpuzl_map, AS_PROGRAM, 16, pntnpuzl_state ) AM_RANGE(0x28001a, 0x28001b) AM_WRITENOP /* standard VGA */ - AM_RANGE(0x3a0000, 0x3bffff) AM_RAM // RAM -// AM_RANGE(0x3c0000, 0x3c0fff) AM_RAM // regs + AM_RANGE(0x3a0000, 0x3bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffff) + AM_RANGE(0x3c03b0, 0x3c03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffff) + AM_RANGE(0x3c03c0, 0x3c03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffff) + AM_RANGE(0x3c03d0, 0x3c03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffff) AM_RANGE(0x400000, 0x407fff) AM_RAM ADDRESS_MAP_END @@ -386,7 +388,6 @@ DRIVER_INIT_MEMBER(pntnpuzl_state,pip) // rom[0x2696/2] = 0x4e71; // rom[0x26a0/2] = 0x4e71; pc_vga_init(machine(), read8_delegate(FUNC(pntnpuzl_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0x3a0000, machine().device("maincpu")->memory().space(AS_PROGRAM), 0x3c0000); } diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c index cd0340b866d..c635f0b320c 100644 --- a/src/mame/drivers/queen.c +++ b/src/mame/drivers/queen.c @@ -518,7 +518,7 @@ static I8237_INTERFACE( dma8237_2_config ) static ADDRESS_MAP_START( queen_map, AS_PROGRAM, 32, queen_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c3fff) AM_ROMBANK("video_bank1") AM_WRITE(isa_ram1_w) AM_RANGE(0x000c4000, 0x000c7fff) AM_ROMBANK("video_bank2") AM_WRITE(isa_ram2_w) AM_RANGE(0x000e0000, 0x000e3fff) AM_ROMBANK("bios_ext1") AM_WRITE(bios_ext1_ram_w) @@ -542,6 +542,9 @@ static ADDRESS_MAP_START( queen_io, AS_IO, 32, queen_state ) AM_RANGE(0x00e8, 0x00ef) AM_NOP AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(ide_r, ide_w) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) @@ -656,7 +659,6 @@ void queen_state::machine_start() kbdc8042_init(machine(), &at8042); pc_vga_init(machine(), read8_delegate(FUNC(queen_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } void queen_state::machine_reset() diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c index 650c5622789..fb1ef715c25 100644 --- a/src/mame/drivers/savquest.c +++ b/src/mame/drivers/savquest.c @@ -397,7 +397,7 @@ static I8237_INTERFACE( dma8237_2_config ) static ADDRESS_MAP_START(savquest_map, AS_PROGRAM, 32, savquest_state) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_RANGE(0x000e0000, 0x000fffff) AM_ROMBANK("bank1") AM_RANGE(0x000e0000, 0x000fffff) AM_WRITE(bios_ram_w) @@ -418,6 +418,9 @@ static ADDRESS_MAP_START(savquest_io, AS_IO, 32, savquest_state) AM_RANGE(0x00e8, 0x00ef) AM_NOP AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(ide_r, ide_w) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) @@ -530,7 +533,6 @@ void savquest_state::machine_start() kbdc8042_init(machine(), &at8042); pc_vga_init(machine(), read8_delegate(FUNC(savquest_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } void savquest_state::machine_reset() diff --git a/src/mame/drivers/su2000.c b/src/mame/drivers/su2000.c index 905d97cd296..14df340fff3 100644 --- a/src/mame/drivers/su2000.c +++ b/src/mame/drivers/su2000.c @@ -93,6 +93,7 @@ public: static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, su2000_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("mem_bank") + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0x0f0000) @@ -100,6 +101,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pcat_io, AS_IO, 32, su2000_state ) AM_IMPORT_FROM(pcat32_io_common) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) ADDRESS_MAP_END @@ -288,7 +292,6 @@ void su2000_state::machine_start() kbdc8042_init(machine(), &at8042); pc_vga_init(machine(), read8_delegate(FUNC(su2000_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } void su2000_state::machine_reset() diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 87b11686c03..088c8c63b5a 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -456,7 +456,11 @@ static I8237_INTERFACE( dma8237_2_config ) static ADDRESS_MAP_START( taitowlf_map, AS_PROGRAM, 32, taitowlf_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM + #if ENABLE_VGA + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) + #else AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + #endif #if ENABLE_VGA AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) #else @@ -483,6 +487,11 @@ static ADDRESS_MAP_START(taitowlf_io, AS_IO, 32, taitowlf_state ) AM_RANGE(0x0300, 0x03af) AM_NOP AM_RANGE(0x03b0, 0x03df) AM_NOP AM_RANGE(0x0278, 0x027b) AM_WRITE(pnp_config_w) + #if ENABLE_VGA + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) + #endif AM_RANGE(0x03f0, 0x03ff) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x0a78, 0x0a7b) AM_WRITE(pnp_data_w) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) @@ -711,7 +720,6 @@ DRIVER_INIT_MEMBER(taitowlf_state,taitowlf) kbdc8042_init(machine(), &at8042); #if ENABLE_VGA pc_vga_init(machine(), read8_delegate(FUNC(taitowlf_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); #endif } diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c index 6a5cd5da6a1..f632f22e167 100644 --- a/src/mame/drivers/voyager.c +++ b/src/mame/drivers/voyager.c @@ -396,7 +396,7 @@ WRITE32_MEMBER(voyager_state::bios_ram_w) static ADDRESS_MAP_START( voyager_map, AS_PROGRAM, 32, voyager_state ) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM // VGA VRAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(trident_mem_r, trident_mem_w, 0xffffffff) // VGA VRAM AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) AM_RANGE(0x000c8000, 0x000cffff) AM_NOP //AM_RANGE(0x000d0000, 0x000d0003) AM_RAM // XYLINX - Sincronus serial communication @@ -446,6 +446,9 @@ static ADDRESS_MAP_START( voyager_io, AS_IO, 32, voyager_state ) AM_RANGE(0x02f8, 0x02ff) AM_NOP //To debug AM_RANGE(0x0320, 0x038f) AM_NOP //To debug AM_RANGE(0x03a0, 0x03a7) AM_NOP //To debug + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(trident_03c0_r, trident_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(trident_03d0_r, trident_03d0_w, 0xffffffff) AM_RANGE(0x03e0, 0x03ef) AM_NOP //To debug AM_RANGE(0x0378, 0x037f) AM_NOP //To debug // AM_RANGE(0x0300, 0x03af) AM_NOP @@ -802,7 +805,6 @@ DRIVER_INIT_MEMBER(voyager_state,voyager) m_bios_ram = auto_alloc_array(machine(), UINT32, 0x20000/4); pc_vga_init(machine(), read8_delegate(FUNC(voyager_state::vga_setting),this)); - pc_svga_trident_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, voyager_set_keyb_int); intel82439tx_init(machine()); diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c index 1a4e638f58b..17620969dde 100644 --- a/src/mame/drivers/xtom3d.c +++ b/src/mame/drivers/xtom3d.c @@ -526,7 +526,7 @@ static I8237_INTERFACE( dma8237_2_config ) static ADDRESS_MAP_START(xtom3d_map, AS_PROGRAM, 32, xtom3d_state) AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_RAM + AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) AM_RANGE(0x000c0000, 0x000c3fff) AM_ROMBANK("video_bank1") AM_WRITE(isa_ram1_w) AM_RANGE(0x000c4000, 0x000c7fff) AM_ROMBANK("video_bank2") AM_WRITE(isa_ram2_w) AM_RANGE(0x000e0000, 0x000e3fff) AM_ROMBANK("bios_ext1") AM_WRITE(bios_ext1_ram_w) @@ -550,6 +550,9 @@ static ADDRESS_MAP_START(xtom3d_io, AS_IO, 32, xtom3d_state) AM_RANGE(0x00e8, 0x00ef) AM_NOP AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(ide_r, ide_w) + AM_RANGE(0x03b0, 0x03bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x03c0, 0x03cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x03d0, 0x03df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) @@ -665,7 +668,6 @@ void xtom3d_state::machine_start() kbdc8042_init(machine(), &at8042); pc_vga_init(machine(), read8_delegate(FUNC(xtom3d_state::vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); } void xtom3d_state::machine_reset() diff --git a/src/mess/drivers/bebox.c b/src/mess/drivers/bebox.c index 3edaf365ad6..6818adf2a80 100644 --- a/src/mess/drivers/bebox.c +++ b/src/mess/drivers/bebox.c @@ -59,6 +59,9 @@ static ADDRESS_MAP_START( bebox_mem, AS_PROGRAM, 64, bebox_state ) AM_RANGE(0x800002F8, 0x800002FF) AM_DEVREADWRITE8( "ns16550_1", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) AM_RANGE(0x80000380, 0x80000387) AM_DEVREADWRITE8( "ns16550_2", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) AM_RANGE(0x80000388, 0x8000038F) AM_DEVREADWRITE8( "ns16550_3", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) + AM_RANGE(0x800003b0, 0x800003bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, U64(0xffffffffffffffff)) + AM_RANGE(0x800003c0, 0x800003cf) AM_READWRITE8_LEGACY(cirrus_03c0_r, cirrus_03c0_w, U64(0xffffffffffffffff)) + AM_RANGE(0x800003d0, 0x800003df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, U64(0xffffffffffffffff)) AM_RANGE(0x800003F0, 0x800003F7) AM_READWRITE_LEGACY(bebox_800003F0_r, bebox_800003F0_w ) AM_RANGE(0x800003F8, 0x800003FF) AM_DEVREADWRITE8( "ns16550_0",ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) AM_RANGE(0x80000480, 0x8000048F) AM_READWRITE8_LEGACY(bebox_80000480_r, bebox_80000480_w, U64(0xffffffffffffffff) ) @@ -66,7 +69,8 @@ static ADDRESS_MAP_START( bebox_mem, AS_PROGRAM, 64, bebox_state ) //AM_RANGE(0x800042E8, 0x800042EF) AM_DEVWRITE8_LEGACY("cirrus", cirrus_42E8_w, U64(0xffffffffffffffff) ) AM_RANGE(0xBFFFFFF0, 0xBFFFFFFF) AM_READ_LEGACY(bebox_interrupt_ack_r ) - + AM_RANGE(0xC00A0000, 0XC00BFFFF) AM_READWRITE8_LEGACY(vga_mem_r, vga_mem_w, U64(0xffffffffffffffff) ) + AM_RANGE(0xC1000000, 0XC11FFFFF) AM_READWRITE8_LEGACY(vga_mem_linear_r, vga_mem_linear_w, U64(0xffffffffffffffff) ) AM_RANGE(0xFFF00000, 0xFFF03FFF) AM_ROMBANK("bank2") AM_RANGE(0xFFF04000, 0xFFFFFFFF) AM_READWRITE8_LEGACY(bebox_flash_r, bebox_flash_w, U64(0xffffffffffffffff) ) ADDRESS_MAP_END diff --git a/src/mess/drivers/indiana.c b/src/mess/drivers/indiana.c index c7196a788db..18cdcb9ed18 100644 --- a/src/mess/drivers/indiana.c +++ b/src/mess/drivers/indiana.c @@ -35,7 +35,11 @@ static ADDRESS_MAP_START(indiana_mem, AS_PROGRAM, 32, indiana_state) AM_RANGE(0x00500000, 0x005fffff) AM_MIRROR(0x7f800000) AM_RAM // 16 bit PC MEM AM_RANGE(0x00600000, 0x006fffff) AM_MIRROR(0x7f800000) AM_RAM // 8 bit PC IO AM_RANGE(0x00700000, 0x007fffff) AM_MIRROR(0x7f800000) AM_RAM // 8 bit PC MEM - AM_RANGE(0x80000000, 0x803fffff) AM_MIRROR(0x7fc00000) AM_RAM // 4 MB RAM + AM_RANGE(0x7f6003b0, 0x7f6003bf) AM_READWRITE8_LEGACY(vga_port_03b0_r, vga_port_03b0_w, 0xffffffff) + AM_RANGE(0x7f6003c0, 0x7f6003cf) AM_READWRITE8_LEGACY(vga_port_03c0_r, vga_port_03c0_w, 0xffffffff) + AM_RANGE(0x7f6003d0, 0x7f6003df) AM_READWRITE8_LEGACY(vga_port_03d0_r, vga_port_03d0_w, 0xffffffff) + AM_RANGE(0x7f7a0000, 0x7f7bffff) AM_READWRITE8_LEGACY(vga_mem_r,vga_mem_w, 0xffffffff) + AM_RANGE(0x80000000, 0x803fffff) AM_MIRROR(0x7fc00000) AM_RAM // 4 MB RAM ADDRESS_MAP_END @@ -85,7 +89,6 @@ READ8_MEMBER(indiana_state::indiana_vga_setting) DRIVER_INIT_MEMBER(indiana_state,indiana) { pc_vga_init(machine(), read8_delegate(FUNC(indiana_state::indiana_vga_setting),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0x7f7a0000, machine().device("maincpu")->memory().space(AS_PROGRAM), 0x7f600000); } /* ROM definition */ diff --git a/src/mess/includes/pc.h b/src/mess/includes/pc.h index 7c8e26fd6b1..014c6daaeee 100644 --- a/src/mess/includes/pc.h +++ b/src/mess/includes/pc.h @@ -59,7 +59,6 @@ public: DECLARE_WRITE8_MEMBER(pc_dma_write_byte); DECLARE_WRITE8_MEMBER(pc_nmi_enable_w); DECLARE_READ8_MEMBER(pcjr_nmi_enable_r); - DECLARE_READ8_MEMBER(input_port_0_r); DECLARE_READ8_MEMBER(pc_rtc_r); DECLARE_WRITE8_MEMBER(pc_rtc_w); DECLARE_WRITE8_MEMBER(pc_EXP_w); @@ -79,7 +78,6 @@ public: DECLARE_DRIVER_INIT(pcmda); DECLARE_DRIVER_INIT(pc1512); DECLARE_DRIVER_INIT(pc1640); - DECLARE_DRIVER_INIT(pc_vga); DECLARE_MACHINE_START(pc); DECLARE_MACHINE_RESET(pc); DECLARE_MACHINE_RESET(tandy1000rl); diff --git a/src/mess/machine/bebox.c b/src/mess/machine/bebox.c index e9b585a0b45..42546b5c237 100644 --- a/src/mess/machine/bebox.c +++ b/src/mess/machine/bebox.c @@ -617,22 +617,53 @@ void bebox_ide_interrupt(device_t *device, int state) * Video card (Cirrus Logic CL-GD5430) * *************************************/ - +/* static READ64_HANDLER( bebox_video_r ) { - const UINT64 *mem = (const UINT64 *) pc_vga_memory(); - return BIG_ENDIANIZE_INT64(mem[offset]); + UINT64 result = 0; + mem_mask = FLIPENDIAN_INT64(mem_mask); + if (ACCESSING_BITS_0_7) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 0, mem_mask >> 0) << 0; + if (ACCESSING_BITS_8_15) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 1, mem_mask >> 8) << 8; + if (ACCESSING_BITS_16_23) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 2, mem_mask >> 16) << 16; + if (ACCESSING_BITS_24_31) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 3, mem_mask >> 24) << 24; + if (ACCESSING_BITS_32_39) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 4, mem_mask >> 32) << 32; + if (ACCESSING_BITS_40_47) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 5, mem_mask >> 40) << 40; + if (ACCESSING_BITS_48_55) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 6, mem_mask >> 48) << 48; + if (ACCESSING_BITS_56_63) + result |= (UINT64)vga_mem_linear_r(space, offset * 8 + 7, mem_mask >> 56) << 56; + return FLIPENDIAN_INT64(result); } static WRITE64_HANDLER( bebox_video_w ) { - UINT64 *mem = (UINT64 *) pc_vga_memory(); - data = BIG_ENDIANIZE_INT64(data); - mem_mask = BIG_ENDIANIZE_INT64(mem_mask); - COMBINE_DATA(&mem[offset]); + data = FLIPENDIAN_INT64(data); + mem_mask = FLIPENDIAN_INT64(mem_mask); + if (ACCESSING_BITS_0_7) + vga_mem_linear_w(space, offset * 8 + 0, data >> 0 , mem_mask >> 0); + if (ACCESSING_BITS_8_15) + vga_mem_linear_w(space, offset * 8 + 1, data >> 8 , mem_mask >> 8); + if (ACCESSING_BITS_16_23) + vga_mem_linear_w(space, offset * 8 + 2, data >> 16, mem_mask >> 16); + if (ACCESSING_BITS_24_31) + vga_mem_linear_w(space, offset * 8 + 3, data >> 24, mem_mask >> 24); + if (ACCESSING_BITS_32_39) + vga_mem_linear_w(space, offset * 8 + 4, data >> 32, mem_mask >> 32); + if (ACCESSING_BITS_40_47) + vga_mem_linear_w(space, offset * 8 + 5, data >> 40, mem_mask >> 40); + if (ACCESSING_BITS_48_55) + vga_mem_linear_w(space, offset * 8 + 6, data >> 48, mem_mask >> 48); + if (ACCESSING_BITS_56_63) + vga_mem_linear_w(space, offset * 8 + 7, data >> 56, mem_mask >> 56); } - +*/ /************************************* * * 8237 DMA @@ -1060,8 +1091,6 @@ DRIVER_INIT_MEMBER(bebox_state,bebox) { address_space &space_0 = machine().device("ppc1")->memory().space(AS_PROGRAM); address_space &space_1 = machine().device("ppc2")->memory().space(AS_PROGRAM); - offs_t vram_begin; - offs_t vram_end; /* set up boot and flash ROM */ membank("bank2")->set_base(machine().root_device().memregion("user2")->base()); @@ -1073,12 +1102,6 @@ DRIVER_INIT_MEMBER(bebox_state,bebox) kbdc8042_init(machine(), &bebox_8042_interface); - /* install VGA memory */ - vram_begin = 0xC1000000; - vram_end = vram_begin + pc_vga_memory_size() - 1; - space_0.install_legacy_readwrite_handler(vram_begin, vram_end, FUNC(bebox_video_r), FUNC(bebox_video_w)); - space_1.install_legacy_readwrite_handler(vram_begin, vram_end, FUNC(bebox_video_r), FUNC(bebox_video_w)); - /* The following is a verrrry ugly hack put in to support NetBSD for * NetBSD. When NetBSD/bebox it does most of its work on CPU #0 and then * lets CPU #1 go. However, it seems that CPU #1 jumps into never-never diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c index 1d535738529..b55f8a431a7 100644 --- a/src/mess/machine/pc.c +++ b/src/mess/machine/pc.c @@ -1406,8 +1406,6 @@ DRIVER_INIT_MEMBER(pc_state,mc1502) mess_init_pc_common(machine(), 0, NULL, pc_set_irq_line); } -READ8_MEMBER(pc_state::input_port_0_r ) { return machine().root_device().ioport("IN0")->read(); } - DRIVER_INIT_MEMBER(pc_state,pc1640) { address_space &io_space = machine().firstcpu->space( AS_IO ); @@ -1418,14 +1416,6 @@ DRIVER_INIT_MEMBER(pc_state,pc1640) mess_init_pc_common(machine(), PCCOMMON_KEYBOARD_PC, pc_set_keyb_int, pc_set_irq_line); } -DRIVER_INIT_MEMBER(pc_state,pc_vga) -{ - mess_init_pc_common(machine(), PCCOMMON_KEYBOARD_PC, pc_set_keyb_int, pc_set_irq_line); - - pc_vga_init(machine(), read8_delegate(FUNC(pc_state::input_port_0_r),this)); - pc_vga_io_init(machine(), machine().device("maincpu")->memory().space(AS_PROGRAM), 0xa0000, machine().device("maincpu")->memory().space(AS_IO), 0x0000); -} - static IRQ_CALLBACK(pc_irq_callback) { pc_state *st = device->machine().driver_data(); diff --git a/src/mess/video/cirrus.c b/src/mess/video/cirrus.c index 2a9b0528a20..8d878c5a8ba 100644 --- a/src/mess/video/cirrus.c +++ b/src/mess/video/cirrus.c @@ -94,7 +94,6 @@ cirrus_device::cirrus_device(const machine_config &mconfig, const char *tag, dev void cirrus_device::device_start() { pc_vga_cirrus_init(machine(), read8_delegate()); - pc_svga_cirrus_io_init(machine(), machine().device("ppc1")->memory().space(AS_PROGRAM), 0xC00A0000, machine().device("ppc1")->memory().space(AS_PROGRAM), 0x80000000); } //-------------------------------------------------