trunk/src/mess/drivers/pc100.c
| r248618 | r248619 | |
| 72 | 72 | m_beeper(*this, "beeper"), |
| 73 | 73 | m_rtc(*this, "rtc"), |
| 74 | 74 | m_palette(*this, "palette"), |
| 75 | | m_palram(*this, "palram"), |
| 76 | 75 | m_kanji_rom(*this, "kanji"), |
| 77 | 76 | m_vram(*this, "vram"), |
| 78 | 77 | m_rtc_portc(0) |
| r248618 | r248619 | |
| 83 | 82 | required_device<beep_device> m_beeper; |
| 84 | 83 | required_device<msm58321_device> m_rtc; |
| 85 | 84 | required_device<palette_device> m_palette; |
| 86 | | required_shared_ptr<UINT16> m_palram; |
| 87 | 85 | required_region_ptr<UINT16> m_kanji_rom; |
| 88 | 86 | required_region_ptr<UINT16> m_vram; |
| 89 | 87 | |
| r248618 | r248619 | |
| 94 | 92 | DECLARE_READ8_MEMBER(pc100_key_r); |
| 95 | 93 | DECLARE_WRITE8_MEMBER(pc100_output_w); |
| 96 | 94 | DECLARE_WRITE8_MEMBER(pc100_tc_w); |
| 97 | | DECLARE_WRITE16_MEMBER(pc100_paletteram_w); |
| 98 | 95 | DECLARE_READ8_MEMBER(pc100_shift_r); |
| 99 | 96 | DECLARE_WRITE8_MEMBER(pc100_shift_w); |
| 100 | 97 | DECLARE_READ8_MEMBER(pc100_vs_vreg_r); |
| r248618 | r248619 | |
| 246 | 243 | machine().device<upd765a_device>("upd765")->tc_w(data & 0x40); |
| 247 | 244 | } |
| 248 | 245 | |
| 249 | | WRITE16_MEMBER( pc100_state::pc100_paletteram_w ) |
| 250 | | { |
| 251 | | COMBINE_DATA(&m_palram[offset]); |
| 252 | | |
| 253 | | { |
| 254 | | int r,g,b; |
| 255 | | |
| 256 | | r = (m_palram[offset] >> 0) & 7; |
| 257 | | g = (m_palram[offset] >> 3) & 7; |
| 258 | | b = (m_palram[offset] >> 6) & 7; |
| 259 | | |
| 260 | | m_palette->set_pen_color(offset, pal3bit(r),pal3bit(g),pal3bit(b)); |
| 261 | | } |
| 262 | | } |
| 263 | | |
| 264 | 246 | READ8_MEMBER( pc100_state::pc100_shift_r ) |
| 265 | 247 | { |
| 266 | 248 | return m_crtc.shift; |
| 267 | 249 | } |
| 268 | 250 | |
| 269 | | |
| 270 | 251 | WRITE8_MEMBER( pc100_state::pc100_shift_w ) |
| 271 | 252 | { |
| 272 | 253 | m_crtc.shift = data & 0xf; |
| r248618 | r248619 | |
| 316 | 297 | AM_RANGE(0x38, 0x39) AM_WRITE8(pc100_crtc_addr_w,0x00ff) //crtc address reg |
| 317 | 298 | AM_RANGE(0x3a, 0x3b) AM_WRITE8(pc100_crtc_data_w,0x00ff) //crtc data reg |
| 318 | 299 | AM_RANGE(0x3c, 0x3f) AM_READWRITE8(pc100_vs_vreg_r,pc100_vs_vreg_w,0x00ff) //crtc vertical start position |
| 319 | | AM_RANGE(0x40, 0x5f) AM_RAM_WRITE(pc100_paletteram_w) AM_SHARE("palram") |
| 300 | AM_RANGE(0x40, 0x5f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 320 | 301 | // AM_RANGE(0x60, 0x61) crtc command (16-bit wide) |
| 321 | 302 | AM_RANGE(0x80, 0x81) AM_READWRITE(pc100_kanji_r,pc100_kanji_w) |
| 322 | 303 | AM_RANGE(0x82, 0x83) AM_WRITENOP //kanji-related? |
| r248618 | r248619 | |
| 514 | 495 | |
| 515 | 496 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", pc100) |
| 516 | 497 | MCFG_PALETTE_ADD("palette", 16) |
| 517 | | // MCFG_PALETTE_INIT(black_and_white) |
| 498 | MCFG_PALETTE_FORMAT(xxxxxxxBBBGGGRRR) |
| 518 | 499 | |
| 519 | 500 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 520 | 501 | |