Lisa Programming Info 1 of 2

From: David Craig <dcraig_at_email.domain.hidden>
Date: Fri, 5 Jan 2001 11:31:26 -0700


LISA PROGRAMMING INFO
PART 1 OF 2 Karl Maftoum asked several questions in LisaList message # 133 concerning programming the Lisa computer. Here are my answers to these questions.Questions ...Q1) The version of the Pascal compiler I have is 3.24, is there any later version?Q2) Is there any way around the 8 character variable name limit?Q3) Why do loop variables have to be local? Not even P-System compilers seem to have this limitation.Q4) Why does the compiler require a dimension when declaring a string? i.e. VAR foobar: STRING[255]; rather than foobar: STRING;Q5) whether any documentation exists on the Office System itself? i.e. how does one hook into the OS on a lower level, is there any system similar to the INIT system on the Mac?Answers ...A1) The last Lisa Pascal compiler version was 3.76 dated 05 April 1985. This compiler was part of the Workshop 3.0 to 3.9 conversion package which I believe was 2 or 3 disks (these are available on the internet, or from me). This compiler actually supported Apple's object-oriented Clascal language.
There was another later Lisa Pascal compiler that Apple created for MacApp work in 1985-86 which I believe was version 4. This compiler I believe only generated Mac object code, not Lisa object code, so it would not be used for Lisa program development (Larry Rosenstein from the Lisa toolkit team and who has emailed this list may know if I'm right here).A2) Do you want less than 8 characters? :-) Seriously, no. Lisa Pascal (like Apple's Apple II and III Pascals) recognized only the 1st 8 characters of a name. You could type more than 8, but only the 1st 8 were unique. This was a gripe I had with this compiler and thought Apple should have made this limit at least 16 characters. Apple's Mac MPW compiler which was released in 1986 had 63 character name significance. Lisa Pascal's 8 character limit was a real pain in the ass for me since I recall always having to think about this during programming. With a large program this limit was always being reached (I personally thing 50 characters should be the lower limit since I seem to always use at least 30 characters for almost any names besides simple loop vars).Note that Lisa Pascal was not created by Apple. It was originally licensed from Silicon Valley Software (SVS) in 1981 and was maintained by Apple from then on. This compiler generated 68000 object code, where-as Apple's earlier Pascals generated machine independent p-code. Blame SVS for the 8 character limit, also blame Apple for not changing it (send all such gripes to Al Hoffman or Ira Ruben). See my Apple Pascal history paper for the details (attached to this email).A3) My take on this is: Loop variables are local since this provides better protection from programming errors. Allowing loop variables to have cross-procedure scope can produce hard to find bugs. Having loop vars local also lets compilers produce faster code by placing the loop var in a CPU register.A4) String vars require a size dimension since SVS says so. Apple could have changed this to be compatible with their Apple II and III compilers, but they didn't. I like having the dimension.A5) Office System internal documentation is very rare. The closest you will get to this is the "Lisa Programmer's Guide" (or programming guide) which the Lisa app developers wrote and which documented the Lisa Desktop Libraries. I am in the process of getting a copy of this manual.Another source of Office System design documentation is the many ERS documents that Apple wrote (ERS = External Reference Specification). These were the core design documents and existed for every Lisa component, e.g. the Lisa hardware, Lisa apps such as LisaWrite. I too would very much like to get info describing the Office System's internals.The Lisa Desktop Manager program (aka Lisa Finder) was central to the Lisa Office System's operation. It can be considered the core of this tool suite. AFAIK, the DM nor the operating system did not have an INIT mechanism like the Mac's. I'm not sure if the Lisa could even have supported such a mechanism since its 1010-line system call mechansim was not as general as the Macs (what this means is a user program could not override a system routine).It launched the Lisa apps and also controlled inter-app communication (this was done using "event channels" which are described in the Lisa Operating System Reference Manual). These events were very similar to the Mac's Apple Events and supported actions such as open-document, close-document, print-document.The DM also provided the Office System with a virtual file system (FS) document naming service. The Lisa's low-level FS supported names that could be up to 31 characters long and could not contain a "-" which was used as the volume-folder-file name seperator. But the DM allowed document names to be up to 63 characters long and could contain the "-" character. File names also did not need to be unique. You could have a folder containing 3 files all named "Budget 1983" with one document being a LisaWrite document, another LisaCalc, another LisaGraph. Internally the DM assigned each document a unique low-level FS name of the form "{TxDy}" where x was the tool number (e.g. LisaWrite was tool 1) and y was the document number. For this 3 document example, the FS names would be {T1D1}, {T1D2}, {T1D3}. Lisa users never saw these "{" files, only the Lisa Workshop could see them (and only if the WS user enabled access to them). From this name the DM knew what Lisa app the doc was for. Each Lisa file also contained a special 128 byte hidden file that was only visible to the Lisa FS called the "disk label". The Lisa FS did not store anything in this label, it was reserved for use by the Lisa apps. This label area stored the info that linked the file to its user-seen desktop document. This label contained the user's name for the file, the location on the screen of the document's window (each document resided in one and only one window), and various state information for the document such as its scrollbar position.Another interesting thing about the Lisa Office System was it did not show all of its files to the user. There were many system level files such as the operating system itself (SYSTEM.OS) and the Desktop Manager (OFFICE SYSTEM.SHELL) which the user never even knew existed. Users only saw volumes and their documents. This differs completely from the Mac where all documents were visible to the user (there was an exception here with files that were marked invisible but these were rare).Lisa icon handling was also different from what one would expect if you know how systems such as the Mac handle icons. All Lisa icons were just font characters in a special icon font. These fonts resided in their own single file. There were several fonts which handled special situations such as the icon font for the DM, another special font for LisaGuide. Even the window-based visuals such as the scrollbar arrows were in a font. The Lisa did not have resources that the Mac had (the file system's "disk label" was the closest the Lisa got to resources). Lisa had many system files instead. Developers (outside of Apple) could not change these system files, e.g. they could not change the installed fonts, only an internal Apple program could do this.Also, the first 2 versions of the Office System were based on a flat file system. The user saw a hierarchical view of their folders and documents which was maintained fully by the DM. The 3rd Office System (Lisa 7/7, or 3.0/3.1) used the low-level FS' hierarchical format.The Apple document "Architecture of the Lisa Personal Computer" (Bruce Dnaiels, 1984) contains a great description of the Lisa's overall software architecture. The info on the Lisa Desktop Manager is very good.For low-level Lisa info, see the 3 volume Lisa Workshop manual set. The Lisa Operating System Reference Manual contains the description of the low-level OS which supported files, memory management, processes, and event channels. END OF PART 1
> Regards,
> David T. Craig
>
> ###########################################################
> # David T. Craig -- CyberWolf Inc. -- ACI 4D Developer #5
> # Aspen Plaza, 1596 Pacheco, Suite 203
> # Santa Fe, NM 87505 USA
> # voice 505.983.6463 ext 15 -- fax 505.988.2580
> # dcraig_at_email.domain.hidden
> ###########################################################

MacResQ Specials: LaCie SCSI CDR From $99! PowerBook 3400/200 Only $879! Norton AntiVirus 6 Only $19! We Stock PARTS! <http://www.macresq.com>

Shop buy.com and save. <http://click.linksynergy.com/fs-bin/ stat?id=O7sajHhUCjc&offerid=13541.10000001&type=1&subid=0>

    / Buy books, CDs, videos, and more from Amazon.com \    / <http://www.amazon.com/exec/obidos/redirect-home/lowendmac> \ - - - - - - - - - -
This message is sent to you because you are subscribed to LisaList.

List info               <http://lowendmac.net/lists/lisa.html>
Send list messages to:  <mailto:lisalist_at_email.domain.hidden>
To unsubscribe, email:  <mailto:lisalist-off_at_email.domain.hidden>
For digest mode, email: <mailto:lisalist-digest_at_email.domain.hidden>
Subscription questions: <mailto:listmom_at_email.domain.hidden>
List archive:           <http://mail.maclaunch.com/lists/>

Host your mailing list for free at Maclaunch http://www.maclaunch.com/forms/list.shtml Received on 2001-01-05 10:35:56

This archive was generated by hypermail 2.4.0 : 2020-01-13 12:15:18 EST