[comp.sys.apple2] development of system software and tools...

bh1e+@andrew.cmu.edu (Brendan Gallagher Hoar) (08/13/90)

To all the people at apple (and those who know):

How are the tools and system software for the GS developed?  



For example, do the developers automate the patching process?  When a
tool is changed, does the assembler automatically set up a new jump
table in which some of the jumps are to the ROMs and some are to the
loaded tools, or does someone have to hand adjust all this?

dlyons@Apple.COM (David A. Lyons) (08/13/90)

In article <QalOa3m00WB4Q2XEBM@andrew.cmu.edu> bh1e+@andrew.cmu.edu (Brendan Gallagher Hoar) writes:
[...]
>How are the tools and system software for the GS developed?  
>
>For example, do the developers automate the patching process?  When a
>tool is changed, does the assembler automatically set up a new jump
>table in which some of the jumps are to the ROMs and some are to the
>loaded tools, or does someone have to hand adjust all this?

It's much nicer than that.  Application authorshardly ever patch toolbox
calls.  The System Software patches the toolbox, and many nifty utilities
do.

Toolbox calls are always made by loading the X register with a function
number (like $0902 for NewHandle) and then JSLing to $E10000 or $E10004.
This gives control to the Tool Dispatcher, which looks in some tables to
find the right address for the requested function.

So the System Software just needs to change some tables when you boot.
The application doesn't know or care which functions are in ROM, which
are in RAM, which are in ROM but replaced by RAM versions, etc.

-- 
David A. Lyons, Apple Computer, Inc.      |   DAL Systems
Apple II Developer Technical Support      |   P.O. Box 875
America Online: Dave Lyons                |   Cupertino, CA 95015-0875
GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons
   
My opinions are my own, not Apple's.

bh1e+@andrew.cmu.edu (Brendan Gallagher Hoar) (08/19/90)

No, Dave, I meant the Systems developers

A long long time ago in an article far far away dlyons@Apple.COM (David
A. Lyons) writes:


In article <QalOa3m00WB4Q2XEBM@andrew.cmu.edu> bh1e+@andrew.cmu.edu (Brendan G\
allagher Hoar) writes:
[...]
>How are the tools and system software for the GS developed?  
>
>For example, do the developers automate the patching process?  When a
>tool is changed, does the assembler automatically set up a new jump
>table in which some of the jumps are to the ROMs and some are to the
>loaded tools, or does someone have to hand adjust all this?

It's much nicer than that.  Application authorshardly ever patch toolbox
calls.  The System Software patches the toolbox, and many nifty utilities
do.

Toolbox calls are always made by loading the X register with a function
number (like $0902 for NewHandle) and then JSLing to $E10000 or $E10004.
This gives control to the Tool Dispatcher, which looks in some tables to
find the right address for the requested function.

So the System Software just needs to change some tables when you boot.
The application doesn't know or care which functions are in ROM, which
are in RAM, which are in ROM but replaced by RAM versions, etc.

----------

I mean Systems developers...

developing the tools and system and all...

dlyons@Apple.COM (David A. Lyons) (08/19/90)

In article <AanLcFi00WB24E9NJ_@andrew.cmu.edu> bh1e+@andrew.cmu.edu (Brendan Gallagher Hoar) writes:
>How are the tools and system software for the GS developed?  
>
>For example, do the developers automate the patching process?  When a
>tool is changed, does the assembler automatically set up a new jump
>table in which some of the jumps are to the ROMs and some are to the
>loaded tools, or does someone have to hand adjust all this?
>[...]
>I mean Systems developers...
>
>developing the tools and system and all...

Oh, okay...I answered the wrong question the first time.

The assembler is just an assembler--it doesn't have special features to
support tool patching.  In the source for TS2 and TS3 there are address
tables where some of the entries are labels elsewhere in the code, and
the rest are addresses in ROM.  So I guess the answer to your original
question is Yes, it has to be done "by hand" in some sense--I'm not sure
what alternative you're suggesting.
-- 
David A. Lyons, Apple Computer, Inc.      |   DAL Systems
Apple II Developer Technical Support      |   P.O. Box 875
America Online: Dave Lyons                |   Cupertino, CA 95015-0875
GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons
   
My opinions are my own, not Apple's.