trunk/src/mess/video/apollo.c
| r24022 | r24023 | |
| 113 | 113 | void device_reset(); |
| 114 | 114 | void device_reset_mono19i(); |
| 115 | 115 | |
| 116 | | // monochrome |
| 116 | // monochrome control |
| 117 | 117 | READ8_DEVICE_HANDLER( apollo_mcr_r ); |
| 118 | 118 | WRITE8_DEVICE_HANDLER( apollo_mcr_w ); |
| 119 | | READ16_DEVICE_HANDLER( apollo_mgm_r ); |
| 120 | | WRITE16_DEVICE_HANDLER( apollo_mgm_w ); |
| 121 | 119 | |
| 122 | | // color |
| 120 | // monochrome and color memory |
| 121 | READ16_DEVICE_HANDLER( apollo_mem_r ); |
| 122 | WRITE16_DEVICE_HANDLER( apollo_mem_w ); |
| 123 | |
| 124 | // color control |
| 123 | 125 | READ8_DEVICE_HANDLER( apollo_ccr_r ); |
| 124 | 126 | WRITE8_DEVICE_HANDLER( apollo_ccr_w ); |
| 125 | 127 | |
| 126 | 128 | UINT32 screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 127 | 129 | void vblank_state_changed(device_t *device, screen_device &screen, bool vblank_state); |
| 128 | 130 | |
| 131 | int is_mono() { return m_n_planes == 1; } |
| 132 | |
| 129 | 133 | private: |
| 130 | 134 | class lut_fifo; |
| 131 | 135 | class bt458; |
| r24022 | r24023 | |
| 1368 | 1372 | Color graphics memory space at A0000 - BFFFF |
| 1369 | 1373 | ***************************************************************************/ |
| 1370 | 1374 | |
| 1371 | | READ16_DEVICE_HANDLER( apollo_graphics::apollo_mgm_r ) |
| 1375 | READ16_DEVICE_HANDLER( apollo_graphics::apollo_mem_r ) |
| 1372 | 1376 | { |
| 1373 | 1377 | UINT16 data; |
| 1374 | 1378 | UINT32 src_addr; |
| r24022 | r24023 | |
| 1407 | 1411 | return data; |
| 1408 | 1412 | } |
| 1409 | 1413 | |
| 1410 | | WRITE16_DEVICE_HANDLER( apollo_graphics::apollo_mgm_w ) |
| 1414 | WRITE16_DEVICE_HANDLER( apollo_graphics::apollo_mem_w ) |
| 1411 | 1415 | { |
| 1412 | 1416 | UINT32 dest_addr; |
| 1413 | 1417 | UINT32 src_addr; |
| r24022 | r24023 | |
| 1892 | 1896 | |
| 1893 | 1897 | READ16_DEVICE_HANDLER( apollo_cgm_r ) |
| 1894 | 1898 | { |
| 1895 | | if (!apollo_config(APOLLO_CONF_MONO_15I)) |
| 1899 | apollo_graphics *apollo_graphics = get_safe_token(device); |
| 1900 | if (!apollo_graphics->is_mono()) |
| 1896 | 1901 | { |
| 1897 | | return apollo_mgm_r(device, space, offset, mem_mask); |
| 1902 | return apollo_graphics->apollo_mem_r(device, space, offset, mem_mask); |
| 1898 | 1903 | } |
| 1899 | 1904 | else |
| 1900 | 1905 | { |
| r24022 | r24023 | |
| 1904 | 1909 | |
| 1905 | 1910 | WRITE16_DEVICE_HANDLER( apollo_cgm_w ) |
| 1906 | 1911 | { |
| 1907 | | if (!apollo_config(APOLLO_CONF_MONO_15I)) |
| 1912 | apollo_graphics *apollo_graphics = get_safe_token(device); |
| 1913 | if (!apollo_graphics->is_mono()) |
| 1908 | 1914 | { |
| 1909 | | apollo_mgm_w(device, space, offset, data, mem_mask); |
| 1915 | apollo_graphics->apollo_mem_w(device, space, offset, data, mem_mask); |
| 1910 | 1916 | } |
| 1911 | 1917 | } |
| 1912 | 1918 | |
| r24022 | r24023 | |
| 2261 | 2267 | READ16_DEVICE_HANDLER( apollo_mgm_r ) |
| 2262 | 2268 | { |
| 2263 | 2269 | apollo_graphics *apollo_graphics = get_safe_token(device); |
| 2264 | | return apollo_graphics->apollo_mgm_r(device, space, offset, mem_mask); |
| 2270 | if (apollo_graphics->is_mono()) |
| 2271 | { |
| 2272 | return apollo_graphics->apollo_mem_r(device, space, offset, mem_mask); |
| 2273 | } |
| 2274 | else |
| 2275 | { |
| 2276 | return 0xffff; |
| 2277 | } |
| 2265 | 2278 | } |
| 2266 | 2279 | |
| 2267 | 2280 | WRITE16_DEVICE_HANDLER( apollo_mgm_w ) |
| 2268 | 2281 | { |
| 2269 | 2282 | apollo_graphics *apollo_graphics = get_safe_token(device); |
| 2270 | | apollo_graphics->apollo_mgm_w(device, space, offset, data, mem_mask); |
| 2283 | if (apollo_graphics->is_mono()) |
| 2284 | { |
| 2285 | apollo_graphics->apollo_mem_w(device, space, offset, data, mem_mask); |
| 2286 | } |
| 2271 | 2287 | } |