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 setEdit

Amstrad CPC[6][7][8][a]
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
0_

0000


0001


0002


0003

⚡︎

0004


0005


0006


0007


0008


0009


000A


000B


000C


000D


000E


000F
1_

0010


0011


0012


0013


0014


0015


0016


0017


0018


0019


001A


001B


001C


001D


001E


001F
2_
0020
!
0021
"
0022
#
0023
$
0024
%
0025
&
0026

2019
(
0028
)
0029
*
002A
+
002B
,
002C
-
002D
.
002E
/
002F
3_ 0
0030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0037
8
0038
9
0039
:
003A
;
003B
<
003C
=
003D
>
003E
?
003F
4_ @
0040
A
0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
I
0049
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
5_ P
0050
Q
0051
R
0052
S
0053
T
0054
U
0055
V
0056
W
0057
X
0058
Y
0059
Z
005A
[
005B
\
005C
]
005D

2191
_
005F
6_ `
0060
a
0061
b
0062
c
0063
d
0064
e
0065
f
0066
g
0067
h
0068
i
0069
j
006A
k
006B
l
006C
m
006D
n
006E
o
006F
7_ p
0070
q
0071
r
0072
s
0073
t
0074
u
0075
v
0076
w
0077
x
0078
y
0079
z
007A
{
007B
|
007C
}
007D
~
007E

007F
8_  
00A0

2598

259D

2580

2596

258C

259E

259B

2597

259A

2590

259C

2584

2599

259F

2588
9_ ·
00B7

2575

2576

2514

2577

2502

250C

251C

2574

2518

2500

2534

2510

2524

252C

253C
A_ ^
005E
´
00B4
¨
00A8
£
00A3
©
00A9

00B6
§
00A7

2018
¼
00BC
½
00BD
¾
00BE
±
00B1
÷
00F7
¬
00AC
¿
00BF
¡
00A1
B_ α
03B1
β
03B2
γ
03B3
δ
03B4
ε
03B5
θ
03B8
λ
03BB
μ
03BC
π
03C0
σ
03C3
φ
03C6
ψ
03C8
χ
03C7
ω
03C9
Σ
03A3
Ω
03A9
C_ 🮠
1FBA0
🮡
1FBA1
🮣
1FBA3
🮢
1FBA2
🮧
1FBA7
🮥
1FBA5
🮦
1FBA6
🮤
1FBA4
🮨
1FBA8
🮩
1FBA9
🮮
1FBAE

2573

2571

2572
🮕
1FB95

2592
D_
2594

2595

2581

258F

25E4

25E5

25E2

25E3
🮎
1FB8E
🮍
1FB8D
🮏
1FB8F
🮌
1FB8C
🮜
1FB9C
🮝
1FB9D
🮞
1FB9E
🮟
1FB9F
E_
263A

2639

2663

2666

2665

2660

25CB

25CF

25A1

25A0

2642

2640

2669

266A

263C
 
 
F_
2B61

2B63

2B60

2B62

25B2

25BC

25B6

25C0
🯆
1FBC6
🯅
1FBC5
🯇
1FBC7
🯈
1FBC8
 
 
 
 

2B65

2B64
  1. ^ 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]

  Letter  Number  Punctuation  Symbol  Other  Undefined  No Unicode mapping[5]

Control charactersEdit

Each of the characters in the C0 character range (0x00-0x1F) had a special function.[10]


BASIC Control characters
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.
  1. ^ a b c d e f g h i j 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

ReferencesEdit

  1. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 9
  2. ^ ZX Spectrum character set
  3. ^ PETSCII
  4. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, p. 54
  5. ^ a b "Character Not Proposed" (PDF), L2/19-025: Sources, 2019-01-04
  6. ^ "AMSCPC.TXT", L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS (PDF), 2019-01-04
  7. ^ L2/19-025: Sources (PDF), 2019-01-04
  8. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 9–20
  9. ^ Godden, Bruce; Overell, Paul; Radisic, David (1986), "Appendix VI: Displayed Character Set", CPC464/664/6128 FIRMWARE, Amstrad Consumer Electronics, p. 431
  10. ^ "Chapter 7: For your reference ...." (PDF), Amstrad CPC 6128 User Instructions, 1985, pp. 3–6