[net.sources.mac] ETHZ Modula-2 Standalone System

bobc@tikal.UUCP (Bob Campbell) (05/08/86)

I have had several "Yes" votes and some inquiries regarding the
system.  I need to make it clear that I have not received any thing
new as far as the compiler goes.  I have the same compiler that
everyone else has.  The only thing that I do have is a new set of
libraries which I have written/decoded my self based on disassember
output of .LNK files.  The system still does not support PROCESSES
because I have not explored turning off the Macintosh Stack Sniffer
yet.

Terminal, InOut, MathLib2 may not conform to what is expected as I
have four sources of Modula-2 Information and each one has some
slighty differant versions of these.  MathLib2 differs and some of the
log functions did not appear to be directly implemented in the SANE
package.

The SYSTEMX module has been modified to not use A5 as the PROCESS
Block Pointer, as well as using the SANE package to support floating
point.  HALT is a call to the Debugger Trap, which causes a
"unimplemented trap" error when it is called with out the debugger.

None of the trap routines can handle zero length strings which is a
implenentation feature on my part which allows desk accessory names
which start with 0C.  Strings are either null terminated (0C) or the
length of the string array (Which ever comes first).

Above all if you don't like the way I have implemented something you
can change it.  If you do change things I would like to hear about it
maybe the changes are things which should be included for others to
use.

Most of the NOT IN ROM routines have been implemented (if the
discription of them in Inside-Macintosh is clear on how to implement
them).  Many of the global variables which can only be referance via
supplied routines can be directly addressed in Modula-2.

There are some special new variant fields in the EventRecord to make
life easier.  Code will run better if you use the BITSET field of the
modifiers, as well as the field for CharacterCode.

There are many other things to tell about, and I will think of them
later I am sure.  I have desides to start by posting the source, in
ten parts of less then 32K each (4 shar files of defintion modules,
and 6 shar files of implementation modules) followed by a binhex
packit I file of the NewLoader (with source).  I have choosen shar as
it is something I hope everyone can handle, I would have choosen
fpack, but the last time someone suggested using fpack for textfiles
lots of people complained (anyway fpack is what I use for transfering
source from the mac to our pyramid).

As you receive the files you can start compiling them in the order in
the dependancy list (see below).  Once you get all the modules
compiled you can create and run programs which do not require
resources (the standalone loader is required to make that work
correctly).

Enjoy

Bob Campbell
{fluke,dataio,uw-beaver}!tikal!bobc
Teltone Corp.
P.O. Box 657
Kirkland, WA 98033
(206) 827-9626 X557

Depends:

***	This is the list of dependances in the definition modules.
*** It is recommended to compile all of the definition modules
*** first as many of the implementation modules depend on modules
*** other then those in the definition module.

PascalStrings
MacSYSTEM
MathLib0
MathLib1
Storage
Conversions
Terminal
InOut
MemoryManager
	->	MacSYSTEM
IUPackage
	->	MacSYSTEM
BDPackage
	->	MacSYSTEM
ResourceManager
	->	MacSYSTEM
ScrapManager
	->	MacSYSTEM
	->	ResourceManager
QuickDraw
	->	MacSYSTEM
Cursors
	->	QuickDraw
Pictures
	->	QuickDraw
Regions
	->	QuickDraw
EventManager
	->	MacSYSTEM
	->	QuickDraw
FileTypes
	->	MacSYSTEM
	->	QuickDraw
Streams
	->	MacSYSTEM
	->	FileTypes
FontManager
	->	MacSYSTEM
	->	QuickDraw
TextEdit
	->	MacSYSTEM
	->	QuickDraw
Toolbox
	->	MacSYSTEM
	->	QuickDraw
MenuManager
	->	MacSYSTEM
	->	QuickDraw
	->	ResourceManager
WindowManager
	->	MacSYSTEM
	->	QuickDraw
	->	EventManager
DeskManager
	->	MacSYSTEM
	->	EventManager
	->	WindowManager
ControlManager
	->	MacSYSTEM
	->	QuickDraw
	->	WindowManager
DialogManager
	->	QuickDraw
	->	MacSYSTEM
	->	WindowManager
	->	TextEdit
	->	EventManager
FileManager
	->	MacSYSTEM
	->	QuickDraw
	->	FileTypes
SFPackage
	->	QuickDraw
	->	FileTypes
	->	DialogManager

*** This is the list of dependances in the implementation modules
*** At last attempt it took about 1 hour to compile all of these
*** Files.  There is no required order of compliation execpt that
*** the defintion modules referanced must be compiled first.
***	March 9, 1986

Conversions
PascalStrings
MacSYSTEM
MathLib0
MathLib1
Storage
FileTypes
Terminal
	->	MacSYSTEM
	->	QuickDraw
	->	Regions
	->	WindowManager
	->	FontManager
	->	EventManager
Streams
	->	MacSYSTEM
	->	FileTypes
	->	PascalStrings
	->	QuickDraw
	->	Storage
InOut
	->	MacSYSTEM
	->	QuickDraw
	->	Terminal
	->	FileManager
	->	SFPackage
	->	Conversions
MemoryManager
	->	MacSYSTEM
IUPackage
	->	MacSYSTEM
	->	PascalStrings
BDPackage
	->	MacSYSTEM
	->	PascalStrings
ResourceManager
	->	MacSYSTEM
	->	PascalStrings
ScrapManager
	->	MacSYSTEM
	->	QuickDraw
	->	ResourceManager
QuickDraw
	->	MacSYSTEM
	->	PascalStrings
Cursors
	->	MacSYSTEM
	->	QuickDraw
Pictures
	->	QuickDraw
Regions
	->	MacSYSTEM
	->	PascalStrings
	->	QuickDraw
FontManager
	->	MacSYSTEM
	->	PascalStrings
Toolbox
	->	MacSYSTEM
	->	PascalStrings
	->	QuickDraw
MenuManager
	->	MacSYSTEM
	->	PascalStrings
	->	QuickDraw
	->	ResourceManager
	->	WindowManager
EventManager
	->	MacSYSTEM
	->	QuickDraw
WindowManager
	->	MacSYSTEM
	->	FontManager
	->	QuickDraw
	->	EventManager
	->	Pictures
	->	PascalStrings
TextEdit
	->	MacSYSTEM
	->	QuickDraw
DeskManager
	->	MacSYSTEM
	->	EventManager
	->	WindowManager
ControlManager
	->	MacSYSTEM
	->	QuickDraw
	->	WindowManager
	->	PascalStrings
DialogManager
	->	QuickDraw
	->	MacSYSTEM
	->	WindowManager
	->	TextEdit
	->	EventManager
	->	PascalStrings
FileManager
	->	MacSYSTEM
	->	PascalStrings
	->	Storage
SFPackage
	->	QuickDraw
	->	MacSYSTEM
	->	FileManager
	->	PascalStrings