Amstrad CPC character set

From HandWiki

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][lower-alpha 1]
0 1 2 3 4 5 6 7 8 9 A B C D E F
⚡︎
 SP  ! " # $ % & ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ]
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ DEL
 
·
^ ´ ¨ £ © § ¼ ½ ¾ ± ÷ ¬ ¿ ¡
α β γ δ ε θ λ μ π σ φ ψ χ ω Σ Ω
🮠 🮡 🮣 🮢 🮧 🮥 🮦 🮤 🮨 🮩 🮮 🮕
🮎 🮍 🮏 🮌 🮜 🮝 🮞 🮟
CPC character 0xEF.png
🯆 🯅 🯇 🯈 CPC character 0xFC.png CPC character 0xFD.png
  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.[lower-alpha 1]
09 9 TAB Move cursor forward one character.[lower-alpha 1]
0A 10 LF Move cursor down one line.[lower-alpha 1]
0B 11 VT Move cursor up one line.[lower-alpha 1]
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.[lower-alpha 1]
0E 14 SO 0-15 PAPER Set Paper Ink.
0F 15 SI 0-15 PEN Set Pen Ink.
10 16 DLE Delete current character.[lower-alpha 1]
11 17 DC1 Clear from left edge of window to, and including, the current character position.[lower-alpha 1]
12 18 DC2 Clear from, and including, the current character position to the right edge of window.[lower-alpha 1]
13 19 DC3 Clear from start of window to, and including, the current character position.[lower-alpha 1]
14 20 DC4 Clear from, and including, the current character position to the end of window.[lower-alpha 1]
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. [lower-alpha 2]
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.[lower-alpha 2]
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. Jump up to: 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 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