lisa-gemdos
lisa-gemdos | Atari-Mac-MagiC-Sources | |
---|---|---|
2 | 2 | |
22 | - | |
- | - | |
10.0 | - | |
over 3 years ago | - | |
Assembly | ||
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lisa-gemdos
-
The Atari ST's Gemdos
The origin story of the GEM stuff is quite interesting. Lee Lorenzen was an employee at Xerox in Texas, and wanted to get some of the ideas from the Star onto commodity x86 hardware (just prior to IBM PC). He made a prototype, presented it, and it went nowhere. Gary Kildall (DR) then recruited him to come work for them doing basically that. He (Lorenzen) later went off to spin up his own company -- which created Ventura Publisher, which was built on a fork of GEM.
GEM maybe has a bad reputation as a bit of a Mac UI knockoff, but the history is actually deeper than that. Like a lot of things DR did, it got a bit neglected on the market.
Atari Corp also did a bad job of ongoing maintenance of this stuff. At least not until the latest-80s/early 90s when they suddenly started to iterate on it, hired Eric Smith (author of "MiNT" a unixy multitasking kernel that built overtop GEMDOS) to work on the OS, and pushed out proper multitasking versions... for their 68020/030 machines ... but too late.
It'd be cool if Landon Dyer (who is a user here) were to comment on this, as he was on the team that ported all this stuff from x86 to 68k. Unfortunately it looks like his blog where he wrote this up (dadhacker.com) seems to be gone (!?), it was great writing.
I also believe some of the sources from GEMDOS were used as part of the DR-DOS source tree later. All of this is GPL now.
Also interesting, before the ST, the 68k port of GEMDOS was run on Motorola VME 68k machines, but also on the Apple Lisa. The version running on the latter has since been resurrected, and boots:
https://github.com/cheesestraws/lisa-gemdos
Finally, the (GPL'd) EmuTOS source code base basically did all of the heroic work of porting the original DR sources to the Atari ST again, based on the original DR sources. And they have done an amazing job of reproducing Atari/DR's work faithfully.
https://emutos.sourceforge.io/
That, and EmuTOS runs lovely on other 68k machines (Amiga, Mac, and Lisa for example) as well as ColdFire machines (the "FireBee" Atari-ish computer, and dev boards). It's a great little 68k/ColdFire operating system that is quite portable and well supported.
EmuTOS running on Amiga: https://www.youtube.com/watch?v=uxIytWnqQnU
-
EmuTOS: A Modern FOSS Replacement OS for the Atari ST – and the Amiga Too
FWIW having seen the sources for both, GEMDOS isn't based directly off CP/M68k. There are commonalities, and some bits of code shared (executable format for one) but they're entirely separate codebases.
The first platform to run GEMDOS on 68k was the Apple Lisa. That was the dev machine DR used.
That's been resurrected in the past few years: https://github.com/cheesestraws/lisa-gemdos
And in fact EmuTOS itself now boots on the Lisa again.
I have a feeling the stack-based calling convention may be influenced by the dev period on the Lisa? The reason I say this is that I know Mac OS Classic used this scheme as well: push all args to stack and call TRAP. I suspect because of this that the Lisa did as well, though I couldn't tell you for sure since hardly any docs are out there for that. Atari was not unique in choosing these scheme.
Now, why Apple did this, I don't know. Maybe it's because they wrote everything in their own bespoke Pascal and that was something about their compiler?
I am not sure an x86 version of GEMDOS really ever existed so doubt it came from there.
FWIW you got me interested, so I'm reading the CP/M68k sources right now and from the bits I've read, I do see the stack based calling convention there, as well:
_bios2:
Atari-Mac-MagiC-Sources
-
EmuTOS: A Modern FOSS Replacement OS for the Atari ST – and the Amiga Too
I was kind of hoping maybe there'd be stuff in their VDI implementation that the EmuTOS people could maybe work from to maybe improve some VDI performance or flexibility. But I don't think it got on anybody's radar.
Now you have me browsing through their VDI sources, damn you! https://gitlab.com/AndreasK/Atari-Mac-MagiC-Sources/-/tree/m...
:-)
What are some alternatives?
Emu68 - M68K emulation for AArch64/AArch32
atari-mint - MiNT is Not TOS: a multitasking OS for the Atari ST
pTOS - Port of EmuTOS to the ARM architecture.
circle - A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)