diff --git a/README.md b/README.md index 07fb5a3..b394707 100644 --- a/README.md +++ b/README.md @@ -17,36 +17,27 @@ On a 8080, there are no segments, the addresses are as displayed. On on the 8086, a single segment with a value of 0x0100 is assumed. This implies that the first 4k of memory are not used. -The BIOS and FDOS may be recompiled for starting at a lower address, in this case, +The BIOS and BDOS may be recompiled for starting at a lower address, in this case, the minimum memory requirement may be less than 64k. -|Start|Size|Function| -|--|--|--| -|0xF800|2k|BIOS / hw drivers| -|0xF000|2k|BDOS| -|...|...|BDOS data area, disk deblocking buffers| -|SP|var|Stack, growing down| -|...|...|Free memory| -|...|var|Heap, growing up| -|0x0100|var|Transient Program Area| +|Start |Size |Function| +|------|---------|--------| +|0xF800|2k |BIOS / hw drivers| +|0xF000|2k |BDOS| +|... |... |BDOS data area, disk deblocking buffers| +|SP |var |Stack, growing down| +|... |... |Free memory| +|... |var |Heap, growing up| +|0x0100|var |Transient Program Area| |0x0080|128 bytes|Command line and disk buffer| |0x0008|120 bytes|BIOS data area| -|0x0000|8 bytes|BDOS data area| +|0x0005|3 bytes |Jump code for BDOS| +|0x0004|1 bytes |default drive for BDOS| +|0x0003|1 bytes |may be used as iobyte by BIOS| +|0x0000|3 bytes |Jump to BIOS warm boot entry point / program exit| ## Application program interface It is using the `call 5` convention with CP/M compatible syscall numbers. File I/O is done via FCB blocks. - -## Zero page - -|Offset|Size|Usage| -|--|--|--| -|0x00|3 bytes|warm reboot/program exit jump instruction| -|0x03|byte|unused (would be iobyte)| -|0x04|byte|default drive| -|0x05|3 bytes|syscall jump instruction| -|0x08|120 bytes|interrupts and work area for BIOS| -|0x80|byte|length of command line| -|0x81|127 bytes|command line with $length bytes plus a trailing 0x0D|