Previous 15994 Revisions Next

r2121 Thursday 27th March, 2008 at 16:49:54 UTC by Wilbert Pol
[PC_CGA] composite color mode should be displayed as black&white on an rgb monitor.
[src/mess/video]pc_cga.c

src/mess/video/pc_cga.c
r2120r2121
785785}
786786
787787
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***************************************************************************/
793788
794static 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
825789/***************************************************************************
826790  Draw graphics mode with 640x200 pixels (default).
827791  The cell size is 1x1 (1 scanline is the real default)
r2120r2121
973937      if ( CGA_MONITOR == CGA_MONITOR_COMPOSITE ) {
974938         cga.update_row = cga_gfx_4bpph_update_row;
975939      } else {
976         cga.update_row = cga_gfx_2bpph_update_row;
940         cga.update_row = cga_gfx_1bpp_update_row;
977941      }
978942      break;
979943   case 0x1E: case 0x1F: case 0x3E: case 0x3F:

Previous 15994 Revisions Next


© 1998-2018 The MESS Team