A Few More Details On Apple's MacPaint Donation
Posted by: Arik Hesseldahl on July 21, 2010
I just got an email from Andy Hertzfeld, the member of the original Mac development team who was instrumental in engineering Apple’s donation of the MacPaint source code to the Computer History Museum.
Several people wrote in comments wondering about the disk format on the original floppies from which the source code was extracted. Hertzfeld has the answers:
“We used the Lisa to develop the Macintosh system software and original applications because it had a hard disk and enough RAM to run development tools like the Pascal compiler, which the Mac did not. The development system we used was called the “Lisa Monitor,” which was a port of the UCSD Pascal system done for the Lisa by Rich Page in 1979, so the disks were in the Lisa Monitor format.”
He goes on to say that the Lisa Monitor format didn’t use plain ASCII text format because disk and memory space were so precious. Instead it used an encoding scheme to compress the blank spaces in the code at the beginning of each line. This made it difficult to recover the source code from these disks. “When I first extracted the files, they looked messy, with the indentation all screwed up, because I had forgotten about the compression scheme,” he writes. “Once I realized what was going on, I wrote a Perl script to expand the compress blanks to correct the problem.”
Hertzfeld also corrected a couple of points in yesterday’s post. He didn’t use a Lisa to extract the files. “I needed a machine with a unique Apple 3.5-inch floppy drive that had motor-speed control to fit more information the disk, so a standard floppy drive wouldn’t work, and an Ethernet port to transfer the data to a modern machine,” he writes. “I ended up using a 1996 Macintosh that I had that fit the bill.”
He also clarified that the panel discussion and the ensuing search that turned up the disks in Bill Atkinson’s attic took place during the first half of 2004, which was before he had started at Google in mid-2005.
