INTEGER FUNCTION IALLOC(SIZE) INTEGER SIZE INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 IF((RT(INTL(SIZE),16)+RT(INTL(NEXTI0),16).LE.65530))GOTO 10000 CALL PANIC('out of instr storage memory*n.') 10000 IALLOC=NEXTI0 NEXTI0=NEXTI0+(SIZE) RETURN END INTEGER FUNCTION TALLOC(SIZE) INTEGER SIZE INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 IF((RT(INTL(SIZE),16)+RT(INTL(NEXTT0),16).LE.INTL(65000)))GOTO * 10001 CALL PANIC('out of tree storage memory*n.') 10001 TALLOC=NEXTT0 NEXTT0=NEXTT0+(SIZE) RETURN END SUBROUTINE CLEAT0 INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 NEXTI0=1 RETURN END SUBROUTINE CLEAZ0 INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0 INTEGER SMEMA0(32767) INTEGER BREAL0(10),CONTJ0(10) INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0 INTEGER RTRID0(31) INTEGER EMITP0,EMITO0 COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0 COMMON /VCGCM1/IMEMA0 COMMON /VCGCM2/TMEMA0 COMMON /VCGCM3/SMEMA0 INTEGER STRSA0 NEXTS0=1 RETURN END SUBROUTINE CLEBA0 INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 NEXTT0=1 RETURN END SUBROUTINE IFREE(NODE) INTEGER NODE RETURN END SUBROUTINE TFREE(NODE) INTEGER NODE RETURN END INTEGER FUNCTION STRSA0(STR) INTEGER STR(1) INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0 INTEGER SMEMA0(32767) INTEGER BREAL0(10),CONTJ0(10) INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0 INTEGER RTRID0(31) INTEGER EMITP0,EMITO0 COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0 COMMON /VCGCM1/IMEMA0 COMMON /VCGCM2/TMEMA0 COMMON /VCGCM3/SMEMA0 INTEGER LEN INTEGER LENGTH LEN=LENGTH(STR) IF((NEXTS0+LEN+1.LE.32767))GOTO 10002 CALL PANIC('out of string storage memory*n.') 10002 CALL SCOPY(STR,1,SMEMA0,NEXTS0) STRSA0=NEXTS0 NEXTS0=NEXTS0+(LEN+1) RETURN END SUBROUTINE CLEAX0 INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER I I=1 GOTO 10005 10003 I=I+(1) 10005 IF((I.GT.43))GOTO 10004 OMEMA0(I)=0 GOTO 10003 10004 OFREE0=0 ONEXT0=43+1 RETURN END SUBROUTINE ENTEV0(OBJ,AD) INTEGER OBJ,AD(5) INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER LOC,PRED INTEGER I INTEGER MEM$01 IF((MEM$01(OBJ,LOC,PRED).NE.0))GOTO 10006 IF((OFREE0.EQ.0))GOTO 10007 LOC=OFREE0 OFREE0=OMEMA0(OFREE0) GOTO 10008 10007 IF((ONEXT0+2+5.LE.32767))GOTO 10009 CALL PANIC('enter_obj: out of space*nincrease MAX_OBJ_MEMORY * in vcg_def@.i*n.') 10009 LOC=ONEXT0 ONEXT0=ONEXT0+(2+5) 10008 OMEMA0(LOC)=0 OMEMA0(LOC+1)=OBJ OMEMA0(PRED)=LOC 10006 LOC=LOC+(2) I=1 GOTO 10012 10010 I=I+(1) LOC=LOC+(1) 10012 IF((I.GT.5))GOTO 10011 OMEMA0(LOC)=AD(I) GOTO 10010 10011 RETURN END INTEGER FUNCTION MEM$01(OBJ,LOC,PRED) INTEGER OBJ INTEGER LOC,PRED INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 PRED=MOD(IABS(OBJ),43)+1 LOC=OMEMA0(PRED) 10013 IF((LOC.EQ.0))GOTO 10014 IF((OMEMA0(LOC+1).EQ.OBJ))GOTO 10014 PRED=LOC LOC=OMEMA0(LOC) GOTO 10013 10014 IF((LOC.NE.0))GOTO 10015 MEM$01=0 RETURN 10015 MEM$01=1 RETURN END INTEGER FUNCTION LOOKX0(OBJ,AD) INTEGER OBJ,AD(5) INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER I INTEGER MEM$01 INTEGER LOC,PRED IF((MEM$01(OBJ,LOC,PRED).NE.0))GOTO 10016 LOOKX0=0 RETURN 10016 LOC=LOC+(2) I=1 GOTO 10019 10017 I=I+(1) LOC=LOC+(1) 10019 IF((I.GT.5))GOTO 10018 AD(I)=OMEMA0(LOC) GOTO 10017 10018 LOOKX0=1 RETURN END SUBROUTINE DELEW0(OBJ) INTEGER OBJ INTEGER NEXTI0 INTEGER NEXTT0 INTEGER NEXTS0 INTEGER OMEMA0(32767) INTEGER OFREE0,ONEXT0 COMMON /MEMCOM/NEXTI0,NEXTT0,NEXTS0,OMEMA0,OFREE0,ONEXT0 INTEGER MEM$01 INTEGER LOC,PRED IF((MEM$01(OBJ,LOC,PRED).NE.1))GOTO 10020 OMEMA0(PRED)=OMEMA0(LOC) OMEMA0(LOC)=OFREE0 OFREE0=LOC 10020 RETURN END C ---- Long Name Map ---- C loadcompl loadj0 C loadxoraa loafg0 C deletelit delev0 C enterent enter0 C flowfield flowf0 C geniplabel genip0 C genlabel genla0 C loaddiv loadq0 C loadlshiftaa loaea0 C loadpredec loael0 C otg$aentpb otg$a0 C Imem imema0 C loadrem loaep0 C putmoduleheader putmo0 C enterlit enteu0 C generatestaticstuff geneu0 C loadchecklower loadg0 C loaddefinestat loado0 C loadreturn loaer0 C setupswitch setuq0 C gengeneric genge0 C linksize links0 C loadandaa loadd0 C loadobject loaeh0 C loadproccall loaen0 C loadrefto loaeo0 C lookupext looku0 C Onext onext0 C alloctemp alloc0 C loadcheckupper loadi0 C loadwhileloop loafe0 C geniprtr geniq0 C loadrshiftaa loaet0 C loadseq loaex0 C voidswitch voidt0 C Omem omema0 C initializelabels initi0 C loadsub loafa0 C clearobj cleax0 C deleteext delet0 C loadundefinedynm loafd0 C reachindex reack0 C simplify simpl0 C stfield stfie0 C Nexts nexts0 C lfieldmask lfiel0 C loadoraa loaei0 C otg$dac otg$e0 C otg$mref otg$m0 C putmoduletrailer putmp0 C resolveent resol0 C Nextt nextt0 C clearstack cleay0 C enterext entes0 C lshiftaby lshif0 C putstartdata putst0 C Smem smema0 C loadconst loadk0 C loadmul loaeb0 C loadpostinc loaek0 C otg$ecb otg$g0 C putbranch putbr0 C resolvelit reson0 C voidfieldasgop voidf0 C Tmem tmema0 C EmitPMA emitp0 C flowswitch flowv0 C loadconvert loadl0 C loadforloop loadv0 C loadsand loaev0 C optimize optim0 C rsvstack rsvst0 C voidaddaa voida0 C gettree gettr0 C loadselect loaew0 C lookuplab lookv0 C otg$endlb otg$h0 C otg$rentlb otg$r0 C loadnot loaef0 C loadpreinc loaem0 C otg$rorglb otg$t0 C loadlabel loady0 C voidpostdec voidp0 C framecom frame0 C generateprocedures genet0 C genswitch gensw0 C loaddeclarestat loadm0 C otglabel otgla0 C reachobject reacl0 C rshiftaby rshif0 C Breaksp break0 C Stream1 strea0 C deletelab deleu0 C getlitaddr getli0 C loadadd loada0 C loadcheckrange loadh0 C loadsor loaez0 C otg$endpb otg$i0 C Stream2 streb0 C gencopy genco0 C loadassign loade0 C reachseq reacn0 C Ofree ofree0 C Stream3 strec0 C enterlab entet0 C generateproc genes0 C initshfttableids inits0 C loadfield loadt0 C otg$proc otg$p0 C otgmisc otgmi0 C resolveext resom0 C warning warni0 C Breakstack breal0 C clearent clear0 C loadbreak loadf0 C loaddivaa loadr0 C loadderef loadp0 C loadremaa loaeq0 C loadrtrip loaeu0 C lshiftlby lshig0 C otg$brnch otg$d0 C stacksize stack0 C Continuesp conti0 C andawith andaw0 C clearlit cleaw0 C gensjtolab gensk0 C loadxor loaff0 C overlap overl0 C genbranch genbr0 C loadlshift loadz0 C reachconst reaci0 C Rtrids rtrid0 C voidseq voids0 C Continuestack contj0 C getextaddr getex0 C lookupobj lookx0 C otg$rorg otg$s0 C reachselect reacm0 C arshiftaby arshi0 C getlabeladdr getla0 C loaddoloop loads0 C otg$blk otg$c0 C initotg inito0 C loadand loadc0 C loadsubaa loafb0 C otg$gen otg$l0 C rshiftlby rshig0 C gendata genda0 C ldfield ldfie0 C loadshiftins loaey0 C Errors error0 C deleteobj delew0 C loadrshift loaes0 C otg$entlb otg$j0 C voidpostinc voidq0 C EmitObj emito0 C clearext cleas0 C flfield flfie0 C flowseq flowt0 C freetemp freet0 C genshift gensh0 C otg$orglb otg$o0 C otgpseudo otgps0 C reachassign reach0 C enterobj entev0 C loadgoto loadw0 C loadmulaa loaec0 C loadswitch loafc0 C putlabel putla0 C gensjforward gensj0 C mklabel mklab0 C setupframeowner setup0 C voidpreinc voidr0 C Outfile outfi0 C andlwith andlw0 C loadnull loaeg0 C otg$entpb otg$k0 C reachderef reacj0 C Infile infil0 C loadneg loaed0 C putmisc putmi0 C otg$apins otg$b0 C putgeneric putge0 C clearinstr cleat0 C clearlink cleav0 C flowconvert flowc0 C flowsand flows0 C loadfieldasgop loadu0 C otg$data otg$f0 C otg$xtip otg$x0 C putinstr putin0 C voidassign voidb0 C adequal adequ0 C arshiftlby arshj0 C loadaddaa loadb0 C loadnext loaee0 C ophasvalue ophas0 C strsave strsa0 C clearstr cleaz0 C cleartree cleba0 C flownot flown0 C otg$rslv otg$u0 C rsvlink rsvli0 C zerolit zerol0 C clearlab cleau0 C freestack frees0 C genextrtr genex0 C loadindex loadx0 C lookuplit lookw0 C otgbranch otgbr0 C loadpostdec loaej0 C otg$uii otg$v0 C afieldmask afiel0 C flowsor flowu0 C generateentries gener0 C loaddefinedynm loadn0 C Nexti nexti0