|Alias(es)||PCW character set, ZX Spectrum +3 character set|
|Language(s)||US English, French, German, UK English, Danish Swedish, Italian and Spanish|
|Created by||Amstrad, Locomotive Software|
|Based on||ISO/IEC 646|
|Other related encoding(s)||LocoScript|
The Amstrad CP/M Plus character set (alternatively known as PCW character set or ZX Spectrum +3 character set) is any of 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 on various Amstrad CPC / Schneider CPC and Amstrad PCW / Schneider Joyce machines. The character set was also used on the Amstrad ZX Spectrum +3 version of CP/M.
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: USA (default), France, Germany, UK, Denmark, Sweden, Italy and Spain.
Another slight variant of the character set was used by LocoScript.
|Amstrad CP/M Plus character set (Language 0)|
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, as shown in the following table:
[...] 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. [...]
[...] 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: [...]
[...] 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. [...]