Lisa Programming Info 1 of 2c

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


LISA PROGRAMMING INFOPART 1 OF 2Karl Maftoum asked several questions in LisaListmessage # 133 concerning programming the Lisacomputer. 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 variablename limit?Q3) Why do loop variables have to be local? Not evenP-System compilers seem to have this limitation.Q4) Why does the compiler require a dimension whendeclaring a string? i.e. VAR foobar: STRING[255];rather than foobar: STRING;Q5) whether any documentation exists on the OfficeSystem itself? i.e. how does one hook into the OS on alower level, is there any system similar to the INITsystem on the Mac?Answers ...A1) The last Lisa Pascal compiler version was 3.76dated 05 April 1985. This compiler was part of theWorkshop 3.0 to 3.9 conversion package which I believewas 2 or 3 disks (these are available on the internet,or from me). This compiler actually supported Apple'sobject-oriented Clas cal language. There was anotherlater Lisa Pascal compiler that Apple created forMacApp work in 1985-86 which I believe was version 4.This compiler I believe only generated Mac objectcode, not Lisa object code, so it would not be usedfor Lisa program development (Larry Rosenstein fromthe Lisa toolkit team and who has emailed this listmay know if I'm right here).A2) Do you want less than 8 characters? :-) Seriously,no. Lisa Pascal (like Apple's Apple II and IIIPascals) recognized only the 1st 8 characters of aname. You could type more than 8, but only the 1st 8were unique. This was a gripe I had with this compilerand thought Apple should have made this limit at least16 characters. Apple's Mac MPW compiler which wasreleased in 1986 had 63 character name significance.Lisa Pascal's 8 character limit was a real pain in theass for me since I recall always having to think aboutthis during programming. With a large program thislimit was always being reached (I personally thing 50characters should be the lower limit s i
nce I seem toalways use at least 30 characters for almost any namesbesides simple loop vars).Note that Lisa Pascal was not created by Apple. It wasoriginally licensed from Silicon Valley Software (SVS)in 1981 and was maintained by Apple from then on. Thiscompiler generated 68000 object code, where-as Apple'searlier Pascals generated machine independent p-code.Blame SVS for the 8 character limit, also blame Applefor not changing it (send all such gripes to AlHoffman or Ira Ruben). See my Apple Pascal historypaper for the details (attached to this email).A3) My take on this is: Loop variables are local sincethis provides better protection from programmingerrors. Allowing loop variables to have cross-procedure scope can produce hard to find bugs. Havingloop vars local also lets compilers produce fastercode by placing the loop var in a CPU register.A4) String vars require a size dimension since SVSsays so. Apple could have changed this to becompatible with their Apple II and III compilers, butthey didn't. I like  having the dimension.A5) Office System internal documentation is very rare.The closest you will get to this is the "LisaProgrammer's Guide" (or programming guide) which theLisa app developers wrote and which documented theLisa Desktop Libraries. I am in the process of gettinga copy of this manual.Another source of Office System design documentationis the many ERS documents that Apple wrote (ERS =External Reference Specification). These were the coredesign documents and existed for every Lisa component,e.g. the Lisa hardware, Lisa apps such as LisaWrite. Itoo would very much like to get info describing theOffice System's internals.The Lisa Desktop Manager program (aka Lisa Finder) wascentral to the Lisa Office System's operation. It canbe considered the core of this tool suite. AFAIK, theDM nor the operating system did not have an INITmechanism like the Mac's. I'm not sure if the Lisacould even have supported such a mechanism since its1010-line system call mechansim was not as general asthe Macs (what this m e
ans is a user program could notoverride a system routine).It launched the Lisa apps and also controlled inter-app communication (this was done using "eventchannels" which are described in the Lisa OperatingSystem Reference Manual). These events were verysimilar to the Mac's Apple Events and supportedactions such as open-document, close-document, print-document.The DM also provided the Office System with a virtualfile system (FS) document naming service. The Lisa'slow-level FS supported names that could be up to 31characters long and could not contain a "-" which wasused as the volume-folder-file name seperator. But theDM allowed document names to be up to 63 characterslong and could contain the "-" character. File namesalso did not need to be unique. You could have afolder containing 3 files all named "Budget 1983" withone document being a LisaWrite document, anotherLisaCalc, another LisaGraph. Internally the DMassigned each document a unique low-level FS name ofthe 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 onlyif the WS user enabled access to them). From this namethe DM knew what Lisa app the doc was for. Each Lisafile also contained a special 128 byte hidden filethat was only visible to the Lisa FS called the "disklabel". The Lisa FS did not store anything in thislabel, it was reserved for use by the Lisa apps. Thislabel area stored the info that linked the file to itsuser-seen desktop document. This label contained theuser's name for the file, the location on the screenof the document's window (each document resided in oneand only one window), and various state informationfor the document such as its scrollbar position.Another interesting thing about the Lisa Office Systemwas it did not show all of its files to the user.There were many system level files such as theoperating system itself (SYSTEM.OS) a
nd the DesktopManager (OFFICE SYSTEM.SHELL) which the user nevereven knew existed. Users only saw volumes and theirdocuments. This differs completely from the Mac whereall documents were visible to the user (there was anexception here with files that were marked invisiblebut these were rare).Lisa icon handling was also different from what onewould expect if you know how systems such as the Machandle icons. All Lisa icons were just font charactersin a special icon font. These fonts resided in theirown single file. There were several fonts whichhandled special situations such as the icon font forthe DM, another special font for LisaGuide. Even thewindow-based visuals such as the scrollbar arrows werein a font. The Lisa did not have resources that theMac had (the file system's "disk label" was theclosest the Lisa got to resources). Lisa had manysystem files instead. Developers (outside of Apple)could not change these system files, e.g. they couldnot change the installed fonts, only an internal Appleprogram coul d do this.Also, the first 2 versions of the Office System werebased on a flat file system. The user saw ahierarchical view of their folders and documents whichwas 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 PersonalComputer" (Bruce Dnaiels, 1984) contains a greatdescription of the Lisa's overall softwarearchitecture. The info on the Lisa Desktop Manager isvery good.For low-level Lisa info, see the 3 volume LisaWorkshop manual set. The Lisa Operating SystemReference 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:45:54

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