OXYGENHUB
◆ main openmsx / share / unicodemaps / character_set_mappings / ReadMe.txt
21.5 KiB · Plain Text · last changed chore(): initial commit 1 month ago source blame history raw
1
This directory contains mappings of legacy character sets from 8-bit
2
and 16-bit microcomputers as well as teletext to Unicode. Most of
3
these mappings are made possible using characters from the new block
4
U+1FB00-1FBFF Symbols for Legacy Computing.
5
6
Some of these systems have two kinds of mappings: a "video" or "memory" mapping
7
that reflects how bytes in video memory are mapped to characters, and an
8
"interchange" or "CHR$()" mapping that reflects how keyboard input, the BASIC
9
CHR$() function, or external I/O maps code values to characters. Either kind of
10
mapping may be needed depending on the use case.
11
12
The following systems are represented here along with notes. All trademarks and
13
registered trademarks are the property of their respective owners. The company
14
and product names used here are for identification purposes only.
15
16
17
Coleco Adam
18
19
ADAMOS7.TXT: Coleco Adam OS7 character set.
20
ADAMSWTR.TXT: Coleco Adam SmartWRITER character set.
21
22
The OS7 character set includes characters at $05-$1C that compose a graphic
23
that spells COLECOVISION. These have been mapped to characters in the Private
24
Use Area.
25
26
27
Amstrad CPC
28
29
AMSCPCV.TXT: Amstrad CPC character set as mapped in memory.
30
AMSCPCI.TXT: Amstrad CPC character set without control characters.
31
32
AMSCPCV.TXT includes symbols for control characters at $00-$1F and $7F.
33
AMSCPCI.TXT does not include these symbols and leaves $00-$1F and $7F
34
mapped to control characters by default.
35
36
37
Amstrad CP/M Plus, PCW, and ZX Spectrum 3+
38
39
AMSCPM.TXT: Amstrad CP/M Plus, PCW, and ZX Spectrum 3+ character set.
40
41
The slashed zero at $30 is mapped to U+0030+FE00, the recently-added
42
standardized variation sequence for a slashed zero. The non-slashed
43
zero at $7F is mapped to U+0030.
44
45
46
Apple II series
47
48
APL2PRIM.TXT: Apple II primary character set as mapped in memory.
49
APL2ALT1.TXT: Apple II alternate character set, version 1, as mapped in memory.
50
APL2ALT2.TXT: Apple II alternate character set, version 2, as mapped in memory.
51
APL2ICHG.TXT: Apple II character set as mapped by CHR$().
52
53
Version 1 of the alternate character set has the "running man" characters where
54
version 2 of the alternate character set has the "inverse return arrow" and
55
"title bar" characters.
56
57
Both versions of the alternate character set include a solid Apple logo at $40
58
and an open Apple logo at $41. Since the Apple logo is trademarked and thus
59
cannot be encoded, these are mapped to characters in the Private Use Area.
60
61
62
Mattel Aquarius
63
64
AQUARIUS.TXT: Mattel Aquarius character set.
65
66
Character $8A can be mapped to either U+2660 BLACK SPADE SUIT or
67
U+1F6E7 UP-POINTING AIRPLANE. The first mapping is used here.
68
69
70
Atari 8-bit series (ATASCII)
71
72
ATARI8VG.TXT: ATASCII graphics character set, memory-mapped.
73
ATARI8IG.TXT: ATASCII graphics character set, CHR$()-mapped.
74
ATARI8VI.TXT: ATASCII international character set, memory-mapped.
75
ATARI8II.TXT: ATASCII international character set, CHR$()-mapped.
76
77
The graphics character set has symbols and semigraphics where the international
78
character set has precomposed Latin characters with diacritics.
79
80
The CHR$() mappings are in a different order and do not include the control
81
characters at $1B-$1F, $7D-$7F, $8B-$8F, and $FD-$FF.
82
83
84
Atari ST
85
86
ATARISTV.TXT: Atari ST character set, memory-mapped.
87
ATARISTI.TXT: Atari ST character set, CHR$()-mapped.
88
89
The Atari ST character set is based on and similar to IBM PC code page 437, but
90
has different characters in some locations, in particular $00-$1F and $B0-$DF.
91
92
The CHR$() mapping is identical to the memory mapping except it does not
93
include the control characters at $00-$1F and $7F.
94
95
The Atari ST character set includes an Atari logo at $0E-$0F and an image of
96
J.R. "Bob" Dobbs at $1C-$1F. Both are trademarked and unsuitable for encoding,
97
so these are mapped to characters in the Private Use Area.
98
99
100
Bildschirmtext (BTX)
101
102
BTXG0.TXT: Bildschirmtext G0 character set.
103
BTXG1.TXT: Bildschirmtext G1 character set.
104
BTXG2.TXT: Bildschirmtext G2 character set.
105
BTXG3.TXT: Bildschirmtext G3 character set.
106
107
The Bildschirmtext (BTX) character set is mostly
108
a permutation of the Teletext character set.
109
110
111
TRS-80 Color Computer
112
113
COCOICHG.TXT: TRS-80 Color Computer "Semigraphics 4" set as mapped by CHR$().
114
COCOSGR4.TXT: TRS-80 Color Computer "Semigraphics 4" set as mapped in memory.
115
COCOSGR6.TXT: TRS-80 Color Computer "Semigraphics 6" set as mapped in memory.
116
117
The Color Computer, despite being branded as a TRS-80, is a fundamentally
118
different computer. The "Semigraphics 4" mode, which is default, has a
119
character set organized thusly:
120
121
$00 - $1F - light-on-dark ASCII-1983 uppercase
122
$20 - $3F - light-on-dark ASCII-1983 punctuation
123
$40 - $5F - dark-on-light ASCII-1983 uppercase
124
$60 - $7F - dark-on-light ASCII-1983 punctuation
125
$80 - $FF - 2x2 block graphics in 8 colors
126
127
(The 8 colors are, in order: green, yellow, blue, red, buff, cyan, magenta,
128
and orange.)
129
130
The CHR$() function uses this mapping:
131
132
Interchange => Video
133
$00 - $1F => (control characters)
134
$20 - $3F => $60 - $7F (dark-on-light punctuation)
135
$40 - $5F => $40 - $5F (dark-on-light uppercase)
136
$60 - $7F => $00 - $1F (light-on-dark uppercase)
137
$80 - $FF => $80 - $FF (2x2 block graphics in 8 colors)
138
139
The "Semigraphics 6" mode has 2x3 block graphics at $80-$FF in two colors (blue
140
and red), although in a different order from Teletext and the TRS-80. ($00-$7F
141
displays as binary vertical line garbage, which is pretty much useless and
142
unworthy of encoding.)
143
144
145
Commodore PET (PETSCII)
146
147
CPETVPRI.TXT: Commodore PET primary character set as mapped in memory.
148
CPETVALT.TXT: Commodore PET alternate character set as mapped in memory.
149
CPETIPRI.TXT: Commodore PET primary character set as mapped by CHR$().
150
CPETIALT.TXT: Commodore PET alternate character set as mapped by CHR$().
151
152
The PET has REVERSE SOLIDUS where the VIC-20, C64, and C128 have POUND SIGN.
153
The PET and VIC-20 have CHECKER BOARD FILL where the C64 and C128 have
154
INVERSE CHECKER BOARD FILL, and vice-versa.
155
156
The primary character set has uppercase letters where the alternate character
157
set has lowercase letters. The primary character set has semigraphics
158
characters where the alternate character set has uppercase letters.
159
160
The CHR$() function mapping (or "interchange" mapping) maps to the in-memory
161
mapping (or "video" mapping) as follows:
162
163
Interchange => Video
164
$00 - $1F => (control characters)
165
$20 - $3F => $20 - $3F
166
$40 - $5F => $00 - $1F
167
$60 - $7F => $40 - $5F
168
$80 - $9F => (control characters)
169
$A0 - $BF => $60 - $7F
170
$C0 - $DF => $40 - $5F
171
$E0 - $FF => $60 - $7F
172
173
174
Commodore VIC-20 (PETSCII)
175
176
CVICVPRI.TXT: Commodore VIC-20 primary character set as mapped in memory.
177
CVICVALT.TXT: Commodore VIC-20 alternate character set as mapped in memory.
178
CVICIPRI.TXT: Commodore VIC-20 primary character set as mapped by CHR$().
179
CVICIALT.TXT: Commodore VIC-20 alternate character set as mapped by CHR$().
180
181
The same notes that apply to the Commodore PET apply to the Commodore VIC-20.
182
183
184
Commodore 64 and Commodore 128 (PETSCII)
185
186
C64VPRI.TXT: Commodore 64 and 128 primary character set as mapped in memory.
187
C64VALT.TXT: Commodore 64 and 128 alternate character set as mapped in memory.
188
C64IPRI.TXT: Commodore 64 and 128 primary character set as mapped by CHR$().
189
C64IALT.TXT: Commodore 64 and 128 alternate character set as mapped by CHR$().
190
191
The same notes that apply to the Commodore PET apply to the Commodore 64 and
192
Commodore 128.
193
194
195
HP 264x
196
197
HP264XUC.TXT: HP 264x Roman uppercase character set.
198
HP264XLC.TXT: HP 264x Roman lowercase character set.
199
HP264XMA.TXT: HP 264x math character set.
200
HP264XLN.TXT: HP 264x line drawing character set.
201
HP264XLG.TXT: HP 264x large text character set.
202
203
Each individual character generator ROM in the HP 264x contained 64 characters.
204
Characters $00-$3F of the uppercase ROM correspond to ASCII characters $20-$5F.
205
Characters $00-$1F of the lowercase ROM correspond to ASCII characters $00-$1F.
206
Characters $20-$3F of the lowercase ROM correspond to ASCII characters $60-$7F.
207
All mapping files use a straight mapping to $00-$3F.
208
209
210
IBM PC (code page 437)
211
212
IBMPCVID.TXT: IBM PC code page 437 as mapped in memory.
213
IBMPCICH.TXT: IBM PC code page 437 without control characters.
214
215
IBMPCVID.TXT includes the graphics characters at $00-$1F and $7F that are
216
instead mapped to control characters in the mapping provided by Microsoft.
217
IBMPCICH.TXT is identical to the mapping provided by Microsoft but does not
218
explicitly list the control characters.
219
220
221
Kaypro
222
223
KAYPRONV.TXT: Kaypro normal video character set.
224
KAYPRORV.TXT: Kaypro reverse video character set.
225
226
These include the extra characters at $00-$1F and the 2x4 block
227
mosaic characters at $80-$FF. The reverse video version is included
228
to provide a full set of 2x4 block mosaic characters.
229
230
231
Minitel
232
233
MINITLG0.TXT: Minitel G0/G2 text character set.
234
MINITLG1.TXT: Minitel G1 graphics character set.
235
236
The G0 mapping also includes G2 characters using the SS2 (single shift 2)
237
control character ($19). The G1 character set is similar to the Teletext G1
238
character set.
239
240
241
MSX
242
243
MSXVID.TXT: MSX international character set as mapped in memory.
244
MSXICH.TXT: MSX international character set as mapped using control sequences.
245
MSXVIDAE.TXT: MSX Arabic character set as mapped in memory.
246
MSXICHAE.TXT: MSX Arabic character set as mapped using control sequences.
247
MSXVIDAR.TXT: MSX Arabic character set as mapped in memory.
248
MSXICHAR.TXT: MSX Arabic character set as mapped using control sequences.
249
MSXVIDBG.TXT: MSX Brazilian character set as mapped in memory.
250
MSXICHBG.TXT: MSX Brazilian character set as mapped using control sequences.
251
MSXVIDBH.TXT: MSX Brazilian character set as mapped in memory.
252
MSXICHBH.TXT: MSX Brazilian character set as mapped using control sequences.
253
MSXVIDBR.TXT: MSX Brazilian character set as mapped in memory.
254
MSXICHBR.TXT: MSX Brazilian character set as mapped using control sequences.
255
MSXVIDJP.TXT: MSX Japanese character set as mapped in memory.
256
MSXICHJP.TXT: MSX Japanese character set as mapped using control sequences.
257
MSXVIDKR.TXT: MSX Korean character set as mapped in memory.
258
MSXICHKR.TXT: MSX Korean character set as mapped using control sequences.
259
MSXVIDRU.TXT: MSX Russian character set as mapped in memory.
260
MSXICHRU.TXT: MSX Russian character set as mapped using control sequences.
261
SVI328.TXT: Spectravideo SVI-328 character set as mapped in memory.
262
263
National character sets were taken from the following MSX models:
264
265
AE: Al Alamiah AX-170 (Arabic with some European characters)
266
AR: Bawareth Perfect MSX1, Yamaha AX500 (Arabic with box drawing characters)
267
BG: Gradiente Expert XP-800 (Brazilian)
268
BH: Sharp Hotbit HB-8000 1.1 (Brazilian)
269
BR: Gradiente Expert DDPlus, Sharp Hotbit HB-8000 1.2 (Brazilian)
270
JP: Panasonic FS-A1GT, Sony HB-F900 (Japanese)
271
KR: Daewoo CPC-400S (Korean)
272
RU: Yamaha YIS-503IIIR, Yamaha YIS-805/128R2 (Russian)
273
274
The MSX international character set is based on CP437 but has some additional
275
punctuation and precomposed letters and a different set of box drawing and
276
block element characters. The Japanese character set is based on JIS X 0201
277
but also includes hiragana, a handful of kanji, and some symbols and basic
278
box drawing characters. The Arabic character set encodes multiple forms with
279
a single character to make the most of the limited code space, so correct
280
conversion of Arabic text will require use of the Arabic shaping algorithm.
281
282
The memory mapping includes the graphics characters at $00-$1F that are
283
accessed with double-byte sequences starting with $01 in the interchange
284
mapping. The memory mapping also includes the character at $7F that is
285
inaccessible without writing to video memory directly.
286
287
The character $FF (or sometimes $7F) is used for the cursor and displays as
288
the reverse video variant of the character stored at a designated location in
289
RAM. The BIOS keeps the original character under the cursor at this location.
290
Since this behavior is not interchangeable, it is left unmapped.
291
292
The Spectravideo SVI-328 is a predecessor to the MSX standard. However,
293
it is not MSX-compatible and uses a different character set.
294
295
296
Sharp MZ series (SharpSCII)
297
298
MZ80VJPN.TXT: Sharp MZ-80 Japanese character set by "display code".
299
MZ80VEUR.TXT: Sharp MZ-80 European character set by "display code".
300
MZ700VJP.TXT: Sharp MZ-700 Japanese primary character set by "display code".
301
MZ700VJA.TXT: Sharp MZ-700 Japanese alternate character set by "display code".
302
MZ700VEP.TXT: Sharp MZ-700 European primary character set by "display code".
303
MZ700VEA.TXT: Sharp MZ-700 European alternate character set by "display code".
304
MZ700IJP.TXT: Sharp MZ-700 Japanese primary character set by "ASCII code".
305
MZ700IEU.TXT: Sharp MZ-700 European primary character set by "ASCII code".
306
307
The Sharp MZ-80 character sets and Sharp MZ-700 primary character sets are
308
very similar but differ at certain "display codes" ($40 and $80 in the
309
Japanese version and $40, $80, $A4, $A5, $BC, $BE, $BF, and $E5 in the
310
European version).
311
312
The mapping between "ASCII codes" and "display codes" is nontrivial and rather
313
disorganized. For example, although digits and uppercase letters in both
314
versions are in order in either mapping, katakana in the Japanese version are
315
in order when sorted by "ASCII code" but scrambled when sorted by "display
316
code", and lowercase letters in the European version are scrambled when sorted
317
by "ASCII code" but in order when sorted by "display code". The mapping is very
318
similar between the Japanese and European versions, but differ at "ASCII codes"
319
$6C, $6D, $80, $C0, and $C6 (and yet they left the lowercase letters scrambled).
320
321
The Sharp MZ-700 actually had 512 characters, with the alternate set made
322
accessible on a character-by-character basis by setting a bit in the attribute
323
RAM where the background and foreground color were also stored. In the Japanese
324
version, the primary set contained katakana where the alternate set contained
325
hiragana. In the European version, Japanese characters in the primary set were
326
replaced with additional block elements and box drawing characters, whereas the
327
entire alternate set was replaced with a rather large assortment of video game
328
sprites. The alternate character set was not accessible from BASIC.
329
330
The characters unique to the Sharp MZ series are placed in a new block
331
U+1CC00-1CEAF Symbols for Legacy Computing Supplement. Characters $36-$39
332
in the European alternate character set, which resemble the ghosts from
333
Pac-Man, are mapped to Private Use Area characters due to copyright and
334
trademark restrictions.
335
336
337
Tangerine Oric series (OricSCII)
338
339
ORICG0.TXT: Tangerine Oric G0 text character set.
340
ORICG1.TXT: Tangerine Oric G1 graphics character set.
341
342
The G1 character set includes user-defined characters at $60-$7F which have
343
been mapped to the Private Use Area. The user-defined characters at $70-$7F
344
are normally unusable due to the character generator RAM overlapping the
345
text screen RAM.
346
347
348
Ohio Scientific Superboard II / Challenger series
349
350
OSI.TXT: Ohio Scientific character set.
351
352
There are some unusual characters in the $00-$1F range.
353
354
355
RISC OS
356
357
RISCOSI.TXT: RISC OS Latin-1 character set.
358
RISCOSV.TXT: RISC OS Latin-1 character set with RISC OS-specific characters.
359
RISCOSB.TXT: RISC OS BFont character set.
360
RISCEFF.TXT: RISC OS Latin-1 character set used by Electronic Font Foundry.
361
362
The RISC OS character set is based on ISO Latin-1 with extra characters at
363
$80-$9F. RISCOSV.TXT includes characters specific to the RISC OS user interface
364
not included in RISCOSI.TXT. RISCEFF.TXT is similar to RISCOSI.TXT but with
365
additional characters and a different mapping used by Electronic Font Foundry,
366
a third-party supplier of RISC OS fonts.
367
368
RISCOSB.TXT is a separate encoding not based on ISO Latin-1 called the BFont
369
encoding. According to the RISC OS Programmer's Reference Manual it was used
370
in the BBC Master microcomputer and is retained in RISC OS for compatibility.
371
372
373
Robotron Z9001
374
375
ROBOTRON.TXT: Robotron Z9001 character set.
376
377
There are duplicate pairs of pseudographics characters at $7F/$FF, $B7/$FB,
378
$D0/$EB, $D3/$F1, $DC/$E5, $DF/$F7, and $E2/$F9 that have been mapped to the
379
same characters.
380
381
382
Sharp X1
383
384
SHARPX1V.TXT: Sharp X1 8-bit character set as mapped in video memory.
385
SHARPX1I.TXT: Sharp X1 8-bit character set as output by CHR$().
386
387
The video mapping includes characters in the range $00-$1F that cannot be
388
output through the BIOS, only through manipulating video memory directly.
389
Notably, the character at $7F can be output through the BIOS.
390
391
392
Sinclair QL
393
394
SINCLRQL.TXT: Sinclair QL character set.
395
396
Several of the Sinclair QL character set's glyphs featured raised small capital
397
letters. These have been mapped to MODIFIER LETTER SMALL A-F due to the absence
398
of *MODIFIER LETTER CAPITAL C and *MODIFIER LETTER CAPITAL F.
399
400
There is a strange character at $B5 that looks like a small capital letter Q
401
with a V shape underneath. I've mapped this to a capital letter Q with a
402
combining caron below as the closest possible match.
403
404
405
Smalltalk
406
407
SMLTLK72.TXT: Smalltalk-72 character set.
408
SMLTLK78.TXT: Smalltalk-78 character set.
409
410
Characters unique to Smalltalk are placed in a new block
411
U+1D380-1D3FF Miscellaneous Mathematical and Technical Symbols.
412
413
414
Teletext
415
416
TELTXTG0.TXT: Teletext G0 English alphanumerics character set.
417
TELTXTG1.TXT: Teletext G1 English graphics character set.
418
TELTXTG2.TXT: Teletext G2 Latin Supplementary Set.
419
TELTXTG3.TXT: Teletext G3 Smooth Mosaics and Line Drawing Set.
420
421
See European Telecommunication Standard 300 706 for details.
422
423
424
Texas Instruments TI-99/4a
425
426
TI994A.TXT: TI-99/4a character set.
427
428
The TI-99/4a character set is mostly US-ASCII, except it includes two special
429
characters at $1E and $1F and user-defined characters at $7F-$9F. $1E is the
430
cursor character, which is mapped to FULL BLOCK. $1F is a block the color of
431
the screen border, which, because of how the TI-99/4a's video actually works,
432
is best mapped to NO-BREAK SPACE. $7F-$9F are mapped to the Private Use Area.
433
434
435
TRS-80 Model I
436
437
TRSM1ORG.TXT: TRS-80 Model I, original version, as mapped in memory.
438
TRSM1REV.TXT: TRS-80 Model I, revised version, as mapped in memory.
439
TRSM1ICH.TXT: TRS-80 Model I as mapped by CHR$() (same for both revisions).
440
441
The original version has an opening quotation mark, lowercase letters without
442
descenders, and a tilde where the revised version has a pound sign, lowercase
443
letters with descenders, and a yen sign. The CHR$() mapping does not have these
444
characters at all; it duplicates the uppercase region of the character set
445
instead.
446
447
448
TRS-80 Model III and Model 4
449
450
TRSM3VIN.TXT: TRS-80 Model III/4 international set as mapped in memory.
451
TRSM3VJP.TXT: TRS-80 Model III/4 katakana set as mapped in memory.
452
TRSM3VRV.TXT: TRS-80 Model III/4 reverse video set as mapped in memory.
453
TRSM3IIN.TXT: TRS-80 Model III/4 international set as mapped by CHR$().
454
TRSM3IJP.TXT: TRS-80 Model III/4 katakana set as mapped by CHR$().
455
TRSM3IRV.TXT: TRS-80 Model III/4 reverse video set as mapped by CHR$().
456
457
The IN and JP sets both have semigraphics at $80-$BF, but the IN set has
458
miscellaneous symbols at $C0-$FF whereas the JP set has halfwidth katakana.
459
The RV set has no semigraphics at all, but instead has reverse-video versions
460
of $00-$7F at $80-$FF. The CHR$() mapping of each set is nearly identical to
461
the corresponding memory mapping but has control characters at $00-$1F instead
462
of graphics characters.
463
464
The Model III and Model 4 include an unidentified character at $FB which has
465
been mapped to a character in the Private Use Area.
466
467
468
TRS-80 Model 4a
469
470
TRSM4AVP.TXT: TRS-80 Model 4a primary character set as mapped in memory.
471
TRSM4AVA.TXT: TRS-80 Model 4a alternate character set as mapped in memory.
472
TRSM4AVR.TXT: TRS-80 Model 4a reverse video set as mapped in memory.
473
TRSM4AIP.TXT: TRS-80 Model 4a primary character set as mapped by CHR$().
474
TRSM4AIA.TXT: TRS-80 Model 4a alternate character set as mapped by CHR$().
475
TRSM4AIR.TXT: TRS-80 Model 4a reverse video set as mapped by CHR$().
476
477
The Model 4 and Model 4a have completely different characters at $00-$1F.
478
Otherwise, the primary character set of the Model 4a is identical to the
479
international set of the Model 4; however, the Model 4a does not have a
480
katakana set and instead has an alternate character set with some Latin-1
481
characters and a completely different set of miscellaneous symbols.
482
483
The Model 4a includes two unidentified characters at $1D and $FB which have
484
been mapped to characters in the Private Use Area.
485
486
487
Sinclair ZX80, ZX81, and ZX Spectrum
488
489
ZX80.TXT: Sinclair ZX80 character set.
490
ZX81.TXT: Sinclair ZX81 character set.
491
ZXSPCTRM.TXT: Sinclair ZX Spectrum character set.
492
ZXDESKTP.TXT: Sinclair ZX Spectrum "Desktop" character set.
493
ZXFZXPUA.TXT: "FZX" character set with $80-$FF mapped to the Private Use Area.
494
ZXFZXLT1.TXT: "FZX" character set with $A0-$FF mapped to Latin-1 (ISO 8859-1).
495
ZXFZXLT5.TXT: "FZX" character set with $A0-$FF mapped to Latin-5 (ISO 8859-9).
496
ZXFZXKOI.TXT: "FZX" character set with $A0-$FF mapped to KOI-8.
497
ZXFZXSLT.TXT: "FZX" character set with $80-$FF mapped to CP1252.
498
499
The ZX80 and ZX81 character sets are only defined over $00-$3F and $80-$BF.
500
Other code values are used for control characters or BASIC tokens and have no
501
mapping to any visible character. The ZX80 and ZX81 have the same printable
502
characters but in a different order.
503
504
The ZX Spectrum character set, unlike the ZX80 and ZX81 character sets, is
505
based on ASCII. It includes semigraphics at $80-$8F and user-defined characters
506
at $90-$A4. Characters beyond $A4 are used for BASIC tokens and have no mapping
507
to any visible character. The user-defined characters have been mapped to the
508
Private Use Area.
509
510
"Desktop" is a word processing program for the ZX Spectrum published in 1991
511
by Proxima Software. It uses its own font files with precomposed characters at
512
$80-$9D to support Czech.
513
514
"FZX" is a royalty-free font format for the ZX Spectrum released in 2013 by
515
Andrew Owen and Einar Saukas. The FZX specification supports but does not
516
define the encoding for characters $80-$FF. Most FZX fonts that include these
517
characters use Latin-1 (ISO 8859-1), Latin-5 (ISO 8859-9), or KOI-8.