From 22182c0d7f1824bb581561546731decde234e399 Mon Sep 17 00:00:00 2001 From: keie Date: Mon, 1 Apr 1985 14:00:00 +0000 Subject: [PATCH] *** empty log message *** --- doc/z80.doc | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 doc/z80.doc diff --git a/doc/z80.doc b/doc/z80.doc new file mode 100644 index 000000000..5eaf309a5 --- /dev/null +++ b/doc/z80.doc @@ -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. -- 2.34.1