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.