Difference between revisions of "Programming an OS for z80 calculators"
From WikiTI
(created and sketched...) |
(Undo revision 10094 by KermMartian (Talk) -- Editorial commentary not appropriate for informational article.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
== Sample basic OS functionality == | == 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 == | ||
+ | |||
== Hardware == | == Hardware == | ||
− | == Tools == | + | == Tools for building the OS == |
You really should get an adequate assembler. SPASM and Brass are well suited. But others may be used. | 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. | You will also need a program to take the binary to convert into a .8xu file. | ||
Line 19: | Line 31: | ||
$ spasm main.asm main.bin | $ spasm main.asm main.bin | ||
$ | $ | ||
− | </ | + | </nowiki> |
+ | |||
+ | == Testing == | ||
+ | |||
== See also == | == See also == | ||
Line 26: | Line 41: | ||
* ports | * ports | ||
* (many more I will add) | * (many more I will add) | ||
+ | |||
+ | == Acknowledgements == | ||
+ | * SirCmpwn for initial topics on forums | ||
+ | * Brandonw for giving more documentation about this | ||
+ | * etc. |
Latest revision as of 13:11, 25 April 2013
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.
Contents
Main concerns before starting
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
Hardware
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. http://www.ticalc.org/archives/files/fileinfo/383/38392.html
Here is a script using spasm to assemble and sign the OS.
$ spasm main.asm main.bin $
Testing
See also
- http://www.cemetech.net/forum/viewtopic.php?t=5008
- other OSes source code
- ports
- (many more I will add)
Acknowledgements
- SirCmpwn for initial topics on forums
- Brandonw for giving more documentation about this
- etc.