read


read
or learn more

Pascal at Apple

Jul 20, 2017

Lately I’ve been reading old computing papers, articles, journals, magazines, and memos and tweeting about them as I work my way through. The most recent exploration was of an Apple internal memo about the history of Apple’s involvement with Pascal. The memo is cursory, but it does provide an interesting snapshot of the history of Pascal within the company.

https://threadreaderapp.com/thread/888033307514023936.html

Above you’ll find a Tweet thread that spurred this post.

Rough Timeline

Wirth's P2 compiler 
 | 
 +-> UCSD Pascal 
  |
  +-> ][ -> /// -> Lisa Pascal -> MPW Pascal
                                \-> Clascal 
                                    |
                                    +-> Object Pascal

7 Comments, Comment or Ping

  1. Carl Hansen

    https://www.youtube.com/watch?v=gl0Wfs70rV4 Woz talks of pascal at Apple

  2. William Leininger

    Apple made a real nice poster out of the old “railroad” track syntax diagram of Pascal. Although I can’t say I like the color choices.

    http://pascal-central.com/images/pascalflow.jpg

    http://www.pascal-central.com/pascal-syntax.html

  3. David Craig

    Hello,

    As the author of this 1992 Apple Computer Pascal history “A Brief History of Apple Computer’s Work with the Pascal Language” I would like to provide a few clarifications and corrections to my history and also to this BLOG FOCUS piece. There are a lot of very insightful comments and questions here.

    This is a long response since 1) I think several clarifications and corrections are needed here, 2) some readers of this stuff may hopefully find some of these comments of minimal interest, 3) I wanted to reply to the comments which had questions and many of the comments were questions and 4) this is Sunday when I have some time to write a long reply about Apple Pascal history and other Apple historical items :) I think most of my comments are correct, but I’m sure something I say below is not right … if so, please provide a correction.

    You wrote: The most recent exploration was of an Apple internal memo about the history of Apple’s involvement with Pascal. The memo is cursory, but it does provide an interesting snapshot of the history of Pascal within the company.

    Clarification: This is not an internal Apple memo. I was not an Apple employee and wrote this history based on my use of all of the Pascal variants starting with Apple II Pascal and ending with Apple Macintosh MPW Pascal. Page 1 of this history states “the author has never worked for Apple Computer”. You are correct that this is just a cursory history, Apple would need to provide the definitive Pascal history (don’t hold your breath for this to happen).

    Correction: My Apple III Pascal section has the wrong spellings for Ira Ruben and Al Hoffman. Ruben was a very prolific Apple programmer who contributed extensively to Apple III Pascal, Lisa Pascal and Macintosh MPW Pascal and also implemented the very powerful and fast Apple MPW Motorola 680×0 assembler. Dan Allen, who worked on the MPW development system (mostly MacsBug and MacApp), wrote a detailed history of MPW’s development (https://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop).

    You wrote in the Rough Timeline section “UCSD Pascal -> ][ -> /// -> Lisa Pascal -> MPW Pascal”

    Clarification/Correction: Apple II and III Pascal were based on UCSD Pascal, but Lisa Pascal and Macintosh MPW Pascal were based on the Wirth ETH Pascal and not UCSD Pascal. Lisa Pascal was licensed to Apple by Silicon Valley Software (SVS) which Apple maintained (Al Hoffman was Apple’s main Lisa Pascal developer).

    Here are some comments from me that hopefully address several of the comments that accompany this article …

    Carl Hansen in a comment wrote “Woz talks of pascal at Apple”.

    Clarification: My historical mistake for not mentioning the role of Apple’s technical founder Steve Wozniak (a.k.a. “Woz”) in the development of Apple II Pascal. Wozniak was involved in the integration of UCSD Pascal to Apple II Pascal. Wozniak seems to have been primarily involved in the development of the Apple II Pascal BIOS which linked this Pascal’s I/O (input/output) routines to the Apple II ROM I/O routines. A description of this BIOS may be found in Appel document “ATTACH-BIOS Document for Apple II Pascal 1.1” authored by Barry Haynes and dated 12 January 1980. From a conversation I recall with one of Apple Pascal’s programmers (Albert “Al” Hoffman), Wozniak and Bill Atkinson visited UCSD for a few days and while there they worked to develop the integration programming for Apple II Pascal. Atkinson worked on the higher level Pascal language sections and implemented the Apple II high resolution graphics library (called Turtle Graphics) in 6502 assembly language. Atkinson later worked on the Apple Lisa computer where he implemented the Lisa’s high-speed graphics library (initially called LisaGraf, later QuickDraw — this was also the title of Raskin’s 1967 Penn State PhD thesis “The QuickDraw Graphics System”). Per my Pascal history, Jef Raskin was to my knowledge not involved in the actual Apple II Pascal development effort, but was involved in convincing Apple to use the UCSD Pascal System as its internal development system instead of BASIC or 6502 assembly language. Jef Raskin (unfortunately deceased as of 2005) provided his recollection of this Apple Pascal history in his paper “The Mac and Me: 15 Years of Life with the Macintosh” in section titled Pascal dated 1995 (I have a copy of this wonderful Apple perspective — my PDF copy’s Pascal section appears on document 17). It is interesting to note in Raskin’s Mac history that he states he personally paid for the UCSD Pascal license and as such Apple’s Apple II Pascal was really owned by him. Doug McKenna’s 1992 history of QuickDraw also talks about Raskin’s Apple Pascal contributions (“The Etymology of QuickDraw”, March 1992).

    Comment: “I’m not familiar with the author David T. Craig. Any further information on his other works is appreciated.”

    Clarification: Professional computer programmer since 1983 when worked on Apple Macintosh as a 3rd party developer. Worked also with all of Apple’s Pascal variants — II, III, Lisa, Macintosh MPW.

    Comment: “While BASIC was certainly available, it’s unclear how much it was actually used for system-level development.”

    Clarification: I don’t think Apple BASIC (either Integer or Microsoft-based II AppleSoft Floating Point) were used for system-level programming at Apple. Apple II AppleSoft BASIC was used mostly for what I would call simple projects since BASIC was built-in to the Apple II ROM, was easy to use, though its use for what I would call commercial projects was difficult due to its global-only name space and 2 character variable name limitation (Steve Wozniak’s Integer BASIC was better in some ways than AppleSoft BASIC, but Integer BASIC’s lack of floating-point numbers was a big problem for most projects). It is my understanding that Apple II users used BASIC mostly and some 6502 assembly if they were serious Apple II programmers with the time and resources to program in assembly. Apple itself used 6502 assembly for its projects (e.g. the AppleSoft BASCI interpreter was written in 6502 assembly with source licensed from Microsoft. Apple also used Apple II Pascal for some of its projects (e.g. the various Apple disk tutorials). Apple also used SWEET-16, the 16-bit pseudo interpreter written by Steve Wozniak (e.g. Apple’s 6502 assembly used SWEET-16 I believe in its editor). SWEET-16 was an interesting interpreter which I think was ahead of its time for the Apple programming world and tied to provide a compact byte-code system at the expense if speed when compared to 6502 assembly (https://en.wikipedia.org/wiki/SWEET16).

    Comment: “So the question arises… why Pascal?”

    Clarification: From my experience, the pros for Pascal were it provided a high-level development language which supported step-wise refinement and information hiding (i.e. units). Structured programing and separately compiled and loaded modules (i.e. UNITs) were very important here. Cons … Pascal not built into the Apple II and had to be purchased for several hundred dollars. Pascal also required 64K of memory which means you had to also purchase the Apple II 16KB Language Card. You also had to have a minimum of 2 140KB disk drives on your Apple II (each cost around $500 I recall). I had 4 disk drives for my Apple II Pascal efforts (3 drives were in my opinion the minimum but 4 made Pascal programming much easier and ended up saving time — typical tradeoff of $s versus time). Learning Pascal for a BASIC programmer I think could be difficult since there was a whole new level of programming to learn. Learning the Pascal language was not too difficult, but learning what is called software engineering is more difficult (that is why universities has software engineer degrees). Pascal was also to some degree slower than 6502 assembly but faster than BASIC (the Pascal p-code interpreter was responsible for this slowness). Fitting large Pascal programs on a 140KB floppy disk could be a challenge (the Apple Pascal Runtime System helped to alleviate this problem somewhat).

    Comment: “IIRC, because Atkinson came from UCSD, & the p-machine was easy to implement & efficient enough even on 6502.”

    Clarification: Yes and No in my opinion. “Easy” is qualitative. Implementing a UCSD Pascal system on a micro computer system in the 1970s was a rather sophisticated task even for experienced programmers. The minimal amount of memory in the early micros (64KB of RAM was considered a lot which most micro users did not have) caused a UCSD p-System implementation serious headaches. Apple’s Apple II Pascal system programmers used most of this 64KB memory and had to use the Language Card’s bank-switched memory to hold the low-level components of the Pascal system (e.g. BIOS — Basic Input Output System which handled hardware access such as keyboard input and disk I/O). The amount of memory available to Pascal applications was limited which required UCSD Pascal to sup[port code segments which could be swapped into memory as needed and then removed from memory. Optimizing the segmentation for a large UCSD Pascal program was very difficult.

    Comment: “That said, in 1978 other viable languages were in use: C, Pascal, PL/M, CLU, Smalltalk, Lisp, and Forth.”

    Clarification: I’m not sure how “viable” some of these languages were for small-memory and small-disk micros of the late 1970s. C, Pascal and FORTH (capitalization is need for this name) were viable at this time. But I am willing to bet some decent money (e.g. $20) that there was no micro system in the 1970s which supported PL/M, CLU, SmallTalk or Lisp. I was unaware of CLU so looked it up on the internet (https://en.wikipedia.org/wiki/CLU_(programming_language)). From its description I suspect CLU would not have been easy to implement on a 1970’s micro due to its Algol heritage and feature set. For SmallTalk, if you had a Xerox Alto or Dorado (a.k.a. as the Star) then SmallTalk would be viable (trying to obtain one of these machines at that time would be very difficult and very expensive). PL/M required a lot of machine resources due to its large feature set and I suspect the PL/M compilation and runtime requirements would far exceed a 1970’s micro. Lisp was viable only for dedicated Lisp machines such as those like the TI Explorer machines which were basically mini systems costing lots of money. FORTH is definitely viable for micros but its language syntax and stack-based architecture I think is rather difficult for most programmers. Paul Lutus’ FORTH and GraFORTH Apple II implementations were very well done and provided very fast applications, but FORTH was just not that popular (http://www.open-apple.net/2015/04/19/open-apple-46-april-2015-paul-lutus-reactivemicro-and-kansasfest-keynote/).

    Comment: “Pascal has a nice mix of low and high-level concerns with reasonable safety features. Plus compilers were relatively simple and extensible.”

    Clarification: Great comment. Says it all.

    Comment: “BTW: Atkinson was responsible for Quickdraw and the Lisa+Mac UIs. He also created MacPaint and Hypercard. Quite a resume I’d say.”

    Clarification: The other people who worked on the design of the Lisa and later Macintosh user interfaces would I think recognize Atkinson’s efforts here, but he was part of a team effort where significant UI features were co-developed by several people and not jut a single person at Apple (e.g. Larry Tesler). See the article “Inventing the Lisa User Interface” by several of the Lisa designers (Rod Perkins, Dan Smith Keller, Frank Ludolph) for more details here. Same for the internal Apple memo “Lisa User Interface Standards Document” with Bill Atkinson listed as the project leader and dated 20 September 1980. Apple paper “The Integrated Software and User Interface of Apple’s Lisa” by Apple’s Lisa team member Ed Birss is enlightening. Apple’s “Origins of the Apple Human Interface” from a 1997 talk by Apple’s Larry Tesler (head of Lisa applications group) and Chris Espinosa is also very enlightening. BYTE magazine Lisa designer interview is a great read or Lisa enthusiasts (BYTE magazine, “An Interview with Wayne Rosing, Bruce Daniels, and Larry Tesler: A behind-the-scenes look at the development of Apple’s Lisa”, February 1983). Apple’s Lisa POSD (Personal Office System Division) programming manual for the Lisa UI “Lisa User Interface Guidelines” from 1983 provides a detailed description of this UI feature set for Lisa programmers who used the Lisa Toolkit object-oriented programming framework to develop Lisa Office System desktop applications (called “tools” by Apple). My own Lisa UI 1987 paper from college (Apple Lisa Graphical Object-Oriented User Interface” also provided additional information. BYTE magazine’s Lisa toolkit article is also worthwhile reading (BYTE magazine, “Software Frameworks”, December 1984) Also, the sources for Atkin’s QuickDraw and MacPaint are available from the Computer History Museum (http://www.computerhistory.org/atchm/macpaint-and-quickdraw-source-code/). My 1993 Lisa legacy paper may also interest some people (“The Legacy of the Apple Lisa Personal Computer: An Outsider’s View”). Recollections about the invention of the Lisa and Macintosh user interfaces may also be found in a very rare correspondence between Jef Raskin and Bruce Horn, the designer and co-implementor of the original 1984 Macintosh Finder and a Xerox PARC alumni (Bruce Horn, “On Xerox, Apple, and Progress”, 1996).

    Comment: “Raskin was impressive in his own right. A PC-appliance visionary, he helped design the Mac and his baby the Canon Cat.”

    Clarification: The Canon Cat (I have one) was a very innovative system whose unique user-oriented design has been overshadowed by the Mac and Windows world. There was even a card and disk “cat” for the Apple II called the SwyftCard which is now a very minor footnote in the Apple II history. For Cat information see BYTE magazine (BYTE magazine, “Jef Raskin’s Canon Cat: A Spiritual Heir to the Macintosh”, October 1987). My Cat paper “Canon’s Cat Computer: The Real Macintosh”, David Craig, 1994 as written for the computer history interest group and its its newsletter Historically Brewed. Jef Raskin’s July 1987 letter from his company Information Appliance Inc. to me about the Macintosh and the Canon Cat is also interesting since he says “It [Canon Cat] is as advanced (in terms of human interface) over the Mac was the Mac was an advance in its day”. Raskin’s interview in the book “Programmers at Work” (Susan Lammers, Microsoft Press, 1989) also his Apple Lisa and Macintosh connection and the Canon Cat and SwyftCard systems. Raskin’s diagram on page 386 of this book provides a very interesting view of old versus new computer user interfaces. Raskin’s Canon Cat LEAP technical paper “Systemic Implications of LEAP and an Improved Two-Part Cursor: A Case Study” is also I think worth reading (CHI’89 Proceedings, May 1989). Raskin’s internal 1986 paper “Information Appliances: A New Industry” is an eye opener. The Canon Cat user’s manual is also very illustrative (“Canon Cat The Advanced Work Processor: How-To Guide, Canon Inc., 1987). The Apple II SwyftCard is described in “The Race goes to the Swyft” (A+ magazine, November 1985). BYE magazine’s review of the SwyftCard is good too (BYTE magazine, “Review of the Apple //e SwyftCard”, September 1985). The SwyftCard manual is an example of a very well written manual containing a detailed description of the theory behind this card’s user interface (“SwyftCard Manual: Theory of Operation”, 1985). The SwyftCard US patent assigned to Jef Raskin and Dr. Dr. (yes, 2 Dr.s) James Winter is neat to read for those who like patent details (US Patent number 5,019,806 assigned 28 May 1991, 39 pages). Jef Raskin and Steve Wozniak also appeared in a SwyftCard ad (BYTE magazine, November 1985, page 427, $89.95 retail price) where Wozniak says “SwyftCard is an incredible addition to my Apple //e”. SwyftCard is also reviewed in Dr. Dobb’s Journal (“The SwyftCard: Jef Raskin’s New User Interface”, Dr. Dobb’s Journal, June 1986). there is also a very good SwyftCard internet article with a scan of an actual SwyftCard (“Information Appliance Inc. and the SwyftCard”, http://www.willegal.net/swyft/swyftcard.html). Trade secrets for the Canon Cat and SwyftCard may also be found in a very rare Information Appliance Inc. document and are worthwhile reading for why Raskin thought a new post-Macintosh/Windows user interface was needed. The Information Appliances Business Plan is also a very enlightened read (May 1984, 16 pages). Owen Linzmayer’s 1994 description of the Canon Cat is worthwhile reading (the rest of this book is I would say provides the most accurate Apple Macintosh history of any book). Please buy a copy of the “The Mac Bathroom Reader” if you want an accurate history of the Macintosh. Jef Raskin agrees with the accuracy of this book (Wired magazine, February 1995, page 145). Raskin also provided a commentary about Apple historical books/articles which he found in general very inaccurate and incomplete (“Holes in the Histories”, http://www.digibarn.com/friends/jef-raskin/writings/holes.html). FWIW, I cannot say that everything Raskin claims he did is accurate, but I suspect most of what he claims is true and that the Apple PR juggernaut has played a role in minimizing Raskin’s Apple achievements in order to maximize the roles of other people such as Steve Jobs. And finally … Raskin provided an interview about his computer-user interface thoughts (“Human Interface Design: Jef Raskin Interview”, Dr. Dobb’s Journal, May 1986).

    Comment: “In addition to writing stellar tech manuals, Raskin also wrote a great design-minded book “The Humane Interface”

    Clarification: Agree … worth reading.

    Comment: “UCSD Pascal (at the time) was a complete OS+programming suite. The programs ran in a p-code VM”

    Clarification: Very good point. This Pascal implementation was a SYSTEM and not just a compiler. This system contained a disk filer, editor, Pascal compiler, and various development support tools (e.g. linker, segment viewer/mapper, etc). UCSD wanted to provide a cross-platform system for micro users so they would have access to both a micro development system that was compatible across different platforms and also cross-platform operating system user environment. I’m not certain this goal was 100% achieved, but it came close at least in the late 1970s. The hegemony of the Macintosh and Windows environments ended this UCSD goal.

    Comment: “I try but fail to imagine what it means to just up and start an “internal dev group.” Was it a club? A formal branch? Brown-bags? WHAT?!”

    Clarification: The “internal dev group” here means a group of people within Apple who developed the programming tools that Apple’s other internal developers and 3rd party developers used to develop Apple programs. Apple I recall referred to this group as the “tools group”. There was several sub-groups here in the 1980s and early 1990s such as the Pascal group, C group, assembly group, floating point SANE group, etc.

    Comment: “I don’t know what “a powerful filer” is”

    Clarification: I meant a program (the “filer”) which allowed the Apple II Pascal programmer easy access to all disk volumes and files. This is my meaning of “powerful” and may differ from other people’s definition. The Filer was part of the Pascal operating system. You could list disk volumes, format volumes, list files with their attributes (e.g. file type, file size, date created), copy files around, and even print files by copying them to the Pascal printer device (i.e. PRINTER:) or transmit files electronically to another computer view the computer’s I/O port (i.e. REMOTE:). This Pascal Filer was menu based, as were all the p-system tools. See the Apple II Apple Pascal Operating System Reference Manual dated 1980 for Pascal OS and Filer details (https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Software/Languages/Apple%20II%20Pascal/Manuals/Apple%20Pascal%20Operating%20System%20Reference%20Manual.pdf).

    Comment: “I wonder if Apple or UCSD wrote the 6502-based p-code interpreter. Anyone know?”

    Clarification: Students at UCSD wrote the original 6502 cCPU interpreter for Pascal p-codes. Apple maintained this interpreter when Apple licensed UCSD Pascal for its Apple II and Apple III programming efforts. The authors of the 6502 p-code interpreter were UCSD students Richard Gleaves and Mark Allen (http://www.threedee.com/jcm/psystem/) where Richard Gleaves wrote “Mark [Allen] and I [Richard Gleaves] spent the summer of 1978 working on-campus at UCSD writing the 6502 interpreter that later became the basis for Apple Pascal. (We were paid UCSD’s standard student “junior coder” wage of $5.50 per hour.) Trivia detail: the interp was developed (and thus the first 6502-based Pascal system booted) on a Rockwell box.” Apple’s initial involvement with UCSD Pascal is also discussed here.

    Comment: “Chalk up yet another language for Atkinson… I can’t find anything about his explicit link to the turtle graphics package sadly.”

    Clarification: Several internet articles link Bill Atkinson with the development of the Apple II Pascal turtle graphics library: “Macintosh Development Folklore: Busy Being Born” (https://www.folklore.org/StoryView.py?story=Busy_Being_Born.txt), “Photos: Evolution of the Mac interface” (https://www.cnet.com/news/photos-evolution-of-the-mac-interface/). “Woz story on UCSD Pascal P-System” (http://retromaccast.ning.com/profiles/blogs/woz-story-on-ucsd-pascal-p-system). Note that Steve Wozniak (Apple’s technical founder) wrote the Apple II high-resolution (“hi-res”) graphics that were part of the Apple II AppleSoft ROM and Wozniak and Bill Atkinson incorporated these hi-res routines into Apple II Pascal’s turtle graphics library (I suspect both worked on the initial graphics implementation and Atkinson implemented the Pascal unit interface and maintained the library initially). The internet also provides several references for the Apple II Pascal’s turtle graphics library details. This library’s interface was part of the UCSD Pascal system, but the licensees of this system (e.g. Apple Computer) needed to implement the actual graphic handling since each computer handled graphics differently. For example, the Apple II computer had several graphic modes but Apple’s Apple II Pascal system only supported high-resolution (a.k.a “hi-res”) graphics, Low-resolution graphics were not supported by Apple though a programmer could support this mode by writing their own graphic library (this was done in I recall a CALL-APPLE magazine article). The Apple II Apple Pascal Language Reference Manual dated 1980 provided turtle graphics library details starting on page 90 (https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Software/Languages/Apple%20II%20Pascal/Manuals/Apple%20Pascal%20Language%20Reference%20Manual.pdf).

    Comment: “Alas, they left out Bruce Tognazzini (@asktog)’s name; he was the co-author of “Apple Presents….Apple.””

    Clarification: JD Eisenberg is correct here — my fault for not listing Bruce Tognazzini who I know was involved with the very well made Apple II disk tutorial programs. I am also aware of Bruce Tognazzini involvement with documenting and testing the Apple user interface for the Apple II series (“The Apple II Human Interface Guidelines”, Apple Computer, Bruce Tognazzini, 1st Draft, 15 September 1978 to 2nd Release Alpha 21 March 1985).

    Comment: “Though it seemed that /// Pascal was the end of VMs for Apple (at the time) UCSD Pascal was influential to a later language called Java.”

    Clarification: Agree. But I understand that p-code type implementations proceeded the UCSD Pascal system and were used in early mainframe systems such as CDC systems as a way to more easily generate the same “object” code from different language compilers and also provide more compact object code. Also, “p-code” should really be understood to mean “pseudo-code” where the “p” has nothing to do with the Pascal language.

    Comment: “It’s hard to know for sure, but Lisa’s system must’ve been one of the largest Pascal codebases at the time.”

    Clarification: I agree. The majority of Lisa applications (“tools”) were mostly written in Lisa Pascal (e.g. LisaWrite word processor). The majority of the Lisa Desktop Library units which implemented the Lisa Desktop metaphor were in Lisa Pascal (around 10MB of sources just for these libraries per the BYTE Lisa designer article). The majority of the Lisa Operating System (e.g. process system, file system, memory system, etc) were in Lisa Pascal. Certain areas which needed speed were in Motorola 68000 assembly language (e.g. the QuickDraw graphics library). I would guestimate around 250,000 lines of Lisa Pascal were written for the Lisa.

    Comment: “Apple liked Pascal so much that they started their Lisa toolchain from scratch!”

    Clarification: If by “toolchain” it means starting new Pascal programs for the Lisa development tools, I don’t think this was the case. Lisa Pascal was licensed from SVS which provided their Pascal source to Apple for its updating and maintenance. Several Lisa programming tools such as the Procedure Name and Source formatting tools already existed from the Apple III development effort and these tools were also available from groups such as PUG (Pascal Users Group) and USUS. Apple I’m sure extensively modified these tools for the Lisa software effort.

    Comment: “I wonder how far along that p-code processor got inside of Apple?”

    Clarification: Great question about the Apple p-code bit-sliced processor. People such as Steve Wozniak and Ken Rothmuller (Lisa’s first manager) would most likely know. Or BitSavers.org could find the Apple ERS document for this and put it on this great web site.

    Comment: “This was Atkinson’s work. I never did any QuickDraw programming and I feel like I missed out. :(“

    Clarification: I wrote a lot of programing that used QuickDraw for both Lisa and Macintosh. QuickDraw was very easy to use and lived up to its “quick” name. Even when compared to other main-mini-type graphics packages such as the very capable 3D package from DEC for its VAX machines, QuickDraw compared very well. The later Color QuickDraw library which came out with the Macintosh II system was very good and Apple’s implementation of a virtual colorspace system worked very well for all the different physical graphic devices. I don’t believe Atkins was involved with Color QuickDraw (besides at most from a consulting role). I recall reading that Atkinson helped with the Apple IIgs QuickDraw implementation a little.

    Comment: “What’s unclear to me is if programmers needed to have a Lisa to program for the Mac? Or was the toolkit available on the Mac directly?”

    Clarification: Macintosh programmers needed the Lisa to develop Macintosh programs since the Lisa Workshop was the only development system which provided access to the Macintosh libraries and produced Macintosh code and resource files. Apple’s own Macintosh programmers used the Lisa fir their Macintosh ROM and Apple applications (e.g. MacWrite). See my Macintosh programing retrospective article “3rd Party Developers and Macintosh Development” for more details about Macintosh development using the Apple Lisa Workshop (https://www.folklore.org/StoryView.py?story=3rd_Party_Developers_and_Macintosh_Development.txt). The Lisa even supported a Lisa Workshop utility named MacCom which transferred Macintosh files form the Lisa to a Macintosh 3.5″ 400KB floppy that was mounted in the Lisa’s 3.5″ disk drive slot. developers who used the Lisa 1 with the 860KB Twiggy drives used the serial port to transfer Macintosh files on the Lisa to a Macintosh’s serial ports. I believe Apple’s Macintosh designer Andy Hertzfeld wrote MacCom. The Lisa Toolkit was not used for Macintosh development. This toolkit was used for developing Lisa Office System (e.g. desktop) programs only. Only a few Lisa programs were developed using the Lisa toolkit since the toolkit was not available until after the Lisa was released and apple’s direction was more focused on the Macintosh. At the end of the Lisa’s life Apple implemented the toolkit on the Macintosh with the name MacApp under the guidance of Larry Tesler who was the Lisa application group manager and later the Lisa Toolkit manager. Lisa toolkit information may be found at Bitsavers.org: http://bitsavers.trailing-edge.com/pdf/apple/lisa/toolkit_3.0/Package_2_Examples/04_Lisa_Toolkit_Self-Paced_Training.pdf. Signal magazine which was originally devoted to the Lisa provided a very interesting article from March 1986 about the Lisa and Macintosh user interfaces from one of the developers of the Lisa Finder (called the Lisa Desktop Manager) Dan Smith titled “The Past, Present, and Future of the Macintosh Desktop” (http://www.guidebookgallery.org/articles/thepastpresentandfutureofthemacintoshdesktop).

    Comment: “Initially, you needed a Lisa. Apple contracted Wirth to create Object Pascal, & eventually compilers for it were Mac-native.”

    Clarification: Almost correct AFAIU (as far as I understand). I’m not sure if Apple “contracted” with Wirth but I may be wrong here. Here’s what I understand (or think I understand) … Nicolas Wirth, the designer of Pascal at ETH Switzerland helped Apple with the design of the Macintosh Object Pascal language. Object Pascal was the successor to the Lisa Clascal language which was Lisa Pascal with object extensions. Wirth and Apple people such as Larry Tesler for use by the object-oriented MacApp development framework. The Lisa Clascal language had some parts which were rather messy and Apple wanted to simplify these parts (I recall object initialization was rather weird). Tesler wrote a paper about the changes from Lisa Clascal to Macintosh Object Pascal which I recall mentions Wirth’s contributions

    Comment: “Then came the MacApp Object Pascal app framework, one of the first “OOP app frameworks.””

    Clarification: Seems every computer company which develops something claims they were the first. Apple is definitely not the exception. From my understanding of OOP (objet oriented programming) app frameworks. Xerox had a framework for the Xerox Star which was based on the OOP framework for Xerox’s SmallTalk effort. Apple’s Lisa had the Lisa Toolkit and its application base classes. Apple’s Macintosh had MacApp (which was developed by the same Apple team that worked on the Lisa Toolkit — this means Larry Tesler et al).

    Comment: “These names [Ira Ruben and All Hoffman] pop up often, but I can’t find much on either of them.”

    Clarification: Note that my spellings of these names in this history are wrong. The correct names are above. Sorry about that Ruben and Hoffman. Ruben is around, Hoffman is hard to find. I recall corresponding with both of them long ago and they each had interesting things to say about the Lisa and Macintosh development efforts. Both were in Apple’s internal tools development group which produced all of Apple’s development tools such as their various compilers and support tools (e.g. linkers). Hoffman came out of the UCSD Pascal project. Ruben I believe came out of the mainframe world (I suspect the IBM world since his work on the MPW assembler shows an IBM 360 assembler influence).

    Comment: “This seems to imply that development for the Mac was a pain for 1-2 years after its release.”

    Clarification: I did not find developing Macintosh applications on the Lisa Workshop a pain. The Lisa provided a very nice mouse-window editor (thanks to Lisa software manager Bruce Daniels for its development). Lisa Pascal and its extensions over UCSD Pascal provided a very nice language. Lisa Pascal compilation was very fast due to the Lisa’s 1MB of memory and the transfer of the Macintosh files to a Macintosh 3.5″ 400KB disk was easy and fast. The use of the Lisa Workshop EXEC facility (somewhat similar to the Unix MAKE) allowed me to just run my EXEC file and all the compilations, links and Lisa to Macintosh disk transfer happened by themselves without my involvement unless there was problem. See my Macintosh programing retrospective article “3rd Party Developers and Macintosh Development” for more details about Macintosh development using the Apple Lisa Workshop (https://www.folklore.org/StoryView.py?story=3rd_Party_Developers_and_Macintosh_Development.txt). I do want to comment about some negative comments made in several Macintosh source files by Apple’s Macintosh developers. Some of these developers referred to the Lisa Workshop as the Lisa Porkshop since they thought the Lisa was slow. I did not find it slow, but when the Macintosh Plus system was released around 1986 with 1MB of RAM, a 800KB internal disk, an external 20MB hard drive, and the Macintosh MPW development system (MPW = Macintosh Programming Workshop), then the Macintosh was able to develop serious programs on itself. Note that the Macintosh Plus was also Apple’s last Macintosh whose system programs were developed with the Lisa Workshop. MPW was used thereafter for Apple’s Macintosh development.

    Comment: “That is accurate. It became genuinely practical in 1987 with purchase of a Macintosh II for about $5,498”

    Clarification: I disagree. I used the Macintosh Plus and later the Macintosh II for Macintosh development. I think the Macintosh Plus was a very good development platform using Macintosh MPW. But MPW at this time (1986) was in the alpha and beta stage. Apple was trying very hard for 3rd party Macintosh developers to use the MacApp object-oriented framework but this framework was still complicated to use, though a bit easier that using the Macintosh ROM routines. See my clarification above for additional details.

    Comment: “I’m tickled by the idea that there was both Apple COBOL and Apple Fortran. I wonder what PasMat and PasRef did?”

    Clarification: Apple provided COBOL for the Apple III and Lisa, don’t think Macintosh had COBOL. Apple II FORTRAN (all capitals) was barely workable and not very reliable. I did not use III COBOL but did use FORTRAN on the II when I had a FORTRAN college course. III had FORTRAN but don’t believe Apple released it (I suspect Apple’s FORTRAN users were less in number than the characters in the FORTRAN name). Lisa COBOL had nice manuals but I never used it (I used COBOL on an IBM mainframe in college and found COBOL OK but a rather verbose language). PasMat was the Pascal Formatter program which formed Pascal source files based on various options. This was only useful if you had a Pascal source that was formatted very badly. PasRef was the Pascal Referencer which listed all the routine and variable cross-references in a Pascal source. I recall using PasMat a little, PasRef rarely. I sued ProcNames a lot since it produced a very nice listing of the procedure/function names in my Pascal programs.

    FWIW clarifications (these are extra items I though may interest some of the readers) …

    FWIW Clarification: Steven Weyhrich provides a detailed account of Apple II Pascal on his Apple II History website, he also has a great book about everything you want to know about the Apple (https://apple2history.org/history/ah17/).

    FWIW Clarification: The source for Macintosh MPW Pascal is rather extensive. 45 source files and 54,800 total lines occupying 1.9 MB of disk space. These metrics are based on MPW Pascal version 3.2.5 which appears to be dated 1996. This compiler sources was based on Lisa Pascal and several source files still reference the Lisa. Most of these source files are written in Pascal with 6 files written in Motorola 680×0 assembly language.

    FWIW Clarification: An interesting and mostly accurate description of apple’s early programming environments (BASIC, Pascal, C) may be found on the internet in the Software Engineering Stack Exchange thread titled “What language was “standard” for Apple development before Objective C?” (https://softwareengineering.stackexchange.com/questions/178038/what-language-was-standard-for-apple-development-before-objective-c).

    Hope this historical commentary is of some interest.

  4. Hope this historical commentary is of some interest.

    Are you kidding?! This was a comment of epic proportions. If it’s not the greatest comment on my blog ever, it’s definitely top-3. Thank you Mr. Craig. I have a lot of reading ahead of me…

    … this is a good thing. :)

  5. Woz talks of pascal at Apple

    That segment starts at around 14:10 of the linked video. https://youtu.be/gl0Wfs70rV4?t=14m10s

  6. Eric Smith

    One minor correction to what David Craig said about language suitability for microcomputers. PL/M was definitely suitable for microcomputers and was in fact invented as a programming language for the 8080. While it is loosely based on PL/I, which is a large language that was definitely not suitable for limited-memory microcomputers, PL/M was much simpler. The first PL/M compiler was written in Fortran, but the next one was written in PL/M itself, and ran on Intel’s 8080 “MDS” development systems. Much of CP/M was originally written in PL/M. In principle, there was no reason why a PL/M-compatible or PL/M-like language couldn’t have been developed for the 6502.

    There were several other languages similar to PL/M for other microcomputers. Motorola, Zilog, and National Semiconductor had MPL, PL/Z, and SM/PL, respectively. None of these caught on even as much as PL/M did.

    UCSD Pascal caught on for many systems, and Apple based Apple Pascal on it, because it was easy to license it from UCSD, vs. PL/M and its derivatives being proprietary.

    The main drawback of Apple Pascal on the Apple II was that it didn’t run on Apple’s native operating systems (originally Apple DOS, then ProDOS). If a version that ran on an Apple native OS had been developed, Apple Pascal probably would have become far more popular for Apple II software development. There was at least one good third-party Pascal implementation for ProDOS, Kyan Pascal, but the Apple II ecosystem was already in decline by that point.

    As far as I know, the first block-structured language conceptually of the same gneral language “family” as Pascal to be available on the Apple II was XPL/0 (not to be confused with XPL). It was perhaps more similar to Algol and BCPL than to Pascal. Like Apple Pascal, it did not run on Apple DOS or ProDOS, instead using an operating system called Apex. As a consequence, it was not very popular.

  7. Bán máy photocopy tại hải phòng

    I don’t know if it’s just me or if everybody else experiencing problems with your website. It seems like some of the written text in your content are running off the screen. Can somebody else please comment and let me know if this is happening to them too? This could be a problem with my web browser because I’ve had this happen previously. Appreciate it

Reply to “Pascal at Apple”