Google
 

Trailing-Edge - PDP-10 Archives - BB-H137E-BM - new-subsys/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Qa@P C4@ s@7$
	..NAC==s`0		
	IRP A,<
	t  .ACV1 (A)>		
t 	.ACV3 (\..NAC)		t@
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' M8$kOP%%IA	(A,B,ADD,SUB)(AC:$S@ /p2
	..TAGF (<JUMPN A,>,) C:$s@ 0p3
	..TAGF (<JUMPLE A,>,)C:$y' 103
	..TAGF (<JUMPL A,>,) C:%C@ 203
	..TAGF (<JUMPGE A,>,)C:%I' 1p3
	..TAGF (<JUMPG A,>,) C:%c@ 003
	..TAGF (<JUMPE A,>,) C:&' 3p3!
	..TAGF 4(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G 4P3'
	..TAGF 4p(<JE <A>,<B>,>,)E <A>,<B>,>,C:' $8"#
	TXZ A,<^-<B>>TXZ A,C:'	' 2p3
	..TAGF (<JXN A,B,>,)C:'G 303
	..TAGF (<JXE A,B,>,)C:v:g .02s
	TRNA
	..TAGF (JRST,)	C;< -p2o
	..TAGF (JRST,)	..TAGF CO,,@ lP6y
	..TRR==lp10		
	RADIX 8
	m..NV==1			
	IRP m0A,<
	  .TRV1 (mPA)>		
	IFG ..NV-mp5,<PRINTX ?TOO MAnNY ARGUMENTS: A>n0
	JSP .A16,.ASSEnPT		
	RADIX ..TRRnp		
	DEFINE ENDASo.<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= 8+o8
	IFN FTSpHOW,..LOC==.


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

	..MSK==0		
	FIELDM(N0AM,<.FWORD>)	

P	..MSK==0		
	..OpFF==..OFF+NUMB	

>

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

>

DEFINE	FILLER(N0UM),<
	..FLG==POPS(..MSK)
	IFE ..pMSK,<..FLG==-1>
	IFG <^D<NUM>-<^D035-..FLG>>,<PRINTPX ?FILL TOO BIG IpN A STRUCTURE>
	...MSK==MASK.(^D0<NUM>,<..FLG+^D<NPUM>>)
	IFN FTSHOpW,<
	  PHASE ..OFF
	  EXP ...MSK0
	>
	..MSK==..MPSK!...MSK
>

p

DEFINE	HWORD(n	am),<
	..FLG==0		0	
	IFE ..MSK&.LH	PALF,<FIELDM(nam,.	pLHALF)
			  ..FL
G==1>
	IFE ..FLG
0,<..MSK==..MSK!.L
PHALF
		   IFE ..
pMSK&.RHALF,<FIELDM(nam,.RHALF)
		0		     ..FLG==1>
		   IFE ..FLG,<pNXTWRD
			      
FIELDM(nam,.LHALF
0) >
		  >
>


P
DEFINE	FIELD(NA
pM,SIZ,POS),<
	..==0		

	IFBS,<IFB <SIZ>,
	MS...MSK==.RTK>>>>) 
	  IFE ...M0SK,<..OFF==..OFF+P1 
	    ..MSK==0p		
	    ...MSK==-1
	  >
	  FIEL0DM(NAM,<...MSK>)	P
	p..FLG==-1		
	>>

	IFNB <SIZ>,<.SIZ==^D<SIZ>0> 

	IFNB <POS>P,<		
	  FIELDM(NpAM,MASK.(.SIZ,POS)) 
	  ..FLG==-10		
	  ..BITS==MAPSK.(.SIZ,POS) 
	p>

	IFE ..FLG,<IFGE <^D<.SIZ>-^D036>,< 
	  WORD(NPAM,<^D<.SIZ>/^D36p>) 
	  IFN <<^D<.SIZ>-<^D<.SIZ>/^0D36>*^D36>>,<	
	P    FIELD(...,<<^pD<.SIZ>-<^D<.SIZ>/^D36>*^D36>>) 
0	  >

	  ..FLG=P=-1		
	>>

	IFpE ..FLG,<		
	  ..BITS==MASK.(^D<.0SIZ>,<^D<.SIZ>-1>P) 

	  REPEAT <p^D36-^D<.SIZ>+1>,< 
	    IFE ..FL0G,<	
	      IFE P<..BITS&..MSK>,< p
			..MSK==..MSK!..BITS 
		..FLG0==-1 
	       > P

	    IFE ..FLpG,..BITS==..BITS_<-1> 
	    >
	 0 >

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

	MSKSTR(A'NAM,\..OFFC,..0BITS) 
	A.'NAM=P=..OFF
	IFN FTSHpOW,<
	  PHASE	A.'NAM
	  EXP	A'0NAM
	>>

	..OLPD==..BITS		
	...pOLD==..BITS		

>

DEFINE	BIT(N0AM),<
	..BITS==LPFTBT.(..OLD)	

p	IFE ..BITS,<PRINTX ?NO ROOM FOR B0IT IN LAST FIELD>P

	A%'NAM==..BpITS_<-<^D35-POS(...OLD)>> 
	A.'N0AM==..OFF		

	MPSKSTR(A'NAM,\..OpFFC,..BITS) 
	IFN FTSHOW,<
	  P0HASE ..OFF
	  EXPP A'NAM
	>

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

>
 0
DEFINE	FIELDM(NA PM,MASK),<
	IFN M pASK&..MSK,<	
	  !..MSK==0		
	  ..!0OFF==..OFF+1
	>P

	..MSK==..MSK!!pMASK	

	MSKSTR("A'NAM,\..OFFC,M"0ASK) 
	A.'NAM=="P..OFF
	IFN FTSHO"pW,<
	  PHASE	A.#'NAM
	  EXP	A'N#0AM
	>
>

DEFI#PNE ENDSTR(LENNAM<#pLEN>,LSTNAM<LST>)$,<

	IFN ..MSK,$0<..OFF==..OFF+1> $P

	A.'LSTNAM==$p..OFF	

	IFN FT%SHOW,DEPHASE

	%0..LOK==..LOK+1
	%PIFN ..LOK,<PRINTX%p ? MISSING BEGSTR&>

	IF2,<
	  I&0FDEF ...MSK,<SUPP&PRESS ...MSK>
	  &pIFDEF ..BITS,<SUP'PRESS ..BITS>
	 '0 IFDEF .SIZ,<SUPP'PRESS .SIZ>
	  IF'pDEF ..MSK,<SUPPRE(SS ..MSK>
	  IFD(0EF ..OFF,<SUPPRES(PS ..OFF>
	  IFDE(pF ..FLG,<SUPPRESS) ..FLG>
	  IFDEF)0 ..LOK,<SUPPRESS )P..LOK>
	  IFDEF )p..LOC,<SUPPRESS .*.LOC>
	  IFDEF .*0.OLD,<SUPPRESS ..*POLD>
	  IFDEF ..*p.OLD,<SUPPRESS ..+.OLD>
	>

	IF1+0,<
	  IFDEF ...M+PSK,<.XCREF ...MSK+p>
	  IFDEF ..BIT,S,<.XCREF ..BITS>,0
	  IFDEF .SIZ,<,P.XCREF .SIZ>
	  ,pIFDEF ..MSK,<.XCR-EF ..MSK>
	  IFD-0EF ..FLG,<.XCREF -P..FLG>
	  IFDEF -p..OFF,<.XCREF ..O.FF>
	  IFDEF ..L.0OK,<.XCREF ..LOK>.P
	  IFDEF ..LOC,.p<.XCREF ..LOC>
	/  IFDEF ..OLD,<.X/0CREF ..OLD>
	  I/PFDEF ...OLD,<.XCR/pEF ...OLD>
	>
0
	PURGE WORD,NXTW00RD,FILLER,HWORD,F0PIELD,BIT,FIELDM
0p
	A.'LENNAM==..1OFF-B
	IFN FTSH10OW,<RELOC ..LOC>>1P



	..MSK==01p		
	..OFF==B		
	A.D==B	

	20IFDEF ..LOK,<IFL 2P..LOK,<PRINTX ? N2pEW BEGSTR WITHOUT3 ENDSTR>>

	..LOK==-1


	..L>|(0>IBEG
	  E2 p9w
	..NA==0			
	IRP B,<
	0  .BLCL2 B>		
	PPUSH P,[..NA+1,,.p.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g {P/e
	..SVBK	{p		
	XMOVEI .A16,|a	
	PUSH P,.A16|0
  DEFINE ENDBK.|P <
	RET			
a:!				
	.POPX>:!E3XG 09_	
	..TRR=P=10		
	RADIX 8		p	
	..NA==2			
	IRP A,<
	  ..NA0=..NA+1>		
	IRP PA,<
	  .BLSU1(pA,\..NA)	
	  ..NA=..NA-1>
	..NV=0=1			
	IRP B,<
	  .TRV1 (B)>		p
  DEFINE ENDBS. <.ENBS1 <A>
		0.ENSV1 <B>> 
	JPSP .A16,.ENTER
	p..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' LX4nt
W0.==A
W1.==B				;INITM@IALIZE BREAK MASKM`
W2.==C
W3.==D
==C
W3.==?#4[0>M0B,<
	>O0QAB (>S0    ..SEJZ G84O	..V22==aGX
	..V1==a
	IFNGxB <B>,<..V22==BH>
REPEAT ..V22-<H8a>+1,<	
	%%W==.HX.V1/^D32	
	%%X==Hx..V1-%%W*^D32	
	IIFE C,BRKC1 \"<%I8%W+"0">	
	IFN CIX,BRKC2 \"<%%W+"0"Ix>
	..V1==..V1+1
		   >
.V1+1 J84S	WA.==WA.!<1B<%%X>>
AEJ\4@ Jx4Y	WA.==WAK.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: Ex41
%%FOO==Fa
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g N 4|
	BRINI. AN@,B,C,D	
	IRPCN` E,<	UNBRK. "E"O>	
	IRPC F,<	BRO KCH. "F">	
	EXPO@ W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +G@ G$9OP%%CA (A,B,)OP%%CA (AGD JX$UOP%%CA (A,B,A)P%%CA (AGDP HX$EOP%%CA (A,B,E)P%%CA (AGDp I$IOP%%CA (A,B,G)P%%CA (AGDy  IX$MOP%%CA (A,B,GE)%%CA (AGE@ GX$=OP%%CA (A,B,L)P%%CA (AGEI  H$AOP%%CA (A,B,LE)%%CA (AGE` J$QOP%%CA (A,B,N)P%%CA (AG?Z ~8{
	ASCIZ /~X
COPYRIGHT (C) D~xIGITAL EQUIPMENT CORPORATION A.
8ALL RIGHTS RESERVED.
/TS RESERVI  N0,u
	..STR0 NP(.DECR0,,<A>,<B>)CR0,,<A>,<BI6= bX&#
	A==<-1bxB<C>+1B<C-D>> c
	IF1,<IFDEF %Ac8,<PRINTX ?A ALREcXADY DEFINED>>
	DcxEFINE %A (OP,AC,dY,MSK)<
	$A==<Zd8 B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 O8${OP%%IN	(A,B,DIV)%IN	(AI<p ~0
	..SVLD	~0		
a:!				
  D~PEFINE OD. <
b:!~p				
	.POPX>			
  DEFINE LOOP. <0
	JRST a>		
  PDEFINE TOP. <a>	p	
  DEFINE ENDLP. <b>		
  DEFIN0E EXIT. <
	JRST b>T. <
	JRST IKH1 `9"
..TMSK==..MASK
..TNAC==. .NAC-1
REPEAT ..@NAC,<
   IFN ..T`MSK,<
	..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 
`8z
IFG ..NAC,<ADJSP P,..NAC> 
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<

   IFN ..TMSK,<

 	..NUM==^L<..TMSK
@>
	..TMSK==..TMS
`K-1B<..NUM>
	IFEMSK & 1B<..NU
		MOVEM..NAC(P)
		..TNAC==..TNAC-1>
	IFN ..TMSK &  1B<..NUM+1>,<
	@	DMOVEM ..NUM,-..`TNAC(P)
		..TNAC==..TNAC-2
		..T MSK==..TMSK-1B<..NUM+1>>
	>>
.K,lz dx&5
	A==<-1eB<C>+1B<C-D>> e8
	IF1,<IFDEF %AeX,<PRINTX ?A ALREexADY DEFINED>>
	DfEFINE %A (OP,AC,f8Y,MSK)<
	OP (<ACfX>,<@[EP. B'Y]>,MSK)>P. B'Y]>,MK+\Y`p0?p0?4p0?3}p0?UN.,HK+`p0?p0?4p0?3p0?UNEMK3S@ 2u....UK7<z i&U
	A==C	i8	
	IF1,<IFDEF %iXA,<PRINTX ?A ALRixEADY DEFINED>>
	jDEFINE %A (OP,ACj8,Y,MSK)<
	OP (<AjXC>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg 0
	OD.K:%G 2w....Uu`K@p /0;#
	..I==0
	..X==0
	MAKRM./p (..CON,..GET)
	0..CON <EXIND. ..I00,>
	IRPC A,<
	0P  ..SC==0
	  IFE0p "A"-"@",<..I==11
			..SC=1>
	  10IFE "A"-"(",<..C1PON <,>
			..SC=11p
			..X==1>
	  2IFE "A"-")",<
	20    IFE ..X,<PRIN2PTX %UNEXPECTED RI2pGHT PAREN IN EP. 3MACRO>
			..SC=130>
	3PIFE ..SC,<
	   ..CON <A>>>3p
	IFE ..X,<
	  4..CON <,0>>
	..C40ON <
>
	..GET
   
>
	..GET
KCm -0:w
	  DEFIN-PE ..EP. (LOCN,PTE-pXT)
	    <PRINTX. Location 'LOCN':.0 PTEXT
	    >
	.P  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` D4#
	ERJMP	[D8TMSG <? A>
		 JSHLT]
A>
		 JKbMi 4p;'<<A>B1+<C>B5+<B>>B1+<Kc  Dx4+
   IF2,<E
	IRP A,<
	IFNE8DEF A,<EXTERN A
	SUPPRE A>>>M&. U8%+OP%%FP	(A,B,FADR)FP	(AM6. Vx%7OP%%FP	(A,B,FDVR)FP	(AM2  8!<<<A>B<POS(<B>)>>&<B>>M2$*g T5F
	..XX==<T FLD(A,CM%FNC)>+T@B+<Z G>
   IFNBT` <D>,<..XX=CM%HPUP!..XX>
   IFNB U <E>,<..XX=CM%DPPU@!..XX>
   IFNB <U`F>,<..XX=CM%BRK!V..XX>
	..XX
   V IFNB <C>,<C>
 V@  IFB <C>,<0>
 V`  IFNB <D>,<POINWT 7,[ASCIZ D]>W 
   IFB <D>,<IFW@NB <EF>,<0>>
 W`  IFB <E>,<IFNB X<F>,<0>>
   IFNX B <E>,<POINT 7,[X@ASCIZ \E\]>
   X`IFNB <F>,<F>
    <F>,<F>
 M2$HG P5

	..XX==<P FLD(A,CM%FNC)>+P@B+<0,,F>
   IFNP`B <D>,<..XX=CM%HQPP!..XX>
   IFNBQ  <E>,<..XX=CM%DPQ@P!..XX>
	..XX
Q`  IFNB <C>,<C>
R IFB <C>,<0>
   IFNB <D>,<POR@INT 7,[ASCIZ DR`]>
   IFB <D>,<SIFNB <E>,<0>>
 S   IFNB <E>,<POINS@T 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. V8%3OP%%FP	(A,B,FMPR)FP	(AM7p AX4
	HRROI .AxAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ X!-

  DEFINEx e(C)<D>
..FORN==A
REPEAT B8-A+1,<
	.FORN1 X(e)
	..FORN=..FORN+1>.FORN=..FM?3@ x!C
  DEFINE %MN1 (B)<C>
	8..FORN==A		
	.FORN1 (%MN1)
	.FM?@ X!9
  DEFINEx d (B)<C>
  IRP A,<
	.FORX1 d,A>
	.FORX1NMN.Ux%/OP%%FP	(A,B,FSBR)FP	(AMS{PNF??^O44C==:NJ

	..ERR.=U0		
	  .BSIZ.=BU0		
	UP.BPOS.=D
	IFN <<A>&<^O<-Up1,,770000>>>,<
	V  MPRNTX(G2BPT,SeV@ction greater tha\Pn 12 bits: A)
	\p  ..ERR.=1
	]>
	IFN <<C>&<^O<7]077740,,0>>>,<
	 ]P MPRNTX(G2BPT,Bit]ps 0 - 12 non-zero^ in address field^0: C)
	  ..ERR.=^P1
	  >
	IFN <<^pE>&<-1,,0>>,<
	 _ MPRNTX(G2BPT,Bit_0s 0-17 non-zero i_Pn optional field:_p E)
	  ..ERR.=1`
	  >
	IFN <.BS`0IZ.&<^O<-1,,77770`P0>>>,<
	  MPRNTX`p(G2BPT,Bytesize gareater than 6 bita0s: B)
	  ..ERR.aP=1
	  >
	IFN <.apBPOS.&<^O<-1,,777b700>>>,<
	  MPRNb0TX(G2BPT,Byte offbPset greater than bp6 bits: D)
	  .c.ERR.=1
	  >
	Ic0FN ..ERR.,<-1,-1,cP-1>		
	
	IFE ..cpERR.,<
	  IFDIF d<D><>,<<<POINT .d0BSIZ.,E,.BPOS.>!dP1B12>&<^O<777740,dp,-1>>>
	epIFIDN e<D><>,<<<POINT .e0BSIZ.,E>!1B12>&<eP^O<777740,,-1>>>
	    
	    <<<fC>_<^O14>>&<^O<37f00000,,0>>!<<C>&<fP0,,-1>>!<<A>_<^Ofp22>>>
	  >
	PURgGE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,@1=#0		GENBPON{  8P;m
	..ERR.=8p0		
	IFN <<A>&<9^O<-1,,770000>>>,90<
	  MPRNTX(GFIW9PM,Section greater9p than 12 bits: A:)
	  ..ERR.=1
	:0  >
	IFN <<B>&<:P^O<777740,,0>>>,<:p
	  MPRNTX(GFIWM;,Bits 0 - 12 non-;0zero in address f;Pield: B)
	  ..E;pRR.=1
	  >
	IFN< ..ERR.,<-1,-1,-1<0>	
				
	IFE ..<PERR.,<
	  <<<B><p_<^O14>>&<^O<3700=00,,0>>!<<B>&<0,=0,-1>>!<<A>_<^O22=P>>>>
	PURGE ..ERR.
	PURGE ..ERSNn Ox$OP%%IN	(A,B,IDIV)IN	(AS)` 01W
	JUMPN PA,b		
	..SVDF		p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STS.:g 1G
	PRINTX 0% IFESK. should bPe changed to IFNJpE.
	IFNJE. <A>.
	IFNJE. <A>S9` 01w
	JUMPLE PA,b		
	..SVDF	p		
   DEFINE ..TAGF (INST,PCT)<
0	INST b'PCT>		
P   DEFINE ..TAGE p(INST,PCT)<
	INST c'PCT>		
	SS<S@ 02
	JUMPL PA,b		
	..SVDF		p	
   DEFINE ..TA GF (INST,PCT)<
	 0INST b'PCT>		
  P  DEFINE ..TAGE ( pINST,PCT)<
	INST c'PCT>		
	STSTS@ 
p0o

   IFB <BC>,<		
	..SVD0F			
	ERJMPA fP		
	JRST d		
pf:!
   DEFINE ..
TAGF (INST,PCT)<
0
	INST d'PCT>		
P
   DEFINE ..TAGE
p (INST,PCT)<
	INe'PCT>		
	>
P		IFNB <BC>,<
	ERJMPA d		
	C
	JRST e
d:!	B
e:!>
ST\G 00S

   IFB <PAB>,<		
	..SVDpF			
	ERJMP e		
	JRST c		
e:0!
   DEFINE ..TAPGF (INST,PCT)<
	pINST c'PCT>		
 	  DEFINE ..TAGE (	0INST,PCT)<
	INST	P d'PCT>		
	>
 	p  IFNB <AB>,<		

	ERJMP c		
	
0B
	JRST d
c:!	A
d:!>
c:!SUc@ 1=
   IFB <0B>,<		
	..SVDF	P		
	ERJMPA c
p   DEFINE ..TAGF (INST,PCT)<
	INS0T c'PCT>		
   DPEFINE ..TAGE (INSpT,PCT)<
	INST d'PCT>		
	>
   I0FNB <B>,<
	ERJMPPA c
	B
c:!> c
	B
c:!Sa` #02'
	JUMPGE #PA,b		
	..SVDF	#p		
   DEFINE ..T$AGF (INST,PCT)<
$0	INST b'PCT>		
$P   DEFINE ..TAGE $p(INST,PCT)<
	INST c'PCT>		
	SSdS@ !02
	JUMPG !PA,b		
	..SVDF		!p	
   DEFINE ..TA"GF (INST,PCT)<
	"0INST b'PCT>		
 "P  DEFINE ..TAGE ("pINST,PCT)<
	INST c'PCT>		
	STSq` 01g
	JUMPE PA,b		
	..SVDF		p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STSt\g 00y
	PRINTX P% IFNES. should bpe changed to IFJER.
	IFJER. <A>,<B>FJER. <A>,Su)' 01%
   IFB <PA>,<		
	..SVDF	p		
	ERJMP b
   DEFINE ..TAGF (I0NST,PCT)<
	INST Pb'PCT>		
   DEFpINE ..TAGE (INST,PCT)<
	INST c'P0CT>		
	>
   IFNPB <A>,<
	ERJMP b
	A
b:!> Sv:g p07
   IFB <AB>,<		
	..SVD0F			
	TRNA			
	PJRST c		
   DEFpINE ..TAGF (INST,PCT)<
	INST c'P0CT>		
   DEFINE P..TAGE (INST,PCT)p<
	INST d'PCT>		
	>
   IFNB <0AB>,<		
	JRST Pc		
	B
	JRST pd
c:!	A
d:!>
c:!	A
d:!>S
S@ )02Y
	JN <A>)P,<B>,c	
	..SVD)pF			
   DEFINE .*.TAGF (INST,PCT)<*0
	INST c'PCT>		*P
   DEFINE ..TAG*pE (INST,PCT)<
	I+NST d'PCT>		
	ST d'PCT>		
	S +P2k
	JE <A>+p,<B>,c	
	..SVD,F			
   DEFINE .,0.TAGF (INST,PCT)<,P
	INST c'PCT>		,p
   DEFINE ..TAG-E (INST,PCT)<
	I-0NST d'PCT>		
	ST d'PCT>		
	S< P1
   IFB <pA>,<		
	..SVDF			
	JRST b
   0DEFINE ..TAGF (INPST,PCT)<
	INST pb'PCT>		
   DEFINE ..TAGE (INST,P0CT)<
	INST c'PCPT>		
	>
   IFNBp <A>,<
	JRST b
	A
b:!> bSDS@ %027
	JXN A,%PB,c	
	..SVDF		%p	
   DEFINE ..TA&GF (INST,PCT)<
	&0INST c'PCT>		
 &P  DEFINE ..TAGE (&pINST,PCT)<
	INST d'PCT>		
	STSEc@ '02G
	JXE A,'PB,c	
	..SVDF		'p	
   DEFINE ..TA(GF (INST,PCT)<
	(0INST c'PCT>		
 (P  DEFINE ..TAGE ((pINST,PCT)<
	INST d'PCT>		
	STS7-N Nx$wOP%%IN	(A,B,IMUL)IN	(AS:  L,c
	..STR0 L0(.INCR0,,<A>,<B>)CR0,,<A>,<BS? #x"
	TXO A,<B>
	TXO A,Ut@ aP.
	..STR1 ap(..JAN,<d,<C>>,b<A>,<B>,..STR5)
d:B>,..STR5)U U0--
	..STR1 UP(..JE,<C>,<A>,<B>,..STR3)A>,<U8 Yp-Q
	..STR1Z(..JN,<C>,<A>,<B>,..STR3)A>,<U:
	..STR1 _0(..JNA3,<C>,<A>,<B>,..STR4)A>U:~  dp.+
	..STR1 e(..JNO,<d,<C>>,e0<A>,<B>,..STR5)
d:B>,..STR5)U? ^0-u
	..STR1 ^P(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0?
p0?	,p0?
3}p0?	UN.,HUN.,HA  UN.,HUNEM`p0?p0?,p0?3p0?UNEMUNEMA  UNEMUNn9hA  UNn9hUb( 8#Y
	..JX1==88B		
	.IFN ..JX18X,ABSOLUTE,<PRINTX8x B NOT ABSOLUTE
		..JX1==0>
	.I98F ..JX1,ABSOLUTE,9X<
	.IF0 <<..JX1>9x-1B0>,<	
		JUMPG:E A,C>,<
	.IF0:8 <<..JX1>+1>,<	
:X	  JUMPE A,C>,<:x	
		TXNN (A,..J;X1)
		JRST C>>>)
		JRST C>>>Ub0 C$5
	..JX1==C8B		
	.IFN ..JX1CX,ABSOLUTE,<PRINTXCx B NOT ABSOLUTE
		..JX1==0>
	.ID8F ..JX1,ABSOLUTE,DX<
	.IF0 <<..JX1>Dx-1B0>,<
		JUMPGEE A,C>,<
	..ONEE8B (..BT,B)	
	.IEXF0 ..BT,<
	  SETExCM .SAC,A		
	  FJXN (.SAC,..JX1,F8C)>,< 
	    TXNNFX A,..JX1	
	    JRST C>>>	    Ubp ;X#u
	..JX1==;xB		
	.IFN ..JX1<,ABSOLUTE,<PRINTX<8 B NOT ABSOLUTE
		..JX1==0>
	.I<xF ..JX1,ABSOLUTE,=<
	.IF0 <<..JX1>=8-1B0>,<	
		JUMPL=X A,C>,<
	.IF0 =x<<..JX1>+1>,<	
	>  JUMPN A,C>,<	>8
		TXNE (A,..JX>X1)
		JRST C>>>)
		JRST C>>>Ubx ?$
	..JX1==?8B		
	.IFN ..JX1?X,ABSOLUTE,<PRINTX?x B NOT ABSOLUTE
		..JX1==0>
	.I@8F ..JX1,ABSOLUTE,@X<
	.IF0 <<..JX1>@x-1B0>,<
		JUMPL AA,C>,<
	..ONEBA8 (..BT,B)	
	.IFAX0 ..BT,<
	  SETCAxM .SAC,A		
	  JBXE (.SAC,..JX1,CB8)>,< 
	    TXNE BXA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=>0A		
	.BPOS.=C
	..ERR.=0		
	IF>pN <<B>&<^O<77774?0,,0>>>,<
	  MPR?0NTX(L1BPT,Bits 0 ?P- 12 non-zero in ?paddress field: B@)
	  ..ERR.=1
	@0  >
	IFN <.BSIZ.@P&<^O<-1,,777700>>@p>,<
	  MPRNTX(L1ABPT,Bytesize greaA0ter than 6 bits: APA)
	Ap..ERR.=1
	  >
	IFN <.BPOBS.&<^O<-1,,777700B0>>>,<
	  MPRNTX(BPL1BPT,Byte offsetBp greater than 6 bCits: C)
	  ..ERC0R.=1
	  >
	
	ICPFN <..ERR.>,<-1,-Cp1,-1>
	
	IFE <.D.ERR.>,<
	  IFIDD0N <C><>,<POINT .DPBSIZ.,B>
	  IFDDpIF <C><>,<POINT E.BSIZ.,B,.BPOS.>E0
	  >
	PURGE ..EPERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=LP0		
	  .BSIZ.=ALp		
	M.BPOS.=C
	IFN <<B>&<^O<7M077740,,0>>>,<
	 MP MPRNTX(L2BPT,BitMps 0 - 12 non-zeroN in address fieldF: B)
	  ..ERR.=F01
	  >
	IFN <<FPD>&<-1,,0>>,<
	 Fp MPRNTX(L2BPT,BitGs 0-17 non-zero iG0n optional field:GP D)
	  ..ERR.=1Gp
	  >
	IFN <.BSHIZ.&<^O<-1,,77770H00>>>,<
	  MPRNTXHP(L2BPT,Bytesize gHpreater than 6 bitIs: A)
	  ..ERR.I0=1
	  >
	IFN <.IPBPOS.&<^O<-1,,777Ip700>>>,<
	  MPRNJTX(L2BPT,Byte offPset greater than P06 bits: C)
	  .PP.ERR.=1
	  >
	IPpFN ..ERR.,<-1,-1,Q-1>		
	
	IFE ..Q0ERR.,<
	  IFDIF QP<C><>,<<<POINT .QpBSIZ.,D,.BPOS.>!R1B12>&<^O<777740,R0,-1>>>
	S0IFIDN RP<C><>,<<<POINT .RpBSIZ.,D>!1B12>&<S^O<777740,,-1>>>
	    <1B0!<<^O<4SP00037,,-1>>&<B>>Sp>	
	  >
	PURGE T..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP@0<_0(B).YN{  50;A
	..ERR.=5P0		
	IFN <<A>&<5p^O<777740,,0>>>,<6
	  MPRNTX(LFIWM60,Bits 0 - 12 non-6Pzero in address f6pield: A)
	  ..E7RR.=1
	  >
	IFN70 ..ERR.,<-1,-1,-17P>	
	IFE ..ERR.,<7p1B0!<<^O<400037,,8-1>>&<A>>>	
	PURGE ..ERR.
	PUY$- 3P+1_<^D35-^L<A>>1_<^D35-^LY>
@ 6p+9
	..STR0 7(..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  9p+Q
	..STR0 :(..LDBE,A,B,<C>)DBE,A,B,<C[i9Q u[^+' x!Y
  DEFINE A (STUFF)<
	c8 (<STUFF>,)>

 X DEFINE c (NEW,OxLD)<
    DEFINE A (STUFF)<
	c 8(<STUFF>,<OLD'NEWX>)>>

  DEFINE xB <
    DEFINE c (NEW,OLD)<OLD>
	A ()>
OLD>[3@ 4+!<<<1_<A>>-1>B<B>>_<A>>[8@ X!<1B<<A>-1>-1B<B>><A>-1[>!` !!<<A>-<<A>/<B>>*<B>>A[?7 X"
   ..MX1x==B			
8.IFN ..MX1,ABSOLUTE,<
	MOVE A,[B]>
X   .IF ..MX1,ABSOxLUTE,<
	..MX2==0		
	IFE <..MX1>B853,<
	  ..MX2==1X
	  MOVEI A,..MxX1>	
	IFE ..MX2,<		
	IFE <..MX1>8B17,<
	  ..MX2==X1
	  MOVSI A,(.x.MX1)>>	
	IFE ..MX2,<		
	IFE <<.8.MX1>B53-^O777777X>,<
	x..MX2==1
	  HRROI A,<..M X1>>>	
	IFE ..MX 82,<		
	IFE <<..M XX1>B17-^O777777B1 x7>,<
	  ..MX2==1!
	!XHRLOI A,(..!8MX1-^O777777)>> 
	IFE ..MX2,<		
!x	  MOVE A,[..MX1]>	
  >,[..MX1[Cm +:g
	  DEFIN+0E ..MP. (LOCN,MTE+PXT,PTEXT)<
	    +pPRINTX Location ',LOCN', Macro 'MTE,0XT': PTEXT
	    ,P>
	  ..MP.(\.,A,p,<B>)
	  PURGE ..MP.
	  URGE [N^= g&E
	A==C	g8	
	IF1,<IFDEF %gXA,<PRINTX ?A ALRgxEADY DEFINED>>
	hDEFINE %A (OP,ACh8,Y,MSK)<
	$A==<hXZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg N8$sOP%%IN	(A,B,MUL)%IN	(A[Xp "8"
	MOVE .S"XAC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` #"
	MOVX .S#8AC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp K$g
	.XCREF
IFE	<<B>_-^D18>KX,<
	.CREF
	CAIKxC	A,<B>
	.XCRELF
>
IFN	<<B>_-L8^D18>,<
	.CREF
LX	CAMC	A,[B]
	Lx.XCREF
>
	.CREFCREF
>
	.CREF_@(YX W8%G
	.XCREF
IFE	<<B>_^D18>,Wx<
	.CREF
	CI	XA,(B)
	.XCREF
X8>
IFN	<<B>_^D18XX>,<
	.CREF
	C	XxA,[B]
	.XCREF
>
	.CREFCREF8%
	.XCREF
	TEST%%=0
IFE	<Px<<B>_-^D18>-^O77Q7777>,<
IFN	<<BQ8>&^O777777>,<
	TQXEST%%=1
	.CREF
Qx	DI	A,-<B>
	.RXCREF
>>
IFE	TER8ST%%,<
	OP%%IN	RXA,<B>,C
>
	PURxRGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 S8%'
	.XCREF
IFE	<<B>_-^D18>Sx,<
	.CREF
	CI	TA,<B>
	.XCREF
>
IFN	<<B>_-^DTX18>,<
	.CREF
	TxC	A,[B]
	.XCREF
>
	.CREFCRE_CL@ PP-
	..STR0 Pp(.OPST1,<A>,<B>,<C>)<A>,<B>_CLV Rp-
	..STR0 S(.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ K<Yh<..OWGP (\<A>,B,\<C>)>@/<U^O44 B-_^>
G KP<]OWGP. 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= BX4
   IFNB Bx<A>,<
	TMSG <AC>>
	CALL JSMSG0>
	CALL JSMSG0a4\G  "
	..PGV0= =.		
	.JBVER=:^O@137		
	LOC	.JBVE`R		
	BYTE	(3)D(9)A(6)B(18)C
 	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm X!<POINT WIDx(<B>),A,POS(<B>)>),A,POS(<Ba? !	<^L<<A>&<-<A>>>><<A>&<aKH1 @9>
	..NUM==`^D15
	REPEAT ^D16,<
		IFN ..MASK  & 1B<..NUM>,<
	@	POP P,..NUM>
		`..NUM==..NUM-1
	>
==..NUM-1
	aNh1 `90
	..TMSK==..MASK
	REPEAT  ..NAC,<
		..NUM=@=^L<..TMSK>
		..`TMSK==..TMSK-1B<..NUM>
		PUSH P,..NUM
	>
H P,.aR<& h>A
	TXO A,.FR8BY
	TXO A,aRd6 gP>=
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x @84JRST RSKPJRST RSKPeN^A  eN^gXY op7
	..TRR==p10		
	RADIX 8
	p0..NV==1			
	IRP pPA,<
	  .TRV1 (ppA)>		
	IFG ..NV-q5,<PRINTX ?TOO MAq0NY ARGUMENTS: A>qP
	JSP .A16,.SASEqpT		
	RADIX ..TRRr		
	DEFINE ENDSAr0.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 } 8>

..DONE}@==0
..SACC==0
.}`.NAC==0
..MASK==~0

IRP <A>,<
~ 	IFG A-^D15,<PRI~@NTX ?SAVEAC(A) I~`S ILLEGAL,
		      PRINTX ?SAVEAC  CAN ONLY BE USED@ ON ACCUMULATORS>`
	IFE A-.SAC,<..SACC==1>
	..SYA C==A				
	IFN @A-.SAC,<IFE ..MAS`K&1B<..SYAC>,<	
		..MASK==..MASK! 1B<..SYAC>	
		..@NAC==..NAC+1>>
	`>
IFE ..SACC,<USRSAV>		
IFE ..DO NE,<
  IFLE ..SA@CC,<JSP .SAC,[>
`  IFG ..SACC,<CALL [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,<IFG ..NAC,<PRSTAC>> 
		    IFG ..SAC@C,<POP P,.SAC>
	`	    POPJ P,]
>
PURGE ..NAC,..TN AC,..MASK,..TMSK,@..SACC,..NUM,..SM`SK,..DONE,..SYAC  
DONE,..SYAC g$;8 Hp,I
	..STR1 I(..TQC,,<A>,<B>,..STR4)A>,<B>g%{R E0,-
	..STR1 EP(..TQO,,<A>,<B>,..STR4)A>,<B>g',W AP,
	..STR1 Ap(..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@ !
	....Z=A
	....Z=gB8;  8R
	IFE ..D@ONE,<
		..SMSK==`0
		IRP <B>,<
			   ..SYAC==B			 		
		   ..SMSK==	@..SMSK!1B<..SYAC>	`>		
		IFE ..MASK
-..SMSK,<JSP .SAC
 ,A
				   ..DONE==1>
	>
.DONgR$g x 3
F=:0
T1=:1
T2=:2
T3=:38
T4=:4
Q1=:5
QX2=:6
Q3=:7
P1=:x10
P2=:11
P3=:12
P4=:13
P5=:148
P6=:15
CX=:16
P=:17
CX=:16Z5i
	..STKR=Z0=10		
	RADIX 8
ZP	..STKN==0
	IRP ZpA,<
	  .STKV1 ([A)>
	JSP .A16,.[0XSTKS		;Call inte[Prnal routine for [pallocation
	 EXP\ ..STKN		;Size of\0 block to allocat\Pe
	RADIX ..STKR
	DEFINE ENDSV.<.]ENSV1 <A>>
   NSV1 <A>>
   gR~  >P+w
	..STR0 >p(..DPB,A,B,<C>)DPB,A,B,<C>gV Mx$oOP%%IA	(A,B,SUB,ADD)(Ai6tP fp.9
	..STR1 g(..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` jP.W
	..STR1 jp(..TYNN,,<A>,<B>,..STR3)A>,<Bi7p @x4	
	HRROI .AAC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..SuPTR1 (..TY,C,<A>,<B>,..STR3)A>,iF wP/?
	    ..SwpTR1 (..TY,CA,<A>,<B>,..STR3)A>iFP v/3
	    ..Sv0TR1 (..TY,CE,<A>,<B>,..STR3)A>iF` vp/9
	    ..SwTR1 (..TY,CN,<A>,<B>,..STR3)A>iFp l0.e
	    ..SlPTR1 (..TY,N,<A>,<B>,..STR3)A>,iFt nP.w
	    ..SnpTR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP m.k
	    ..Sm0TR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` mp.q
	    ..SnTR1 (..TY,NN,<A>,<B>,..STR3)A>iFx o0.}
	    ..SoPTR1 (..TY,O,<A>,<B>,..STR3)A>,iF| qP/
	    ..SqpTR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P p/
	    ..Sp0TR1 (..TY,OE,<A>,<B>,..STR3)A>iF}` pp/	
	    ..SqTR1 (..TY,ON,<A>,<B>,..STR3)A>iGP r0/
	    ..SrPTR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT tP/'
	    ..StpTR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP s/
	    ..Ss0TR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU` sp/!
	    ..StTR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ dp69
	..TRR==e10		
	RADIX 8
	e0..NV==1			
	IRP ePA,<
	  .TRV1 (epA)>		
	JSP .A16,f.XTRST		
	fEXP .f0.NV-1		;Size of bfPlock to allocate
	RADIX ..TRR		
g	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib /x"
		..TX(C,A,<B>)..TX(Cib 18#
		..TX(CA,A,<B>).TX(CibP 08#
		..TX(CE,A,<B>).TX(Cib` 0x#
		..TX(CN,A,<B>).TX(Cibp )x"O
		..TX(N,A,<B>)..TX(Nibt +8"[
		..TX(NA,A,<B>).TX(NibtP *8"S
		..TX(NE,A,<B>).TX(Nibu` *x"W
		..TX(NN,A,<B>).TX(Nibx +x"_
		..TX(O,A,<B>)..TX(Oib| -8"k
		..TX(OA,A,<B>).TX(Oib|P ,8"c
		..TX(OE,A,<B>).TX(Oib}` ,x"g
		..TX(ON,A,<B>).TX(OicP -x"o
		..TX(Z,A,<B>)..TX(ZicT /8"{
		..TX(ZA,A,<B>).TX(ZicTP .8"s
		..TX(ZE,A,<B>).TX(ZicU` .x"w
		..TX(ZN,A,<B>).TX(Zk:*g FX47
%%FOO==Fxa
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; 7f,g&tj7m$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  X!<^L<-<<A>_<^L<A>>>-1>>>q
fC@ Y05K
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? $x"'
	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 %a
	A:&@ ?0,	
	..TSIZ ?P(..PST,C)
	.CAS?pE ..PST,<<
		MOV@EM A,B>,<
		HR@0RM A,B>,<
		HR@PLM A,B>,<
		DP@pB A,[POINT WID(<AC>),B,POS(<C>)]>>B,POS(<C>):<;Y x(
   DEFINE ..CNS2 (NEW,OLD8)<
	  OLD>			
	..CNS ()>			
	:L;Y }X'{
   DEFIN}xE ..CNS (ARG)<
	~..CNS2 <ARG>,>
~8
   DEFINE ..CNS2~X (NEW,OLD)<
	DEF~xINE ..CNS (ARG)<
	  ..CNS2 <ARG>,8<OLD'NEW>>>
   OLD'NEW>>>
   :Mi 503;
 DEFINE 5PELSE. <
	..TAGE 5p(JRST,)		
	..TAG6F (,<:!>)		
	SYN60 ..TAGE,..TAGF	
6P   DEFINE ELSE. <6p....U>>	

 DEFI7NE ENDIF. <
	..T70AGF (,<:!>)		
	..RSDF>			
   .:TH bP.
	..JNA3 (A,C,D)JNA3 :TI c.#
	..TSAC c0(..ACT,C)
	.IF0cP ..ACT,<
	  SETCcpM .SAC,C	
	  JXdE (.SAC,D,<B>)>d0,<	
	  JXO (C,D,<B>)>O (C,:TP V-K
	..TSAC V0(..ACT,B)	
	.IFVP0 ..ACT,<
	  ..TVpSIZ (..PST,C)	
W	  .CASE ..PST,<<W0
		SKIPN B	
		WPJRST A>,<
		HRRWpZ .SAC,B	
		JUMXPE .SAC,A>,<
		X0HLRZ .SAC,B	
		XPJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<Y0A>)>>>,<
	  JXE (B,C,<A>)>E:U` ZP-o
	..TSAC Zp(..ACT,B)	
	.IF[0 ..ACT,<
	  ..T[0SIZ (..PST,C)
	[P  .CASE ..PST,<<
		SKIPE B	
		J\RST A>,<
		HRRZ\0 .SAC,B	
		JUMP\PN .SAC,A>,<
		H\pLRZ .SAC,B	
		J]UMPN .SAC,A>,<
]0		MOVE .SAC,B	
]P		JXN (.SAC,C,<]pA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) _p.	
	..TSAC `(..ACT,B)
	.IF0`0 ..ACT,<
	  SETC`PM .SAC,B	
	  JX`pN (.SAC,C,<A>)>a,<	
	  JXF (B,C,<A>)>F (B,:Ukh ep./
	..JN (A,C,D)..JN (:Uki f0.3
	..JE (<B>,C,D)JE (<:dH@ 7P+K
	..TSIZ 7p(..PST,C)
	.CAS8E ..PST,<<
		MOV80E A,B>,<
		HRR8PZ A,B>,<
		HLR8pZ A,B>,<
		LDB9 A,[POINT WID(<90C>),B,POS(<C>)]>>B,POS(<C>)]:dHR :P+q
	..TSIZ :p(..PST,C)
	.CAS;E ..PST,<<
		MOV;0E A,B>,<
		HRR;PE A,B>,<
		HLR;pE A,B>,<
		JSP< .SAC,[LDB A,[PO<0INT WID(<C>),B,<PPOS(<C>)]
			  <p..MSK==MASK.(WID(=C),35)
			  TXN=0E A,LFTBT.(..MSK=P)	
			  TXO A,^=p-..MSK	
			  PUR>GE ..MSK
			  JRST (.SAC)]>> JR:}i1 ax&
	A==<<<b-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx Np<}IFE 10-8, O  <.%AC!<B>>+ O0			     IFE 10-^DOP10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 3S
	.POPX;LH k&i
	IFNDEF k8C,<PRINTX ?C ISkX NOT DEFINED
	  kxA (<B>,<D>,.FWlORD)>	
	IFDEF Cl8,<
	IFNDEF %C,<lX
	  A (<B>,<Dlx>,C)>	
	IFDEF %mC,<
	  %C (A,<B>,<D>,C)>>;LH mX')

	..NS==0mx			
	IRP C,<..NnS=..NS+1>	
	IFE n8..NS,<PRINTX ?EMPnXTY STRUCTURE LISTnx, A>
	IFE ..NS-o1,<		
	  ..STR0 o8(A,<B>,<C>,<DoX>)>
	IFG ..NS-1,ox<		
	..ICNS			
p	..CNS (<E (A,<p8B>,,>) 
	IRP CpX,<		
	  IFNDEF pxC,<PRINTX C NOT qDEFINED>
	  IFDEq8F C,<
	  IFNDEFqX %C,<
	  ..CNS qx(<,C,D>)>	
	  rIFDEF %C,<
	  %r8C (..STR2,,<D>,rXC)> 
	  ..CNS (rx<)>)		
	  ..GCNSs		
	  ..ICNS		
s8	  ..CNS (<E (AsX,<B>>) 
	  IFNDsxEF %C,<
	  ..CNtS (<,C,D>)>	
	t8  IFDEF %C,<
	 tX %C (..STR2,,<Dtx>,C)>>> 
	..CNSu (<,,)>)		
	..GCNS>)>)		
	..GC;LI uX'-
	..CNS (<,C,B>).CNS (;LI v'C

	IFDIF <v8D><F>,<
	  IFNvXB <D>,<
	    Avx (<B>,D,..MSK)	w
	    IFNB <F>,w8<PRINTX C AND EwX ARE IN DIFFERENTwx WORDS>>
	  ..MSxK==0>		
	IFNB <x8F>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ xx'S

	IFDIF <yD><F>,<	
	  IFy8NB <D>,<
	    yXA (<B>,D,..MSK)yx>	
	  ..MSK==0>	z	
	IFNB <F>,<
z8	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ zx'i

	IFDIF <{D><F>,<	
	  IF{8NB <D>,<
	    I{XFNB <F>,<		
		{xA1 (B,D,..MSK)>| 
	    IFB <F>,|8<		
		A2 (B,D|X,..MSK)>> 
	  ..|xMSK==0>		
	IFNB }<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU }/m
	SYN END}0BK.,a
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i 7p3Q
	SYN ELS8E.,a
	SYN ENDIF80.,b
	SYN ..TAGF8P,c
	SYN ..TAGE,8pd
	.PSHX <
	  9SYN a,ELSE.
	  90SYN b,ENDIF.
	 9P SYN c,..TAGF
	9p  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k 0

	SYN OD.0,a
	SYN LOOP.,Pb
	SYN TOP.,c
p	SYN EXIT.,d
	SYN ENDLP.,e
	.P0SHX <
	 SYN a,OPD.
	 SYN b,LOOPp.
	SYN c,TOP.
	 SYN d,EXIT.
0	 SYN e,ENDLP.> SYN e,ENDLP.>;$r 2{....U`;$s 2y....U;&` IP,]
	..TSIZ Ip(..PST,C)
	.IF0J ..PST,<		
		SETJ0CMM B>,<	
	Jp..JPTSAC (..ACT,B)	
	K.IF0 ..ACT,<
		MOVX .SAC,C
K0		XORM .SAC,B>,<KP
		..TX(C,B,C)>>..TX(C,B,C);&` F,C
	..TSIZ F0(..PST,C)
	.CASFPE ..PST,<<
		SETFpOM B>,<
		HLLOSG B>,<
		HRROS G0B>,<
	  ..TSAC (GP..ACT,B)
	  .IFGp0 ..ACT,<
		MOVXH .SAC,C
		IORM H0.SAC,B>,<
		..TX (O,B,C)>>>T;&@ B0,'
	..TSIZ BP(..PST,C)	
	.CABpSE ..PST,<<
		SECTZM B>,<	
		HLLC0ZS B>,<	
		HRRZCPS B>,<	
	  ..TSCpAC (..ACT,B)	
	D  .IF0 ..ACT,<
	D0	MOVX .SAC,C	
	DP	ANDCAM .SAC,B>,Dp<
		..TX (Z,B,C)>>>TX (Z,B,;&81 ^%{
	A==0		^8	
	..TSA1==<Z B^X>		
	.IF ..TSA1,^xABSOLUTE,<	
	  I_FE ..TSA1&^O77777_87777760,<A==1>> 
	60,<A==1>> ;&:= \X%m
	A==3		\x	
	IFE <B>+1,<]A=0>	
	IFE <B>-]8^O777777,<A==1> ]X
	IFE <B>-^O777777B17,<A==2>7;&;Q _x&
	A==0		`	
	..TSA1==0		
`8	IRPC C,<
	  ..`XTSA1=..TSA1+1
	a`x IFE ..TSA1-B,<
	   IFIDN <C><a8D>,<
		A==1>		
	;'STOPI>>		
   ..TX1%X==C			
&.IFN %x..TX1,ABSOLUTE,<
	TDA B,[C]>
&8   .IF ..TX1,ABSO&xLUTE,<		
	..TX2=&X=0		
	IFE <..TX1'&^O777777B17>,<
'8	  ..TX2==1		
	 'X TRA B,..TX1>
'x	IFE ..TX2,<		
	(IFE <..TX1&^O7777(877>,<
	  ..TX2==(X1		
	  TLA B,((x..TX1)>>
	IFE ..)TX2,<		
	  IFE <)8<..TX1>B53-^O7777)X77>,< 
	    ..TX1x3 (A,B)>>	
	IF2E ..TX2,<		
	  I28FE <..TX1+1>,<	
2X	    ..TX4 (A,B2x)>>
	IFE ..TX2,<3		
	  TDA B,[..TX1]>	
  >,[.;'` 3X#/
	IFIDN <3xA><Z>,<		
	  ..4TX2==1
	  ANDI 48B,^-..TX1>	
	IFI4XDN <A><O>,<		
	4x  ..TX2==1
	58OR5CMI B,^-..TX1>	
	IFIDN <A><C>,<5X		
	  ..TX2==1
5x	  EQVI B,^-..TX1>QVI B,^-..TX;' 68#=
	IFIDN <6XA><NN>,<
	  ..T6xX2==1
	  CAIN B7,0>		
	IFIDN <A78><NE>,<
	  ..TX27X==1
	  CAIE B,0>
	  CAIE B,0;' z/Y
	..TSAC z0(..ACT,B)	
	.IFzP0 ..ACT,<
		PRINzpTX ?TQA - B NOT{ IN AC>,<
		TXA B,C>
		TXA;'R gP.Q
	..TSAC gp(..ACT,B)	
	.IFh0 ..ACT,<
	  ..Jh0X1==C
	  .IF0 <hp..JX1-1B0>,<
		ShPKIPGE B>,<
	   i .IF0 <..JX1+1>,<i0
		SKIPE B>,<
iP		MOVE .SAC,B
	ip	TXNE .SAC,C>>>,j<
		TXNE B,C>
		TXNE B,C>;'W k0/M
	..TSAC kP(..ACT,B)	
	.IFkp0 ..ACT,<
	  ..JlX1==C
	  .IF0 <x0..JX1-1B0>,<
		SxPKIPL B>,<
	y  xp.IF0 <..JX1+1>,<
		SKIPN B>,<
	y0	MOVE .SAC,B
		yPTXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  u7(
	.ACV2 (A)
	.ACV2 (d@ u@7F
   IFDEFu` A,<.IF A,SYMBOvL,<PRINTX ACVAR v A ALREADY DEFINEDv@>>
	A==.FPAC+..v`NAC	
	$A==A		
	IFB <B>,<..NACw =..NAC+1>
	IFNB w@<B>,<
	...X==Bw`
	IF2,<.IFN ...Xx,ABSOLUTE,<PRINTXx  ?ACVAR A, B isx@ not absolute>>
x`	..NAC=..NAC+...X>NAC=..NAC+...Xd` y 7V
	IFG A-y@.NPAC,<PRINTX ?TOy`O MANY ACS USED>
	IFLE A-4,<
	 z  JSP .A16,.SAVA>z@	
	IFG A-4,<
	z`  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; p:=
	  IFIDN  <A><.>,<
		XMO 0VEI .A16,B	
		P PUSH P,.A16>
	  I pFDIF <A><.>,<
	!  .IFATM <A>,.BL!0F4	
	  .BLF1==0	!P	
	  IFN .BLF4,<!p		
	    .IF %A,"MACRO,<	
		.BLF1"0==1>	
	    IFNB "P<B>,<
		.BLF1=="p1>	
	    IFN .BL#F1,<		
		LOAD .A#016,A,B
		PUSH #PP,.A16>>
	  IFE #p.BLF1,<		;IF WASN$'T A STRUCTURE RE$0F,
	    IFN .BLF$P4,<		
	     .BLF$p2==<<Z A>&17B17>%-<P>B17 
	      %0.IF .BLF2,ABSOLUT%PE,< 
	       IFE%p .BLF2,<		
	    &   .BLF1==1		
	 &0      .BLF3==<Z &PA>&777777
		PUSH&p P,.BLF3-..NA(P)>'>>> 
	  IFE .BLF'01,<		
		PUSH P,'PA>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 09{
	.BLCL1 A
	.BLCL1 
f=( 09e
	DEFINE PA<-^OB(.FP)>
	$A==<Z A>>
	9  ZX%_
	..CSN==ZxA
	..CSC==0
	I[RP B,<
	IFE ..C[8SN-..CSC,<
	  ST[XOPI
	  ..CAS1 ([xB)>
	..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 FmP S@P Z x 		
	XLIST
	LOC 0
	COPYRT8 A
     .IFN .,XABSOLUTE,<PRINTX x?.CPYRT, COPYRIGHT IS NOT ABSOLUTE8>
     IFGE .-^OX22,<PRINTX %COPYRxIGHT DOESN'T FIT IN SINGLE REL BLO8CK>
	RELOC
	LIST
	SALL

	LIS,<H O-
	..PST==O0C&<-C>
	.IF0 .OP.PST-1,<
		SOS OpB>,<	
		MOVX .SAPC,-..PST 
		ADDM .SAC,B>		ADDMtH { 7\
	IRP A,{@<
	  .ENAV2 (A)>	  .ENAV2 (A)tI |7`
	.ENAV3 (A)
	.ENAV3 tI |@7d
	PURGE A,A
  PURGE t,h 9k
	IRP A,0<
   DEFINE A<....U>>FINE A<.v=H bp6
	IRP A,c<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I cP6
	.ENSV3 (A)
	.ENSV3 v=I d6!
	DEFINE A<....U>EFINE vI9A  vI9~+H !1
	A (\..FORN)
	A (\..~. !;
	A BP `P \Q X=|RQ &2 Y8%Q
	..IFT==YXA		
	IFE ..IFT,Yx<
	B
	..IFT==0Z>		
	IFN ..IFT,<
	C>N ..IFT,<&4 (:U
	IRPC A(0,<
	B==0
	IFGE(P "A"-"A",<IFLE "(pA"-"Z",<B=1>> 
	IFGE "A"-"0",<)0IFLE "A"-"9",<B)P=1>>
	IFE "A"-")p%",<B=1>
	IFE "*A"-"$",<B=1>
	*0IFE "A"-".",<B=*P1>
	IFE B,<STOPI>>IFE B,<STOP&t<H Lp,o
	..PST==MC&<-C>	
	.IF0 M0..PST-1,<
		AOS MPB>,<	
		MOVX .SMpAC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P u6k0P 6k4P 6mtP 6MiTQ @;`P ?= Q0-
	..TSIZ QP(..PST,C)
	.IF0Qp ..PST,<
		A BR>,<	
		..LDB .SAR0C,B,C 
		A .SAC>C 
		A .S?=	 SP-'
	..TSIZ Sp(..PST,C)
	.IF0T ..PST,<
		A BT0>,<	
		..LDB .SATPC,B,C
		A .SATpC
		..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~ <p3g
	.PSHX1 (.POPX2).PSHX1 B~	 =03k
	.POPX4 A
	.POPX4 B~	 >03y
	A
   >PDEFINE .PSHX1 (WC>pH,STUFF)<
	WCH (?<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 =p3o
	.POPX3 B
	.POPX3 C :p3W
	.PSHX1 (.PSHX2,<A>)1 C ;03[
	A (<B>)
	A (<BC	 ;p3c
   DEFIN<E .PSHX1 (WCH,STU<0FF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z x!<<<A>&<B>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u 4P+3
<IFE <<F4pILIN.(<A>)&<^-A5>>>,<A>>!<IFN <<50FILIN.(<A>)&<^-5PA>
>><<FILIN.(<<5p<RGHBT.(<<FILIN.(6<A>)&<^-A>>>)>_60-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 ]P5m
	.STKV2 (A)
	.STKV2 O%=I ^6
	IFB <B^0>,<..STKN==..STKN^P+1>
	IFNB <B>,<^p
	...X==B
	IF2_,<.IFN ...X,ABSOL_0UTE,<PRINTX ?STKV_PAR A, B is not _pabsolute>>
	..ST`KN==..STKN+...X>
	..STKQ==..STKN+`P1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I a6
   IFDEFa0 A,<.IF A,SYMBOaPL,<PRINTX STKVAR apA ALREADY DEFINEbD>>
	DEFINE A<-b0^OB(P)>
	$A==<Z A>>
	$A==<Sd  gP6=
	.TRV2 (A)
	.TRV2 (Sd@ h6Q
	.TRV3 (h0A,\..NV)	
	IFB hP<B>,<..NV=..NV+1hp>
	IFNB <B>,<
i	...X==B
	IF2,<i0.IFN ...X,ABSOLUTiPE,<PRINTX ?TRVAR ipA, B is not absjolute>>
	..NV=..NV+...X>..NV=..Sd` jP6_
   IFDEFjp A,<.IF A,SYMBOkL,<PRINTX TRVAR k0A ALREADY DEFINEDkP>>
	DEFINE A<^OkpB(.FP)>
	$A==<Z A>>
	$A==<b\| x w
	.XCREF
	.XCRF1 <..ACT,.8.CSC,..CSN,..IFT,X..JX1,..MSK,..MX1x,..MX2>
	.XCRF1 	<..NAC,..NRGS,..N	8S,..NV,..PST,..ST	XKN,..STKQ,..STKR>	x
	.XCRF1 <..TRR,
..TSA1,..TX1,..TX
82,.FP,.FPAC,.NAC,
X.SAC,.SAV1>
	.XC
xRF1 <.SAV2,.SAV3,POINTR,POS,WID,..8CAS1,..CNS,..CNS2X>
	.XCRF1 <..DPBx,..GNCS,..ICNS,..
JE,..LDB,..STR0,.
8.STR1,..STR2>
	.
XXCRF1 <..STR4,..T
xQO,..TQZ,..TSAC,.
	.XC<.ACV3,.CASE,0,.OPST1,.OPST2,.8STKV1>
	.XCRF1 <X.STKV2,.STKV3,.TRxV1,.TRV2,.TRV3>
	.CREF
   3>
b)H 8 }
	IRP A,X<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP