2000 Nino Porcino IZ8BLY & M. Greenman ZL1BPU
Ver 1.0, 10 July 2000
The table also has a different probability distribution of characters. This is to reflect a better live QSO distribution of characters.
Precedence has been given to lower case symbols, then uppercase and numbers. The most used special characters are SPACE, BACKSPACE and CR. To further improve optimisation, extended ASCII characters for foreign languages have been moved so they have smaller codes than in the G3PLX alphabet.
There are approximately 100 unassigned 12 bit codes, so 13 bit codes will probably never be needed. The table below does not include control codes outside the ASCII table.
This is the logic sequence Nino used:
The super-alphabet characters are not part of the MFSK 2000 Specification, except that they will be ignored when received by the specified receiver.
MFSK16F, which runs at 15.625 baud, with 16 tones, has a channel bit rate of 62.5 bps. The FEC coder reduces the text bit rate to 31.25 bps. The text throughput with this varicode has been measured at over 42 WPM. The text throughput of PSK31 (which interestingly has EXACTLY the same text bit rate) is about 34 WPM.
Table[ 32]="100"; // <SPACE> Table[ 101]="1000"; // e Table[ 116]="1100"; // t Table[ 111]="10000"; // o Table[ 97]="10100"; // a Table[ 105]="11000"; // i Table[ 110]="11100"; // n Table[ 114]="100000"; // r Table[ 115]="101000"; // s Table[ 108]="101100"; // l Table[ 104]="110000"; // h Table[ 100]="110100"; // d Table[ 99]="111000"; // c Table[ 117]="111100"; // u Table[ 109]="1000000"; // m Table[ 102]="1010000"; // f Table[ 112]="1010100"; // p Table[ 103]="1011000"; // g Table[ 121]="1011100"; // y Table[ 98]="1100000"; // b Table[ 119]="1101000"; // w Table[ 118]="1101100"; // v Table[ 107]="1110000"; // k Table[ 120]="1110100"; // x Table[ 113]="1111000"; // q Table[ 122]="1111100"; // z Table[ 106]="10000000"; // j Table[ 44]="10100000"; // , Table[ 8]="10101000"; // <BS> Table[ 13]="10101100"; // <CR> Table[ 84]="10110000"; // T Table[ 83]="10110100"; // S Table[ 69]="10111000"; // E Table[ 65]="10111100"; // A Table[ 73]="11000000"; // I Table[ 79]="11010000"; // O Table[ 67]="11010100"; // C Table[ 82]="11011000"; // R Table[ 68]="11011100"; // D Table[ 48]="11100000"; // 0 Table[ 77]="11101000"; // M Table[ 80]="11101100"; // P Table[ 49]="11110000"; // 1 Table[ 76]="11110100"; // L Table[ 70]="11111000"; // F Table[ 78]="11111100"; // N Table[ 66]="100000000"; // B Table[ 50]="101000000"; // 2 Table[ 71]="101010000"; // G Table[ 51]="101010100"; // 3 Table[ 72]="101011000"; // H Table[ 85]="101011100"; // U Table[ 53]="101100000"; // 5 Table[ 87]="101101000"; // W Table[ 54]="101101100"; // 6 Table[ 88]="101110000"; // X Table[ 52]="101110100"; // 4 Table[ 89]="101111000"; // Y Table[ 75]="101111100"; // K Table[ 56]="110000000"; // 8 Table[ 55]="110100000"; // 7 Table[ 86]="110101000"; // V Table[ 57]="110101100"; // 9 Table[ 81]="110110000"; // Q Table[ 74]="110110100"; // J Table[ 90]="110111000"; // Z Table[ 39]="110111100"; // ' Table[ 33]="111000000"; // ! Table[ 63]="111010000"; // ? Table[ 46]="111010100"; // . Table[ 45]="111011000"; // - Table[ 61]="111011100"; // = Table[ 43]="111100000"; // + Table[ 47]="111101000"; // / Table[ 58]="111101100"; // : Table[ 41]="111110000"; // ) Table[ 40]="111110100"; // ( Table[ 59]="111111000"; // ; Table[ 34]="111111100"; // " Table[ 38]="1000000000"; // & Table[ 64]="1010000000"; // @ Table[ 37]="1010100000"; // % Table[ 36]="1010101000"; // $ Table[ 96]="1010101100"; // ` Table[ 95]="1010110000"; // _ Table[ 42]="1010110100"; // * Table[ 124]="1010111000"; // | Table[ 62]="1010111100"; // > Table[ 60]="1011000000"; // < Table[ 92]="1011010000"; // \ Table[ 94]="1011010100"; // ^ Table[ 35]="1011011000"; // # Table[ 123]="1011011100"; // { Table[ 125]="1011100000"; // } Table[ 91]="1011101000"; // [ Table[ 93]="1011101100"; // ] Table[ 126]="1011110000"; // ~ Table[ 160]="1011110100"; // Table[ 161]="1011111000"; // Table[ 162]="1011111100"; // Table[ 163]="1100000000"; // Table[ 164]="1101000000"; // Table[ 165]="1101010000"; // Table[ 166]="1101010100"; // Table[ 167]="1101011000"; // Table[ 168]="1101011100"; // Table[ 169]="1101100000"; // Table[ 170]="1101101000"; // Table[ 171]="1101101100"; // Table[ 172]="1101110000"; // Table[ 173]="1101110100"; // Table[ 174]="1101111000"; // Table[ 175]="1101111100"; // Table[ 176]="1110000000"; // Table[ 177]="1110100000"; // Table[ 178]="1110101000"; // Table[ 179]="1110101100"; // Table[ 180]="1110110000"; // Table[ 181]="1110110100"; // Table[ 182]="1110111000"; // Table[ 183]="1110111100"; // Table[ 184]="1111000000"; // Table[ 185]="1111010000"; // Table[ 186]="1111010100"; // Table[ 187]="1111011000"; // Table[ 188]="1111011100"; // Table[ 189]="1111100000"; // Table[ 190]="1111101000"; // Table[ 191]="1111101100"; // Table[ 192]="1111110000"; // Table[ 193]="1111110100"; // Table[ 194]="1111111000"; // Table[ 195]="1111111100"; // Table[ 196]="10000000000"; // Table[ 197]="10100000000"; // Table[ 198]="10101000000"; // Table[ 199]="10101010000"; // Table[ 200]="10101010100"; // Table[ 201]="10101011000"; // Table[ 202]="10101011100"; // Table[ 203]="10101100000"; // Table[ 204]="10101101000"; // Table[ 205]="10101101100"; // Table[ 206]="10101110000"; // Table[ 207]="10101110100"; // Table[ 208]="10101111000"; // Table[ 209]="10101111100"; // Table[ 210]="10110000000"; // Table[ 211]="10110100000"; // Table[ 212]="10110101000"; // Table[ 213]="10110101100"; // Table[ 214]="10110110000"; // Table[ 215]="10110110100"; // Table[ 216]="10110111000"; // Table[ 217]="10110111100"; // Table[ 218]="10111000000"; // Table[ 219]="10111010000"; // Table[ 220]="10111010100"; // Table[ 221]="10111011000"; // Table[ 222]="10111011100"; // Table[ 223]="10111100000"; // Table[ 224]="10111101000"; // Table[ 225]="10111101100"; // Table[ 226]="10111110000"; // Table[ 227]="10111110100"; // Table[ 228]="10111111000"; // Table[ 229]="10111111100"; // Table[ 230]="11000000000"; // Table[ 231]="11010000000"; // Table[ 232]="11010100000"; // Table[ 233]="11010101000"; // Table[ 234]="11010101100"; // Table[ 235]="11010110000"; // Table[ 236]="11010110100"; // Table[ 237]="11010111000"; // Table[ 238]="11010111100"; // Table[ 239]="11011000000"; // Table[ 240]="11011010000"; // Table[ 241]="11011010100"; // Table[ 242]="11011011000"; // Table[ 243]="11011011100"; // Table[ 244]="11011100000"; // Table[ 245]="11011101000"; // Table[ 246]="11011101100"; // Table[ 247]="11011110000"; // Table[ 248]="11011110100"; // Table[ 249]="11011111000"; // Table[ 250]="11011111100"; // Table[ 251]="11100000000"; // Table[ 252]="11101000000"; // n Table[ 253]="11101010000"; // Table[ 254]="11101010100"; // Table[ 255]="11101011000"; // Table[ 0]="11101011100"; // <NUL> Table[ 1]="11101100000"; // <SOH> Table[ 2]="11101101000"; // <STX> Table[ 3]="11101101100"; // <ETX> Table[ 4]="11101110000"; // <EOT> Table[ 5]="11101110100"; // <ENQ> Table[ 6]="11101111000"; // <ACK> Table[ 7]="11101111100"; // <BEL> Table[ 9]="11110000000"; // <TAB> Table[ 10]="11110100000"; // <LF> Table[ 11]="11110101000"; // <VT> Table[ 12]="11110101100"; // <FF> Table[ 14]="11110110000"; // <SO> Table[ 15]="11110110100"; // <SI> Table[ 16]="11110111000"; // <DLE> Table[ 17]="11110111100"; // <DC1> Table[ 18]="11111000000"; // <DC2> Table[ 19]="11111010000"; // <DC3> Table[ 20]="11111010100"; // <DC4> Table[ 21]="11111011000"; // <NAK> Table[ 22]="11111011100"; // <SYN> Table[ 23]="11111100000"; // <ETB> Table[ 24]="11111101000"; // <CAN> Table[ 25]="11111101100"; // <EM> Table[ 26]="11111110000"; // <SUB> Table[ 27]="11111110100"; // <ESC> Table[ 28]="11111111000"; // <FS> Table[ 29]="11111111100"; // <GS> Table[ 30]="100000000000"; // <RS> Table[ 31]="101000000000"; // <US> Table[ 127]="101010000000"; // <DEL> Table[ 128]="101010100000"; // ? Table[ 129]="101010101000"; // Table[ 130]="101010101100"; // Table[ 131]="101010110000"; // Table[ 132]="101010110100"; // Table[ 133]="101010111000"; // Table[ 134]="101010111100"; // Table[ 135]="101011000000"; // Table[ 136]="101011010000"; // Table[ 137]="101011010100"; // Table[ 138]="101011011000"; // Table[ 139]="101011011100"; // Table[ 140]="101011100000"; // Table[ 141]="101011101000"; // Table[ 142]="101011101100"; // Z Table[ 143]="101011110000"; // Table[ 144]="101011110100"; // Table[ 145]="101011111000"; // Table[ 146]="101011111100"; // Table[ 147]="101100000000"; // Table[ 148]="101101000000"; // Table[ 149]="101101010000"; // Table[ 150]="101101010100"; // Table[ 151]="101101011000"; // Table[ 152]="101101011100"; // Table[ 153]="101101100000"; // Table[ 154]="101101101000"; // Table[ 155]="101101101100"; // Table[ 156]="101101110000"; // Table[ 157]="101101110100"; // Table[ 158]="101101111000"; // z Table[ 159]="101101111100"; //