Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 6-exec/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Qa@P C4@ 8(
	..NAC== 0		
	IRP A,<
	@  .ACV1 (A)>		
`	.ACV3 (\..NAC)		
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' ]x%oOP%%IA	(A,B,ADD,SUB)(AC:$S@ @04
	..TAGF (<JUMPN A,>,) C:$s@ A04
	..TAGF (<JUMPLE A,>,)C:$y' Ap4
	..TAGF (<JUMPL A,>,) C:%C@ Bp4
	..TAGF (<JUMPGE A,>,)C:%I' B04
	..TAGF (<JUMPG A,>,) C:%c@ @p4
	..TAGF (<JUMPE A,>,) C:&' D04%
	..TAGF DP(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G E4+
	..TAGF E0(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 4x#'
	TXZ A,<^-<B>>TXZ A,C:'	' C04
	..TAGF (<JXN A,B,>,)C:'G Cp4
	..TAGF (<JXE A,B,>,)C:v:g >p3w
	TRNA
	..TAGF (JRST,)	C;< >03s
	..TAGF (JRST,)	..TAGF CO,,@ }7}
	..TRR==}010		
	RADIX 8
	}P..NV==1			
	IRP }pA,<
	  .TRV1 (~A)>		
	IFG ..NV-~05,<PRINTX ?TOO MA~PNY ARGUMENTS: A>~p
	JSP .A16,.ASSET		
	RADIX ..TRR0		
	DEFINE ENDASP.<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= x,x
	IFN FTS0HOW,..LOC==.

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

	..MSPK==0		
	FIELDM(NpAM,<.FWORD>)	

	..MSK==0		
	..O0FF==..OFF+NUMB	
P
>

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

>
P
DEFINE	FILLER(NpUM),<
	..FLG==POS(..MSK)
	IFE ..0MSK,<..FLG==-1>
P	IFG <^D<NUM>-<^Dp35-..FLG>>,<PRINTX ?FILL TOO BIG I0N A STRUCTURE>
P	...MSK==MASK.(^Dp<NUM>,<..FLG+^D<NUM>>)
	IFN FTSHO0W,<
	  PHASE ..OPFF
	  EXP ...MSKp
	>
	..MSK==..MSK!...MSK
>

0

DEFINE	HWORD(nPam),<
	..FLG==0	p	
	IFE ..MSK&.LHALF,<FIELDM(nam,.0LHALF)
			  ..FLPG==1>
	IFE ..FLGp,<..MSK==..MSK!.LHALF
		   IFE ..0MSK&.RHALF,<FIELDPM(nam,.RHALF)
		p		     ..FLG==1>
		   IFE ..FLG,<0NXTWRD
			      PFIELDM(nam,.LHALFp) >
		  >
>


DEFINE	FIELD(NA0M,SIZ,POS),<
	..PFLG==0		

	IFB p<POS>,<IFB <SIZ>,<
	  ...MSK==.RT0MSK(<<^-<<..MSK>>P>>) 
	  IFE ...MpSK,<..OFF==..OFF+1 
	    ..MSK==00		
	    ...MSK==P-1
	  >
	  FIELpDM(NAM,<...MSK>)	 
	 0..FLG==-1		
	>>

	IFNB <SI PZ>,<.SIZ==^D<SIZ> p> 

	IFNB <POS>!,<		
	  FIELDM(N!0AM,MASK.(.SIZ,POS!P)) 
	  ..FLG==-1!p		
	  ..BITS==MA"SK.(.SIZ,POS) 
	"0>

	IFE ..FLG,<"PIFGE <^D<.SIZ>-^D"p36>,< 
	  WORD(N#AM,<^D<.SIZ>/^D36#0>) 
	  IFN <<^D<#P.SIZ>-<^D<.SIZ>/^#pD36>*^D36>>,<	
	$    FIELD(...,<<^$0D<.SIZ>-<^D<.SIZ>$P/^D36>*^D36>>) 
$p	  >

	  ..FLG=%=-1		
	>>

	IF%0E ..FLG,<		
	  .%P.BITS==MASK.(^D<.%pSIZ>,<^D<.SIZ>-1>&) 

	  REPEAT <&0^D36-^D<.SIZ>+1>,&P< 
	    IFE ..FL&pG,<	
	      IFE '<..BITS&..MSK>,< '0
			..MSK==..MSK'P!..BITS 
		..FLG'p==-1 
	       > (

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

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

	MSKSTR(*PA'NAM,\..OFFC,..*pBITS) 
	A.'NAM=+=..OFF
	IFN FTSH+0OW,<
	  PHASE	A+P.'NAM
	  EXP	A'+pNAM
	>>

	..OL,D==..BITS		
	...,0OLD==..BITS		

,P>

DEFINE	BIT(N,pAM),<
	..BITS==L-FTBT.(..OLD)	

-0	IFE ..BITS,<PRIN-PTX ?NO ROOM FOR B-pIT IN LAST FIELD>.

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

	M/SKSTR(A'NAM,\..O/0FFC,..BITS) 
	I/PFN FTSHOW,<
	  P/pHASE ..OFF
	  EX0P A'NAM
	>

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

>
0p
DEFINE	FIELDM(NA1M,MASK),<
	IFN M10ASK&..MSK,<	
	  1P..MSK==0		
	  ..1pOFF==..OFF+1
	>

	..MSK==..MSK!20MASK	

	MSKSTR(2PA'NAM,\..OFFC,M2pASK) 
	A.'NAM==3..OFF
	IFN FTSHO30W,<
	  PHASE	A.3P'NAM
	  EXP	A'N3pAM
	>
>

DEFI4NE ENDSTR(LENNAM<40LEN>,LSTNAM<LST>)4P,<

	IFN ..MSK,4p<..OFF==..OFF+1> 5

	A.'LSTNAM==50..OFF	

	IFN FT5PSHOW,DEPHASE

	5p..LOK==..LOK+1
	6IFN ..LOK,<PRINTX60 ? MISSING BEGSTR6P>

	IF2,<
	  I6pFDEF ...MSK,<SUPP7RESS ...MSK>
	  70IFDEF ..BITS,<SUP7PPRESS ..BITS>
	 7p IFDEF .SIZ,<SUPP8RESS .SIZ>
	  IF80DEF ..MSK,<SUPPRE8PSS ..MSK>
	  IFD8pEF ..OFF,<SUPPRES9S ..OFF>
	  IFDE90F ..FLG,<SUPPRESS9P ..FLG>
	  IFDEF9p ..LOK,<SUPPRESS :..LOK>
	  IFDEF :0..LOC,<SUPPRESS .:P.LOC>
	  IFDEF .:p.OLD,<SUPPRESS ..;OLD>
	  IFDEF ..;0.OLD,<SUPPRESS ..;P.OLD>
	>

	IF1;p,<
	  IFDEF ...M<SK,<.XCREF ...MSK<0>
	  IFDEF ..BIT<PS,<.XCREF ..BITS><p
	  IFDEF .SIZ,<=.XCREF .SIZ>
	  =0IFDEF ..MSK,<.XCR=PEF ..MSK>
	  IFD=pEF ..FLG,<.XCREF >..FLG>
	  IFDEF >0..OFF,<.XCREF ..O>PFF>
	  IFDEF ..L>pOK,<.XCREF ..LOK>?
	  IFDEF ..LOC,?0<.XCREF ..LOC>
	?P  IFDEF ..OLD,<.X?pCREF ..OLD>
	  I@FDEF ...OLD,<.XCR@0EF ...OLD>
	>
@P
	PURGE WORD,NXTW@pRD,FILLER,HWORD,FAIELD,BIT,FIELDM
A0
	A.'LENNAM==..APOFF-B
	IFN FTSHApOW,<RELOC ..LOC>>B



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

	BpIFDEF ..LOK,<IFL C..LOK,<PRINTX ? NC0EW BEGSTR WITHOUTCP ENDSTR>>

	..LOK==-1


	..L@)	0`#?MBEG
	  E2 .0:{
	..NA==0.P			
	IRP B,<
	.p  .BLCL2 B>		
	/PUSH P,[..NA+1,,./0.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g 
0i
	..SVBK	
0		
	XMOVEI .A16,
Pa	
	PUSH P,.A16
p
 DEFINE ENDBK.
	RET			
a:!				
	.POPX>:!E3XG (p:c	
	..TRR=)=10		
	RADIX 8		)0	
	..NA==2			
	)PIRP A,<
	  ..NA)p=..NA+1>		
	IRP *A,<
	  .BLSU1(*0A,\..NA)	
	  ..N*PA=..NA-1>
	..NV=*p=1			
	IRP B,<
	  .TRV1 (B)>		+0
  DEFINE ENDBS.+P <.ENBS1 <A>
		+p.ENSV1 <B>> 
	J,SP .A16,.ENTER
	,0..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' ]5rP
W0.==A
W1.==B				;INIT^IALIZE BREAK MASK^ 
W2.==C
W3.==D
==C
W3.==@'5,0\qP
	?S0QAB (?W0    ..SEJZ Wx5S	..V22==aX
	..V1==a
	IFNX8B <B>,<..V22==BXX>
REPEAT ..V22-<Xxa>+1,<	
	%%W==.Y.V1/^D32	
	%%X==Y8..V1-%%W*^D32	
	YXIFE C,BRKC1 \"<%Yx%W+"0">	
	IFN CZ,BRKC2 \"<%%W+"0"Z8>
	..V1==..V1+1
		   >
.V1+1 Zx5W	WA.==WA.!<1B<%%X>>
AEJ\4@ [85]	WA.==WA[X.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: V855
%%FOO==VXa
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g ^`6
	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@ WX%=OP%%CA (A,B,)OP%%CA (AGD [%YOP%%CA (A,B,A)P%%CA (AGDP Y%IOP%%CA (A,B,E)P%%CA (AGDp YX%MOP%%CA (A,B,G)P%%CA (AGDy  Z%QOP%%CA (A,B,GE)%%CA (AGE@ X%AOP%%CA (A,B,L)P%%CA (AGEI  XX%EOP%%CA (A,B,LE)%%CA (AGE` ZX%UOP%%CA (A,B,N)P%%CA (AG?Z x 
	ASCIZ /
COPYRIGHT (C) D8IGITAL EQUIPMENT XCORPORATION A.
xALL RIGHTS RESERVED.
/TS RESERVI  ^p-y
	..STR0 _(.DECR0,,<A>,<B>)CR0,,<A>,<BI6= s''
	A==<-1s8B<C>+1B<C-D>> sX
	IF1,<IFDEF %Asx,<PRINTX ?A ALREtADY DEFINED>>
	Dt8EFINE %A (OP,AC,tXY,MSK)<
	$A==<Ztx B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 _x%OP%%IN	(A,B,DIV)%IN	(AI<p P1
	..SVLD	p		
a:!				
  DEFINE OD. <
b:!0				
	.POPX>			
  DEFINE LOOP. <p
	JRST a>		
  DEFINE TOP. <a>	0	
  DEFINE ENDLPP. <b>		
  DEFINpE EXIT. <
	JRST b>T. <
	JRST IKH1   :&
..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  9~
IFG ..NA@C,<ADJSP P,..NAC>`
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
@   IFN ..TMSK,<
`	..NUM==^L<..TMSK>
	..TMSK==..TMS K-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 u8'9
	A==<-1uXB<C>+1B<C-D>> ux
	IF1,<IFDEF %Av,<PRINTX ?A ALREv8ADY DEFINED>>
	DvXEFINE %A (OP,AC,vxY,MSK)<
	OP (<ACw>,<@[EP. B'Y]>,MSK)>P. B'Y]>,MK+\Y`p0@p0@4p0@5p0@UN.,HK+`p0@"p0@4p0@"5p0@UNEMK3S@ 3y....UK7<z yX'Y
	A==C	yx	
	IF1,<IFDEF %zA,<PRINTX ?A ALRz8EADY DEFINED>>
	zXDEFINE %A (OP,ACzx,Y,MSK)<
	OP (<A{C>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg 1	
	OD.K:%G 3{....UK@p ?p<'
	..I==0
	..X==0
	MAKRM.@0 (..CON,..GET)
	@P..CON <EXIND. ..I@p,>
	IRPC A,<
	A  ..SC==0
	  IFEA0 "A"-"@",<..I==1AP
			..SC=1>
	  ApIFE "A"-"(",<..CBON <,>
			..SC=1B0
			..X==1>
	  BPIFE "A"-")",<
	Bp    IFE ..X,<PRINCTX %UNEXPECTED RIC0GHT PAREN IN EP. CPMACRO>
			..SC=1Cp>
	DIFE ..SC,<
	   ..CON <A>>>D0
	IFE ..X,<
	  DP..CON <,0>>
	..CDpON <
>
	..GET
   
>
	..GET
KCm =p;{
	  DEFIN>E ..EP. (LOCN,PTE>0XT)
	    <PRINTX>P Location 'LOCN':>p PTEXT
	    >
	?  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` TX5'
	ERJMP	[TxTMSG <? A>
		 JSHLT]
A>
		 JKbMi E0<+<<A>B1+<C>B5+<B>>B1+<Kc  U85/
   IF2,<UX
	IRP A,<
	IFNUxDEF A,<EXTERN A
	SUPPRE A>>>M&. ex&/OP%%FP	(A,B,FADR)FP	(AM6. g8&;OP%%FP	(A,B,FDVR)FP	(AM2  "x"<<<A>B<POS(<B>)>>&<B>>M2$*g d@6J
	..XX==<d`FLD(A,CM%FNC)>+eB+<Z G>
   IFNBe  <D>,<..XX=CM%HPe@P!..XX>
   IFNB e`<E>,<..XX=CM%DPPf!..XX>
   IFNB <f F>,<..XX=CM%BRK!f@..XX>
	..XX
   f`IFNB <C>,<C>
 g  IFB <C>,<0>
 g   IFNB <D>,<POINg@T 7,[ASCIZ D]>g`
   IFB <D>,<IFhNB <EF>,<0>>
 h   IFB <E>,<IFNB h@<F>,<0>>
   IFNh`B <E>,<POINT 7,[iASCIZ \E\]>
   i IFNB <F>,<F>
    <F>,<F>
 M2$HG `@6 

	..XX==<``FLD(A,CM%FNC)>+aB+<0,,F>
   IFNa B <D>,<..XX=CM%Ha@PP!..XX>
   IFNBa` <E>,<..XX=CM%DPbP!..XX>
	..XX
b   IFNB <C>,<C>
b`IFB <C>,<0>
   IFNB <D>,<POcINT 7,[ASCIZ Dc ]>
   IFB <D>,<c@IFNB <E>,<0>>
 c`  IFNB <E>,<POINdT 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. fx&7OP%%FP	(A,B,FMPR)FP	(AM7p R5
	HRROI .R8AC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ %"1

  DEFINE%8 e(C)<D>
..FO%XRN==A
REPEAT B%x-A+1,<
	.FORN1 &(e)
	..FORN=..FORN+1>.FORN=..FM?3@ (8"G
  DEFINE(X %MN1 (B)<C>
	(x..FORN==A		
	.FORN1 (%MN1)
	.FM?@ '"=
  DEFINE'8 d (B)<C>
  I'XRP A,<
	.FORX1 d,A>
	.FORX1eMN.f8&3OP%%FP	(A,B,FSBR)FP	(AMS{P>NF@C^O44C==:NJ

	..ERR.=eP0		
	  .BSIZ.=Bep		
	f.BPOS.=D
	IFN <<A>&<^O<-f01,,770000>>>,<
	fP  MPRNTX(G2BPT,Segction greater thamn 12 bits: A)
	m0  ..ERR.=1
	mP>
	IFN <<C>&<^O<7mp77740,,0>>>,<
	 n MPRNTX(G2BPT,Bitn0s 0 - 12 non-zeronP in address fieldnp: C)
	  ..ERR.=o1
	  >
	IFN <<o0E>&<-1,,0>>,<
	 oP MPRNTX(G2BPT,Bitops 0-17 non-zero ipn optional field:p0 E)
	  ..ERR.=1pP
	  >
	IFN <.BSppIZ.&<^O<-1,,77770q0>>>,<
	  MPRNTXq0(G2BPT,Bytesize gqPreater than 6 bitqps: B)
	  ..ERR.r=1
	  >
	IFN <.r0BPOS.&<^O<-1,,777rP700>>>,<
	  MPRNrpTX(G2BPT,Byte offsset greater than s06 bits: D)
	  .sP.ERR.=1
	  >
	IspFN ..ERR.,<-1,-1,t-1>		
	
	IFE ..t0ERR.,<
	  IFDIF tP<D><>,<<<POINT .tpBSIZ.,E,.BPOS.>!u1B12>&<^O<777740,u0,-1>>>
	v0IFIDN uP<D><>,<<<POINT .upBSIZ.,E>!1B12>&<v^O<777740,,-1>>>
	    
	    <<<vPC>_<^O14>>&<^O<37vp0000,,0>>!<<C>&<w0,,-1>>!<<A>_<^Ow022>>>
	  >
	PURwPGE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,A5>'0		GENBPON{  I<q
	..ERR.=I00		
	IFN <<A>&<IP^O<-1,,770000>>>,Ip<
	  MPRNTX(GFIWJM,Section greaterJ0 than 12 bits: AJP)
	  ..ERR.=1
	Jp  >
	IFN <<B>&<K^O<777740,,0>>>,<K0
	  MPRNTX(GFIWMKP,Bits 0 - 12 non-Kpzero in address fLield: B)
	  ..EL0RR.=1
	  >
	IFNLP ..ERR.,<-1,-1,-1Lp>	
				
	IFE ..MERR.,<
	  <<<B>M0_<^O14>>&<^O<3700MP00,,0>>!<<B>&<0,Mp,-1>>!<<A>_<^O22N>>>>
	PURGE ..ERR.
	PURGE ..ERSNn `8&OP%%IN	(A,B,IDIV)IN	(AS)` )p2[
	JUMPN *A,b		
	..SVDF		*0	
   DEFINE ..TA*PGF (INST,PCT)<
	*pINST b'PCT>		
 +  DEFINE ..TAGE (+0INST,PCT)<
	INST c'PCT>		
	STS.:g (P2K
	PRINTX (p% IFESK. should b)e changed to IFNJ)0E.
	IFNJE. <A>.
	IFNJE. <A>S9` -p2{
	JUMPLE .A,b		
	..SVDF	.0		
   DEFINE ..T.PAGF (INST,PCT)<
.p	INST b'PCT>		
/   DEFINE ..TAGE /0(INST,PCT)<
	INST c'PCT>		
	SS<S@ /p3
	JUMPL 0A,b		
	..SVDF		00	
   DEFINE ..TA0PGF (INST,PCT)<
	0pINST b'PCT>		
 1  DEFINE ..TAGE (10INST,PCT)<
	INST c'PCT>		
	STSTS@ 01s

   IFB <PBC>,<		
	..SVDpF			
	ERJMPA f		
	JRST d		
0f:!
pDEFINE ..PTAGF (INST,PCT)<
	INST d'PCT>		
   DEFINE ..TAGE0 (INST,PCT)<
	INPST e'PCT>		
	>p
   IFNB <BC>,<		
	ERJMPA d		0
	C
	JRST e
d:!	B
e:!>
ST\G p1W

   IFB <AB>,<		
	..SVD0F			
	ERJMP e		P
	JRST c		
e:p!
   DEFINE ..TAGF (INST,PCT)<
	0INST c'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST d'PCT>		
	>
 0  IFNB <AB>,<		P
	ERJMP c		
	pB
	JRST d
c:!	A
d:!>
c:!SUc@ %P2A
   IFB <%pB>,<		
	..SVDF	&		
	ERJMPA c
&0   DEFINE ..TAGF &P(INST,PCT)<
	INS&pT c'PCT>		
   D'EFINE ..TAGE (INS'0T,PCT)<
	INST d'P'PCT>		
	>
   I'pFNB <B>,<
	ERJM(PA c
	B
c:!> c
	B
c:!Sa` 3p3+
	JUMPGE 4A,b		
	..SVDF	40		
   DEFINE ..T4PAGF (INST,PCT)<
4p	INST b'PCT>		
5   DEFINE ..TAGE 50(INST,PCT)<
	INST c'PCT>		
	SSdS@ 1p3
	JUMPG 2A,b		
	..SVDF		20	
   DEFINE ..TA2PGF (INST,PCT)<
	2pINST b'PCT>		
 3  DEFINE ..TAGE (30INST,PCT)<
	INST c'PCT>		
	STSq` +p2k
	JUMPE ,A,b		
	..SVDF		,0	
   DEFINE ..TA,PGF (INST,PCT)<
	,pINST b'PCT>		
 -  DEFINE ..TAGE (-0INST,PCT)<
	INST c'PCT>		
	STSt\g p1}
	PRINTX % IFNES. should b0e changed to IFJEPR.
	IFJER. <A>,<B>FJER. <A>,Su)' "p2)
   IFB <#A>,<		
	..SVDF	#0		
	ERJMP b
  #P DEFINE ..TAGF (I#pNST,PCT)<
	INST $b'PCT>		
   DEF$0INE ..TAGE (INST,$PPCT)<
	INST c'P$pCT>		
	>
   IFN%B <A>,<
	ERJMP b
	A
b:!> Sv:g 01;
   IFB <PAB>,<		
	..SVDpF			
	TRNA			
	JRST c		
   DEF0INE ..TAGF (INST,PPCT)<
	INST c'PpCT>		
   DEFINE ..TAGE (INST,PCT)0<
	INST d'PCT>	P	
	>
   IFNB <pAB>,<		
	JRST c		
	B
	JRST 0d
c:!	A
d:!>
c:!	A
d:!>S
S@ 9p3]
	JN <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 <3o
	JE <A><0,<B>,c	
	..SVD<PF			
   DEFINE .<p.TAGF (INST,PCT)<=
	INST c'PCT>		=0
   DEFINE ..TAG=PE (INST,PCT)<
	I=pNST d'PCT>		
	ST d'PCT>		
	S<  2
   IFB < 0A>,<		
	..SVDF	 P		
	JRST b
    pDEFINE ..TAGF (IN!ST,PCT)<
	INST !0b'PCT>		
   DEFI!PNE ..TAGE (INST,P!pCT)<
	INST c'PC"T>		
	>
   IFNB"0 <A>,<
	JRST b
	A
b:!> bSDS@ 5p3;
	JXN A,6B,c	
	..SVDF		60	
   DEFINE ..TA6PGF (INST,PCT)<
	6pINST c'PCT>		
 7  DEFINE ..TAGE (70INST,PCT)<
	INST d'PCT>		
	STSEc@ 7p3K
	JXE A,8B,c	
	..SVDF		80	
   DEFINE ..TA8PGF (INST,PCT)<
	8pINST c'PCT>		
 9  DEFINE ..TAGE (90INST,PCT)<
	INST d'PCT>		
	STS7-N _8%{OP%%IN	(A,B,IMUL)IN	(AS:  \P-g
	..STR0 \p(.INCR0,,<A>,<B>)CR0,,<A>,<BS? 48##
	TXO A,<B>
	TXO A,Ut@ r/
	..STR1 r0(..JAN,<d,<C>>,rP<A>,<B>,..STR5)
d:B>,..STR5)U ep.1
	..STR1 f(..JE,<C>,<A>,<B>,..STR3)A>,<U8 j0.U
	..STR1jP(..JN,<C>,<A>,<B>,..STR3)A>,<U:
	..STR1 op(..JNA3,<C>,<A>,<B>,..STR4)A>U:~  u0//
	..STR1 uP(..JNO,<d,<C>>,up<A>,<B>,..STR5)
d:B>,..STR5)U? np.y
	..STR1o(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0@p0@p0@5p0@UNEMUNEMA  UNEMUNn9hA  UNn9hUb( HX$]
	..JX1==HxB		
	.IFN ..JX1I,ABSOLUTE,<PRINTXI8 B NOT ABSOLUTE
		..JX1==0>
	.IIxF ..JX1,ABSOLUTE,J<
	.IF0 <<..JX1>J8-1B0>,<	
		JUMPGJXE A,C>,<
	.IF0Jx <<..JX1>+1>,<	
K	  JUMPE A,C>,<K8	
		TXNN (A,..JKXX1)
		JRST C>>>)
		JRST C>>>Ub0 SX%9
	..JX1==SxB		
	.IFN ..JX1T,ABSOLUTE,<PRINTXT8 B NOT ABSOLUTE
		..JX1==0>
	.ITxF ..JX1,ABSOLUTE,U<
	.IF0 <<..JX1>U8-1B0>,<
		JUMPGEUX A,C>,<
	..ONEUxB (..BT,B)	
	.IVF0 ..BT,<
	  SETV8CM .SAC,A		
	  VXJXN (.SAC,..JX1,VxC)>,< 
	    TXNNW A,..JX1	
	    JRST C>>>	    Ubp L$y
	..JX1==L8B		
	.IFN ..JX1LX,ABSOLUTE,<PRINTXLx B NOT ABSOLUTE
		..JX1==0>
	.IM8F ..JX1,ABSOLUTE,MX<
	.IF0 <<..JX1>Mx-1B0>,<	
		JUMPLN A,C>,<
	.IF0 N8<<..JX1>+1>,<	
	NX  JUMPN A,C>,<	Nx
		TXNE (A,..JXO1)
		JRST C>>>)
		JRST C>>>Ubx OX%
	..JX1==OxB		
	.IFN ..JX1P,ABSOLUTE,<PRINTXP8 B NOT ABSOLUTE
		..JX1==0>
	.IPxF ..JX1,ABSOLUTE,Q<
	.IF0 <<..JX1>Q8-1B0>,<
		JUMPL QXA,C>,<
	..ONEBQx (..BT,B)	
	.IFR0 ..BT,<
	  SETCR8M .SAC,A		
	  JRXXE (.SAC,..JX1,CRx)>,< 
	    TXNE SA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=NpA		
	.BPOS.=C
	..ERR.=0		
	IFO0N <<B>&<^O<77774OP0,,0>>>,<
	  MPROpNTX(L1BPT,Bits 0 P- 12 non-zero in P0address field: BPP)
	  ..ERR.=1
	Pp  >
	IFN <.BSIZ.Q&<^O<-1,,777700>>Q0>,<
	  MPRNTX(L1QPBPT,Bytesize greaQpter than 6 bits: RA)
	R0..ERR.=1
	  >
	IFN <.BPORPS.&<^O<-1,,777700Rp>>>,<
	  MPRNTX(SL1BPT,Byte offsetS0 greater than 6 bSPits: C)
	  ..ERSpR.=1
	  >
	
	ITFN <..ERR.>,<-1,-T01,-1>
	
	IFE <.TP.ERR.>,<
	  IFIDTpN <C><>,<POINT .UBSIZ.,B>
	  IFDU0IF <C><>,<POINT UP.BSIZ.,B,.BPOS.>Up
	  >
	PURGE ..VERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=]0		
	  .BSIZ.=A]0		
	]P.BPOS.=C
	IFN <<B>&<^O<7]p77740,,0>>>,<
	 ^ MPRNTX(L2BPT,Bit^0s 0 - 12 non-zero^P in address fieldVP: B)
	  ..ERR.=Vp1
	  >
	IFN <<WD>&<-1,,0>>,<
	 W0 MPRNTX(L2BPT,BitWPs 0-17 non-zero iWpn optional field:X D)
	  ..ERR.=1X0
	  >
	IFN <.BSXPIZ.&<^O<-1,,77770Xp0>>>,<
	  MPRNTXY(L2BPT,Bytesize gY0reater than 6 bitYPs: A)
	  ..ERR.Yp=1
	  >
	IFN <.ZBPOS.&<^O<-1,,777Z0700>>>,<
	  MPRNZPTX(L2BPT,Byte off`Pset greater than `p6 bits: C)
	  .a.ERR.=1
	  >
	Ia0FN ..ERR.,<-1,-1,aP-1>		
	
	IFE ..apERR.,<
	  IFDIF b<C><>,<<<POINT .b0BSIZ.,D,.BPOS.>!bP1B12>&<^O<777740,bp,-1>>>
	cpIFIDN c<C><>,<<<POINT .c0BSIZ.,D>!1B12>&<cP^O<777740,,-1>>>
	    <1B0!<<^O<4d00037,,-1>>&<B>>d0>	
	  >
	PURGE dP..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPA4=c0(B).YN{  Ep<E
	..ERR.=F0		
	IFN <<A>&<F0^O<777740,,0>>>,<FP
	  MPRNTX(LFIWMFp,Bits 0 - 12 non-Gzero in address fG0ield: A)
	  ..EGPRR.=1
	  >
	IFNGp ..ERR.,<-1,-1,-1H>	
	IFE ..ERR.,<H01B0!<<^O<400037,,HP-1>>&<A>>>	
	PURGE ..ERR.
	PUY$- D,!1_<^D35-^L<A>>1_<^D35-^LY>
@ G0,=
	..STR0 GP(..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  J0,U
	..STR0 JP(..LDBE,A,B,<C>)DBE,A,B,<C[i9Q u[^+' )8"]
  DEFINE)X A (STUFF)<
	c)x (<STUFF>,)>

 * DEFINE c (NEW,O*8LD)<
    DEFINE *XA (STUFF)<
	c *x(<STUFF>,<OLD'NEW+>)>>

  DEFINE +8B <
    DEFINE +Xc (NEW,OLD)<OLD>
	A ()>
OLD>[3@ DP,%<<<1_<A>>-1>B<B>>_<A>>[8@ $"!<1B<<A>-1>-1B<B>><A>-1[>!` $X"%<<A>-<<A>/<B>>*<B>>A[?7 ,#
   ..MX1,8==B			
,x.IFN ,X..MX1,ABSOLUTE,<
	MOVE A,[B]>
-   .IF ..MX1,ABSO-8LUTE,<
	..MX2==0-X		
	IFE <..MX1>B-x53,<
	  ..MX2==1.
	  MOVEI A,..M.8X1>	
	IFE ..MX2,.X<		
	IFE <..MX1>.xB17,<
	  ..MX2==/1
	  MOVSI A,(./8.MX1)>>	
	IFE ../XMX2,<		
	IFE <<./x.MX1>B53-^O7777770>,<
	08..MX2==1
	  HRROI A,<..M0XX1>>>	
	IFE ..MX0x2,<		
	IFE <<..M1X1>B17-^O777777B1187>,<
	  ..MX2==11X
	2HRLOI A,(..1xMX1-^O777777)>> 
	IFE ..MX2,<		
28	  MOVE A,[..MX1]>	
  >,[..MX1[Cm ;P;k
	  DEFIN;pE ..MP. (LOCN,MTE<XT,PTEXT)<
	    <0PRINTX Location '<PLOCN', Macro 'MTE<pXT': PTEXT
	    =>
	  ..MP.(\.,A=0,<B>)
	  PURGE ..MP.
	  URGE [N^= wX'I
	A==C	wx	
	IF1,<IFDEF %xA,<PRINTX ?A ALRx8EADY DEFINED>>
	xXDEFINE %A (OP,ACxx,Y,MSK)<
	$A==<yZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg ^x%wOP%%IN	(A,B,MUL)%IN	(A[Xp 2x#
	MOVE .S3AC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` 3X#
	MOVX .S3xAC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp [X%k
	.XCREF
IFE	<<B>_-^D18>\,<
	.CREF
	CAI\8C	A,<B>
	.XCRE\XF
>
IFN	<<B>_-\x^D18>,<
	.CREF
]	CAMC	A,[B]
	]8.XCREF
>
	.CREFCREF
>
	.CREF_@(YX gx&K
	.XCREF
IFE	<<B>_^D18>,h8<
	.CREF
	CI	hXA,(B)
	.XCREF
hx>
IFN	<<B>_^D18i>,<
	.CREF
	C	i8A,[B]
	.XCREF
>
	.CREFCREFx&
	.XCREF
	TEST%%=0
IFE	<a8<<B>_-^D18>-^O77aX7777>,<
IFN	<<Bax>&^O777777>,<
	TbEST%%=1
	.CREF
b8	DI	A,-<B>
	.bXXCREF
>>
IFE	TEbxST%%,<
	OP%%IN	cA,<B>,C
>
	PUc8RGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 cx&+
	.XCREF
IFE	<<B>_-^D18>d8,<
	.CREF
	CI	dXA,<B>
	.XCREF
>
IFN	<<B>_-^De18>,<
	.CREF
	e8C	A,[B]
	.XCREF
>
	.CREFCRE_CL@ a.
	..STR0 a0(.OPST1,<A>,<B>,<C>)<A>,<B>_CLV c0.
	..STR0 cP(.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ [P=](<..OWGP (\<A>,B,\<C>)>A3=Y^O44 B-_^>
G \=aOWGP. 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= S5
   IFNB S8<A>,<
	TMSG <ASX>>
	CALL JSMSG0>
	CALL JSMSG0a4\G @!&
	..PGV0=`=.		
	.JBVER=:^O137		
	LOC	.JBVE R		
	BYTE	(3)D(@9)A(6)B(18)C
`	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm<""<POINTWID"8(<B>),A,POS(<B>)>),A,POS(<Ba? !X"
	..NUM==' ^D15
	REPEAT ^D1'@6,<
		IFN ..MASK'` & 1B<..NUM>,<
	(	POP P,..NUM>
		( ..NUM==..NUM-1
	>
==..NUM-1
	aNh1 % :4
	..TMSK=%@=..MASK
	REPEAT %`..NAC,<
		..NUM=&=^L<..TMSK>
		..& TMSK==..TMSK-1B<.&@.NUM>
		PUSH P,..NUM
	>
H P,.aR<& xX?E
	TXO A,.FR8BY
	TXO A,aRd6 x?A
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x Px5JRST RSKP	JRST RSKPeN^A  eN^gXY 08
	..TRR==P10		
	RADIX 8
	p..NV==1			
	IRP A,<
	  .TRV1 (0A)>		
	IFG ..NV-P5,<PRINTX ?TOO MApNY ARGUMENTS: A>
	JSP .A16,.SASE0T		
	RADIX ..TRRP		
	DEFINE ENDSAp.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 

..DONE==0
..SACC==0
. .NAC==0
..MASK==@0

IRP <A>,<
`	IFG A-^D15,<PRINTX ?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,<US@RSAV>		
IFE ..DO`NE,<
  IFLE ..SACC,<JSP .SAC,[>
   IFG ..SACC,<CAL@L [EXCH .SAC,(P)>`
		    IFG  ..NAC-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 ..SACC,<POP P,.SAC>
	 	    POPJ P,]
>@
PURGE ..NAC,..TN`AC,..MASK,..TMSK,..SACC,..NUM,..SM SK,..DONE,..SYAC  
DONE,..SYAC g$;8 Y0-M
	..STR1 YP(..TQC,,<A>,<B>,..STR4)A>,<B>g%{R Up-1
	..STR1 V(..TQO,,<A>,<B>,..STR4)A>,<B>g',W R-
	..STR1 R0(..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@  X"
	....Z=A
	....Z=gB8; `9V
	IFE ..DONE,<
		..SMSK== 0
		IRP <B>,<
@		   ..SYAC==B		`		
		   ..SMSK==..SMSK!1B<..SYAC> >		
		IFE ..MASK@-..SMSK,<JSP .SAC`,A
				   ..DONE==1>
	>
.DONgR$g 8!7
F=:0
T1X=:1
T2=:2
T3=:3x
T4=:4
Q1=:5
Q2=:6
Q3=:7
P1=:810
P2=:11
P3=:1X2
P4=:13
P5=:14x
P6=:15
CX=:16
P=:17
CX=:16jP6m
	..STKR=jp=10		
	RADIX 8
k	..STKN==0
	IRP k0A,<
	  .STKV1 (kPA)>
	JSP .A16,.kpXSTKS		;Call intelrnal routine for l0allocation
	 EXPlP ..STKN		;Size oflp block to allocatme
	RADIX ..STKR
	DEFINE ENDSV.<.mPENSV1 <A>>
   NSV1 <A>>
   gR~  O,{
	..STR0 O0(..DPB,A,B,<C>)DPB,A,B,<C>gV ^8%sOP%%IA	(A,B,SUB,ADD)(Ai6tP w0/=
	..STR1 wP(..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` {/[
	..STR1 {0(..TYNN,,<A>,<B>,..STR3)A>,<Bi7p Q85
	HRROI .QXAC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..STR1 (..TY,C,<A>,<B>,..STR3)A>,iF 0C
	    ..S0TR1 (..TY,CA,<A>,<B>,..STR3)A>iFP P07
	    ..SpTR1 (..TY,CE,<A>,<B>,..STR3)A>iF` 00=
	    ..SPTR1 (..TY,CN,<A>,<B>,..STR3)A>iFp |p/i
	    ..S}TR1 (..TY,N,<A>,<B>,..STR3)A>,iFt /{
	    ..S0TR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP }P/o
	    ..S}pTR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` ~0/u
	    ..S~PTR1 (..TY,NN,<A>,<B>,..STR3)A>iFx p0
	    ..STR1 (..TY,O,<A>,<B>,..STR3)A>,iF| 0
	    ..S0TR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P P0
	..SpTR1 (..TY,OE,<A>,<B>,..STR3)A>iF}` 00
	    ..SPTR1 (..TY,ON,<A>,<B>,..STR3)A>iGP p0
	    ..STR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT 0+
	    ..S0TR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP P0
	    ..SpTR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU` 00%
	    ..SPTR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ u07=
	..TRR==uP10		
	RADIX 8
	up..NV==1			
	IRP vA,<
	  .TRV1 (v0A)>		
	JSP .A16,vP.XTRST		
	wEXP .vp.NV-1		;Size of bwlock to allocate
	RADIX ..TRR		
wP	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib @8$
		..TX(C,A,<B>)..TX(Cib Ax$
		..TX(CA,A,<B>).TX(CibP @x$
		..TX(CE,A,<B>).TX(Cib` A8$
		..TX(CN,A,<B>).TX(Cibp :8#S
		..TX(N,A,<B>)..TX(Nibt ;x#_
		..TX(NA,A,<B>).TX(NibtP :x#W
		..TX(NE,A,<B>).TX(Nibu` ;8#[
		..TX(NN,A,<B>).TX(Nibx <8#c
		..TX(O,A,<B>)..TX(Oib| =x#o
		..TX(OA,A,<B>).TX(Oib|P <x#g
		..TX(OE,A,<B>).TX(Oib}` =8#k
		..TX(ON,A,<B>).TX(OicP >8#s
		..TX(Z,A,<B>)..TX(ZicT ?x#
		..TX(ZA,A,<B>).TX(ZicTP >x#w
		..TX(ZE,A,<B>).TX(ZicU` ?8#{
		..TX(ZN,A,<B>).TX(Zk:*g W5;
%%FOO==W8a
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; 8j$ibPm$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  !"	<^L<-<<A>_<^L<A>>>-1>>>q
fC@ ip6O
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? 58#+
	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 &e
	A:&@ Op-
	..TSIZ P(..PST,C)
	.CASP0E ..PST,<<
		MOVPPEM A,B>,<
		HRPpRM A,B>,<
		HRQLM A,B>,<
		DPQ0B A,[POINT WID(<QPC>),B,POS(<C>)]>>B,POS(<C>):<;Y 8)
   DEFINXE ..CNS2 (NEW,OLDx)<
	  OLD>			
	..CNS ()>			
	:L;Y (
   DEFIN8E ..CNS (ARG)<
	X..CNS2 <ARG>,>
x
   DEFINE ..CNS2 (NEW,OLD)<
	DEF8INE ..CNS (ARG)<
	  ..CNS2 <ARG>,x<OLD'NEW>>>
   OLD'NEW>>>
   :Mi Ep4?
 DEFINE FELSE. <
	..TAGE F0(JRST,)		
	..TAGFPF (,<:!>)		
	SYNFp ..TAGE,..TAGF	
G   DEFINE ELSE. <G0....U>>	

 DEFIGPNE ENDIF. <
	..TGpAGF (,<:!>)		
	..RSDF>			
   .:TH s/
	..JNA3 (A,C,D)JNA3 :TI sP/'
	..TSAC sp(..ACT,C)
	.IF0t ..ACT,<
	  SETCt0M .SAC,C	
	  JXtPE (.SAC,D,<B>)>tp,<	
	  JXO (C,D,<B>)>O (C,:TP fP.O
	..TSAC fp(..ACT,B)	
	.IFg0 ..ACT,<
	  ..Tg0SIZ (..PST,C)	
gP	  .CASE ..PST,<<gp
		SKIPN B	
		hJRST A>,<
		HRRh0Z .SAC,B	
		JUMhPPE .SAC,A>,<
		hpHLRZ .SAC,B	
		iJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<ipA>)>>>,<
	  JXE (B,C,<A>)>E:U` k.s
	..TSAC k0(..ACT,B)	
	.IFkP0 ..ACT,<
	  ..TkpSIZ (..PST,C)
	l  .CASE ..PST,<<
		SKIPE B	
		JlPRST A>,<
		HRRZlp .SAC,B	
		JUMPmN .SAC,A>,<
		Hm0LRZ .SAC,B	
		JmPUMPN .SAC,A>,<
mp		MOVE .SAC,B	
n		JXN (.SAC,C,<n0A>)>>>,<
	JXN (B,C,<A>)>N :Uh) p0/
	..TSAC pP(..ACT,B)
	.IF0pp ..ACT,<
	  SETCqM .SAC,B	
	  JXq0N (.SAC,C,<A>)>qP,<	
	  JXF (B,C,<A>)>F (B,:Ukh v0/3
	..JN (A,C,D)..JN (:Uki vp/7
	..JE (<B>,C,D)JE (<:dH@ H,O
	..TSIZ H0(..PST,C)
	.CASHPE ..PST,<<
		MOVHpE A,B>,<
		HRRIZ A,B>,<
		HLRI0Z A,B>,<
		LDBIP A,[POINT WID(<IpC>),B,POS(<C>)]>>B,POS(<C>)]:dHR K,u
	..TSIZ K0(..PST,C)
	.CASKPE ..PST,<<
		MOVKpE A,B>,<
		HRRLE A,B>,<
		HLRL0E A,B>,<
		JSPLP .SAC,[LDB A,[POLpINT WID(<C>),B,MPOS(<C>)]
			  M0..MSK==MASK.(WID(MPC),35)
			  TXNMpE A,LFTBT.(..MSKN)	
			  TXO A,^N0-..MSK	
			  PURNPGE ..MSK
			  JRST (.SAC)]>> JR:}i1 r8'
	A==<<<rX-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx _0>IFE 10-8, _P  <.%AC!<B>>+ _p			     IFE 10-^D`10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 4W
	.POPX;LH {X'm
	IFNDEF {xC,<PRINTX ?C IS| NOT DEFINED
	  |8A (<B>,<D>,.FW|XORD)>	
	IFDEF C|x,<
	IFNDEF %C,<}
	  A (<B>,<D}8>,C)>	
	IFDEF %}XC,<
	  %C (A,<B>,<D>,C)>>;LH ~(-

	..NS==0~8			
	IRP C,<..N~XS=..NS+1>	
	IFE ~x..NS,<PRINTX ?EMPTY STRUCTURE LIST8, A>
	IFE ..NS-X1,<		
	  ..STR0 x(A,<B>,<C>,<D>)>
	IFG ..NS-1,8<		
	..ICNS			
X	..CNS (<E (A,<xB>,,>) 
	IRP C,<		
	  IFNDEF 8C,<PRINTX C NOT XDEFINED>
	  IFDExF C,<
	  IFNDEF %C,<
	  ..CNS 8(<,C,D>)>	
	  XIFDEF %C,<
	  %xC (..STR2,,<D>,C)> 
	  ..CNS (8<)>)		
	  ..GCNSX		
	  ..ICNS		
x	  ..CNS (<E (A,<B>>) 
	  IFND8EF %C,<
	  ..CNXS (<,C,D>)>	
	x  IFDEF %C,<
	  %C (..STR2,,<D8>,C)>>> 
	..CNSX (<,,)>)		
	..GCNS>)>)		
	..GC;LI (1
	..CNS (<,C,B>).CNS (;LI X(G

	IFDIF <xD><F>,<
	  IFNB <D>,<
	    A8 (<B>,D,..MSK)	X
	    IFNB <F>,x<PRINTX C AND E ARE IN DIFFERENT8 WORDS>>
	  ..MSXK==0>		
	IFNB <xF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ 	8(W

	IFDIF <	XD><F>,<	
	  IF	xNB <D>,<
	    
A (<B>,D,..MSK)
8>	
	  ..MSK==0>	
X	
	IFNB <F>,<

x	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ 8(m

	IFDIF <XD><F>,<	
	  IFxNB <D>,<
	    I
FNB <F>,<		
		
8A1 (B,D,..MSK)>
X 
	    IFB <F>,
x<		
		A2S(B,D
	MS..0>		
	IFNB,
	0q..MSK=..MSK!<E>>MSK=;hU 
	SYN,END
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i H04U
	SYN ELSHPE.,a
	SYN ENDIFHp.,b
	SYN ..TAGFI,c
	SYN ..TAGE,I0d
	.PSHX <
	  IPSYN a,ELSE.
	  IpSYN b,ENDIF.
	 J SYN c,..TAGF
	J0  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k P1

	SYN OD.p,a
	SYN LOOP.,b
	SYN TOP.,c
0	SYN EXIT.,d
	SPYN ENDLP.,e
	.PpSHX <
	 SYN a,OD.
	 SYN b,LOOP0.
	SYN c,TOP.
	 SYN d,EXIT.
p	 SYN e,ENDLP.> SYN e,ENDLP.>;$r 3....U;$s 3}....U;&` Z-a
	..TSIZ Z0(..PST,C)
	.IF0ZP ..PST,<		
		SETZpCMM B>,<	
	[0..[TSAC (..ACT,B)	
	[P.IF0 ..ACT,<
		MOVX .SAC,C
[p		XORM .SAC,B>,<\
		..TX(C,B,C)>>..TX(C,B,C);&` VP-G
	..TSIZ Vp(..PST,C)
	.CASWE ..PST,<<
		SETW0OM B>,<
		HLLOSWP B>,<
		HRROS WpB>,<
	  ..TSAC (X..ACT,B)
	  .IFX00 ..ACT,<
		MOVXXP .SAC,C
		IORM Xp.SAC,B>,<
		..TX (O,B,C)>>>T;&@ Rp-+
	..TSIZ S(..PST,C)	
	.CAS0SE ..PST,<<
		SESPTZM B>,<	
		HLLSpZS B>,<	
		HRRZTS B>,<	
	  ..TST0AC (..ACT,B)	
	TP  .IF0 ..ACT,<
	Tp	MOVX .SAC,C	
	U	ANDCAM .SAC,B>,U0<
		..TX (Z,B,C)>>>TX (Z,B,;&81 nX&
	A==0		nx	
	..TSA1==<Z Bo>		
	.IF ..TSA1,o8ABSOLUTE,<	
	  IoXFE ..TSA1&^O77777ox7777760,<A==1>> 
	60,<A==1>> ;&:= m&q
	A==3		m8	
	IFE <B>+1,<mXA=0>	
	IFE <B>-mx^O777777,<A==1> n
	IFE <B>-^O777777B17,<A==2>7;&;Q p8'
	A==0		pX	
	..TSA1==0		
px	IRPC C,<
	  ..qTSA1=..TSA1+1
	qq8 IFE ..TSA1-B,<
	   IFIDN <C><qxD>,<
		A==1>		
	;'STOPI>>		
   ..TX16==C			
6X.IFN 68..TX1,ABSOLUTE,<
	TDA B,[C]>
6x   .IF ..TX1,ABSO78LUTE,<		
	..TX2=7=0		
	IFE <..TX17X&^O777777B17>,<
7x	  ..TX2==1		
	 8 TRA B,..TX1>
88	IFE ..TX2,<		
	8XIFE <..TX1&^O77778x77>,<
	  ..TX2==91		
	  TLA B,(98..TX1)>>
	IFE ..9XTX2,<		
	  IFE <9x<..TX1>B53-^O7777:77>,< 
	    ..TXB83 (A,B)>>	
	IFBXE ..TX2,<		
	  IBxFE <..TX1+1>,<	
C	    ..TX4 (A,BC8)>>
	IFE ..TX2,<CX		
	  TDA B,[..TX1]>	
  >,[.;'` D$3
	IFIDN <D8A><Z>,<		
	  ..DXTX2==1
	  ANDI DxB,^-..TX1>	
	IFIEDN <A><O>,<		
	E8  ..TX2==1
	ExOREXCMI B,^-..TX1>	
	IFIDN <A><C>,<F		
	  ..TX2==1
F8	  EQVI B,^-..TX1>QVI B,^-..TX;' Fx$A
	IFIDN <GA><NN>,<
	  ..TG8X2==1
	  CAIN BGX,0>		
	IFIDN <AGx><NE>,<
	  ..TX2H==1
	  CAIE B,0>
	  CAIE B,0;' 
P0]
	..TSAC 
p(..ACT,B)	
	.IF0 ..ACT,<
		PRIN0TX ?TQA - B NOTP IN AC>,<
		TXA B,C>
		TXA;'R x/U
	..TSAC x0(..ACT,B)	
	.IFxP0 ..ACT,<
	  ..JxpX1==C
	  .IF0 <y0..JX1-1B0>,<
		SyKIPGE B>,<
	   yP .IF0 <..JX1+1>,<yp
		SKIPE B>,<
z		MOVE .SAC,B
	z0	TXNE .SAC,C>>>,zP<
		TXNE B,C>
		TXNE B,C>;'W {p0Q
	..TSAC |(..ACT,B)	
	.IF|00 ..ACT,<
	  ..J|PX1==C
	  .IF0 <p..JX1-1B0>,<
		S	KIPL B>,<
		P  	0.IF0 <..JX1+1>,<
		SKIPN B>,<
		p	MOVE .SAC,B
		
TXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  @8,
	.ACV2 (A)
	.ACV2 (d@ 8J
   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` 	`8Z
	IFG A-
.NPAC,<PRINTX ?TO
O MANY ACS USED>
@
	IFLE A-4,<
	 
` JSP .A16,.SAVA>	
	IFG A-4,<
	   JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; 00;A
	  IFIDN0P <A><.>,<
		XMO0pVEI .A16,B	
		P1USH P,.A16>
	  I10FDIF <A><.>,<
	1P  .IFATM <A>,.BL1pF4	
	  .BLF1==0	2	
	  IFN .BLF4,<20		
	    .IF %A,2PMACRO,<	
		.BLF12p==1>	
	    IFNB 3<B>,<
		.BLF1==301>	
	    IFN .BL3PF1,<		
		LOAD .A3p16,A,B
		PUSH 4P,.A16>>
	  IFE 40.BLF1,<		;IF WASN4P'T A STRUCTURE RE4pF,
	    IFN .BLF54,<		
	     .BLF502==<<Z A>&17B17>5P-<P>B17 
	      5p.IF .BLF2,ABSOLUT6E,< 
	       IFE60 .BLF2,<		
	    6P   .BLF1==1		
	 6p      .BLF3==<Z 7A>&777777
		PUSH70 P,.BLF3-..NA(P)>7P>>> 
	  IFE .BLF7p1,<		
		PUSH P,8A>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 /p:
	.BLCL1 A
	.BLCL1 
f=( ,p:i
	DEFINE -A<-^OB(.FP)>
	$A==<Z A>>
	9  k&c
	..CSN==k8A
	..CSC==0
	IkXRP B,<
	IFE ..CkxSN-..CSC,<
	  STlOPI
	  ..CAS1 (l8B)>
	..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 8!		
	XLISTX
	LOC 0
	COPYRTx A
     .IFN .,ABSOLUTE,<PRINTX 8?.CPYRT, COPYRIGHXT IS NOT ABSOLUTEx>
     IFGE .-^O22,<PRINTX %COPYR8IGHT DOESN'T FIT XIN SINGLE REL BLOxCK>
	RELOC
	LIST
	SALL

	LIS,<H _P.
	..PST==_pC&<-C>
	.IF0 .`.PST-1,<
		SOS `0B>,<	
		MOVX .SA`PC,-..PST 
		ADDM .SAC,B>		ADDMtH `8`
	IRP A,
<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
@8d
	.ENAV3 (A)
	.ENAV3tI 
	PURGE A,A
  PURGE t,h -P:o
	IRP A,-p<
   DEFINE A<....U>>FINE A<.v=H s07
	IRP A,sP<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I t7!
	.ENSV3 (A)
	.ENSV3 v=I tP7%
	DEFINE A<....U>EFINE vI9A  vI9~+H &X"5
	A (\..FORN)
	A (\..~. "?
	A BP `P \Q X=|RQ &2 ix&U
	..IFT==jA		
	IFE ..IFT,j8<
	B
	..IFT==0jX>		
	IFN ..IFT,<
	C>N ..IFT,<&4 8P;Y
	IRPC A8p,<
	B==0
	IFGE9 "A"-"A",<IFLE "90A"-"Z",<B=1>> 
	IFGE "A"-"0",<9pIFLE "A"-"9",<B:=1>>
	IFE "A"-":0%",<B=1>
	IFE ":PA"-"$",<B=1>
	:pIFE "A"-".",<B=;1>
	IFE B,<STOPI>>IFE B,<STOP&t<H ]0-s
	..PST==]PC&<-C>	
	.IF0 ]p..PST-1,<
		AOS ^B>,<	
		MOVX .S^0AC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P u6k0P 6k4P 6mtP 6MiTQ @;`P ?= ap.
	..TSIZ b(..PST,C)
	.IF0b0 ..PST,<
		A BbP>,<	
		..LDB .SAbpC,B,C 
		A .SAC>C 
		A .S?=	 d.+
	..TSIZ d0(..PST,C)
	.IF0dP ..PST,<
		A Bdp>,<	
		..LDB .SAeC,B,C
		A .SAe0C
		..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~ M04k
	.PSHX1 (.POPX2).PSHX1 B~	 Mp4o
	.POPX4 A
	.POPX4 B~	 Np4}
	A
   ODEFINE .PSHX1 (WCO0H,STUFF)<
	WCH (OP<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 N04s
	.POPX3 B
	.POPX3 C K04[
	.PSHX1 (.PSHX2,<A>)1 C Kp4_
	A (<B>)
	A (<BC	 L04g
   DEFINLPE .PSHX1 (WCH,STULpFF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z #8"<<<A>&<B#X>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u E,7
<IFE <<FE0ILIN.(<A>)&<^-AEP>>>,<A>>!<IFN <<EpFILIN.(<A>)&<^-FA>
>><<FILIN.(<<F0<RGHBT.(<<FILIN.(FP<A>)&<^-A>>>)>_Fp-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 n6q
	.STKV2 (A)
	.STKV2 O%=I nP7	
	IFB <Bnp>,<..STKN==..STKNo+1>
	IFNB <B>,<o0
	...X==B
	IF2oP,<.IFN ...X,ABSOLopUTE,<PRINTX ?STKVpAR A, B is not p0absolute>>
	..STpPKN==..STKN+...X>
	..STKQ==..STKN+q1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I qP7
   IFDEFqp A,<.IF A,SYMBOrL,<PRINTX STKVAR r0A ALREADY DEFINErPD>>
	DEFINE A<-rp^OB(P)>
	$A==<Z A>>
	$A==<Sd  x7A
	.TRV2 (A)
	.TRV2 (Sd@ xP7U
	.TRV3 (xpA,\..NV)	
	IFB y<B>,<..NV=..NV+1y0>
	IFNB <B>,<
yP	...X==B
	IF2,<yp.IFN ...X,ABSOLUTzE,<PRINTX ?TRVAR z0A, B is not abszPolute>>
	..NV=..NV+...X>..NV=..Sd` {7c
   IFDEF{0 A,<.IF A,SYMBO{PL,<PRINTX TRVAR {pA ALREADY DEFINED|>>
	DEFINE A<^O|0B(.FP)>
	$A==<Z A>>
	$A==<b\| 8!{
	.XCREF
	.XCRF1 <..ACT,.x.CSC,..CSN,..IFT,..JX1,..MSK,..MX18,..MX2>
	.XCRF1 X<..NAC,..NRGS,..NxS,..NV,..PST,..STKN,..STKQ,..STKR>8
	.XCRF1 <..TRR,X..TSA1,..TX1,..TXx2,.FP,.FPAC,.NAC,.SAC,.SAV1>
	.XC8RF1 <.SAV2,.SAV3,XPOINTR,POS,WID,..xCAS1,..CNS,..CNS2>
	.XCRF1 <..DPB8,..GNCS,..ICNS,..XJE,..LDB,..STR0,.x.STR1,..STR2>
	.XCRF1 <..STR4,..T8QO,..TQZ,..TSAC,.X.TSIZ,..TX,..TY,.xACV1,.ACV2>
	.XCRF1 <.ACV3,.CASE,8.DECR0,.IF0,.INCRX0,.OPST1,.OPST2,.xSTKV1>
	.XCRF1 <.STKV2,.STKV3,.TR8V1,.TRV2,.TRV3>
	.CREF
   3>
b)H x"
	IRP A, <
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP