Character Code Appendices

Reference Tables for Terminal Character Sets

← Back to User Manual

Table of Contents

Appendix A: ASCII Hex Table

The complete 7-bit ASCII character set (0x00-0x7F). Control characters (0x00-0x1F) and DEL (0x7F) are non-printable.

Control Characters (0x00-0x1F)

HexDecNameDescription
0x000NULNull
0x011SOHStart of Heading
0x022STXStart of Text
0x033ETXEnd of Text
0x044EOTEnd of Transmission
0x055ENQEnquiry
0x066ACKAcknowledge
0x077BELBell
0x088BSBackspace
0x099HTHorizontal Tab
0x0A10LFLine Feed
0x0B11VTVertical Tab
0x0C12FFForm Feed
0x0D13CRCarriage Return
0x0E14SOShift Out
0x0F15SIShift In
0x1016DLEData Link Escape
0x1117DC1Device Control 1 (XON)
0x1218DC2Device Control 2
0x1319DC3Device Control 3 (XOFF)
0x1420DC4Device Control 4
0x1521NAKNegative Acknowledge
0x1622SYNSynchronous Idle
0x1723ETBEnd of Trans. Block
0x1824CANCancel
0x1925EMEnd of Medium
0x1A26SUBSubstitute
0x1B27ESCEscape
0x1C28FSFile Separator
0x1D29GSGroup Separator
0x1E30RSRecord Separator
0x1F31USUnit Separator

Printable Characters (0x20-0x7E)

HexDecCharHexDecCharHexDecChar
0x2032(space)0x4064@0x6096`
0x2133!0x4165A0x6197a
0x2234"0x4266B0x6298b
0x2335#0x4367C0x6399c
0x2436$0x4468D0x64100d
0x2537%0x4569E0x65101e
0x2638&0x4670F0x66102f
0x2739'0x4771G0x67103g
0x2840(0x4872H0x68104h
0x2941)0x4973I0x69105i
0x2A42*0x4A74J0x6A106j
0x2B43+0x4B75K0x6B107k
0x2C44,0x4C76L0x6C108l
0x2D45-0x4D77M0x6D109m
0x2E46.0x4E78N0x6E110n
0x2F47/0x4F79O0x6F111o
0x304800x5080P0x70112p
0x314910x5181Q0x71113q
0x325020x5282R0x72114r
0x335130x5383S0x73115s
0x345240x5484T0x74116t
0x355350x5585U0x75117u
0x365460x5686V0x76118v
0x375570x5787W0x77119w
0x385680x5888X0x78120x
0x395790x5989Y0x79121y
0x3A58:0x5A90Z0x7A122z
0x3B59;0x5B91[0x7B123{
0x3C60<0x5C92\0x7C124|
0x3D61=0x5D93]0x7D125}
0x3E62>0x5E94^0x7E126~
0x3F63?0x5F95_0x7F127DEL

Appendix B: ANSI Escape Sequences

ANSI escape sequences are used to control text formatting, colors, and cursor positioning on compatible terminals. All sequences begin with the escape character (0x1B) followed by a left bracket '[', known as the Control Sequence Introducer (CSI).

Sequence Format

The general format is: ESC [ <parameters> <command>

Where ESC is 0x1B (decimal 27), parameters are optional numbers separated by semicolons, and the command is a single letter.

Cursor Control

SequenceNameDescription
ESC[HCUPCursor Home - Move cursor to row 1, column 1
ESC[n;mHCUPCursor Position - Move cursor to row n, column m
ESC[n;mfHVPHorizontal Vertical Position - Same as CUP
ESC[nACUUCursor Up - Move cursor up n rows (default 1)
ESC[nBCUDCursor Down - Move cursor down n rows (default 1)
ESC[nCCUFCursor Forward - Move cursor right n columns (default 1)
ESC[nDCUBCursor Back - Move cursor left n columns (default 1)
ESC[nECNLCursor Next Line - Move to beginning of line n down
ESC[nFCPLCursor Previous Line - Move to beginning of line n up
ESC[nGCHACursor Horizontal Absolute - Move to column n
ESC[6nDSRDevice Status Report - Reports cursor position as ESC[n;mR
ESC[sSCPSave Cursor Position
ESC[uRCPRestore Cursor Position
ESC 7DECSCSave Cursor (DEC private)
ESC 8DECRCRestore Cursor (DEC private)

Erase Functions

SequenceNameDescription
ESC[JEDErase Display - Clear from cursor to end of screen
ESC[0JEDErase Display - Clear from cursor to end of screen
ESC[1JEDErase Display - Clear from beginning of screen to cursor
ESC[2JEDErase Display - Clear entire screen
ESC[3JEDErase Display - Clear entire screen and scrollback buffer
ESC[KELErase Line - Clear from cursor to end of line
ESC[0KELErase Line - Clear from cursor to end of line
ESC[1KELErase Line - Clear from beginning of line to cursor
ESC[2KELErase Line - Clear entire line

Text Attributes (SGR - Select Graphic Rendition)

Format: ESC[nm or ESC[n;n;...m for multiple attributes

CodeNameDescription
0ResetReset all attributes to default
1BoldBold or increased intensity
2DimFaint or decreased intensity
3ItalicItalic (not widely supported)
4UnderlineUnderlined text
5BlinkSlow blink (less than 150 per minute)
6Rapid BlinkRapid blink (150+ per minute, rarely supported)
7ReverseSwap foreground and background colors
8HiddenConcealed/invisible text
9StrikethroughCrossed-out text
21Double UnderlineDouble underlined (or bold off on some terminals)
22Normal IntensityNeither bold nor dim
23Not ItalicDisable italic
24Not UnderlinedDisable underline
25Not BlinkingDisable blink
27Not ReversedDisable reverse video
28RevealDisable hidden
29Not StrikethroughDisable strikethrough

Standard Foreground Colors (30-37)

CodeColorCodeColor (Bright/Bold)
30Black90Bright Black (Gray)
31Red91Bright Red
32Green92Bright Green
33Yellow93Bright Yellow
34Blue94Bright Blue
35Magenta95Bright Magenta
36Cyan96Bright Cyan
37White97Bright White
39DefaultReset to default foreground

Standard Background Colors (40-47)

CodeColorCodeColor (Bright)
40Black100Bright Black (Gray)
41Red101Bright Red
42Green102Bright Green
43Yellow103Bright Yellow
44Blue104Bright Blue
45Magenta105Bright Magenta
46Cyan106Bright Cyan
47White107Bright White
49DefaultReset to default background

256-Color Mode

Extended color support using 256-color palette:

SequenceDescription
ESC[38;5;nmSet foreground to color n (0-255)
ESC[48;5;nmSet background to color n (0-255)

Color ranges:

24-bit True Color Mode

SequenceDescription
ESC[38;2;r;g;bmSet foreground to RGB color (0-255 each)
ESC[48;2;r;g;bmSet background to RGB color (0-255 each)

Screen Modes

SequenceDescription
ESC[?25hShow cursor (DECTCEM)
ESC[?25lHide cursor (DECTCEM)
ESC[?47hSave screen and switch to alternate buffer
ESC[?47lRestore screen from alternate buffer
ESC[?1049hEnable alternate screen buffer (saves cursor too)
ESC[?1049lDisable alternate screen buffer (restores cursor)
ESC[?7hEnable line wrapping
ESC[?7lDisable line wrapping

Scrolling

SequenceDescription
ESC[nSScroll up n lines (default 1)
ESC[nTScroll down n lines (default 1)
ESC[t;brSet scrolling region from line t to line b

Line and Character Operations

SequenceDescription
ESC[nLInsert n blank lines at cursor position
ESC[nMDelete n lines starting at cursor position
ESC[n@Insert n blank characters at cursor position
ESC[nPDelete n characters at cursor position
ESC[nXErase n characters at cursor position

Common Escape Sequences Quick Reference

SequenceHex BytesDescription
ESC[2J1B 5B 32 4AClear entire screen
ESC[H1B 5B 48Move cursor to home (1,1)
ESC[2J ESC[H1B 5B 32 4A 1B 5B 48Clear screen and home cursor
ESC[0m1B 5B 30 6DReset all attributes
ESC[1m1B 5B 31 6DBold on
ESC[31m1B 5B 33 31 6DRed foreground
ESC[44m1B 5B 34 34 6DBlue background
ESC[1;31m1B 5B 31 3B 33 31 6DBold red foreground
ESC[?25l1B 5B 3F 32 35 6CHide cursor
ESC[?25h1B 5B 3F 32 35 68Show cursor

C0 Control Characters Used with ANSI

HexDecNameDescription
0x077BELBell - Terminal bell/alert
0x088BSBackspace - Move cursor left one position
0x099HTHorizontal Tab - Move to next tab stop
0x0A10LFLine Feed - Move cursor down one line
0x0B11VTVertical Tab - Move cursor down (treated as LF)
0x0C12FFForm Feed - Clear screen on some terminals
0x0D13CRCarriage Return - Move cursor to column 1
0x1B27ESCEscape - Starts escape sequences
Note: ANSI escape sequences originated from the ANSI X3.64 standard (also known as ECMA-48). Support varies between terminal emulators. The sequences documented here are widely supported on modern terminals including xterm, VT100 compatibles, and most Linux/macOS/Windows terminal emulators. TelnetBible.com uses a subset of these sequences for screen clearing (ESC[2J ESC[H), cursor positioning, and color output on ANSI terminals.

Appendix C: PETSCII Hex Table

The Commodore 64 PETSCII character set. PETSCII differs from ASCII in several ways: control codes, graphics characters, and case handling (uppercase/lowercase are swapped compared to standard ASCII).

PETSCII Control Characters (0x00-0x1F)

HexDecNameDescription
0x000-(Unused)
0x011-(Unused)
0x022-(Unused)
0x033STOPRun/Stop
0x044-(Unused)
0x055WHTWhite
0x066-(Unused)
0x077BELLBell
0x088DISHDisable Shift+C=
0x099ENSHEnable Shift+C=
0x0A10-(Unused)
0x0B11-(Unused)
0x0C12-(Unused)
0x0D13CRCarriage Return
0x0E14LOWRSwitch to Lowercase
0x0F15-(Unused)
0x1016-(Unused)
0x1117DOWNCursor Down
0x1218RVONReverse On
0x1319HOMECursor Home
0x1420DELDelete (Backspace)
0x1521-(Unused)
0x1622-(Unused)
0x1723-(Unused)
0x1824-(Unused)
0x1925-(Unused)
0x1A26-(Unused)
0x1B27-(Unused - no native ESC)
0x1C28REDRed
0x1D29RIGHTCursor Right
0x1E30GRNGreen
0x1F31BLUBlue

PETSCII Printable Characters (0x20-0x3F)

HexDecCharDescription
0x2032(space)Space
0x2133!Exclamation Mark
0x2234"Quotation Mark
0x2335#Number Sign
0x2436$Dollar Sign
0x2537%Percent Sign
0x2638&Ampersand
0x2739'Apostrophe
0x2840(Left Parenthesis
0x2941)Right Parenthesis
0x2A42*Asterisk
0x2B43+Plus Sign
0x2C44,Comma
0x2D45-Hyphen-Minus
0x2E46.Full Stop
0x2F47/Solidus (Slash)
0x30480Digit Zero
0x31491Digit One
0x32502Digit Two
0x33513Digit Three
0x34524Digit Four
0x35535Digit Five
0x36546Digit Six
0x37557Digit Seven
0x38568Digit Eight
0x39579Digit Nine
0x3A58:Colon
0x3B59;Semicolon
0x3C60<Less-Than Sign
0x3D61=Equals Sign
0x3E62>Greater-Than Sign
0x3F63?Question Mark

PETSCII Uppercase Letters (0x40-0x5F)

Note: In PETSCII uppercase mode, these are uppercase letters. In lowercase mode, these become graphics characters.

HexDecCharDescription
0x4064@Commercial At
0x4165ALatin Capital Letter A
0x4266BLatin Capital Letter B
0x4367CLatin Capital Letter C
0x4468DLatin Capital Letter D
0x4569ELatin Capital Letter E
0x4670FLatin Capital Letter F
0x4771GLatin Capital Letter G
0x4872HLatin Capital Letter H
0x4973ILatin Capital Letter I
0x4A74JLatin Capital Letter J
0x4B75KLatin Capital Letter K
0x4C76LLatin Capital Letter L
0x4D77MLatin Capital Letter M
0x4E78NLatin Capital Letter N
0x4F79OLatin Capital Letter O
0x5080PLatin Capital Letter P
0x5181QLatin Capital Letter Q
0x5282RLatin Capital Letter R
0x5383SLatin Capital Letter S
0x5484TLatin Capital Letter T
0x5585ULatin Capital Letter U
0x5686VLatin Capital Letter V
0x5787WLatin Capital Letter W
0x5888XLatin Capital Letter X
0x5989YLatin Capital Letter Y
0x5A90ZLatin Capital Letter Z
0x5B91[Left Square Bracket
0x5C92£Pound Sign
0x5D93]Right Square Bracket
0x5E94Up Arrow
0x5F95Left Arrow (used as ESC equivalent)

PETSCII Graphics/Lowercase (0x60-0x7F)

Note: In uppercase mode, these are graphics characters. In lowercase mode, 0x61-0x7A become lowercase letters.

HexDecUpper ModeLower Mode
0x6096Horizontal LineHorizontal Line
0x6197Spadea
0x6298Vertical Line Leftb
0x6399Horizontal Line Bottomc
0x64100Horizontal Line Top/Bottomd
0x65101Horizontal Line Tope
0x66102Vertical Line Right Topf
0x67103Vertical Line Right Bottomg
0x68104Vertical Line Left Bottomh
0x69105Corner Round Right Bottomi
0x6A106Corner Round Right Topj
0x6B107Corner Round Left Topk
0x6C108Half Block Bottom Rightl
0x6D109Corner Round Left Bottomm
0x6E110Half Block Upper Rightn
0x6F111Half Block Lower Lefto
0x70112Half Block Lower Rightp
0x71113Circleq
0x72114Half Block Upper Leftr
0x73115Hearts
0x74116Vertical Line Left Topt
0x75117Crossu
0x76118Diamondv
0x77119Crossw
0x78120Vertical Linex
0x79121Cluby
0x7A122Vertical Line Rightz
0x7B123CrossCross
0x7C124Half Block UpperHalf Block Upper
0x7D125Pi SymbolPi Symbol
0x7E126Half Block LowerHalf Block Lower
0x7F127Half Block LeftHalf Block Left

PETSCII High Control Characters (0x80-0x9F)

HexDecNameDescription
0x80128-(Unused)
0x81129ORGOrange
0x82130-(Unused)
0x83131-(Unused)
0x84132-(Unused)
0x85133F1Function Key 1
0x86134F3Function Key 3
0x87135F5Function Key 5
0x88136F7Function Key 7
0x89137F2Function Key 2
0x8A138F4Function Key 4
0x8B139F6Function Key 6
0x8C140F8Function Key 8
0x8D141SHRETShift+Return
0x8E142UPPRSwitch to Uppercase
0x8F143-(Unused)
0x90144BLKBlack
0x91145UPCursor Up
0x92146RVOFReverse Off
0x93147CLRClear Screen
0x94148INSTInsert
0x95149BRNBrown
0x96150LTRDLight Red (Pink)
0x97151GRY1Dark Gray
0x98152GRY2Medium Gray
0x99153LTGRLight Green
0x9A154LTBLLight Blue
0x9B155GRY3Light Gray
0x9C156PURPurple
0x9D157LEFTCursor Left
0x9E158YELYellow
0x9F159CYNCyan

PETSCII Shifted Graphics (0xA0-0xBF)

HexDecDescription
0xA0160Shifted Space
0xA1161Vertical Bar Left
0xA2162Horizontal Bar Bottom
0xA3163Horizontal Bar Top
0xA4164Horizontal Bar
0xA5165Horizontal Bar Left
0xA6166Checkerboard
0xA7167Vertical Bar Right
0xA8168Vertical Bar Bottom
0xA9169Corner Lower Right
0xAA170Corner Upper Right
0xAB171Corner Upper Left
0xAC172Quarter Block Lower Right
0xAD173Corner Lower Left
0xAE174Quarter Block Upper Right
0xAF175Quarter Block Lower Left
0xB0176Quarter Block Lower Right
0xB1177Vertical Bar Left Bottom
0xB2178Quarter Block Upper Left
0xB3179Vertical Bar Top
0xB4180Vertical Bar Bottom
0xB5181T Junction Left
0xB6182Vertical Bar
0xB7183T Junction Top
0xB8184T Junction Bottom
0xB9185Half Block Right
0xBA186T Junction Right
0xBB187Cross Junction
0xBC188Upper Half Block
0xBD189Pi Symbol
0xBE190Lower Half Block
0xBF191Half Block Left

PETSCII Shifted Letters/Graphics (0xC0-0xDF)

Note: In uppercase mode, these match 0x60-0x7F graphics. In lowercase mode, 0xC1-0xDA are uppercase letters.

HexDecUpper ModeLower Mode
0xC0192Horizontal LineHorizontal Line
0xC1193SpadeA
0xC2194Vertical Line LeftB
0xC3195Horizontal Line BottomC
0xC4196Line HorizontalD
0xC5197Horizontal Line TopE
0xC6198Vertical Line Right TopF
0xC7199Vertical Line Right BottomG
0xC8200Vertical Line Left BottomH
0xC9201Corner Round Right BottomI
0xCA202Corner Round Right TopJ
0xCB203Corner Round Left TopK
0xCC204Half Block Bottom RightL
0xCD205Corner Round Left BottomM
0xCE206Half Block Upper RightN
0xCF207Half Block Lower LeftO
0xD0208Half Block Lower RightP
0xD1209CircleQ
0xD2210Half Block Upper LeftR
0xD3211HeartS
0xD4212Vertical Line Left TopT
0xD5213CrossU
0xD6214DiamondV
0xD7215CrossW
0xD8216Vertical LineX
0xD9217ClubY
0xDA218Vertical Line RightZ
0xDB219CrossCross
0xDC220Half Block UpperHalf Block Upper
0xDD221Pi SymbolPi Symbol
0xDE222Half Block LowerHalf Block Lower
0xDF223Half Block LeftHalf Block Left

PETSCII High Graphics (0xE0-0xFF)

HexDecDescription
0xE0224Shifted Space
0xE1225Vertical Bar Left
0xE2226Horizontal Bar Bottom
0xE3227Horizontal Bar Top
0xE4228Horizontal Bar
0xE5229Horizontal Bar Left
0xE6230Checkerboard
0xE7231Vertical Bar Right
0xE8232Vertical Bar Bottom
0xE9233Corner Lower Right
0xEA234Corner Upper Right
0xEB235Corner Upper Left
0xEC236Quarter Block Lower Right
0xED237Corner Lower Left
0xEE238Quarter Block Upper Right
0xEF239Quarter Block Lower Left
0xF0240Quarter Block Lower Right
0xF1241Vertical Bar Left Bottom
0xF2242Quarter Block Upper Left
0xF3243Vertical Bar Top
0xF4244Vertical Bar Bottom
0xF5245T Junction Left
0xF6246Vertical Bar
0xF7247T Junction Top
0xF8248T Junction Bottom
0xF9249Half Block Right
0xFA250T Junction Right
0xFB251Cross Junction
0xFC252Upper Half Block
0xFD253Pi Symbol
0xFE254Full Block
0xFF255Pi Symbol
Note: PETSCII has two character modes controlled by codes 0x0E (lowercase mode) and 0x8E (uppercase mode). In uppercase mode, codes 0x41-0x5A display uppercase letters and codes 0x61-0x7A display graphics. In lowercase mode, 0x41-0x5A display lowercase letters and 0x61-0x7A display uppercase letters. TelnetBible.com uses the lowercase character set (0x0E) and swaps case in software.

Appendix D: ATASCII Hex Table

The ATASCII character set used by Atari 8-bit computers (400, 800, XL, XE series). ATASCII is similar to ASCII but has unique control codes and graphics characters. Codes 0x80-0xFF are inverse video versions of 0x00-0x7F.

ATASCII Control Characters (0x00-0x1F)

HexDecNameDescription
0x000-(Null/Heart graphics)
0x011-(Ctrl+A graphics)
0x022-(Ctrl+B graphics)
0x033-(Ctrl+C graphics)
0x044-(Ctrl+D graphics)
0x055-(Ctrl+E graphics)
0x066-(Ctrl+F graphics)
0x077BELLBell (buzzer)
0x088-(Ctrl+H graphics)
0x099-(Ctrl+I graphics)
0x0A10-(Ctrl+J graphics)
0x0B11-(Ctrl+K graphics)
0x0C12-(Ctrl+L graphics)
0x0D13-(Ctrl+M graphics)
0x0E14-(Ctrl+N graphics)
0x0F15-(Ctrl+O graphics)
0x1016-(Ctrl+P graphics)
0x1117-(Ctrl+Q graphics)
0x1218-(Ctrl+R graphics)
0x1319-(Ctrl+S graphics)
0x1420-(Ctrl+T graphics)
0x1521-(Ctrl+U graphics)
0x1622-(Ctrl+V graphics)
0x1723-(Ctrl+W graphics)
0x1824-(Ctrl+X graphics)
0x1925-(Ctrl+Y graphics)
0x1A26-(Ctrl+Z graphics)
0x1B27ESCEscape
0x1C28UPCursor Up
0x1D29DOWNCursor Down
0x1E30LEFTCursor Left
0x1F31RIGHTCursor Right

ATASCII Printable Characters (0x20-0x5F)

HexDecCharHexDecChar
0x2032(space)0x4064@
0x2133!0x4165A
0x2234"0x4266B
0x2335#0x4367C
0x2436$0x4468D
0x2537%0x4569E
0x2638&0x4670F
0x2739'0x4771G
0x2840(0x4872H
0x2941)0x4973I
0x2A42*0x4A74J
0x2B43+0x4B75K
0x2C44,0x4C76L
0x2D45-0x4D77M
0x2E46.0x4E78N
0x2F47/0x4F79O
0x304800x5080P
0x314910x5181Q
0x325020x5282R
0x335130x5383S
0x345240x5484T
0x355350x5585U
0x365460x5686V
0x375570x5787W
0x385680x5888X
0x395790x5989Y
0x3A58:0x5A90Z
0x3B59;0x5B91[
0x3C60<0x5C92\
0x3D61=0x5D93]
0x3E62>0x5E94^
0x3F63?0x5F95_

ATASCII Lowercase and Graphics (0x60-0x7F)

HexDecCharDescription
0x6096Diamond
0x6197aLowercase a
0x6298bLowercase b
0x6399cLowercase c
0x64100dLowercase d
0x65101eLowercase e
0x66102fLowercase f
0x67103gLowercase g
0x68104hLowercase h
0x69105iLowercase i
0x6A106jLowercase j
0x6B107kLowercase k
0x6C108lLowercase l
0x6D109mLowercase m
0x6E110nLowercase n
0x6F111oLowercase o
0x70112pLowercase p
0x71113qLowercase q
0x72114rLowercase r
0x73115sLowercase s
0x74116tLowercase t
0x75117uLowercase u
0x76118vLowercase v
0x77119wLowercase w
0x78120xLowercase x
0x79121yLowercase y
0x7A122zLowercase z
0x7B123Spade
0x7C124|Vertical Bar
0x7D125CLRClear Screen
0x7E126BSBackspace
0x7F127TABTab

ATASCII Inverse Control Characters (0x80-0x9F)

These are inverse video versions of 0x00-0x1F graphics characters.

HexDecNameDescription
0x80128-Inverse Heart
0x81129-Inverse Ctrl+A
0x82130-Inverse Ctrl+B
0x83131-Inverse Ctrl+C
0x84132-Inverse Ctrl+D
0x85133-Inverse Ctrl+E
0x86134-Inverse Ctrl+F
0x87135-Inverse Ctrl+G
0x88136-Inverse Ctrl+H
0x89137-Inverse Ctrl+I
0x8A138-Inverse Ctrl+J
0x8B139-Inverse Ctrl+K
0x8C140-Inverse Ctrl+L
0x8D141-Inverse Ctrl+M
0x8E142-Inverse Ctrl+N
0x8F143-Inverse Ctrl+O
0x90144-Inverse Ctrl+P
0x91145-Inverse Ctrl+Q
0x92146-Inverse Ctrl+R
0x93147-Inverse Ctrl+S
0x94148-Inverse Ctrl+T
0x95149-Inverse Ctrl+U
0x96150-Inverse Ctrl+V
0x97151-Inverse Ctrl+W
0x98152-Inverse Ctrl+X
0x99153-Inverse Ctrl+Y
0x9A154-Inverse Ctrl+Z
0x9B155EOLEnd of Line (Return)
0x9C156DELLNDelete Line
0x9D157INSLNInsert Line
0x9E158CLRTABClear Tab Stop
0x9F159SETTABSet Tab Stop

ATASCII Inverse Printable Characters (0xA0-0xDF)

These are inverse video versions of 0x20-0x5F.

HexDecCharHexDecChar
0xA0160Inv (space)0xC0192Inv @
0xA1161Inv !0xC1193Inv A
0xA2162Inv "0xC2194Inv B
0xA3163Inv #0xC3195Inv C
0xA4164Inv $0xC4196Inv D
0xA5165Inv %0xC5197Inv E
0xA6166Inv &0xC6198Inv F
0xA7167Inv '0xC7199Inv G
0xA8168Inv (0xC8200Inv H
0xA9169Inv )0xC9201Inv I
0xAA170Inv *0xCA202Inv J
0xAB171Inv +0xCB203Inv K
0xAC172Inv ,0xCC204Inv L
0xAD173Inv -0xCD205Inv M
0xAE174Inv .0xCE206Inv N
0xAF175Inv /0xCF207Inv O
0xB0176Inv 00xD0208Inv P
0xB1177Inv 10xD1209Inv Q
0xB2178Inv 20xD2210Inv R
0xB3179Inv 30xD3211Inv S
0xB4180Inv 40xD4212Inv T
0xB5181Inv 50xD5213Inv U
0xB6182Inv 60xD6214Inv V
0xB7183Inv 70xD7215Inv W
0xB8184Inv 80xD8216Inv X
0xB9185Inv 90xD9217Inv Y
0xBA186Inv :0xDA218Inv Z
0xBB187Inv ;0xDB219Inv [
0xBC188Inv <0xDC220Inv \
0xBD189Inv =0xDD221Inv ]
0xBE190Inv >0xDE222Inv ^
0xBF191Inv ?0xDF223Inv _

ATASCII Inverse Lowercase and Graphics (0xE0-0xFF)

These are inverse video versions of 0x60-0x7F.

HexDecCharDescription
0xE0224Inv ♦Inverse Diamond
0xE1225Inv aInverse Lowercase a
0xE2226Inv bInverse Lowercase b
0xE3227Inv cInverse Lowercase c
0xE4228Inv dInverse Lowercase d
0xE5229Inv eInverse Lowercase e
0xE6230Inv fInverse Lowercase f
0xE7231Inv gInverse Lowercase g
0xE8232Inv hInverse Lowercase h
0xE9233Inv iInverse Lowercase i
0xEA234Inv jInverse Lowercase j
0xEB235Inv kInverse Lowercase k
0xEC236Inv lInverse Lowercase l
0xED237Inv mInverse Lowercase m
0xEE238Inv nInverse Lowercase n
0xEF239Inv oInverse Lowercase o
0xF0240Inv pInverse Lowercase p
0xF1241Inv qInverse Lowercase q
0xF2242Inv rInverse Lowercase r
0xF3243Inv sInverse Lowercase s
0xF4244Inv tInverse Lowercase t
0xF5245Inv uInverse Lowercase u
0xF6246Inv vInverse Lowercase v
0xF7247Inv wInverse Lowercase w
0xF8248Inv xInverse Lowercase x
0xF9249Inv yInverse Lowercase y
0xFA250Inv zInverse Lowercase z
0xFB251Inv ♠Inverse Spade
0xFC252Inv |Inverse Vertical Bar
0xFD253BELLBell (buzzer)
0xFE254DELDelete Character
0xFF255INSInsert Character

Key ATASCII Codes Reference

FunctionHexDecNotes
Escape0x1B27Same as ASCII
Return/EOL0x9B155End of logical line
Backspace0x7E126Delete character left
Delete0xFE254Delete character at cursor
Insert0xFF255Insert mode toggle
Clear Screen0x7D125Clear and home cursor
Cursor Up0x1C28
Cursor Down0x1D29
Cursor Left0x1E30
Cursor Right0x1F31
Tab0x7F127Move to next tab stop
Bell0xFD253Also 0x07
Delete Line0x9C156
Insert Line0x9D157
Note: ATASCII uses 0x9B (155) for end-of-line instead of the standard ASCII 0x0D (13). The upper 128 characters (0x80-0xFF) are inverse video versions of the lower 128 (0x00-0x7F), except for certain control codes in the 0x9B-0x9F and 0xFD-0xFF ranges which have special functions.

Appendix E: Baudot (ITA2) Code Table

Emile Baudot devised his 5-bit telegraph encoding in the 1870s. The CCITT adopted a refined version as International Telegraph Alphabet No. 2 (ITA2) in 1932, and it remained the standard teleprinter code worldwide until ASCII took over in the 1960s. The unit of signaling speed, the "baud," takes its name from Baudot.

How Baudot Works

With only 5 bits, Baudot can represent 32 unique codes (0-31). To encode letters, numbers, and punctuation, Baudot uses two "shift" states:

The receiver maintains the current shift state. Sending LTRS (code 31) or FIGS (code 27) changes the state for all subsequent characters until another shift code is received.

ITA2 Code Table

BinaryDecHexLetters (LTRS)Figures (FIGS)
0000000x00NUL (Null)NUL (Null)
0000110x01E3
0001020x02LF (Line Feed)LF (Line Feed)
0001130x03A-
0010040x04SP (Space)SP (Space)
0010150x05S'
0011060x06I8
0011170x07U7
0100080x08CR (Carriage Return)CR (Carriage Return)
0100190x09DENQ (Who Are You?)
01010100x0AR4
01011110x0BJBEL (Bell)
01100120x0CN,
01101130x0DF!
01110140x0EC:
01111150x0FK(
10000160x10T5
10001170x11Z+
10010180x12L)
10011190x13W2
10100200x14H£
10101210x15Y6
10110220x16P0
10111230x17Q1
11000240x18O9
11001250x19B?
11010260x1AG&
11011270x1BFIGS (Shift to Figures)FIGS (Shift to Figures)
11100280x1CM.
11101290x1DX/
11110300x1EV=
11111310x1FLTRS (Shift to Letters)LTRS (Shift to Letters)

Control Characters

CodeNameDescription
0 (00000)NULNull - No operation, used for timing/padding
2 (00010)LFLine Feed - Move paper up one line
4 (00100)SPSpace - Blank character, advances position
8 (01000)CRCarriage Return - Return print head to start of line
27 (11011)FIGSFigures Shift - Switch to figures mode
31 (11111)LTRSLetters Shift - Switch to letters mode

Figures Mode Special Codes

CodeCharacterNotes
9 (01001)ENQ"Who Are You?" - Requests station identification
11 (01011)BELBell - Rings the teleprinter bell

US TTY Variant

The United States used a variant called US TTY (Teletypewriter) with some different figure assignments:

CodeITA2US TTY
5 (00101)' (apostrophe)BEL (bell)
11 (01011)BEL (bell)' (apostrophe)
20 (10100)£ (pound)$ (dollar)

Encoding Example

To send "HELLO 123":

CharacterShift StateCode SentBinary
LTRS-3111111
HLetters2010100
ELetters100001
LLetters1810010
LLetters1810010
OLetters2411000
SPLetters400100
FIGS-2711011
1Figures2310111
2Figures1910011
3Figures100001

Quick Reference: Letters Mode

ABCDEFGHIJKLM
3251491132620611151828
NOPQRSTUVWXYZ
122422231051673019292117

Quick Reference: Figures Mode (Digits)

0123456789
22231911016217624
Historical Note: Baudot code was designed for mechanical teleprinters operating at speeds of 45.45 to 75 baud (bits per second). Each character required a start bit, 5 data bits, and 1-2 stop bits, giving effective character rates of about 6-10 characters per second. The lack of lowercase letters wasn't a limitation at the time, as teleprinters only had uppercase type. Baudot remained in use for Telex networks until the 1980s and TDD/TTY devices for the deaf until the 2000s.

Appendix F: ZX Spectrum Character Set

The Sinclair ZX Spectrum (1982) used a custom character set based on ASCII but with unique additions. It shared standard ASCII printable characters (0x20-0x7F) with two notable exceptions, and added block graphics characters and BASIC keyword tokens in the upper range.

Control Characters (0x00-0x1F)

The ZX Spectrum uses several custom control codes. Most codes below 0x06 are not used.

HexDecNameDescription
0x066COMMAPRINT comma control (move to next print zone)
0x088LEFTCursor Left (Backspace)
0x099RIGHTCursor Right
0x0A10DOWNCursor Down
0x0B11UPCursor Up
0x0C12DELETEDelete
0x0D13ENTEREnter / Newline
0x1016INKSet ink (foreground) color (next byte = 0-7)
0x1117PAPERSet paper (background) color (next byte = 0-7)
0x1218FLASHSet flash attribute (next byte = 0 or 1)
0x1319BRIGHTSet bright attribute (next byte = 0 or 1)
0x1420INVERSESet inverse attribute (next byte = 0 or 1)
0x1521OVERSet overprint mode (next byte = 0 or 1)
0x1622ATPosition cursor (next 2 bytes = row, column)
0x1723TABTab to column (next 2 bytes = column number)

Character Set Differences from ASCII

The ZX Spectrum printable range (0x20-0x7F) matches standard ASCII except for two positions:

HexDecASCIIZX Spectrum
0x6096` (backtick)£ (pound sterling)
0x7F127DEL© (copyright symbol)

ZX Spectrum Colors

Used with the INK (0x10) and PAPER (0x11) control codes:

ValueColorBright Color
0BlackBlack
1BlueBright Blue
2RedBright Red
3MagentaBright Magenta
4GreenBright Green
5CyanBright Cyan
6YellowBright Yellow
7WhiteBright White

Block Graphics Characters (0x80-0x8F)

The ZX Spectrum's distinctive block graphics divide each character cell into four quadrants (2×2 grid). Each of the 16 combinations represents a different pattern of filled and empty quadrants. These were widely used for games and UI elements.

HexDecPatternDescription
0x80128 All empty (space)
0x81129Bottom-right quadrant
0x82130Bottom-left quadrant
0x83131Bottom half
0x84132Top-right quadrant
0x85133Right half
0x86134Top-right + bottom-left (diagonal)
0x87135Top-right + bottom half
0x88136Top-left quadrant
0x89137Top-left + bottom-right (diagonal)
0x8A138Left half
0x8B139Top-left + bottom half
0x8C140Top half
0x8D141Top half + bottom-right
0x8E142Top half + bottom-left
0x8F143Full block (all filled)

User Defined Graphics (0x90-0xA4)

Characters 0x90-0xA4 (144-164) are User Defined Graphics (UDG) slots A through U. These are customizable 8×8 pixel characters that programs can redefine. By default, they display as letters A-U, but games and applications typically redefine them for custom sprites and icons.

HexDecUDG LetterHexDecUDG LetterHexDecUDG Letter
0x90144A0x97151H0x9E158O
0x91145B0x98152I0x9F159P
0x92146C0x99153J0xA0160Q
0x93147D0x9A154K0xA1161R
0x94148E0x9B155L0xA2162S
0x95149F0x9C156M0xA3163T
0x96150G0x9D157N0xA4164U

BASIC Keyword Tokens (0xA5-0xFF)

The ZX Spectrum stored BASIC keywords as single-byte tokens to save memory. When listed, each token expands to the full keyword. This is a selection of the most commonly used tokens:

HexDecKeywordHexDecKeyword
0xA5165RND0xCE206LINE
0xA6166INKEY$0xD1209BORDER
0xA7167PI0xDA218PAPER
0xAB171AT0xDB219INK
0xAC172TAB0xE0224LPRINT
0xAF175CODE0xE1225LLIST
0xB0176VAL0xEB235BEEP
0xB1177LEN0xEF239POKE
0xB4180CHR$0xF1241PRINT
0xB9185USR0xF5245LOAD
0xBB187PEEK0xF8248INPUT
0xC0192IF0xF9249RANDOMIZE
0xC3195THEN0xFB251CLS
0xC4196TO0xFD253GOTO
0xC5197STEP0xFE254GOSUB
0xCA202READ0xFF255RETURN
Historical Note: The ZX Spectrum was designed by Sinclair Research in Cambridge, England and launched in 1982 at £125 for the 16K model. It sold over 5 million units and became the best-selling home computer in the UK. Its block graphics characters (0x80-0x8F) were a defining feature, enabling colorful pseudo-high-resolution graphics using simple character-based rendering. The keyword tokenization scheme was inherited from the earlier ZX80 and ZX81, and allowed BASIC programs to be entered quickly using single keypresses — each key had a BASIC keyword printed on it.

Appendix G: TRS-80 Character Set

The Tandy/Radio Shack TRS-80 (1977) used a custom character set. The lower range (0x00-0x7F) follows ASCII for standard characters. The upper range (0x80-0xFF) contains the TRS-80's distinctive semigraphics characters — block graphics formed by dividing each character cell into a 2×3 grid of six independently controllable pixels.

Control Characters (0x00-0x1F)

The TRS-80 uses standard ASCII control characters. Most are not printable. Key codes relevant to terminal operation:

HexDecNameDescription
0x088BSBackspace (cursor left)
0x099HTHorizontal Tab
0x0A10LFLine Feed (cursor down)
0x0D13CRCarriage Return (Enter)
0x0E14SOCursor On (Model III/4)
0x0F15SICursor Off (Model III/4)
0x1723ETBCursor right (Model III/4)
0x1824CANBackspace and erase
0x1A26SUBCursor up (Model III/4)
0x1B27ESCEscape (Model III/4 only)
0x1C28FSHome cursor
0x1D29GSCursor right
0x1E30RSCursor down
0x1F31USClear screen and home (Model I: home only)

Printable Characters (0x20-0x5F)

Standard ASCII digits, punctuation, and uppercase letters. The TRS-80 Model I did not have lowercase letters — positions 0x60-0x7F were unused or mapped to additional graphics. The Model III and Model 4 added lowercase in this range.

HexDecCharHexDecCharHexDecChar
0x2032(space)0x304800x4064@
0x2133!0x314910x4165A
0x2234"0x325020x4266B
0x2335#0x335130x4367C
0x2436$0x345240x4468D
0x2537%0x355350x4569E
0x2638&0x365460x4670F
0x2739'0x375570x4771G
0x2840(0x385680x4872H
0x2941)0x395790x4973I
0x2A42*0x3A58:0x4A74J
0x2B43+0x3B59;0x4B75K
0x2C44,0x3C60<0x4C76L
0x2D45-0x3D61=0x4D77M
0x2E46.0x3E62>0x4E78N
0x2F47/0x3F63?0x4F79O
0x5080P
0x5181Q
0x5282R
0x5383S
0x5484T
0x5585U
0x5686V
0x5787W
0x5888X
0x5989Y
0x5A90Z
0x5B91[
0x5C92\
0x5D93]
0x5E94^
0x5F95_

Lowercase Characters (0x60-0x7F) — Model III/4 Only

The TRS-80 Model I lacked lowercase letters entirely. The Model III (1980) and Model 4 (1983) added lowercase in the 0x60-0x7F range, matching standard ASCII:

HexDecCharHexDecCharHexDecChar
0x6096`0x6A106j0x74116t
0x6197a0x6B107k0x75117u
0x6298b0x6C108l0x76118v
0x6399c0x6D109m0x77119w
0x64100d0x6E110n0x78120x
0x65101e0x6F111o0x79121y
0x66102f0x70112p0x7A122z
0x67103g0x71113q0x7B123{
0x68104h0x72114r0x7C124|
0x69105i0x73115s0x7D125}

Semigraphics Characters (0x80-0xBF)

The TRS-80's most distinctive feature: 64 block graphics characters formed by dividing each character cell into a 2×3 grid of six pixels. Each pixel can be on (white) or off (black), giving 26 = 64 possible patterns. The pixel positions are numbered as bits:

Pixel LayoutBit Weight
Top-leftTop-right1, 2
Middle-leftMiddle-right4, 8
Bottom-leftBottom-right16, 32

The character code is calculated as: 0x80 + (sum of active pixel bit weights)

For example: top-left (1) + middle-right (8) + bottom-left (16) = 0x80 + 25 = 0x99

HexDecActive PixelsDescription
0x80128(none)Empty block (all pixels off)
0x811291Top-left only
0x821302Top-right only
0x831311+2Top row
0x841324Middle-left only
0x851331+4Left column top two
0x881368Middle-right only
0x8C1404+8Middle row
0x9014416Bottom-left only
0x931471+2+16Top row + bottom-left
0xA016032Bottom-right only
0xA11611+32Top-left + bottom-right (diagonal)
0xB017616+32Bottom row
0xB31791+2+16+32Top + bottom rows
0xBC1884+8+16+32Middle + bottom rows
0xBF1911+2+4+8+16+32Full block (all pixels on)

Common Semigraphics Patterns

A quick reference for frequently used block patterns in TRS-80 programs:

PatternHexBitsUse
Full block0xBF63Solid fill, walls
Left half0xB51+4+16+32Vertical dividers
Right half0xAA2+8+32Vertical dividers
Top half0x8F1+2+4+8Horizontal dividers
Bottom half0xB016+32Horizontal dividers, underlines
Checkerboard A0xAA2+8+32Shading, dithering
Checkerboard B0x951+4+16Shading, dithering
Top row0x831+2Thin top border
Middle row0x8C4+8Thin middle line
Bottom row0xB016+32Thin bottom border

Extended Characters (0xC0-0xFF) — Model III/4

On the TRS-80 Model I, codes 0xC0-0xFF were mirrors of the semigraphics range (0x80-0xBF). On the Model III and Model 4, this range was repurposed for additional characters including international and special symbols. A selection of commonly used codes:

HexDecCharDescription
0xC0192Spade
0xC1193Heart
0xC2194Diamond
0xC3195Club
0xC4196Up Arrow
0xC5197Down Arrow
0xC6198Left Arrow
0xC7199Right Arrow
0xCB203£Pound Sterling
0xCC204¥Yen
0xCF207©Copyright
0xD0208®Registered
0xD3211¼One Quarter
0xD4212½One Half
0xDB219Horizontal Line
0xDC220Vertical Line
0xDD221Top-Left Corner
0xDE222Top-Right Corner
0xDF223Bottom-Left Corner
0xE0224Bottom-Right Corner
0xE1225Cross (intersection)
0xE2226Left T-junction
0xE3227Right T-junction
0xE4228Top T-junction
0xE5229Bottom T-junction
Historical Note: The TRS-80 Model I was one of the "1977 Trinity" of personal computers alongside the Apple II and Commodore PET. Its 2×3 semigraphics system was a clever solution to the lack of a dedicated graphics chip — by treating each text character cell as six independent pixels, it effectively gave the machine a 128×48 "pixel" display using only the text-mode video hardware. This technique was widely used for games, charts, and scientific visualization. The TRS-80 used a 64-column by 16-line display (Model I/III) with monochrome green or white phosphor monitors. Despite the "Trash-80" nickname from competitors, it was the best-selling personal computer line from 1977 to 1981.

← Back to User Manual

TelnetBible.com — Serving the Word Since 2025
SysOp: Ricky Bryce