diff --git a/README.md b/README.md index 2137319..7c6a7b3 100644 --- a/README.md +++ b/README.md @@ -38,80 +38,6 @@ the minimum memory requirement may be less than 64k. |0x0003|1 byte |may be used as iobyte by BIOS| |0x0000|3 bytes |Jump to BIOS warm boot entry point / program exit| -## BIOS Interface - -The entry points for the BIOS start at its base address. -Each entry point is offset a multiple of 3 from the beginning of the BIOS. - -### BIOS+0 Boot - -The bootloader jumps here after loading the BIOS. - -### BIOS+3 Warm boot - -Reload the BDOS from disk, and call its entry point. -The jump opcodes at the start of memory are re-initialized. - -### BIOS+6 Console status - -Checks if keyboard input is available. -Returns FFh in AL (A) is character is available, 00 if not. - -### BIOS+9 Console read - -Read a character from keyboard from AL (A). -This call does not return until a character is available. - -### BIOS+12 Console write - -Write character in DL (E) to the display. - -### BIOS+24 Seek disk to zero - -Seek current disk (selected with the following call) to its beginning. -This is a commonly a no-op. - -### BIOS+27 Select disk - -Select disk by the number given in CL (C). - -This is equivalent to the DL number for the PC BIOS Int 13h. - -### BIOS+30 Set track - -Select track number for next disk i/o via register CX (BC). - -For CHS-adressed disks, the track number is the current cylinder multiplied by the number of heads plus the current head number. - -For disks with one side, the cylinder number is equal to the track number. - -### BIOS+33 Set disk sector - -Select sector on the current track in register CX (BC). This parameter is 1-based, this means the first sector is sector 1. The value 0 is invalid. - -For CHS-adressed floppies, the number of sectors per track might vary depending on the inserted floppy disk, even for the same drive. - -### BIOS+36 Set disk transfer address - -Set buffer for disk operations via register CX (BC). - -This is somewhat incompatible with CP/M versions since on modern systems, the sector size is 512 instead of 128 bytes. -Setting it to the default value of 0x80 (which is the standard disk buffer for CP/M) will overwrite the first 0x180 bytes of the transient program area. - -The BDOS is expected to do deblocking to provide the application program with 128-byte disk i/o. - -### BIOS+39 Read sector - -Read sector previously specified. -AL (A) is non-zero error code on failure. -The error codes are implementation-specific. - -### BIOS+42 Write sector - -Write sector previously specified. -AL (A) is non-zero error code on failure. -The error codes are implementation-specific - ## Application program interface It is using the `call 5` convention with CP/M compatible syscall numbers.