4 ms·
The history of Digital Research's Gemdos for the Atari ST (1986)
- unwind 3y agoInteresting that this uses the coding convention of putting parentheses around the expression in return statements. So return (1); instead of just return 1; I remember using the former style as I tried (in frustration) to learn C back on the Amiga (so roughly at the same time, late 80s/early 90s) using articles in magazines. Does anyone know where it comes from? Some time later (late 90s) at university I learned C again but with actual (good!) teachers, and also got exposed to way more code and talk about code thanks to Internet and comp.lang.c etc, and around that time (I think?) I stopped using them. Nowadays they always make me think the author is anxious that the function will return before the entire expression is evaluated, which makes me smile. :)
- pavlov 3y agoMaybe it’s a way to highlight that returning an expression value directly is possible? Back then C was rare on home computers. Programmers were more used to BASIC where typically GOSUB / RETURN couldn’t return a value at all.
- tom_ 3y agoI used to do it as well, but I'm not sure why either? (I learned C in the early 90s.) The reference material was never great back in those days, so maybe I just started doing it by extending the rules for if(), while(), for() and function calls and not getting any pushback from the compiler. Eventually I stopped because it saves 1 byte and means pressing fewer keys.
- CakeEngine 3y agoAnother early 90s C learner here, and I also put (and still do!) parentheses around return expressions. But I do: `return( 1 );` not `return (1);` ...because the bracket belongs to the return, not the expression. It's by analogy with 'if' and 'while', a mental "look out, here comes an expression" warming.
- icedchai 3y agoI looked at some C code I wrote about 25 years ago. It all followed the return(N) convention. I also learned C on an Amiga, coincidentally. I started with Lattice / SAS C...
- JNRowe 3y agodmr's reference manual¹ used it, see section 9.10. Matt Dillon's DICE would have been popular on the Amiga then, and it looks like it also favored parens. The latest tarball of DICE² is pretty fun for a spelunking session, if you're feeling nostalgic. It makes for an interesting mix as it pulls in a few contemporaneous non-Dillon tools with varying styles. ¹ https://www.bell-labs.com/usr/dmr/www/cman.pdf https://www.bell-labs.com/usr/dmr/www/cman.pdf ² http://apollo.backplane.com/FreeSrc/dice-1.15.tgz http://apollo.backplane.com/FreeSrc/dice-1.15.tgz
- AnimalMuppet 3y agoIs it to visually distinguish from an empty return? That is, return 1; is visually closer to return; than return (1); is. So this could be a way of signaling "hey, I'm returning a value here, not just leaving the function". But I'm just speculating...
- convolvatron 3y agoI am extremely biased. but I always think of return as an implicitly bound continuation. so it seems quite natural to want to call it.
- chasil 3y agoI used the original Xerox Ventura Publisher, which came with a GEM runtime for DOS. I miss it. https://en.wikipedia.org/wiki/Corel_Ventura https://en.wikipedia.org/wiki/Corel_Ventura
- rjsw 3y agoI developed GEM applications on DOS and on the Atari ST, didn't do anything that required as much precision as Ventura Publisher. The runtime that came with Ventura wasn't a standard GEM one.
- lproven 3y agoI know that GEM/4 and GEM/5 has additional features, such as Bézier curve support for Artline. https://en.wikipedia.org/wiki/GEM_(desktop_environment) https://en.wikipedia.org/wiki/GEM_(desktop_environment) These were eventually backported into FreeGEM and the current OpenGEM has them built in, I believe.
- randombits0 3y agoMy old and unreliable memory thinks that TOS (the ST DOS) was modeled after DOS as far as interrupt calls and whatnot to make it easier for devs. I know the disk format was the same, though DOS wouldn’t read the ST disk unless it had a DOS boot sector on it. ST didn’t care.
- cmrdporcupine 3y agoWorth pointing out (see my other comment) that Ventura Publisher was written by the original inventor/architect of GEM itself; Lee Lorenzen. After leaving DR.
- eschneider 3y agoI used that for magazine publishing. Definitely better than pasting galleys on boards, which is what it replaced, but I'm not sure I'd go so far as to say I miss it. :)
- cmrdporcupine 3y agoThe 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 8080/8086 hardware (just prior to IBM PC, still in latter stages of the CP/M era). 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. You can see Lorenzen's original pitch to Xerox of his "LoneStar" prototype here: https://www.youtube.com/watch?v=EMBGRZftS30 https://www.youtube.com/watch?v=EMBGRZftS30 I believe he has gone on since to be involved in venture investment. 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. The ability to fairly easily port MS/PC-DOS software to the Atari ST could have been a "secret power" for the ST, but didn't really pan out. The ST did have the ability to work with PC floppies and filesystems, and that was super useful. I recall we were promised ports of e.g. Lotus 123, and MS Word, and neither became a thing. Well, Word did (MS Write) but it was a hot mess (https://www.atarimagazines.com/startv3n1/microsoftwrite.html https://www.atarimagazines.com/startv3n1/microsoftwrite.html), and there were better indigenous word processors already. Also interesting, before the ST was ready, the 68k port of GEM & GEMDOS was run on Motorola VME 68k machines, but also on the Apple Lisa. The article touches on this, but seems to think the Lisa port was not completed, but it actually was, and the has since been resurrected, and boots: https://github.com/cheesestraws/lisa-gemdos https://github.com/cheesestraws/lisa-gemdos https://stardot.org.uk/forums/viewtopic.php?t=20964 https://stardot.org.uk/forums/viewtopic.php?t=20964 https://68kmla.org/bb/index.php?threads/gemdos-on-the-lisa-can-be-built-again.35896/ https://68kmla.org/bb/index.php?threads/gemdos-on-the-lisa-c... Finally, the (GPL'd) EmuTOS team has basically done 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/ https://emutos.sourceforge.io/ So the Atari ST now has a fully open source GPL'd operating system stack. 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. If you build out a 68k or ColdFire based board it is a good choice as an OS. EmuTOS running on Amiga: https://www.youtube.com/watch?v=uxIytWnqQnU https://www.youtube.com/watch?v=uxIytWnqQnU
- tempodox 3y agoWe used to comment the crash of a GUI app on the ST with the phrase “GEM over!” (alluding to “Game Over”). Nice to learn about its history.
- richardjam73 3y agoThe Atari ST operating system is kinda divided into two parts. GEMDOS/BIOS/XBIOS is the underlying system that GEM GUI uses. GEMDOS is roughly equivalent to Microsoft's DOS. You can write applications that don't use the GUI.