Programming an OS for z80 calculators

From WikiTI
Jump to: navigation, search

It is now fairly easy for an intermediate to advanced z80 assembly programmer to write its own Operating System (from now on OS) for its calculator. Mainly because there is a lot of documentation floating about z80 calculators hardware, emulator and examples of OS.

And now an OS can be very easily distributed and installed in .8xu format.

Main concerns before starting

This article is a stub. You can help WikiTI by expanding it.

Sample basic OS functionality

Every OS needs these, just to boot:

  • Page 00 boot code
  • A valid OS header

But if you want it to actually do anything useful, it needs to:

  • Initialize the LCD
  • Set up memory
  • Initialize the stack

Memory layout


Tools for building the OS

You really should get an adequate assembler. SPASM and Brass are well suited. But others may be used. You will also need a program to take the binary to convert into a .8xu file.

Here is a script using spasm to assemble and sign the OS.

$ spasm main.asm main.bin


See also


  • SirCmpwn for initial topics on forums
  • Brandonw for giving more documentation about this
  • etc.