Google
 

Trailing-Edge - PDP-10 Archives - k20v7c - subsys/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Sb@P C4@ `8
	..NAC==0		
	IRP A,<
	   .ACV1 (A)>		
@	.ACV3 (\..NAC)		`
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' [X%]OP%%IA	(A,B,ADD,SUB)(AC:$S@ >3q
	..TAGF (<JUMPN A,>,) C:$s@ ?3y
	..TAGF (<JUMPLE A,>,)C:$y' ?P3}
	..TAGF (<JUMPL A,>,) C:%C@ @P4
	..TAGF (<JUMPGE A,>,)C:%I' @4
	..TAGF (<JUMPG A,>,) C:%c@ >P3u
	..TAGF (<JUMPE A,>,) C:&' B4
	..TAGF B0(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G Bp4
	..TAGF C(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 2X#
	TXZ A,<^-<B>>TXZ A,C:'	' A4	
	..TAGF (<JXN A,B,>,)C:'G AP4
	..TAGF (<JXE A,B,>,)C:v:g <P3e
	TRNA
	..TAGF (JRST,)	C;< <3a
	..TAGF (JRST,)	..TAGF CO,,@ zp7k
	..TRR=={10		
	RADIX 8
	{0..NV==1			
	IRP {PA,<
	  .TRV1 ({pA)>		
	IFG ..NV-|5,<PRINTX ?TOO MA|0NY ARGUMENTS: A>|P
	JSP .A16,.ASSE|pT		
	RADIX ..TRR}		
	DEFINE ENDAS}0.<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= X,}X
	IFN FTSHOW,..LOC==.

0
DEFINE	WORD(NAM,PNUMB<1>),<
	IFN p<..MSK>,<..OFF==..OFF+1> 

	..MS0K==0		
	FIELDM(NPAM,<.FWORD>)	

p	..MSK==0		
	..OFF==..OFF+NUMB	
0
>

DEFINE	NXTPWRD(NUMB<1>),<
	p..MSK==0
	..OFF=..OFF+NUMB

>
0
DEFINE	FILLER(NPUM),<
	..FLG==POpS(..MSK)
	IFE ..MSK,<..FLG==-1>
0	IFG <^D<NUM>-<^DP35-..FLG>>,<PRINTpX ?FILL TOO BIG IN A STRUCTURE>
0	...MSK==MASK.(^DP<NUM>,<..FLG+^D<NpUM>>)
	IFN FTSHOW,<
	  PHASE ..O0FF
	  EXP ...MSKP
	>
	..MSK==..MpSK!...MSK
>



DEFINE	HWORD(n0am),<
	..FLG==0	P	
	IFE ..MSK&.LHpALF,<FIELDM(nam,.LHALF)
			  ..FL0G==1>
	IFE ..FLGP,<..MSK==..MSK!.LpHALF
		   IFE ..MSK&.RHALF,<FIELD0M(nam,.RHALF)
		P		     ..FLG==1>
		   IFE ..FLG,<NXTWRD
			      0FIELDM(nam,.LHALFP) >
		  >
>

p
DEFINE	FIELD(NAM,SIZ,POS),<
	..0FLG==0		

	IFB P<POS>,<IFB <SIZ>,p<
	  ...MSK==.RTMSK(<<^-<<..MSK>>0>>) 
	  IFE ...MPSK,<..OFF==..OFF+p1 
	    ..MSK==0		
	    ...MSK==0-1
	  >
	  FIELPDM(NAM,<...MSK>)	p
	..FLG==-1		
	>>

	IFNB <SI0Z>,<.SIZ==^D<SIZ>P> 

	IFNB <POS>p,<		
	  FIELDM(NAM,MASK.(.SIZ,POS0)) 
	  ..FLG==-1P		
	  ..BITS==MApSK.(.SIZ,POS) 
	 >

	IFE ..FLG,< 0IFGE <^D<.SIZ>-^D P36>,< 
	  WORD(N pAM,<^D<.SIZ>/^D36!>) 
	  IFN <<^D<!0.SIZ>-<^D<.SIZ>/^!PD36>*^D36>>,<	
	!p    FIELD(...,<<^"D<.SIZ>-<^D<.SIZ>"0/^D36>*^D36>>) 
"P	  >

	  ..FLG="p=-1		
	>>

	IF#E ..FLG,<		
	  .#0.BITS==MASK.(^D<.#PSIZ>,<^D<.SIZ>-1>#p) 

	  REPEAT <$^D36-^D<.SIZ>+1>,$0< 
	    IFE ..FL$PG,<	
	      IFE $p<..BITS&..MSK>,< %
			..MSK==..MSK%0!..BITS 
		..FLG%P==-1 
	       > %p

	    IFE ..FL&G,..BITS==..BITS_&0<-1> 
	    >
	 &P >

	IFE ..FLG,&p<		
	  ..BITS==M'ASK.(^D<.SIZ>,<^D'0<.SIZ>-1>) 
	  .'P.OFF==..OFF+1	
	'p  ..MSK==..BITS		(
	>

	MSKSTR((0A'NAM,\..OFFC,..(PBITS) 
	A.'NAM=(p=..OFF
	IFN FTSH)OW,<
	  PHASE	A)0.'NAM
	  EXP	A')PNAM
	>>

	..OL)pD==..BITS		
	...*OLD==..BITS		

*0>

DEFINE	BIT(N*PAM),<
	..BITS==L*pFTBT.(..OLD)	

+	IFE ..BITS,<PRIN+0TX ?NO ROOM FOR B+PIT IN LAST FIELD>+p

	A%'NAM==..B,ITS_<-<^D35-POS(.,0..OLD)>> 
	A.'N,PAM==..OFF		

	M,pSKSTR(A'NAM,\..O-FFC,..BITS) 
	I-0FN FTSHOW,<
	  P-PHASE ..OFF
	  EX-pP A'NAM
	>

	...OLD==..OLD&<^-<.0..BITS>> 

>
.P
DEFINE	FIELDM(NA.pM,MASK),<
	IFN M/ASK&..MSK,<	
	  /0..MSK==0		
	  ../POFF==..OFF+1
	>p

	..MSK==..MSK!0MASK	

	MSKSTR(00A'NAM,\..OFFC,M0PASK) 
	A.'NAM==0p..OFF
	IFN FTSHO1W,<
	  PHASE	A.10'NAM
	  EXP	A'N1PAM
	>
>

DEFI1pNE ENDSTR(LENNAM<2LEN>,LSTNAM<LST>)20,<

	IFN ..MSK,2P<..OFF==..OFF+1> 2p

	A.'LSTNAM==3..OFF	

	IFN FT30SHOW,DEPHASE

	3P..LOK==..LOK+1
	3pIFN ..LOK,<PRINTX4 ? MISSING BEGSTR40>

	IF2,<
	  I4PFDEF ...MSK,<SUPP4pRESS ...MSK>
	  5IFDEF ..BITS,<SUP50PRESS ..BITS>
	 5P IFDEF .SIZ,<SUPP5pRESS .SIZ>
	  IF6DEF ..MSK,<SUPPRE60SS ..MSK>
	  IFD6PEF ..OFF,<SUPPRES6pS ..OFF>
	  IFDE7F ..FLG,<SUPPRESS70 ..FLG>
	  IFDEF7P ..LOK,<SUPPRESS 7p..LOK>
	  IFDEF 8..LOC,<SUPPRESS .80.LOC>
	  IFDEF .8P.OLD,<SUPPRESS ..8pOLD>
	  IFDEF ..9.OLD,<SUPPRESS ..90.OLD>
	>

	IF19P,<
	  IFDEF ...M9pSK,<.XCREF ...MSK:>
	  IFDEF ..BIT:0S,<.XCREF ..BITS>:P
	  IFDEF .SIZ,<:p.XCREF .SIZ>
	  ;IFDEF ..MSK,<.XCR;0EF ..MSK>
	  IFD;PEF ..FLG,<.XCREF ;p..FLG>
	  IFDEF <..OFF,<.XCREF ..O<0FF>
	  IFDEF ..L<POK,<.XCREF ..LOK><p
	  IFDEF ..LOC,=<.XCREF ..LOC>
	=0  IFDEF ..OLD,<.X=PCREF ..OLD>
	  I=pFDEF ...OLD,<.XCR>EF ...OLD>
	>
>0
	PURGE WORD,NXTW>PRD,FILLER,HWORD,F>pIELD,BIT,FIELDM
?
	A.'LENNAM==..?0OFF-B
	IFN FTSH?POW,<RELOC ..LOC>>?p



	..MSK==0@		
	..OFF==B		
	A.D==B	

	@PIFDEF ..LOK,<IFL @p..LOK,<PRINTX ? NAEW BEGSTR WITHOUTA0 ENDSTR>>

	..LOK==-1


	..L?n(w0?;BEG
	  E2 ,:i
	..NA==0,0			
	IRP B,<
	,P  .BLCL2 B>		
	,pPUSH P,[..NA+1,,.-.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g 	p0W
	..SVBK	
		
	XMOVEI .A16,
0a	
	PUSH P,.A16
P
  DEFINE ENDBK.
p <
	RET			
a:!				
	.POPX>:!E3XG &P:Q	
	..TRR=&p=10		
	RADIX 8		'	
	..NA==2			
	'0IRP A,<
	  ..NA'P=..NA+1>		
	IRP 'pA,<
	  .BLSU1((A,\..NA)	
	  ..N(0A=..NA-1>
	..NV=(P=1			
	IRP B,<
	  .TRV1 (B)>		)
  DEFINE ENDBS.)0 <.ENBS1 <A>
		)P.ENSV1 <B>> 
	J)pSP .A16,.ENTER
	*..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' Zx5`0
W0.==A
W1.==B				;INIT[`IALIZE BREAK MASK\
W2.==C
W3.==D
==C
W3.==@5M0??0B,<
	?A0QAB (?E0    ..SEJZ UX5A	..V22==aUx
	..V1==a
	IFNVB <B>,<..V22==BV8>
REPEAT ..V22-<VXa>+1,<	
	%%W==.Vx.V1/^D32	
	%%X==W..V1-%%W*^D32	
	W8IFE C,BRKC1 \"<%WX%W+"0">	
	IFN CWx,BRKC2 \"<%%W+"0"X>
	..V1==..V1+1
		   >
.V1+1 XX5E	WA.==WA.!<1B<%%X>>
AEJ\4@ Y5K	WA.==WAY8.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: T5#
%%FOO==T8a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g \@5n
	BRINI. A\`,B,C,D	
	IRPC] E,<	UNBRK. "E"] >	
	IRPC F,<	BR]@KCH. "F">	
	EXP]` W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +G@ U8%+OP%%CA (A,B,)OP%%CA (AGD Xx%GOP%%CA (A,B,A)P%%CA (AGDP Vx%7OP%%CA (A,B,E)P%%CA (AGDp W8%;OP%%CA (A,B,G)P%%CA (AGDy  Wx%?OP%%CA (A,B,GE)%%CA (AGE@ Ux%/OP%%CA (A,B,L)P%%CA (AGEI  V8%3OP%%CA (A,B,LE)%%CA (AGE` X8%COP%%CA (A,B,N)P%%CA (AG?Z 
X m
	ASCIZ /
x
COPYRIGHTQ(c)MDT 
ALL RIGHTS RESERVED.
/TS RESERVI  \P-g
	..STR0 \p(.DECR0,,<A>,<B>)CR0,,<A>,<BI6= px'
	A==<-1qB<C>+1B<C-D>> q8
	IF1,<IFDEF %AqX,<PRINTX ?A ALREqxADY DEFINED>>
	DrEFINE %A (OP,AC,r8Y,MSK)<
	$A==<ZrX B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 ]X%mOP%%IN	(A,B,DIV)%IN	(AI<p 
00u
	..SVLD	
P		
a:!				
  D
pEFINE OD. <
b:!
	.POPX>			
P DEFINE LOOP. <
	JRST a>		
pDFINE TOP. <a>		
  DEFINE ENDLP0. <b>		
  DEFINPE EXIT. <
	JRST b>T. <
	JRST IKH1 :
..TMSK== ..MASK
..TNAC==.@.NAC-1
REPEAT ..`NAC,<
   IFN ..TMSK,<
	..NUM==^L <..TMSK>
	..TMSK@==..TMSK-1B<..NUM`>
	IFE ..TMSK &  1B<..NUM+1>,<
		  MOVE ..NUM,-..TNA @C(P)
		..TNAC==. `.TNAC-1>
	IFN ..!TMSK & 1B<..NUM+1! >,<
		DMOVE ..NU!@M,-..TNAC(P)
		.!`.TNAC==..TNAC-2
"		..TMSK==..TMSK-" 1B<..NUM+1>>
	>>"@
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 9l
IFG ..NA C,<ADJSP P,..NAC>@
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
    IFN ..TMSK,<
@	..NUM==^L<..TMSK`>
	..TMSK==..TMSK-1B<..NUM>
	IFE  ..TMSK & 1B<..NU@M+1>,<
		MOVEM .`.NUM,-..TNAC(P)
		..TNAC==..TNAC- 1>
	IFN ..TMSK &@ 1B<..NUM+1>,<
	`	DMOVEM ..NUM,-..TNAC(P)
		..TNAC ==..TNAC-2
		..T@MSK==..TMSK-1B<..NUM+1>>
	>>
.K,lz s''
	A==<-1s8B<C>+1B<C-D>> sX
	IF1,<IFDEF %Asx,<PRINTX ?A ALREtADY DEFINED>>
	Dt8EFINE %A (OP,AC,tXY,MSK)<
	OP(<ACtx>,<@[EP.B'Y]>,MSK)>P.qB'Y]>,MK+\Y`p0@p0@4p0@4op0@UN.,HK+`p0@p0@
	A==C	wX	
	IF1,<IFDEF %wxA,<PRINTX ?A ALRxEADY DEFINED>>
	x8DEFINE %A (OP,ACxX,Y,MSK)<
	OP (<AxxC>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg 0w
	OD.K:%G 3i....U~+HK@p =P<
	..I==0
	..X==0
	MAKRM.> (..CON,..GET)
	>0..CON <EXIND. ..I>P,>
	IRPC A,<
	>p  ..SC==0
	  IFE? "A"-"@",<..I==1?0
			..SC=1>
	  ?PIFE "A"-"(",<..C?pON <,>
			..SC=1@
			..X==1>
	  @0IFE "A"-")",<
	@P    IFE ..X,<PRIN@pTX %UNEXPECTED RIAGHT PAREN IN EP. A0MACRO>
			..SC=1AP>
	ApIFE ..SC,<
	   ..CON <A>>>B
	IFE ..X,<
	  B0..CON <,0>>
	..CBPON <
>
	..GET
   
>
	..GET
KCm ;P;i
	  DEFIN;pE ..EP. (LOCN,PTE<XT)
	    <PRINTX<0 Location 'LOCN':<P PTEXT
	    >
	<p  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` R85
	ERJMP	[RXTMSG <? A>
		 JSHLT]
A>
		 JKbMi C<<<A>B1+<C>B5+<B>>B1+<Kc  S5
   IF2,<S8
	IRP A,<
	IFNSXDEF A,<EXTERN A
	SUPPRE A>>>M&. cX&OP%%FP	(A,B,FADR)FP	(AM6. e&)OP%%FP	(A,B,FDVR)FP	(AM2   X"<<<A>B<POS(<B>)>>&<B>>M2$*g b 68
	..XX==<b@FLD(A,CM%FNC)>+b`B+<Z G>
   IFNBc <D>,<..XX=CM%HPc P!..XX>
   IFNB c@<E>,<..XX=CM%DPPc`!..XX>
   IFNB <dF>,<..XX=CM%BRK!d ..XX>
	..XX
   d@IFNB <C>,<C>
 d`  IFB <C>,<0>
 e  IFNB <D>,<POINe T 7,[ASCIZ D]>e@
   IFB <D>,<IFe`NB <EF>,<0>>
 f  IFB <E>,<IFNB f <F>,<0>>
   IFNf@B <E>,<POINT 7,[f`ASCIZ \E\]>
   gIFNB <F>,<F>
    <F>,<F>
 M2$HG ^ 6

	..XX==<^@FLD(A,CM%FNC)>+^`B+<0,,F>
   IFN_B <D>,<..XX=CM%H_ PP!..XX>
   IFNB_@ <E>,<..XX=CM%DP_`P!..XX>
	..XX
`  IFNB <C>,<C>
`@IFB <C>,<0>
   IFNB <D>,<PO``INT 7,[ASCIZ Da]>
   IFB <D>,<a IFNB <E>,<0>>
 a@  IFNB <E>,<POINa`T 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. dX&%OP%%FP	(A,B,FMPR)FP	(AM7p Ox5
	HRROI .PAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ "x"

  DEFINE# e(C)<D>
..FO#8RN==A
REPEAT B#X-A+1,<
	.FORN1 #x(e)
	..FORN=..FORN+1>.FORN=..FM?3@ &"5
  DEFINE&8 %MN1 (B)<C>
	&X..FORN==A		
	.FORN1 (%MN1)
	.FM?@ $x"+
  DEFINE% d (B)<C>
  I%8RP A,<
	.FORX1 d,A>
	.FORX1\MN.d&!OP%%FP	(A,B,FSBR)FP	(AMS{PNF@1^O44C==:NJ

	..ERR.=c00		
	  .BSIZ.=BcP		
	cp.BPOS.=D
	IFN <<A>&<^O<-d1,,770000>>>,<
	d0  MPRNTX(G2BPT,Sed`ction greater thajpn 12 bits: A)
	k  ..ERR.=1
	k0>
	IFN <<C>&<^O<7kP77740,,0>>>,<
	 kp MPRNTX(G2BPT,Bitls 0 - 12 non-zerol0 in address fieldlP: C)
	  ..ERR.=lp1
	  >
	IFN <<mE>&<-1,,0>>,<
	 m0 MPRNTX(G2BPT,BitmPs 0-17 non-zero impn optional field:n E)
	  ..ERR.=1n0
	  >
	IFN <.BSnPIZ.&<^O<-1,,77770np0>>>,<
	  MPRNTXo(G2BPT,Bytesize go0reater than 6 bitoPs: B)
	  ..ERR.op=1
	  >
	IFN <.pBPOS.&<^O<-1,,777p0700>>>,<
	  MPRNpPTX(G2BPT,Byte offppset greater than q6 bits: D)
	  .q0.ERR.=1
	  >
	IqPFN ..ERR.,<-1,-1,qp-1>		
	
	IFE ..rERR.,<
	  IFDIF r0<D><>,<<<POINT .rPBSIZ.,E,.BPOS.>!rp1B12>&<^O<777740,s,-1>>>
	tIFIDN s0<D><>,<<<POINT .sPBSIZ.,E>!1B12>&<sp^O<777740,,-1>>>
	    
	    <<<t0C>_<^O14>>&<^O<37tP0000,,0>>!<<C>&<tp0,,-1>>!<<A>_<^Ou22>>>
	  >
	PURu0GE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,A#>0		GENBPON{  Fp<_
	..ERR.=G0		
	IFN <<A>&<G0^O<-1,,770000>>>,GP<
	  MPRNTX(GFIWGpM,Section greaterH than 12 bits: AH0)
	  ..ERR.=1
	HP  >
	IFN <<B>&<Hp^O<777740,,0>>>,<I
	  MPRNTX(GFIWMI0,Bits 0 - 12 non-IPzero in address fIpield: B)
	  ..EJRR.=1
	  >
	IFNJ0 ..ERR.,<-1,-1,-1JP>	
				
	IFE ..JpERR.,<
	  <<<B>K_<^O14>>&<^O<3700K000,,0>>!<<B>&<0,KP,-1>>!<<A>_<^O22Kp>>>>
	PURGE ..ERR.
	PURGE ..ERSNn ^%qOP%%IN	(A,B,IDIV)IN	(AS)` 'P2I
	JUMPN 'pA,b		
	..SVDF		(	
   DEFINE ..TA(0GF (INST,PCT)<
	(PINST b'PCT>		
 (p  DEFINE ..TAGE ()INST,PCT)<
	INST c'PCT>		
	STS.:g &029
	PRINTX &P% IFESK. should b&pe changed to IFNJ'E.
	IFNJE. <A>.
	IFNJE. <A>S9` +P2i
	JUMPLE +pA,b		
	..SVDF	,		
   DEFINE ..T,0AGF (INST,PCT)<
,P	INST b'PCT>		
,p   DEFINE ..TAGE -(INST,PCT)<
	INST c'PCT>		
	SS<S@ -P2y
	JUMPL -pA,b		
	..SVDF		.	
   DEFINE ..TA.0GF (INST,PCT)<
	.PINST b'PCT>		
 .p  DEFINE ..TAGE (/INST,PCT)<
	INST c'PCT>		
	STSTS@ 1a

   IFB <0BC>,<		
	..SVDPF			
	ERJMPA fp		
	JRST d		
f:!
PDEFINE ..0TAGF (INST,PCT)<
	INST d'PCT>		
   DEFINE ..TAGE (INST,PCT)<
	IN0ST e'PCT>		
	>P
   IFNB <BC>,<p		
	ERJMPA d		
	C
	JRST e
d:!	B
e:!>
ST\G P1E

   IFB <pAB>,<		
	..SVDF			
	ERJMP e		0
	JRST c		
e:P!
   DEFINE ..TApGF (INST,PCT)<
	INST c'PCT>		
 0  DEFINE ..TAGE (PINST,PCT)<
	INSTp d'PCT>		
	>
   IFNB <AB>,<		0
	ERJMP c		
	PB
	JRST d
c:!	A
d:!>
c:!SUc@ #02/
   IFB <#PB>,<		
	..SVDF	#p		
	ERJMPA c
$   DEFINE ..TAGF $0(INST,PCT)<
	INS$PT c'PCT>		
   D$pEFINE ..TAGE (INS%T,PCT)<
	INST d%0'PCT>		
	>
   I%PFNB <B>,<
	ERJM%pPA c
	B
c:!> c
	B
c:!Sa` 1P3
	JUMPGE 1pA,b		
	..SVDF	2		
   DEFINE ..T20AGF (INST,PCT)<
2P	INST b'PCT>		
2p   DEFINE ..TAGE 3(INST,PCT)<
	INST c'PCT>		
	SSdS@ /P3	
	JUMPG /pA,b		
	..SVDF		0	
   DEFINE ..TA00GF (INST,PCT)<
	0PINST b'PCT>		
 0p  DEFINE ..TAGE (1INST,PCT)<
	INST c'PCT>		
	STSq` )P2Y
	JUMPE )pA,b		
	..SVDF		*	
   DEFINE ..TA*0GF (INST,PCT)<
	*PINST b'PCT>		
 *p  DEFINE ..TAGE (+INST,PCT)<
	INST c'PCT>		
	STSt\g P1k
	PRINTX p% IFNES. should be changed to IFJE0R.
	IFJER. <A>,<B>FJER. <A>,Su)'  P2
   IFB < pA>,<		
	..SVDF	!		
	ERJMP b
  !0 DEFINE ..TAGF (I!PNST,PCT)<
	INST !pb'PCT>		
   DEF"INE ..TAGE (INST,"0PCT)<
	INST c'P"PCT>		
	>
   IFN"pB <A>,<
	ERJMP b
	A
b:!> Sv:g 1)
   IFB <0AB>,<		
	..SVDPF			
	TRNA			
	pJRST c		
   DEFINE ..TAGF (INST,0PCT)<
	INST c'PPCT>		
   DEFINE p..TAGE (INST,PCT)<
	INST d'PCT>	0	
	>
   IFNB <PAB>,<		
	JRST pc		
	B
	JRST d
c:!	A
d:!>
c:!	A
d:!>S
S@ 7P3K
	JN <A>7p,<B>,c	
	..SVD8F			
   DEFINE .80.TAGF (INST,PCT)<8P
	INST c'PCT>		8p
   DEFINE ..TAG9E (INST,PCT)<
	I90NST d'PCT>		
	ST d'PCT>		
	S 9p3]
	JE <A>:,<B>,c	
	..SVD:0F			
   DEFINE .:P.TAGF (INST,PCT)<:p
	INST c'PCT>		;
   DEFINE ..TAG;0E (INST,PCT)<
	I;PNST d'PCT>		
	ST d'PCT>		
	S< p2
   IFB <A>,<		
	..SVDF	0		
	JRST b
   PDEFINE ..TAGF (INpST,PCT)<
	INST b'PCT>		
   DEFI0NE ..TAGE (INST,PPCT)<
	INST c'PCpT>		
	>
   IFNB  <A>,<
	JRST b
	A
b:!> bSDS@ 3P3)
	JXN A,3pB,c	
	..SVDF		4	
   DEFINE ..TA40GF (INST,PCT)<
	4PINST c'PCT>		
 4p  DEFINE ..TAGE (5INST,PCT)<
	INST d'PCT>		
	STSEc@ 5P39
	JXE A,5pB,c	
	..SVDF		6	
   DEFINE ..TA60GF (INST,PCT)<
	6PINST c'PCT>		
 6p  DEFINE ..TAGE (7INST,PCT)<
	INST d'PCT>		
	STS7-N ]%iOP%%IN	(A,B,IMUL)IN	(AS:  Z0-U
	..STR0 ZP(.INCR0,,<A>,<B>)CR0,,<A>,<BS? 2#
	TXO A,<B>
	TXO A,Ut@ op/
	..STR1 p(..JAN,<d,<C>>,p0<A>,<B>,..STR5)
d:B>,..STR5)U cP.
	..STR1 cp(..JE,<C>,<A>,<B>,..STR3)A>,<U8 h.C
	..STR1h0(..JN,<C>,<A>,<B>,..STR3)A>,<U:
	..STR1 mP(..JNA3,<C>,<A>,<B>,..STR4)A>U:~  s/
	..STR1 s0(..JNO,<d,<C>>,sP<A>,<B>,..STR5)
d:B>,..STR5)U? lP.g
	..STR1 lp(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0?~p0?{,p0?~4op0?{UN.,HUN.,HA  UN.,HUNEM`p0@
p0@,p0@
4qp0@UNEMUNEMA  UNEMUNn9hA  UNn9hUb( F8$K
	..JX1==FXB		
	.IFN ..JX1Fx,ABSOLUTE,<PRINTXG B NOT ABSOLUTE
		..JX1==0>
	.IGXF ..JX1,ABSOLUTE,Gx<
	.IF0 <<..JX1>H-1B0>,<	
		JUMPGH8E A,C>,<
	.IF0HX <<..JX1>+1>,<	
Hx	  JUMPE A,C>,<I	
		TXNN (A,..JI8X1)
		JRST C>>>)
		JRST C>>>Ub0 Q8%'
	..JX1==QXB		
	.IFN ..JX1Qx,ABSOLUTE,<PRINTXR B NOT ABSOLUTE
		..JX1==0>
	.IRXF ..JX1,ABSOLUTE,Rx<
	.IF0 <<..JX1>S-1B0>,<
		JUMPGES8 A,C>,<
	..ONESXB (..BT,B)	
	.ISxF0 ..BT,<
	  SETTCM .SAC,A		
	  T8JXN (.SAC,..JX1,TXC)>,< 
	    TXNNTx A,..JX1	
	    JRST C>>>	    Ubp Ix$g
	..JX1==JB		
	.IFN ..JX1J8,ABSOLUTE,<PRINTXJX B NOT ABSOLUTE
		..JX1==0>
	.IKF ..JX1,ABSOLUTE,K8<
	.IF0 <<..JX1>KX-1B0>,<	
		JUMPLKx A,C>,<
	.IF0 L<<..JX1>+1>,<	
	L8  JUMPN A,C>,<	LX
		TXNE (A,..JXLx1)
		JRST C>>>)
		JRST C>>>Ubx M8%
	..JX1==MXB		
	.IFN ..JX1Mx,ABSOLUTE,<PRINTXN B NOT ABSOLUTE
		..JX1==0>
	.INXF ..JX1,ABSOLUTE,Nx<
	.IF0 <<..JX1>O-1B0>,<
		JUMPL O8A,C>,<
	..ONEBOX (..BT,B)	
	.IFOx0 ..BT,<
	  SETCPM .SAC,A		
	  JP8XE (.SAC,..JX1,CPX)>,< 
	    TXNE PxA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=LPA		
	.BPOS.=C
	..ERR.=0		
	IFMN <<B>&<^O<77774M00,,0>>>,<
	  MPRMPNTX(L1BPT,Bits 0 Mp- 12 non-zero in Naddress field: BN0)
	  ..ERR.=1
	NP  >
	IFN <.BSIZ.Np&<^O<-1,,777700>>O>,<
	  MPRNTX(L1O0BPT,Bytesize greaOPter than 6 bits: OpA)
	P..ERR.=1
	  >
	IFN <.BPOP0S.&<^O<-1,,777700PP>>>,<
	  MPRNTX(PpL1BPT,Byte offsetQ greater than 6 bQ0its: C)
	  ..ERQPR.=1
	  >
	
	IQpFN <..ERR.>,<-1,-R1,-1>
	
	IFE <.R0.ERR.>,<
	  IFIDRPN <C><>,<POINT .RpBSIZ.,B>
	  IFDSIF <C><>,<POINT S0.BSIZ.,B,.BPOS.>SP
	  >
	PURGE ..SpERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=Zp0		
	  .BSIZ.=A[		
	[0.BPOS.=C
	IFN <<B>&<^O<7[P77740,,0>>>,<
	 [p MPRNTX(L2BPT,Bit\s 0 - 12 non-zero\0 in address fieldT0: B)
	  ..ERR.=TP1
	  >
	IFN <<TpD>&<-1,,0>>,<
	 U MPRNTX(L2BPT,BitU0s 0-17 non-zero iUPn optional field:Up D)
	  ..ERR.=1V
	  >
	IFN <.BSV0IZ.&<^O<-1,,77770VP0>>>,<
	  MPRNTXVp(L2BPT,Bytesize gWreater than 6 bitW0s: A)
	  ..ERR.WP=1
	  >
	IFN <.WpBPOS.&<^O<-1,,777X700>>>,<
	  MPRNX0TX(L2BPT,Byte off^0set greater than ^P6 bits: C)
	  .^p.ERR.=1
	  >
	I_FN ..ERR.,<-1,-1,_0-1>		
	
	IFE .._PERR.,<
	  IFDIF _p<C><>,<<<POINT .`BSIZ.,D,.BPOS.>!`01B12>&<^O<777740,`P,-1>>>
	aPIFIDN `p<C><>,<<<POINT .aBSIZ.,D>!1B12>&<a0^O<777740,,-1>>>
	    <1B0!<<^O<4ap00037,,-1>>&<B>>b>	
	  >
	PURGE b0..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPA"=Q0(B).YN{  CP<3
	..ERR.=Cp0		
	IFN <<A>&<D^O<777740,,0>>>,<D0
	  MPRNTX(LFIWMDP,Bits 0 - 12 non-Dpzero in address fEield: A)
	  ..EE0RR.=1
	  >
	IFNEP ..ERR.,<-1,-1,-1Ep>	
	IFE ..ERR.,<F1B0!<<^O<400037,,F0-1>>&<A>>>	
	PURGE ..ERR.
	PUY$- Ap,1_<^D35-^L<A>>1_<^D35-^LY>
@ E,+
	..STR0 E0(..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  H,C
	..STR0 H0(..LDBE,A,B,<C>)DBE,A,B,<C[i9Q ~[^+' '"K
  DEFINE'8 A (STUFF)<
	c'X (<STUFF>,)>

 'x DEFINE c (NEW,O(LD)<
    DEFINE (8A (STUFF)<
	c (X(<STUFF>,<OLD'NEW(x>)>>

  DEFINE )B <
    DEFINE )8c (NEW,OLD)<OLD>
	A ()>
OLD>[3@ B0,<<<1_<A>>-1>B<B>>_<A>>[8@ !x"<1B<<A>-1>-1B<B>><A>-1[>!` "8"<<A>-<<A>/<B>>*<B>>A[?7 )x#
   ..MX1*==B			
*X.IFN *8..MX1,ABSOLUTE,<
	MOVE A,[B]>
*x   .IF ..MX1,ABSO+LUTE,<
	..MX2==0+8		
	IFE <..MX1>B+X53,<
	  ..MX2==1+x
	  MOVEI A,..M,X1>	
	IFE ..MX2,,8<		
	IFE <..MX1>,XB17,<
	  ..MX2==,x1
	  MOVSI A,(.-.MX1)>>	
	IFE ..-8MX2,<		
	IFE <<.-X.MX1>B53-^O777777-x>,<
	...MX2==1
	  HRROI A,<..M.8X1>>>	
	IFE ..MX.X2,<		
	IFE <<..M.xX1>B17-^O777777B1/7>,<
	  ..MX2==1/8
	/xHRLOI A,(../XMX1-^O777777)>> 
	IFE ..MX2,<		
0	  MOVE A,[..MX1]>	
  >,[..MX1[Cm 90;Y
	  DEFIN9PE ..MP. (LOCN,MTE9pXT,PTEXT)<
	    :PRINTX Location ':0LOCN', Macro 'MTE:PXT': PTEXT
	    :p>
	  ..MP.(\.,A;,<B>)
	  PURGE ..MP.
	  URGE [N^= u8'7
	A==C	uX	
	IF1,<IFDEF %uxA,<PRINTX ?A ALRvEADY DEFINED>>
	v8DEFINE %A (OP,ACvX,Y,MSK)<
	$A==<vxZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg \X%eOP%%IN	(A,B,MUL)%IN	(A[Xp 0X#
	MOVE .S0xAC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` 18#
	MOVX .S1XAC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp Y8%Y
	.XCREF
IFE	<<B>_-^D18>Yx,<
	.CREF
	CAIZC	A,<B>
	.XCREZ8F
>
IFN	<<B>_-ZX^D18>,<
	.CREF
Zx	CAMC	A,[B]
	[.XCREF
>
	.CREFCREF
>
	.CREF_@(YX eX&9
	.XCREF
IFE	<<B>_^D18>,f<
	.CREF
	CI	f8A,(B)
	.XCREF
fX>
IFN	<<B>_^D18fx>,<
	.CREF
	C	gA,[B]
	.XCREF
>
	.CREFCREFX&	
	.XCREF
	TEST%%=0
IFE	<_<<B>_-^D18>-^O77_87777>,<
IFN	<<B_X>&^O777777>,<
	T_xEST%%=1
	.CREF
`	DI	A,-<B>
	.`8XCREF
>>
IFE	TE`XST%%,<
	OP%%IN	`xA,<B>,C
>
	PUaRGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 aX&
	.XCREF
IFE	<<B>_-^D18>b,<
	.CREF
	CI	b8A,<B>
	.XCREF
>
IFN	<<B>_-^Dbx18>,<
	.CREF
	cC	A,[B]
	.XCREF
>
	.CREFCRE_CL@ ^p-y
	..STR0 _(.OPST1,<A>,<B>,<C>)<A>,<B>_CLV a.
	..STR0 a0(.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ Y0=K<..OWGP (\<A>,B,\<C>)>A!=G^O44 B-_^>
G Yp=OOWGP. WID(B),A,POS(B)(`@ a
,TQ  a
,Q a
,*9Q a
,>(Q  a
,>(Q a
,k{Q a
,m3Q a
-J8Q @a
-iQ a
-}SQ @a
.Z7Q a
.\yQ a= Px5
   IFNB Q<A>,<
	TMSG <AQ8>>
	CALL JSMSG0>
	CALL JSMSG0a4\G  !
	..PGV0=@=.		
	.JBVER=:^O`137		
	LOC	.JBVER		
	BYTE	(3)D( 9)A(6)B(18)C
@	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm x"<POINT WID (<B>),A,POS(<B>)>),A,POS(<Ba? 8!{<^L<<A>&<-<A>>>><<A>&<aKH1 $`:0
	..NUM==%^D15
	REPEAT ^D1% 6,<
		IFN ..MASK%@ & 1B<..NUM>,<
	%`	POP P,..NUM>
		&..NUM==..NUM-1
	>
==..NUM-1
	aNh1 #:"
	..TMSK=# =..MASK
	REPEAT #@..NAC,<
		..NUM=#`=^L<..TMSK>
		..$TMSK==..TMSK-1B<.$ .NUM>
		PUSH P,..NUM
	>
H P,.aR<& v8?3
	TXO A,.FR8BY
	TXO A,aRd6 up?/
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x NX4uJRST RSKPwJRST RSKPeN^A  eN^gXY ~8
	..TRR==~010		
	RADIX 8
	~P..NV==1			
	IRP ~pA,<
	  .TRV1 (A)>		
	IFG ..NV-05,<PRINTX ?TOO MAPNY ARGUMENTS: A>p
	JSP .A16,.SASET		
	RADIX ..TRR0		
	DEFINE ENDSAP.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 @90

..DONE`==0
..SACC==0
.
.NAC==0
..MASK==
 0

IRP <A>,<

@	IFG A-^D15,<PRI
`NTXL?SAVEAC(A) I
		CAPINTXU?SAVEAC
	IFE A-.SAC,<. .SACC==1>
	..SYA@C==A				
	IFN `A-.SAC,<IFE ..MASK&1B<..SYAC>,<	
 		..MASK==..MASK!@1B<..SYAC>	
		..`NAC==..NAC+1>>
	>
IFE ..SACC,<US RSAV>		
IFE ..DO@NE,<
  IFLE ..SA`CC,<JSP .SAC,[>
  IFG ..SACC,<CAL L [EXCH .SAC,(P)>@
		    IFG  ..NA`C-3,<DSAVAC>
		    IFLE ..NAC-3,< IFG ..NAC,<PSAVAC@>>
		    PUSHJ P`,(.SAC)
		      TRNA
		    AOS - ..NAC-..SACC(P)
@		    IFG  ..NAC-`3,<DRSTAC>
		    IFLE ..NAC-3,<IF G ..NAC,<PRSTAC>>@
		    IFG ..SAC`C,<POP P,.SAC>
		    POPJ P,]
> 
PURGE ..NAC,..TN@AC,..MASK,..TMSK,`..SACC,..NUM,..SMSK,..DONE,..SYAC  
DONE,..SYAC g$;8 W-;
	..STR1 W0(..TQC,,<A>,<B>,..STR4)A>,<B>g%{R SP-
	..STR1 Sp(..TQO,,<A>,<B>,..STR4)A>,<B>g',W Op-
	..STR1 P(..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@ 8!s
	....Z=A
	....Z=gB8; @9D
	IFE ..D`ONE,<
		..SMSK==0
		IRP <B>,<
 		   ..SYAC==B		@		
		   ..SMSK==`..SMSK!1B<..SYAC>>		
		IFE ..MASK -..SMSK,<JSP .SAC@,A
				   ..DONE==1>
	>
.DONgR$g !%
F=:0
T18=:1
T2=:2
T3=:3X
T4=:4
Q1=:5
Qx2=:6
Q3=:7
P1=:10
P2=:11
P3=:182
P4=:13
P5=:14X
P6=:15
CX=:16
P=:17
CX=:16h06[
	..STKR=hP=10		
	RADIX 8
hp	..STKN==0
	IRP iA,<
	  .STKV1 (i0A)>
	JSP .A16,.iPXSTKS		;Call inteiprnal routine for jallocation
	 EXPj0 ..STKN		;Size ofjP block to allocatjpe
	RADIX ..STKR
	DEFINE ENDSV.<.k0ENSV1 <A>>
   NSV1 <A>>
   gR~  Lp,i
	..STR0 M(..DPB,A,B,<C>)DPB,A,B,<C>gV \%aOP%%IA	(A,B,SUB,ADD)(Ai6tP u/+
	..STR1 u0(..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` xp/I
	..STR1 y(..TYNN,,<A>,<B>,..STR3)A>,<Bi7p O4{
	HRROI .O8AC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..SpTR1 (..TY,C,<A>,<B>,..STR3)A>,iF p01
	    ..STR1 (..TY,CA,<A>,<B>,..STR3)A>iFP 00%
	    ..SPTR1 (..TY,CE,<A>,<B>,..STR3)A>iF` 0+
	    ..S0TR1 (..TY,CN,<A>,<B>,..STR3)A>iFp zP/W
	    ..SzpTR1 (..TY,N,<A>,<B>,..STR3)A>,iFt |p/i
	    ..S}TR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP {0/]
	    ..S{PTR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` |/c
	    ..S|0TR1 (..TY,NN,<A>,<B>,..STR3)A>iFx }P/o
	    ..S}pTR1 (..TY,O,<A>,<B>,..STR3)A>,iF| p0
	    ..STR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P ~0/u
	    ..S~PTR1 (..TY,OE,<A>,<B>,..STR3)A>iF}` /{
	    ..S0TR1 (..TY,ON,<A>,<B>,..STR3)A>iGP P0
	    ..SpTR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT p0
	..STR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP 00
	    ..SPTR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU` 0
	    ..S0TR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ s7+
	..TRR==s010		
	RADIX 8
	sP..NV==1			
	IRP spA,<
	  .TRV1 (tA)>		
	JSP .A16,t0.XTRST		
	uEXP .tP.NV-1		;Size of btplock to allocate
	RADIX ..TRR		
u0	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib >#q
		..TX(C,A,<B>)..TX(Cib ?X#}
		..TX(CA,A,<B>).TX(CibP >X#u
		..TX(CE,A,<B>).TX(Cib` ?#y
		..TX(CN,A,<B>).TX(Cibp 8#A
		..TX(N,A,<B>)..TX(Nibt 9X#M
		..TX(NA,A,<B>).TX(NibtP 8X#E
		..TX(NE,A,<B>).TX(Nibu` 9#I
		..TX(NN,A,<B>).TX(Nibx :#Q
		..TX(O,A,<B>)..TX(Oib| ;X#]
		..TX(OA,A,<B>).TX(Oib|P :X#U
		..TX(OE,A,<B>).TX(Oib}` ;#Y
		..TX(ON,A,<B>).TX(OicP <#a
		..TX(Z,A,<B>)..TX(ZicT =X#m
		..TX(ZA,A,<B>).TX(ZicTP <X#e
		..TX(ZE,A,<B>).TX(ZicU` =#i
		..TX(ZN,A,<B>).TX(Zk:*g Tx5)
%%FOO==Ua
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; 8Xm$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  x!w<^L<-<<A>_<^L<A>>>-1>>>q
fC@ gP6=
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? 3#
	TXC A,<B>
	TXC A,+Q zjQ |kQ x2 Q N2`Q P2$`Q R2& Q T25 Q V25@Q J2PQ L:`Q f:$Q h:%`Q j:5Q l:5@Q b:`Q dB Q \B$`Q ^B4 Q `B5@Q XBpQ ZJ`Q rJ%@Q tJ5 Q vJ5@Q nKQ p
+Q \
KQ ^
kQ `

Q X
`Q Z
(Q p
HQ r
iQ t
	Q v

Q n$HQ z%	Q |%
Q x2`Q N2$ Q P2%`Q R25 Q T2D`Q V2EQ J2PQ L: Q f:%Q h:4`Q j:D@Q l:EQ b:`Q d:h &S
	A:&@ MP,{
	..TSIZ Mp(..PST,C)
	.CASNE ..PST,<<
		MOVN0EM A,B>,<
		HRNPRM A,B>,<
		HRNpLM A,B>,<
		DPOB A,[POINT WID(<O0C>),B,POS(<C>)]>>B,POS(<C>):<;Y (u
   DEFIN8E ..CNS2 (NEW,OLDX)<
	  OLD>			
	..CNS ()>			
	:L;Y x(m
   DEFIN
E ..CNS (ARG)<
	
8..CNS2 <ARG>,>

X
   DEFINE ..CNS2
x (NEW,OLD)<
	DEF..CNS (ARG)<
	<O..CNS2><ARG>,
   OLD'NEW>>>
   :Mi CP4-
 DEFINE CpELSE. <
	..TAGE D(JRST,)		
	..TAGD0F (,<:!>)		
	SYNDP ..TAGE,..TAGF	
Dp   DEFINE ELSE. <E....U>>	

 DEFIE0NE ENDIF. <
	..TEPAGF (,<:!>)		
	..RSDF>			
   .:TH pp/
	..JNA3 (A,C,D)JNA3 :TI q0/
	..TSAC qP(..ACT,C)
	.IF0qp ..ACT,<
	  SETCrM .SAC,C	
	  JXr0E (.SAC,D,<B>)>rP,<	
	  JXO (C,D,<B>)>O (C,:TP d0.=
	..TSAC dP(..ACT,B)	
	.IFdp0 ..ACT,<
	  ..TeSIZ (..PST,C)	
e0	  .CASE ..PST,<<eP
		SKIPN B	
		epJRST A>,<
		HRRfZ .SAC,B	
		JUMf0PE .SAC,A>,<
		fPHLRZ .SAC,B	
		fpJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<gPA>)>>>,<
	  JXE (B,C,<A>)>E:U` hp.a
	..TSAC i(..ACT,B)	
	.IFi00 ..ACT,<
	  ..TiPSIZ (..PST,C)
	ip  .CASE ..PST,<<
		SKIPE B	
		Jj0RST A>,<
		HRRZjP .SAC,B	
		JUMPjpN .SAC,A>,<
		HkLRZ .SAC,B	
		Jk0UMPN .SAC,A>,<
kP		MOVE .SAC,B	
kp		JXN (.SAC,C,<lA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) n.{
	..TSAC n0(..ACT,B)
	.IF0nP ..ACT,<
	  SETCnpM .SAC,B	
	  JXoN (.SAC,C,<A>)>o0,<	
	  JXF (B,C,<A>)>F (B,:Ukh t/!
	..JN (A,C,D)..JN (:Uki tP/%
	..JE (<B>,C,D)JE (<:dH@ Ep,=
	..TSIZ F(..PST,C)
	.CASF0E ..PST,<<
		MOVFPE A,B>,<
		HRRFpZ A,B>,<
		HLRGZ A,B>,<
		LDBG0 A,[POINT WID(<GPC>),B,POS(<C>)]>>B,POS(<C>)]:dHR Hp,c
	..TSIZ I(..PST,C)
	.CASI0E ..PST,<<
		MOVIPE A,B>,<
		HRRIpE A,B>,<
		HLRJE A,B>,<
		JSPJ0 .SAC,[LDB A,[POJPINT WID(<C>),B,JpPOS(<C>)]
			  K..MSK==MASK.(WID(K0C),35)
			  TXNKPE A,LFTBT.(..MSKKp)	
			  TXO A,^L-..MSK	
			  PURL0GE ..MSK
			  JRST (.SAC)]>> JR:}i1 p'
	A==<<<p8-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx ]=oIFE 10-8, ]0  <.%AC!<B>>+ ]P			     IFE 10-^D]p10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 4E
	.POPX;LH y8'[
	IFNDEF yXC,<PRINTX ?C ISyx NOT DEFINED
	  zA (<B>,<D>,.FWz8ORD)>	
	IFDEF CzX,<
	IFNDEF %C,<zx
	  A (<B>,<D{>,C)>	
	IFDEF %{8C,<
	  %C (A,<B>,<D>,C)>>;LH {x(

	..NS==0|			
	IRP C,<..N|8S=..NS+1>	
	IFE |X..NS,<PRINTX ?EMP|xTY STRUCTURE LIST}, A>
	IFE ..NS-}81,<		
	  ..STR0 }X(A,<B>,<C>,<D}x>)>
	IFG ..NS-1,~<		
	..ICNS			
~8	..CNS (<E (A,<~XB>,,>) 
	IRP C~x,<		
	  IFNDEF C,<PRINTX C NOT 8DEFINED>
	  IFDEXF C,<
	  IFNDEFx %C,<
	  ..CNS (<,C,D>)>	
	  8IFDEF %C,<
	  %XC (..STR2,,<D>,xC)> 
	  ..CNS (<)>)		
	  ..GCNS8		
	  ..ICNS		
X	  ..CNS (<E (Ax,<B>>) 
	  IFNDEF %C,<
	  ..CN8S (<,C,D>)>	
	X  IFDEF %C,<
	 x %C (..STR2,,<D>,C)>>> 
	..CNS8 (<,,)>)		
	..GCNS>)>)		
	..GC;LI x(
	..CNS (<,C,B>).CNS (;LI 8(5

	IFDIF <XD><F>,<
	  IFNxB <D>,<
	    A (<B>,D,..MSK)	8
	    IFNB <F>,X<PRINTX C AND Ex ARE IN DIFFERENT WORDS>>
	  ..MS8K==0>		
	IFNB <XF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ (E

	IFDIF <8D><F>,<	
	  IFXNB <D>,<
	    xA (<B>,D,..MSK)>	
	  ..MSK==0>	8	
	IFNB <F>,<
X	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ 	([

	IFDIF <	8D><F>,<	
	  IF	XNB <D>,<
	    I	xFNB <F>,<		
		
A1 (B,D,..MSK)>
8 
	    IFB <F>,
X<		
		A2 (B,D
x,..MSK)>> 
	  ..MSK==0>		
	IFNB 8<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU 00_
	SYN ENDPBK.,a
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i F4C
	SYN ELSF0E.,a
	SYN ENDIFFP.,b
	SYN ..TAGFFp,c
	SYN ..TAGE,Gd
	.PSHX <
	  G0SYN a,ELSE.
	  GPSYN b,ENDIF.
	 Gp SYN c,..TAGF
	H  SYN d,..TAGE>
	..INDF			
	      NDF			
	 ;k 01

	SYN OD.P,a
	SYN LOOP.,pb
	SYN TOP.,c
	SYN EXIT.,d
	S0YN ENDLP.,e
	.PPSHX <
	 SYN a,OpD.
	 SYN b,LOOP.
	SYN c,TOP.
	 SYN d,EXIT.
P	 SYN e,ENDLP.> SYN e,ENDLP.>;$r 3m....Ut<H;$s 3k....U=|R;&` Wp-O
	..TSIZ X(..PST,C)
	.IF0X0 ..PST,<		
		SETXPCMM B>,<	
	Y..XpTSAC (..ACT,B)	
	Y0.IF0 ..ACT,<
		MOVX .SAC,C
YP		XORM .SAC,B>,<Yp
		..TX(C,B,C)>>..TX(C,B,C);&` T0-5
	..TSIZ TP(..PST,C)
	.CASTpE ..PST,<<
		SETUOM B>,<
		HLLOSU0 B>,<
		HRROS UPB>,<
	  ..TSAC (Up..ACT,B)
	  .IFV0 ..ACT,<
		MOVXV0 .SAC,C
		IORM VP.SAC,B>,<
		..TX (O,B,C)>>>T;&@ PP-
	..TSIZ Pp(..PST,C)	
	.CAQSE ..PST,<<
		SEQ0TZM B>,<	
		HLLQPZS B>,<	
		HRRZQpS B>,<	
	  ..TSRAC (..ACT,B)	
	R0  .IF0 ..ACT,<
	RP	MOVX .SAC,C	
	Rp	ANDCAM .SAC,B>,S<
		..TX (Z,B,C)>>>TX (Z,B,;&81 l8&m
	A==0		lX	
	..TSA1==<Z Blx>		
	.IF ..TSA1,mABSOLUTE,<	
	  Im8FE ..TSA1&^O77777mX7777760,<A==1>> 
	60,<A==1>> ;&:= jx&_
	A==3		k	
	IFE <B>+1,<k8A=0>	
	IFE <B>-kX^O777777,<A==1> kx
	IFE <B>-^O777777B17,<A==2>7;&;Q n&}
	A==0		n8	
	..TSA1==0		
nX	IRPC C,<
	  ..nxTSA1=..TSA1+1
	oo IFE ..TSA1-B,<
	   IFIDN <C><oXD>,<
		A==1>		
	;'STOPI>>		
   ..TX13x==C			
48.IFN 4..TX1,ABSOLUTE,<
	TDA B,[C]>
4X   .IF ..TX1,ABSO5LUTE,<		
	..TX2=4x=0		
	IFE <..TX158&^O777777B17>,<
5X	  ..TX2==1		
	 5x TRA B,..TX1>
6	IFE ..TX2,<		
	68IFE <..TX1&^O77776X77>,<
	  ..TX2==6x1		
	  TLA B,(7..TX1)>>
	IFE ..78TX2,<		
	  IFE <7X<..TX1>B53-^O77777x77>,< 
	    ..TX@3 (A,B)>>	
	IF@8E ..TX2,<		
	  I@XFE <..TX1+1>,<	
@x	    ..TX4 (A,BA)>>
	IFE ..TX2,<A8		
	  TDA B,[..TX1]>	
  >,[.;'` Ax$!
	IFIDN <BA><Z>,<		
	  ..B8TX2==1
	  ANDI BXB,^-..TX1>	
	IFIBxDN <A><O>,<		
	C  ..TX2==1
	CXORC8CMI B,^-..TX1>	
	IFIDN <A><C>,<Cx		
	  ..TX2==1
D	  EQVI B,^-..TX1>QVI B,^-..TX;' DX$/
	IFIDN <DxA><NN>,<
	  ..TEX2==1
	  CAIN BE8,0>		
	IFIDN <AEX><NE>,<
	  ..TX2Ex==1
	  CAIE B,0>
	  CAIE B,0;' 00K
	..TSAC P(..ACT,B)	
	.IFp0 ..ACT,<
		PRIN	TX ?TQA - B NOT	0 IN AC>,<
		TXA B,C>
		TXA;'R up/C
	..TSAC v(..ACT,B)	
	.IFv00 ..ACT,<
	  ..JvPX1==C
	  .IF0 <w..JX1-1B0>,<
		SvpKIPGE B>,<
	   w0 .IF0 <..JX1+1>,<wP
		SKIPE B>,<
wp		MOVE .SAC,B
	x	TXNE .SAC,C>>>,x0<
		TXNE B,C>
		TXNE B,C>;'W yP0?
	..TSAC yp(..ACT,B)	
	.IFz0 ..ACT,<
	  ..Jz0X1==C
	  .IF0 <P..JX1-1B0>,<
		SpKIPL B>,<
	0  .IF0 <..JX1+1>,<
		SKIPN B>,<
	P	MOVE .SAC,B
		pTXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d   8
	.ACV2 (A)
	.ACV2 (d@ `88
   IFDEF A,<.IF A,SYMBO L,<PRINTX ACVAR @A ALREADY DEFINED`>>
	A==.FPAC+..NAC	
	$A==A		
	IFB <B>,<..NAC@=..NAC+1>
	IFNB `<B>,<
	...X==B
	IF2,<.IFN ...X ,ABSOLUTE,<PRINTX@ ?ACVAR A, B is` not absolute>>
	..NAC=..NAC+...X>NAC=..NAC+...Xd` @8H
	IFG A-`.NPAC,<PRINTX ?TOO MANY ACS USED>
	IFLE A-4,<
	 @ JSP .A16,.SAVA>`	
	IFG A-4,<
		  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; .;/
	  IFIDN.0 <A><.>,<
		XMO.PVEI .A16,B	
		P.pUSH P,.A16>
	  I/FDIF <A><.>,<
	/0  .IFATM <A>,.BL/PF4	
	  .BLF1==0	/p	
	  IFN .BLF4,<0		
	    .IF %A,00MACRO,<	
		.BLF10P==1>	
	    IFNB 0p<B>,<
		.BLF1==11>	
	    IFN .BL10F1,<		
		LOAD .A1P16,A,B
		PUSH 1pP,.A16>>
	  IFE 2.BLF1,<		;IF WASN20'T A STRUCTURE RE2PF,
	    IFN .BLF2p4,<		
	     .BLF32==<<Z A>&17B17>30-<P>B17 
	      3P.IF .BLF2,ABSOLUT3pE,< 
	       IFE4 .BLF2,<		
	    40   .BLF1==1		
	 4P      .BLF3==<Z 4pA>&777777
		PUSH5 P,.BLF3-..NA(P)>50>>> 
	  IFE .BLF5P1,<		
		PUSH P,5pA>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 -P:m
	.BLCL1 A
	.BLCL1 
f=( *P:W
	DEFINE *pA<-^OB(.FP)>
	$A==<Z A>>
	9  hx&Q
	..CSN==iA
	..CSC==0
	Ii8RP B,<
	IFE ..CiXSN-..CSC,<
	  STixOPI
	  ..CAS1 (jB)>
	..CSC==..CSC+1>..CSC==..CSD	P ?DP >D)6P D,xP D8YP D8sP D;PP D;QP D;QP D;RP D;RP D;SP D;WP D;WP D;XP D;XP D;YP 	D;YP 	D;ZP 
D;ZP 
D;[P D;[P D;\P 
D;\P 
D;]P D<ZP D=7P DI6P ?D\qP FH1P FmP S@P Z !		
	XLIST8
	LOC 0
	COPYRTX A
     .IFN .,xABSOLUTE,<PRINTX ?.CPYRT, COPYRIGH8T IS NOT ABSOLUTEX>
     IFGE .-^Ox22,<PRINTX %COPYRIGHT DOESN'T FIT 8IN SINGLE REL BLOXCK>
	RELOC
	LIST
	SALL

	LIS,<H ]0-s
	..PST==]PC&<-C>
	.IF0 .]p.PST-1,<
		SOS ^B>,<	
		MOVX .SA^0C,-..PST 
		ADDM .SAC,B>		ADDMtH 	@8N
	IRP A,	`<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
 8R
	.ENAV3 (A)
	.ENAV3 tI 
`8V
	PURGE A,A
  PURGE t,h +0:]
	IRP A,+P<
   DEFINE A<....U>>FINE A<.v=H q7
	IRP A,q0<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I qp7
	.ENSV3 (A)
	.ENSV3 v=I r07
	DEFINE A<....U>EFINE vI9A  vI9~+H $8"#
	A (\..FORN)
	A (\..~. "-
	A BP `P \Q X=|RQ &2 gX&C
	..IFT==gxA		
	IFE ..IFT,h<
	B
	..IFT==0h8>		
	IFN ..IFT,<
	C>N ..IFT,<&4 60;G
	IRPC A6P,<
	B==0
	IFGE6p "A"-"A",<IFLE "7A"-"Z",<B=1>> 
	IFGE "A"-"0",<7PIFLE "A"-"9",<B7p=1>>
	IFE "A"-"8%",<B=1>
	IFE "80A"-"$",<B=1>
	8PIFE "A"-".",<B=8p1>
	IFE B,<STOPI>>IFE B,<STOP&t<H [-a
	..PST==[0C&<-C>	
	.IF0 [P..PST-1,<
		AOS [pB>,<	
		MOVX .S\AC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P ~6k0P 6k4P 6mtP 6MiTQ @;`P ?= _P.
	..TSIZ _p(..PST,C)
	.IF0` ..PST,<
		A B`0>,<	
		..LDB .SA`PC,B,C 
		A .SAC>C 
		A .S?=	 ap.
	..TSIZ b(..PST,C)
	.IF0b0 ..PST,<
		A BbP>,<	
		..LDB .SAbpC,B,C
		A .SAcC
		..DPB .SAC,B,C>DPB .SAC,A`Q JAd
Q LAd(Q NAd+Q PAdIQ RAdLQ TAdjQ VAdkQ JApQ bAtQ dAt)Q fAtHQ hAtKQ jAtjQ lAtkQ bAQ XAQ ZA*Q \AIQ ^AhQ `AkQ XAQ nA
Q pA+Q rAKQ tAjQ vAkQ nAQ xA+Q zAjQ |AkQ xB~ K4Y
	.PSHX1 (.POPX2).PSHX1 B~	 KP4]
	.POPX4 A
	.POPX4 B~	 LP4k
	A
   LpDEFINE .PSHX1 (WCMH,STUFF)<
	WCH (M0<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 L4a
	.POPX3 B
	.POPX3 C I4I
	.PSHX1 (.PSHX2,<A>)1 C IP4M
	A (<B>)
	A (<BC	 J4U
   DEFINJ0E .PSHX1 (WCH,STUJPFF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z !"<<<A>&<B!8>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u Bp,%
<IFE <<FCILIN.(<A>)&<^-AC0>>>,<A>>!<IFN <<CPFILIN.(<A>)&<^-CpA>
>><<FILIN.(<<D<RGHBT.(<<FILIN.(D0<A>)&<^-A>>>)>_DP-1>>!<RGHBT.(A)>)>>>RGHBT.(A)>N
0@ N):A  N):N9:A  N9:Nd A" Nd Nd@A" Nd@Nd`A" Nd`NeA  NeNfA  NfO%=H kp6_
	.STKV2 (A)
	.STKV2 O%=I l06w
	IFB <BlP>,<..STKN==..STKNlp+1>
	IFNB <B>,<m
	...X==B
	IF2m0,<.IFN ...X,ABSOLmPUTE,<PRINTX ?STKVmpAR A, B is not nabsolute>>
	..STn0KN==..STKN+...X>
	..STKQ==..STKN+np1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I o07
   IFDEFoP A,<.IF A,SYMBOopL,<PRINTX STKVAR pA ALREADY DEFINEp0D>>
	DEFINE A<-pP^OB(P)>
	$A==<Z A>>
	$A==<Sd  up7/
	.TRV2 (A)
	.TRV2 (Sd@ v07C
	.TRV3 (vPA,\..NV)	
	IFB vp<B>,<..NV=..NV+1w>
	IFNB <B>,<
w0	...X==B
	IF2,<wP.IFN ...X,ABSOLUTwpE,<PRINTX ?TRVAR xA, B is not absx0olute>>
	..NV=..NV+...X>..NV=..Sd` xp7Q
   IFDEFy A,<.IF A,SYMBOy0L,<PRINTX TRVAR yPA ALREADY DEFINEDyp>>
	DEFINE A<^OzB(.FP)>
	$A==<Z A>>
	$A==<b\| !i
	.XCREF
	.XCRF1 <..ACT,.X.CSC,..CSN,..IFT,x..JX1,..MSK,..MX1,..MX2>
	.XCRF1 8<..NAC,..NRGS,..NXS,..NV,..PST,..STxKN,..STKQ,..STKR>
	.XCRF1 <..TRR,8..TSA1,..TX1,..TXX2,.FP,.FPAC,.NAC,x.SAC,.SAV1>
	.XCRF1 <.SAV2,.SAV3,8POINTR,POS,WID,..XCAS1,..CNS,..CNS2x>
	.XCRF1 <..DPB,..GNCS,..ICNS,..8JE,..LDB,..STR0,.X.STR1,..STR2>
	.xXCRF1 <..STR4,..TQO,..TQZ,..TSAC,.8.TSIZ,..TX,..TY,.XACV1,.ACV2>
	.XCxRF1 <.ACV3,.CASE,.DECR0,.IF0,.INCR80,.OPST1,.OPST2,.XSTKV1>
	.XCRF1 <x.STKV2,.STKV3,.TRV1,.TRV2,.TRV3>
	.CREF
   3>
b)H X!o
	IRP A,x<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP