-- file: WeaveXref.mesa -- Pascal-to-Mesa translator output, translated at September 23, 1986 1:27:38 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; WeaveXref: PROGRAM IMPORTS PascalWizardFiles, WeaveProcs, WeaveVars EXPORTS WeaveProcs = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; NewXref: PROCEDURE[P: NamePointer] = BEGIN Q:XrefNumber;M, N:SixteenBits; {IF(( INT[Ilk^[P]]>3)OR ( INT[ByteStart^[P]]+1=ByteStart^[P+2]))AND (XrefSwitch=0 ) THEN GOTO Label10;M_ModuleCount+XrefSwitch;XrefSwitch_0;Q_Xref^[P]; IF INT[Q]>0 THEN BEGIN N_Xmem^[Q].NumField; IF(N=M)OR (N= INT[M]+10240) THEN GOTO Label10 ELSE IF M= INT[N]+10240 THEN BEGIN Xmem^[Q]. NumField_M; GOTO Label10; END; END; IF XrefPtr=MaxRefs THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "cross reference"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]}; Error[];History_3;JumpOut[]; END ELSE BEGIN XrefPtr_XrefPtr+1; Xmem^[XrefPtr].NumField_M; END;Xmem^[XrefPtr].XlinkField_Q; Xref^[P]_XrefPtr;EXITS Label10 => NULL}; END;--:51----52: NewModXref: PROCEDURE[P: NamePointer] = BEGIN Q, R:XrefNumber; Q_Xref^[P];R_0; IF INT[Q]>0 THEN BEGIN IF ModXrefSwitch=0 THEN WHILE INT[Xmem^[Q].NumField]>=10240 DO BEGIN R_Q;Q_Xmem^[Q].XlinkField; END ENDLOOP ELSE IF INT[Xmem^[Q].NumField]>=10240 THEN BEGIN R_Q; Q_Xmem^[Q].XlinkField; END; END; IF XrefPtr=MaxRefs THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "cross reference"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]}; Error[];History_3;JumpOut[]; END ELSE BEGIN XrefPtr_XrefPtr+1; Xmem^[XrefPtr].NumField_ModuleCount+ModXrefSwitch; END; Xmem^[XrefPtr].XlinkField_Q;ModXrefSwitch_0; IF R=0 THEN Xref^[P]_XrefPtr ELSE Xmem^[R].XlinkField_XrefPtr; END; END.