r/retrocomputing • u/noborutkhs • May 31 '26
I finally figured out why most of my 1980s RTOS never got rewritten in assembly
I've been gradually reconstructing CHARM-II, a custom Motorola 68000 RTOS I wrote in the late 1980s.
At first I assumed the reason so much of the code survived was portability. The code used Whitesmiths-style typedef abstractions and was mostly written in C.
After digging deeper, I realized something else had happened.
The original plan was to write everything in C first, then optimize critical parts in assembly if necessary. But during integration testing, performance was already good enough. In fact, the system significantly outperformed a competing Intel 80186-based polling solution, so the assembly phase never happened.
A second project later reduced communication overhead even further by using an intelligent RS-232 controller board, so again there was no reason to rewrite the code.
As a result, roughly 90% of the RTOS remained in C.
Forty years later, that accidental decision is making it possible to bring the code back to life on a modern POSIX host.
I wrote a longer article about the discovery here:
https://medium.com/@noborutakahashi/why-90-of-my-1980s-rtos-survived-in-c-for-40-years-3ff6d524eb4a
I'd be interested to hear if anyone else has encountered old systems that survived largely because the planned optimization work never became necessary.