Many, many companies had an impact on the life and longevity of the Apple II line. One of the important figures in that history is Mike Westerfield. As part of an update to the Languages chapter of this History, I had the opportunity to speak with him, and learned about the role of Westerfield’s ORCA/M assembler and other programming languages he later released to support the Apple IIGS.
Beginning With An Apple II Plus
Mike Westerfield was newly graduated from the Air Force Academy in 1977. After his training, he was first assigned to Lowry Air Force Base in Colorado. There, he learned assembly language on the IBM 360 mainframe, and used those skills to process satellite feeds of rocket data. When personal computers became available he set his sights on an Apple II. It was not until 1979, when he sold his car to purchase an Apple II Plus that he finally was able to have one of his own.
Westerfield set out to write a chess program on the Apple II, but wanted to do it in assembly language, not in Applesoft or Integer BASIC. His biggest problem at the time was the lack of adequate assemblers for the Apple II. There were a couple that existed, but they were quite limited in the features he wanted. His experience with the IBM 360 assembler gave him a set of expectations that could not be met by existing products. Furthermore, as his program grew in size, he began to hit limits on what these assemblers were capable of doing.
Since he did not have a tool that met his needs, Westerfield did what many programmers have had to do: He decided to write his own. This created its own set of problems, as the assembler he envisioned, modeled after his IBM 360 experience, was far more extensive than had been tried by anyone else. Like his chess program, it was such a large project that it exceeded the capacity of the assembler he was using. He ultimately created it in three pieces, and had to assemble it for three different locations in memory. Two of the pieces he was able to create with the assembler; the third part he had to put together by using the Monitor, directly entering the bytes into the memory. Once he completed his better assembler, he then used that new assembler to make revisions to itself.
The final product had a full-screen editor and a link editor. He felt it was good enough that it could be a commercial product, but did not want to self-publish. He talked with several potential publishers, and ultimately contracted with Hayden Software in 1982. Hayden was a book publisher, and in 1981 it had branched out into the business of selling software for a number of personal computer platforms. Products Hayden sold for the Apple II included a chess game (Sargon II), a word processor (PIE Writer), and now an assembler. In his final product, Westerfield had added a feature of allowing the use of macros, which were shortcuts to allow repeated code to be easily inserted. David Eyes, the product manager at Hayden, suggested calling the product “ORCA/M” (the word “macro” backward), since the use of macros was a feature of this assembler. The first advertisement for it appeared in BYTE Magazine in January, 1983.
Hayden, initial ORCA/M ad, January 1983, BYTE
Around 1985, David Eyes arranged for Westerfield to meet with Bill Mensch of Western Design Center. That company was developing a 16-bit upgrade to the 6502 chip, and had begun production of two version, the 65802 (pin compatible with the 6502) and the 65816. Because of that early involvement, Westerfield was given the opportunity to design the syntax for the 65816 opcodes, which gave him an inside track in making enhancements to ORCA/M to allow creation of 16-bit software for the new processor.
The Byte Works
When Hayden scaled back their involvement in software in the early-to-mid 1980s, Westerfield was able to take back ORCA/M and decided that now he was ready to sell it himself. To do this, he started his own company, The Byte Works, and continued working on improvements to ORCA/M. The new product box used the logo of the orca whale.
Apple engineers had been working with Mensch at Western Design on the specifications of the 65816 chip, evisioning an enhanced Apple II that could use the chip. They had previously taken notice of the ORCA/M assembler, because of its broad set of features and particularly after it was updated to work under ProDOS on the Apple IIe, with support for the 65802 (which could be used on a IIe). It was significantly more capable than EDASM, the assembler that Apple had released to use with their ProDOS Toolkit in 1984. The availablility of a linker and a format for making code relocatable (which was far more necessary in a workspace that potentially spanned thousands of K of memory) made ORCA/M even more useful. Apple offered Westerfield a contract to use ORCA/M as the official programming environment for the upcoming Apple IIGS. On July 21, 1986, he delivered to Apple the final version of what became the Cortland Programmer’s Workshop (the code name for the Apple IIGS was “Cortland”). This version was sent out to developers to use in creating software for the IIGS. Apple later revised this to be called Apple Programmer’s Workshop, with the name modeled after the Macintosh Programmer’s Workshop.
Apple’s contract with The Byte Works did not prohibit Westerfield from continuing to sell his ORCA/M product, updated for the Apple IIGS. Apple tried to get other companies to make a Pascal compiler that would work in the APW environment; that did not work out, but they were able to bring out a version of the C language to work under APW.
Westerfield was creating his C compiler just as the ANSI-C standard was being finalized. He made his version to be strictly compliant with the ANSI requirements, so much so that it was a more true C language than many other products on the market that had made changes to the standard.
The money earned by The Byte Works in its contract with Apple was a significant break for the company. It helped make possible the release of ORCA/C and ORCA/Pascal. Because of the design of the Linker module, a single project written for the IIGS could be done in pieces, and each piece could be written in a different language, all sharing a common library. Later, Peter Eastdown created a compiler for Modula-2, which the Byte Works released as ORCA/Modula-2. Ultimately, The Byte Works became the primary company providing developer’s software (languages) for the Apple IIGS.
The other major assembler for the Apple II series, Merlin (written by Glen Bredon and sold by Roger Wagner Software) eventually became available in a 16-bit version to use for the Apple IIGS. However, it did not have the breadth and depth that was offered by APW or ORCA/M. Merlin tended to be used for smaller projects or casual programmers, and was very popular among game developers. The ORCA products were used for larger projects, especially those in which a mixture of languages was desireable (C and assembly and Pascal in the same project). For example, Word Perfect for the IIGS was written in ORCA/M. A common usage of these language combinations was to write the majority of a project in C, and then focus on assembly for the time-critical parts. This could speed development, since writing code in the higher level languages (Pascal and C) was faster than assembly language. Beyond ORCA/M and Merlin 16, few other assemblers for the Apple IIGS made much of an impact on the market.
3D Logo manual cover - Photo credit: Tony Diaz
HyperLogo manual cover - Photo credit: Tony Diaz
Later, Westerfield wrote and released ORCA/Integer BASIC, primarily to show how easy it was to create a language and use it in the ORCA environment. He also created 3D Logo (both as a language running under ORCA and as an add-on language, HyperLogo, to use with Roger Wagner Publishing’s HyperStudio).
Latest of all, The Byte Works came out with GSoft BASIC in 1998, providing a comprehensive interpreted BASIC to use on the Apple IIGS. Other BASIC interpreters had been released for the IIGS, capable of using the extended memory in that computer, but they did not make much of an impact on the shrinking market of the IIGS.
After The Apple II
Westerfield later released a Java-based scripting language for an authoring tool called MediaBlender; this scripting language was based on GSoft BASIC. Another product that came out of the work on GSoft was AVERT, a 3D combat simulation program used for defending military and DOE sites from attack. The latest product to come out of the work originally done on GSoft BASIC is techBASIC, which The Byte Works sells to allow programming in BASIC on Apple’s iPad, iPhone, or iPod touch.
For additional information on techBASIC, and other old and new products, check out the web site for The Byte Works.