[net.micro.cpm] .REL format

Boebert@HI-MULTICS.ARPA (12/21/84)

Does there exist a document (underground or otherwise) which describes
the internal form of .REL files?

Thanx, Earl (Boebert -at HI-Multics)

andrew@orca.UUCP (Andrew Klossner) (12/23/84)

	"Does there exist a document (underground or otherwise) which
	describes the internal form of .REL files?"

Look in the MACRO-80 manual, in the chapter which describes the loader.

  -- Andrew Klossner   (decvax!tektronix!orca!andrew)       [UUCP]
                       (orca!andrew.tektronix@csnet-relay)  [ARPA]

mpackard@uok.UUCP (01/01/85)

[]

This is the format for .REL files:

These files are bit-streams rather than byte-streams.

----------------------------------------------------------------------
| 1 | XX | XXXX | XX XXXXXXXXXXXXXXXX | XXX+CHARACTERS OF SYMBOL NAME|
----------------------------------------------------------------------
  ^   ^     ^            ^                        ^
  |   |     |            |                        |
Always 1    |            |                        |
      |     |          A Field                  B Field
      |     |                             Chars are 8 Bit ASCII
     00 - special link (see below)
     01 - program relative
     10 - data relative
     11 - common relative
            |
            |
Control Field:

The following special link items have a B field only

 0 - Entry Symbol (name for search)
 1 - Select COMMON block
 2 - Program name
 3 - Request library search
 4 - Reserved

The following special link items have both an A field and B field

 5 - Define COMMON size
 6 - Chain  external (A is head of address chain,  B is name  of 
     external
 7 - Define entry point (A is address B is name)
 8 - External offset. Used for JMP and CALL to externals

The following special link items have an A field only

 9 - External  + offset.  The A value will be added to  the  two 
     bytes  starting at the current location counter  immediately 
     before execution.
10 - Define the size of the Data area. (A is the size)
11 - Set the loading location counter to A
12 - Chain address.  A is the head of chain,  replace all entries 
     in  chain with current location counter.  The last entry  in 
     the chain has an address field of absolute zero.
13 - Define program size
14 - End of program (forces to byte boundary)

The following special link item has neither an A nor a B field

15 - End File

cem@intelca.UUCP (Chuck McManis) (01/02/85)

Yes, a description exists, it is not so underground as you might expect. It
is in an appendix of the MicroSoft Utilities Manual. Not wishing to get into
any copyright flak I suggest you get a copy of this manual from MicroSoft or
Intel Literature (408) 987-8080 (Order Number 121797-001, don't know the price)

--Chuck
-- 
                                            - - - D I S C L A I M E R - - - 
{ihnp4,fortune}!dual\                     All opinions expressed herein are my
        {qantel,idi}-> !intelca!cem       own and not those of my employer, my
 {ucbvax,hao}!hplabs/                     friends, or my avocado plant. :-}