Lisa Programming Info 1 of 2

From: David Craig <dcraig_at_email.domain.hidden>
Date: Fri, 5 Jan 2001 16:28:46 -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 15:26:13

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