From Wikipedia, the free encyclopedia
Varicode is a self-synchronizing code for use in PSK31 . It supports all ASCII characters, but the characters used most frequently in English have shorter codes. The space between characters is indicated by a 00 sequence, an implementation of Fibonacci coding . Originally created for speeding up real-time keyboard-to-keyboard exchanges over low bandwidth links, Varicode is freely available.[ 1] [ 2] [ 3]
Varicode provides somewhat weaker compression in languages other than English that use same characters as in English.
Varicode
Oct
Dec
Hex
Abbr
Description
1010101011
000
0
00
NUL
Null character
1011011011
001
1
01
SOH
Start of Header
1011101101
002
2
02
STX
Start of Text
1101110111
003
3
03
ETX
End of Text
1011101011
004
4
04
EOT
End of Transmission
1101011111
005
5
05
ENQ
Enquiry
1011101111
006
6
06
ACK
Acknowledgment
1011111101
007
7
07
BEL
Bell
1011111111
010
8
08
BS
Backspace
11101111
011
9
09
HT
Horizontal Tab
11101
012
10
0A
LF
Line feed
1101101111
013
11
0B
VT
Vertical Tab
1011011101
014
12
0C
FF
Form feed
11111
015
13
0D
CR
Carriage return
1101110101
016
14
0E
SO
Shift Out
1110101011
017
15
0F
SI
Shift In
1011110111
020
16
10
DLE
Data Link Escape
1011110101
021
17
11
DC1
Device Control 1 (XON)
1110101101
022
18
12
DC2
Device Control 2
1110101111
023
19
13
DC3
Device Control 3 (XOFF)
1101011011
024
20
14
DC4
Device Control 4
1101101011
025
21
15
NAK
Negative Acknowledgement
1101101101
026
22
16
SYN
Synchronous Idle
1101010111
027
23
17
ETB
End of Trans. Block
1101111011
030
24
18
CAN
Cancel
1101111101
031
25
19
EM
End of Medium
1110110111
032
26
1A
SUB
Substitute
1101010101
033
27
1B
ESC
Escape
1101011101
034
28
1C
FS
File Separator
1110111011
035
29
1D
GS
Group Separator
1011111011
036
30
1E
RS
Record Separator
1101111111
037
31
1F
US
Unit Separator
1110110101
177
127
7F
DEL
Delete
Printable characters [ edit ]
Varicode
Oct
Dec
Hex
Glyph
1
040
32
20
SP
111111111
041
33
21
!
101011111
042
34
22
"
111110101
043
35
23
#
111011011
044
36
24
$
1011010101
045
37
25
%
1010111011
046
38
26
&
101111111
047
39
27
'
11111011
050
40
28
(
11110111
051
41
29
)
101101111
052
42
2A
*
111011111
053
43
2B
+
1110101
054
44
2C
,
110101
055
45
2D
-
1010111
056
46
2E
.
110101111
057
47
2F
/
10110111
060
48
30
0
10111101
061
49
31
1
11101101
062
50
32
2
11111111
063
51
33
3
101110111
064
52
34
4
101011011
065
53
35
5
101101011
066
54
36
6
110101101
067
55
37
7
110101011
070
56
38
8
110110111
071
57
39
9
11110101
072
58
3A
:
110111101
073
59
3B
;
111101101
074
60
3C
<
1010101
075
61
3D
=
111010111
076
62
3E
>
1010101111
077
63
3F
?
Varicode
Oct
Dec
Hex
Glyph
1010111101
100
64
40
@
1111101
101
65
41
A
11101011
102
66
42
B
10101101
103
67
43
C
10110101
104
68
44
D
1110111
105
69
45
E
11011011
106
70
46
F
11111101
107
71
47
G
101010101
110
72
48
H
1111111
111
73
49
I
111111101
112
74
4A
J
101111101
113
75
4B
K
11010111
114
76
4C
L
10111011
115
77
4D
M
11011101
116
78
4E
N
10101011
117
79
4F
O
11010101
120
80
50
P
111011101
121
81
51
Q
10101111
122
82
52
R
1101111
123
83
53
S
1101101
124
84
54
T
101010111
125
85
55
U
110110101
126
86
56
V
101011101
127
87
57
W
101110101
130
88
58
X
101111011
131
89
59
Y
1010101101
132
90
5A
Z
111110111
133
91
5B
[
111101111
134
92
5C
\
111111011
135
93
5D
]
1010111111
136
94
5E
^
101101101
137
95
5F
_
Varicode
Oct
Dec
Hex
Glyph
1011011111
140
96
60
'
1011
141
97
61
a
1011111
142
98
62
b
101111
143
99
63
c
101101
144
100
64
d
11
145
101
65
e
111101
146
102
66
f
1011011
147
103
67
g
101011
150
104
68
h
1101
151
105
69
i
111101011
152
106
6A
j
10111111
153
107
6B
k
11011
154
108
6C
l
111011
155
109
6D
m
1111
156
110
6E
n
111
157
111
6F
o
111111
160
112
70
p
110111111
161
113
71
q
10101
162
114
72
r
10111
163
115
73
s
101
164
116
74
t
110111
165
117
75
u
1111011
166
118
76
v
1101011
167
119
77
w
11011111
170
120
78
x
1011101
171
121
79
y
111010101
172
122
7A
z
1010110111
173
123
7B
{
110111011
174
124
7C
|
1010110101
175
125
7D
}
1011010111
176
126
7E
~
Beginning with the single-bit code "1", valid varicode values may be formed by prefixing a "1" or "10" to a shorter code. Thus, the number of codes of length n is equal to the Fibonacci number Fn . Varicode uses the 88 values of lengths up to 9 bits, and 40 of the 55 codes of length 10.
As transmitted, the codes are two bits longer due to the trailing delimiter 00.
ASCII characters by varicode length
Bits
Codes
Characters
1
1
SP
2
1
e
3
2
o t
4
3
a i n
5
5
LF CR l r s
6
8
- c d f h m p u
7
13
, . = A E I S T b g v w y
8
21
HT ( ) 0 1 2 3 : B C D F G L M N O P R k x
9
34
! " # $ ' * + / 4 5 6 7 8 9 ; < > H J K Q U V W X Y [ \ ] _ j q z |
10
40
NUL SOH STX ETX EOT ENQ ACK BEL BS VT FF SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EOM SUB ESC FS GS RS US % & ? @ Z ^ ` { } ~ DEL