Appendix I Index Appendix III

Appendix II

CP/M Plus character sets

CP/M Plus on the Spectrum +3 supports a character set of 256 characters. The complete list of these characters is given in Section II.1.

Each character is known to the Spectrum by a code, usually represented as a decimal number between 0 and 255. The character set is provided in eight different 'language' variants and the specific assignment of numbers to characters depends on the 'nationality' of the character set that is being used. In each case, the Spectrum's codes form an extended version fo the industry standard ASCII character set.

The character set normally in use on the Spectrum is the American version of the CP/M character set (Language 0). When using a program or a data file set up under a different national language variant of CP/M, you may have to change the character set on the Spectrum to match. Part I, Section 4.5 describes how this is done.

While it is possible to display all 256 characters on the screen and to process them when they are held in a file, it is not possible to type every character at the keyboard and it may not be possible to print every character on your printer.

The range of characters that can be typed at any time depends on the details of the codes that the keyboard is currently set up to produce. The Spectrum keyboard is normally set up to produce the most commonly-used of these characters (about 120 characters in all). Forty-seven of these characters require just a single 'Character' key to be pressd. The rest are formed by pressing [Caps Shift]+key, [Symb Shift]+key, or [Extend Mode]+key or [Caps Shift] + [Symb Shift]+key.

The key combinations are listed in Section II.2. Other key combinations produce CP/M control codes.

The set of characters that can be typed can readily be altered. How this is done is described in Part I, Section 4.6.

Note: Some application programs will misinterpret any character with an internal hexadecimal value greater than #7F. These characters shouldn't be used with such programs. These problems will particularly affect those wishing to use accented characters in producing foreign language texts.

II.1 The complete character set (Language 0)

Dec valueHex valueSymbolDescription Alternative meaningSpecial name
0#00∞ InfinityControl-@NUL
1#01⊙ Arrow out of pageControl-ASOH
2#02Γ Upper case gammaControl-BSTX
3#03Δ Upper case deltaControl-CETX
4#04⊗ Arrow into pageControl-DEOT
5#05×Multiply Control-EENQ
6#06÷Divide Control-FACK
7#07∴ ThereforeControl-GBEL
8#08∏ Upper case piControl-HBS
9#09↓ Down pointing arrowControl-IHT
10#0A∑ Upper case sigmaControl-JLF
11#0B← Left pointing arrowControl-KVT
12#0C→ Right pointing arrowControl-LFF
13#0D±Plus or minus Control-MCR
14#0E↔ Arrow pointing lt and rtControl-NSO
15#0FΩ Upper case omegaControl-OSI
16#10α Lower case alphaControl-PDLE
17#11β Lower case betaControl-QDC1
18#12γ Lower case gammaControl-RDC2
19#13δ Lower case deltaControl-SDC3
20#14ε Lower case epsilonControl-TDC4
21#15θ Lower case thetaControl-UNAK
22#16λ Lower case lambdaControl-VSYN
23#17μ Lower case muControl-WETB
24#18π Lower case piControl-XCAN
25#19ρ Lower case rhoControl-YEM
26#1Aσ Lower case sigmaControl-ZSUB
27#1Bτ Lower case tauControl-[ESC
28#1Cφ Lower case phiControl-\FS
29#1Dχ Lower case chiControl-]GS
30#1Eψ Lower case psiControl-^RS
31#1Fω Lower case omegaControl-_US
32#20 Space
33#21!Exclamation mark
34#22"Double quote
35#23#Hash
36#24$Dollar sign
37#25%Percent
38#26&Ampersand
39#27'Apostrophe
40#28(Open parenthesis
41#29)Close parenthesis
42#2A*Asterisk
43#2B+Plus
44#2C,Comma
45#2D-Minus
46#2E.Full stop
47#2F/Slash
48#300Zero
49#311One
50#322Two
51#333Three
52#344Four
53#355Five
54#366Six
55#377Seven
56#388Eight
57#399Nine
58#3A:Colon
59#3B;Semicolon
60#3C<Less than sign
61#3D=Equals
62#3E>Greater than sign
63#3F?Question Mark
64#40@At
65#41AUpper case A
66#42BUpper case B
67#43CUpper case C
68#44DUpper case D
69#45EUpper case E
70#46FUpper case F
71#47GUpper case G
72#48HUpper case H
73#49IUpper case I
74#4AJUpper case J
75#4BKUpper case K
76#4CLUpper case L
77#4DMUpper case M
78#4ENUpper case N
79#4FOUpper case O
80#50PUpper case P
81#51QUpper case Q
82#52RUpper case R
83#53SUpper case S
84#54TUpper case T
85#55UUpper case U
86#56VUpper case V
87#57WUpper case W
88#58XUpper case X
89#59YUpper case Y
90#5AZUpper case Z
91#5B[Open square bracket
92#5C\Backslash
93#5D]Close square bracket
94#5E↑ Up arrow
95#5F_Upper case _
96#60`Upper case `
97#61aLower case a
98#62bLower case b
99#63cLower case c
100#64dLower case d
101#65eLower case e
102#66fLower case f
103#67gLower case g
104#68hLower case h
105#69iLower case i
106#6AjLower case j
107#6BkLower case k
108#6ClLower case l
109#6DmLower case m
110#6EnLower case n
111#6FoLower case o
112#70pLower case p
113#71qLower case q
114#72rLower case r
115#73sLower case s
116#74tLower case t
117#75uLower case u
118#76vLower case v
119#77wLower case w
120#78xLower case x
121#79yLower case y
122#7AzLower case z
123#7B{Open curly bracket
124#7C|Vertical bar
125#7D}Close curly bracket
126#7E~Tilde
127#7F0Zero without a slashDEL
128..159#80..#9F Line graphicsExpansion tokens
[graphics]
160#A0ªFeminine ordinal
161#A1ºMasculine ordinal
162#A2°Degree
163#A3£Pound sign
164#A4©Copyright
165#A5Paragraph sign
166#A6§Section
167#A7† Dagger
168#A8¼One quarter
169#A9½Half
170#AA¾Three quarters
171#AB«Open quotes (Fr.)
172#AC»Close quotes (Fr.)
173#ADPtPesata
174#AE¿Inverted question mark
175#AF¡Inverted exclamation mark
176#B0fFlorin
177#B1¢Cent
178#B2¨Umlaut
179#B3´Acute accent
180#B4^Circumflex
181#B5‰ Per thousand
182#B61/8One eighth
183#B73/8Three eighths
184#B85/8Five eighths
185#B97/8Seven eighths
186#BAßGerman Scharfes S
187#BB○ Open circle
188#BC● Bullet
189#BD¥Yen
190#BE®Registered
191#BFTMTrade mark
192#C0ÁUpper case A acute
193#C1ÉUpper case E acute
194#C2ÍUpper case I acute
195#C3ÓUpper case O acute
196#C4ÚUpper case U acute
197#C5ÂUpper case A circumflex
198#C6ÊUpper case E circumflex
199#C7ÎUpper case I circumflex
200#C8ÔUpper case O circumflex
201#C9ÛUpper case U circumflex
202#CAÀUpper case A grave
203#CBÈUpper case E grave
204#CCÌUpper case I grave
205#CDÒUpper case O grave
206#CEÙUpper case U grave
207#CFŸ Upper case Y umlaut
208#D0ÄUpper case A umlaut
209#D1ËUpper case E umlaut
210#D2ÏUpper case I umlaut
211#D3ÖUpper case O umlaut
212#D4ÜUpper case U umlaut
213#D5ÇUpper case C cedilla
214#D6ÆUpper case diphthong
215#D7ÅUpper case A ring
216#D8ØUpper case O slash
217#D9ÑUpper case N tilde
218#DAÃUpper case A tilde
219#DBÕUpper case O tilde
220#DC≥ Greater than or equal
221#DD≤ Less than or equal
222#DE≠ Not equal
223#DF≅ Approximately equal
224#E0áLower case A acute
225#E1éLower case E acute
226#E2íLower case I acute
227#E3óLower case O acute
228#E4úLower case U acute
229#E5âLower case A circumflex
230#E6êLower case E circumflex
231#E7îLower case I circumflex
232#E8ôLower case O circumflex
233#E9ûLower case U circumflex
234#EAàLower case A grave
235#EBèLower case E grave
236#ECìLower case I grave
237#EDòLower case O grave
238#EEùLower case U grave
239#EFÿLower case U grave
240#F0äLower case A umlaut
241#F1ëLower case E umlaut
242#F2ïLower case I umlaut
243#F3öLower case O umlaut
244#F4üLower case U umlaut
245#F5çLower case C cedilla
246#F6æLower case diphthong
247#F7åLower case A ring
248#F8øLower case O slash
249#F9ñLower case N tilde
250#FAãLower case A tilde
251#FBõLower case O tilde
252#FC⇒ Double shafted arrow pointing right
253#FD⇐ Double shafted arrow pointing left
254#FE⇔ Double shafted arrow left+right
255#FF≡ Equivalent

II.2 The standard CP/M keyboard

II.2.1 The Character keys

The following show the standard layout of the keyboard on Spectrum +3. The range of characters that can be typed and the keystrokes used to produce characters already on the keyboard can be changed using SETKEYS. This is described in Part I, Section 4.6.

Normal keyboard

#83
^S
#84
^I
1 2 3 4 5 6 7 8 9 0 #8A
^[
#80
DEL
#89
^G
q w e r t y u i o p
Extend mode #81
^W
a s d f g h j k l Enter
Caps Shift #82
 
z x c v b n m . Caps shift
Symb
Shift
; " #85
^A
#88
^F
#87
^_
#88
^^
, Symb
Shift

Keyboard with Caps Shift

#83
^S
#84
^I
#81
^W
#82
 
#83
^S
#84
^I
#85
^A
#86
^^
#87
^_
#88
^F
#89
^G
#80
DEL
#8A
^[
#80
DEL
#89
^G
Q W E R T Y U I O P
Extend mode #81
^W
A S D F G H J K L Enter
Caps Shift #82
 
Z X C V B N M ^M Caps shift
Symb
Shift
^O ^P #85
^A
#88
^F
#87
^_
#88
^^
^N Symb
Shift

Keyboard with Symbol Shift

#8B
^Q
¢ ! @ # $ % & ' ( ) _ DEL
^_
 
^] © ® < > [ ] ` ; "
Extend mode ^\
 
~ | \ { } ^ - + = Enter
Caps Shift ^@
 
: £ ? / * , . . Caps shift
Symb
Shift
; " ½ ^[ ^^ § , Symb
Shift

Keyboard with Extend mode

#8B
^Q
¢ ^\ ^@ #8B
^Q
¢ ½ § ^^ ^[ ^] ^_ DEL
^_
 
^] ^Q ^W ^E ^R ^T ^Y ^U ^I ^O ^P
Extend mode ^\
 
^A ^S ^D ^F ^G ^H ^J ^K ^L Enter
Caps Shift ^@
 
^Z ^X ^C ^V ^B ^N ^M ^M Caps shift
Symb
Shift
^O ^P ½ ^[ ^^ § ^N Symb
Shift

II.2.2 The Function and other special keys

The following table lists Control codes that the function keys and other special keys on the Spectrum +3 are automatically set up to produce. These settings are designed to aid your use of CP/M commands and Mallard BASIC. The ways in which these keys can be made to give different facilities is described in Part I, Section 4.6.
TokenControl stringKey combination
#80DEL [Delete] or [Caps Shift] + 0
#81Control-W [Edit] or [Caps Shift] + 1
#82(No string) [Caps Shift] + 2
#83Control-S [True Video] or [Caps Shift] + 3
#84Control-I [Inv Video] or [Caps Shift] + 4
#85Control-A [<] or [Caps Shift] + 5
#86Control-^ [v] or [Caps Shift] + 6
#87Control-_ [^] or [Caps Shift] + 7
#88Control-F [>] or [Caps Shift] + 8
#89Control-G [Graph] or [Caps Shift] + 9
#8AControl-[ [Break] or [Caps Shift] + [Space]
#8BControl-Q [Symb Shift] + [True Video] or [Extend Mode]+ 3


Appendix I Index Appendix III