[HN Gopher] Lisa Source Code Release ___________________________________________________________________ Lisa Source Code Release Author : bitsavers Score : 132 points Date : 2023-01-19 14:41 UTC (8 hours ago) (HTM) web link (computerhistory.org) (TXT) w3m dump (computerhistory.org) | fsckboy wrote: | "False!" - Dwight Schrute | | >FTFA: _a majority of personal computer users interacted with | their machines via command-line interfaces...in which users had | to type arcane commands to control their computers._ | | ARCANE!?!? you say!?!?! | https://en.wiktionary.org/wiki/arcane arcane: 1. | Understood by only a few. | | the majority of personal computer users (your words, not mine) | did understand them, in fact _it was the defining feature of | personal computer users_ 2. (by extension) | Obscure, mysterious. 3. Requiring secret or mysterious | knowledge to understand. | | the commands were well documented and did what the documentation | said 4. Extremely old (e.g. interpretation or | knowledge), and possibly irrelevant. | | not old, it was newly invented, current state-of-the-art, and | nothing but relevant to the tasks at hand, they were the only way | to accomplish the tasks at hand, and nary a byte of the command | line lacked morphologic or semantic significance | | The serious point I'm trying to make is, young and up-and-coming | programmers who are learning textual programming languages (more | or less the definition of a computer programmer at present) | should not be scared off from learning command lines. They're | very powerful, and not that obscure or hard. Unix had/has a | feature that can be confusing, which is the command line is first | processed according to the rules of the shell, and then it is | reprocessed according to the rules of the app you are invoking, | making command lines be a subtle mix of several languages at a | time (by analogy, a bit like html+javascript+css). You need to | learn how this works, despite being confusing it is the | innovation necessary for unlocking the power of shells. | wmf wrote: | Arcane by today's standards I guess. | | Also, many people in those days never consulted the docs and | just memorized commands without understanding them so they | probably felt arcane. | fsckboy wrote: | the average person doesn't understand the ancient notation | used for calculus; that doesn't make "calculus" arcane; and | the article was writing in the past tense | | your point about those who copypasta-ed command incantations | is reasonable, but they did get them from people who knew how | to write them and conditions (like situational pathnames or | dangerousness of side effects) are sufficiently variable to | limit the scope of this style's applicability | [deleted] | dhosek wrote: | Arcane not to computer users but to the general population. | Before the advent of GUIs, computer usage tended to be very | much a niche thing. Heck, even well into the Windows era, it | was still niche. I remember riding the train to work in the 90s | and overhearing a conversation where an older man engaged in | some sort of business (no idea what), was complaining about | having to have a computer on his desk at work. | cmrdporcupine wrote: | Yay! Finally! Thanks so much for this. Have been excited about | this for years since the original announcement. | | Had today's date bookmarked, and was browsing around your twitter | etc earlier looking to see if this had happened. | | Can't wait to look inside. | flohofwoe wrote: | I can't believe they make you sign a fekking license agreement to | access 40 years old source code (in a long dead language on top). | That's so typical Apple. | cmrdporcupine wrote: | Yeah I actually haven't downloaded this yet, despite being | eager to look, because I actually wonder if I should be cross- | checking my employment agreement with my current employer to | make sure I wouldn't be violating any clauses in either | document! Highly unlikely, but still, jeez. | abbbi wrote: | allways good do see :-) | | grep -ri fuck . ./Lisa_Source/Lisa_Toolkit/TK Sources 4/LIBUT- | UUNIVTEXT2.TEXT.unix.txt: HALT; {Die rather than fuck up} grep: | ./Lisa_Source/Lisa_Toolkit/TK Sources 4/LIBUT-UUNIVTEXT2.TEXT: | binary file matches grep: ./Lisa_Source/Lisa_Toolkit/TK3/TK- | ALERT.OBJ: binary file matches ./Lisa_Source/LISA_OS/APIN/APIN- | OFFICE.TEXT.unix.txt: fucked up if he bails out or doesn't ever | select a disk} ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb- | SCANCODE.TEXT.unix.txt: valid position, thus we don't fuck with | pscantable^[scanid]^ until | ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-SCANCODE.TEXT.unix.txt: | valid position, thus we don't fuck with pscantable^[scanid]^ | until ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb- | SCANCODE.TEXT.unix.txt: valid position, thus we don't fuck with | pscantable^[scanid]^ until | ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-LMSCAN.TEXT.unix.txt: | badCheckPoint = 3424; { check point info is fucked }{##} | ./Lisa_Source/LISA_OS/Linkmaps and Misc. | 3.0/TKALERT.TEXT.unix.txt: if not fcheckhz(hz,i) then | writeln('heap big fuckup 1'); ./Lisa_Source/LISA_OS/Linkmaps and | Misc. 3.0/TKALERT.TEXT.unix.txt: if not fcheckhz(hz,i) then | writeln('heap big fuckup 2'); | jonpalmisc wrote: | No email form: https://d1yx3ys82bpsa0.cloudfront.net/source/lisa- | source.zip... | [deleted] | IncRnd wrote: | I didn't turn on JS for the form to be shown, either. | HeckFeck wrote: | Very neat code and somewhat legible for a non-Pascal speaker. | | Curiously, it doesn't credit authors in the headers as I've seen | in sources from the same period. | | I also wonder how much of the core OS code made it into Macintosh | System 1. | | Also, nice styling here: | http://revontulet.org/2023/01/19/lisadesk.png. They didn't have | to do ASCII art in the comments but they did! | fexecve wrote: | > You may not and you agree not to: | | > publish benchmarking results about the Apple Software or your | use of it | | Damn, there goes my Apple Lisa vs Amiga comparison video! I was | going to get so many YouTube views! Meh, maybe I'll make it | anyway. So sue me! | | > the Apple Software may not be exported or re-exported (a) into | any U.S. embargoed countries | | I'm sure keeping Iran from getting this valuable software from | 1983, which runs on a completely dead CPU architecture that Linux | doesn't even support anymore, is very important! | | (But seriously, as a license geek, and not a lawyer, the wording | of this license is really interesting. It seems to have | completely different disclaimers than you usually see in open- | source licenses...) | easton wrote: | I'm guessing, although I don't know, that they probably had an | academic license laying around for another product that they | cleaned up for this. A "it's our source, you can use it for fun | but not for money" license. Microsoft has shared source | licenses for academics/bigcos that need to see the source for | Windows or whatever. | cmrdporcupine wrote: | It took them 4 or 5 years just to do this release, since it | was first announced. I feel like _" they just dusted off an | old license"_ is not a likely explanation. | | Probably took 5 years just to get through all the lawyers at | Apple, and this is what we ended up with. | | Remember, the default answer to almost any question poised to | a lawyer is "No." | | :-( | astrange wrote: | That's because you're not supposed to ask the lawyer if you | should do something. You ask their boss if you can do it | and ask them them how to do it. | cmrdporcupine wrote: | > completely dead CPU architecture | | Hey, take that back! 68k/ColdFire ISA is actually pretty well | supported these days by compilers. Better than it was a few | years ago. There are 68k backends for both GCC (again) and LLVM | (maybe not as active). | | It's probably the best supported "retro" architecture at this | point. | | Rest of your points are valid though ;-) | monocasa wrote: | The LLVM code is fairly active for a retro arch. It just got | accepted into mainline less than a couple years ago. I | remember it because the m68k folk are pretty active about | maintaining support for their arch in the Linux kernel, and | for a while the lack of m68k support in LLVM (and therefore | the lack of m68k support in Rust) was seen as a potential | blocker for mainline Rust support in the kernel. | purututu wrote: | The ZIP file contains two folders: 1. Lisa_Source | 2. __MACOSX | | Looks they already planned for macOS/X 40 years ago! That is, | macOS/X is much older than we thought! What an archeological | sensation!!! | | /irony off | purututu wrote: | And there's also a `.DS_Store` in every folder of that 40 years | old software code. How futuristic! | lordfrito wrote: | You are the wind beneath my wings | _boffin_ wrote: | Thanks for posting this. awesome article. | programd wrote: | Lovely bit of history, but I laughed out loud at this bit of | legal WTF in the license agreement you must agree to before | downloading the software: | | "You may not and you agree not to: ...publish benchmarking | results about the Apple Software or your use of it" | | Perhaps 40 years later Apple is still embarassed about the | performance of the Lisa? | | So, maybe somebody here can emulate a Lisa and run Geekbench :) | [deleted] | msie wrote: | I'm still learning Swift (forever) and looking at the source code | I wonder if Swift is getting too complicated to read now. I'm | having a hard time reading simple snippets of Swift but the Lisa | source code seems so comforting to read in comparison. Anyways, | I'll soldier on. | [deleted] | JKCalhoun wrote: | I know what you mean regarding Swift. | | In recent decades different languages have introduced | interesting patterns, interesting notations. Swift seems to | have adopted about all of them. | | I have been told by teammates that I don't write "Swifty" Swift | code, instead writing something more like an "Objective-Swift" | style. | | Oh, and they say that like it's a bad thing. | kitsunesoba wrote: | > I have been told by teammates that I don't write "Swifty" | Swift code, instead writing something more like an | "Objective-Swift" style. Oh, and they say that like it's a | bad thing | | Depending on what they mean by this, I agree that it can be a | bad thing. | | Years ago, in the days when Swift was still pretty green | (around 2.x or 3.x) I knew someone who liked to try to write | "Objective-C in Swift" -- that is, they'd try to ignore the | type system and optionality entirely, with lots of forced | casts, forced unwraps, shipping data around in [String:Any] | dictionaries, etc... constant fighting with the compiler that | made SourceKit very unhappy and crashy and the app we were | working on more crash-prone than it would've been had it been | written in Objective-C. | | On the other hand, if it's just a more verbose style that | favors clarity and avoids e.g. unnamed closure arguments and | breaks more out into well named variables and functions, I | don't see anything wrong with that at all and in fact have | been leaning further in that direction as time goes on. | JKCalhoun wrote: | Ha ha, yeah no I would never force a cast, I always unwrap | optionals... | | As an example, I was slow to adopt _guard_ statements | generally, preferring to strictly use them only for | parameter checking (thus only at the top of functions). | | Then there are crazy ways that _case_ statements can be | used in a _switch_ that I still don 't understand. | NegativeLatency wrote: | Downloaded the code and I'm not really sure what I'm looking at. | What language is this, and how would someone build/load it? | pjmlp wrote: | Clascal, the predecessor from Object Pascal, used on Mac OS. | | Apple was also a precursor in using safer systems languages for | OS development. | | Even when MPW later replaced Object Pascal, the major | frameworks were based in C++, not C. | ajross wrote: | Most of the Mac OS ROM was still in assembly (there was a | story on the front page last week detailing a time bug owing | to a misfeature of the 68k DIVU instruction, even). It wasn't | about "safety", just productivity. | | And C wasn't chosen because Apple had made an organizational | bet on Pascal years earlier with the Apple II. C in the early | 80's was still a niche "new vogue" kind of thing from | academia[1]. Apple's roots were older, they didn't get the | Unix bug until decades later. | | [1] c.f. Sun Microsystems, founded by Stanford and Berkeley | geeks, launching its very different 68k products | concurrently. | JKCalhoun wrote: | I understand the app source code is in there too - it would be | nice to know what the directory names refer to -- which | directory corresponds to which app, etc. | octetta wrote: | The files I've looked at are Pascal (the article talks about | Apple's object-oriented varient). I suspect there's 68000 | assembly language there too, but I'm just getting started. | GrumpyNl wrote: | Under the OS section, there are some files with assembler in | it. | LastTrain wrote: | I see assembly and pascal files. According to this[0] article, | the development was done on Apple II's and Mac development was | done on Lisa! | | [0] https://macgui.com/news/article.php?t=518 | cmrdporcupine wrote: | Fun story, development of Digital Research's CP/M68k and | GEMDOS/GEM GUI on the 68k was also done on the Apple Lisa | (and I think some VME 68k boxes from Motorola?). So, a | competitor to the Mac (albeit not a successful one) developed | on the Lisa, too. | | And in fact, fun people have gotten GEM/GEMDOS to boot and | run again on Lisa emulators and real Lisas. | | Computer archeology. | snewman wrote: | I can confirm this regarding Mac development. I was part of | the team that built FullPaint | (https://en.wikipedia.org/wiki/FullPaint) back in 1985. We | had just a few Lisas to work with, and they were considered | sacred. | | Testing code required copying it onto a floppy disk and | popping it into a Mac. We probably would have been a lot more | productive if any of us had ever heard the words "unit test". | (We were a young team, everyone in their early 20s or even | late teens.) | jchw wrote: | Oh, how I wish I could've been involved in the halcyon days | of the computer industry. I'm sure it's all rosey looking | from the perspective of someone who wasn't there, but the | scrappy young development teams, humble small | organizations, mail-order software, and general naive | optimism of the preceding era seems like it was so much | fun. Probably very challenging, and I'm sure frustrating, | but I can only imagine the satisfaction of having worked on | the Macintosh and breaking so much new ground. | | I was born in time to experience the internet when it was a | lot more fun and experimental, which I definitely am | grateful for. I hope there are more "moments" like this in | the future, though I can't help but feel they're mostly | over when it comes to computers and technology. Things just | can't stay scrappy and experimental forever. | Fr0styMatt88 wrote: | If you haven't read Masters of Doom before, I highly | recommend it! Your comment reminded me of it. ___________________________________________________________________ (page generated 2023-01-19 23:00 UTC)