diff options
Diffstat (limited to 'src/varicode_table.h')
| -rw-r--r-- | src/varicode_table.h | 322 |
1 files changed, 146 insertions, 176 deletions
diff --git a/src/varicode_table.h b/src/varicode_table.h index c56fd20..ea119ce 100644 --- a/src/varicode_table.h +++ b/src/varicode_table.h @@ -21,318 +21,288 @@ /* The following table defines the PKS31 varicode. There are 128 entries, corresponding to ASCII characters 0-127 with two bytes for each entry. The bits -for the varicode are to be shifted out MSB-first for both bytes, with the first byte -in the table being the first one to be sent. +for the varicode are to be shifted out MSB-first for both bytes, with the first +byte in the table being the first one to be sent. More than one zero in sequence signifies the end of the character (i.e. -two zeroes are the intercharacter sequence, so at least two zeroes should always be -sent before the next character is sent. +two zeroes are the intercharacter sequence, so at least two zeroes should always +be sent before the next character is sent. This file is constructed with information from the article "PSK31 Fundamentals" by Peter Martinez, G3PLX by Clint Turner, KA7OEI */ -unsigned char const varicode_table1[256] = { +unsigned char const varicode_table1[256] = { 0b10101010, - 0b11000000, // 0 NUL + 0b11000000, // 0 NUL 0b10110110, - 0b11000000, // 1 SOH + 0b11000000, // 1 SOH 0b10111011, - 0b01000000, // 2 STX + 0b01000000, // 2 STX 0b11011101, - 0b11000000, // 3 ETX + 0b11000000, // 3 ETX 0b10111010, - 0b11000000, // 4 EOT + 0b11000000, // 4 EOT 0b11010111, - 0b11000000, // 5 ENQ + 0b11000000, // 5 ENQ 0b10111011, - 0b11000000, // 6 ACK + 0b11000000, // 6 ACK 0b10111111, - 0b01000000, // 7 BEL + 0b01000000, // 7 BEL 0b10111111, - 0b11000000, // 8 BS + 0b11000000, // 8 BS 0b11101111, - 0b00000000, // 9 HT + 0b00000000, // 9 HT 0b11101000, - 0b00000000, // 10 LF + 0b00000000, // 10 LF 0b11011011, - 0b11000000, // 11 VT + 0b11000000, // 11 VT 0b10110111, - 0b01000000, // 12 FF + 0b01000000, // 12 FF 0b11111000, - 0b00000000, // 13 CR + 0b00000000, // 13 CR 0b11011101, - 0b01000000, // 14 SO + 0b01000000, // 14 SO 0b11101010, - 0b11000000, // 15 SI + 0b11000000, // 15 SI 0b10111101, - 0b11000000, // 16 DLE + 0b11000000, // 16 DLE 0b10111101, - 0b01000000, // 17 DC1 + 0b01000000, // 17 DC1 0b11101011, - 0b01000000, // 18 DC2 + 0b01000000, // 18 DC2 0b11101011, - 0b11000000, // 19 DC3 + 0b11000000, // 19 DC3 0b11010110, - 0b11000000, // 20 DC4 + 0b11000000, // 20 DC4 0b11011010, - 0b11000000, // 21 NAK + 0b11000000, // 21 NAK 0b11011011, - 0b01000000, // 22 SYN + 0b01000000, // 22 SYN 0b11010101, - 0b11000000, // 23 ETB + 0b11000000, // 23 ETB 0b11011110, - 0b11000000, // 24 CAN + 0b11000000, // 24 CAN 0b11011111, - 0b01000000, // 25 EM + 0b01000000, // 25 EM 0b11101101, - 0b11000000, // 26 SUB + 0b11000000, // 26 SUB 0b11010101, - 0b01000000, // 27 ESC + 0b01000000, // 27 ESC 0b11010111, - 0b01000000, // 28 FS + 0b01000000, // 28 FS 0b11101110, - 0b11000000, // 29 GS + 0b11000000, // 29 GS 0b10111110, - 0b11000000, // 30 RS + 0b11000000, // 30 RS 0b11011111, - 0b11000000, // 31 US + 0b11000000, // 31 US 0b10000000, - 0b00000000, // 32 SP + 0b00000000, // 32 SP 0b11111111, - 0b10000000, // 33 ! + 0b10000000, // 33 ! 0b10101111, - 0b10000000, // 34 " + 0b10000000, // 34 " 0b11111010, - 0b10000000, // 35 # + 0b10000000, // 35 # 0b11101101, - 0b10000000, // 36 $ + 0b10000000, // 36 $ 0b10110101, - 0b01000000, // 37 % + 0b01000000, // 37 % 0b10101110, - 0b11000000, // 38 & + 0b11000000, // 38 & 0b10111111, - 0b10000000, // 39 ' + 0b10000000, // 39 ' 0b11111011, - 0b00000000, // 40 ( + 0b00000000, // 40 ( 0b11110111, - 0b00000000, // 41 ) + 0b00000000, // 41 ) 0b10110111, - 0b10000000, // 42 * + 0b10000000, // 42 * 0b11101111, - 0b10000000, // 43 + + 0b10000000, // 43 + 0b11101010, - 0b00000000, // 44 , + 0b00000000, // 44 , 0b11010100, - 0b00000000, // 45 - + 0b00000000, // 45 - 0b10101110, - 0b00000000, // 46 . + 0b00000000, // 46 . 0b11010111, - 0b10000000, // 47 / + 0b10000000, // 47 / 0b10110111, - 0b00000000, // 48 0 + 0b00000000, // 48 0 0b10111101, - 0b00000000, // 49 1 + 0b00000000, // 49 1 0b11101101, - 0b00000000, // 50 2 + 0b00000000, // 50 2 0b11111111, - 0b00000000, // 51 3 + 0b00000000, // 51 3 0b10111011, - 0b10000000, // 52 4 + 0b10000000, // 52 4 0b10101101, - 0b10000000, // 53 5 + 0b10000000, // 53 5 0b10110101, - 0b10000000, // 54 6 + 0b10000000, // 54 6 0b11010110, - 0b10000000, // 55 7 + 0b10000000, // 55 7 0b11010101, - 0b10000000, // 56 8 + 0b10000000, // 56 8 0b11011011, - 0b10000000, // 57 9 + 0b10000000, // 57 9 0b11110101, - 0b00000000, // 58 : + 0b00000000, // 58 : 0b11011110, - 0b10000000, // 59 ; + 0b10000000, // 59 ; 0b11110110, - 0b10000000, // 60 < + 0b10000000, // 60 < 0b10101010, - 0b00000000, // 61 = + 0b00000000, // 61 = 0b11101011, - 0b10000000, // 62 > + 0b10000000, // 62 > 0b10101011, - 0b11000000, // 63 ? + 0b11000000, // 63 ? 0b10101111, - 0b01000000, // 64 @ + 0b01000000, // 64 @ 0b11111010, - 0b00000000, // 65 A + 0b00000000, // 65 A 0b11101011, - 0b00000000, // 66 B + 0b00000000, // 66 B 0b10101101, - 0b00000000, // 67 C + 0b00000000, // 67 C 0b10110101, - 0b00000000, // 68 D + 0b00000000, // 68 D 0b11101110, - 0b00000000, // 69 E + 0b00000000, // 69 E 0b11011011, - 0b00000000, // 70 F + 0b00000000, // 70 F 0b11111101, - 0b00000000, // 71 G + 0b00000000, // 71 G 0b10101010, - 0b10000000, // 72 H + 0b10000000, // 72 H 0b11111110, - 0b00000000, // 73 I + 0b00000000, // 73 I 0b11111110, - 0b10000000, // 74 J + 0b10000000, // 74 J 0b10111110, - 0b10000000, // 75 K + 0b10000000, // 75 K 0b11010111, - 0b00000000, // 76 L + 0b00000000, // 76 L 0b10111011, - 0b00000000, // 77 M + 0b00000000, // 77 M 0b11011101, - 0b00000000, // 78 N + 0b00000000, // 78 N 0b10101011, - 0b00000000, // 79 O + 0b00000000, // 79 O 0b11010101, - 0b00000000, // 80 P + 0b00000000, // 80 P 0b11101110, - 0b10000000, // 81 Q + 0b10000000, // 81 Q 0b10101111, - 0b00000000, // 82 R + 0b00000000, // 82 R 0b11011110, - 0b00000000, // 83 S + 0b00000000, // 83 S 0b11011010, - 0b00000000, // 84 T + 0b00000000, // 84 T 0b10101011, - 0b10000000, // 85 U + 0b10000000, // 85 U 0b11011010, - 0b10000000, // 86 V + 0b10000000, // 86 V 0b10101110, - 0b10000000, // 87 W + 0b10000000, // 87 W 0b10111010, - 0b10000000, // 88 X + 0b10000000, // 88 X 0b10111101, - 0b10000000, // 89 Y + 0b10000000, // 89 Y 0b10101011, - 0b01000000, // 90 Z + 0b01000000, // 90 Z 0b11111011, - 0b10000000, // 91 [ + 0b10000000, // 91 [ 0b11110111, - 0b10000000, // 92 "\" + 0b10000000, // 92 "\" 0b11111101, - 0b10000000, // 93 ] + 0b10000000, // 93 ] 0b10101111, - 0b11000000, // 94 ^ + 0b11000000, // 94 ^ 0b10110110, - 0b10000000, // 95 _ (underline) + 0b10000000, // 95 _ (underline) 0b10110111, - 0b11000000, // 96 ` + 0b11000000, // 96 ` 0b10110000, - 0b00000000, // 97 a + 0b00000000, // 97 a 0b10111110, - 0b00000000, // 98 b + 0b00000000, // 98 b 0b10111100, - 0b00000000, // 99 c + 0b00000000, // 99 c 0b10110100, - 0b00000000, // 100 d + 0b00000000, // 100 d 0b11000000, - 0b00000000, // 101 e + 0b00000000, // 101 e 0b11110100, - 0b00000000, // 102 f + 0b00000000, // 102 f 0b10110110, - 0b00000000, // 103 g + 0b00000000, // 103 g 0b10101100, - 0b00000000, // 104 h + 0b00000000, // 104 h 0b11010000, - 0b00000000, // 105 i + 0b00000000, // 105 i 0b11110101, - 0b10000000, // 106 j + 0b10000000, // 106 j 0b10111111, - 0b00000000, // 107 k + 0b00000000, // 107 k 0b11011000, - 0b00000000, // 108 l + 0b00000000, // 108 l 0b11101100, - 0b00000000, // 109 m + 0b00000000, // 109 m 0b11110000, - 0b00000000, // 110 n + 0b00000000, // 110 n 0b11100000, - 0b00000000, // 111 o + 0b00000000, // 111 o 0b11111100, - 0b00000000, // 112 p + 0b00000000, // 112 p 0b11011111, - 0b10000000, // 113 q + 0b10000000, // 113 q 0b10101000, - 0b00000000, // 114 r + 0b00000000, // 114 r 0b10111000, - 0b00000000, // 115 s + 0b00000000, // 115 s 0b10100000, - 0b00000000, // 116 t + 0b00000000, // 116 t 0b11011100, - 0b00000000, // 117 u + 0b00000000, // 117 u 0b11110110, - 0b00000000, // 118 v + 0b00000000, // 118 v 0b11010110, - 0b00000000, // 119 w + 0b00000000, // 119 w 0b11011111, - 0b00000000, // 120 x + 0b00000000, // 120 x 0b10111010, - 0b00000000, // 121 y + 0b00000000, // 121 y 0b11101010, - 0b10000000, // 122 z + 0b10000000, // 122 z 0b10101101, - 0b11000000, // 123 { + 0b11000000, // 123 { 0b11011101, - 0b10000000, // 124 | + 0b10000000, // 124 | 0b10101101, - 0b01000000, // 125 } + 0b01000000, // 125 } 0b10110101, - 0b11000000, // 126 ~ + 0b11000000, // 126 ~ 0b11101101, - 0b01000000, // 127 (del) + 0b01000000, // 127 (del) }; -// This code was used on FDMDV version 1, and is more compact that Code 1, but only covers a subset -// of the ASCII character set +// This code was used on FDMDV version 1, and is more compact that Code 1, but +// only covers a subset of the ASCII character set char const varicode_table2[] = { - ' ' ,0b11000000, - 13 ,0b01000000, // CR, end of message - '=' ,0b10000000, - '1' ,0b11110000, - '2' ,0b01110000, - '3' ,0b10110000, - '4' ,0b11010000, - '5' ,0b01010000, - '6' ,0b10010000, - '7' ,0b11100000, - '8' ,0b01100000, - '9' ,0b10100000, - 'a' ,0b11111100, - 'b' ,0b01111100, - 'c' ,0b10111100, - 'd' ,0b11011100, - 'e' ,0b01011100, - 'f' ,0b10011100, - 'g' ,0b11101100, - 'h' ,0b01101100, - 'i' ,0b10101100, - 'j' ,0b11110100, - 'k' ,0b01110100, - 'l' ,0b10110100, - 'm' ,0b11010100, - 'n' ,0b01010100, - 'o' ,0b10010100, - 'p' ,0b11100100, - 'q' ,0b01100100, - 'r' ,0b10100100, - 's' ,0b11111000, - 't' ,0b01111000, - 'u' ,0b10111000, - 'v' ,0b11011000, - 'w' ,0b01011000, - 'x' ,0b10011000, - 'y' ,0b11101000, - 'z' ,0b01101000, - '0' ,0b10101000 -}; - + ' ', 0b11000000, 13, 0b01000000, // CR, end of message + '=', 0b10000000, '1', 0b11110000, '2', 0b01110000, '3', 0b10110000, + '4', 0b11010000, '5', 0b01010000, '6', 0b10010000, '7', 0b11100000, + '8', 0b01100000, '9', 0b10100000, 'a', 0b11111100, 'b', 0b01111100, + 'c', 0b10111100, 'd', 0b11011100, 'e', 0b01011100, 'f', 0b10011100, + 'g', 0b11101100, 'h', 0b01101100, 'i', 0b10101100, 'j', 0b11110100, + 'k', 0b01110100, 'l', 0b10110100, 'm', 0b11010100, 'n', 0b01010100, + 'o', 0b10010100, 'p', 0b11100100, 'q', 0b01100100, 'r', 0b10100100, + 's', 0b11111000, 't', 0b01111000, 'u', 0b10111000, 'v', 0b11011000, + 'w', 0b01011000, 'x', 0b10011000, 'y', 0b11101000, 'z', 0b01101000, + '0', 0b10101000}; |
