Apple Lisa Source Code

It’s January 19, 2023, and, as promised, the “Lisa source drop” is here.
(And it didn’t happen at Bitsavers, but on the Computer History Museum’s website.)

Here’s the related CHM blog post on the matter:

And here’s the page that gives access to the source code (mind that you have to register for a license before you can actually download the zip-archive):

And, complementary to this, there are also the software and documents archives at Bitsavers:

Compare the previous post regarding the Bitsavers archives.

BTW, if you happen to be in the area, the CHM has an event on the Lisa’s 40th anniversary, “Happy 40th Birthday Lisa! – Apple’s Most Important Flop” on Jan. 31, 2023, 7:00 pm (preliminaries starting at 5:30 pm) to 8:30 pm (PST).


Now on HN, ccomments:

1 Like

In the HN discussion, we find a link to Macintosh Development in the Dark Ages: where we read

Andy Hertzfeld recounts some of the early days of Macintosh software development in his Folklore Blog, describing how the primitive Mac depended on an Apple Lisa to host it. The Apple Lisa in its turn, which was under development alongside the Macintosh, had depended on an Apple II to host it.

Regular readers of this Mac 512K Blog know that Macintosh software and its operating system were developed on Apple Lisa computers. But what’s less commonly known is that the development environment used was the Lisa Monitor, not the Lisa Workshop. As a development environment, the Lisa Monitor had many similarities to Workshop: it provided a filer, a screen editor, Pascal compiler, linker, and 68000 assembler. It was menu-based, and looked a lot like the Apple II Pascal environment from 1979.

That’s because it was based on UCSD Pascal! In the early days of Lisa development, the Lisa team wrote and tested their Pascal code using Apple II Pascal with 64K of RAM. The first Lisa was nothing more than a wire-wrapped prototype card that lived in an Apple II slot. Andy Hertzfeld wrote in his Folklore Blog, “Rich Page had written a simple operating system called the ‘Lisa Monitor’ which was based on UCSD Pascal, that was pretty easy to port - all we had to do was integrate our I/O drivers.” Lisa Monitor disks even used the same UCSD Pascal file format, albeit with big-endian values.

Another mention of the Lisa Monitor and Rick Page in And Another Thing…

1 Like

Maybe also of intertest in this context, this video talk by Bill Atkinson, for Carnegie Mellon University, Feb 4, 2019 (not so much about the development environment, but there are some details about this, as well):

1 Like

Also see ths interview with Bill Atkinson, on how Apple moved to Pascal (from a HN comment linked to by @EdS elsewhere):

In essence, it was about significant variable name length and local variables (as compared to BASIC), so that you could use code modules and write accumulative code. The baseline was really BASIC. Bill Atkinson had a week to port Pascal and convince Steve Jobs that there was indeed a benefit to it. Here’s a transcript (regarding this latter part, about 45:00 into the video, provided by said HN comment):

My manager at the time said, no, we don’t want to do this [Pascal], people are happy with what they got. I overrode him and went to Jobs, and Jobs said “Well, I’m not convinced. I think our users are happy with BASIC and assembly language. But you seem passionate about it. I’ll give you one week to prove me otherwise.”

I was on an airplane within two hours down to UC San Diego and I started porting right away.

The other thing that happened then is I had to plug in the disk routines, and their system was pretty big and that little 13-sector floppy disk didn’t have a lot of capacity. Well, Woz had just come up with a different way of encoding the data on the disk so that we could get more data for the same disk size, and we needed the 16-sector disk routines. And so Woz came down, and I was there… I had never bothered to get a motel because I slept on the bench when I wasn’t working. This is in the computer science lab at UC San Diego. I was busy, I didn’t have time to go sleep.

But Woz came down, and I got to interact with him and it was really fun because he was working on installing these 16-sector disk driver routines, and he’d go ‘type type type type type’ – and he didn’t type in assembly language and have it assembled. No, he’d type in 6502 machine code. Hex. – He’d type in hex, and then, you know, watching him type and he’d go ‘type type type’ – pause – ‘type type type type’, and when he finished I asked him what was the pause? And he said “forward branch, seven instructions, I had to compute the offset before I continued”. So, he didn’t back-patch the offset, he actually looked at what he was going to be typing, knew how many bytes it would take… he was brilliant.