Amstrad CP/M Plus character set

From Wikipedia, the free encyclopedia
Amstrad CP/M Plus character set
Alias(es)PCW character set, ZX Spectrum +3 character set
Language(s)US English, French, German, UK English, Danish Swedish, Italian and Spanish
Created byAmstrad, Locomotive Software
Based onISO/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[1] on various Amstrad CPC / Schneider CPC and Amstrad PCW / Schneider Joyce machines.[2][3] The character set was also used on the Amstrad ZX Spectrum +3 version of CP/M.[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: USA (default), France, Germany, UK, Denmark, Sweden, Italy and Spain.[4]

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

Character set[edit]

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
0x Γ Δ × ÷ Π Σ ± Ω
1x α β γ δ ε θ λ μ π ρ σ τ φ χ ψ ω
2x  SP  ! " # $ % & ' ( ) * + , - . /
3x 0︀[a] 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ 0[a]
8x ◾︎
9x ·
Ax ª º ° £ © § ¼ ½ ¾ « » ¿ ¡
Bx ƒ ¢ ¨ ´ ˆ ß ¥ ®
Cx Á É Í Ó Ú Â Ê Î Ô Û À È Ì Ò Ù Ÿ
Dx Ä Ë Ï Ö Ü Ç Æ Å Ø Ñ Ã Õ
Ex á é í ó ú â ê î ô û à è ì ò ù ÿ
Fx ä ë ï ö ü ç æ å ø ñ ã õ
  Language variants
  1. ^ a b Code point 0x30 is intended for zero with a slash (Unicode standardized variant U+0030 U+FE00), 0x7F 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.

Language variants[edit]

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:[4]

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

See also[edit]

References[edit]

  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. [1]
  2. ^ Elliott, John C. (2015-04-04). "Amstrad Extended BIOS Internals". Seasip.info. Archived from the original on 2017-07-15. Retrieved 2017-07-15.
  3. ^ a b "Amstrad CP/M Plus character set". Archived from the original on 2017-07-15. Retrieved 2017-07-15.
  4. ^ a b "Chapter 4.5 Selecting the appropriate national language". Spectrum +3 CP/M Plus manual (User Manual). Archived from the original on 2017-07-11. 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. [...] [2]
  5. ^ Elliott, John C. (2016-04-16). "LocoScript 1 file format". Seasip.info. 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. ^ "LocoScript". 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[edit]