GET "CGHDR" LET START(PARMST) BE $( SELECTINPUT(FINDINPUT("CODE")) $( LET RELCON = 0 LET B1 = RD16() LET COUNT = RD16()*2 LET V = GETVEC(COUNT-1) SELECTOUTPUT(FINDOUTPUT("SYSPRINT")) WRITEF("LOADER PARMST IS %S *N", PARMST) FOR I = 1 TO GETBYTE(PARMST, 0) DO $( LET CH = GETBYTE(PARMST, I) IF CH='/' THEN BREAK RELCON := RELCON*16 + ('0'<=CH<='9'->CH-'0',CH-'A'+10) $) UNLESS B1=T.HUNK DO $( WRITEF("*NFIRST WORD IS %X4", B1) STOP(8) $) IF V=0 DO STOP(9) FOR I = 0 TO COUNT-1 DO V!I := RD8() B1 := RD16() IF B1=T.RELOCB & RELCON~=0 DO $( B1 := RD16() FOR I = 1 TO B1 DO $( LET J = RD16() LET VAL = ((V!(J+1))<<8) + V!J VAL := VAL + RELCON V!J := VAL&255 V!(J+1) := (VAL>>8)&255 $) $) SELECTOUTPUT(FINDOUTPUT("LOADF")) WRITEF("LOC%X4", RELCON) FOR I = 0 TO COUNT-1 DO $( IF (I REM 16)=0 DO WRITEF("*NOG%X4", I) WRITEHEX(V!I, 2) $) WRITES("*NSTOR*N") $) $) AND RD8() = VALOF $( LET VAL = READX() RESULTIS VAL*16 + READX() $) AND READX() = VALOF $( LET C = ? C := RDCH() REPEATWHILE C='*S' | C='*N' RESULTIS '0'<=C<='9' -> C-'0', C-'A'+10 $) AND RD16() = VALOF $( LET VAL = RD8() RESULTIS (RD8()<<8) | VAL $)