CALL ME OMOD10; #THIS IS FILE OMOD.I10 - FORMATS .REL FILE FOR IMP10 COMPILER.# BHEAD IS COMMON; SUBR IASSEM(N) IS (CHAN_OPENOUT(); OUTPUT(CHAN); BP_(BHEAD AND 777777B)+2; [BP]_4000001B; [BP+1]_0; [BP+2]_[BP+5]_RADI50(N); [BP+3]_6000001B; [BP+4]_0; SK_6); SUBR OUTBLK(NIL) IS (BHEAD[1]_(BHEAD AND 777777B)+SK+1; OUTPUT(CHAN); BP_(BHEAD AND 777777B)+2); SUBR HISEG(N) IS ([BP+SK]_3000001B; [BP+SK+1]_200000000000B; [BP+SK+2]_400000B+N LS 18; SK_SK+3); SUBR STADR(N) IS ([BP+SK]_7000001B; [BP+SK+1]_200000000000B; [BP+SK+2]_N; SK_SK+3); SUBR STCODE(N) IS (SB_0; AD_N); SUBR PUTS(N,A) IS (#FUDGE TO PUT TYPE 2 BLOCKS LAST# FNIT=0=>(FRELOT(SSS,'SYMBS',200,0); NSSS_0; FNIT_1); FADD(SSS,NSSS,N OR A LS 18); DPROP('COM',N)); SUBR PUTFUDG(N,A) IS ( SB=0 => (SB_040000000000B; SA_SK; [BP+SA]_2000000B; [BP+SA+1]_0; SK_SK+2); (FOO_DPROP('COM',N))=1 => (F_60B; V_A+400000000000B) ELSE (V_A; FOO=2=>F_4 ELSE F_10B); RN_RADI50(N); [BP+SK]_RN+(F LS 30); [BP+SK+1]_V; [BP+SA]_[BP+SA]+2; [BP+SA+1]_[BP+SA+1]+SB; (SK_SK+2)>123 => (OUTBLK(0); SB_SK_0) ELSE SB_SB RS 4; FOO); SUBR PUT(V,R) IS ( SB=0 => (SB_040000000000B; SA_SK; [BP+SA]_1000001B; [BP+SA+1]_200000000000B; [BP+SA+2]_AD; SK_SK+3); [BP+SK]_V; R=>[BP+SA+1]_[BP+SA+1] OR SB; [BP+SA]_[BP+SA]+1; AD_AD+1; (SK_SK+1)>123 => (OUTBLK(0); SB_SK_0) ELSE SB_SB RS 2; AD); SUBR EASSEM(N1,N2) IS ( SB_0; NSSS=>((J_FREE(SSS+I); PUTFUDG(J AND 777777B,J RS 18)) FOR I TO NSSS-1); N2 => ([BP+SK]_5000002B; [BP+SK+1]_240000000000B; [BP+SK+2]_N1; [BP+SK+3]_N2; SK_SK+4) ELSE ([BP+SK]_5000001B; [BP+SK+1]_200000000000B; [BP+SK+2]_N1; SK_SK+3); OUTBLK(0); CLOSE(CHAN,0); 0) %%%