trunk/src/mess/audio/mos7360.c
| r17717 | r17718 | |
| 96 | 96 | return (int)(d * clock()); |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | | static const UINT8 PALETTE[] = |
| 99 | static const rgb_t PALETTE[] = |
| 100 | 100 | { |
| 101 | 101 | /* black, white, red, cyan */ |
| 102 | 102 | /* purple, green, blue, yellow */ |
| r17717 | r17718 | |
| 104 | 104 | /* light violett, light green, light blue, light yellow */ |
| 105 | 105 | /* these 16 colors are 8 times here in different luminance (dark..light) */ |
| 106 | 106 | /* taken from digitized tv screenshot */ |
| 107 | | 0x06, 0x01, 0x03, 0x2b, 0x2b, 0x2b, 0x67, 0x0e, 0x0f, 0x00, 0x3f, 0x42, |
| 108 | | 0x57, 0x00, 0x6d, 0x00, 0x4e, 0x00, 0x19, 0x1c, 0x94, 0x38, 0x38, 0x00, |
| 109 | | 0x56, 0x20, 0x00, 0x4b, 0x28, 0x00, 0x16, 0x48, 0x00, 0x69, 0x07, 0x2f, |
| 110 | | 0x00, 0x46, 0x26, 0x06, 0x2a, 0x80, 0x2a, 0x14, 0x9b, 0x0b, 0x49, 0x00, |
| 107 | MAKE_RGB(0x06, 0x01, 0x03), MAKE_RGB(0x2b, 0x2b, 0x2b), MAKE_RGB(0x67, 0x0e, 0x0f), MAKE_RGB(0x00, 0x3f, 0x42), |
| 108 | MAKE_RGB(0x57, 0x00, 0x6d), MAKE_RGB(0x00, 0x4e, 0x00), MAKE_RGB(0x19, 0x1c, 0x94), MAKE_RGB(0x38, 0x38, 0x00), |
| 109 | MAKE_RGB(0x56, 0x20, 0x00), MAKE_RGB(0x4b, 0x28, 0x00), MAKE_RGB(0x16, 0x48, 0x00), MAKE_RGB(0x69, 0x07, 0x2f), |
| 110 | MAKE_RGB(0x00, 0x46, 0x26), MAKE_RGB(0x06, 0x2a, 0x80), MAKE_RGB(0x2a, 0x14, 0x9b), MAKE_RGB(0x0b, 0x49, 0x00), |
| 111 | 111 | |
| 112 | | 0x00, 0x03, 0x02, 0x3d, 0x3d, 0x3d, 0x75, 0x1e, 0x20, 0x00, 0x50, 0x4f, |
| 113 | | 0x6a, 0x10, 0x78, 0x04, 0x5c, 0x00, 0x2a, 0x2a, 0xa3, 0x4c, 0x47, 0x00, |
| 114 | | 0x69, 0x2f, 0x00, 0x59, 0x38, 0x00, 0x26, 0x56, 0x00, 0x75, 0x15, 0x41, |
| 115 | | 0x00, 0x58, 0x3d, 0x15, 0x3d, 0x8f, 0x39, 0x22, 0xae, 0x19, 0x59, 0x00, |
| 112 | MAKE_RGB(0x00, 0x03, 0x02), MAKE_RGB(0x3d, 0x3d, 0x3d), MAKE_RGB(0x75, 0x1e, 0x20), MAKE_RGB(0x00, 0x50, 0x4f), |
| 113 | MAKE_RGB(0x6a, 0x10, 0x78), MAKE_RGB(0x04, 0x5c, 0x00), MAKE_RGB(0x2a, 0x2a, 0xa3), MAKE_RGB(0x4c, 0x47, 0x00), |
| 114 | MAKE_RGB(0x69, 0x2f, 0x00), MAKE_RGB(0x59, 0x38, 0x00), MAKE_RGB(0x26, 0x56, 0x00), MAKE_RGB(0x75, 0x15, 0x41), |
| 115 | MAKE_RGB(0x00, 0x58, 0x3d), MAKE_RGB(0x15, 0x3d, 0x8f), MAKE_RGB(0x39, 0x22, 0xae), MAKE_RGB(0x19, 0x59, 0x00), |
| 116 | 116 | |
| 117 | | 0x00, 0x03, 0x04, 0x42, 0x42, 0x42, 0x7b, 0x28, 0x20, 0x02, 0x56, 0x59, |
| 118 | | 0x6f, 0x1a, 0x82, 0x0a, 0x65, 0x09, 0x30, 0x34, 0xa7, 0x50, 0x51, 0x00, |
| 119 | | 0x6e, 0x36, 0x00, 0x65, 0x40, 0x00, 0x2c, 0x5c, 0x00, 0x7d, 0x1e, 0x45, |
| 120 | | 0x01, 0x61, 0x45, 0x1c, 0x45, 0x99, 0x42, 0x2d, 0xad, 0x1d, 0x62, 0x00, |
| 117 | MAKE_RGB(0x00, 0x03, 0x04), MAKE_RGB(0x42, 0x42, 0x42), MAKE_RGB(0x7b, 0x28, 0x20), MAKE_RGB(0x02, 0x56, 0x59), |
| 118 | MAKE_RGB(0x6f, 0x1a, 0x82), MAKE_RGB(0x0a, 0x65, 0x09), MAKE_RGB(0x30, 0x34, 0xa7), MAKE_RGB(0x50, 0x51, 0x00), |
| 119 | MAKE_RGB(0x6e, 0x36, 0x00), MAKE_RGB(0x65, 0x40, 0x00), MAKE_RGB(0x2c, 0x5c, 0x00), MAKE_RGB(0x7d, 0x1e, 0x45), |
| 120 | MAKE_RGB(0x01, 0x61, 0x45), MAKE_RGB(0x1c, 0x45, 0x99), MAKE_RGB(0x42, 0x2d, 0xad), MAKE_RGB(0x1d, 0x62, 0x00), |
| 121 | 121 | |
| 122 | | 0x05, 0x00, 0x02, 0x56, 0x55, 0x5a, 0x90, 0x3c, 0x3b, 0x17, 0x6d, 0x72, |
| 123 | | 0x87, 0x2d, 0x99, 0x1f, 0x7b, 0x15, 0x46, 0x49, 0xc1, 0x66, 0x63, 0x00, |
| 124 | | 0x84, 0x4c, 0x0d, 0x73, 0x55, 0x00, 0x40, 0x72, 0x00, 0x91, 0x33, 0x5e, |
| 125 | | 0x19, 0x74, 0x5c, 0x32, 0x59, 0xae, 0x59, 0x3f, 0xc3, 0x32, 0x76, 0x00, |
| 122 | MAKE_RGB(0x05, 0x00, 0x02), MAKE_RGB(0x56, 0x55, 0x5a), MAKE_RGB(0x90, 0x3c, 0x3b), MAKE_RGB(0x17, 0x6d, 0x72), |
| 123 | MAKE_RGB(0x87, 0x2d, 0x99), MAKE_RGB(0x1f, 0x7b, 0x15), MAKE_RGB(0x46, 0x49, 0xc1), MAKE_RGB(0x66, 0x63, 0x00), |
| 124 | MAKE_RGB(0x84, 0x4c, 0x0d), MAKE_RGB(0x73, 0x55, 0x00), MAKE_RGB(0x40, 0x72, 0x00), MAKE_RGB(0x91, 0x33, 0x5e), |
| 125 | MAKE_RGB(0x19, 0x74, 0x5c), MAKE_RGB(0x32, 0x59, 0xae), MAKE_RGB(0x59, 0x3f, 0xc3), MAKE_RGB(0x32, 0x76, 0x00), |
| 126 | 126 | |
| 127 | | 0x02, 0x01, 0x06, 0x84, 0x7e, 0x85, 0xbb, 0x67, 0x68, 0x45, 0x96, 0x96, |
| 128 | | 0xaf, 0x58, 0xc3, 0x4a, 0xa7, 0x3e, 0x73, 0x73, 0xec, 0x92, 0x8d, 0x11, |
| 129 | | 0xaf, 0x78, 0x32, 0xa1, 0x80, 0x20, 0x6c, 0x9e, 0x12, 0xba, 0x5f, 0x89, |
| 130 | | 0x46, 0x9f, 0x83, 0x61, 0x85, 0xdd, 0x84, 0x6c, 0xef, 0x5d, 0xa3, 0x29, |
| 127 | MAKE_RGB(0x02, 0x01, 0x06), MAKE_RGB(0x84, 0x7e, 0x85), MAKE_RGB(0xbb, 0x67, 0x68), MAKE_RGB(0x45, 0x96, 0x96), |
| 128 | MAKE_RGB(0xaf, 0x58, 0xc3), MAKE_RGB(0x4a, 0xa7, 0x3e), MAKE_RGB(0x73, 0x73, 0xec), MAKE_RGB(0x92, 0x8d, 0x11), |
| 129 | MAKE_RGB(0xaf, 0x78, 0x32), MAKE_RGB(0xa1, 0x80, 0x20), MAKE_RGB(0x6c, 0x9e, 0x12), MAKE_RGB(0xba, 0x5f, 0x89), |
| 130 | MAKE_RGB(0x46, 0x9f, 0x83), MAKE_RGB(0x61, 0x85, 0xdd), MAKE_RGB(0x84, 0x6c, 0xef), MAKE_RGB(0x5d, 0xa3, 0x29), |
| 131 | 131 | |
| 132 | | 0x02, 0x00, 0x0a, 0xb2, 0xac, 0xb3, 0xe9, 0x92, 0x92, 0x6c, 0xc3, 0xc1, |
| 133 | | 0xd9, 0x86, 0xf0, 0x79, 0xd1, 0x76, 0x9d, 0xa1, 0xff, 0xbd, 0xbe, 0x40, |
| 134 | | 0xdc, 0xa2, 0x61, 0xd1, 0xa9, 0x4c, 0x93, 0xc8, 0x3d, 0xe9, 0x8a, 0xb1, |
| 135 | | 0x6f, 0xcd, 0xab, 0x8a, 0xb4, 0xff, 0xb2, 0x9a, 0xff, 0x88, 0xcb, 0x59, |
| 132 | MAKE_RGB(0x02, 0x00, 0x0a), MAKE_RGB(0xb2, 0xac, 0xb3), MAKE_RGB(0xe9, 0x92, 0x92), MAKE_RGB(0x6c, 0xc3, 0xc1), |
| 133 | MAKE_RGB(0xd9, 0x86, 0xf0), MAKE_RGB(0x79, 0xd1, 0x76), MAKE_RGB(0x9d, 0xa1, 0xff), MAKE_RGB(0xbd, 0xbe, 0x40), |
| 134 | MAKE_RGB(0xdc, 0xa2, 0x61), MAKE_RGB(0xd1, 0xa9, 0x4c), MAKE_RGB(0x93, 0xc8, 0x3d), MAKE_RGB(0xe9, 0x8a, 0xb1), |
| 135 | MAKE_RGB(0x6f, 0xcd, 0xab), MAKE_RGB(0x8a, 0xb4, 0xff), MAKE_RGB(0xb2, 0x9a, 0xff), MAKE_RGB(0x88, 0xcb, 0x59), |
| 136 | 136 | |
| 137 | | 0x02, 0x00, 0x0a, 0xc7, 0xca, 0xc9, 0xff, 0xac, 0xac, 0x85, 0xd8, 0xe0, |
| 138 | | 0xf3, 0x9c, 0xff, 0x92, 0xea, 0x8a, 0xb7, 0xba, 0xff, 0xd6, 0xd3, 0x5b, |
| 139 | | 0xf3, 0xbe, 0x79, 0xe6, 0xc5, 0x65, 0xb0, 0xe0, 0x57, 0xff, 0xa4, 0xcf, |
| 140 | | 0x89, 0xe5, 0xc8, 0xa4, 0xca, 0xff, 0xca, 0xb3, 0xff, 0xa2, 0xe5, 0x7a, |
| 137 | MAKE_RGB(0x02, 0x00, 0x0a), MAKE_RGB(0xc7, 0xca, 0xc9), MAKE_RGB(0xff, 0xac, 0xac), MAKE_RGB(0x85, 0xd8, 0xe0), |
| 138 | MAKE_RGB(0xf3, 0x9c, 0xff), MAKE_RGB(0x92, 0xea, 0x8a), MAKE_RGB(0xb7, 0xba, 0xff), MAKE_RGB(0xd6, 0xd3, 0x5b), |
| 139 | MAKE_RGB(0xf3, 0xbe, 0x79), MAKE_RGB(0xe6, 0xc5, 0x65), MAKE_RGB(0xb0, 0xe0, 0x57), MAKE_RGB(0xff, 0xa4, 0xcf), |
| 140 | MAKE_RGB(0x89, 0xe5, 0xc8), MAKE_RGB(0xa4, 0xca, 0xff), MAKE_RGB(0xca, 0xb3, 0xff), MAKE_RGB(0xa2, 0xe5, 0x7a), |
| 141 | 141 | |
| 142 | | 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf2, 0xd1, 0xff, 0xff, |
| 143 | | 0xff, 0xe9, 0xff, 0xdb, 0xff, 0xd3, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xa3, |
| 144 | | 0xff, 0xff, 0xc1, 0xff, 0xff, 0xb2, 0xfc, 0xff, 0xa2, 0xff, 0xee, 0xff, |
| 145 | | 0xd1, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xed, 0xff, 0xbc |
| 142 | MAKE_RGB(0x01, 0x01, 0x01), MAKE_RGB(0xff, 0xff, 0xff), MAKE_RGB(0xff, 0xf6, 0xf2), MAKE_RGB(0xd1, 0xff, 0xff), |
| 143 | MAKE_RGB(0xff, 0xe9, 0xff), MAKE_RGB(0xdb, 0xff, 0xd3), MAKE_RGB(0xfd, 0xff, 0xff), MAKE_RGB(0xff, 0xff, 0xa3), |
| 144 | MAKE_RGB(0xff, 0xff, 0xc1), MAKE_RGB(0xff, 0xff, 0xb2), MAKE_RGB(0xfc, 0xff, 0xa2), MAKE_RGB(0xff, 0xee, 0xff), |
| 145 | MAKE_RGB(0xd1, 0xff, 0xff), MAKE_RGB(0xeb, 0xff, 0xff), MAKE_RGB(0xff, 0xf8, 0xff), MAKE_RGB(0xed, 0xff, 0xbc) |
| 146 | 146 | }; |
| 147 | 147 | |
| 148 | 148 | |
| r17717 | r17718 | |
| 321 | 321 | m_timer2 = timer_alloc(TIMER_ID_2); |
| 322 | 322 | m_timer3 = timer_alloc(TIMER_ID_3); |
| 323 | 323 | |
| 324 | | // initialize palette |
| 325 | | initialize_palette(); |
| 326 | | |
| 327 | 324 | // allocate screen bitmap |
| 328 | 325 | m_screen->register_screen_bitmap(m_bitmap); |
| 329 | 326 | |
| r17717 | r17718 | |
| 445 | 442 | |
| 446 | 443 | |
| 447 | 444 | //------------------------------------------------- |
| 448 | | // initialize_palette - initialize palette |
| 449 | | //------------------------------------------------- |
| 450 | | |
| 451 | | void mos7360_device::initialize_palette() |
| 452 | | { |
| 453 | | int i; |
| 454 | | |
| 455 | | for (i = 0; i < sizeof(PALETTE) / 3; i++) |
| 456 | | palette_set_color_rgb(machine(), i, PALETTE[i * 3], PALETTE[i * 3 + 1], PALETTE[i * 3 + 2]); |
| 457 | | } |
| 458 | | |
| 459 | | |
| 460 | | //------------------------------------------------- |
| 461 | 445 | // sound_stream_update - handle update requests for |
| 462 | 446 | // our sound stream |
| 463 | 447 | //------------------------------------------------- |
| r17717 | r17718 | |
| 526 | 510 | else |
| 527 | 511 | code = read_ram(m_chargenaddr + ch * 8 + y); |
| 528 | 512 | |
| 529 | | m_bitmap.pix16(y + yoff, 0 + xoff) = color[code >> 7]; |
| 530 | | m_bitmap.pix16(y + yoff, 1 + xoff) = color[(code >> 6) & 1]; |
| 531 | | m_bitmap.pix16(y + yoff, 2 + xoff) = color[(code >> 5) & 1]; |
| 532 | | m_bitmap.pix16(y + yoff, 3 + xoff) = color[(code >> 4) & 1]; |
| 533 | | m_bitmap.pix16(y + yoff, 4 + xoff) = color[(code >> 3) & 1]; |
| 534 | | m_bitmap.pix16(y + yoff, 5 + xoff) = color[(code >> 2) & 1]; |
| 535 | | m_bitmap.pix16(y + yoff, 6 + xoff) = color[(code >> 1) & 1]; |
| 536 | | m_bitmap.pix16(y + yoff, 7 + xoff) = color[code & 1]; |
| 513 | m_bitmap.pix32(y + yoff, 0 + xoff) = PALETTE[color[code >> 7]]; |
| 514 | m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[color[(code >> 6) & 1]]; |
| 515 | m_bitmap.pix32(y + yoff, 2 + xoff) = PALETTE[color[(code >> 5) & 1]]; |
| 516 | m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[color[(code >> 4) & 1]]; |
| 517 | m_bitmap.pix32(y + yoff, 4 + xoff) = PALETTE[color[(code >> 3) & 1]]; |
| 518 | m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[color[(code >> 2) & 1]]; |
| 519 | m_bitmap.pix32(y + yoff, 6 + xoff) = PALETTE[color[(code >> 1) & 1]]; |
| 520 | m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[color[code & 1]]; |
| 537 | 521 | } |
| 538 | 522 | } |
| 539 | 523 | |
| r17717 | r17718 | |
| 548 | 532 | else |
| 549 | 533 | code = read_ram(m_chargenaddr + ch * 8 + y); |
| 550 | 534 | |
| 551 | | m_bitmap.pix16(y + yoff, 0 + xoff) = |
| 552 | | m_bitmap.pix16(y + yoff, 1 + xoff) = m_multi[code >> 6]; |
| 553 | | m_bitmap.pix16(y + yoff, 2 + xoff) = |
| 554 | | m_bitmap.pix16(y + yoff, 3 + xoff) = m_multi[(code >> 4) & 3]; |
| 555 | | m_bitmap.pix16(y + yoff, 4 + xoff) = |
| 556 | | m_bitmap.pix16(y + yoff, 5 + xoff) = m_multi[(code >> 2) & 3]; |
| 557 | | m_bitmap.pix16(y + yoff, 6 + xoff) = |
| 558 | | m_bitmap.pix16(y + yoff, 7 + xoff) = m_multi[code & 3]; |
| 535 | m_bitmap.pix32(y + yoff, 0 + xoff) = |
| 536 | m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_multi[code >> 6]]; |
| 537 | m_bitmap.pix32(y + yoff, 2 + xoff) = |
| 538 | m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_multi[(code >> 4) & 3]]; |
| 539 | m_bitmap.pix32(y + yoff, 4 + xoff) = |
| 540 | m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_multi[(code >> 2) & 3]]; |
| 541 | m_bitmap.pix32(y + yoff, 6 + xoff) = |
| 542 | m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_multi[code & 3]]; |
| 559 | 543 | } |
| 560 | 544 | } |
| 561 | 545 | |
| r17717 | r17718 | |
| 567 | 551 | { |
| 568 | 552 | code = read_ram(m_bitmapaddr + ch * 8 + y); |
| 569 | 553 | |
| 570 | | m_bitmap.pix16(y + yoff, 0 + xoff) = m_c16_bitmap[code >> 7]; |
| 571 | | m_bitmap.pix16(y + yoff, 1 + xoff) = m_c16_bitmap[(code >> 6) & 1]; |
| 572 | | m_bitmap.pix16(y + yoff, 2 + xoff) = m_c16_bitmap[(code >> 5) & 1]; |
| 573 | | m_bitmap.pix16(y + yoff, 3 + xoff) = m_c16_bitmap[(code >> 4) & 1]; |
| 574 | | m_bitmap.pix16(y + yoff, 4 + xoff) = m_c16_bitmap[(code >> 3) & 1]; |
| 575 | | m_bitmap.pix16(y + yoff, 5 + xoff) = m_c16_bitmap[(code >> 2) & 1]; |
| 576 | | m_bitmap.pix16(y + yoff, 6 + xoff) = m_c16_bitmap[(code >> 1) & 1]; |
| 577 | | m_bitmap.pix16(y + yoff, 7 + xoff) = m_c16_bitmap[code & 1]; |
| 554 | m_bitmap.pix32(y + yoff, 0 + xoff) = PALETTE[m_c16_bitmap[code >> 7]]; |
| 555 | m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_c16_bitmap[(code >> 6) & 1]]; |
| 556 | m_bitmap.pix32(y + yoff, 2 + xoff) = PALETTE[m_c16_bitmap[(code >> 5) & 1]]; |
| 557 | m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_c16_bitmap[(code >> 4) & 1]]; |
| 558 | m_bitmap.pix32(y + yoff, 4 + xoff) = PALETTE[m_c16_bitmap[(code >> 3) & 1]]; |
| 559 | m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_c16_bitmap[(code >> 2) & 1]]; |
| 560 | m_bitmap.pix32(y + yoff, 6 + xoff) = PALETTE[m_c16_bitmap[(code >> 1) & 1]]; |
| 561 | m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_c16_bitmap[code & 1]]; |
| 578 | 562 | } |
| 579 | 563 | } |
| 580 | 564 | |
| r17717 | r17718 | |
| 586 | 570 | { |
| 587 | 571 | code = read_ram(m_bitmapaddr + ch * 8 + y); |
| 588 | 572 | |
| 589 | | m_bitmap.pix16(y + yoff, 0 + xoff) = |
| 590 | | m_bitmap.pix16(y + yoff, 1 + xoff) = m_bitmapmulti[code >> 6]; |
| 591 | | m_bitmap.pix16(y + yoff, 2 + xoff) = |
| 592 | | m_bitmap.pix16(y + yoff, 3 + xoff) = m_bitmapmulti[(code >> 4) & 3]; |
| 593 | | m_bitmap.pix16(y + yoff, 4 + xoff) = |
| 594 | | m_bitmap.pix16(y + yoff, 5 + xoff) = m_bitmapmulti[(code >> 2) & 3]; |
| 595 | | m_bitmap.pix16(y + yoff, 6 + xoff) = |
| 596 | | m_bitmap.pix16(y + yoff, 7 + xoff) = m_bitmapmulti[code & 3]; |
| 573 | m_bitmap.pix32(y + yoff, 0 + xoff) = |
| 574 | m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_bitmapmulti[code >> 6]]; |
| 575 | m_bitmap.pix32(y + yoff, 2 + xoff) = |
| 576 | m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_bitmapmulti[(code >> 4) & 3]]; |
| 577 | m_bitmap.pix32(y + yoff, 4 + xoff) = |
| 578 | m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_bitmapmulti[(code >> 2) & 3]]; |
| 579 | m_bitmap.pix32(y + yoff, 6 + xoff) = |
| 580 | m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_bitmapmulti[code & 3]]; |
| 597 | 581 | } |
| 598 | 582 | } |
| 599 | 583 | |
| 600 | | #ifndef memset16 |
| 601 | | static void *memset16 (void *dest, int value, size_t size) |
| 602 | | { |
| 603 | | register int i; |
| 604 | | |
| 605 | | for (i = 0; i < size; i++) |
| 606 | | ((short *) dest)[i] = value; |
| 607 | | return dest; |
| 608 | | } |
| 609 | | #endif |
| 610 | | |
| 611 | 584 | void mos7360_device::draw_cursor(int ybegin, int yend, int yoff, int xoff, int color) |
| 612 | 585 | { |
| 613 | 586 | int y; |
| 614 | 587 | |
| 615 | 588 | for (y = ybegin; y <= yend; y++) |
| 616 | 589 | { |
| 617 | | memset16(&m_bitmap.pix16(yoff + y, xoff), color, 8); |
| 590 | for (int x = 0; x < 8; x++) |
| 591 | { |
| 592 | m_bitmap.pix32(y + yoff, x + xoff) = PALETTE[color]; |
| 593 | } |
| 618 | 594 | } |
| 619 | 595 | } |
| 620 | 596 | |
| r17717 | r17718 | |
| 638 | 614 | if (!SCREENON) |
| 639 | 615 | { |
| 640 | 616 | for (line = first; (line < last) && (line < m_bitmap.height()); line++) |
| 641 | | memset16(&m_bitmap.pix16(line), 0, m_bitmap.width()); |
| 617 | { |
| 618 | for (int x = 0; x < m_bitmap.width(); x++) |
| 619 | { |
| 620 | m_bitmap.pix32(line, x) = PALETTE[0]; |
| 621 | } |
| 622 | } |
| 642 | 623 | return; |
| 643 | 624 | } |
| 644 | 625 | |
| r17717 | r17718 | |
| 653 | 634 | end = m_y_begin + YPOS; |
| 654 | 635 | { |
| 655 | 636 | for (line = first; line < end; line++) |
| 656 | | memset16(&m_bitmap.pix16(line), FRAMECOLOR, m_bitmap.width()); |
| 637 | { |
| 638 | for (int x = 0; x < m_bitmap.width(); x++) |
| 639 | { |
| 640 | m_bitmap.pix32(line, x) = PALETTE[FRAMECOLOR]; |
| 641 | } |
| 642 | } |
| 657 | 643 | } |
| 658 | 644 | if (LINES25) |
| 659 | 645 | vline = line - m_y_begin - YPOS; |
| r17717 | r17718 | |
| 745 | 731 | |
| 746 | 732 | for (i = ybegin; i <= yend; i++) |
| 747 | 733 | { |
| 748 | | memset16(&m_bitmap.pix16(yoff + i), FRAMECOLOR, xbegin); |
| 749 | | memset16(&m_bitmap.pix16(yoff + i, xend), FRAMECOLOR, m_bitmap.width() - xend); |
| 734 | for (int x = 0; x < xbegin; x++) |
| 735 | { |
| 736 | m_bitmap.pix32(yoff + i, x) = PALETTE[FRAMECOLOR]; |
| 737 | } |
| 738 | |
| 739 | for (int x = xend; x < m_bitmap.width(); x++) |
| 740 | { |
| 741 | m_bitmap.pix32(yoff + i, x) = PALETTE[FRAMECOLOR]; |
| 742 | } |
| 750 | 743 | } |
| 751 | 744 | } |
| 752 | 745 | |
| r17717 | r17718 | |
| 757 | 750 | |
| 758 | 751 | for (; line < end; line++) |
| 759 | 752 | { |
| 760 | | memset16(&m_bitmap.pix16(line), FRAMECOLOR, m_bitmap.width()); |
| 753 | for (int x = 0; x < m_bitmap.width(); x++) |
| 754 | { |
| 755 | m_bitmap.pix32(line, x) = PALETTE[FRAMECOLOR]; |
| 756 | } |
| 761 | 757 | } |
| 762 | 758 | } |
| 763 | 759 | |
| r17717 | r17718 | |
| 1138 | 1134 | // update_screen - update screen |
| 1139 | 1135 | //------------------------------------------------- |
| 1140 | 1136 | |
| 1141 | | UINT32 mos7360_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 1137 | UINT32 mos7360_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 1142 | 1138 | { |
| 1143 | 1139 | copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect); |
| 1144 | 1140 | |