Amstrad CPC character set


The Amstrad CPC character set the character set used in the Amstrad CPC series of 8-bit personal computers when running BASIC. 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. Apart from the standard printable ASCII range, 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. This character set is represented in Unicode as of the March 2020 release of Unicode 13.0, which added symbols for legacy computing.

Character set

Control characters

Each of the characters in the C0 character range had a special function.
Value ValueNameParameterLocomotive BASIC equivalentFunction
000NULNo effect. Ignored.
011SOH0-255Print the symbol given by the parameter value. This allows the symbols in the range 0 to 31 to be displayed.
022STXCURSOR 0Turn off text cursor.
033ETXCURSOR 1Turn on text cursor.
044EOT0-2MODESet screen mode.
055ENQ0-255Send the parameter character to the graphics cursor.
066ACKEnable Text Screen
077BELSound Bleeper. Note that this flushes the sound queues.
088BSMove cursor back one character.
099TABMove cursor forward one character.
0A10LFMove cursor down one line.
0B11VTMove cursor up one line.
0C12FFCLSClear text window and move cursor to top left corner.
0D13CRMove cursor to left edge of window on current line.
0E14SO0-15PAPERSet Paper Ink.
0F15SI0-15PENSet Pen Ink.
1016DLEDelete current character.
1117DC1Clear from left edge of window to, and including, the current character position.
1218DC2Clear from, and including, the current character position to the right edge of window.
1319DC3Clear from start of window to, and including, the current character position.
1420DC4Clear from, and including, the current character position to the end of window.
1521NAKTurn off text screen. The screen will not react to anything sent to it until after an ACK is sent.
1622SYN0-1Set transparency
1723ETB0-3Set graphics ink mode. 0 normal, 1 XOR, 2 AND, 3 OR
1824CANExchange Pen and Paper Inks, effectively applying the reverse video effect.
1925EM0-255 SYMBOLSet the matrix for user definable character. The first parameter specifies which character's matrix to set. The next eight specify the matrix.
1A26SUB1-80, 1-80, 1-25, 1-25WINDOWSet Window. The parameters specify left, right, top and bottom edges of the window.
1B27ESCNo effect. Ignored.
1C28FS0-15, 0-31, 0-31INKSet Ink to a pair of colors. The first parameter specifies the Ink, the next two the required colors.
1D29GS0-31, 0-31BORDERSet Border to a pair of colors. Equivalent to a BORDER command. The two parameters specify the two colors.
1E30RSMove cursor to top left hand corner of window.
1F31US1-80, 1-25LOCATEMove cursor to the given position in the current window. The first parameter gives the column to move to, the second gives the line.