*** empty log message ***
This commit is contained in:
parent
87f66789de
commit
22182c0d7f
1 changed files with 59 additions and 0 deletions
59
doc/z80.doc
Normal file
59
doc/z80.doc
Normal file
|
@ -0,0 +1,59 @@
|
|||
THE Z80 BACK END TABLE
|
||||
|
||||
IMPLEMENTATION
|
||||
|
||||
It will not be possible to run the entire Amsterdam Compiler Kit on a
|
||||
Z80-based computer system.
|
||||
One has to write a program on another
|
||||
system, a system where the compiler kit runs on.
|
||||
This program may be a mixture of high-level languages, such as
|
||||
C or Pascal, EM and z80 assembly code.
|
||||
The program should be compiled using the compiler kit,
|
||||
producing z80 machine code.
|
||||
This code should come available to the z80 machine
|
||||
for example by downloading or
|
||||
by storing it in ROM (Read Only Memory).
|
||||
Depending on the characteristics of the particular z80 based system, some
|
||||
adaptions have to be made:
|
||||
1) In 'head_em': the base address, which is the address where the first
|
||||
z80 instruction will be stored, and the initial value of the
|
||||
stackpointer are set to 0x1000 and 0x7ffe respectivally.
|
||||
The latter because it could run on a 32K machine as well.
|
||||
Other systems require other values.
|
||||
2) In 'head_em': before calling "_m_a_i_n", the environment
|
||||
pointer, argument vector and argument count will have to be pushed
|
||||
onto the stack.
|
||||
Since this back-end is tested on a system without any knowledge
|
||||
of these things, dummies are pushed now.
|
||||
3) In 'tail_em': proper routines "putchar" and "getchar" should
|
||||
be provided.
|
||||
They should write resp. read a character on/from the monitor.
|
||||
Maybe some conversions will have to be made.
|
||||
The ones for the Nascom and Hermac z80 micro's are to be found
|
||||
in the EM-library.
|
||||
4) In 'head_em': an application program returns control to the monitor by
|
||||
jumping to address 0x20.
|
||||
If this is not the right way on your system, change it.
|
||||
For an CPM-machine for example this should be 0x5, to provide a warm boot.
|
||||
5) In 'tail_em': the current version of the z80 back-end has very limited I/O
|
||||
capabilities, because it was tested on a system that
|
||||
had no knowlegde of files.
|
||||
So the implementation of the EM-instruction 'mon' is very simple;
|
||||
it can only do the following things:
|
||||
Monitor call 1:
|
||||
Exit
|
||||
Monitor call 3:
|
||||
read, always reads from the monitor.
|
||||
echos the read character.
|
||||
ignores file descriptor.
|
||||
Monitor call 4:
|
||||
write, always writes on the monitor.
|
||||
ignores file descriptor.
|
||||
Monitor call 5:
|
||||
open file, returns file descriptor -1.
|
||||
Monitor call 6:
|
||||
close file, returns error code = 0.
|
||||
Monitor call 54:
|
||||
io-control, returns error code = 0.
|
||||
If the system should do file-handling the routine ".mon"
|
||||
should be extended thoroughly.
|
Loading…
Reference in a new issue