Modified driver and utility package for the OSI 560Z processor lab board.
This is a utility and driver package for the OSI 560Z processor lab board. It provides:
- Utility routines for working with the board and its attached bus
- A Z80 IO instruction handler
- An Intersil 6100 IOT instruction handler.
The package is based on Ohio Scientific's official "example" driver/utility package. This source branch has been modified by me, and has several distinct changes.
- Many routines changed for ease of readability and flexibility
- Utility routines rewritten to be independent from OS-65D
- # - (Open record): Modified to use spacebar to open next record
- G - (Start Z80 or 6100 execution): Modified to enter single-step mode if trace flag ('T' command) is set
- R - (Single-stepping run): Modified to provide trace of Z80 and 6100 execution. Syntax changed to R[I,Z][####]. Entering I traces 6100 execution. Entering Z traces Z80 execution.
- N - (New utilities): N[M]: Set MOS bus as master and set upper address bits to %000
- Support for optional "auxiliary" ACIA
- If the trace flag is set, the driver package checks if the Z80 is requesting an IO device and returns if it is not.
- IO device '0' provides terminal I/O. A character can be requested from the terminal with
IN 0
. Likewise, a character can be written to the terminal viaOUT 0
. The 6502 does the ACIA status flag checking and resumes the Z80's execution as soon as the operation is fullfilled.
- Support for optional "auxiliary" ACIA
- Many routiens re-written to be more readable
This list is incomplete. Due to the code growing as I debugged the hardware, there are probably many other changes that I made and have forgotten about.
- CC65
- SRecord
- In all three assembly files, modify the
BASE
andBLOC
defines to match your 560Z's address - In the 6100 and Z80 driver assembly files, select which ACIA you would like to use for terminal I/O. By default the base 502 ACIA at $FC00 is used.
- Run
make
to assemble the package and generate an Intel HEX file. By default, the package is assembled at memory location $0400 - Transfer the binary over to the OSI system via an Intel HEX loader and start execution at address $0400