Amstrad CPC character set
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. The three missing characters have however been accepted for inclusion in Unicode 16.0 in the symbols for legacy computing supplement.[6]
Character set[edit]
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[edit]
Each of the characters in the C0 character range (0x00-0x1F) had a special function.[11]
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[edit]
- ^ "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
- ^ Jump up to: a b "Character Not Proposed" (PDF), L2/19-025: Sources, 2019-01-04
- ^ "Symbols for Legacy Computing Supplement" (PDF).
- ^ "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