diff --git a/Claunia.Encoding/Apple2.cs b/Claunia.Encoding/Apple2.cs index 7ea4986..2d313cd 100644 --- a/Claunia.Encoding/Apple2.cs +++ b/Claunia.Encoding/Apple2.cs @@ -146,78 +146,73 @@ namespace Claunia.Encoding /// Converts a Unicode character to an Apple II character /// Apple II character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0020': return 0x20; - case '\u0021': return 0x21; - case '\u0022': return 0x22; - case '\u0023': return 0x23; - case '\u0024': return 0x24; - case '\u0025': return 0x25; - case '\u0026': return 0x26; - case '\u0027': return 0x27; - case '\u0028': return 0x28; - case '\u0029': return 0x29; - case '\u002A': return 0x2A; - case '\u002B': return 0x2B; - case '\u002C': return 0x2C; - case '\u002D': return 0x2D; - case '\u002E': return 0x2E; - case '\u002F': return 0x2F; - case '\u0030': return 0x30; - case '\u0031': return 0x31; - case '\u0032': return 0x32; - case '\u0033': return 0x33; - case '\u0034': return 0x34; - case '\u0035': return 0x35; - case '\u0036': return 0x36; - case '\u0037': return 0x37; - case '\u0038': return 0x38; - case '\u0039': return 0x39; - case '\u003A': return 0x3A; - case '\u003B': return 0x3B; - case '\u003C': return 0x3C; - case '\u003D': return 0x3D; - case '\u003E': return 0x3E; - case '\u003F': return 0x3F; - case '\u0040': return 0x40; - case '\u0041': return 0x41; - case '\u0042': return 0x42; - case '\u0043': return 0x43; - case '\u0044': return 0x44; - case '\u0045': return 0x45; - case '\u0046': return 0x46; - case '\u0047': return 0x47; - case '\u0048': return 0x48; - case '\u0049': return 0x49; - case '\u004A': return 0x4A; - case '\u004B': return 0x4B; - case '\u004C': return 0x4C; - case '\u004D': return 0x4D; - case '\u004E': return 0x4E; - case '\u004F': return 0x4F; - case '\u0050': return 0x50; - case '\u0051': return 0x51; - case '\u0052': return 0x52; - case '\u0053': return 0x53; - case '\u0054': return 0x54; - case '\u0055': return 0x55; - case '\u0056': return 0x56; - case '\u0057': return 0x57; - case '\u0058': return 0x58; - case '\u0059': return 0x59; - case '\u005A': return 0x5A; - case '\u005B': return 0x5B; - case '\u005C': return 0x5C; - case '\u005D': return 0x5D; - case '\u005E': return 0x5E; - case '\u005F': return 0x5F; - default: - // Fallback to '?' - return 0x3F; - } - } + '\u0020' => 0x20, + '\u0021' => 0x21, + '\u0022' => 0x22, + '\u0023' => 0x23, + '\u0024' => 0x24, + '\u0025' => 0x25, + '\u0026' => 0x26, + '\u0027' => 0x27, + '\u0028' => 0x28, + '\u0029' => 0x29, + '\u002A' => 0x2A, + '\u002B' => 0x2B, + '\u002C' => 0x2C, + '\u002D' => 0x2D, + '\u002E' => 0x2E, + '\u002F' => 0x2F, + '\u0030' => 0x30, + '\u0031' => 0x31, + '\u0032' => 0x32, + '\u0033' => 0x33, + '\u0034' => 0x34, + '\u0035' => 0x35, + '\u0036' => 0x36, + '\u0037' => 0x37, + '\u0038' => 0x38, + '\u0039' => 0x39, + '\u003A' => 0x3A, + '\u003B' => 0x3B, + '\u003C' => 0x3C, + '\u003D' => 0x3D, + '\u003E' => 0x3E, + '\u003F' => 0x3F, + '\u0040' => 0x40, + '\u0041' => 0x41, + '\u0042' => 0x42, + '\u0043' => 0x43, + '\u0044' => 0x44, + '\u0045' => 0x45, + '\u0046' => 0x46, + '\u0047' => 0x47, + '\u0048' => 0x48, + '\u0049' => 0x49, + '\u004A' => 0x4A, + '\u004B' => 0x4B, + '\u004C' => 0x4C, + '\u004D' => 0x4D, + '\u004E' => 0x4E, + '\u004F' => 0x4F, + '\u0050' => 0x50, + '\u0051' => 0x51, + '\u0052' => 0x52, + '\u0053' => 0x53, + '\u0054' => 0x54, + '\u0055' => 0x55, + '\u0056' => 0x56, + '\u0057' => 0x57, + '\u0058' => 0x58, + '\u0059' => 0x59, + '\u005A' => 0x5A, + '\u005B' => 0x5B, + '\u005C' => 0x5C, + '\u005D' => 0x5D, + '\u005E' => 0x5E, + '\u005F' => 0x5F, + _ => 0x3F + }; } } \ No newline at end of file diff --git a/Claunia.Encoding/Apple2e.cs b/Claunia.Encoding/Apple2e.cs index f8a8c24..007beca 100644 --- a/Claunia.Encoding/Apple2e.cs +++ b/Claunia.Encoding/Apple2e.cs @@ -146,139 +146,134 @@ namespace Claunia.Encoding /// Converts a Unicode character to an Apple IIe character /// Apple IIe character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0020': return 0x00; - case '\u0021': return 0x01; - case '\u0022': return 0x02; - case '\u0023': return 0x03; - case '\u0024': return 0x04; - case '\u0025': return 0x05; - case '\u0026': return 0x06; - case '\u0027': return 0x07; - case '\u0028': return 0x08; - case '\u0029': return 0x09; - case '\u002A': return 0x0A; - case '\u002B': return 0x0B; - case '\u002C': return 0x0C; - case '\u002D': return 0x0D; - case '\u002E': return 0x0E; - case '\u002F': return 0x0F; - case '\u0030': return 0x10; - case '\u0031': return 0x11; - case '\u0032': return 0x12; - case '\u0033': return 0x13; - case '\u0034': return 0x14; - case '\u0035': return 0x15; - case '\u0036': return 0x16; - case '\u0037': return 0x17; - case '\u0038': return 0x18; - case '\u0039': return 0x19; - case '\u003A': return 0x1A; - case '\u003B': return 0x1B; - case '\u003C': return 0x1C; - case '\u003D': return 0x1D; - case '\u003E': return 0x1E; - case '\u003F': return 0x1F; - case '\u0040': return 0x20; - case '\u0061': return 0x21; - case '\u0062': return 0x22; - case '\u0063': return 0x23; - case '\u0064': return 0x24; - case '\u0065': return 0x25; - case '\u0066': return 0x26; - case '\u0067': return 0x27; - case '\u0068': return 0x28; - case '\u0069': return 0x29; - case '\u006A': return 0x2A; - case '\u006B': return 0x2B; - case '\u006C': return 0x2C; - case '\u006D': return 0x2D; - case '\u006E': return 0x2E; - case '\u006F': return 0x2F; - case '\u0070': return 0x30; - case '\u0071': return 0x31; - case '\u0072': return 0x32; - case '\u0073': return 0x33; - case '\u0074': return 0x34; - case '\u0075': return 0x35; - case '\u0076': return 0x36; - case '\u0077': return 0x37; - case '\u0078': return 0x38; - case '\u0079': return 0x39; - case '\u007A': return 0x3A; - case '\u005B': return 0x3B; - case '\u005C': return 0x3C; - case '\u005D': return 0x3D; - case '\u005E': return 0x3E; - case '\u005F': return 0x3F; - case '\u00A0': return 0x40; - case '\u2575': return 0x41; - case '\u2574': return 0x42; - case '\u2577': return 0x43; - case '\u2576': return 0x44; - case '\u2518': return 0x45; - case '\u2510': return 0x46; - case '\u250C': return 0x47; - case '\u2514': return 0x48; - case '\u2500': return 0x49; - case '\u2502': return 0x4A; - case '\u2534': return 0x4B; - case '\u2524': return 0x4C; - case '\u252C': return 0x4D; - case '\u251C': return 0x4E; - case '\u253C': return 0x4F; - case '\u25E4': return 0x50; - case '\u25E5': return 0x51; - case '\u2592': return 0x52; - case '\u2598': return 0x53; - case '\u259D': return 0x54; - case '\u2580': return 0x55; - case '\u2596': return 0x56; - case '\u2597': return 0x57; - case '\u259A': return 0x58; - case '\u258C': return 0x59; - case '\u2190': return 0x5C; - case '\u2191': return 0x5D; - case '\u2192': return 0x5E; - case '\u2193': return 0x5F; - case '\u03C0': return 0x60; - case '\u0041': return 0x61; - case '\u0042': return 0x62; - case '\u0043': return 0x63; - case '\u0044': return 0x64; - case '\u0045': return 0x65; - case '\u0046': return 0x66; - case '\u0047': return 0x67; - case '\u0048': return 0x68; - case '\u0049': return 0x69; - case '\u004A': return 0x6A; - case '\u004B': return 0x6B; - case '\u004C': return 0x6C; - case '\u004D': return 0x6D; - case '\u004E': return 0x6E; - case '\u004F': return 0x6F; - case '\u0050': return 0x70; - case '\u0051': return 0x71; - case '\u0052': return 0x72; - case '\u0053': return 0x73; - case '\u0054': return 0x74; - case '\u0055': return 0x75; - case '\u0056': return 0x76; - case '\u0057': return 0x77; - case '\u0058': return 0x78; - case '\u0059': return 0x79; - case '\u005A': return 0x7A; - case '\u007B': return 0x7B; - case '\u007C': return 0x7C; - case '\u007D': return 0x7D; - case '\u007E': return 0x7E; - default: - // Fallback to '?' - return 0x3F; - } - } + '\u0020' => 0x00, + '\u0021' => 0x01, + '\u0022' => 0x02, + '\u0023' => 0x03, + '\u0024' => 0x04, + '\u0025' => 0x05, + '\u0026' => 0x06, + '\u0027' => 0x07, + '\u0028' => 0x08, + '\u0029' => 0x09, + '\u002A' => 0x0A, + '\u002B' => 0x0B, + '\u002C' => 0x0C, + '\u002D' => 0x0D, + '\u002E' => 0x0E, + '\u002F' => 0x0F, + '\u0030' => 0x10, + '\u0031' => 0x11, + '\u0032' => 0x12, + '\u0033' => 0x13, + '\u0034' => 0x14, + '\u0035' => 0x15, + '\u0036' => 0x16, + '\u0037' => 0x17, + '\u0038' => 0x18, + '\u0039' => 0x19, + '\u003A' => 0x1A, + '\u003B' => 0x1B, + '\u003C' => 0x1C, + '\u003D' => 0x1D, + '\u003E' => 0x1E, + '\u003F' => 0x1F, + '\u0040' => 0x20, + '\u0061' => 0x21, + '\u0062' => 0x22, + '\u0063' => 0x23, + '\u0064' => 0x24, + '\u0065' => 0x25, + '\u0066' => 0x26, + '\u0067' => 0x27, + '\u0068' => 0x28, + '\u0069' => 0x29, + '\u006A' => 0x2A, + '\u006B' => 0x2B, + '\u006C' => 0x2C, + '\u006D' => 0x2D, + '\u006E' => 0x2E, + '\u006F' => 0x2F, + '\u0070' => 0x30, + '\u0071' => 0x31, + '\u0072' => 0x32, + '\u0073' => 0x33, + '\u0074' => 0x34, + '\u0075' => 0x35, + '\u0076' => 0x36, + '\u0077' => 0x37, + '\u0078' => 0x38, + '\u0079' => 0x39, + '\u007A' => 0x3A, + '\u005B' => 0x3B, + '\u005C' => 0x3C, + '\u005D' => 0x3D, + '\u005E' => 0x3E, + '\u005F' => 0x3F, + '\u00A0' => 0x40, + '\u2575' => 0x41, + '\u2574' => 0x42, + '\u2577' => 0x43, + '\u2576' => 0x44, + '\u2518' => 0x45, + '\u2510' => 0x46, + '\u250C' => 0x47, + '\u2514' => 0x48, + '\u2500' => 0x49, + '\u2502' => 0x4A, + '\u2534' => 0x4B, + '\u2524' => 0x4C, + '\u252C' => 0x4D, + '\u251C' => 0x4E, + '\u253C' => 0x4F, + '\u25E4' => 0x50, + '\u25E5' => 0x51, + '\u2592' => 0x52, + '\u2598' => 0x53, + '\u259D' => 0x54, + '\u2580' => 0x55, + '\u2596' => 0x56, + '\u2597' => 0x57, + '\u259A' => 0x58, + '\u258C' => 0x59, + '\u2190' => 0x5C, + '\u2191' => 0x5D, + '\u2192' => 0x5E, + '\u2193' => 0x5F, + '\u03C0' => 0x60, + '\u0041' => 0x61, + '\u0042' => 0x62, + '\u0043' => 0x63, + '\u0044' => 0x64, + '\u0045' => 0x65, + '\u0046' => 0x66, + '\u0047' => 0x67, + '\u0048' => 0x68, + '\u0049' => 0x69, + '\u004A' => 0x6A, + '\u004B' => 0x6B, + '\u004C' => 0x6C, + '\u004D' => 0x6D, + '\u004E' => 0x6E, + '\u004F' => 0x6F, + '\u0050' => 0x70, + '\u0051' => 0x71, + '\u0052' => 0x72, + '\u0053' => 0x73, + '\u0054' => 0x74, + '\u0055' => 0x75, + '\u0056' => 0x76, + '\u0057' => 0x77, + '\u0058' => 0x78, + '\u0059' => 0x79, + '\u005A' => 0x7A, + '\u007B' => 0x7B, + '\u007C' => 0x7C, + '\u007D' => 0x7D, + '\u007E' => 0x7E, + _ => 0x3F + }; } } \ No newline at end of file diff --git a/Claunia.Encoding/Geos.cs b/Claunia.Encoding/Geos.cs index 7e4863e..bd1d428 100644 --- a/Claunia.Encoding/Geos.cs +++ b/Claunia.Encoding/Geos.cs @@ -149,254 +149,249 @@ namespace Claunia.Encoding /// Converts a Unicode character to an GEOS character /// GEOS character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0000': return 0x00; - case '\u0001': return 0x01; - case '\u0002': return 0x02; - case '\u0003': return 0x03; - case '\u0004': return 0x04; - case '\u0005': return 0x05; - case '\u0006': return 0x06; - case '\u0007': return 0x07; - case '\u0008': return 0x08; - case '\u0009': return 0x09; - case '\u000A': return 0x0A; - case '\u000B': return 0x0B; - case '\u000C': return 0x0C; - case '\u000D': return 0x0D; - case '\u000E': return 0x0E; - case '\u000F': return 0x0F; - case '\u0010': return 0x10; - case '\u0011': return 0x11; - case '\u0012': return 0x12; - case '\u0013': return 0x13; - case '\u0014': return 0x14; - case '\u0015': return 0x15; - case '\u0016': return 0x16; - case '\u0017': return 0x17; - case '\u0018': return 0x18; - case '\u0019': return 0x19; - case '\u001A': return 0x1A; - case '\u001B': return 0x1B; - case '\u001C': return 0x1C; - case '\u001D': return 0x1D; - case '\u001E': return 0x1E; - case '\u001F': return 0x1F; - case '\u0020': return 0x20; - case '\u0021': return 0x21; - case '\u0022': return 0x22; - case '\u0023': return 0x23; - case '\u0024': return 0x24; - case '\u0025': return 0x25; - case '\u0026': return 0x26; - case '\u0027': return 0x27; - case '\u0028': return 0x28; - case '\u0029': return 0x29; - case '\u002A': return 0x2A; - case '\u002B': return 0x2B; - case '\u002C': return 0x2C; - case '\u002D': return 0x2D; - case '\u002E': return 0x2E; - case '\u002F': return 0x2F; - case '\u0030': return 0x30; - case '\u0031': return 0x31; - case '\u0032': return 0x32; - case '\u0033': return 0x33; - case '\u0034': return 0x34; - case '\u0035': return 0x35; - case '\u0036': return 0x36; - case '\u0037': return 0x37; - case '\u0038': return 0x38; - case '\u0039': return 0x39; - case '\u003A': return 0x3A; - case '\u003B': return 0x3B; - case '\u003C': return 0x3C; - case '\u003D': return 0x3D; - case '\u003E': return 0x3E; - case '\u003F': return 0x3F; - case '\u0040': return 0x40; - case '\u0041': return 0x41; - case '\u0042': return 0x42; - case '\u0043': return 0x43; - case '\u0044': return 0x44; - case '\u0045': return 0x45; - case '\u0046': return 0x46; - case '\u0047': return 0x47; - case '\u0048': return 0x48; - case '\u0049': return 0x49; - case '\u004A': return 0x4A; - case '\u004B': return 0x4B; - case '\u004C': return 0x4C; - case '\u004D': return 0x4D; - case '\u004E': return 0x4E; - case '\u004F': return 0x4F; - case '\u0050': return 0x50; - case '\u0051': return 0x51; - case '\u0052': return 0x52; - case '\u0053': return 0x53; - case '\u0054': return 0x54; - case '\u0055': return 0x55; - case '\u0056': return 0x56; - case '\u0057': return 0x57; - case '\u0058': return 0x58; - case '\u0059': return 0x59; - case '\u005A': return 0x5A; - case '\u005B': return 0x5B; - case '\u005C': return 0x5C; - case '\u005D': return 0x5D; - case '\u005E': return 0x5E; - case '\u005F': return 0x5F; - case '\u0060': return 0x60; - case '\u0061': return 0x61; - case '\u0062': return 0x62; - case '\u0063': return 0x63; - case '\u0064': return 0x64; - case '\u0065': return 0x65; - case '\u0066': return 0x66; - case '\u0067': return 0x67; - case '\u0068': return 0x68; - case '\u0069': return 0x69; - case '\u006A': return 0x6A; - case '\u006B': return 0x6B; - case '\u006C': return 0x6C; - case '\u006D': return 0x6D; - case '\u006E': return 0x6E; - case '\u006F': return 0x6F; - case '\u0070': return 0x70; - case '\u0071': return 0x71; - case '\u0072': return 0x72; - case '\u0073': return 0x73; - case '\u0074': return 0x74; - case '\u0075': return 0x75; - case '\u0076': return 0x76; - case '\u0077': return 0x77; - case '\u0078': return 0x78; - case '\u0079': return 0x79; - case '\u007A': return 0x7A; - case '\u007B': return 0x7B; - case '\u007C': return 0x7C; - case '\u007D': return 0x7D; - case '\u007E': return 0x7E; - case '\u007F': return 0x7F; - case '\u00C4': return 0x80; - case '\u00C5': return 0x81; - case '\u00C7': return 0x82; - case '\u00C9': return 0x83; - case '\u00D1': return 0x84; - case '\u00D6': return 0x85; - case '\u00DC': return 0x86; - case '\u00E1': return 0x87; - case '\u00E0': return 0x88; - case '\u00E2': return 0x89; - case '\u00E4': return 0x8A; - case '\u00E3': return 0x8B; - case '\u00E5': return 0x8C; - case '\u00E7': return 0x8D; - case '\u00E9': return 0x8E; - case '\u00E8': return 0x8F; - case '\u00EA': return 0x90; - case '\u00EB': return 0x91; - case '\u00ED': return 0x92; - case '\u00EC': return 0x93; - case '\u00EE': return 0x94; - case '\u00EF': return 0x95; - case '\u00F1': return 0x96; - case '\u00F3': return 0x97; - case '\u00F2': return 0x98; - case '\u00F4': return 0x99; - case '\u00F5': return 0x9A; - case '\u00FA': return 0x9B; - case '\u00F9': return 0x9C; - case '\u00FB': return 0x9D; - case '\u00FC': return 0x9E; - case '\u2020': return 0x9F; - case '\u00B0': return 0xA0; - case '\u00A2': return 0xA1; - case '\u00A3': return 0xA2; - case '\u00A7': return 0xA3; - case '\u00B7': return 0xA4; - case '\u00B6': return 0xA5; - case '\u00DF': return 0xA6; - case '\u00AE': return 0xA7; - case '\u00A9': return 0xA8; - case '\u2122': return 0xA9; - case '\u00C6': return 0xAD; - case '\u00D8': return 0xAE; - case '\u221E': return 0xAF; - case '\u00B1': return 0xB0; - case '\u2264': return 0xB1; - case '\u2265': return 0xB2; - case '\u00A5': return 0xB3; - case '\u00B5': return 0xB4; - case '\u03C0': return 0xB8; - case '\u00AA': return 0xBA; - case '\u00BA': return 0xBB; - case '\u03A9': return 0xBC; - case '\u00E6': return 0xBD; - case '\u00F8': return 0xBE; - case '\u00BF': return 0xBF; - case '\u00A1': return 0xC0; - case '\u00AC': return 0xC1; - case '\u221A': return 0xC2; - case '\u0192': return 0xC3; - case '\u2248': return 0xC4; - case '\u00AB': return 0xC6; - case '\u00BB': return 0xC7; - case '\u2026': return 0xC8; - case '\u00A0': return 0xC9; - case '\u00C0': return 0xCA; - case '\u00C3': return 0xCB; - case '\u00D5': return 0xCC; - case '\u0152': return 0xCD; - case '\u0153': return 0xCE; - case '\u2013': return 0xCF; - case '\u2014': return 0xD0; - case '\u201C': return 0xD1; - case '\u201D': return 0xD2; - case '\u2018': return 0xD3; - case '\u2019': return 0xD4; - case '\u00F7': return 0xD5; - case '\u00FF': return 0xD7; - case '\u0178': return 0xD8; - case '\u05A4': return 0xDA; - case '\u2039': return 0xDB; - case '\u203A': return 0xDC; - case '\u00FD': return 0xDD; - case '\u00DD': return 0xDE; - case '\u2021': return 0xDF; - case '\u201A': return 0xE1; - case '\u201E': return 0xE2; - case '\u2030': return 0xE3; - case '\u00C2': return 0xE4; - case '\u00CA': return 0xE5; - case '\u00C1': return 0xE6; - case '\u00CB': return 0xE7; - case '\u00C8': return 0xE8; - case '\u00CD': return 0xE9; - case '\u00CE': return 0xEA; - case '\u00CF': return 0xEB; - case '\u00CC': return 0xEC; - case '\u00D3': return 0xED; - case '\u00D4': return 0xEE; - case '\u00D2': return 0xF0; - case '\u00DA': return 0xF1; - case '\u00D9': return 0xF2; - case '\u00B9': return 0xF3; - case '\u20C6': return 0xF4; - case '\u20DC': return 0xF5; - case '\u00AF': return 0xF6; - case '\u02C7': return 0xF7; - case '\u00B8': return 0xFA; - case '\u2032': return 0xFB; - case '\u02DB': return 0xFC; - case '\u02D8': return 0xFD; - default: - // Fallback to '?' - return 0x3F; - } - } + '\u0000' => 0x00, + '\u0001' => 0x01, + '\u0002' => 0x02, + '\u0003' => 0x03, + '\u0004' => 0x04, + '\u0005' => 0x05, + '\u0006' => 0x06, + '\u0007' => 0x07, + '\u0008' => 0x08, + '\u0009' => 0x09, + '\u000A' => 0x0A, + '\u000B' => 0x0B, + '\u000C' => 0x0C, + '\u000D' => 0x0D, + '\u000E' => 0x0E, + '\u000F' => 0x0F, + '\u0010' => 0x10, + '\u0011' => 0x11, + '\u0012' => 0x12, + '\u0013' => 0x13, + '\u0014' => 0x14, + '\u0015' => 0x15, + '\u0016' => 0x16, + '\u0017' => 0x17, + '\u0018' => 0x18, + '\u0019' => 0x19, + '\u001A' => 0x1A, + '\u001B' => 0x1B, + '\u001C' => 0x1C, + '\u001D' => 0x1D, + '\u001E' => 0x1E, + '\u001F' => 0x1F, + '\u0020' => 0x20, + '\u0021' => 0x21, + '\u0022' => 0x22, + '\u0023' => 0x23, + '\u0024' => 0x24, + '\u0025' => 0x25, + '\u0026' => 0x26, + '\u0027' => 0x27, + '\u0028' => 0x28, + '\u0029' => 0x29, + '\u002A' => 0x2A, + '\u002B' => 0x2B, + '\u002C' => 0x2C, + '\u002D' => 0x2D, + '\u002E' => 0x2E, + '\u002F' => 0x2F, + '\u0030' => 0x30, + '\u0031' => 0x31, + '\u0032' => 0x32, + '\u0033' => 0x33, + '\u0034' => 0x34, + '\u0035' => 0x35, + '\u0036' => 0x36, + '\u0037' => 0x37, + '\u0038' => 0x38, + '\u0039' => 0x39, + '\u003A' => 0x3A, + '\u003B' => 0x3B, + '\u003C' => 0x3C, + '\u003D' => 0x3D, + '\u003E' => 0x3E, + '\u003F' => 0x3F, + '\u0040' => 0x40, + '\u0041' => 0x41, + '\u0042' => 0x42, + '\u0043' => 0x43, + '\u0044' => 0x44, + '\u0045' => 0x45, + '\u0046' => 0x46, + '\u0047' => 0x47, + '\u0048' => 0x48, + '\u0049' => 0x49, + '\u004A' => 0x4A, + '\u004B' => 0x4B, + '\u004C' => 0x4C, + '\u004D' => 0x4D, + '\u004E' => 0x4E, + '\u004F' => 0x4F, + '\u0050' => 0x50, + '\u0051' => 0x51, + '\u0052' => 0x52, + '\u0053' => 0x53, + '\u0054' => 0x54, + '\u0055' => 0x55, + '\u0056' => 0x56, + '\u0057' => 0x57, + '\u0058' => 0x58, + '\u0059' => 0x59, + '\u005A' => 0x5A, + '\u005B' => 0x5B, + '\u005C' => 0x5C, + '\u005D' => 0x5D, + '\u005E' => 0x5E, + '\u005F' => 0x5F, + '\u0060' => 0x60, + '\u0061' => 0x61, + '\u0062' => 0x62, + '\u0063' => 0x63, + '\u0064' => 0x64, + '\u0065' => 0x65, + '\u0066' => 0x66, + '\u0067' => 0x67, + '\u0068' => 0x68, + '\u0069' => 0x69, + '\u006A' => 0x6A, + '\u006B' => 0x6B, + '\u006C' => 0x6C, + '\u006D' => 0x6D, + '\u006E' => 0x6E, + '\u006F' => 0x6F, + '\u0070' => 0x70, + '\u0071' => 0x71, + '\u0072' => 0x72, + '\u0073' => 0x73, + '\u0074' => 0x74, + '\u0075' => 0x75, + '\u0076' => 0x76, + '\u0077' => 0x77, + '\u0078' => 0x78, + '\u0079' => 0x79, + '\u007A' => 0x7A, + '\u007B' => 0x7B, + '\u007C' => 0x7C, + '\u007D' => 0x7D, + '\u007E' => 0x7E, + '\u007F' => 0x7F, + '\u00C4' => 0x80, + '\u00C5' => 0x81, + '\u00C7' => 0x82, + '\u00C9' => 0x83, + '\u00D1' => 0x84, + '\u00D6' => 0x85, + '\u00DC' => 0x86, + '\u00E1' => 0x87, + '\u00E0' => 0x88, + '\u00E2' => 0x89, + '\u00E4' => 0x8A, + '\u00E3' => 0x8B, + '\u00E5' => 0x8C, + '\u00E7' => 0x8D, + '\u00E9' => 0x8E, + '\u00E8' => 0x8F, + '\u00EA' => 0x90, + '\u00EB' => 0x91, + '\u00ED' => 0x92, + '\u00EC' => 0x93, + '\u00EE' => 0x94, + '\u00EF' => 0x95, + '\u00F1' => 0x96, + '\u00F3' => 0x97, + '\u00F2' => 0x98, + '\u00F4' => 0x99, + '\u00F5' => 0x9A, + '\u00FA' => 0x9B, + '\u00F9' => 0x9C, + '\u00FB' => 0x9D, + '\u00FC' => 0x9E, + '\u2020' => 0x9F, + '\u00B0' => 0xA0, + '\u00A2' => 0xA1, + '\u00A3' => 0xA2, + '\u00A7' => 0xA3, + '\u00B7' => 0xA4, + '\u00B6' => 0xA5, + '\u00DF' => 0xA6, + '\u00AE' => 0xA7, + '\u00A9' => 0xA8, + '\u2122' => 0xA9, + '\u00C6' => 0xAD, + '\u00D8' => 0xAE, + '\u221E' => 0xAF, + '\u00B1' => 0xB0, + '\u2264' => 0xB1, + '\u2265' => 0xB2, + '\u00A5' => 0xB3, + '\u00B5' => 0xB4, + '\u03C0' => 0xB8, + '\u00AA' => 0xBA, + '\u00BA' => 0xBB, + '\u03A9' => 0xBC, + '\u00E6' => 0xBD, + '\u00F8' => 0xBE, + '\u00BF' => 0xBF, + '\u00A1' => 0xC0, + '\u00AC' => 0xC1, + '\u221A' => 0xC2, + '\u0192' => 0xC3, + '\u2248' => 0xC4, + '\u00AB' => 0xC6, + '\u00BB' => 0xC7, + '\u2026' => 0xC8, + '\u00A0' => 0xC9, + '\u00C0' => 0xCA, + '\u00C3' => 0xCB, + '\u00D5' => 0xCC, + '\u0152' => 0xCD, + '\u0153' => 0xCE, + '\u2013' => 0xCF, + '\u2014' => 0xD0, + '\u201C' => 0xD1, + '\u201D' => 0xD2, + '\u2018' => 0xD3, + '\u2019' => 0xD4, + '\u00F7' => 0xD5, + '\u00FF' => 0xD7, + '\u0178' => 0xD8, + '\u05A4' => 0xDA, + '\u2039' => 0xDB, + '\u203A' => 0xDC, + '\u00FD' => 0xDD, + '\u00DD' => 0xDE, + '\u2021' => 0xDF, + '\u201A' => 0xE1, + '\u201E' => 0xE2, + '\u2030' => 0xE3, + '\u00C2' => 0xE4, + '\u00CA' => 0xE5, + '\u00C1' => 0xE6, + '\u00CB' => 0xE7, + '\u00C8' => 0xE8, + '\u00CD' => 0xE9, + '\u00CE' => 0xEA, + '\u00CF' => 0xEB, + '\u00CC' => 0xEC, + '\u00D3' => 0xED, + '\u00D4' => 0xEE, + '\u00D2' => 0xF0, + '\u00DA' => 0xF1, + '\u00D9' => 0xF2, + '\u00B9' => 0xF3, + '\u20C6' => 0xF4, + '\u20DC' => 0xF5, + '\u00AF' => 0xF6, + '\u02C7' => 0xF7, + '\u00B8' => 0xFA, + '\u2032' => 0xFB, + '\u02DB' => 0xFC, + '\u02D8' => 0xFD, + _ => 0x3F + }; } } \ No newline at end of file diff --git a/Claunia.Encoding/LisaRoman.cs b/Claunia.Encoding/LisaRoman.cs index 58cee67..29b9d3b 100644 --- a/Claunia.Encoding/LisaRoman.cs +++ b/Claunia.Encoding/LisaRoman.cs @@ -146,231 +146,226 @@ namespace Claunia.Encoding /// Converts a Unicode character to an LisaRoman character /// LisaRoman character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0000': return 0x00; - case '\u0001': return 0x01; - case '\u0002': return 0x02; - case '\u0003': return 0x03; - case '\u0004': return 0x04; - case '\u0005': return 0x05; - case '\u0006': return 0x06; - case '\u0007': return 0x07; - case '\u0008': return 0x08; - case '\u0009': return 0x09; - case '\u000A': return 0x0A; - case '\u000B': return 0x0B; - case '\u000C': return 0x0C; - case '\u000D': return 0x0D; - case '\u000E': return 0x0E; - case '\u000F': return 0x0F; - case '\u0010': return 0x10; - case '\u0011': return 0x11; - case '\u0012': return 0x12; - case '\u0013': return 0x13; - case '\u0014': return 0x14; - case '\u0015': return 0x15; - case '\u0016': return 0x16; - case '\u0017': return 0x17; - case '\u0018': return 0x18; - case '\u0019': return 0x19; - case '\u001A': return 0x1A; - case '\u001B': return 0x1B; - case '\u001C': return 0x1C; - case '\u001D': return 0x1D; - case '\u001E': return 0x1E; - case '\u001F': return 0x1F; - case '\u0020': return 0x20; - case '\u0021': return 0x21; - case '\u0022': return 0x22; - case '\u0023': return 0x23; - case '\u0024': return 0x24; - case '\u0025': return 0x25; - case '\u0026': return 0x26; - case '\u0027': return 0x27; - case '\u0028': return 0x28; - case '\u0029': return 0x29; - case '\u002A': return 0x2A; - case '\u002B': return 0x2B; - case '\u002C': return 0x2C; - case '\u002D': return 0x2D; - case '\u002E': return 0x2E; - case '\u002F': return 0x2F; - case '\u0030': return 0x30; - case '\u0031': return 0x31; - case '\u0032': return 0x32; - case '\u0033': return 0x33; - case '\u0034': return 0x34; - case '\u0035': return 0x35; - case '\u0036': return 0x36; - case '\u0037': return 0x37; - case '\u0038': return 0x38; - case '\u0039': return 0x39; - case '\u003A': return 0x3A; - case '\u003B': return 0x3B; - case '\u003C': return 0x3C; - case '\u003D': return 0x3D; - case '\u003E': return 0x3E; - case '\u003F': return 0x3F; - case '\u0040': return 0x40; - case '\u0041': return 0x41; - case '\u0042': return 0x42; - case '\u0043': return 0x43; - case '\u0044': return 0x44; - case '\u0045': return 0x45; - case '\u0046': return 0x46; - case '\u0047': return 0x47; - case '\u0048': return 0x48; - case '\u0049': return 0x49; - case '\u004A': return 0x4A; - case '\u004B': return 0x4B; - case '\u004C': return 0x4C; - case '\u004D': return 0x4D; - case '\u004E': return 0x4E; - case '\u004F': return 0x4F; - case '\u0050': return 0x50; - case '\u0051': return 0x51; - case '\u0052': return 0x52; - case '\u0053': return 0x53; - case '\u0054': return 0x54; - case '\u0055': return 0x55; - case '\u0056': return 0x56; - case '\u0057': return 0x57; - case '\u0058': return 0x58; - case '\u0059': return 0x59; - case '\u005A': return 0x5A; - case '\u005B': return 0x5B; - case '\u005C': return 0x5C; - case '\u005D': return 0x5D; - case '\u005E': return 0x5E; - case '\u005F': return 0x5F; - case '\u0060': return 0x60; - case '\u0061': return 0x61; - case '\u0062': return 0x62; - case '\u0063': return 0x63; - case '\u0064': return 0x64; - case '\u0065': return 0x65; - case '\u0066': return 0x66; - case '\u0067': return 0x67; - case '\u0068': return 0x68; - case '\u0069': return 0x69; - case '\u006A': return 0x6A; - case '\u006B': return 0x6B; - case '\u006C': return 0x6C; - case '\u006D': return 0x6D; - case '\u006E': return 0x6E; - case '\u006F': return 0x6F; - case '\u0070': return 0x70; - case '\u0071': return 0x71; - case '\u0072': return 0x72; - case '\u0073': return 0x73; - case '\u0074': return 0x74; - case '\u0075': return 0x75; - case '\u0076': return 0x76; - case '\u0077': return 0x77; - case '\u0078': return 0x78; - case '\u0079': return 0x79; - case '\u007A': return 0x7A; - case '\u007B': return 0x7B; - case '\u007C': return 0x7C; - case '\u007D': return 0x7D; - case '\u007E': return 0x7E; - case '\u2588': return 0x7F; - case '\u00C4': return 0x80; - case '\u00C5': return 0x81; - case '\u00C7': return 0x82; - case '\u00C9': return 0x83; - case '\u00D1': return 0x84; - case '\u00D6': return 0x85; - case '\u00DC': return 0x86; - case '\u00E1': return 0x87; - case '\u00E0': return 0x88; - case '\u00E2': return 0x89; - case '\u00E4': return 0x8A; - case '\u00E3': return 0x8B; - case '\u00E5': return 0x8C; - case '\u00E7': return 0x8D; - case '\u00E9': return 0x8E; - case '\u00E8': return 0x8F; - case '\u00EA': return 0x90; - case '\u00EB': return 0x91; - case '\u00ED': return 0x92; - case '\u00EC': return 0x93; - case '\u00EE': return 0x94; - case '\u00EF': return 0x95; - case '\u00F1': return 0x96; - case '\u00F3': return 0x97; - case '\u00F2': return 0x98; - case '\u00F4': return 0x99; - case '\u00F6': return 0x9A; - case '\u00F5': return 0x9B; - case '\u00FA': return 0x9C; - case '\u00F9': return 0x9D; - case '\u00FB': return 0x9E; - case '\u00FC': return 0x9F; - case '\u2020': return 0xA0; - case '\u00B0': return 0xA1; - case '\u00A2': return 0xA2; - case '\u00A3': return 0xA3; - case '\u00A7': return 0xA4; - case '\u2022': return 0xA5; - case '\u00B6': return 0xA6; - case '\u00DF': return 0xA7; - case '\u00AE': return 0xA8; - case '\u00A9': return 0xA9; - case '\u2122': return 0xAA; - case '\u00B4': return 0xAB; - case '\u00A8': return 0xAC; - case '\u2260': return 0xAD; - case '\u00C6': return 0xAE; - case '\u00D8': return 0xAF; - case '\u221E': return 0xB0; - case '\u00B1': return 0xB1; - case '\u2264': return 0xB2; - case '\u2265': return 0xB3; - case '\u00A5': return 0xB4; - case '\u00B5': return 0xB5; - case '\u2202': return 0xB6; - case '\u2211': return 0xB7; - case '\u220F': return 0xB8; - case '\u03C0': return 0xB9; - case '\u222B': return 0xBA; - case '\u00AA': return 0xBB; - case '\u00BA': return 0xBC; - case '\u03A9': return 0xBD; - case '\u00E6': return 0xBE; - case '\u00F8': return 0xBF; - case '\u00BF': return 0xC0; - case '\u00A1': return 0xC1; - case '\u00AC': return 0xC2; - case '\u221A': return 0xC3; - case '\u0192': return 0xC4; - case '\u2248': return 0xC5; - case '\u2206': return 0xC6; - case '\u00AB': return 0xC7; - case '\u00BB': return 0xC8; - case '\u2026': return 0xC9; - case '\u00A0': return 0xCA; - case '\u00C0': return 0xCB; - case '\u00C3': return 0xCC; - case '\u00D5': return 0xCD; - case '\u0152': return 0xCE; - case '\u0153': return 0xCF; - case '\u2013': return 0xD0; - case '\u2014': return 0xD1; - case '\u201C': return 0xD2; - case '\u201D': return 0xD3; - case '\u2018': return 0xD4; - case '\u2019': return 0xD5; - case '\u00F7': return 0xD6; - case '\u25CA': return 0xD7; - case '\u00FF': return 0xD8; - default: - // Fallback to '?' - return 0x3F; - } - } + '\u0000' => 0x00, + '\u0001' => 0x01, + '\u0002' => 0x02, + '\u0003' => 0x03, + '\u0004' => 0x04, + '\u0005' => 0x05, + '\u0006' => 0x06, + '\u0007' => 0x07, + '\u0008' => 0x08, + '\u0009' => 0x09, + '\u000A' => 0x0A, + '\u000B' => 0x0B, + '\u000C' => 0x0C, + '\u000D' => 0x0D, + '\u000E' => 0x0E, + '\u000F' => 0x0F, + '\u0010' => 0x10, + '\u0011' => 0x11, + '\u0012' => 0x12, + '\u0013' => 0x13, + '\u0014' => 0x14, + '\u0015' => 0x15, + '\u0016' => 0x16, + '\u0017' => 0x17, + '\u0018' => 0x18, + '\u0019' => 0x19, + '\u001A' => 0x1A, + '\u001B' => 0x1B, + '\u001C' => 0x1C, + '\u001D' => 0x1D, + '\u001E' => 0x1E, + '\u001F' => 0x1F, + '\u0020' => 0x20, + '\u0021' => 0x21, + '\u0022' => 0x22, + '\u0023' => 0x23, + '\u0024' => 0x24, + '\u0025' => 0x25, + '\u0026' => 0x26, + '\u0027' => 0x27, + '\u0028' => 0x28, + '\u0029' => 0x29, + '\u002A' => 0x2A, + '\u002B' => 0x2B, + '\u002C' => 0x2C, + '\u002D' => 0x2D, + '\u002E' => 0x2E, + '\u002F' => 0x2F, + '\u0030' => 0x30, + '\u0031' => 0x31, + '\u0032' => 0x32, + '\u0033' => 0x33, + '\u0034' => 0x34, + '\u0035' => 0x35, + '\u0036' => 0x36, + '\u0037' => 0x37, + '\u0038' => 0x38, + '\u0039' => 0x39, + '\u003A' => 0x3A, + '\u003B' => 0x3B, + '\u003C' => 0x3C, + '\u003D' => 0x3D, + '\u003E' => 0x3E, + '\u003F' => 0x3F, + '\u0040' => 0x40, + '\u0041' => 0x41, + '\u0042' => 0x42, + '\u0043' => 0x43, + '\u0044' => 0x44, + '\u0045' => 0x45, + '\u0046' => 0x46, + '\u0047' => 0x47, + '\u0048' => 0x48, + '\u0049' => 0x49, + '\u004A' => 0x4A, + '\u004B' => 0x4B, + '\u004C' => 0x4C, + '\u004D' => 0x4D, + '\u004E' => 0x4E, + '\u004F' => 0x4F, + '\u0050' => 0x50, + '\u0051' => 0x51, + '\u0052' => 0x52, + '\u0053' => 0x53, + '\u0054' => 0x54, + '\u0055' => 0x55, + '\u0056' => 0x56, + '\u0057' => 0x57, + '\u0058' => 0x58, + '\u0059' => 0x59, + '\u005A' => 0x5A, + '\u005B' => 0x5B, + '\u005C' => 0x5C, + '\u005D' => 0x5D, + '\u005E' => 0x5E, + '\u005F' => 0x5F, + '\u0060' => 0x60, + '\u0061' => 0x61, + '\u0062' => 0x62, + '\u0063' => 0x63, + '\u0064' => 0x64, + '\u0065' => 0x65, + '\u0066' => 0x66, + '\u0067' => 0x67, + '\u0068' => 0x68, + '\u0069' => 0x69, + '\u006A' => 0x6A, + '\u006B' => 0x6B, + '\u006C' => 0x6C, + '\u006D' => 0x6D, + '\u006E' => 0x6E, + '\u006F' => 0x6F, + '\u0070' => 0x70, + '\u0071' => 0x71, + '\u0072' => 0x72, + '\u0073' => 0x73, + '\u0074' => 0x74, + '\u0075' => 0x75, + '\u0076' => 0x76, + '\u0077' => 0x77, + '\u0078' => 0x78, + '\u0079' => 0x79, + '\u007A' => 0x7A, + '\u007B' => 0x7B, + '\u007C' => 0x7C, + '\u007D' => 0x7D, + '\u007E' => 0x7E, + '\u2588' => 0x7F, + '\u00C4' => 0x80, + '\u00C5' => 0x81, + '\u00C7' => 0x82, + '\u00C9' => 0x83, + '\u00D1' => 0x84, + '\u00D6' => 0x85, + '\u00DC' => 0x86, + '\u00E1' => 0x87, + '\u00E0' => 0x88, + '\u00E2' => 0x89, + '\u00E4' => 0x8A, + '\u00E3' => 0x8B, + '\u00E5' => 0x8C, + '\u00E7' => 0x8D, + '\u00E9' => 0x8E, + '\u00E8' => 0x8F, + '\u00EA' => 0x90, + '\u00EB' => 0x91, + '\u00ED' => 0x92, + '\u00EC' => 0x93, + '\u00EE' => 0x94, + '\u00EF' => 0x95, + '\u00F1' => 0x96, + '\u00F3' => 0x97, + '\u00F2' => 0x98, + '\u00F4' => 0x99, + '\u00F6' => 0x9A, + '\u00F5' => 0x9B, + '\u00FA' => 0x9C, + '\u00F9' => 0x9D, + '\u00FB' => 0x9E, + '\u00FC' => 0x9F, + '\u2020' => 0xA0, + '\u00B0' => 0xA1, + '\u00A2' => 0xA2, + '\u00A3' => 0xA3, + '\u00A7' => 0xA4, + '\u2022' => 0xA5, + '\u00B6' => 0xA6, + '\u00DF' => 0xA7, + '\u00AE' => 0xA8, + '\u00A9' => 0xA9, + '\u2122' => 0xAA, + '\u00B4' => 0xAB, + '\u00A8' => 0xAC, + '\u2260' => 0xAD, + '\u00C6' => 0xAE, + '\u00D8' => 0xAF, + '\u221E' => 0xB0, + '\u00B1' => 0xB1, + '\u2264' => 0xB2, + '\u2265' => 0xB3, + '\u00A5' => 0xB4, + '\u00B5' => 0xB5, + '\u2202' => 0xB6, + '\u2211' => 0xB7, + '\u220F' => 0xB8, + '\u03C0' => 0xB9, + '\u222B' => 0xBA, + '\u00AA' => 0xBB, + '\u00BA' => 0xBC, + '\u03A9' => 0xBD, + '\u00E6' => 0xBE, + '\u00F8' => 0xBF, + '\u00BF' => 0xC0, + '\u00A1' => 0xC1, + '\u00AC' => 0xC2, + '\u221A' => 0xC3, + '\u0192' => 0xC4, + '\u2248' => 0xC5, + '\u2206' => 0xC6, + '\u00AB' => 0xC7, + '\u00BB' => 0xC8, + '\u2026' => 0xC9, + '\u00A0' => 0xCA, + '\u00C0' => 0xCB, + '\u00C3' => 0xCC, + '\u00D5' => 0xCD, + '\u0152' => 0xCE, + '\u0153' => 0xCF, + '\u2013' => 0xD0, + '\u2014' => 0xD1, + '\u201C' => 0xD2, + '\u201D' => 0xD3, + '\u2018' => 0xD4, + '\u2019' => 0xD5, + '\u00F7' => 0xD6, + '\u25CA' => 0xD7, + '\u00FF' => 0xD8, + _ => 0x3F + }; } } \ No newline at end of file diff --git a/Claunia.Encoding/Radix50.cs b/Claunia.Encoding/Radix50.cs index 9a9f064..b025a6b 100644 --- a/Claunia.Encoding/Radix50.cs +++ b/Claunia.Encoding/Radix50.cs @@ -289,54 +289,49 @@ namespace Claunia.Encoding /// Converts a Unicode character to an Apple II character /// Apple II character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0020': return 0x00; - case '\u0041': return 0x01; - case '\u0042': return 0x02; - case '\u0043': return 0x03; - case '\u0044': return 0x04; - case '\u0045': return 0x05; - case '\u0046': return 0x06; - case '\u0047': return 0x07; - case '\u0048': return 0x08; - case '\u0049': return 0x09; - case '\u004A': return 0x0A; - case '\u004B': return 0x0B; - case '\u004C': return 0x0C; - case '\u004D': return 0x0D; - case '\u004E': return 0x0E; - case '\u004F': return 0x0F; - case '\u0050': return 0x10; - case '\u0051': return 0x11; - case '\u0052': return 0x12; - case '\u0053': return 0x13; - case '\u0054': return 0x14; - case '\u0055': return 0x15; - case '\u0056': return 0x16; - case '\u0057': return 0x17; - case '\u0058': return 0x18; - case '\u0059': return 0x19; - case '\u005A': return 0x1A; - case '\u0024': return 0x1B; - case '\u002E': return 0x1C; - case '\u0025': return 0x1D; - case '\u0030': return 0x1E; - case '\u0031': return 0x1F; - case '\u0032': return 0x20; - case '\u0033': return 0x21; - case '\u0034': return 0x22; - case '\u0035': return 0x23; - case '\u0036': return 0x24; - case '\u0037': return 0x25; - case '\u0038': return 0x26; - case '\u0039': return 0x27; - default: - // Fallback to '.' - return 0x1C; - } - } + '\u0020' => 0x00, + '\u0041' => 0x01, + '\u0042' => 0x02, + '\u0043' => 0x03, + '\u0044' => 0x04, + '\u0045' => 0x05, + '\u0046' => 0x06, + '\u0047' => 0x07, + '\u0048' => 0x08, + '\u0049' => 0x09, + '\u004A' => 0x0A, + '\u004B' => 0x0B, + '\u004C' => 0x0C, + '\u004D' => 0x0D, + '\u004E' => 0x0E, + '\u004F' => 0x0F, + '\u0050' => 0x10, + '\u0051' => 0x11, + '\u0052' => 0x12, + '\u0053' => 0x13, + '\u0054' => 0x14, + '\u0055' => 0x15, + '\u0056' => 0x16, + '\u0057' => 0x17, + '\u0058' => 0x18, + '\u0059' => 0x19, + '\u005A' => 0x1A, + '\u0024' => 0x1B, + '\u002E' => 0x1C, + '\u0025' => 0x1D, + '\u0030' => 0x1E, + '\u0031' => 0x1F, + '\u0032' => 0x20, + '\u0033' => 0x21, + '\u0034' => 0x22, + '\u0035' => 0x23, + '\u0036' => 0x24, + '\u0037' => 0x25, + '\u0038' => 0x26, + '\u0039' => 0x27, + _ => 0x1C + }; } } \ No newline at end of file diff --git a/Claunia.Encoding/ZXSpectrum.cs b/Claunia.Encoding/ZXSpectrum.cs index 605f104..e73db1a 100644 --- a/Claunia.Encoding/ZXSpectrum.cs +++ b/Claunia.Encoding/ZXSpectrum.cs @@ -146,127 +146,122 @@ namespace Claunia.Encoding /// Converts a Unicode character to an ZX Spectrum character /// ZX Spectrum character. /// Unicode character. - private protected override byte GetByte(char character) + private protected override byte GetByte(char character) => character switch { - switch(character) - { - case '\u0009': return 0x06; - case '\u000D': return 0x0D; - case '\u0020': return 0x20; - case '\u0021': return 0x21; - case '\u0022': return 0x22; - case '\u0023': return 0x23; - case '\u0024': return 0x24; - case '\u0025': return 0x25; - case '\u0026': return 0x26; - case '\u0027': return 0x27; - case '\u0028': return 0x28; - case '\u0029': return 0x29; - case '\u002A': return 0x2A; - case '\u002B': return 0x2B; - case '\u002C': return 0x2C; - case '\u002D': return 0x2D; - case '\u002E': return 0x2E; - case '\u002F': return 0x2F; - case '\u0030': return 0x30; - case '\u0031': return 0x31; - case '\u0032': return 0x32; - case '\u0033': return 0x33; - case '\u0034': return 0x34; - case '\u0035': return 0x35; - case '\u0036': return 0x36; - case '\u0037': return 0x37; - case '\u0038': return 0x38; - case '\u0039': return 0x39; - case '\u003A': return 0x3A; - case '\u003B': return 0x3B; - case '\u003C': return 0x3C; - case '\u003D': return 0x3D; - case '\u003E': return 0x3E; - case '\u003F': return 0x3F; - case '\u0040': return 0x40; - case '\u0041': return 0x41; - case '\u0042': return 0x42; - case '\u0043': return 0x43; - case '\u0044': return 0x44; - case '\u0045': return 0x45; - case '\u0046': return 0x46; - case '\u0047': return 0x47; - case '\u0048': return 0x48; - case '\u0049': return 0x49; - case '\u004A': return 0x4A; - case '\u004B': return 0x4B; - case '\u004C': return 0x4C; - case '\u004D': return 0x4D; - case '\u004E': return 0x4E; - case '\u004F': return 0x4F; - case '\u0050': return 0x50; - case '\u0051': return 0x51; - case '\u0052': return 0x52; - case '\u0053': return 0x53; - case '\u0054': return 0x54; - case '\u0055': return 0x55; - case '\u0056': return 0x56; - case '\u0057': return 0x57; - case '\u0058': return 0x58; - case '\u0059': return 0x59; - case '\u005A': return 0x5A; - case '\u005B': return 0x5B; - case '\u005C': return 0x5C; - case '\u005D': return 0x5D; - case '\u2191': return 0x5E; - case '\u005F': return 0x5F; - case '\u00A3': return 0x60; - case '\u0061': return 0x61; - case '\u0062': return 0x62; - case '\u0063': return 0x63; - case '\u0064': return 0x64; - case '\u0065': return 0x65; - case '\u0066': return 0x66; - case '\u0067': return 0x67; - case '\u0068': return 0x68; - case '\u0069': return 0x69; - case '\u006A': return 0x6A; - case '\u006B': return 0x6B; - case '\u006C': return 0x6C; - case '\u006D': return 0x6D; - case '\u006E': return 0x6E; - case '\u006F': return 0x6F; - case '\u0070': return 0x70; - case '\u0071': return 0x71; - case '\u0072': return 0x72; - case '\u0073': return 0x73; - case '\u0074': return 0x74; - case '\u0075': return 0x75; - case '\u0076': return 0x76; - case '\u0077': return 0x77; - case '\u0078': return 0x78; - case '\u0079': return 0x79; - case '\u007A': return 0x7A; - case '\u007B': return 0x7B; - case '\u007C': return 0x7C; - case '\u007D': return 0x7D; - case '\u007E': return 0x7E; - case '\u00A9': return 0x7F; - case '\u259D': return 0x81; - case '\u2598': return 0x82; - case '\u2580': return 0x83; - case '\u2597': return 0x84; - case '\u2590': return 0x85; - case '\u259A': return 0x86; - case '\u259C': return 0x87; - case '\u2596': return 0x88; - case '\u259E': return 0x89; - case '\u258C': return 0x8A; - case '\u259B': return 0x8B; - case '\u2584': return 0x8C; - case '\u259F': return 0x8D; - case '\u2599': return 0x8E; - case '\u2588': return 0x8F; - default: - // Fallback to '?' - return 0x3F; - } - } + '\u0009' => 0x06, + '\u000D' => 0x0D, + '\u0020' => 0x20, + '\u0021' => 0x21, + '\u0022' => 0x22, + '\u0023' => 0x23, + '\u0024' => 0x24, + '\u0025' => 0x25, + '\u0026' => 0x26, + '\u0027' => 0x27, + '\u0028' => 0x28, + '\u0029' => 0x29, + '\u002A' => 0x2A, + '\u002B' => 0x2B, + '\u002C' => 0x2C, + '\u002D' => 0x2D, + '\u002E' => 0x2E, + '\u002F' => 0x2F, + '\u0030' => 0x30, + '\u0031' => 0x31, + '\u0032' => 0x32, + '\u0033' => 0x33, + '\u0034' => 0x34, + '\u0035' => 0x35, + '\u0036' => 0x36, + '\u0037' => 0x37, + '\u0038' => 0x38, + '\u0039' => 0x39, + '\u003A' => 0x3A, + '\u003B' => 0x3B, + '\u003C' => 0x3C, + '\u003D' => 0x3D, + '\u003E' => 0x3E, + '\u003F' => 0x3F, + '\u0040' => 0x40, + '\u0041' => 0x41, + '\u0042' => 0x42, + '\u0043' => 0x43, + '\u0044' => 0x44, + '\u0045' => 0x45, + '\u0046' => 0x46, + '\u0047' => 0x47, + '\u0048' => 0x48, + '\u0049' => 0x49, + '\u004A' => 0x4A, + '\u004B' => 0x4B, + '\u004C' => 0x4C, + '\u004D' => 0x4D, + '\u004E' => 0x4E, + '\u004F' => 0x4F, + '\u0050' => 0x50, + '\u0051' => 0x51, + '\u0052' => 0x52, + '\u0053' => 0x53, + '\u0054' => 0x54, + '\u0055' => 0x55, + '\u0056' => 0x56, + '\u0057' => 0x57, + '\u0058' => 0x58, + '\u0059' => 0x59, + '\u005A' => 0x5A, + '\u005B' => 0x5B, + '\u005C' => 0x5C, + '\u005D' => 0x5D, + '\u2191' => 0x5E, + '\u005F' => 0x5F, + '\u00A3' => 0x60, + '\u0061' => 0x61, + '\u0062' => 0x62, + '\u0063' => 0x63, + '\u0064' => 0x64, + '\u0065' => 0x65, + '\u0066' => 0x66, + '\u0067' => 0x67, + '\u0068' => 0x68, + '\u0069' => 0x69, + '\u006A' => 0x6A, + '\u006B' => 0x6B, + '\u006C' => 0x6C, + '\u006D' => 0x6D, + '\u006E' => 0x6E, + '\u006F' => 0x6F, + '\u0070' => 0x70, + '\u0071' => 0x71, + '\u0072' => 0x72, + '\u0073' => 0x73, + '\u0074' => 0x74, + '\u0075' => 0x75, + '\u0076' => 0x76, + '\u0077' => 0x77, + '\u0078' => 0x78, + '\u0079' => 0x79, + '\u007A' => 0x7A, + '\u007B' => 0x7B, + '\u007C' => 0x7C, + '\u007D' => 0x7D, + '\u007E' => 0x7E, + '\u00A9' => 0x7F, + '\u259D' => 0x81, + '\u2598' => 0x82, + '\u2580' => 0x83, + '\u2597' => 0x84, + '\u2590' => 0x85, + '\u259A' => 0x86, + '\u259C' => 0x87, + '\u2596' => 0x88, + '\u259E' => 0x89, + '\u258C' => 0x8A, + '\u259B' => 0x8B, + '\u2584' => 0x8C, + '\u259F' => 0x8D, + '\u2599' => 0x8E, + '\u2588' => 0x8F, + _ => 0x3F + }; } } \ No newline at end of file