Amstrad CP/M Plus character set

The Amstrad CP/M Plus character set (alternatively known as PCW character set or ZX Spectrum +3 character set) refers to a group of 8-bit character sets introduced by Amstrad/Locomotive Software for use in conjunction with their adaptation of Digital Research's CP/M Plus[1] on various Amstrad CPC / Schneider CPC and Amstrad PCW / Schneider Joyce machines.[2][3] The character set was also utilized on the Amstrad ZX Spectrum +3 since 1987.[1]

At least on the ZX Spectrum +3 it existed in eight language-specific variants (based on ISO/IEC 646) depending on the selected locale of the system, with language 0 being the default for "US".[4]

Another slight variant of the character set was used by LocoScript.[5][6]

Character set

Amstrad CP/M Plus character set (Language 0)[1][3]
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
0_
221D
0

2299
1
Γ
0393
2
Δ
0394
3

2297
4
×
00D7
5
÷
00F7
6

2238
7
Π
03A0
8

2193
9
Σ
03A3
10

2190
11

2192
12
±
00B1
13

2194
14
Ω
03A9
15
1_ α
03B1
16
β
03B2
17
γ
03B3
18
δ
03B4
19
ε
03B5
20
ζ
03B6
21
η
03B7
22
θ
03B8
23
λ
03BB
24
μ
03BC
25
π
03C0
26
ρ
03C1
27
σ
03C3
28
τ
03C4
29
φ
03C6
30
χ
03C7
31
2_ SP
0020
32
!
0021
33
"
0022
34
#
0023
35
$
0024
36
%
0025
37
&
0026
38
'
0027
39
(
0028
40
)
0029
41
*
002A
42
+
002B
43
,
002C
44
-
002D
45
.
002E
46
/
002F
47
3_ 0
0030
48[lower-alpha 1]
1
0031
49
2
0032
50
3
0033
51
4
0034
52
5
0035
53
6
0036
54
7
0037
55
8
0038
56
9
0039
57
:
003A
58
;
003B
59
<
003C
60
=
003D
61
>
003E
62
?
003F
63
4_ @
0040
64
A
0041
65
B
0042
66
C
0043
67
D
0044
68
E
0045
69
F
0046
70
G
0047
71
H
0048
72
I
0049
73
J
004A
74
K
004B
75
L
004C
76
M
004D
77
N
004E
78
O
004F
79
5_ P
0050
80
Q
0051
81
R
0052
82
S
0053
83
T
0054
84
U
0055
85
V
0056
86
W
0057
87
X
0058
88
Y
0059
89
Z
005A
90
[
005B
91
\
005C
92
]
005D
93

2192
94
_
005F
95
6_ `
0060
96
a
0061
97
b
0062
98
c
0063
99
d
0064
100
e
0065
101
f
0066
102
g
0067
103
h
0068
104
i
0069
105
j
006A
106
k
006B
107
l
006C
108
m
006D
109
n
006E
110
o
006F
111
7_ p
0070
112
q
0071
113
r
0072
114
s
0073
115
t
0074
116
u
0075
117
v
0076
118
w
0077
119
x
0078
120
y
0079
121
z
007A
122
{
007B
123
|
007C
124
}
007D
125
~
007E
126
0
0030
127[lower-alpha 1]
8_
25FE
128

2567
129

255F
130

255A
131

2564
132

2551
133

2554
134

2560
135

2562
136

255D
137

2550
138

2569
139

2557
140

2563
141

2566
142

256C
143
9_ ·
00B7
144

2575
145

2576
146

2514
147

2577
148

2502
149

250C
150

251C
151

2574
152

2518
153

2500
154

2534
155

2510
156

2524
157

252C
158

253C
159
A_ ª
00AA
160
º
00BA
161
°
00B0
162
£
00A3
163
©
00A9
164

00B6
165
§
00A7
166

2020
167
¼
00BC
168
½
00BD
169
¾
00BE
170
«
00AB
171
»
00BB
172

20A7
173
¿
00BF
174
¡
00A1
175
B_ ƒ
0192
176
¢
00A2
177
¨
00A8
178
´
00B4
179
ˆ
02C6
180

2030
181

215B
182

215C
183

215D
184

215E
185
ß
00DF
186

25CB
187

2022
188
¥
00A5
189
®
00AE
190

2122
191
C_ Á
00C1
192
É
00C9
193
Í
00CD
194
Ó
00D3
195
Ú
00DA
196
Â
00C2
197
Ê
00CA
198
Î
00CE
199
Ô
00D4
200
Û
00DB
201
À
00C0
202
È
00C8
203
Ì
00CC
204
Ò
00D2
205
Ù
00D9
206
Ÿ
0178
207
D_ Ä
00C4
208
Ë
00CB
209
Ï
00CF
210
Ö
00D6
211
Ü
00DC
212
Ç
00C7
213
Æ
00C6
214
Å
00C5
215
Ø
00D8
216
Ñ
00D1
217
Ã
00C3
218
Õ
00D5
219

2265
220

2264
221

2260
222

2243
223
E_ á
00E1
224
é
00E9
225
í
00ED
226
ó
00F3
227
ú
00FA
228
â
00E2
229
ê
00EA
230
î
00EE
231
ô
00F4
232
û
00FB
233
à
00E0
234
è
00E8
235
ì
00EC
236
ò
00F2
237
ù
00F9
238
ÿ
00FF
239
F_ ä
00E4
240
ë
00EB
241
ï
00EF
242
ö
00F6
243
ü
00FC
244
ç
00E7
245
æ
00E6
246
å
00E5
247
ø
00F8
248
ñ
00F1
249
ã
00E5
250
õ
00F3
251

21D2
252

21D0
253

21D4
254

2261
255
_0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F

Language variants

  • Language 0: USA
  • Language 1: France
  • Language 2: Germany
  • Language 3: UK
  • Language 4: Denmark
  • Language 5: Sweden
  • Language 6: Italy
  • Language 7: Spain[4]

In languages 1 to 7, certain characters in the range 0..127 are swapped with characters in the range 128..255 of the character set, according to the following table:[4]

[4]01234567
0x23###£###Pt
0x40@à§@@É@@
0x5B[ºÄ[Æĺ¡
0x5C\çÖ\ØÖ\Ñ
0x5D]§Ü]ÅÅé¿
0x5E^^^^^Ü^^
0x60`````éù`
0x7B{éä{æäà¨
0x7C|ùö|øöòñ
0x7D}èü}ååè}
0x7E~¨ß~~üì~

See also

Notes

  1. 1 2 Code point 48 is intended for zero with a slash, 127 for zero without a slash. Both can be expressed as Unicode character U+0030, but of course if both are converted to the same code point the conversion is non-reversible.

References

  1. 1 2 3 "Appendix II: CP/M Plus character sets / II.1 The complete character set (Language 0)". Spectrum +3 CP/M Plus manual (User Manual). Archived from the original on 2009-10-15. Retrieved 2017-07-10.
  2. Elliott, John (2015-04-04). "Amstrad Extended BIOS Internals". Archived from the original on 2017-07-15. Retrieved 2017-07-15.
  3. 1 2 "Amstrad CP/M Plus character set". Archived from the original on 2017-07-15. Retrieved 2017-07-15.
  4. 1 2 3 4 "Chapter 4.5 Selecting the appropriate national language". Spectrum +3 CP/M Plus manual (User Manual). Archived from the original on 2009-10-15. Retrieved 2017-07-10. […] The selection of characters made available on computers sold in different countries are subject to national variations. As a result, CP/M has different national language versions of the screen characters. […] Immediately after […] load […] it is set up to use the US character set […] The codes CP/M uses are […] in the range 0...255 […] A handful of these codes represent different characters, depending on which national language is selected. […] All the different national language versions of CP/M are supported on the Spectrum +3 and a special utility has been incorporated into the CP/M system to allow the user to swap from one national language to another. This is the LANGUAGE utility. […] The 'standard' set of codes and characters represented by these codes is the US character set. What happens in the other language versions is that certain codes in the first half of the character set (0...127) are associated with characters that are in the second half of the US character set and vice versa. In fact a straight swap is made between the code used for the special language character, and the character it substitutes. For example, in the US character set, the code for £ is #A3: when English is selected, £ replaces # as the character with code #23 - and # replaces £ as the character with code #A3. […]
  5. Elliott, John (2016-04-16). "LocoScript 1 file format". Archived from the original on 2017-07-15. Retrieved 2017-07-15. […] In the text, characters 0x00-0x7F and 0xA0-0xFF are printable, using the PCW character set. This is the same character set used by CP/M on the Spectrum +3. Characters 0x80-0x9F are markup codes: […]
  6. "LogoScript". Archived from the original on 2017-03-17. Retrieved 2017-07-15. […] At least in the PCW versions, the Amstrad CP/M Plus character set was used for the text portions, except that the C1 controls range was used for control codes (different ones from the C1 control standard, which probably didn't exist yet) instead of the graphical characters of the CPM/PLUS set. […]

Further reading

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.