NitrOS-9, Unix-like operating system for the 6809
nitros9.sourceforge.io
nitros9.sourceforge.io
Yes! I learned assembly on thge 6809 and had a hard time believing what a step down the 8086 was a few years later when I encountered it.
I liked 6809 assembly (easy to write position independent code, Motorola had found religion in ROMable libraries) but I liked 8086 assembly to.
In a high-level language you were forced to pick a 'tiny', 'small', 'medium', 'large' memory model based on how much code and data you had. In assembly you could do clever things with the segmentation registers (copy from one segment to another, using the same index register for the source and destinations)
Also amusing was the "BRanch Always" instruction, which is the basic unconditional jump. There were branch instructions for all the usual conditions of the most recent operation such as 'overflow' during an addition.
All the branch operations used relative addresses, the two 'jump' instructions used absolute addresses. So it was easy to write relocatable code on the 6809. This is binary code that can just be moved to another location in memory and still execute properly, without needing to be re-linked.
It could be built in an FPGA. What would you change beyond wider and more registers?
https://github.com/cavnex/mc6809/blob/master/documentation/s...
I particularly liked how it covered his thoughts on why he'd avoid implementing a Hitachi 6309 instead. There's a bit more on the main README, as well.
"My knee-jerk sense here is that the 6809 was (nearly) the last big combinatorial non-microcoded CPU for a good reason. Some of us adore it, but there's a pragmatic limit to attempting to make a 'super' version of it; the supercharged "thing" quickly ceases to be a "6809" any more."
I feel like the same thing applies to people who have tried to extend the 6502 into 32 bits, etc. No matter what you do it just doesn't end up being 6502ish, really. The genius with those processors was what they could do in a single cycle, with a minimal transistor count, fast interrupts, and with a one-byte opcode. It sucks not being able to address more than 64k but everything I've seen that extends that ultimately ends up being awkward and not 6502ish (including the 65816 in this)
http://www.finitron.ca/Cores/CPUCores/rtf6809.html
https://github.com/robfinch/Cores/tree/master/rtf6809
It might not be difficult to extend what he has to 64-bits.
The 6809 is perhaps the ultimate 8-bit CISC processor. If VAX was the ultimate 32-bit CISC, the 6809 was the ultimate 8-bit. Made to be 'fun' to program in assembly, with an elegant expressive instruction set. After playing in 6502, the 6809 is so lovely in contrast.
https://en.wikipedia.org/wiki/DECwriter#DECwriter_Correspond...
and other into a TRS-80 Model 100
https://en.wikipedia.org/wiki/TRS-80_Model_100
I could log into those two terminals and into the main console (keyboard and screen) at the same time.
I don't think that would have stopped people from actively using it as a multi-user system in its heyday. I think other systems used for multi-user computing at the same time often had similar security deficits (examples: MP/M, PICK, MUMPS, Alpha Microsystems AMOS)
Standards and expectations were a lot lower back then, and much greater reliance was placed on trusting users, and the obscurity of whatever security holes existed
Indeed. OS-9 on the CoCo is what I grew up on and it spoiled me for all mainstream systems later when I realized how inferior they were to what I got used to as a kid.
Multi-tasking multi-user OS on an 8 bit 6809 with 128K of RAM (and a price of just a few hundred dollars, back when an IBM PC was thousands).
It also made me feel very familiar when I first encountered various UNIX systems so the transition was easy.
Later there was OS-9 Level II on the CoCo3 which was much more usable as a daily driver OS.
http://tlindner.macmess.org/wp-content/uploads/2006/09/Byte_...
Also, recently, someone ported it for the Raspberry PI pico, which makes it easy to get it up and running with something modern: https://cowlark.com/2021-02-16-fuzix-pi-pico/
Edit: Also ported to the 8266: https://cowlark.com/2021-02-09-esp8266-fuzix/