trunk/src/mess/drivers/qx10.c
| r19067 | r19068 | |
| 67 | 67 | m_fdc(*this, "upd765"), |
| 68 | 68 | m_hgdc(*this, "upd7220"), |
| 69 | 69 | m_rtc(*this, "rtc"), |
| 70 | | m_vram_bank(0), |
| 71 | | m_video_ram(*this, "video_ram"){ } |
| 70 | m_vram_bank(0) |
| 71 | { } |
| 72 | 72 | |
| 73 | 73 | required_device<device_t> m_pit_1; |
| 74 | 74 | required_device<device_t> m_pit_2; |
| r19067 | r19068 | |
| 82 | 82 | required_device<upd7220_device> m_hgdc; |
| 83 | 83 | required_device<mc146818_device> m_rtc; |
| 84 | 84 | UINT8 m_vram_bank; |
| 85 | | required_shared_ptr<UINT8> m_video_ram; |
| 85 | //required_shared_ptr<UINT8> m_video_ram; |
| 86 | UINT8 *m_video_ram; |
| 86 | 87 | |
| 88 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 89 | |
| 87 | 90 | virtual void machine_start(); |
| 88 | 91 | virtual void machine_reset(); |
| 89 | 92 | |
| r19067 | r19068 | |
| 156 | 159 | |
| 157 | 160 | if(state->m_color_mode) |
| 158 | 161 | { |
| 159 | | gfx[0] = state->m_video_ram[(address * 2) + 0x00000]; |
| 160 | | gfx[1] = state->m_video_ram[(address * 2) + 0x20000]; |
| 161 | | gfx[2] = state->m_video_ram[(address * 2) + 0x40000]; |
| 162 | gfx[0] = state->m_video_ram[(address) + 0x00000]; |
| 163 | gfx[1] = state->m_video_ram[(address) + 0x20000]; |
| 164 | gfx[2] = state->m_video_ram[(address) + 0x40000]; |
| 162 | 165 | } |
| 163 | 166 | else |
| 164 | 167 | { |
| r19067 | r19068 | |
| 230 | 233 | } |
| 231 | 234 | } |
| 232 | 235 | |
| 236 | UINT32 qx10_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| 237 | { |
| 238 | bitmap.fill(get_black_pen(machine()), cliprect); |
| 239 | |
| 240 | m_hgdc->screen_update(screen, bitmap, cliprect); |
| 241 | |
| 242 | return 0; |
| 243 | } |
| 244 | |
| 233 | 245 | /* |
| 234 | 246 | Memory |
| 235 | 247 | */ |
| r19067 | r19068 | |
| 963 | 975 | void qx10_state::video_start() |
| 964 | 976 | { |
| 965 | 977 | // allocate memory |
| 966 | | //m_video_ram = auto_alloc_array_clear(machine(), UINT8, 0x60000); |
| 978 | m_video_ram = auto_alloc_array_clear(machine(), UINT8, 0x60000); |
| 967 | 979 | |
| 968 | 980 | // find memory regions |
| 969 | 981 | m_char_rom = memregion("chargen")->base(); |
| r19067 | r19068 | |
| 1007 | 1019 | } |
| 1008 | 1020 | |
| 1009 | 1021 | static ADDRESS_MAP_START( upd7220_map, AS_0, 8, qx10_state ) |
| 1010 | | ADDRESS_MAP_GLOBAL_MASK(0x1ffff) |
| 1011 | | AM_RANGE(0x00000, 0x1ffff) AM_RAM AM_SHARE("video_ram") |
| 1022 | AM_RANGE(0x00000, 0x5ffff) AM_READWRITE(vram_r,vram_w) |
| 1012 | 1023 | ADDRESS_MAP_END |
| 1013 | 1024 | |
| 1014 | 1025 | |
| r19067 | r19068 | |
| 1022 | 1033 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1023 | 1034 | MCFG_SCREEN_REFRESH_RATE(50) |
| 1024 | 1035 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 1025 | | MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) |
| 1036 | MCFG_SCREEN_UPDATE_DRIVER(qx10_state, screen_update) |
| 1026 | 1037 | MCFG_SCREEN_SIZE(640, 480) |
| 1027 | 1038 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
| 1028 | 1039 | MCFG_GFXDECODE(qx10) |
trunk/src/mess/drivers/apc.c
| r19067 | r19068 | |
| 167 | 167 | |
| 168 | 168 | UINT32 apc_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| 169 | 169 | { |
| 170 | | bitmap.fill(0, cliprect); |
| 170 | bitmap.fill(get_black_pen(machine()), cliprect); |
| 171 | 171 | |
| 172 | 172 | /* graphics */ |
| 173 | 173 | m_hgdc2->screen_update(screen, bitmap, cliprect); |
| r19067 | r19068 | |
| 248 | 248 | else |
| 249 | 249 | pen = (tile_data >> (xi) & 1) ? color : 0; |
| 250 | 250 | |
| 251 | | //if(pen) |
| 251 | if(pen) |
| 252 | 252 | bitmap.pix16(res_y, res_x) = pen; |
| 253 | 253 | |
| 254 | 254 | // if(state->m_video_ff[WIDTH40_REG]) |