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
> ###########################################################
- - - - - - - - - -
LisaList is sponsored by LowEndMac.com, MacLaunch.com, and...
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