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 | |
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 | ⭡ | ⭣ | ⭠ | ⭢ | ▲ | ▼ | ▶ | ◀ | 🯆 | 🯅 | 🯇 | 🯈 | ⭥ | ⭤ |
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. |
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
- 1 2 "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", CPC 464/664/6128 FIRMWARE, Amstrad Consumer Electronics, p. 431
- ↑ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 3–6