*** empty log message ***
authorkeie <none@none>
Mon, 1 Apr 1985 14:00:00 +0000 (14:00 +0000)
committerkeie <none@none>
Mon, 1 Apr 1985 14:00:00 +0000 (14:00 +0000)
doc/z80.doc [new file with mode: 0644]

diff --git a/doc/z80.doc b/doc/z80.doc
new file mode 100644 (file)
index 0000000..5eaf309
--- /dev/null
@@ -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.