src/mess/video/pc_cga.c
| r2120 | r2121 | |
| 785 | 785 | } |
| 786 | 786 | |
| 787 | 787 | |
| 788 | | /*************************************************************************** |
| 789 | | Draw graphics mode with 320x200 pixels (default) with 2 bits/pixel. |
| 790 | | Even scanlines are from CGA_base + 0x0000, odd from CGA_base + 0x2000 |
| 791 | | cga fetches 2 byte per mscrtc6845 access. |
| 792 | | ***************************************************************************/ |
| 793 | 788 | |
| 794 | | static MC6845_UPDATE_ROW( cga_gfx_2bpph_update_row ) { |
| 795 | | UINT16 *p = BITMAP_ADDR16(bitmap, y, 0); |
| 796 | | int i; |
| 797 | | |
| 798 | | // if ( y == 0 ) logerror("cga_gfx_2bpph_update_row\n"); |
| 799 | | for ( i = 0; i < x_count; i++ ) { |
| 800 | | UINT16 offset = ( ( ( ma + i ) << 1 ) & 0x1fff ) | ( ( y & 1 ) << 13 ); |
| 801 | | UINT8 data = videoram[ offset ]; |
| 802 | | |
| 803 | | *p = cga.palette_lut_2bpp[ ( data >> 6 ) & 0x03 ]; p++; |
| 804 | | *p = cga.palette_lut_2bpp[ ( data >> 6 ) & 0x03 ]; p++; |
| 805 | | *p = cga.palette_lut_2bpp[ ( data >> 4 ) & 0x03 ]; p++; |
| 806 | | *p = cga.palette_lut_2bpp[ ( data >> 4 ) & 0x03 ]; p++; |
| 807 | | *p = cga.palette_lut_2bpp[ ( data >> 2 ) & 0x03 ]; p++; |
| 808 | | *p = cga.palette_lut_2bpp[ ( data >> 2 ) & 0x03 ]; p++; |
| 809 | | *p = cga.palette_lut_2bpp[ data & 0x03 ]; p++; |
| 810 | | *p = cga.palette_lut_2bpp[ data & 0x03 ]; p++; |
| 811 | | |
| 812 | | data = videoram[ offset+1 ]; |
| 813 | | |
| 814 | | *p = cga.palette_lut_2bpp[ ( data >> 6 ) & 0x03 ]; p++; |
| 815 | | *p = cga.palette_lut_2bpp[ ( data >> 6 ) & 0x03 ]; p++; |
| 816 | | *p = cga.palette_lut_2bpp[ ( data >> 4 ) & 0x03 ]; p++; |
| 817 | | *p = cga.palette_lut_2bpp[ ( data >> 4 ) & 0x03 ]; p++; |
| 818 | | *p = cga.palette_lut_2bpp[ ( data >> 2 ) & 0x03 ]; p++; |
| 819 | | *p = cga.palette_lut_2bpp[ ( data >> 2 ) & 0x03 ]; p++; |
| 820 | | *p = cga.palette_lut_2bpp[ data & 0x03 ]; p++; |
| 821 | | *p = cga.palette_lut_2bpp[ data & 0x03 ]; p++; |
| 822 | | } |
| 823 | | } |
| 824 | | |
| 825 | 789 | /*************************************************************************** |
| 826 | 790 | Draw graphics mode with 640x200 pixels (default). |
| 827 | 791 | The cell size is 1x1 (1 scanline is the real default) |
| r2120 | r2121 | |
| 973 | 937 | if ( CGA_MONITOR == CGA_MONITOR_COMPOSITE ) { |
| 974 | 938 | cga.update_row = cga_gfx_4bpph_update_row; |
| 975 | 939 | } else { |
| 976 | | cga.update_row = cga_gfx_2bpph_update_row; |
| 940 | cga.update_row = cga_gfx_1bpp_update_row; |
| 977 | 941 | } |
| 978 | 942 | break; |
| 979 | 943 | case 0x1E: case 0x1F: case 0x3E: case 0x3F: |