- use correct mapping for IBM437’s lower characters

For use on text screens these need to be mapped to the printable characters they represent on screen, not the control characters of ASCII.
This commit is contained in:
Christoph Oelckers 2022-06-03 00:12:45 +02:00
parent 99d98cf79d
commit 608b387e04
2 changed files with 32 additions and 46 deletions

View file

@ -81,37 +81,37 @@ const RgbQuad TextModePalette[16] =
static const uint16_t IBM437ToUnicode[] = {
0x0000, //#NULL
0x0001, //#START OF HEADING
0x0002, //#START OF TEXT
0x0003, //#END OF TEXT
0x0004, //#END OF TRANSMISSION
0x0005, //#ENQUIRY
0x0006, //#ACKNOWLEDGE
0x0007, //#BELL
0x0008, //#BACKSPACE
0x0009, //#HORIZONTAL TABULATION
0x000a, //#LINE FEED
0x000b, //#VERTICAL TABULATION
0x000c, //#FORM FEED
0x000d, //#CARRIAGE RETURN
0x000e, //#SHIFT OUT
0x000f, //#SHIFT IN
0x0010, //#DATA LINK ESCAPE
0x0011, //#DEVICE CONTROL ONE
0x0012, //#DEVICE CONTROL TWO
0x0013, //#DEVICE CONTROL THREE
0x0014, //#DEVICE CONTROL FOUR
0x0015, //#NEGATIVE ACKNOWLEDGE
0x0016, //#SYNCHRONOUS IDLE
0x0017, //#END OF TRANSMISSION BLOCK
0x0018, //#CANCEL
0x0019, //#END OF MEDIUM
0x001a, //#SUBSTITUTE
0x001b, //#ESCAPE
0x001c, //#FILE SEPARATOR
0x001d, //#GROUP SEPARATOR
0x001e, //#RECORD SEPARATOR
0x001f, //#UNIT SEPARATOR
0x263a, //#START OF HEADING
0x263B, //#START OF TEXT
0x2665, //#END OF TEXT
0x2666, //#END OF TRANSMISSION
0x2663, //#ENQUIRY
0x2660, //#ACKNOWLEDGE
0x2022, //#BELL
0x25d8, //#BACKSPACE
0x25cb, //#HORIZONTAL TABULATION
0x25d9, //#LINE FEED
0x2642, //#VERTICAL TABULATION
0x2640, //#FORM FEED
0x266a, //#CARRIAGE RETURN
0x266b, //#SHIFT OUT
0x263c, //#SHIFT IN
0x25ba, //#DATA LINK ESCAPE
0x25c4, //#DEVICE CONTROL ONE
0x2195, //#DEVICE CONTROL TWO
0x203c, //#DEVICE CONTROL THREE
0x00b6, //#DEVICE CONTROL FOUR
0x00a7, //#NEGATIVE ACKNOWLEDGE
0x25ac, //#SYNCHRONOUS IDLE
0x21ab, //#END OF TRANSMISSION BLOCK
0x2191, //#CANCEL
0x2193, //#END OF MEDIUM
0x2192, //#SUBSTITUTE
0x2190, //#ESCAPE
0x221f, //#FILE SEPARATOR
0x2194, //#GROUP SEPARATOR
0x25b2, //#RECORD SEPARATOR
0x25bc, //#UNIT SEPARATOR
0x0020, //#SPACE
0x0021, //#EXCLAMATION MARK
0x0022, //#QUOTATION MARK
@ -207,7 +207,7 @@ static const uint16_t IBM437ToUnicode[] = {
0x007c, //#VERTICAL LINE
0x007d, //#RIGHT CURLY BRACKET
0x007e, //#TILDE
0x007f, //#DELETE
0x2302, //#DELETE
0x00c7, //#LATIN CAPITAL LETTER C WITH CEDILLA
0x00fc, //#LATIN SMALL LETTER U WITH DIAERESIS
0x00e9, //#LATIN SMALL LETTER E WITH ACUTE

View file

@ -255,20 +255,6 @@ int FStartupTexture::CopyPixels(FBitmap *bmp, int conversion)
{
FileData lump = fileSystem.ReadFile (SourceLump);
const uint8_t *source = (const uint8_t *)lump.GetMem();
uint32_t pindex[16];
// Initialize the bitmap palette.
for (int i = 0; i < 16; ++i)
{
PalEntry pe;
pe.r = source[i * 3 + 0];
pe.g = source[i * 3 + 1];
pe.b = source[i * 3 + 2];
pe.a = 63;
// Convert from 6-bit per component to 8-bit per component.
pe.d= (pe.d << 2) | ((pe.d >> 4) & 0x03030303);
pindex[i] = pe;
}
PlanarToChunky((uint32_t*)bmp->GetPixels(), source + 48, startuppalette32, Width, Height);
return 0;
}