Merge table for zero page into main memory table

This commit is contained in:
Nero 2019-10-27 18:44:38 +00:00
parent 2b6865dc04
commit d789131eb6
1 changed files with 14 additions and 23 deletions

View File

@ -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. 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. 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. the minimum memory requirement may be less than 64k.
|Start|Size|Function| |Start |Size |Function|
|--|--|--| |------|---------|--------|
|0xF800|2k|BIOS / hw drivers| |0xF800|2k |BIOS / hw drivers|
|0xF000|2k|BDOS| |0xF000|2k |BDOS|
|...|...|BDOS data area, disk deblocking buffers| |... |... |BDOS data area, disk deblocking buffers|
|SP|var|Stack, growing down| |SP |var |Stack, growing down|
|...|...|Free memory| |... |... |Free memory|
|...|var|Heap, growing up| |... |var |Heap, growing up|
|0x0100|var|Transient Program Area| |0x0100|var |Transient Program Area|
|0x0080|128 bytes|Command line and disk buffer| |0x0080|128 bytes|Command line and disk buffer|
|0x0008|120 bytes|BIOS data area| |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 ## Application program interface
It is using the `call 5` convention with CP/M compatible syscall numbers. It is using the `call 5` convention with CP/M compatible syscall numbers.
File I/O is done via FCB blocks. 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|