----- CMSGUTS FORUM appended at 09:51:20 on 90/02/02 GMT (by XAVIER at PARIS) - Subject: Format of a CMS module Ref: append at 00:13:20 on 90/02/02 GMT (by WILBERTL at SJFEVMD) I don't remember having seen any documentation on CMS mdoules. But looking at LOADMOD/GENMOD (in DMSMOD ASSEMBLE), a module file has the following structure: a) RECFM=F then it is a transient module (only 1 record that contains the code) b) RECFM=V a module generated at x'20000' Record 1 = the module header (80 bytes) it is a copy of the loader information from NUCON 0.4 STRTADDR DC 1F'0' MODULE STARTING ADDRESS 4.4 FRSTLOC DC 1F'0' MODULE BEGINNING ADDRESS 8.4 LASTLOC DC 1F'0' MODULE ENDING ADDRESS C.4 LOCCNT DC 1F'0' LOADER LOCATION COUNTER 10.4 LDRADDR DC 1F'0' LOADER RETURN ADDRESS 14.4 LDRRTCD DC 1F'0' LOADER RETURN CODE 18.8 PSW DC 1D'0' USER'S STARTING PSW 20.4 LDRFLAGS DC 1F'0' LOADER FLAGS 24.4 PRHOLD DC 1F'0' PSEUDO REGISTER COUNTER 28.2 TBENT DC H'0' INITIALIZE TABLE ENTRIES TO * ZEROES 2C.1 UNRES DC X'00' 2D.1 MODFLGS DC 1X'00' MOD FLAGS ........... Some of it is meaningless.... Record 2 = the code itself (entry point STRTADDR) Record 3 = the code size = LASTLOC - FRSTLOC ............ Record n = (as many 65535 records as needed) Record n+1= the MAP (if GENMODed with the MAP option) TBENT = the number of map entries (0 if NOMAP) each entry has a length of 20 bytes Record n+2= the relocation information (option RLDSAVE on LOAD) each entry has a length of 4 bytes (5 bytes on CMS/XA) I have never seen modules where the MAP or RLDSAVE information span over multiple records. I don't know if this is possible.. Xavier. Paris Scientific Center