269 lines
8.8 KiB
C
269 lines
8.8 KiB
C
#include <stdint.h>
|
|
char varcode_to_char(uint32_t c) {
|
|
switch (c) {
|
|
case 683: return '\x00';
|
|
case 731: return '\x01';
|
|
case 749: return '\x02';
|
|
case 887: return '\x03';
|
|
case 747: return '\x04';
|
|
case 863: return '\x05';
|
|
case 751: return '\x06';
|
|
case 765: return '\x07';
|
|
case 767: return '\x08';
|
|
case 239: return '\x09';
|
|
case 29: return '\x0A';
|
|
case 879: return '\x0B';
|
|
case 733: return '\x0C';
|
|
case 31: return '\x0D';
|
|
case 885: return '\x0E';
|
|
case 939: return '\x0F';
|
|
case 759: return '\x10';
|
|
case 757: return '\x11';
|
|
case 941: return '\x12';
|
|
case 943: return '\x13';
|
|
case 859: return '\x14';
|
|
case 875: return '\x15';
|
|
case 877: return '\x16';
|
|
case 855: return '\x17';
|
|
case 891: return '\x18';
|
|
case 893: return '\x19';
|
|
case 951: return '\x1A';
|
|
case 853: return '\x1B';
|
|
case 861: return '\x1C';
|
|
case 955: return '\x1D';
|
|
case 763: return '\x1E';
|
|
case 895: return '\x1F';
|
|
case 1: return ' ';
|
|
case 511: return '!';
|
|
case 351: return '"';
|
|
case 501: return '#';
|
|
case 475: return '$';
|
|
case 725: return '%';
|
|
case 699: return '&';
|
|
case 383: return '\'';
|
|
case 251: return '(';
|
|
case 247: return ')';
|
|
case 367: return '*';
|
|
case 479: return '+';
|
|
case 117: return ',';
|
|
case 53: return '-';
|
|
case 87: return '.';
|
|
case 431: return '/';
|
|
case 183: return '0';
|
|
case 189: return '1';
|
|
case 237: return '2';
|
|
case 255: return '3';
|
|
case 375: return '4';
|
|
case 347: return '5';
|
|
case 363: return '6';
|
|
case 429: return '7';
|
|
case 427: return '8';
|
|
case 439: return '9';
|
|
case 245: return ':';
|
|
case 445: return ';';
|
|
case 493: return '<';
|
|
case 85: return '=';
|
|
case 471: return '>';
|
|
case 687: return '?';
|
|
case 701: return '@';
|
|
case 125: return 'A';
|
|
case 235: return 'B';
|
|
case 173: return 'C';
|
|
case 181: return 'D';
|
|
case 119: return 'E';
|
|
case 219: return 'F';
|
|
case 253: return 'G';
|
|
case 341: return 'H';
|
|
case 127: return 'I';
|
|
case 509: return 'J';
|
|
case 381: return 'K';
|
|
case 215: return 'L';
|
|
case 187: return 'M';
|
|
case 221: return 'N';
|
|
case 171: return 'O';
|
|
case 213: return 'P';
|
|
case 477: return 'Q';
|
|
case 175: return 'R';
|
|
case 111: return 'S';
|
|
case 109: return 'T';
|
|
case 343: return 'U';
|
|
case 437: return 'V';
|
|
case 349: return 'W';
|
|
case 373: return 'X';
|
|
case 379: return 'Y';
|
|
case 685: return 'Z';
|
|
case 503: return '[';
|
|
case 495: return '\\';
|
|
case 507: return ']';
|
|
case 703: return '^';
|
|
case 365: return '_';
|
|
case 735: return '`';
|
|
case 11: return 'a';
|
|
case 95: return 'b';
|
|
case 47: return 'c';
|
|
case 45: return 'd';
|
|
case 3: return 'e';
|
|
case 61: return 'f';
|
|
case 91: return 'g';
|
|
case 43: return 'h';
|
|
case 13: return 'i';
|
|
case 491: return 'j';
|
|
case 191: return 'k';
|
|
case 27: return 'l';
|
|
case 59: return 'm';
|
|
case 15: return 'n';
|
|
case 7: return 'o';
|
|
case 63: return 'p';
|
|
case 447: return 'q';
|
|
case 21: return 'r';
|
|
case 23: return 's';
|
|
case 5: return 't';
|
|
case 55: return 'u';
|
|
case 123: return 'v';
|
|
case 107: return 'w';
|
|
case 223: return 'x';
|
|
case 93: return 'y';
|
|
case 469: return 'z';
|
|
case 695: return '{';
|
|
case 443: return '|';
|
|
case 693: return '}';
|
|
case 727: return '~';
|
|
case 949: return '\x7F';
|
|
}
|
|
return '\0';
|
|
}
|
|
|
|
const char *char_to_varcode(char c) {
|
|
switch (c) {
|
|
case '\x00': return "1010101011";
|
|
case '\x01': return "1011011011";
|
|
case '\x02': return "1011101101";
|
|
case '\x03': return "1101110111";
|
|
case '\x04': return "1011101011";
|
|
case '\x05': return "1101011111";
|
|
case '\x06': return "1011101111";
|
|
case '\x07': return "1011111101";
|
|
case '\x08': return "1011111111";
|
|
case '\x09': return "11101111";
|
|
case '\x0A': return "11101";
|
|
case '\x0B': return "1101101111";
|
|
case '\x0C': return "1011011101";
|
|
case '\x0D': return "11111";
|
|
case '\x0E': return "1101110101";
|
|
case '\x0F': return "1110101011";
|
|
case '\x10': return "1011110111";
|
|
case '\x11': return "1011110101";
|
|
case '\x12': return "1110101101";
|
|
case '\x13': return "1110101111";
|
|
case '\x14': return "1101011011";
|
|
case '\x15': return "1101101011";
|
|
case '\x16': return "1101101101";
|
|
case '\x17': return "1101010111";
|
|
case '\x18': return "1101111011";
|
|
case '\x19': return "1101111101";
|
|
case '\x1A': return "1110110111";
|
|
case '\x1B': return "1101010101";
|
|
case '\x1C': return "1101011101";
|
|
case '\x1D': return "1110111011";
|
|
case '\x1E': return "1011111011";
|
|
case '\x1F': return "1101111111";
|
|
case ' ': return "1";
|
|
case '!': return "111111111";
|
|
case '"': return "101011111";
|
|
case '#': return "111110101";
|
|
case '$': return "111011011";
|
|
case '%': return "1011010101";
|
|
case '&': return "1010111011";
|
|
case '\'': return "101111111";
|
|
case '(': return "11111011";
|
|
case ')': return "11110111";
|
|
case '*': return "101101111";
|
|
case '+': return "111011111";
|
|
case ',': return "1110101";
|
|
case '-': return "110101";
|
|
case '.': return "1010111";
|
|
case '/': return "110101111";
|
|
case '0': return "10110111";
|
|
case '1': return "10111101";
|
|
case '2': return "11101101";
|
|
case '3': return "11111111";
|
|
case '4': return "101110111";
|
|
case '5': return "101011011";
|
|
case '6': return "101101011";
|
|
case '7': return "110101101";
|
|
case '8': return "110101011";
|
|
case '9': return "110110111";
|
|
case ':': return "11110101";
|
|
case ';': return "110111101";
|
|
case '<': return "111101101";
|
|
case '=': return "1010101";
|
|
case '>': return "111010111";
|
|
case '?': return "1010101111";
|
|
case '@': return "1010111101";
|
|
case 'A': return "1111101";
|
|
case 'B': return "11101011";
|
|
case 'C': return "10101101";
|
|
case 'D': return "10110101";
|
|
case 'E': return "1110111";
|
|
case 'F': return "11011011";
|
|
case 'G': return "11111101";
|
|
case 'H': return "101010101";
|
|
case 'I': return "1111111";
|
|
case 'J': return "111111101";
|
|
case 'K': return "101111101";
|
|
case 'L': return "11010111";
|
|
case 'M': return "10111011";
|
|
case 'N': return "11011101";
|
|
case 'O': return "10101011";
|
|
case 'P': return "11010101";
|
|
case 'Q': return "111011101";
|
|
case 'R': return "10101111";
|
|
case 'S': return "1101111";
|
|
case 'T': return "1101101";
|
|
case 'U': return "101010111";
|
|
case 'V': return "110110101";
|
|
case 'W': return "101011101";
|
|
case 'X': return "101110101";
|
|
case 'Y': return "101111011";
|
|
case 'Z': return "1010101101";
|
|
case '[': return "111110111";
|
|
case '\\': return "111101111";
|
|
case ']': return "111111011";
|
|
case '^': return "1010111111";
|
|
case '_': return "101101101";
|
|
case '`': return "1011011111";
|
|
case 'a': return "1011";
|
|
case 'b': return "1011111";
|
|
case 'c': return "101111";
|
|
case 'd': return "101101";
|
|
case 'e': return "11";
|
|
case 'f': return "111101";
|
|
case 'g': return "1011011";
|
|
case 'h': return "101011";
|
|
case 'i': return "1101";
|
|
case 'j': return "111101011";
|
|
case 'k': return "10111111";
|
|
case 'l': return "11011";
|
|
case 'm': return "111011";
|
|
case 'n': return "1111";
|
|
case 'o': return "111";
|
|
case 'p': return "111111";
|
|
case 'q': return "110111111";
|
|
case 'r': return "10101";
|
|
case 's': return "10111";
|
|
case 't': return "101";
|
|
case 'u': return "110111";
|
|
case 'v': return "1111011";
|
|
case 'w': return "1101011";
|
|
case 'x': return "11011111";
|
|
case 'y': return "1011101";
|
|
case 'z': return "111010101";
|
|
case '{': return "1010110111";
|
|
case '|': return "110111011";
|
|
case '}': return "1010110101";
|
|
case '~': return "1011010111";
|
|
case '\x7F': return "1110110101";
|
|
}
|
|
return "";
|
|
}
|