Sinclair Logo


Sinclair ZX80 Character Set



The Sinclair ZX80 had a non-standard character set and many normal ASCII characters, including lowercase letters, were absent.
The full ZX80 character set is listed below, with some annotation.

Decimal
Code
Hexadecimal
Code
Character
  000       (Space)
  101"
  202block graphic
  303block graphic
  404block graphic
  505block graphic
  606block graphic
  707block graphic
  808block graphic
  909block graphic
 100Ablock graphic
 110Bblock graphic
The ZX80 has 16 (including space and inverse space) 'block graphic' characters which consist of a character square divided into four smaller squares, with every combination of none, one, two, three or four of the small squares 'filled-in', as shown in the top two rows below.
The six graphic characters in the bottom row are intended for drawing horizontal bar charts, with the 'chessboard' patterns giving a grey shade.

Block graphic characters
 120C£
 130D$
 140E:
 150F?
 1610
 1711
 1812
 1913
 2014
 2115
 2216
 2317
 2418
 2519
 261A
 271B.
 281C0
 291D1
 301E2
 311F3
 32204
 33215
 34226
 35237
 36248
 37259
 3826A
 3927B
 4028C
 4129D
 422AE
 432BF
 442CG
 452DH
 462EI
 472FJ
 4830K
 4931L
 5032M
 5133N
 5234O
 5335P
 5436Q
 5537R
 5638S
 5739T
 583AU
 593BV
 603CW
 613DX
 623EY
 633FZ
 6440not used
 6541not used
 6642not used
 6743not used
 6844not used
 6945not used
 7046not used
 7147not used
 7248not used
 7349not used
 744Anot used
 754Bnot used
 764Cnot used
 774Dnot used
 784Enot used
 794Fnot used
 8050not used
 8151not used
 8252not used
 8353not used
 8454not used
 8555not used
 8656not used
 8757not used
 8858not used
 8959not used
 905Anot used
 915Bnot used
 925Cnot used
 935Dnot used
 945Enot used
 955Fnot used
 9660not used
 9761not used
 9862not used
 9963not used
10064not used
10165not used
10266not used
10367not used
10468not used
10569not used
1066Anot used
1076Bnot used
1086Cnot used
1096Dnot used
1106Enot used
1116Fnot used
11270not used
11371not used
11472not used
11573not used
11674not used
11775not used
11876not used
11977not used
12078not used
12179not used
1227Anot used
1237Bnot used
1247Cnot used
1257Dnot used
1267Enot used
1277Fnot used
Character codes 64 to 127 print as ? The true question mark is code 15.
12880inverse space
12981inverse "
13082block graphic
13183block graphic
13284block graphic
13385block graphic
13486block graphic
13587block graphic
13688block graphic
13789block graphic
1388Ablock graphic
1398Bblock graphic
See after code 11 for the forms of block graphics
1408Cinverse £
1418Dinverse $
1428Einverse :
1438Finverse ?
14490inverse (
14591inverse )
14692inverse -
14793inverse +
14894inverse *
14995inverse /
15096inverse =
15197inverse >
15298inverse <
15399inverse ;
1549Ainverse ,
1559Binverse .
1569Cinverse 0
1579Dinverse 1
1589Einverse 2
1599Finverse 3
160A0inverse 4
161A1inverse 5
162A2inverse 6
163A3inverse 7
164A4inverse 8
165A5inverse 9
166A6inverse A
167A7inverse B
168A8inverse C
169A9inverse D
170AAinverse E
171ABinverse F
172ACinverse G
173ADinverse H
174AEinverse I
175AFinverse J
176B0inverse K
177B1inverse L
178B2inverse M
179B3inverse N
180B4inverse O
181B5inverse P
182B6inverse Q
183B7inverse R
184B8inverse S
185B9inverse T
186BAinverse U
187BBinverse V
188BCinverse W
189BDinverse X
190BEinverse Y
191BFinverse Z
The ZX80 normally displays black text on a white background. The inverse forms of characters reverse this, i.e. white characters in a black square.
192C0not used
193C1not used
194C2not used
195C3not used
196C4not used
197C5not used
198C6not used
199C7not used
200C8not used
201C9not used
202CAnot used
203CBnot used
204CCnot used
205CDnot used
206CEnot used
207CFnot used
208D0not used
209D1not used
210D2not used
211D3not used
Character codes 192 to 211 print as ?
212D4
213D5THEN
214D6TO
215D7;
216D8,
217D9)
218DA(
219DBNOT
220DC-
221DD+
222DE*
223DF/
224E0AND
225E1OR
226E2**      The 'raise to a power' operator
227E3=
228E4>
229E5<
The 'less than' and 'greater than' symbols for codes 228 & 229 are shown the wrong way round in Appendix II of the ZX80 manual.
230E6LIST
231E7RETURN
232E8CLS
233E9DIM
234EASAVE
235EBFOR
236ECGO TO
237EDPOKE
238EEINPUT
239EFRANDOMISE
240F0LET
241F1not used      prints as ?
242F2not used      prints as ?
243F3NEXT
244F4PRINT
245F5not used      prints as ?
246F6NEW
247F7RUN
248F8STOP
249F9CONTINUE
250FAIF
251FBGO SUB
252FCLOAD
253FDCLEAR
254FEREM
255FFnot used      prints as ?
Most of the character codes from 213 to 255 are the BASIC keywords. They are stored within the program as a single byte but in listings they are expanded to full words, including a space before and after as necessary to improve readability.
The system of storing BASIC's words is used because of the very small memory capacity of the unexpanded ZX80. 'PRINT ' would normally take up six bytes whereas character 244 is only one byte.
Strangely though there are eight BASIC functions which are not assigned single-character codes. These are CHR$, STR$, TL$, PEEK, CODE, RND, USR & ABS, and must be typed in full.
Note: Characters marked ¹ cannot be typed from the keyboard. E.g. character 212 will display as a double quote when printed via its code, but the double quote obtained from Shift Y has code 1.
Similarly all characters with codes from 64 to 211 cannot be obtained from the keyboard. Reverse video letters can only be printed using the CHR$ function and their code.



Close window