💾 Archived View for mirrors.apple2.org.za › archive › apple.cabi.net › FAQs.and.INFO › GSOS › expres… captured on 2023-03-20 at 22:50:02.

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

Newsgroups: comp.sys.apple2.programmer
Path: news.weeg.uiowa.edu!news.uiowa.edu!hobbes.physics.uiowa.edu!math.ohio-state.edu!howland.reston.ans.net!pipex!sunic!EU.net!uunet!comp.vuw.ac.nz!actrix.gen.nz!dempson
From: dempson@actrix.gen.nz (David Empson)
Subject: Re: ExpressLoad segment format
Message-ID: <CqywxE.wn@actrix.gen.nz>
Organization: Actrix Information Exchange
References: <2smpt4$17s@schema.fiu.edu> <2sms6g$er0@tuba.cit.cornell.edu> <2snnq9$chj@schema.fiu.edu> <2sp00b$sdn@tuba.cit.cornell.edu>
Date: Mon, 6 Jun 1994 08:58:25 GMT
Lines: 82

In article <2sp00b$sdn@tuba.cit.cornell.edu>,
Jay Krell <jmk3@crux4.cit.cornell.edu> wrote:
>  >Really? I just ran dumpobj on an executable with an ~ExpressLoad
>  >segment and it was one LCONST record, 
>  
> Sorry for being incomplete. Do a disassembly with DumpObj,
> the -d option with Apple's DumpObj I think.

Yes, that does provide some information, in the form of comments to
each field.  It looks pretty complete in that it explains what is
present in the file.  It probably isn't enough to explain the data
format in general - there may be other records that aren't used in a
particular file, or some of the "reserved" fields may have special
functions.  It is also unclear how some of the fields are calculated
(e.g. the "displacement to names" field in the copy of the segment
header seems to be an unusual value).

From looking at a couple of files, the structure of the data in the
expressload segment seems to be:

long    reserved field (contains 0)
word    number of segments - 1
header entry table (one entry per segment):
    word    relative offset to segment header table entry
    word    flags (0 in all files I've looked at so far)
    long    handle (0, probably only used in memory)
segment number conversion table (one entry per segment):
    word    actual file segment number for original segment
segment header table (one entry per segment):
    long    file mark for this segment's LConst record
    long    number of bytes in this segment's LConst record
    long    file mark for this segment's relocation dictionary
    long    number of bytes in this segment's relocation dictionary
      (Note: following fields are copied or derived from the actual
      segment header) 
    byte    reserved
    byte    label length
    byte    number length
    byte    version
    long    banksize
    word    kind
    word    reserved
    long    org
    long    align
    byte    number sex
    byte    reserved
    word    segment number
    long    segment entry
    word    displacement to names
    variable  reserved
    byte    segment name length
    variable  segment name
    
The ~Expressload segment contains a single LConst record.  It is a
dynamic data segment.

The format of this segment is only the first part of the information:
the relocation records and LConsts in the program segments may contain
special information.  From a quick glance, I can't see anything unusual
- the relocation table appears to contain SUPER, cRELOC and cINTERSEG
records, as normal for a "compacted" file (OMF version 2).

Interesting - DumpOBJ got out of sync while I was trying to dump Finder.

> I wonder if the ExpressLoad docs are even on the Toolchest CD's.
> Anyone?

What is a "Toolchest" CD?  If you mean the Developer CDs, then it
might have been on an older one (e.g. around the time System 5.0 was
released), but there is nothing about ExpressLoad on the Feb 92 CD,
which is included on the System 6.0 Golden Master CD.

> (You mean ORCA 2.0 manual, right? There isn't an APW manual, is there?
> What sort of manual comes with the APW Tools/Interfaces?)

APW Tools & Interfaces 1.1 included extracts from the APW 2.0 manual -
the chapters on the resource compiler, linker, and the appropriate
utilities.  The full APW 2.0 manual was never released (nor was APW 2.0).
-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand