6 ms·
RTM-Z80: Retro Tiny Multitasking System for Z80 Based Computers
- elvis70 5y agoThe initial announcement: https://groups.google.com/g/rc2014-z80/c/is43UD_1vFA https://groups.google.com/g/rc2014-z80/c/is43UD_1vFA > My name is Ladislau Szilagyi, I'm 67 and I'm a big fan of Z80 retro computers. > I just published on GitHub ( https://github.com/Laci1953/RTM-Z80 https://github.com/Laci1953/RTM-Z80 ) my RTM/Z80 project. > RTM/Z80 is a multitasking kernel, built for Z80 based computers, written in Z80 assembly language, providing its users with an Application Programming Interface (API) accessible from programs written in the C language and the Z80 assembly language. From the repo: The user manual: https://raw.githubusercontent.com/Laci1953/RTM-Z80/main/RTM-Z80%20User%20manual%20v2.3.pdf https://raw.githubusercontent.com/Laci1953/RTM-Z80/main/RTM-... > The RTM/Z80 project is intended to offer to the retro-computer hobbyists and to anyone willing to learn about multitasking systems the necessary resources needed to understand and learn the basics of this interesting but difficult area of software engineering. The demo video: https://raw.githubusercontent.com/Laci1953/RTM-Z80/main/RTMDEMO.mp4 https://raw.githubusercontent.com/Laci1953/RTM-Z80/main/RTMD...
- kragen 5y agoThe Z80 or 8080 is super interesting for bootstrapping purposes because it's roughly the smallest computer where a self-hosted development environment is practical. Smaller systems like the 8008, the PDP-8, or the AVR are just a little too small; you can run a filesystem and a compiler or an assembler on them, but you probably don't want to. By contrast, CP/M on the 8080 could host not only the assembler used to write CP/M, but also the BDS C compiler (now free software) or the Turbo Pascal IDE. And, unlike the PDP-8, you can still buy a Z80. Depending on how you count, the 8080 has a few dozen instructions: https://dercuano.github.io/notes/8080-opcode-map.html#addtoc_2 https://dercuano.github.io/notes/8080-opcode-map.html#addtoc... So a new multitasking OS for the Z80 is pretty great! It has a few big disadvantages. Although you can multibank, there's no way to directly address more than 64K, which is a real pain. Even the Z80 is not well suited to languages where functions are recursive by default, like C, and the 8080 is even worse at that. There's no memory protection, not even an MPU, so there's no fault isolation and no virtual memory. And the Z80 chips I've found are ridiculously power-hungry, like, 500 mA, and still run slower than an AVR.
- anthk 5y agoCheck CollapseOS.
- jhallenworld 5y agoAnother disadvantage is lack of any king of relocation hardware. If you don't have it, it means you are tied to a particular memory layout without run-time re-linking. 6809 has it through position independence. 8088 has it with segment registers (at least for .COM files and small memory model .EXE files. Large model files are re-linked during loading). CP/M's solution to this is to start the code at near-zero (0x100). This way forces the OS, drivers and hardware out of the way and permits binaries from one system to at least possibly run on another.
- ecpottinger 5y agoCould the Amiga file type use of Hunks be used here? Your code sections were in Hunks with each Hunk having a relative section that tells where offsets need to be updated to match the position in memory the Hunk was written to.
- jhallenworld 5y agoIt sounds like the same situation as large model on 8088. I'm wondering if any 8-bit systems did anything like this, but I don't think so.
- codebje 5y agoTurbo Pascal used to support building your program as multiple executables with a shared data space, so you could chain from one part of your application to another.
- fentonc 5y agoTurbo Pascal also supports overlays, which allows you to chunk up your code and swap it into memory. I genuinely enjoy using the Turbo Pascal IDE on either my 1984 Kaypro or the monster 16-core “Zedripper” Z80 laptop I built. It’s great!