[HN Gopher] RTM-Z80: Retro Tiny Multitasking System for Z80 Base...
       ___________________________________________________________________
        
       RTM-Z80: Retro Tiny Multitasking System for Z80 Based Computers
        
       Author : elvis70
       Score  : 91 points
       Date   : 2022-01-20 14:14 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | kragen wrote:
       | The 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...
       | 
       | 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.
        
         | codebje wrote:
         | You can buy brand new 20MHz Z80s, but with the multiple clock
         | cycles per instruction they'll still be slower overall than a
         | 20MHz AVR.
         | 
         | The later chips in the 8-bit family are much more power
         | efficient; I built an eZ80 board whose total power budget is
         | 500mA including SD card and Ethernet module. It runs at 50MHz,
         | but performance isn't really the reason we muck around with
         | 8-bit CPUs, right? :)
        
         | anthk wrote:
         | Check CollapseOS.
        
         | jhallenworld wrote:
         | Another 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 wrote:
           | Could 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 wrote:
             | It 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 wrote:
               | Turbo 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.
        
             | [deleted]
        
       | elvis70 wrote:
       | The initial announcement:
       | 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 ) 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-...
       | 
       | > 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/RTMD...
        
       ___________________________________________________________________
       (page generated 2022-01-20 23:01 UTC)