Stories of Early Mac

MacBASIC | Stolen! | System 0.85 | Multitasking | Home

MacBASIC

In 1984, Microsoft, who had developed BASIC for the Apple II family of computers along with the BASIC employed in many other computers came out with a BASIC for the Macintosh. At the same time, Apple were developing MacBasic. The initial version of MS Basic was not that far removed from its command line driven predecessors, while MacBasic was entirely a Macintosh GUI application and employed many features unique to the Macintosh interface. However, as part of the deal between Apple and Microsoft to renew the licence for AppleSoft - the BASIC interpreter used by the Apple II line, MacBasic was scrapped. The story is recounted here: The sad story of MacBasic.

Here is a screenshot of the original Microsoft Basic showing the source input window, an output window, and a command input window.

And here is its non-standard (and functionally minimal) open dialog. Remember the Mac OS at this stage was not multitasking, so if you didn't know the name of the file, you had to cancel the dialog and type "FILES" into the command line window to see a list!

In contrast, MacBasic dynamically validated, formatted and context highlighted the entered source code as shown below.

However, although things improved greatly with version 2 of the Microsoft offerring, BASIC never became a language of any real significance for Macintosh programming.

MacBASIC | Stolen! | System 0.85 | Multitasking | Home

Stolen from Apple Computer!!!

Another interesting piece of Macintosh folklore is the story of the Stolen from Apple computer icon. To locate and display this icon using MacsBug, we need to search the ROM for an infinite loop. This can be done with MacsBug as follows: (the addresses used in this example are for a MacPlus)

The result is a small "Stolen from Apple Computer" icon in the top left corner of the screen.

Some of the story of the discovery of this tidbit can be followed in these old MacTech letters. Firstly, Steve Jasik wrote in May 1985

"I found a few interesting things looking around the ROM. One is an interesting piece of unreachable code at 40AD30 which blasts 32 long words into RAM and then hangs."
This was followed by Erik Westra in April 1986
Here's something you might be interested in. While I was poking about in the Mac's ROM, I took a look at the bit of code Steve Jasik mentioned [...] I thought that this might be the code that displays the "sad Macintosh" icon on the screen if the system bombs while booting. I displayed the 32 long words at $40AD40 as an icon using a program I'd writen [...] Maybe the code is called by the RAM based operating system if it finds it's using funny hardware (eg, in a Mac lookalike).
And soon after, in August 1986 by Jasik again:
More notes on the "stolen from Apple Computer" Icon. I originally discovered the code with Macsbug in Dec 84 when I was searching for $60FE instructions (BRA *) in ROM. At that time I noticed that the code was dead (not referenced by any other routine in the ROM), but did not try to execute it. A few weeks after that I had the opportunity to meet with Andy Hertzfeld, and discussed Apple's paranoia over other manufacturer's stealing their ROM code. He pointed out that they had left some visible copyright notices in the ROM along with some secret notices. He said that it was possible for an Apple programmer to test if the ROM in a machine was "stolen from Apple" by going up to the Mac and typing in some commands. He did not explain to me the meaning of the code I had discovered.

This bit of code persisted in the ROM far beyond its usefulness - indeed, it is debatable if it ever was useful! Perhaps they simply forgot it was there?

MacBASIC | Stolen! | System 0.85 | Multitasking | Home

System 0.85

The original Macintosh was released with Guided Tour disk that used a pre-release system (I have read that this was because it crashed with the release version and there was no time to fix it, but I do not know if there is any truth to this story). The Tour disk is setup to run the tour application on startup, but the real Finder is still on the disk as an application. By restoring the real Finder, and removing the unwanted "Training" menu and its associated code, I constructed a stand alone System 0.85 disk (You can download it here). System 0.85 will only run on a machine with the original 64K ROMs.

There are some interesting differences between this version and the release version of less than two months later.

Many of these features can be seen in the following screenshot

and here is this same System running on my 128K Macintosh.

There is also a mysterious Grim Reaper icon in the Finder, but I have not been able to find any reference to this icon in the code. Is it original? I'll have to wait for someone with a true, original 128K Tour disk to check for me I suppose.

MacBASIC | Stolen! | System 0.85 | Multitasking | Home

Multitasking and the Mysterious Multimac

Switcher

The first multitasking system enhancement for the Macintosh was Switcher, written by Andy Hertzfeld in 1985 after having left Apple. Switcher made it possible for several applications to be open at once, but only one could be active at any particular time. Nevertheless, open applications were able to share data via the clipboard, and it was possible for developers to write special code implementing Switcher-aware "background tasks".

There was an interesting sliding effect when switching between applications. In the picture below, MacDraw is sliding left to make way for MacPaint. (Note the menu bar is slightly in front of the window in this screenshot)

Servant

Then between 1986 and 1987, Hertzfeld developed Servant, an alternative shell application for the Macintosh that combined improved Switcher-like multitasking capability with a new Finder - kind of a hybrid of the real Finder with MacPaint (panning of the folder view on a big canvas) and ResEdit (direct access to resources in the files). I don't think Servant ever actually made it to a final release version. I have versions 0.79, 0.84 and 0.951, and I have not found a reference to any version later than 0.953, but did read a comment somewhere that it was eventually purchased by Apple, and so it presumably had some influence on the development of MultiFinder.

Here is a screenshot of Servant version 0.79. Notice the "Shut Up" command for returning to the true Finder in this earlier release.

The Special menu had changed a little by version 0.951, as seen in the picture below. However, the "Rearrange..." menu item still comes up with a "Not yet implemented" alert , but otherwise this version appears to be very functional. This version also removed the date-based expiration present in the earlier versions.

The About Box has a detailed message.

This screenshot illustrates panning the file view, and a resources view.

Servant's multitasking allowed for true simulatenous operation. Here see MacPaint in the background, as well as ResEdit and Servant itself. The Memory Configuration window shows the RAM allocation for all running apps.

Juggler was the codename for multifinder:

Multi-Mac

Of all the early Macintosh multitasking solutions, the most astounding and puzzling event was the sudden appearance of Multi-Mac in late 1985 - after Switcher, but well before Servant and MultiFinder. It had a copyright from an unknown company, "Aubrac Systems", and was written by a previously unknown developer "Jwa van der Vuurst". Since the code makes hundreds of undocumented calls to the ROM, many people suspect the claimed authorship to be an alias, covering clandestine development from inside Apple. If not, Multi-Mac certainly represents a monumental feat of reverse engineering! It works only with a 512K mac and the 64K ROMs, and was never updated.

Some of the features of Multi-Mac anticipated future Macintosh systems by several years! For example:

Here is Multi-Mac's options dialog, note MacPaint running in the background.

MultiFinder

Finally Apple delivered a multitasking solution along with System 5 in 1988. MultiFinder also offered true simulataneous execution, via co-operative multitasking. A clever implementation of event handling meant existing applications worked right away, even though they had no knowledge of the new environment.

MacBASIC | Stolen! | System 0.85 | Multitasking | Home