trunk/src/mess/includes/thomson.h
| r32382 | r32383 | |
| 256 | 256 | TIMER_CALLBACK_MEMBER( thom_set_init ); |
| 257 | 257 | void to770_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 258 | 258 | void mo5_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 259 | void mo5alt_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 259 | 260 | void to9_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 260 | 261 | void bitmap4_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 261 | 262 | void bitmap4alt_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| r32382 | r32383 | |
| 266 | 267 | void page1_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 267 | 268 | void page2_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 268 | 269 | void overlay_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 270 | void overlayhalf_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 269 | 271 | void overlay3_scandraw_16( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 270 | 272 | void to770_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 271 | 273 | void mo5_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 274 | void mo5alt_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 272 | 275 | void to9_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 273 | 276 | void bitmap4_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 274 | 277 | void bitmap4alt_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| r32382 | r32383 | |
| 279 | 282 | void page1_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 280 | 283 | void page2_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 281 | 284 | void overlay_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 285 | void overlayhalf_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 282 | 286 | void overlay3_scandraw_8( UINT8* vram, UINT16* dst, UINT16* pal, int org, int len ); |
| 283 | 287 | void thom_vblank( screen_device &screen, bool state ); |
| 284 | 288 | DECLARE_VIDEO_START( thom ); |
| r32382 | r32383 | |
| 607 | 611 | #define THOM_VMODE_TO9 10 |
| 608 | 612 | #define THOM_VMODE_80_TO9 11 |
| 609 | 613 | #define THOM_VMODE_BITMAP4_ALT_HALF 12 |
| 610 | | #define THOM_VMODE_NB 13 |
| 614 | #define THOM_VMODE_MO5_ALT 13 |
| 615 | #define THOM_VMODE_OVERLAY_HALF 14 |
| 616 | #define THOM_VMODE_NB 15 |
| 611 | 617 | |
| 612 | 618 | |
| 613 | 619 | class to7_io_line_device : public device_t |
trunk/src/mess/video/thomson.c
| r32382 | r32383 | |
| 405 | 405 | END_UPDATE |
| 406 | 406 | |
| 407 | 407 | |
| 408 | /* as mo5, but with pastel bit switched */ |
| 408 | 409 | |
| 410 | UPDATE_HI( mo5alt ) |
| 411 | { |
| 412 | int i; |
| 413 | pen_t c[2]; |
| 414 | c[0] = pal[ (ramb & 15) ^ 8 ]; |
| 415 | c[1] = pal[ (ramb >> 4) ^ 8 ]; |
| 416 | for ( i = 0; i < 16; i += 2, rama >>= 1 ) |
| 417 | dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ]; |
| 418 | } |
| 419 | END_UPDATE |
| 420 | |
| 421 | UPDATE_LOW( mo5alt ) |
| 422 | { |
| 423 | int i; |
| 424 | pen_t c[2]; |
| 425 | c[0] = pal[ (ramb & 15) ^ 8 ]; |
| 426 | c[1] = pal[ (ramb >> 4) ^ 8 ]; |
| 427 | for ( i = 0; i < 8; i++, rama >>= 1 ) |
| 428 | dst[ 7 - i ] = c[ rama & 1 ]; |
| 429 | } |
| 430 | END_UPDATE |
| 431 | |
| 432 | |
| 433 | |
| 409 | 434 | /* as to770, but with pastel color bit unswitched */ |
| 410 | 435 | |
| 411 | 436 | UPDATE_HI( to9 ) |
| r32382 | r32383 | |
| 654 | 679 | |
| 655 | 680 | |
| 656 | 681 | |
| 657 | | /* 320x200, 2-colors, two overlaid pages (untested) */ |
| 682 | /* 320x200, 2-colors, two overlaid pages */ |
| 658 | 683 | |
| 659 | 684 | UPDATE_HI( overlay ) |
| 660 | 685 | { |
| r32382 | r32383 | |
| 681 | 706 | END_UPDATE |
| 682 | 707 | |
| 683 | 708 | |
| 709 | /* 160x200 undocumented variant of the above (2-colors, two overlaid pages) */ |
| 684 | 710 | |
| 685 | | /* 160x200, 4-colors, four overlaid pages (untested) */ |
| 711 | UPDATE_HI( overlayhalf ) |
| 712 | { |
| 713 | int i; |
| 714 | pen_t c[2][2]; |
| 715 | c[0][0] = pal[ 0 ]; |
| 716 | c[0][1] = c[1][1] = pal[ 1 ]; |
| 717 | c[1][0] = pal[ 2 ]; |
| 718 | rama >>= 4; |
| 719 | ramb >>= 4; |
| 720 | for ( i = 0; i < 16; i += 4, rama >>= 1, ramb >>= 1 ) |
| 721 | dst[ 15 - i ] = dst[ 14 - i ] = dst[ 13 - i ] = dst[ 12 - i ] = |
| 722 | c[ ramb & 1 ] [ rama & 1 ]; |
| 723 | } |
| 724 | END_UPDATE |
| 686 | 725 | |
| 726 | UPDATE_LOW( overlayhalf ) |
| 727 | { |
| 728 | int i; |
| 729 | pen_t c[2][2]; |
| 730 | c[0][0] = pal[ 0 ]; |
| 731 | c[0][1] = c[1][1] = pal[ 1 ]; |
| 732 | c[1][0] = pal[ 2 ]; |
| 733 | rama >>= 4; |
| 734 | ramb >>= 4; |
| 735 | for ( i = 0; i < 8; i += 2, rama >>= 1, ramb >>= 1 ) |
| 736 | dst[ 7 - i ] = dst[ 6 - i ] = c[ ramb & 1 ] [ rama & 1 ]; |
| 737 | } |
| 738 | END_UPDATE |
| 739 | |
| 740 | |
| 741 | |
| 742 | /* 160x200, 4-colors, four overlaid pages */ |
| 743 | |
| 687 | 744 | UPDATE_HI( overlay3 ) |
| 688 | 745 | { |
| 689 | 746 | /* Note: "Manuel Technique" doc implies that the palette entries are 0,1,2,4,8; |
| r32382 | r32383 | |
| 725 | 782 | FUN(to770), FUN(mo5), FUN(bitmap4), FUN(bitmap4alt), FUN(mode80), |
| 726 | 783 | FUN(bitmap16), FUN(page1), FUN(page2), FUN(overlay), FUN(overlay3), |
| 727 | 784 | FUN(to9), FUN(mode80_to9), |
| 728 | | FUN(bitmap4althalf), |
| 785 | FUN(bitmap4althalf), FUN(mo5alt), FUN(overlayhalf), |
| 729 | 786 | }; |
| 730 | 787 | |
| 731 | 788 | |