diff options
Diffstat (limited to 'src/mame/drivers/calchase.cpp')
-rw-r--r-- | src/mame/drivers/calchase.cpp | 104 |
1 files changed, 53 insertions, 51 deletions
diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp index 65d317f4d90..a752ec6e107 100644 --- a/src/mame/drivers/calchase.cpp +++ b/src/mame/drivers/calchase.cpp @@ -387,30 +387,31 @@ READ16_MEMBER(calchase_state::calchase_iocard5_r) } -ADDRESS_MAP_START(calchase_state::calchase_map) - AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", trident_vga_device, mem_r, mem_w, 0xffffffff) // VGA VRAM - AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) - AM_RANGE(0x000c8000, 0x000cffff) AM_NOP +void calchase_state::calchase_map(address_map &map) +{ + map(0x00000000, 0x0009ffff).ram(); + map(0x000a0000, 0x000bffff).rw("vga", FUNC(trident_vga_device::mem_r), FUNC(trident_vga_device::mem_w)); // VGA VRAM + map(0x000c0000, 0x000c7fff).ram().region("video_bios", 0); + map(0x000c8000, 0x000cffff).noprw(); //AM_RANGE(0x000d0000, 0x000d0003) AM_RAM // XYLINX - Sincronus serial communication - AM_RANGE(0x000d0004, 0x000d0007) AM_READ16(calchase_iocard1_r, 0x0000ffff) - AM_RANGE(0x000d000c, 0x000d000f) AM_READ16(calchase_iocard2_r, 0x0000ffff) - AM_RANGE(0x000d0030, 0x000d0033) AM_READ16(calchase_iocard3_r, 0xffff0000) - AM_RANGE(0x000d0030, 0x000d0033) AM_READ16(calchase_iocard4_r, 0x0000ffff) - AM_RANGE(0x000d0034, 0x000d0037) AM_READ16(calchase_iocard5_r, 0x0000ffff) - AM_RANGE(0x000d0008, 0x000d000b) AM_WRITENOP // ??? - AM_RANGE(0x000d0024, 0x000d0027) AM_DEVWRITE16("ldac", dac_word_interface, write, 0x0000ffff) - AM_RANGE(0x000d0028, 0x000d002b) AM_DEVWRITE16("rdac", dac_word_interface, write, 0x0000ffff) - AM_RANGE(0x000d0800, 0x000d0fff) AM_ROM AM_REGION("nvram",0) // + map(0x000d0004, 0x000d0005).r(this, FUNC(calchase_state::calchase_iocard1_r)); + map(0x000d000c, 0x000d000d).r(this, FUNC(calchase_state::calchase_iocard2_r)); + map(0x000d0032, 0x000d0033).r(this, FUNC(calchase_state::calchase_iocard3_r)); + map(0x000d0030, 0x000d0031).r(this, FUNC(calchase_state::calchase_iocard4_r)); + map(0x000d0034, 0x000d0035).r(this, FUNC(calchase_state::calchase_iocard5_r)); + map(0x000d0008, 0x000d000b).nopw(); // ??? + map(0x000d0024, 0x000d0025).w("ldac", FUNC(dac_word_interface::write)); + map(0x000d0028, 0x000d0029).w("rdac", FUNC(dac_word_interface::write)); + map(0x000d0800, 0x000d0fff).rom().region("nvram", 0); // // AM_RANGE(0x000d0800, 0x000d0fff) AM_RAM // GAME_CMOS //GRULL AM_RANGE(0x000e0000, 0x000effff) AM_RAM //GRULL-AM_RANGE(0x000f0000, 0x000fffff) AM_ROMBANK("bank1") //GRULL AM_RANGE(0x000f0000, 0x000fffff) AM_WRITE(bios_ram_w) - AM_RANGE(0x000e0000, 0x000effff) AM_ROMBANK("bios_ext") AM_WRITE(bios_ext_ram_w) - AM_RANGE(0x000f0000, 0x000fffff) AM_ROMBANK("bios_bank") AM_WRITE(bios_ram_w) - AM_RANGE(0x00100000, 0x03ffffff) AM_RAM // 64MB - AM_RANGE(0x04000000, 0x28ffffff) AM_NOP + map(0x000e0000, 0x000effff).bankr("bios_ext").w(this, FUNC(calchase_state::bios_ext_ram_w)); + map(0x000f0000, 0x000fffff).bankr("bios_bank").w(this, FUNC(calchase_state::bios_ram_w)); + map(0x00100000, 0x03ffffff).ram(); // 64MB + map(0x04000000, 0x28ffffff).noprw(); //AM_RANGE(0x04000000, 0x040001ff) AM_RAM //AM_RANGE(0x08000000, 0x080001ff) AM_RAM //AM_RANGE(0x0c000000, 0x0c0001ff) AM_RAM @@ -419,43 +420,44 @@ ADDRESS_MAP_START(calchase_state::calchase_map) //AM_RANGE(0x18000000, 0x180001ff) AM_RAM //AM_RANGE(0x20000000, 0x200001ff) AM_RAM //AM_RANGE(0x28000000, 0x280001ff) AM_RAM - AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) /* System BIOS */ -ADDRESS_MAP_END + map(0xfffe0000, 0xffffffff).rom().region("bios", 0); /* System BIOS */ +} -ADDRESS_MAP_START(calchase_state::calchase_io) - AM_IMPORT_FROM(pcat32_io_common) +void calchase_state::calchase_io(address_map &map) +{ + pcat32_io_common(map); //AM_RANGE(0x00e8, 0x00eb) AM_NOP - AM_RANGE(0x00e8, 0x00ef) AM_NOP //AMI BIOS write to this ports as delays between I/O ports operations sending al value -> NEWIODELAY - AM_RANGE(0x0170, 0x0177) AM_NOP //To debug - AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0) - AM_RANGE(0x0200, 0x021f) AM_NOP //To debug - AM_RANGE(0x0260, 0x026f) AM_NOP //To debug - AM_RANGE(0x0278, 0x027b) AM_WRITENOP//AM_WRITE(pnp_config_w) - AM_RANGE(0x0280, 0x0287) AM_NOP //To debug - AM_RANGE(0x02a0, 0x02a7) AM_NOP //To debug - AM_RANGE(0x02c0, 0x02c7) AM_NOP //To debug - AM_RANGE(0x02e0, 0x02ef) AM_NOP //To debug - 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_DEVREADWRITE8("vga", trident_vga_device, port_03b0_r, port_03b0_w, 0xffffffff) - AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", trident_vga_device, port_03c0_r, port_03c0_w, 0xffffffff) - AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", trident_vga_device, port_03d0_r, port_03d0_w, 0xffffffff) - AM_RANGE(0x03e0, 0x03ef) AM_NOP //To debug - AM_RANGE(0x0378, 0x037f) AM_NOP //To debug + map(0x00e8, 0x00ef).noprw(); //AMI BIOS write to this ports as delays between I/O ports operations sending al value -> NEWIODELAY + map(0x0170, 0x0177).noprw(); //To debug + map(0x01f0, 0x01f7).rw("ide", FUNC(ide_controller_32_device::read_cs0), FUNC(ide_controller_32_device::write_cs0)); + map(0x0200, 0x021f).noprw(); //To debug + map(0x0260, 0x026f).noprw(); //To debug + map(0x0278, 0x027b).nopw();//AM_WRITE(pnp_config_w) + map(0x0280, 0x0287).noprw(); //To debug + map(0x02a0, 0x02a7).noprw(); //To debug + map(0x02c0, 0x02c7).noprw(); //To debug + map(0x02e0, 0x02ef).noprw(); //To debug + map(0x02f8, 0x02ff).noprw(); //To debug + map(0x0320, 0x038f).noprw(); //To debug + map(0x03a0, 0x03a7).noprw(); //To debug + map(0x03b0, 0x03bf).rw("vga", FUNC(trident_vga_device::port_03b0_r), FUNC(trident_vga_device::port_03b0_w)); + map(0x03c0, 0x03cf).rw("vga", FUNC(trident_vga_device::port_03c0_r), FUNC(trident_vga_device::port_03c0_w)); + map(0x03d0, 0x03df).rw("vga", FUNC(trident_vga_device::port_03d0_r), FUNC(trident_vga_device::port_03d0_w)); + map(0x03e0, 0x03ef).noprw(); //To debug + map(0x0378, 0x037f).noprw(); //To debug // AM_RANGE(0x0300, 0x03af) AM_NOP // AM_RANGE(0x03b0, 0x03df) AM_NOP - AM_RANGE(0x03f0, 0x03f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs1, write_cs1) - AM_RANGE(0x03f8, 0x03ff) AM_NOP // To debug Serial Port COM1: - AM_RANGE(0x0a78, 0x0a7b) AM_WRITENOP//AM_WRITE(pnp_data_w) - AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) - AM_RANGE(0x42e8, 0x43ef) AM_NOP //To debug - AM_RANGE(0x43c4, 0x43cb) AM_DEVREADWRITE8("vga", trident_vga_device, port_43c6_r, port_43c6_w, 0xffffffff) // Trident Memory and Video Clock register - AM_RANGE(0x46e8, 0x46ef) AM_NOP //To debug - AM_RANGE(0x4ae8, 0x4aef) AM_NOP //To debug - AM_RANGE(0x83c4, 0x83cb) AM_DEVREADWRITE8("vga", trident_vga_device, port_83c6_r, port_83c6_w, 0xffffffff) // Trident LUTDAC - AM_RANGE(0x92e8, 0x92ef) AM_NOP //To debug -ADDRESS_MAP_END + map(0x03f0, 0x03f7).rw("ide", FUNC(ide_controller_32_device::read_cs1), FUNC(ide_controller_32_device::write_cs1)); + map(0x03f8, 0x03ff).noprw(); // To debug Serial Port COM1: + map(0x0a78, 0x0a7b).nopw();//AM_WRITE(pnp_data_w) + map(0x0cf8, 0x0cff).rw("pcibus", FUNC(pci_bus_legacy_device::read), FUNC(pci_bus_legacy_device::write)); + map(0x42e8, 0x43ef).noprw(); //To debug + map(0x43c4, 0x43cb).rw("vga", FUNC(trident_vga_device::port_43c6_r), FUNC(trident_vga_device::port_43c6_w)); // Trident Memory and Video Clock register + map(0x46e8, 0x46ef).noprw(); //To debug + map(0x4ae8, 0x4aef).noprw(); //To debug + map(0x83c4, 0x83cb).rw("vga", FUNC(trident_vga_device::port_83c6_r), FUNC(trident_vga_device::port_83c6_w)); // Trident LUTDAC + map(0x92e8, 0x92ef).noprw(); //To debug +} #define AT_KEYB_HELPER(bit, text, key1) \ PORT_BIT( bit, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(text) PORT_CODE(key1) |