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
    
| Amstrad CPC[6][7][8][lower-alpha 1] | ||||||||||||||||
| 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 | ⭡ | ⭣ | ⭠ | ⭢ | ▲ | ▼ | ▶ | ◀ | 🯆 | 🯅 | 🯇 | 🯈 |  |  | ⭥ | ⭤ | 
- 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]
| 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. | 
- 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
- Parameter values 27 to 31 are un-defined colors.
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
- "Character Not Proposed" (PDF), L2/19-025: Sources, 2019-01-04
- "AMSCPC.TXT" (PDF), L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS, 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
