Jump to content

Amstrad CP/M Plus character set

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 92.207.242.43 (talk) at 11:04, 17 October 2017 (Added distinction between characters 48 and 127). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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_ Template:Chset-color-ext-punct|
221D
0
Template:Chset-color-ext-punct|
2A00
1
Template:Chset-color-intl|Γ
0393
2
Template:Chset-color-intl|Δ
0394
3
Template:Chset-color-ext-punct|
2A02
4
Template:Chset-color-ext-punct|×
00D7
5
Template:Chset-color-ext-punct|÷
00F7
6
Template:Chset-color-ext-punct|
2238
7
Template:Chset-color-intl|Π
03A0
8
Template:Chset-color-ext-punct|
2193
9
Template:Chset-color-intl|Σ
03A3
10
Template:Chset-color-ext-punct|
2190
11
Template:Chset-color-ext-punct|
2192
12
Template:Chset-color-ext-punct|±
00B1
13
Template:Chset-color-ext-punct|
2194
14
Template:Chset-color-intl|Ω
03A9
15
1_ Template:Chset-color-intl|α
03B1
16
Template:Chset-color-intl|β
03B2
17
Template:Chset-color-intl|γ
03B3
18
Template:Chset-color-intl|δ
03B4
19
Template:Chset-color-intl|ε
03B5
20
Template:Chset-color-intl|ζ
03B6
21
Template:Chset-color-intl|η
03B7
22
Template:Chset-color-intl|θ
03B8
23
Template:Chset-color-intl|λ
03BB
24
Template:Chset-color-intl|μ
03BC
25
Template:Chset-color-intl|π
03C0
26
Template:Chset-color-intl|ρ
03C1
27
Template:Chset-color-intl|σ
03C3
28
Template:Chset-color-intl|τ
03C4
29
Template:Chset-color-intl|φ
03C6
30
Template:Chset-color-intl|χ
03C7
31
2_ Template:Chset-color-punct|SP
0020
32
Template:Chset-color-punct|!
0021
33
Template:Chset-color-punct|"
0022
34
Template:Chset-color-punct-box|#
0023
35
Template:Chset-color-punct|$
0024
36
Template:Chset-color-punct|%
0025
37
Template:Chset-color-punct|&
0026
38
Template:Chset-color-punct|'
0027
39
Template:Chset-color-punct|(
0028
40
Template:Chset-color-punct|)
0029
41
Template:Chset-color-punct|*
002A
42
Template:Chset-color-punct|+
002B
43
Template:Chset-color-punct|,
002C
44
Template:Chset-color-punct|-
002D
45
Template:Chset-color-punct|.
002E
46
Template:Chset-color-punct|/
002F
47
3_ Template:Chset-color-digit|0
0030
48[a]
Template:Chset-color-digit|1
0031
49
Template:Chset-color-digit|2
0032
50
Template:Chset-color-digit|3
0033
51
Template:Chset-color-digit|4
0034
52
Template:Chset-color-digit|5
0035
53
Template:Chset-color-digit|6
0036
54
Template:Chset-color-digit|7
0037
55
Template:Chset-color-digit|8
0038
56
Template:Chset-color-digit|9
0039
57
Template:Chset-color-punct|:
003A
58
Template:Chset-color-punct|;
003B
59
Template:Chset-color-punct|<
003C
60
Template:Chset-color-punct|=
003D
61
Template:Chset-color-punct|>
003E
62
Template:Chset-color-punct|?
003F
63
4_ Template:Chset-color-punct-box|@
0040
64
Template:Chset-color-alpha|A
0041
65
Template:Chset-color-alpha|B
0042
66
Template:Chset-color-alpha|C
0043
67
Template:Chset-color-alpha|D
0044
68
Template:Chset-color-alpha|E
0045
69
Template:Chset-color-alpha|F
0046
70
Template:Chset-color-alpha|G
0047
71
Template:Chset-color-alpha|H
0048
72
Template:Chset-color-alpha|I
0049
73
Template:Chset-color-alpha|J
004A
74
Template:Chset-color-alpha|K
004B
75
Template:Chset-color-alpha|L
004C
76
Template:Chset-color-alpha|M
004D
77
Template:Chset-color-alpha|N
004E
78
Template:Chset-color-alpha|O
004F
79
5_ Template:Chset-color-alpha|P
0050
80
Template:Chset-color-alpha|Q
0051
81
Template:Chset-color-alpha|R
0052
82
Template:Chset-color-alpha|S
0053
83
Template:Chset-color-alpha|T
0054
84
Template:Chset-color-alpha|U
0055
85
Template:Chset-color-alpha|V
0056
86
Template:Chset-color-alpha|W
0057
87
Template:Chset-color-alpha|X
0058
88
Template:Chset-color-alpha|Y
0059
89
Template:Chset-color-alpha|Z
005A
90
Template:Chset-color-punct-box|[
005B
91
Template:Chset-color-punct-box|\
005C
92
Template:Chset-color-punct-box|]
005D
93
Template:Chset-color-punct-box|
2192
94
Template:Chset-color-punct|_
005F
95
6_ Template:Chset-color-punct-box|`
0060
96
Template:Chset-color-alpha|a
0061
97
Template:Chset-color-alpha|b
0062
98
Template:Chset-color-alpha|c
0063
99
Template:Chset-color-alpha|d
0064
100
Template:Chset-color-alpha|e
0065
101
Template:Chset-color-alpha|f
0066
102
Template:Chset-color-alpha|g
0067
103
Template:Chset-color-alpha|h
0068
104
Template:Chset-color-alpha|i
0069
105
Template:Chset-color-alpha|j
006A
106
Template:Chset-color-alpha|k
006B
107
Template:Chset-color-alpha|l
006C
108
Template:Chset-color-alpha|m
006D
109
Template:Chset-color-alpha|n
006E
110
Template:Chset-color-alpha|o
006F
111
7_ Template:Chset-color-alpha|p
0070
112
Template:Chset-color-alpha|q
0071
113
Template:Chset-color-alpha|r
0072
114
Template:Chset-color-alpha|s
0073
115
Template:Chset-color-alpha|t
0074
116
Template:Chset-color-alpha|u
0075
117
Template:Chset-color-alpha|v
0076
118
Template:Chset-color-alpha|w
0077
119
Template:Chset-color-alpha|x
0078
120
Template:Chset-color-alpha|y
0079
121
Template:Chset-color-alpha|z
007A
122
Template:Chset-color-punct-box|{
007B
123
Template:Chset-color-punct-box||
007C
124
Template:Chset-color-punct-box|}
007D
125
Template:Chset-color-punct-box|~
007E
126
Template:Chset-color-digit|0
0030
127[a]
8_ Template:Chset-color-graph|
25FE
128
Template:Chset-color-graph|
2567
129
Template:Chset-color-graph|
255F
130
Template:Chset-color-graph|
255A
131
Template:Chset-color-graph|
2564
132
Template:Chset-color-graph|
2551
133
Template:Chset-color-graph|
2554
134
Template:Chset-color-graph|
2560
135
Template:Chset-color-graph|
2562
136
Template:Chset-color-graph|
255D
137
Template:Chset-color-graph|
2550
138
Template:Chset-color-graph|
2569
139
Template:Chset-color-graph|
2557
140
Template:Chset-color-graph|
2563
141
Template:Chset-color-graph|
2566
142
Template:Chset-color-graph|
256C
143
9_ Template:Chset-color-graph|·
00B7
144
Template:Chset-color-graph|
2575
145
Template:Chset-color-graph|
2576
146
Template:Chset-color-graph|
2514
147
Template:Chset-color-graph|
2577
148
Template:Chset-color-graph|
2502
149
Template:Chset-color-graph|
250C
150
Template:Chset-color-graph|
251C
151
Template:Chset-color-graph|
2574
152
Template:Chset-color-graph|
2518
153
Template:Chset-color-graph|
2500
154
Template:Chset-color-graph|
2534
155
Template:Chset-color-graph|
2510
156
Template:Chset-color-graph|
2524
157
Template:Chset-color-graph|
252C
158
Template:Chset-color-graph|
253C
159
A_ Template:Chset-color-intl|ª
00AA
160
Template:Chset-color-intl|º
00BA
161
Template:Chset-color-ext-punct|°
00B0
162
Template:Chset-color-ext-punct|£
00A3
163
Template:Chset-color-ext-punct|©
00A9
164
Template:Chset-color-ext-punct|
00B6
165
Template:Chset-color-ext-punct|§
00A7
166
Template:Chset-color-ext-punct|
2020
167
Template:Chset-color-ext-punct|¼
00BC
168
Template:Chset-color-ext-punct|½
00BD
169
Template:Chset-color-ext-punct|¾
00BE
170
Template:Chset-color-ext-punct|«
00AB
171
Template:Chset-color-ext-punct|»
00BB
172
Template:Chset-color-ext-punct|
20A7
173
Template:Chset-color-ext-punct|¿
00BF
174
Template:Chset-color-ext-punct|¡
00A1
175
B_ Template:Chset-color-intl|ƒ
0192
176
Template:Chset-color-ext-punct|¢
00A2
177
Template:Chset-color-ext-punct|¨
00A8
178
Template:Chset-color-ext-punct|´
00B4
179
Template:Chset-color-ext-punct|ˆ
02C6
180
Template:Chset-color-ext-punct|
2030
181
Template:Chset-color-ext-punct|
215B
182
Template:Chset-color-ext-punct|
215C
183
Template:Chset-color-ext-punct|
215D
184
Template:Chset-color-ext-punct|
215E
185
Template:Chset-color-intl|ß
00DF
186
Template:Chset-color-ext-punct|
25CB
187
Template:Chset-color-ext-punct|
2022
188
Template:Chset-color-ext-punct|¥
00A5
189
Template:Chset-color-ext-punct|®
00AE
190
Template:Chset-color-ext-punct|
2122
191
C_ Template:Chset-color-intl |Á
00C1
192
Template:Chset-color-intl |É
00C9
193
Template:Chset-color-intl |Í
00CD
194
Template:Chset-color-intl |Ó
00D3
195
Template:Chset-color-intl |Ú
00DA
196
Template:Chset-color-intl |Â
00C2
197
Template:Chset-color-intl |Ê
00CA
198
Template:Chset-color-intl |Î
00CE
199
Template:Chset-color-intl |Ô
00D4
200
Template:Chset-color-intl |Û
00DB
201
Template:Chset-color-intl |À
00C0
202
Template:Chset-color-intl |È
00C8
203
Template:Chset-color-intl |Ì
00CC
204
Template:Chset-color-intl |Ò
00D2
205
Template:Chset-color-intl |Ù
00D9
206
Template:Chset-color-intl |Ÿ
0178
207
D_ Template:Chset-color-intl |Ä
00C4
208
Template:Chset-color-intl |Ë
00CB
209
Template:Chset-color-intl |Ï
00CF
210
Template:Chset-color-intl |Ö
00D6
211
Template:Chset-color-intl |Ü
00DC
212
Template:Chset-color-intl |Ç
00C7
213
Template:Chset-color-intl |Æ
00C6
214
Template:Chset-color-intl|Å
00C5
215
Template:Chset-color-intl |Ø
00D8
216
Template:Chset-color-intl |Ñ
00D1
217
Template:Chset-color-intl |Ã
00C3
218
Template:Chset-color-intl |Õ
00D5
219
Template:Chset-color-ext-punct |
2265
220
Template:Chset-color-ext-punct |
2264
221
Template:Chset-color-ext-punct |
2260
222
Template:Chset-color-ext-punct |
2243
223
E_ Template:Chset-color-intl |á
00E1
224
Template:Chset-color-intl |é
00E9
225
Template:Chset-color-intl |í
00ED
226
Template:Chset-color-intl |ó
00F3
227
Template:Chset-color-intl |ú
00FA
228
Template:Chset-color-intl |â
00E2
229
Template:Chset-color-intl |ê
00EA
230
Template:Chset-color-intl |î
00EE
231
Template:Chset-color-intl |ô
00F4
232
Template:Chset-color-intl |û
00FB
233
Template:Chset-color-intl |à
00E0
234
Template:Chset-color-intl |è
00E8
235
Template:Chset-color-intl |ì
00EC
236
Template:Chset-color-intl |ò
00F2
237
Template:Chset-color-intl |ù
00F9
238
Template:Chset-color-intl |ÿ
00FF
239
F_ Template:Chset-color-intl |ä
00E4
240
Template:Chset-color-intl |ë
00EB
241
Template:Chset-color-intl |ï
00EF
242
Template:Chset-color-intl |ö
00F6
243
Template:Chset-color-intl |ü
00FC
244
Template:Chset-color-intl |ç
00E7
245
Template:Chset-color-intl |æ
00E6
246
Template:Chset-color-intl|å
00E5
247
Template:Chset-color-intl |ø
00F8
248
Template:Chset-color-intl |ñ
00F1
249
Template:Chset-color-intl |ã
00E5
250
Template:Chset-color-intl |õ
00F3
251
Template:Chset-color-ext-punct |
21D2
252
Template:Chset-color-ext-punct |
21D0
253
Template:Chset-color-ext-punct |
21D4
254
Template:Chset-color-ext-punct |
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]

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

[4]

See also

Notes

  1. ^ a b 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. ^ a b c "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. {{cite book}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help) [1]
  2. ^ Elliott, John (2015-04-04). "Amstrad Extended BIOS Internals". Archived from the original on 2017-07-15. Retrieved 2017-07-15. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  3. ^ a b "Amstrad CP/M Plus character set". Archived from the original on 2017-07-15. Retrieved 2017-07-15. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  4. ^ a b c d "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. […] {{cite book}}: |archive-date= / |archive-url= timestamp mismatch; 2017-07-11 suggested (help); Unknown parameter |dead-url= ignored (|url-status= suggested) (help) [2]
  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: […] {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  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. […] {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)

Further reading