trunk/src/emu/bus/isa/svga_cirrus.c
| r245664 | r245665 | |
| 23 | 23 | static MACHINE_CONFIG_FRAGMENT( vga_cirrus ) |
| 24 | 24 | MCFG_SCREEN_ADD("screen", RASTER) |
| 25 | 25 | MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) |
| 26 | | MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_vga_device, screen_update) |
| 26 | MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5430_device, screen_update) |
| 27 | 27 | |
| 28 | 28 | MCFG_PALETTE_ADD("palette", 0x100) |
| 29 | 29 | |
| 30 | | MCFG_DEVICE_ADD("vga", CIRRUS_VGA, 0) |
| 30 | MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0) |
| 31 | 31 | MACHINE_CONFIG_END |
| 32 | 32 | |
| 33 | 33 | //------------------------------------------------- |
| r245664 | r245665 | |
| 72 | 72 | { |
| 73 | 73 | set_isa_device(); |
| 74 | 74 | |
| 75 | | m_vga = subdevice<cirrus_vga_device>("vga"); |
| 75 | m_vga = subdevice<cirrus_gd5430_device>("vga"); |
| 76 | 76 | |
| 77 | 77 | m_isa->install_rom(this, 0xc0000, 0xc7fff, 0, 0, "svga", "dm_clgd5430"); |
| 78 | 78 | |
| 79 | | m_isa->install_device(0x03b0, 0x03bf, 0, 0, read8_delegate(FUNC(cirrus_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_vga_device::port_03b0_w),m_vga)); |
| 80 | | m_isa->install_device(0x03c0, 0x03cf, 0, 0, read8_delegate(FUNC(cirrus_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_vga_device::port_03c0_w),m_vga)); |
| 81 | | m_isa->install_device(0x03d0, 0x03df, 0, 0, read8_delegate(FUNC(cirrus_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_vga_device::port_03d0_w),m_vga)); |
| 82 | | // m_isa->install_device(0x9ae8, 0x9aeb, 0, 0, read8_delegate(FUNC(cirrus_vga_device::s3_port_9ae8_r),m_vga), write8_delegate(FUNC(cirrus_vga_device::s3_port_9ae8_w),m_vga)); |
| 79 | m_isa->install_device(0x03b0, 0x03bf, 0, 0, read8_delegate(FUNC(cirrus_gd5430_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03b0_w),m_vga)); |
| 80 | m_isa->install_device(0x03c0, 0x03cf, 0, 0, read8_delegate(FUNC(cirrus_gd5430_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03c0_w),m_vga)); |
| 81 | m_isa->install_device(0x03d0, 0x03df, 0, 0, read8_delegate(FUNC(cirrus_gd5430_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03d0_w),m_vga)); |
| 82 | // m_isa->install_device(0x9ae8, 0x9aeb, 0, 0, read8_delegate(FUNC(cirrus_gd5430_device::s3_port_9ae8_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::s3_port_9ae8_w),m_vga)); |
| 83 | 83 | |
| 84 | | m_isa->install_memory(0xa0000, 0xbffff, 0, 0, read8_delegate(FUNC(cirrus_vga_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_vga_device::mem_w),m_vga)); |
| 84 | m_isa->install_memory(0xa0000, 0xbffff, 0, 0, read8_delegate(FUNC(cirrus_gd5430_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::mem_w),m_vga)); |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | 87 | //------------------------------------------------- |
trunk/src/emu/video/pc_vga.c
| r245664 | r245665 | |
| 122 | 122 | const device_type S3_VGA = &device_creator<s3_vga_device>; |
| 123 | 123 | const device_type GAMTOR_VGA = &device_creator<gamtor_vga_device>; |
| 124 | 124 | const device_type ATI_VGA = &device_creator<ati_vga_device>; |
| 125 | | const device_type CIRRUS_VGA = &device_creator<cirrus_vga_device>; |
| 125 | const device_type CIRRUS_GD5428 = &device_creator<cirrus_gd5428_device>; |
| 126 | const device_type CIRRUS_GD5430 = &device_creator<cirrus_gd5430_device>; |
| 126 | 127 | const device_type IBM8514A = &device_creator<ibm8514a_device>; |
| 127 | 128 | const device_type MACH8 = &device_creator<mach8_device>; |
| 128 | 129 | |
| r245664 | r245665 | |
| 173 | 174 | { |
| 174 | 175 | } |
| 175 | 176 | |
| 176 | | cirrus_vga_device::cirrus_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 177 | | : svga_device(mconfig, CIRRUS_VGA, "Cirrus Logic VGA", tag, owner, clock, "cirrus_vga", __FILE__) |
| 177 | cirrus_gd5428_device::cirrus_gd5428_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 178 | : svga_device(mconfig, CIRRUS_GD5428, "Cirrus Logic GD5428", tag, owner, clock, "clgd5428", __FILE__) |
| 178 | 179 | { |
| 179 | 180 | } |
| 180 | 181 | |
| 182 | cirrus_gd5428_device::cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) |
| 183 | : svga_device(mconfig, type, name, tag, owner, clock, shortname, source) |
| 184 | { |
| 185 | } |
| 186 | |
| 187 | cirrus_gd5430_device::cirrus_gd5430_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 188 | : cirrus_gd5428_device(mconfig, CIRRUS_GD5430, "Cirrus Logic GD5430", tag, owner, clock, "clgd5430", __FILE__) |
| 189 | { |
| 190 | } |
| 191 | |
| 181 | 192 | ibm8514a_device::ibm8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 182 | 193 | : device_t(mconfig, IBM8514A, "IBM8514A Video", tag, owner, clock, "ibm8514a", __FILE__) |
| 183 | 194 | { |
| r245664 | r245665 | |
| 260 | 271 | memset(&svga, 0, sizeof(svga)); |
| 261 | 272 | } |
| 262 | 273 | |
| 263 | | void cirrus_vga_device::device_start() |
| 274 | void cirrus_gd5428_device::device_start() |
| 264 | 275 | { |
| 265 | 276 | zero(); |
| 266 | 277 | |
| r245664 | r245665 | |
| 282 | 293 | save_pointer(vga.crtc.data,"CRTC Registers",0x100); |
| 283 | 294 | save_pointer(vga.sequencer.data,"Sequencer Registers",0x100); |
| 284 | 295 | save_pointer(vga.attribute.data,"Attribute Registers", 0x15); |
| 296 | save_item(NAME(m_chip_id)); |
| 285 | 297 | |
| 286 | 298 | m_vblank_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vga_device::vblank_timer_cb),this)); |
| 299 | |
| 300 | m_chip_id = 0x98; // GD5428 - Rev 0 |
| 287 | 301 | } |
| 288 | 302 | |
| 303 | void cirrus_gd5430_device::device_start() |
| 304 | { |
| 305 | cirrus_gd5428_device::device_start(); |
| 306 | m_chip_id = 0xa0; // GD5430 - Rev 0 |
| 307 | } |
| 308 | |
| 289 | 309 | void ati_vga_device::device_start() |
| 290 | 310 | { |
| 291 | 311 | svga_device::device_start(); |
| r245664 | r245665 | |
| 1143 | 1163 | return 0; |
| 1144 | 1164 | } |
| 1145 | 1165 | |
| 1146 | | UINT32 cirrus_vga_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 1166 | UINT32 cirrus_gd5428_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 1147 | 1167 | { |
| 1148 | 1168 | int x,y,bit; |
| 1149 | 1169 | UINT32 ptr = (vga.svga_intf.vram_size - 0x4000); // cursor patterns are stored in the last 16kB of VRAM |
| r245664 | r245665 | |
| 2100 | 2120 | s3.sr11 = 0x41; |
| 2101 | 2121 | } |
| 2102 | 2122 | |
| 2103 | | void cirrus_vga_device::device_reset() |
| 2123 | void cirrus_gd5428_device::device_reset() |
| 2104 | 2124 | { |
| 2105 | 2125 | vga_device::device_reset(); |
| 2106 | 2126 | gc_locked = true; |
| r245664 | r245665 | |
| 2248 | 2268 | MCFG_DEVICE_ADD("vga", TRIDENT_VGA, 0) |
| 2249 | 2269 | MACHINE_CONFIG_END |
| 2250 | 2270 | |
| 2251 | | MACHINE_CONFIG_FRAGMENT( pcvideo_cirrus_vga ) |
| 2271 | MACHINE_CONFIG_FRAGMENT( pcvideo_cirrus_gd5428 ) |
| 2252 | 2272 | MCFG_SCREEN_ADD("screen", RASTER) |
| 2253 | 2273 | MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) |
| 2254 | | MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_vga_device, screen_update) |
| 2274 | MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update) |
| 2255 | 2275 | |
| 2256 | 2276 | MCFG_PALETTE_ADD("palette", 0x100) |
| 2257 | | MCFG_DEVICE_ADD("vga", CIRRUS_VGA, 0) |
| 2277 | MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) |
| 2258 | 2278 | MACHINE_CONFIG_END |
| 2259 | 2279 | |
| 2280 | MACHINE_CONFIG_FRAGMENT( pcvideo_cirrus_gd5430 ) |
| 2281 | MCFG_SCREEN_ADD("screen", RASTER) |
| 2282 | MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) |
| 2283 | MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5430_device, screen_update) |
| 2284 | |
| 2285 | MCFG_PALETTE_ADD("palette", 0x100) |
| 2286 | MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0) |
| 2287 | MACHINE_CONFIG_END |
| 2288 | |
| 2260 | 2289 | MACHINE_CONFIG_FRAGMENT( pcvideo_gamtor_vga ) |
| 2261 | 2290 | MCFG_SCREEN_ADD("screen", RASTER) |
| 2262 | 2291 | MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) |
| r245664 | r245665 | |
| 5726 | 5755 | |
| 5727 | 5756 | ******************************************/ |
| 5728 | 5757 | |
| 5729 | | void cirrus_vga_device::cirrus_define_video_mode() |
| 5758 | void cirrus_gd5428_device::cirrus_define_video_mode() |
| 5730 | 5759 | { |
| 5731 | 5760 | svga.rgb8_en = 0; |
| 5732 | 5761 | svga.rgb15_en = 0; |
| 5733 | 5762 | svga.rgb16_en = 0; |
| 5734 | 5763 | svga.rgb24_en = 0; |
| 5735 | 5764 | svga.rgb32_en = 0; |
| 5736 | | if ((vga.sequencer.data[0x06] == 0x12) && (vga.sequencer.data[0x07] & 0x01)) |
| 5765 | if (!gc_locked && (vga.sequencer.data[0x07] & 0x01)) |
| 5737 | 5766 | { |
| 5738 | 5767 | switch(vga.sequencer.data[0x07] & 0x0E) |
| 5739 | 5768 | { |
| r245664 | r245665 | |
| 5744 | 5773 | case 0x08: svga.rgb32_en = 1; break; |
| 5745 | 5774 | } |
| 5746 | 5775 | } |
| 5776 | recompute_params_clock(1, (vga.miscellaneous_output & 0xc) ? XTAL_28_63636MHz : XTAL_25_1748MHz); |
| 5747 | 5777 | } |
| 5748 | 5778 | |
| 5749 | | UINT16 cirrus_vga_device::offset() |
| 5779 | UINT16 cirrus_gd5428_device::offset() |
| 5750 | 5780 | { |
| 5751 | 5781 | //popmessage("Offset: %04x %s %s **",vga.crtc.offset,vga.crtc.dw?"DW":"--",vga.crtc.word_mode?"BYTE":"WORD"); |
| 5752 | 5782 | if(gc_mode_ext & 0x10) |
| r245664 | r245665 | |
| 5756 | 5786 | return vga_device::offset(); |
| 5757 | 5787 | } |
| 5758 | 5788 | |
| 5759 | | UINT8 cirrus_vga_device::cirrus_seq_reg_read(UINT8 index) |
| 5789 | UINT8 cirrus_gd5428_device::cirrus_seq_reg_read(UINT8 index) |
| 5760 | 5790 | { |
| 5761 | 5791 | UINT8 res; |
| 5762 | 5792 | |
| r245664 | r245665 | |
| 5796 | 5826 | return res; |
| 5797 | 5827 | } |
| 5798 | 5828 | |
| 5799 | | void cirrus_vga_device::cirrus_seq_reg_write(UINT8 index, UINT8 data) |
| 5829 | void cirrus_gd5428_device::cirrus_seq_reg_write(UINT8 index, UINT8 data) |
| 5800 | 5830 | { |
| 5801 | 5831 | switch(index) |
| 5802 | 5832 | { |
| r245664 | r245665 | |
| 5874 | 5904 | } |
| 5875 | 5905 | } |
| 5876 | 5906 | |
| 5877 | | UINT8 cirrus_vga_device::cirrus_gc_reg_read(UINT8 index) |
| 5907 | UINT8 cirrus_gd5428_device::cirrus_gc_reg_read(UINT8 index) |
| 5878 | 5908 | { |
| 5879 | 5909 | UINT8 res = 0xff; |
| 5880 | 5910 | |
| r245664 | r245665 | |
| 5922 | 5952 | return res; |
| 5923 | 5953 | } |
| 5924 | 5954 | |
| 5925 | | void cirrus_vga_device::cirrus_gc_reg_write(UINT8 index, UINT8 data) |
| 5955 | void cirrus_gd5428_device::cirrus_gc_reg_write(UINT8 index, UINT8 data) |
| 5926 | 5956 | { |
| 5927 | 5957 | logerror("CL: GC write %02x to GR%02x\n",data,index); |
| 5928 | 5958 | switch(index) |
| r245664 | r245665 | |
| 5971 | 6001 | } |
| 5972 | 6002 | } |
| 5973 | 6003 | |
| 5974 | | READ8_MEMBER(cirrus_vga_device::port_03c0_r) |
| 6004 | READ8_MEMBER(cirrus_gd5428_device::port_03c0_r) |
| 5975 | 6005 | { |
| 5976 | 6006 | UINT8 res = 0xff; |
| 5977 | 6007 | |
| r245664 | r245665 | |
| 6019 | 6049 | return res; |
| 6020 | 6050 | } |
| 6021 | 6051 | |
| 6022 | | WRITE8_MEMBER(cirrus_vga_device::port_03c0_w) |
| 6052 | WRITE8_MEMBER(cirrus_gd5428_device::port_03c0_w) |
| 6023 | 6053 | { |
| 6024 | 6054 | switch(offset) |
| 6025 | 6055 | { |
| r245664 | r245665 | |
| 6061 | 6091 | cirrus_define_video_mode(); |
| 6062 | 6092 | } |
| 6063 | 6093 | |
| 6064 | | READ8_MEMBER(cirrus_vga_device::port_03b0_r) |
| 6094 | READ8_MEMBER(cirrus_gd5428_device::port_03b0_r) |
| 6065 | 6095 | { |
| 6066 | 6096 | UINT8 res = 0xff; |
| 6067 | 6097 | |
| r245664 | r245665 | |
| 6081 | 6111 | return res; |
| 6082 | 6112 | } |
| 6083 | 6113 | |
| 6084 | | READ8_MEMBER(cirrus_vga_device::port_03d0_r) |
| 6114 | READ8_MEMBER(cirrus_gd5428_device::port_03d0_r) |
| 6085 | 6115 | { |
| 6086 | 6116 | UINT8 res = 0xff; |
| 6087 | 6117 | |
| r245664 | r245665 | |
| 6101 | 6131 | return res; |
| 6102 | 6132 | } |
| 6103 | 6133 | |
| 6104 | | WRITE8_MEMBER(cirrus_vga_device::port_03b0_w) |
| 6134 | WRITE8_MEMBER(cirrus_gd5428_device::port_03b0_w) |
| 6105 | 6135 | { |
| 6106 | 6136 | if (CRTC_PORT_ADDR == 0x3b0) |
| 6107 | 6137 | { |
| r245664 | r245665 | |
| 6116 | 6146 | break; |
| 6117 | 6147 | } |
| 6118 | 6148 | } |
| 6149 | cirrus_define_video_mode(); |
| 6119 | 6150 | } |
| 6120 | 6151 | |
| 6121 | | WRITE8_MEMBER(cirrus_vga_device::port_03d0_w) |
| 6152 | WRITE8_MEMBER(cirrus_gd5428_device::port_03d0_w) |
| 6122 | 6153 | { |
| 6123 | 6154 | if (CRTC_PORT_ADDR == 0x3d0) |
| 6124 | 6155 | { |
| r245664 | r245665 | |
| 6133 | 6164 | break; |
| 6134 | 6165 | } |
| 6135 | 6166 | } |
| 6167 | cirrus_define_video_mode(); |
| 6136 | 6168 | } |
| 6137 | 6169 | |
| 6138 | | UINT8 cirrus_vga_device::cirrus_crtc_reg_read(UINT8 index) |
| 6170 | UINT8 cirrus_gd5428_device::cirrus_crtc_reg_read(UINT8 index) |
| 6139 | 6171 | { |
| 6140 | 6172 | UINT8 res = 0xff; |
| 6141 | 6173 | |
| r245664 | r245665 | |
| 6154 | 6186 | res = m_cr1b; |
| 6155 | 6187 | break; |
| 6156 | 6188 | case 0x27: |
| 6157 | | res = 0xa0; // Chip ID - GD5430 rev 0 |
| 6189 | res = m_chip_id; |
| 6158 | 6190 | break; |
| 6159 | 6191 | default: |
| 6160 | 6192 | logerror("CL: Unhandled extended CRTC register CR%02x read\n",index); |
| r245664 | r245665 | |
| 6163 | 6195 | return res; |
| 6164 | 6196 | } |
| 6165 | 6197 | |
| 6166 | | void cirrus_vga_device::cirrus_crtc_reg_write(UINT8 index, UINT8 data) |
| 6198 | void cirrus_gd5428_device::cirrus_crtc_reg_write(UINT8 index, UINT8 data) |
| 6167 | 6199 | { |
| 6168 | 6200 | if(index <= 0x18) |
| 6169 | 6201 | { |
| r245664 | r245665 | |
| 6190 | 6222 | |
| 6191 | 6223 | } |
| 6192 | 6224 | |
| 6193 | | READ8_MEMBER(cirrus_vga_device::mem_r) |
| 6225 | READ8_MEMBER(cirrus_gd5428_device::mem_r) |
| 6194 | 6226 | { |
| 6195 | 6227 | UINT32 addr; |
| 6196 | 6228 | UINT8 bank; |
| r245664 | r245665 | |
| 6291 | 6323 | } |
| 6292 | 6324 | } |
| 6293 | 6325 | |
| 6294 | | WRITE8_MEMBER(cirrus_vga_device::mem_w) |
| 6326 | WRITE8_MEMBER(cirrus_gd5428_device::mem_w) |
| 6295 | 6327 | { |
| 6296 | 6328 | UINT32 addr; |
| 6297 | 6329 | UINT8 bank; |
trunk/src/emu/video/pc_vga.h
| r245664 | r245665 | |
| 12 | 12 | MACHINE_CONFIG_EXTERN( pcvideo_vga ); |
| 13 | 13 | MACHINE_CONFIG_EXTERN( pcvideo_trident_vga ); |
| 14 | 14 | MACHINE_CONFIG_EXTERN( pcvideo_gamtor_vga ); |
| 15 | | MACHINE_CONFIG_EXTERN( pcvideo_cirrus_vga ); |
| 15 | MACHINE_CONFIG_EXTERN( pcvideo_cirrus_gd5428 ); |
| 16 | MACHINE_CONFIG_EXTERN( pcvideo_cirrus_gd5430 ); |
| 16 | 17 | MACHINE_CONFIG_EXTERN( pcvideo_s3_vga ); |
| 17 | 18 | |
| 18 | 19 | // ======================> vga_device |
| r245664 | r245665 | |
| 623 | 624 | |
| 624 | 625 | // ======================> cirrus_vga_device |
| 625 | 626 | |
| 626 | | class cirrus_vga_device : public svga_device |
| 627 | class cirrus_gd5428_device : public svga_device |
| 627 | 628 | { |
| 628 | 629 | public: |
| 629 | 630 | // construction/destruction |
| 630 | | cirrus_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 631 | | |
| 631 | cirrus_gd5428_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 632 | cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); |
| 632 | 633 | virtual READ8_MEMBER(port_03c0_r); |
| 633 | 634 | virtual WRITE8_MEMBER(port_03c0_w); |
| 634 | 635 | virtual READ8_MEMBER(port_03b0_r); |
| r245664 | r245665 | |
| 645 | 646 | virtual void device_reset(); |
| 646 | 647 | virtual UINT16 offset(); |
| 647 | 648 | |
| 649 | UINT8 m_chip_id; |
| 650 | |
| 648 | 651 | UINT8 gc_mode_ext; |
| 649 | 652 | UINT8 gc_bank_0; |
| 650 | 653 | UINT8 gc_bank_1; |
| r245664 | r245665 | |
| 676 | 679 | void cirrus_crtc_reg_write(UINT8 index, UINT8 data); |
| 677 | 680 | }; |
| 678 | 681 | |
| 682 | class cirrus_gd5430_device : public cirrus_gd5428_device |
| 683 | { |
| 684 | public: |
| 685 | cirrus_gd5430_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 686 | protected: |
| 687 | virtual void device_start(); |
| 688 | }; |
| 689 | |
| 679 | 690 | // device type definition |
| 680 | | extern const device_type CIRRUS_VGA; |
| 691 | extern const device_type CIRRUS_GD5428; |
| 692 | extern const device_type CIRRUS_GD5430; |
| 693 | |
| 681 | 694 | /* |
| 682 | 695 | pega notes (paradise) |
| 683 | 696 | build in amstrad pc1640 |
trunk/src/mame/drivers/gambl186.c
| r245664 | r245665 | |
| 50 | 50 | static ADDRESS_MAP_START( gambl186_map, AS_PROGRAM, 16, gambl186_state ) |
| 51 | 51 | AM_RANGE(0x00000, 0x0ffff) AM_RAM |
| 52 | 52 | AM_RANGE(0x40000, 0x4ffff) AM_ROM AM_REGION("data",0) // TODO: way bigger than this, banked? |
| 53 | | AM_RANGE(0xa0000, 0xbffff) AM_DEVREADWRITE8("vga", cirrus_vga_device, mem_r, mem_w, 0xffff) |
| 53 | AM_RANGE(0xa0000, 0xbffff) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, mem_r, mem_w, 0xffff) |
| 54 | 54 | AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("ipl",0) |
| 55 | 55 | ADDRESS_MAP_END |
| 56 | 56 | |
| r245664 | r245665 | |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | static ADDRESS_MAP_START( gambl186_io, AS_IO, 16, gambl186_state ) |
| 63 | | AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03b0_r, port_03b0_w, 0xffff) |
| 64 | | AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03c0_r, port_03c0_w, 0xffff) |
| 65 | | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03d0_r, port_03d0_w, 0xffff) |
| 63 | AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03b0_r, port_03b0_w, 0xffff) |
| 64 | AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03c0_r, port_03c0_w, 0xffff) |
| 65 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03d0_r, port_03d0_w, 0xffff) |
| 66 | 66 | AM_RANGE(0x0400, 0x0401) AM_WRITENOP // sound |
| 67 | 67 | AM_RANGE(0x0500, 0x0501) AM_READ_PORT("IN0") |
| 68 | 68 | AM_RANGE(0x0502, 0x0503) AM_READ_PORT("IN1") |
| r245664 | r245665 | |
| 360 | 360 | MCFG_CPU_PROGRAM_MAP(gambl186_map) |
| 361 | 361 | MCFG_CPU_IO_MAP(gambl186_io) |
| 362 | 362 | |
| 363 | | MCFG_FRAGMENT_ADD( pcvideo_cirrus_vga ) |
| 363 | MCFG_FRAGMENT_ADD( pcvideo_cirrus_gd5428 ) |
| 364 | 364 | MACHINE_CONFIG_END |
| 365 | 365 | |
| 366 | 366 | |
trunk/src/mame/drivers/pcat_nit.c
| r245664 | r245665 | |
| 158 | 158 | |
| 159 | 159 | static ADDRESS_MAP_START( bonanza_map, AS_PROGRAM, 32, pcat_nit_state ) |
| 160 | 160 | AM_RANGE(0x00000000, 0x0009ffff) AM_RAM |
| 161 | | AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", cirrus_vga_device, mem_r, mem_w, 0xffffffff) |
| 161 | AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, mem_r, mem_w, 0xffffffff) |
| 162 | 162 | AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_WRITENOP |
| 163 | 163 | AM_RANGE(0x000d0000, 0x000d3fff) AM_RAM AM_REGION("disk_bios", 0) |
| 164 | 164 | AM_RANGE(0x000d7000, 0x000d7003) AM_WRITE8(pcat_nit_rombank_w, 0xff) |
| r245664 | r245665 | |
| 196 | 196 | AM_IMPORT_FROM(pcat32_io_common) |
| 197 | 197 | AM_RANGE(0x0278, 0x027f) AM_READ8(pcat_nit_io_r, 0xffffffff) AM_WRITENOP |
| 198 | 198 | AM_RANGE(0x0280, 0x0283) AM_READNOP |
| 199 | | AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03b0_r, port_03b0_w, 0xffffffff) |
| 200 | | AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03c0_r, port_03c0_w, 0xffffffff) |
| 201 | | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03d0_r, port_03d0_w, 0xffffffff) |
| 199 | AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03b0_r, port_03b0_w, 0xffffffff) |
| 200 | AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03c0_r, port_03c0_w, 0xffffffff) |
| 201 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03d0_r, port_03d0_w, 0xffffffff) |
| 202 | 202 | AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ns16450_0", ns16450_device, ins8250_r, ins8250_w, 0xffffffff) |
| 203 | 203 | ADDRESS_MAP_END |
| 204 | 204 | |
| r245664 | r245665 | |
| 244 | 244 | MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) |
| 245 | 245 | |
| 246 | 246 | /* video hardware */ |
| 247 | | MCFG_FRAGMENT_ADD( pcvideo_cirrus_vga ) |
| 247 | MCFG_FRAGMENT_ADD( pcvideo_cirrus_gd5428 ) |
| 248 | 248 | |
| 249 | 249 | MCFG_FRAGMENT_ADD( pcat_common ) |
| 250 | 250 | MCFG_DEVICE_ADD( "ns16450_0", NS16450, XTAL_1_8432MHz ) |
trunk/src/mess/drivers/bebox.c
| r245664 | r245665 | |
| 56 | 56 | AM_RANGE(0x800002F8, 0x800002FF) AM_DEVREADWRITE8( "ns16550_1", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) |
| 57 | 57 | AM_RANGE(0x80000380, 0x80000387) AM_DEVREADWRITE8( "ns16550_2", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) |
| 58 | 58 | AM_RANGE(0x80000388, 0x8000038F) AM_DEVREADWRITE8( "ns16550_3", ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) |
| 59 | | AM_RANGE(0x800003b0, 0x800003bf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03b0_r, port_03b0_w, U64(0xffffffffffffffff)) |
| 60 | | AM_RANGE(0x800003c0, 0x800003cf) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03c0_r, port_03c0_w, U64(0xffffffffffffffff)) |
| 61 | | AM_RANGE(0x800003d0, 0x800003df) AM_DEVREADWRITE8("vga", cirrus_vga_device, port_03d0_r, port_03d0_w, U64(0xffffffffffffffff)) |
| 59 | AM_RANGE(0x800003b0, 0x800003bf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03b0_r, port_03b0_w, U64(0xffffffffffffffff)) |
| 60 | AM_RANGE(0x800003c0, 0x800003cf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03c0_r, port_03c0_w, U64(0xffffffffffffffff)) |
| 61 | AM_RANGE(0x800003d0, 0x800003df) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03d0_r, port_03d0_w, U64(0xffffffffffffffff)) |
| 62 | 62 | AM_RANGE(0x800003F0, 0x800003F7) AM_DEVREADWRITE16("ide", ide_controller_device, read_cs1, write_cs1, U64(0xffffffffffffffff) ) |
| 63 | 63 | AM_RANGE(0x800003F0, 0x800003F7) AM_DEVICE8( "smc37c78", smc37c78_device, map, U64(0xffffffffffffffff) ) |
| 64 | 64 | AM_RANGE(0x800003F8, 0x800003FF) AM_DEVREADWRITE8( "ns16550_0",ns16550_device, ins8250_r, ins8250_w, U64(0xffffffffffffffff) ) |
| r245664 | r245665 | |
| 67 | 67 | //AM_RANGE(0x800042E8, 0x800042EF) AM_DEVWRITE8("cirrus", cirrus_device, cirrus_42E8_w, U64(0xffffffffffffffff) ) |
| 68 | 68 | |
| 69 | 69 | AM_RANGE(0xBFFFFFF0, 0xBFFFFFFF) AM_READ(bebox_interrupt_ack_r ) |
| 70 | | AM_RANGE(0xC00A0000, 0XC00BFFFF) AM_DEVREADWRITE8("vga", cirrus_vga_device, mem_r, mem_w, U64(0xffffffffffffffff) ) |
| 71 | | AM_RANGE(0xC1000000, 0XC11FFFFF) AM_DEVREADWRITE8("vga", cirrus_vga_device, mem_linear_r, mem_linear_w, U64(0xffffffffffffffff) ) |
| 70 | AM_RANGE(0xC00A0000, 0XC00BFFFF) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, mem_r, mem_w, U64(0xffffffffffffffff) ) |
| 71 | AM_RANGE(0xC1000000, 0XC11FFFFF) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, mem_linear_r, mem_linear_w, U64(0xffffffffffffffff) ) |
| 72 | 72 | AM_RANGE(0xFFF00000, 0xFFF03FFF) AM_ROMBANK("bank2") |
| 73 | 73 | AM_RANGE(0xFFF04000, 0xFFFFFFFF) AM_READWRITE8(bebox_flash_r, bebox_flash_w, U64(0xffffffffffffffff) ) |
| 74 | 74 | ADDRESS_MAP_END |
| r245664 | r245665 | |
| 189 | 189 | MCFG_DEVICE_ADD( "ns16550_3", NS16550, 0 ) /* TODO: Verify model */ |
| 190 | 190 | |
| 191 | 191 | /* video hardware */ |
| 192 | | MCFG_FRAGMENT_ADD( pcvideo_cirrus_vga ) |
| 192 | MCFG_FRAGMENT_ADD( pcvideo_cirrus_gd5428 ) |
| 193 | 193 | |
| 194 | 194 | |
| 195 | 195 | MCFG_SPEAKER_STANDARD_MONO("mono") |