The Amstrad CPC character set (alternatively known as the BASIC graphics character set)[1] is the character set used in the Amstrad CPC series of 8-bit personal computers when running BASIC (the default mode, until it boots into CP/M). This character set existed in the built-in "lower" ROM chip. It is based on ASCII-1967, with the exception of character 0x5E which is the up arrow instead of the circumflex, as it is in ASCII-1963, a feature shared with other character sets of the time.[2][3] Apart from the standard printable ASCII range (0x20-0x7e), it is completely different from the Amstrad CP/M Plus character set. The BASIC character set had symbols of particular use in games and home computing, while the CP/M Plus character reflected the International and Business flavor of the CP/M Plus environment.[4] This character set is represented in Unicode (excluding 0xEF, 0xFC, and 0xFD)[5] as of the March 2020 release of Unicode 13.0, which added symbols for legacy computing.

Character set

Amstrad CPC[6][7][8][a]
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x ⚡︎
1x
2x  SP  ! " # $ % & ( ) * + , - . /
3x 0 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 { | } ~ DEL
8x  
9x ·
Ax ^ ´ ¨ £ © § ¼ ½ ¾ ± ÷ ¬ ¿ ¡
Bx α β γ δ ε θ λ μ π σ φ ψ χ ω Σ Ω
Cx 🮠 🮡 🮣 🮢 🮧 🮥 🮦 🮤 🮨 🮩 🮮 🮕
Dx 🮎 🮍 🮏 🮌 🮜 🮝 🮞 🮟
Ex
Fx 🯆 🯅 🯇 🯈
  No Unicode mapping[5]
  1. ^ The control characters normally do not produce a character on screen, but are interpreted as control codes. When using the character 1 (SOH) as a prefix, or with the graphics text, or entered from the keyboard, they are displayed with the representation on the bottom of the cell.[9]

Control characters

Each of the characters in the C0 character range (0x00-0x1F) had a special function.[10]


BASIC Control characters
Value (hex) Value(dec) Name Parameter Locomotive BASIC equivalent Function
00 0 NUL No effect. Ignored.
01 1 SOH 0-255 Print the symbol given by the parameter value. This allows the symbols in the range 0 to 31 to be displayed.
02 2 STX CURSOR 0 Turn off text cursor.
03 3 ETX CURSOR 1 Turn on text cursor.
04 4 EOT 0-2 MODE Set screen mode.
05 5 ENQ 0-255 Send the parameter character to the graphics cursor.
06 6 ACK Enable Text Screen (see NAK)
07 7 BEL Sound Bleeper. Note that this flushes the sound queues.
08 8 BS Move cursor back one character.[a]
09 9 TAB Move cursor forward one character.[a]
0A 10 LF Move cursor down one line.[a]
0B 11 VT Move cursor up one line.[a]
0C 12 FF CLS Clear text window and move cursor to top left corner.
0D 13 CR Move cursor to left edge of window on current line.[a]
0E 14 SO 0-15 PAPER Set Paper Ink.
0F 15 SI 0-15 PEN Set Pen Ink.
10 16 DLE Delete current character.[a]
11 17 DC1 Clear from left edge of window to, and including, the current character position.[a]
12 18 DC2 Clear from, and including, the current character position to the right edge of window.[a]
13 19 DC3 Clear from start of window to, and including, the current character position.[a]
14 20 DC4 Clear from, and including, the current character position to the end of window.[a]
15 21 NAK Turn off text screen. The screen will not react to anything sent to it until after an ACK is sent.
16 22 SYN 0-1 Set transparency (0 disables, 1 enables)
17 23 ETB 0-3 Set graphics ink mode. 0 normal (overwrite), 1 XOR, 2 AND, 3 OR
18 24 CAN Exchange Pen and Paper Inks, effectively applying the reverse video effect.
19 25 EM 0-255 (9 times) SYMBOL Set the matrix for user definable character. The first parameter specifies which character's matrix to set. The next eight specify the matrix.
1A 26 SUB 1-80, 1-80, 1-25, 1-25 WINDOW Set Window. The parameters specify left, right, top and bottom edges of the window.
1B 27 ESC No effect. Ignored.
1C 28 FS 0-15, 0-31, 0-31 INK Set Ink to a pair of colors. The first parameter specifies the Ink, the next two the required colors. [b]
1D 29 GS 0-31, 0-31 BORDER Set Border to a pair of colors. Equivalent to a BORDER command. The two parameters specify the two colors.[b]
1E 30 RS Move cursor to top left hand corner of window.
1F 31 US 1-80, 1-25 LOCATE Move cursor to the given position in the current window. The first parameter gives the column to move to, the second gives the line.
  1. ^ a b c d e f g h i j The codes marked force the cursor to a legal position in the current window before they are obeyed - but may leave the cursor in an illegal position

References

  1. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 9
  2. ^ ZX Spectrum character set
  3. ^ PETSCII
  4. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 54
  5. ^ a b "Character Not Proposed" (PDF), L2/19-025: Sources, 2019-01-04
  6. ^ "AMSCPC.TXT" (PDF), L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS, 2019-01-04
  7. ^ L2/19-025: Sources (PDF), 2019-01-04
  8. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 9–20
  9. ^ Godden, Bruce; Overell, Paul; Radisic, David (1986), "Appendix VI: Displayed Character Set", CPC464/664/6128 FIRMWARE, Amstrad Consumer Electronics, p. 431
  10. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 3–6