From 7e8483053c995d9f465eef8a385a6ee6680b7ef8 Mon Sep 17 00:00:00 2001 From: Ain <41307858+nero@users.noreply.github.com> Date: Tue, 8 Oct 2019 10:22:31 +0000 Subject: [PATCH] Write down some ideas in README --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..02e6f88 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +## Memory Layout + +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 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| ++-+-+-+ +|F000|4k|BDOS and hw drivers| +||var|BDOS data| +|SP|var|Stack, growing down| +|||Free memory| +|0100|up to stack|Transient Program Area| +|0080|128 bytes|Command line and disk buffer| +|0000|128 bytes|System data area| + +## Application program interface + +It is using the `call 5` convention with CP/M compatible syscall numbers. + +File I/O is done via FCB blocks.