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 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
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ |
∞ 221D 0 |
⎗ 2397 1 |
Γ 0393 2 |
Δ 0394 3 |
⎘ 2398 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 |
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 |
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]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|
0x23 | # | # | # | £ | # | # | # | Pt |
0x40 | @ | à | § | @ | @ | É | @ | @ |
0x5B | [ | º | Ä | [ | Æ | Ä | º | ¡ |
0x5C | \ | ç | Ö | \ | Ø | Ö | \ | Ñ |
0x5D | ] | § | Ü | ] | Å | Å | é | ¿ |
0x5E | ^ | ^ | ^ | ^ | ^ | Ü | ^ | ^ |
0x60 | ` | ` | ` | ` | ` | é | ù | ` |
0x7B | { | é | ä | { | æ | ä | à | ¨ |
0x7C | | | ù | ö | | | ø | ö | ò | ñ |
0x7D | } | è | ü | } | å | å | è | } |
0x7E | ~ | ¨ | ß | ~ | ~ | ü | ì | ~ |
See also
- CPC character set
- ZX Spectrum character set
- ISO/IEC 646 (similar, but not identical set of 7-bit character sets)
References
- 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.
- ↑ Elliott, John (2015-04-04). "Amstrad Extended BIOS Internals". Archived from the original on 2017-07-15. Retrieved 2017-07-15.
- 1 2 "Amstrad CP/M Plus character set". Archived from the original on 2017-07-15. Retrieved 2017-07-15.
- 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. […]
- ↑ 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: […]
- ↑ "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
- http://www.cpcwiki.eu/index.php/Amstrad/Schneider_Printer_Character_Sets
- http://www.cpcwiki.eu/index.php/Keyboard_Versions#Character_Set_ROMs