Cpc basic key words
Cpc basic error messages
Diskettes management
Z80 processor opcodes
and operation
The memory
Basic error messages
1 Unexpected NEXT
2 Syntax error
3 Unexpected RETURN
4 DATA exhausted
5 Improper argument
6 Overflow
7 Memory full
8 Line does not exist
9 Subscript out of range
10 Array already dimensionned
11 Division by zero
12 Invalid direct command
13 Type mismatch
14 String space full
15 String too long
16 String expression too complex
17 Cannot continue
18 Unknown user function
19 RESUME missing
20 Unexpected RESUME
21 Direct command found
22 Operand missing
23 line too long
24 EOF met
25 File type error
26 NEXT missing
27 File already open
28 Unknown command
29 WEND missing
30 Unexpected WEND
31 File not open
(See «Diskette errors»)
32 Broken in
(See «Diskette errors»)
Diskettes management
AMSDOS
is a BASIC AMSTRAD extension, adding additional external commands and
redefining certain existing instructions. The new external commands are identified
by the symbol | (vertical bar).
Names
and kinds of files AMSDOS
The name consists of two parts separated by a point, the first part is
8 letters large maximum and the second is 3 letters large. The second
part represents the file type indicator. The file names and their
indicators can be composed with a mixture of letters and numbers but
can't contain spaces, nor punctuation marks. The file type
indicator, simple convention indicating the type of the file, does not
do any precise part, the system distinguishing the files between them
with a particular header. In the case where extension is not
specified at the time of a safeguard, AMSDOS determines which extension
to allot with the following way:
.<space>
Standard not specified. Perhaps a data file created by the command
OPENOUT"<nomfich>" (file name) or a BASIC program safeguarded by using a command like SAVE"<nomfich>",A
.BAS Programs BASIC
safeguarded using commands like SAVE"<nomfich>" or
SAVE"<nomfich>",P
.BIN Programs or storage
area safeguarded by a command like SAVE"<nomfich>",B (<binary
parameters>)
.BAK Old version of a file safeguarded by AMSDOS. The user can thus recover the old
version if he need it.
Synopsis
of the principal AMSDOS external commands
|A
Direct
the inputs/outputs towards unit A. Equivalent to |DRIVE with A for
parameter.
|B
Direct
the inputs/outputs towards unit B. Equivalent to |DRIVE with B for
parameter.
|CPM
Load and initializes the operating system contained in the diskette system.
|DIR
Post
the catalogue of the diskette and space available.
|DRIVE,<alphanumeric chain>
ex: |DRIVE,"A"
Direct
the inputs/outputs towards one of the units.
|ERA,<alphanumeric chain>
ex: |ERA,"*.BAS"
Erase
all files which correspond to this file name and wich are not in Writing only. Jokers are allowed.
|REN,<alphanumeric chain>,<alphanumeric chain>
ex: |REN,"NEW.BAS","OLD.BAS"
Rename a file. Jokers are not authorized
Diskette errors
Several
errors can occur at the time of the filing operations treatment.
Although the BASIC gathers them under the number of ERRor 32, you can obtain
further information by calling the function DERR. Here is the significance of the values
which it returns:
AMSDOS error DERR value
0
0 ou 22
[ESC] activation
14
142
(128+14) Channel state no
valid
15 143 (128+15) End of file (hardware)
16 144 (128+16) Bad command, generaly incorrect file name
17 145 (128+17) File allready exist
18 146 (128+18) File don't exist
19 147 (128+19) Catalogue saturated
20 148 (128+20) Diskette full
21 149 (128+21) Change
of the diskette with open files
22 150 (128+22) File read only
26 154 (128+26) End of file (software)
If
AMSDOS already brought back an error, the bit 7 took value 1, shifting that of DERR
of 128.
The other values reported by DERR come from the diskette controller,
the bit 6 being always ON. The Bit 7 indicates if AMSDOS brought back the error or
not (see above). Here is the significance of each bit:
Bit Significance
0 Missing adress
1 Impossible
writing. Protected diskette.
2 No data. Sector can't be found.
3 Unity not ready. No diskette in unity.
4 Overload
5 Data error. Cyclic Redundancy Check error
6 Alway set to indicate an error wich come from the diskette controller.
7 Set if AMSDOS already brought back the error.
Z80 processor opcodes
and operation (web documents)
Introduction to Z80 assembler
Z80 Opcode Listing
Z80 Mnemonics and Operations
Z80 Map
The memory
The
6128 has a 128 KB memory (RAM) divided into eight blocks of 16 KB each one,
numbered from 0 to 7. Only four blocks can beings connected simultaneously.
Value on port &7F blocks position
&C0
0,1,2,3 standard Cpc configuration memory
&C1
0,1,2,7
&C2 4,5,6,7
&C3 0,3,2,7
&C4 0,4,2,3
&C5 0,5,2,3
&C6 0,6,2,3
&C7 0,7,2,3
The
Cpc system exploits only the first configuration. In this
configuration block 0 occupies memory space 0 to 03FFFh, block 1 space 04000h to 07FFFh, block 2 space 08000h to 0BFFFh and block 3 space 0C000h to
0FFFFh. The screen exploits block 3. The higher part of block 2 contains
the system variables. The lower part of block 0 is used by the system.
The BASIC programs are loaded by the system starting from the
address 0170h. The binary data can beings loaded starting from the
address defined using the Basic instruction "MEMORY".
If they are executable programs, they could be called with the instruction
"CALL".
There is three 16Kb roms blocks in the Cpc
6128 (48Ko). One of these blocks contains the operating system which is
connected in zone 0 to 03FFFh (lower rom). The two other blocks (BASIC and
disc system) are connected in the zone 0C000h to 0FFFFh (higher roms). The
system can exploit in this zone 252 blocks of 16Ko each one. An interesting
characteristic of these roms is that they can receive BASIC programmable instructions (Resident System eXtension).
Sample coding of an Amstrad Cpc Rom containing programmable basic instructions (Resident System eXtension)