Skip to content
Surf Wiki
Save to docs
general/character-encoding

From Surf Wiki (app.surf) — the open knowledge base

Varicode


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.

Limitations

  • Varicode provides somewhat weaker compression in languages other than English that use same characters as in English.

Varicode table

Control characters

VaricodeOctDecHexAbbrDescription
1010101011000000NULNull character
1011011011001101SOHStart of Header
1011101101002202STXStart of Text
1101110111003303ETXEnd of Text
1011101011004404EOTEnd of Transmission
1101011111005505ENQEnquiry
1011101111006606ACKAcknowledgment
1011111101007707BELBell
1011111111010808BSBackspace
11101111011909HTHorizontal Tab
11101012100ALFLine feed
1101101111013110BVTVertical Tab
1011011101014120CFFForm feed
11111015130DCRCarriage return
1101110101016140ESOShift Out
1110101011017150FSIShift In
10111101110201610DLEData Link Escape
10111101010211711DC1Device Control 1 (XON)
11101011010221812DC2Device Control 2
11101011110231913DC3Device Control 3 (XOFF)
11010110110242014DC4Device Control 4
11011010110252115NAKNegative Acknowledgement
11011011010262216SYNSynchronous Idle
11010101110272317ETBEnd of Trans. Block
11011110110302418CANCancel
11011111010312519EMEnd of Medium
1110110111032261ASUBSubstitute
1101010101033271BESCEscape
1101011101034281CFSFile Separator
1110111011035291DGSGroup Separator
1011111011036301ERSRecord Separator
1101111111037311FUSUnit Separator
11101101011771277FDELDelete

Printable characters

VaricodeOctDecHexGlyph
10403220SP
1111111110413321!
1010111110423422"
1111101010433523#
1110110110443624$
10110101010453725%
10101110110463826&
1011111110473927'
111110110504028(
111101110514129)
101101111052422A*
111011111053432B+
1110101054442C,
110101055452D-
1010111056462E.
110101111057472F/
101101110604830[0](0-number)
101111010614931[1](1-number)
111011010625032[2](2-number)
111111110635133[3](3-number)
1011101110645234[4](4-number)
1010110110655335[5](5-number)
1011010110665436[6](6-number)
1101011010675537[7](7-number)
1101010110705638[8](8-number)
1101101110715739[9](9-number)
11110101072583A:
110111101073593B;
111101101074603C
1010101075613D[=
111010111076623E[](greater-than-sign)
1010101111077633F?

| |

VaricodeOctDecHexGlyph
10101111011006440[@]()
11111011016541[A](a)
111010111026642[B](b)
101011011036743[C](c)
101101011046844[D](d)
11101111056945[E](e)
110110111067046[F](f)
111111011077147[G](g)
1010101011107248[H](h)
11111111117349[I](i)
111111101112744A[J](j)
101111101113754B[K](k)
11010111114764C[L](l)
10111011115774D[M](m)
11011101116784E[N](n)
10101011117794F[O](o)
110101011208050[P](p)
1110111011218151[Q](q)
101011111228252[R](r)
11011111238353[S](s)
11011011248454[T](t)
1010101111258555[U](u)
1101101011268656[V](v)
1010111011278757[W](w)
1011101011308858[X](x)
1011110111318959[Y](y)
1010101101132905A[Z](z)
111110111133915B[
111101111134925C\
111111011135935D[]](bracket)
1010111111136945E^
101101101137955F_

| |

VaricodeOctDecHexGlyph
10110111111409660'
10111419761[a](a)
10111111429862[b](b)
1011111439963[c](c)
10110114410064[d](d)
1114510165[e](e)
11110114610266[f](f)
101101114710367[g](g)
10101115010468[h](h)
110115110569[i](i)
1111010111521066A[j](j)
101111111531076B[k](k)
110111541086C[l](l)
1110111551096D[m](m)
11111561106E[n](n)
1111571116F[o](o)
11111116011270[p](p)
11011111116111371[q](q)
1010116211472[r](r)
1011116311573[s](s)
10116411674[t](t)
11011116511775[u](u)
111101116611876[v](v)
110101116711977[w](w)
1101111117012078[x](x)
101110117112179[y](y)
1110101011721227A[z](z)
10101101111731237B{
1101110111741247C[](vertical-bar)
10101101011751257D}
10110101111761267E~

|}

Character lengths

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.

BitsCodesCharacters
1
2
3
4
5
6
7
8
9
10

References

References

  1. Steven L Karty, N5SK. "PSK31 Spec". ARRL Website.
  2. Peter Martinez, G3PLX. "PSK31: A New Radio-Teletype Mode".
  3. ITU Working Party 5A. "ITU-R M.2034: Telegraphic Alphabet for Data Communication by Phase Shift Keying at 31 Baud in the Amateur and Amateur-Satellite Services.". International Telecommunication Union (approved Feb, 2013).
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Varicode — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report