Amstrad CPC character set
The Amstrad CPC character set (alternately known as the BASIC graphics character set)[1] 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
Letter Number Punctuation Symbol Other Undefined No Unicode mapping[5]
Control characters
Each of the characters in the C0 character range (0x00-0x1F) had a special function.[10]
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. |
References
- ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 9
- ^ ZX Spectrum character set
- ^ PETSCII
- ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 54
- ^ a b "Character Not Proposed" (PDF), L2/19-025: Sources, 2019-01-04
- ^ "AMSCPC.TXT", L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS (PDF), 2019-01-04
- ^ L2/19-025: Sources (PDF), 2019-01-04
- ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 9–20
- ^ Godden, Bruce; Overell, Paul; Radisic, David (1986), "Appendix VI: Displayed Character Set", CPC464/664/6128 FIRMWARE, Amstrad Consumer Electronics, p. 431
- ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 3–6