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#05Multiply Control-EENQ
6#06Divide 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#0DPlus 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#A0Feminine ordinal
161#A1Masculine ordinal
162#A2Degree
163#A3Pound sign
164#A4Copyright
165#A5Paragraph sign
166#A6Section
167#A7† Dagger
168#A8One quarter
169#A9Half
170#AAThree quarters
171#ABOpen quotes (Fr.)
172#ACClose quotes (Fr.)
173#ADPtPesata
174#AEInverted question mark
175#AFInverted exclamation mark
176#B0fFlorin
177#B1Cent
178#B2Umlaut
179#B3Acute 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#BAGerman Scharfes S
187#BB○ Open circle
188#BC● Bullet
189#BDYen
190#BERegistered
191#BFTMTrade mark
192#C0Upper case A acute
193#C1Upper case E acute
194#C2Upper case I acute
195#C3Upper case O acute
196#C4Upper case U acute
197#C5Upper case A circumflex
198#C6Upper case E circumflex
199#C7Upper case I circumflex
200#C8Upper case O circumflex
201#C9Upper case U circumflex
202#CAUpper case A grave
203#CBUpper case E grave
204#CCUpper case I grave
205#CDUpper case O grave
206#CEUpper case U grave
207#CFŸ Upper case Y umlaut
208#D0Upper case A umlaut
209#D1Upper case E umlaut
210#D2Upper case I umlaut
211#D3Upper case O umlaut
212#D4Upper case U umlaut
213#D5Upper case C cedilla
214#D6Upper case diphthong
215#D7Upper case A ring
216#D8Upper case O slash
217#D9Upper case N tilde
218#DAUpper case A tilde
219#DBUpper case O tilde
220#DC≥ Greater than or equal
221#DD≤ Less than or equal
222#DE≠ Not equal
223#DF≅ Approximately equal
224#E0Lower case A acute
225#E1Lower case E acute
226#E2Lower case I acute
227#E3Lower case O acute
228#E4Lower case U acute
229#E5Lower case A circumflex
230#E6Lower case E circumflex
231#E7Lower case I circumflex
232#E8Lower case O circumflex
233#E9Lower case U circumflex
234#EALower case A grave
235#EBLower case E grave
236#ECLower case I grave
237#EDLower case O grave
238#EELower case U grave
239#EFLower case U grave
240#F0Lower case A umlaut
241#F1Lower case E umlaut
242#F2Lower case I umlaut
243#F3Lower case O umlaut
244#F4Lower case U umlaut
245#F5Lower case C cedilla
246#F6Lower case diphthong
247#F7Lower case A ring
248#F8Lower case O slash
249#F9Lower case N tilde
250#FALower case A tilde
251#FBLower 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