in article
5504a2c3-64f6-4841...@googlegroups.com, mdj at
mdj...@gmail.com wrote on 2/10/14 6:15 PM:
>
> I've often heard tales of the Appleworks Segment Manager, but I'm not aware of
> any documentation of its technical details. Could somebody supply a
> description ?
Matt:
A masterfully detailed description of the AppleWorks 5.1 Segment Manager was
written by Christian Serreau in Issue #2 of Howard Katz's "The AppleWorks
Gazette" (TAG) in 1996.
He detailed virtually _everything_, and even included old school flowcharts
explaining the logic involved (used mousetext).
Several years ago I approached Howard about releasing the (4) issues of TAG,
but never really got a 'yes' answer from him, so the status is ??.
Fortunately, an abbreviated version of Serreau's article 'Inside AppleWorks:
AppleWorks Segments' is available for download in the 'sample issue' of TAG
that Howard did release. It is here:
<
http://www.wbwip.com/tag/tagsamp.hqx>
I believe it to be 'fair use' to include Chris' intro here:
BEGIN QUOTE
' From the start, AppleWorks has been too large a program for the Apple //
"main" memory. The author had to cut it into "segments", that are called to
main memory only when needed. Of course, the subprogram that calls segments
must always be in main memory.
Early versions of AppleWorks had 40 segments (with room for 43), stored in
files "M0" and "M1". The most recent version, AppleWorks 5.1, has as many as
46 segments (and room for only one more). These are stored in files
SEG.AW,
SEG.DB, SEG.DR,
SEG.SN, SEG.SS, and SEG.WP.
When AppleWorks 3.0 was designed, the principle of two program files (SEG.M0
and SEG.M1), which had been used since the very first version of the
program, was changed; subprograms for desktop tasks, the data base, the
spreadsheet, and the word processor were stored in separate files, named
SEG.AW, SEG.DB, SEG.SS, and SEG.WP, respectively. Each of these files
contains a "main" program in the first segment, and the other segments in
the file are used for specific tasks. '
END QUOTE
Alternatively, if you crave something like only Bob Sander-Cederlof can
deliver, here is his disassembly and explanation of the AppleWorks 1.3
'Application Overlay Manager' from the March 1988 Apple Assembly Line :
<
http://www.txbobsc.com/aal/1988/aal8803.html#a1>
Finally, if you aren't already sorry that you asked, this is from the
AppleWorks 3.0 Entry Points Documentation by Claris Corporation (1989).
AppleWorks Host
10FA JMP CallSeg ;
CallSeg
Routine to load segments, which comes in handy. It keeps track of which Main
is in, and whether or not Organizer is in. As segments are loaded from
disk, it tries to store a copy in bank-switched. If still in bank-switched
at the next call of this seg, then the copy will come from bank-switched.
Reads segments 1-43 from several seg.xx files. Location is a series of
three byte pointers at the beginning of seg.xx.
LDA #SegmentNumber
JSR CallSeg
--------------------------------------------------------------------
Now back to your regularly scheduled program ...
Hugh Hood