trunk/src/mess/drivers/compucolor.c
r248559 | r248560 | |
40 | 40 | m_maincpu(*this, I8080_TAG), |
41 | 41 | m_mioc(*this, TMS5501_TAG), |
42 | 42 | m_vtac(*this, CRT5027_TAG), |
| 43 | m_palette(*this, "palette"), |
43 | 44 | m_rs232(*this, RS232_TAG), |
44 | 45 | m_floppy0(*this, "cd0"), |
45 | 46 | m_floppy1(*this, "cd1"), |
r248559 | r248560 | |
67 | 68 | required_device<cpu_device> m_maincpu; |
68 | 69 | required_device<tms5501_device> m_mioc; |
69 | 70 | required_device<crt5027_device> m_vtac; |
| 71 | required_device<palette_device> m_palette; |
70 | 72 | required_device<rs232_port_device> m_rs232; |
71 | 73 | required_device<compucolor_floppy_port_device> m_floppy0; |
72 | 74 | required_device<compucolor_floppy_port_device> m_floppy1; |
r248559 | r248560 | |
92 | 94 | |
93 | 95 | virtual void machine_start(); |
94 | 96 | virtual void machine_reset(); |
95 | | DECLARE_PALETTE_INIT(compucolor2); |
96 | 97 | |
97 | 98 | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
98 | 99 | |
r248559 | r248560 | |
102 | 103 | |
103 | 104 | IRQ_CALLBACK_MEMBER( int_ack ); |
104 | 105 | |
105 | | rgb_t m_palette[8]; |
106 | | |
107 | 106 | UINT8 m_xo; |
108 | 107 | }; |
109 | 108 | |
r248559 | r248560 | |
305 | 304 | |
306 | 305 | UINT8 data = m_char_rom->base()[char_offs]; |
307 | 306 | |
308 | | rgb_t fg = m_palette[attr & 0x07]; |
309 | | rgb_t bg = m_palette[(attr >> 3) & 0x07]; |
| 307 | rgb_t fg = m_palette->pen_color(attr & 0x07); |
| 308 | rgb_t bg = m_palette->pen_color((attr >> 3) & 0x07); |
310 | 309 | |
311 | 310 | for (int x = 0; x < 6; x++) |
312 | 311 | { |
r248559 | r248560 | |
434 | 433 | m_rs232->write_dtr(1); |
435 | 434 | } |
436 | 435 | |
437 | | PALETTE_INIT_MEMBER(compucolor2_state, compucolor2) |
438 | | { |
439 | | for (int i = 0; i < 8; i++) |
440 | | { |
441 | | m_palette[i] = rgb_t(BIT(i, 0) * 0xff, BIT(i, 1) * 0xff, BIT(i, 2) * 0xff); |
442 | | } |
443 | | } |
444 | | |
445 | 436 | static MACHINE_CONFIG_START( compucolor2, compucolor2_state ) |
446 | 437 | // basic machine hardware |
447 | 438 | MCFG_CPU_ADD(I8080_TAG, I8080, XTAL_17_9712MHz/9) |
r248559 | r248560 | |
449 | 440 | MCFG_CPU_IO_MAP(compucolor2_io) |
450 | 441 | MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(compucolor2_state,int_ack) |
451 | 442 | |
452 | | MCFG_PALETTE_ADD("palette", 8) |
453 | | MCFG_PALETTE_INIT_OWNER(compucolor2_state, compucolor2) |
454 | | |
455 | 443 | // video hardware |
456 | 444 | MCFG_SCREEN_ADD("screen", RASTER) |
457 | 445 | MCFG_SCREEN_REFRESH_RATE(60) |
r248559 | r248560 | |
460 | 448 | MCFG_SCREEN_SIZE(64*6, 32*8) |
461 | 449 | MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1) |
462 | 450 | |
| 451 | MCFG_PALETTE_ADD_3BIT_RGB("palette") |
| 452 | |
463 | 453 | MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL_17_9712MHz/2) |
464 | 454 | MCFG_TMS9927_CHAR_WIDTH(6) |
465 | 455 | MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w)) |