DOMUS/Reloc-Bin format
< DOMUS
Supplement to:
RCSL-42-I-833 DOMAC - Domus macro assembler users guide Appendix C & D
Segment Size Block
Programs and Objects using "high memory", all we have seen so far are MUSIL programs, include a "9" block right after the title block, to inform the loader/linker how much space will be needed in the high segment.
Word no.: 0 000011₈ 1 word count = -3 2 000000₈ 3 000000₈ 4 000000₈ 5 checksum 6 Probably: size of .ZREL segment Only value seen is 177777₈ 7 Optional size of .NREL segment Often seen as 177777₈ 8 Size of high memory segment.
Words relocated relative to the high segment uses relocation bits '111', and we have chosen to mark them with an asterix '*'.
Normal External Block (.EXTN)
The description in Appendix C shows "address of last reference".
All locations using the a particular .EXTN symbol form a linked list, terminated with the sentenniel 177777₈ and the head is recorded in the "address of last reference" field of the .EXTN record.
For instance this source code:
.EXTN FOO .ZREL B: 1 FOO 2 FOO 3 FOO 4 FOO 5 B*2 .NREL C: FOO .END B
Results in these records:
07 00 fd ff .REC 7d, -3d, 00000o, 00000o, 00000o 00 00 00 00 .TITL 0x0000⁰, .MAIN 02 00 f5 ff .REC 2d, -11d, 41114o, 14141o, 50000o 98 84 c2 30 .DATA 0x0000- = 0x0001␣ 00 a0 98 aa .DATA 0x0001- = 0xffff␣ 00 00 01 00 .DATA 0x0002- = 0x0002␣ ff ff 02 00 .DATA 0x0003- = 0x0001- 01 00 03 00 .DATA 0x0004- = 0x0003␣ 03 00 04 00 .DATA 0x0005- = 0x0003- 05 00 05 00 .DATA 0x0006- = 0x0004␣ 00 00 .DATA 0x0007- = 0x0005- .DATA 0x0008- = 0x0005␣ .DATA 0x0009- = 0x0000= 02 00 fe ff .REC 2d, -2d, 24000o, 00000o, 00000o 00 50 00 00 .DATA 0x0000' = 0x0007- 05 00 fd ff .REC 5d, -3d, 20000o, 00000o, 00000o 00 40 00 00 .EXTN 0x0000', FOO 06 00 ff ff .REC 6d, -1d, 40000o, 00000o, 00000o 00 80 00 00 .END 0x0000-
In this case the singly linked list is:
.EXTN points to 0x0000' 0x0000' points to 0x0007- 0x0007- points to 0x0005- 0x0005- points to 0x0003- 0x0003- points to 0x0001- 0x0001- has the sentenniel 0xffff␣