Skip to content
Peter Wilson edited this page Mar 7, 2023 · 2 revisions

ZIOS provides a management framework on which applications can be built, although they obviously don't have to use ZIOS services. It's perfectly acceptable to build a completely standalone application that manages the hardware resources itself.

Memory Management

The system has 512K of RAM in the standard configuration. This is divided into 32x16K pages. Any page can be mapped into any of the four 'banks' that comprise the native Z80 memory map.

ZIOS (and ZLoader) reside in the first two RAM pages and manages access to the remaining pages on behalf of the application.

When a new application is launched (eg CP/M) ZIOS allocates four free pages to provide a clean 64KB of memory to the application. If required the application can request additional memory pages.

For applications using ZIOS the following constraints apply:

  • The last 512 bytes of memory in the applications memory space is reserved for ZIOS (addresses FE00-FFFF).
  • ZIOS will install a JP FE00 instruction at the RST 30h handler to simplify access to ZIOS services. Applications may overwrite this instruction if they require the RST 30h for other reasons. In this case service can be accessed by calling to address FE00 instead (or install an alternative RST handler if preferred).
  • Applications can allocate additional pages and map them into any of the memory banks except bank 3, where the ZIOS service handler resides.

Applications can access ZIOS services via the RST 30h handler installed before they are launched. The interface takes a command code in the 'C' register and parameters in other registers.

Over time the services provided should grow to cover more of the available hardware.