- …memory.
- I pulled this
off with one of the dirtiest technological tricks in my
inky-black hacking career. There was no compiler for the Macintosh
which generated 32 bit code, permitted data segments larger than 32K,
or compiled in-line floating point instructions: all prerequisites for
AutoCAD. But, I noted, at the very same time we were shipping
AutoCAD on the Sun 3, which used the very same Motorola 68020
microprocessor as the Macintosh II. So, I simply compiled all of
AutoCAD except for the display, keyboard, mouse, and file I/O drivers on the
Sun, linking them into one huge relocatable file which I called “The
Titanic”. Then, using LightSpeed (later Think) C, I wrote a small
conventional Macintosh application which obtained a large chunk of
memory, loaded the Titanic into this block of memory, dynamically
relocating it and linking external references in it to
“stubroutines” defined in the Macintosh program, and then launching
it. The Macintosh program, “Tugboat,” thus nudged the Titanic into
place on the Macintosh. Believe it or not, this all worked (though
debugging it with a joke-debugger called TMON which couldn't
disassemble the 68020 instructions generated by the Sun compiler is a
memory still powerful enough to make me grind my teeth), and this is
how we finally (after a lot more work by many other people) shipped
Release 10 for the Macintosh.