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