MINOS (stands for MINi OS) is a small ROM Monitor I wrote for the Ithaca Audio Z80 CPU card inside my S-100 computer. The monitor is coded in C (SDCC compiler) and assembly and is very small (under 2K) to fit on a 2716 EPROM. The MONITOR is meant to reside at address 0xF000 and by default it communicates through Serial port A of N8VEM SerialIO card, 19200bps, HW flow control.
- Port IN/OUT
- Memory READ/WRITE
- Jump execution to an address
- XModem data upload
- N8VEM IDE board booting
- Xaaaa - Loads a binary file to memory at address "aaaa". EG: X5000
- Iaa - INputs a byte from port address "aa". EG: I01
- Oaa,dd - OUTputs byte "dd" to port "aa". EG: O01,AA
- Raaaa - Reads a byte from memory address "aaaa". EG: R5000
- Waaaa,dd - Writes byte "dd" to memory address "aaaa". EG: W5000,04
- Jaaaa - Jumps execution to address "aaaa". EG: J3000
- B - Copies in RAM (0x1000) the content of sector 0 from the first drive in N8VEM IDE board then jumps the execution to it.
At the end of the EPROM, there is an address table for some useful functions that can be reused by other code:
- 0xF7F4 n8vem_ide_init
- 0xF7F6 n8vem_ide_reg_rd
- 0xF7F8 n8vem_ide_reg_wr
- 0xF7FA n8vem_ide_read
- 0xF7FC getchar
- 0xF7FE putchar