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") |