Text preview for : 17_Lisa_Development_System_Internals_Documentation_Feb84.pdf part of apple 17 Lisa Development System Internals Documentation Feb84 apple lisa toolkit_3.0 Package_2_Examples 17_Lisa_Development_System_Internals_Documentation_Feb84.pdf



Back to : 17_Lisa_Development_Syste | Home

DeveJopn18I1t SystBl11




DOCUMENTA TION




.,
DeveJq:ment TOOls Grotp
FIRST CRAFT--FetuuBty 1984
Preface

The purpose of this document is to explain the internal structures and
algorithms used by the Lisa's run-time environment and development tools, and
the internal library units (such as OBJIOLIB) that are related only to Lisa
systems software. It is actually a collection of documents and memos, any of
which can be used separately, all relating to different aspects of the system.
This is a reference document for programmers working on the following:
* Maintaining or enhancing existing lisa development software.
* Writing compilers or utilities for the Lisa Workshop, either on contract
with Apple or as third-party independants.
* .riting assembly-language programs that will interfaced with our compiled
code.

How will they benefit from this document?
* It will save the people maintaining tools the trouble of looking through
the code themselves to find information.
* It will save outside programmers, who don't have access to the code, from
calling us to ask questions about things that ,ehave to look up in the
code.
* Perts of it will be included es e reference section in technical
contracts that we assign to outside programmers.
* It will provide assembly-language programmers with such specifics as
register conventions, parameter-passing techniques, and memory layouts
used by the conmpiler for different types of arrays and structures.
* It cen be used to trein new systems softwere programmers on the existing
internals of the system.
Contents

Lisa Development Software Documentation: A Road Map
Pascal Compi ler Directives
Pascal Code-Cruncher's Handbook
The Last Whole Earth Text File Format
Pascal's Packing Algorithm
PASLIB Procedure Interface
PPaslibC Unit: Privileged PASLIB Calls
Execution Environment of the Pascal Compiler
Intrinsic Units Mechanism (overview)
IUManager (old and "spring release" versions)
Object Fi Ie Formats
Inbterface to OBJIOLIB
Format of .SYMBOLS File
Shell-Writer's Guide




17/~. L
Lisa Development Software
Documentation:
A Road Map

Irtroduction
Thh roed map was designed to help you to rind your w~ around the verious
documents describing program development for the Lisa. It will help you decide
which software you need to learn more about, which software you can ignore for the
moment, and how you should proceed in stuctying the rest of the technical
documentation.

General CWerview cI the Erwirormertl Available
lhere are 8., many way~ of writing programs as t.here are creative programmers.
However, Apple supports only three general $tyles of programs that you can Yflite for
the Lhe.: those written for 1) the Workshop environment, 2) the QuickPort
environment, and 3) the ToolKit erwironment. Programs written tor eny of these
environments can use most of the. same units and libraries, but there ere lome
important differences of which you should be ewere.
The Workshop (Figure 1) provides e simple non-window, character and graphic
environment within which 8 program may run. Programs written to run in thi$
environment me)' use Pascal's built-in 110 for both fUes end textual display to the -
console', terminal emulatta", or they may directly utilize the Lisa OS's file SY$tem
primitives. They may elso use the QulckDraw unit for drawing bitmap graphics end
displaying text in e. variety of fonts wit.h variou$ attribute" and may utilize e. veriet~,
of other useful librery routines. These programs are not able to use the Lhe Desktop
libraries dealing with windows, menus, and dialog boxes, nor do they have easy Elccess
to Lha Office Systern document,.

In addition to providing these run-time facilities, the Workshop eho includes 8
command shell which make, available to users an extensive set or facilities for: 1)
Interactive program development in Pascal, Assembly, BASIC, and COEl1L; 2) File and
device manipulation; end 3) Interactive and batch program execution and control.
QuickPort (Figure 2) provides the simplest Desktop erwironment, at least from the
programmer', viewpoint. In most respects, writing a program for the QuickPort
environment it identical to writing one for t.he Work,hop environment. Uting Pascal' ~
bu11t-in 110 facUities, programs written for QulckPort may do t.extuel display t.o 8
variety of window-based t.erminal emulators, end may also dbplay graphics using
QulckOraw. These programs do not directly ute the Lisa Desktop libraries, and ere, in
fact, unaware of such things a, the window eN/ironment, the mouse, and menul. They




14-'ebrutr1)l-84 Road Nap-I
Internals II Confident i 81

may, however ex change information with Lisa Office System documents via the
I

Cut/Paste mechanism.
The ToolKit (Figure 3) provides the most complete acceu to the Desktop tacilitiei.
Frorr. the programmer's viewpoint, it. also requires the most knowledge of these
f'acilitie$. Programs \lJJ'itten using the --1oo1Kit use the Generic Application and may
use 8ny of the toolKit building blocks, which provide easy, controlled accen to t~le
Lisa Desktop libraries, the mouse, and menus. They may also exchange information
with Lisa Office System document' vie. the Cut/Paste mechanism.

(Nerview cI the Pieces
QuicItPa1 is a set or units that are USEd and linked with a program which it to be
run in the Desktop environment. QuickPort then provides the prograrn with 8.