Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,5$@P C4@ V%8
	..NAC==V 0		
	IRP A,<
	V@  .ACV1 (A)>		
V`	.ACV3 (\..NAC)		W
	DEFINE ENDAV.<.ENAV1 <A>>V.<C:$S@ p!'
	..TAGF (<JUMPN A,>,) C:$s@ p!/
	..TAGF (<JUMPLE A,>,)C:$y' 0!3
	..TAGF (<JUMPL A,>,) C:%C@ 0!;
	..TAGF (<JUMPGE A,>,)C:%I' p!7
	..TAGF (<JUMPG A,>,) C:%c@ 0!+
	..TAGF (<JUMPE A,>,) C:&' p!I
	..TAGF (<JN <A>,<B>,>,)N <A>,<B>,>,C:&G P!O
	..TAGF p(<JE <A>,<B>,>,)E <A>,<B>,>,C:' )I
	TXZ A,<^-<B>>TXZ A,C:'	' p!?
	..TAGF (<JXN A,B,>,)C:'G 0!C
	..TAGF (<JXE A,B,>,)C:v:g 0!
	TRNA
	..TAGF (JRST,)	C;< p!
	..TAGF (JRST,)	..TAGF CO,,@ O%
	..TRR==O010		
	RADIX 8
	OP..NV==1			
	IRP OpA,<
	  .TRV1 (PA)>		
	IFG ..NV-P05,<PRINTX ?TOO MAPPNY ARGUMENTS: A>Pp
	JSP .A16,.ASSEQT		
	RADIX ..TRRQ0		
	DEFINE ENDASQP.<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= o8Q 
	IFN FTSopHOW,..LOC==.

p
DEFINE	WORD(NAM,p0NUMB<1>),<
	IFN pP<..MSK>,<..OFF==.pp.OFF+1> 

	..MSqK==0		
	FIELDM(Nq0AM,<.FWORD>)	

qP	..MSK==0		
	..OqpFF==..OFF+NUMB	
r
>

DEFINE	NXTr0WRD(NUMB<1>),<
	rP..MSK==0
	..OFF=rp..OFF+NUMB

>
s
DEFINE	FILLER(Ns0UM),<
	..FLG==POsPS(..MSK)
	IFE ..spMSK,<..FLG==-1>
t	IFG <^D<NUM>-<^Dt035-..FLG>>,<PRINTtPX ?FILL TOO BIG ItpN A STRUCTURE>
u	...MSK==MASK.(^Du0<NUM>,<..FLG+^D<NuPUM>>)
	IFN FTSHOupW,<
	  PHASE ..OvFF
	  EXP ...MSKv0
	>
	..MSK==..MvPSK!...MSK
>

vp

DEFINE	HWORD(nwam),<
	..FLG==0	w0	
	IFE ..MSK&.LHwPALF,<FIELDM(nam,.wpLHALF)
			  ..FLxG==1>
	IFE ..FLGx0,<..MSK==..MSK!.LxPHALF
		   IFE ..xpMSK&.RHALF,<FIELDyM(nam,.RHALF)
		y0		     ..FLG==1>
		   IFE ..FLG,<ypNXTWRD
			      zFIELDM(nam,.LHALFz0) >
		  >
>

zP
DEFINE	FIELD(NAzpM,SIZ,POS),<
	..{FLG==0		

	IFB {0<POS>,<IFB <SIZ>,{P<
	  ...MSK==.RT{pMSK(<<^-<<..MSK>>|>>) 
	  IFE ...M|0SK,<..OFF==..OFF+|P1 
	    ..MSK==0|p		
	    ...MSK==}-1
	  >
	  FIEL}0DM(NAM,<...MSK>)	}P
	}p..FLG==-1		
	>>

	IFNB <SI~Z>,<.SIZ==^D<SIZ>~0> 

	IFNB <POS>~P,<		
	  FIELDM(N~pAM,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
	>>

	..OL	PD==..BITS		
	...	pOLD==..BITS		


>

DEFINE	BIT(N
0AM),<
	..BITS==L
PFTBT.(..OLD)	


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

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

	M
PSKSTR(A'NAM,\..O
pFFC,..BITS) 
	I FTSHOW,<
	HAP ..OFF
	P EXNAM
	>

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

>
0
DEFINE	FIELDM(NAPM,MASK),<
	IFN MpASK&..MSK,<	
	  ..MSK==0		
	  ..0OFF==..OFF+1
	>P

	..MSK==..MSK!pMASK	

	MSKSTR(A'NAM,\..OFFC,M0ASK) 
	A.'NAM==P..OFF
	IFN FTSHOpW,<
	  PHASE	A.'NAM
	  EXP	A'N0AM
	>
>

DEFIPNE ENDSTR(LENNAM<pLEN>,LSTNAM<LST>),<

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

	A.'LSTNAM==p..OFF	

	IFN FTSHOW,DEPHASE

	0..LOK==..LOK+1
	PIFN ..LOK,<PRINTXp ? MISSING BEGSTR>

	IF2,<
	  I0FDEF ...MSK,<SUPPPRESS ...MSK>
	  pIFDEF ..BITS,<SUPPRESS ..BITS>
	 0 IFDEF .SIZ,<SUPPPRESS .SIZ>
	  IFpDEF ..MSK,<SUPPRESS ..MSK>
	  IFD0EF ..OFF,<SUPPRESPS ..OFF>
	  IFDEpF ..FLG,<SUPPRESS ..FLG>
	  IFDEF0 ..LOK,<SUPPRESS P..LOK>
	  IFDEF p..LOC,<SUPPRESS ..LOC>
	  IFDEF .0.OLD,<SUPPRESS ..POLD>
	  IFDEF ..p.OLD,<SUPPRESS ...OLD>
	>

	IF10,<
	  IFDEF ...MPSK,<.XCREF ...MSKp>
	  IFDEF ..BITS,<.XCREF ..BITS>0
	  IFDEF .SIZ,<P.XCREF .SIZ>
	  pIFDEF ..MSK,<.XCREF ..MSK>
	  IFD0EF ..FLG,<.XCREF P..FLG>
	  IFDEF p..OFF,<.XCREF ..OFF>
	  IFDEF ..L0OK,<.XCREF ..LOK>P
	  IFDEF ..LOC,p<.XCREF ..LOC>
	  IFDEF ..OLD,<.X0CREF ..OLD>
	  IPFDEF ...OLD,<.XCRpEF ...OLD>
	>

	A.'LENNAM==..O0FF-B>

	..MSK=P=0		
	..OFF==B	p	
	A.D==B	

	IFDEF ..LOK,<IF0L ..LOK,<PRINTX ?P NEW BEGSTR WITHOpUT ENDSTR>>

	..LOK==-1


	.-u0,XBEG
	  E2 ~'y
	..NA==0~0			
	IRP B,<
	~P  .BLCL2 B>		
	~pPUSH P,[..NA+1,,..NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g gPE
	..SVBK	gp		
	XMOVEI .A16,ha	
	PUSH P,.A16h0
  DEFINE ENDBK.hP <
	RET			
a:!				
	.POPX>:!E3XG xP'a	
	..TRR=xp=10		
	RADIX 8		y	
	..NA==2			
	y0IRP A,<
	  ..NAyP=..NA+1>		
	IRP ypA,<
	  .BLSU1(zA,\..NA)	
	  ..Nz0A=..NA-1>
	..NV=zP=1			
	IRP B,<
	  .TRV1 (B)>		{
  DEFINE ENDBS.{0 <.ENBS1 <A>
		{P.ENSV1 <B>> 
	J{pSP .A16,.ENTER
	|..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' 1X#W8
W0.==A
W1.==B				;INIT2@IALIZE BREAK MASK2`
W2.==C
W3.==D
==C
W3.==-=#0P),\0B,<
	,^0QAB (,b0    ..SEJZ ,8"w	..V22==a,X
	..V1==a
	IFN,xB <B>,<..V22==B->
REPEAT ..V22-<-8a>+1,<	
	%%W==.-X.V1/^D32	
	%%X==-x..V1-%%W*^D32	
	.IFE C,BRKC1 \"<%.8%W+"0">	
	IFN C.X,BRKC2 \"<%%W+"0".x>
	..V1==..V1+1
		   >
.V1+1 /8"{	WA.==WA.!<1B<%%X>>
AEJ\4@ /x#	WA.==WA0.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: *x"Y
%%FOO==+a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g 3 #$
	BRINI. A3@,B,C,D	
	IRPC3` E,<	UNBRK. "E"4>	
	IRPC F,<	BR4 KCH. "F">	
	EXP4@ W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +I  :0U
	..STR0 :P(.DECR0,,<A>,B)DECR0,,<A>,B)I6= U7
	A==<-1U8B<C>+1B<C-D>> UX
	IF1,<IFDEF %AUx,<PRINTX ?A ALREVADY DEFINED>>
	DV8EFINE %A (OP,AC,VXY,MSK)<
	$A==<ZVx B>		
	OP (<AC>,B'Y,MSK)><AC>I<p jc
	..SVLD	j0		
a:!				
  DjPEFINE OD. <
b:!jp				
	.POPX>			
  DEFINE LOOP. <k0
	JRST a>		
  kPDEFINE TOP. <a>	kp	
  DEFINE ENDLPl. <b>		
  DEFINl0E EXIT. <
	JRST b>T. <
	JRST IKH1 p'$
..TMSK==p ..MASK
..TNAC==.[email protected]
REPEAT ..p`NAC,<
   IFN ..TqMSK,<
	..NUM==^Lq <..TMSK>
	..TMSKq@==..TMSK-1B<..NUMq`>
	IFE ..TMSK & r1B<..NUM+1>,<
		r MOVE ..NUM,-..TNAr@C(P)
		..TNAC==.r`.TNAC-1>
	IFN ..sTMSK & 1B<..NUM+1s >,<
		DMOVE ..NUs@M,-..TNAC(P)
		.s`.TNAC==..TNAC-2
t		..TMSK==..TMSK-t 1B<..NUM+1>>
	>>t@
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 k&|
IFG ..NAk C,<ADJSP P,..NAC>k@
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
l    IFN ..TMSK,<
l@	..NUM==^L<..TMSKl`>
	..TMSK==..TMSmK-1B<..NUM>
	IFEm  ..TMSK & 1B<..NUm@M+1>,<
		MOVEM .m`.NUM,-..TNAC(P)
n		..TNAC==..TNAC-n 1>
	IFN ..TMSK &n@ 1B<..NUM+1>,<
	n`	DMOVEM ..NUM,-..oTNAC(P)
		..TNACo ==..TNAC-2
		..To@MSK==..TMSK-1B<..NUM+1>>
	>>
.K+\Y`p0-&p0-#p0-&p0- 4p0-#"%p0- UN.,HK+`p0-8p0-5p0-8p0-24p0-5"'p0-2UNEMK3S@ !....UK:$Kg e
	OD.TK:%G !....UKCm 
P(_DEFINE ..E
pP. (LOCN,PTEXT)
	    <PRINTX Loca0tion 'LOCN': PTEXPT
	    >
	  ..EpP.(\.,<A>)
	  PURGE ..EP.
	  KJn9` )"K
	ERJMP	[)8TMSG <? A>
		 JSHLT]
A>
		 JKc  )x"S
   IF2,<*
	IRP A,<
	IFN*8DEF A,<EXTERN A
	SUPPRE A>>>M2  9<<<A>B<POS(B)>>&<B>>POM2$*g 9#n
	..XX==<9 FLD(A,CM%FNC)>+9@B+<Z G>
   IFNB9` <D>,<..XX=CM%HP:P!..XX>
   IFNB : <E>,<..XX=CM%DPP:@!..XX>
   IFNB <:`F>,<..XX=CM%BRK!;..XX>
	..XX
   ; IFNB <C>,<C>
 ;@  IFB <C>,<0>
 ;`  IFNB <D>,<POIN<T 7,[ASCIZ D]>< 
   IFB <D>,<IF<@NB <EF>,<0>>
 <`  IFB <E>,<IFNB =<F>,<0>>
   IFN= B <E>,<POINT 7,[=@ASCIZ \E\]>
   =`IFNB <F>,<F>
    <F>,<F>
 M2$HG 5#D

	..XX==<5 FLD(A,CM%FNC)>+5@B+<0,,F>
   IFN5`B <D>,<..XX=CM%H6PP!..XX>
   IFNB6  <E>,<..XX=CM%DP6@P!..XX>
	..XX
6`  IFNB <C>,<C>
7 IFB <C>,<0>
   IFNB <D>,<PO7@INT 7,[ASCIZ D7`]>
   IFB <D>,<8IFNB <E>,<0>>
 8   IFNB <E>,<POIN8@T 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7p &X"9
	HRROI .&xAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ 8S

  DEFINEX e(C)<D>
..FOxRN==A
REPEAT B-A+1,<
	.FORN1 8(e)
	..FORN=..FORN+1>.FORN=..FM?3@ Xi
  DEFINEx %MN1 (B)<C>
	..FORN==A		
	.FORN1 (%MN1)
	.FM?@ 8_
  DEFINEX d (B)<C>
  IxRP A,<
	.FORX1 d,A>
	.FORX1MS{PNF.=0		`	
	..ENC.=0			
	IFE B-7,			
	  <..ENC.=^O57			
	  IFN D-^O44,<`IFN D-^O35,<IFN D-^O26,<IFN D-^ O17,<IFN D-^O10,@
		     	<IFN D`-1<..ERR.=..ERR.! 1>>>>>>
	  >
	I  FN B-7,			
	  < @IFE B-6,
	    < `..ENC.=^O45			
	!    IFN D-^O44,<! IFN D-^O36,<IFN !@D-^O30,<IFN D-^!`O22,<IFN D-^O14,"
			<IFN D-6,<I" FN D,<..ERR.=.ER"@R.!1>>>>>>>
	   "` >
	  IFN B-6,	#		
	    <IFE B-# ^O10,
	      <..#@ENC.=^O50		
	   #`   IFN D-^O44,<I$FN D-^O34,<IFN $ D-^O24,<IFN D-^O$@14,<IFN D-4,
		$`	<..ERR.=.ERR.!1>%>>>>
	      >
	%     IFN B-^O10,	%@	
	      <IFE B%`-^O11,
		<..ENC.&=^O62		
		IFN D& -^O44,<IFN D-^O3&@3,<IFN D-^O22,<I&`FN D-^O11,<IFN 'D,
			<..ERR.=..' ERR.!1>>>>>
		>
	      IFN B-^O'`11,		
		<IFE B-(^O22,
		  <..ENC( .=^O54		
		  IFN(@ B-^O44,<IFN B-(`^O22<IFN B,<..ER)R.=..ERR.!1>>>
	) 	  >
		IFN B-^O)@22,<..ERR.=..ERR.)`!2>	
		>
	     * >
	    >
	* >
	IFN <<C>&<-1,,*@0>>,<..ERR.=..ERR*`.!4> 
					     +
	IFN <<A>&<^O<+ -1,,770000>>>,<..+@ERR.=..ERR.!<^O20+`>> 
	IFN ..ERR.,,
	  <IFN ..ERR.&, 1,<MPRNTX (G1BPT,,@Illegal byte offs,`et: D)>
	  IFN -..ERR.&2,<MPRNTX - (G1BPT,Illegal by-@te size: B)>
	 -` IFN ..ERR.&4,
	.    <MPRNTX (G1BP. T,<Address indexe.@d, indirect, or g.`reater than 18 bi/ts: C>)>
	  IFN/  ..ERR.&<^O20>,<M/@PRNTX (G1BPT,Sect/`ion greater than 012 bits: A)>
	 0  -1,-1,-1		
	  >0@
	
	IFE ..ERR.,0`
	  <<<..ENC.+<<1B>-<<D>/<B>>>>1 _<^O36>>!<<C>&<01@,,-1>>!<<A>_^O<21`2>>>
	PURGE ..ERR.,..ENC.
	.ER->)g^O44S{NJ
..ERR.=0		>
	> .BSIZ.=B		
	  .BPOS.=D
	I>@FN <<A>&<^O<-1,,>`770000>>>,
	  <M?PRNTX(G2BPT,Secti? on greater than 1?@2 bits: A)
	  .?`.ERR.=1
	  >
	I@FN <<C>&<^O<7777@ 40,,0>>>,
	  <MP@@RNTX(G2BPT,Bits 0@` - 12 non-zero inA address field: A C)
	  ..ERR.=1
A@	  >
	IFN <<E>&A`<-1,,0>>,
	  <MPBRNTX(G2BPT,Bits 0B -17 non-zero in oB@ptional field: EB`)
	  ..ERR.=1
	C  >
	IFN <.BSIZ.C &<^O<-1,,777700>>C@>,
	  <MPRNTX(G2C`BPT,Bytesize greaDter than 6 bits: D B)
	[email protected].=1
	  >
	IFN <.BPOD`S.&<^O<-1,,777700E>>>,
	  <MPRNTX(E G2BPT,Byte offsetE@ greater than 6 bE`its: D)
	  ..ERFR.=1
	  >
	IFN F ..ERR.,<-1,-1,-1>F@		
	
	IFE ..ERRF`.,
	  <IFDIF <DG><>,<<<POINT .BSIG Z.,E,.BPOS.>!1B1G@2>&<^O<777740,,-1G`>>>
	  IFIDN <DH><>,<<<POINT .BSIH Z.,E>!1B12>&<^O<H@777740,,-1>>>
	 H`   
	    <<<C>_I<^O14>>&<^O<37000I 0,,0>>!<<C>&<0,,I@-1>>!<<A>_<^O22>I`>>
	  >
	PURGE J..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP-@+i0N
0ON{  P)%..ERR.=0		p
	IFN <<A>&<^O<-1,,770000>>>,
	0  <MPRNTX(GFIWM,SPection greater thpan 12 bits: A)
	  ..ERR.=1
	  >0
	IFN <<B>&<^O<P777740,,0>>>,
	 p <MPRNTX(GFIWM,Bits 0 - 12 non-zer0o in address fielPd: B)
	  ..ERR.p=1
	  >
	IFN ..ERR.,<-1,-1,-1>	
				
	IFE ..ERRP.,<
	  <<<B>_<^pO14>>&<^O<370000,,0>>!<<B>&<0,,-10>>!<<A>_<^O22>>>P>
	PURGE ..ERR.
	PURGE..ERR.
	JUMPN ~PA,b		
	..SVDF		~p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STS.:g }o
	PRINTX }0% IFESK. should b}Pe changed to IFNJ}pE.
	IFNJE. <A>.
	IFNJE. <A>S9` 0 
	JUMPLE PA,b		
	..SVDF	p		
   DEFINE ..TAGF (INST,PCT)<
0	INST b'PCT>		
P   DEFINE ..TAGE p(INST,PCT)<
	INST c'PCT>		
	SS<S@ 0 /
	JUMPL PA,b		
	..SVDF		p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STST\G rp/

   IFB <sAB>,<		
	..SVDs0F			
	ERJMP e		sP
	JRST c		
e:sp!
   DEFINE ..TAtGF (INST,PCT)<
	t0INST c'PCT>		
 tP  DEFINE ..TAGE (tpINST,PCT)<
	INSTu d'PCT>		
	>
 u0  IFNB <AB>,<		uP
	ERJMP c		
	upB
	JRST d
c:!	A
d:!>
c:!Sa` 0 O
	JUMPGE PA,b		
	..SVDF	p		
   DEFINE ..T	AGF (INST,PCT)<
	0	INST b'PCT>		
	P   DEFINE ..TAGE 	p(INST,PCT)<
	INST c'PCT>		
	SSdS@ 0 ?
	JUMPG PA,b		
	..SVDF		p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STSq` 0 
	JUMPE PA,b		
	..SVDF		p	
   DEFINE ..TAGF (INST,PCT)<
	0INST b'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST c'PCT>		
	STSt\g v09
	PRINTX vP% IFNES. should bvpe changed to IFJEwR.
	IFJER. <A>,<B>FJER. <A>,Su)' z0e
   IFB <zPA>,<		
	..SVDF	zp		
	ERJMP b
  { DEFINE ..TAGF (I{0NST,PCT)<
	INST {Pb'PCT>		
   DEF{pINE ..TAGE (INST,|PCT)<
	INST c'P|0CT>		
	>
   IFN|PB <A>,<
	ERJMP b
	A
b:!> Sv:g o0
   IFB <oPAB>,<		
	..SVDopF			
	TRNA			
	pJRST c		
   DEFp0INE ..TAGF (INST,pPPCT)<
	INST c'PppCT>		
   DEFINE q..TAGE (INST,PCT)q0<
	INST d'PCT>	qP	
	>
   IFNB <qpAB>,<		
	JRST rc		
	B
	JRST r0d
c:!	A
d:!>
c:!	A
d:!>S
S@ 0!
	JN <A>P,<B>,c	
	..SVDpF			
   DEFINE ..TAGF (INST,PCT)<0
	INST c'PCT>		P
   DEFINE ..TAGpE (INST,PCT)<
	INST d'PCT>		
	ST d'PCT>		
	S P!
	JE <A>p,<B>,c	
	..SVDF			
   DEFINE .0.TAGF (INST,PCT)<P
	INST c'PCT>		p
   DEFINE ..TAGE (INST,PCT)<
	I0NST d'PCT>		
	ST d'PCT>		
	S< wPO
   IFB <wpA>,<		
	..SVDF	x		
	JRST b
   x0DEFINE ..TAGF (INxPST,PCT)<
	INST xpb'PCT>		
   DEFIyNE ..TAGE (INST,Py0CT)<
	INST c'PCyPT>		
	>
   IFNByp <A>,<
	JRST b
	A
b:!> bSDS@ 
0 _
	JXN A,
PB,c	
	..SVDF		
p	
   DEFINE ..TAGF (INST,PCT)<
	0INST c'PCT>		
 P  DEFINE ..TAGE (pINST,PCT)<
	INST d'PCT>		
	STSEc@ 
0 o
	JXE A,
PB,c	
	..SVDF		
p	
GFDEFINE,..TA
	NST c'PCT>		
PNDEFINE)..TAGE (
	INST d'PCT>		
	STS:  8C
	..STR0 80(.INCR0,,<A>,B)INCR0,,<A>,B)S? (XE
	TXO A,<B>
	TXO A,Ut@ MPq
	..STR1 Mp(..JAN,<d,<C>>,N<A>,B,..STR5)
d:B,..STR5)
U A0
	..STR1 AP(..JE,<C>,<A>,B,..STR3)<A>,U8 Ep1
	..STR1F(..JN,<C>,<A>,B,..STR3)<A>,U:
	..STR1 K0(..JNA3,<C>,<A>,B,..STR4)<A>U:~  Pp
	..STR1 Q(..JNO,<d,<C>>,Q0<A>,B,..STR5)
d:B,..STR5)
U? J0U
	..STR1 JP(..JN,<C>,<A>,B,..STR4)<A>,UN.,@`p0-p0-p0-p0-,p0-"%p0-UN.,HUN.,HA  UN.,HUNEM`p0-/p0-,p0-/p0-),p0-,"'p0-)UNEMUNEMA  UNEMUNn9hA  UNn9hUb( <x
	..JX1===B		
	.IFN ..JX1=8,ABSOLUTE,<PRINTX=X B NOT ABSOLUTE
		..JX1==0>
	.I>F ..JX1,ABSOLUTE,>8<
	.IF0 <<..JX1>>X-1B0>,<	
		JUMPG>xE A,C>,<
	.IF0? <<..JX1>+1>,<	
?8	  JUMPE A,C>,<?X	
		TXNN (A,..J?xX1)
		JRST C>>>)
		JRST C>>>Ub0 Gx[
	..JX1==HB		
	.IFN ..JX1H8,ABSOLUTE,<PRINTXHX B NOT ABSOLUTE
		..JX1==0>
	.IIF ..JX1,ABSOLUTE,I8<
	.IF0 <<..JX1>IX-1B0>,<
		JUMPGEIx A,C>,<
	..ONEJB (..BT,B)	
	.IJ8F0 ..BT,<
	  SETJXCM .SAC,A		
	  JxJXN (.SAC,..JX1,KC)>,< 
	    TXNNK8 A,..JX1	
	    JRST C>>>	    Ubp @8
	..JX1==@XB		
	.IFN ..JX1@x,ABSOLUTE,<PRINTXA B NOT ABSOLUTE
		..JX1==0>
	.IAXF ..JX1,ABSOLUTE,Ax<
	.IF0 <<..JX1>B-1B0>,<	
		JUMPLB8 A,C>,<
	.IF0 BX<<..JX1>+1>,<	
	Bx  JUMPN A,C>,<	C
		TXNE (A,..JXC81)
		JRST C>>>)
		JRST C>>>Ubx Cx;
	..JX1==DB		
	.IFN ..JX1D8,ABSOLUTE,<PRINTXDX B NOT ABSOLUTE
		..JX1==0>
	.IEF ..JX1,ABSOLUTE,E8<
	.IF0 <<..JX1>EX-1B0>,<
		JUMPL ExA,C>,<
	..ONEBF (..BT,B)	
	.IFF80 ..BT,<
	  SETCFXM .SAC,A		
	  JFxXE (.SAC,..JX1,CG)>,< 
	    TXNE G8A,..JX1	
	 JRSTC>>>	.=AJXF	
	.BPOS.=C
	.P.ERR.=0		
	IFN <p<B>&<^O<777740,,0>>>,
	  <MPRNTX0(L1BPT,Bits 0 - 1P2 non-zero in addpress field: B)
	  ..ERR.=1
	  >0
	IFN <.BSIZ.&<^PO<-1,,777700>>>,
	  <MPRNTX(L1BPT,Bytesize greater0 than 6 bits: A)P
	  ..ERR.=1
	 p >
	IFN <.BPOS.&<^O<-1,,777700>>>0,
	  <MPRNTX(L1BPPT,Byte offset grpeater than 6 bits: C)
	  ..ERR.=01
	  >
	
	IFN P<..ERR.>,<-1,-1,-p1>
	
	IFE <..ERR.>,
	  <IFIDN <0C><>,<POINT .BSIPZ.,B>
	  IFDIF p<C><>,<POINT .BSIZ.,B,.BPOS.>
	0  >
	PURGE ..ERRP.,.BSIZ.,.BPOS.
	BSIZ.,.BPOS.
XJ 2@+gWp..ERR.=0		2p
	3.BSIZ.=A		
	  .BPOS.=C
	I30FN <<B>&<^O<77773P40,,0>>>,
	  <MP3pRNTX(L2BPT,Bits 04 - 12 non-zero in40 address field: 4PB)
	  ..ERR.=1
4p	  >
	IFN <<D>&5<-1,,0>>,
	  <MP50RNTX(L2BPT,Bits 05P-17 non-zero in o5pptional field: D6)
	  ..ERR.=1
	60  >
	IFN <.BSIZ.6P&<^O<-1,,777700>>6p>,
	  <MPRNTX(L27BPT,Bytesize grea70ter than 6 bits: 7PA)
	7p..ERR.=1
	  >
	IFN <.BPO8S.&<^O<-1,,77770080>>>,
	  <MPRNTX(8PL2BPT,Byte offset8p greater than 6 b9its: C)
	  ..ER90R.=1
	  >
	IFN 9P..ERR.,<-1,-1,-1>9p		
	
	IFE ..ERR:.,
	  <IFDIF <C:0><>,<<<POINT .BSI:PZ.,D,.BPOS.>!1B1:p2>&<^O<777740,,-1;>>>
	  IFIDN <C;0><>,<<<POINT .BSI;PZ.,D>!1B12>&<^O<;p777740,,-1>>>
	<<   <1B0!<<^O<4000<037,,-1>>&<B>>>	
	  >
	PURGE ..E<pRR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOS.-?+0
	'RYN{  
0(y..ERR.=0		
P
	IFN <<A>&<^O<
p777740,,0>>>,
	tMPRNTX(LFIWM,Bi
	  ..ERR.=1
	  >
	IFN ..0ERR.,<-1,-1,-1>	
	IFE ..ERR.,<1B0p!<<^O<400037,,-1>>&<A>>>	
	PURGE ..ERR.
	PURGEY$-  01_<^D35-^L<A>>1_<^D35-^LY>
@ #P
	..STR0 #p(..LDB,A,B,C)..LDB,A,B,C)Y>
I  &05
	..STR0 &P(..LDBE,A,B,C).LDBE,A,B,C)[i9Q t[^+' X
  DEFINEx A (STUFF)<
	c (<STUFF>,)>

 8 DEFINE c (NEW,OXLD)<
    DEFINE xA (STUFF)<
	c (<STUFF>,<OLD'NEW8>)>>

  DEFINE XB <
    DEFINE xc (NEW,OLD)<OLD>
	A ()>
OLD>[3@  p<<<1_<A>>-1>B<B>>_<A>>[8@ 8C<1B<<A>-1>-1B<B>><A>-1[>!` xG<<A>-<<A>/<B>>*<B>>A[?7  85
   ..MX1 X==B			
!.IFN  x..MX1,ABSOLUTE,<
	MOVE A,[B]>
!8   .IF ..MX1,ABSO!XLUTE,<
	..MX2==0!x		
	IFE <..MX1>B"53,<
	  ..MX2==1"8
	  MOVEI A,..M"XX1>	
	IFE ..MX2,"x<		
	IFE <..MX1>#B17,<
	  ..MX2==#81
	  MOVSI A,(.#X.MX1)>>	
	IFE ..#xMX2,<		
	IFE <<.$.MX1>B53-^O777777$8>,<
	$X..MX2==1
	  HRROI A,<..M$xX1>>>	
	IFE ..MX%2,<		
	IFE <<..M%8X1>B17-^O777777B1%X7>,<
	  ..MX2==1%x
	&8HRLOI A,(..&MX1-^O777777)>> 
	IFE ..MX2,<		
&X	  MOVE A,[..MX1]>	
  >,[..MX1[Cm 0(QDEFINE ..MPP. (LOCN,MTEXT,PTpEXT)
	    <PRINT	X Location 'LOCN'	0, Macro 'MTEXT': 	PPTEXT
	    >
	 	p ..MP.(\.,A,<B>
)
	  PURGE ..MP.
	  URGE ..MP.[N^= W8G
	A==C	WX	
	IF1,<IFDEF %WxA,<PRINTX ?A ALRXEADY DEFINED>>
	X8DEFINE %A (OP,ACXX,Y,MSK)<
	$A==<XxZ B>		
	OP (<AC>,B'Y,MSK)><AC[Xp ';
	MOVE .S'8AC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` 'xA
	MOVX .S(AC,<A>
	MOVEM .SAC,B
	MOVEM ._CL@ <Pg
	..STR0 <p(.OPST1,<A>,<B>,C)1,<A>,<B>_CLV >py
	..STR0 ?(.OPST2,<A>,<B>,C)2,<A>,<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= 'X"A
   IFNB 'x<A>,<
	TMSG <A(>>
	CALL JSMSG0>
	CALL JSMSG0a4\G  L
	..PGV0=@=.		
	.JBVER=:^O`137		
	LOC	.JBVE	R		
	BYTE	(3)D(	 9)A(6)B(18)C
	@	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm 85<POINT WIDX(B),A,POS(B)>B),A,POS(B)>a? x/<^L<<A>&<-<A>>>><<A>&<aKH1 v`'@
	..NUM==w^D15
	REPEAT ^D1w 6,<
		IFN ..MASKw@ & 1B<..NUM>,<
	w`	POP P,..NUM>
		x..NUM==..NUM-1
	>
==..NUM-1
	aNh1 u'2
	..TMSK=u =..MASK
	REPEAT [email protected],<
		..NUM=u`=^L<..TMSK>
		..vTMSK==..TMSK-1B<.v .NUM>
		PUSH P,..NUM
	>
H P,.dA  de  ,~e&:x %8"+JRST RSKP-JRST RSKPeN^A  eN^gXY R0%'
	..TRR==RP10		
	RADIX 8
	Rp..NV==1			
	IRP SA,<
	  .TRV1 (S0A)>		
	IFG ..NV-SP5,<PRINTX ?TOO MASpNY ARGUMENTS: A>T
	JSP .A16,.SASET0T		
	RADIX ..TRRTP		
	DEFINE ENDSATp.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 ^@&D

..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>a
	IFE A-.SAC,<.a .SACC==1>
	IFN [email protected],<IFE ..MASa`K&1B<A>,<
		..MbASK==..MASK!1B<Ab >
		..NAC==..NACb@+1>>
	>
IFE ..Sb`ACC,<USRSAV>		
IcFE ..DONE,<
  IFc LE ..SACC,<JSP .Sc@AC,[> 
  IFG ..Sc`ACC,<CALL [EXCH .dSAC,(P)>
		    Id FG  ..NAC-3,<DSAVd@AC>
		    IFLE .d`.NAC-3,<IFG ..NACe,<PSAVAC>>
		   e  PUSHJ P,(.SAC)
e@		      TRNA
		 e`   AOS -..NAC-..SfACC(P)
		    IFGf   ..NAC-3,<DRSTACf@>
		    IFLE ..Nf`AC-3,<IFG ..NAC,<gPRSTAC>>
		    Ig FG ..SACC,<POP P,[email protected]>
		    POPJg` P,]
>
PURGE ..hNAC,..TNAC,..MASKh ,..TMSK,..SACC,..h@NUM,..SMSK,..DONE
..SMSK,..DONEg$;8 4p)
	..STR1 5(..TQC,,<A>,B,..STR4)<A>,B,.g%{R 10
	..STR1 1P(..TQO,,<A>,B,..STR4)<A>,B,.g',W -Po
	..STR1 -p(..TQZ,,<A>,B,..STR4)<A>,B,.gB8; i&T
	IFE ..Di ONE,<
		..SMSK==i@0
		IRP <B>,<..i`SMSK==..SMSK!1B<jB>>
		IFE ..MASKj -..SMSK,<JSP .SACj@,A
				   ..DONE==1>
	>
.DONgR$g 
]
F=:0
T1
8=:1
T2=:2
T3=:3
X
T4=:4
Q1=:5
Q
x2=:6
Q3=:7
P1=:10
P2=:11
P3=:182
P4=:13
P5=:14X
P6=:15
CX=:16
P=:17
CX=:16?$
	..STKR=?0=10		
	RADIX 8
?P	..STKN==0
	IRP ?pA,<
	  .STKV1 (@A)>
	JSP .A16,.@0XSTKS		;Call inte@Prnal routine for @pallocation
	 EXPA ..STKN		;Size ofA0 block to allocatAPe
	RADIX ..STKR
	DEFINE ENDSV.<.BENSV1 <A>>
   NSV1 <A>>
   gR~  *pY
	..STR0 +(..DPB,A,B,C)..DPB,A,B,C)i6tP Rp
	..STR1 S(..TYNE,,<A>,B,..STR3)<A>,B,i6u` VP7
	..STR1 Vp(..TYNN,,<A>,B,..STR3)<A>,B,i7p %x"1
	HRROI .&AC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..SaPTR1 (..TY,C,<A>,B,..STR3)<A>,iF cP
	    ..ScpTR1 (..TY,CA,<A>,B,..STR3)<A>iFP b
	    ..Sb0TR1 (..TY,CE,<A>,B,..STR3)<A>iF` bp
	    ..ScTR1 (..TY,CN,<A>,B,..STR3)<A>iFp X0E
	    ..SXPTR1 (..TY,N,<A>,B,..STR3)<A>,iFt ZPW
	    ..SZpTR1 (..TY,NA,<A>,B,..STR3)<A>iFtP YK
	    ..SY0TR1 (..TY,NE,<A>,B,..STR3)<A>iFu` YpQ
	    ..SZTR1 (..TY,NN,<A>,B,..STR3)<A>iFx [0]
	    ..S[PTR1 (..TY,O,<A>,B,..STR3)<A>,iF| ]Po
	    ..S]pTR1 (..TY,OA,<A>,B,..STR3)<A>iF|P \c
	    ..S\0TR1 (..TY,OE,<A>,B,..STR3)<A>iF}` \pi
	    ..S]TR1 (..TY,ON,<A>,B,..STR3)<A>iGP ^0u
	    ..S^PTR1 (..TY,Z,<A>,B,..STR3)<A>,iGT `P
	    ..S`pTR1 (..TY,ZA,<A>,B,..STR3)<A>iGTP _{
	    ..S_0TR1 (..TY,ZE,<A>,B,..STR3)<A>iGU` _p
	    ..S`TR1 (..TY,ZN,<A>,B,..STR3)<A>iK4@ HP$W
	..TRR==Hp10		
	RADIX 8
	I..NV==1			
	IRP I0A,<
	  .TRV1 (IPA)>		
	JSP .A16,Ip.XTRST		
	JEXP .J.NV-1		;Size of bJ0lock to allocate
	RADIX ..TRR		
Jp	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib 4X%
		..TX(C,A,<B>)..TX(Cib 61
		..TX(CA,A,<B>).TX(CibP 5)
		..TX(CE,A,<B>).TX(Cib` 5X-
		..TX(CN,A,<B>).TX(Cibp .Xu
		..TX(N,A,<B>)..TX(Nibt 0
		..TX(NA,A,<B>).TX(NibtP /y
		..TX(NE,A,<B>).TX(Nibu` /X}
		..TX(NN,A,<B>).TX(Nibx 0X
		..TX(O,A,<B>)..TX(Oib| 2
		..TX(OA,A,<B>).TX(Oib|P 1	
		..TX(OE,A,<B>).TX(Oib}` 1X
		..TX(ON,A,<B>).TX(OicP 2X
		..TX(Z,A,<B>)..TX(ZicT 4!
		..TX(ZA,A,<B>).TX(ZicTP 3
		..TX(ZE,A,<B>).TX(ZicU` 3X
		..TX(ZN,A,<B>).TX(Zk:*g +X"_
%%FOO==+xa
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; %pgK:%Gm$,YP'm$-X5Q |m$-Z7Q xm$.zQ po&  8+<^L<-<<A>_<^L<A>>>-1>>>q
fC@ >0#s
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? )XM
	TXC A,<B>
	TXC A,:h u
	A:&@ +Pi
	..TSIZ +p(..PST,C)
	.CAS,E ..PST,<<
		MOV,0EM A,B>,<
		HR,PRM A,B>,<
		HR,pLM A,B>,<
		DP-B A,[POINTR (B,C)]>>INTR (B,:<;Y mxs
   DEFINnE ..CNS2 (NEW,OLDn8)<
	  OLD>			
	..CNS ()>			
	:L;Y kXk
   DEFINkxE ..CNS (ARG)<
	l..CNS2 <ARG>,>
l8
   DEFINE ..CNS2lX (NEW,OLD)<
	DEFlxINE ..CNS (ARG)<
	  ..CNS2 <ARG>,m8<OLD'NEW>>>
   OLD'NEW>>>
   :Mi 0!c
 DEFINE PELSE. <
	..TAGE p(JRST,)		
	..TAGF (,<:!>)		
	SYN0 ..TAGE,..TAGF	
P   DEFINE ELSE. <p....U>>	

 DEFINE ENDIF. <
	..T0AGF (,<:!>)		
	..RSDF>			
   .:TH NPu
	..JNA3 (A,C,D)JNA3 :TI O
	..TSAC O0(..ACT,C)
	.IF0OP ..ACT,<
	  SETCOpM .SAC,C	
	  JXPE (.SAC,D,<B>)>P0,<	
	  JXO (C,D,<B>)>O (C,:TP B+
	..TSAC B0(..ACT,B)	
	.IFBP0 ..ACT,<
	  ..TBpSIZ (..PST,C)	
C	  .CASE ..PST,<<C0
		SKIPN B	
		CPJRST A>,<
		HRRCpZ .SAC,B	
		JUMDPE .SAC,A>,<
		D0HLRZ .SAC,B	
		DPJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<E0A>)>>>,<
	  JXE (B,C,<A>)>E:U` FPO
	..TSAC Fp(..ACT,B)	
	.IFG0 ..ACT,<
	  ..TG0SIZ (..PST,C)
	GP  .CASE ..PST,<<
		SKIPE B	
		JHRST A>,<
		HRRZH0 .SAC,B	
		JUMPHPN .SAC,A>,<
		HHpLRZ .SAC,B	
		JIUMPN .SAC,A>,<
I0		MOVE .SAC,B	
IP		JXN (.SAC,C,<IpA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) Kpi
	..TSAC L(..ACT,B)
	.IF0L0 ..ACT,<
	  SETCLPM .SAC,B	
	  JXLpN (.SAC,C,<A>)>M,<	
	  JXF (B,C,<A>)>F (B,:Ukh Qp
	..JN (A,C,D)..JN (:Uki R0
	..JE (<B>,C,D)JE (<:dH@ $0/
	..TSIZ $P(..PST,C)
	.CAS$pE ..PST,<<
		MOV%E A,B>,<
		HRR%0Z A,B>,<
		HLR%PZ A,B>,<
		LDB%p A,[POINTR (B,C)]>>INTR (B,:dHR 'S
	..TSIZ '0(..PST,C)
	.CAS'PE ..PST,<<
		MOV'pE A,B>,<
		HRR(E A,B>,<
		HLR(0E A,B>,<
		JSP(P .SAC,[LDB A,[PO(pINTR (B,C)]
		)	  ..MSK==MASK.(W)0ID(C),35)
			  )PTXNE A,LFTBT.(..)pMSK)	
			  TXO *A,^-..MSK	
			  *0PURGE ..MSK
			  JRST (.SAC)]>>:}i1 T8%
	A==<<<TX-<B>>&<B>>&<1B<^L<B>>>>>&<1B<;9 !{
	.POPX;LH Y8[
	IFNDEF YXC,<PRINTX ?C ISYx NOT DEFINED
	  ZA (<B>,D,.FWORZ8D)>	
	IFDEF C,<ZX
	IFNDEF %C,<
Zx	  A (<B>,D,C[)>	
	IFDEF %C,<[8
	  %C (A,<B>,D,C)>>A,<B>;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,<B^X>,,>) 
	IRP C,<^x		
	  IFNDEF C,_<PRINTX C NOT DE_8FINED>
	  IFDEF _XC,<
	  IFNDEF %_xC,<
	  ..CNS (<`,C,D>)>	
	  IF`8DEF %C,<
	  %C`X (..STR2,,D,C)>`x 
	  ..CNS (<)>)a		
	  ..GCNS		
a8	  ..ICNS		
	  .aX.CNS (<E (A,<Bax>>) 
	  IFNDEF %bC,<
	  ..CNS (<b8,C,D>)>	
	  IFbXDEF %C,<
	  %Cbx (..STR2,,D,C)>c>> 
	..CNS (<,,)>)		
	..GCNS>);LI cX
	..CNS (<,C,B>).CNS (;LI d3

	IFDIF <d8D><F>,<
	  IFNdXB <D>,<
	    Adx (<B>,D,..MSK)	e
	    IFNB <F>,e8<PRINTX C AND EeX ARE IN DIFFERENTex WORDS>>
	  ..MSfK==0>		
	IFNB <f8F>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ fxC

	IFDIF <gD><F>,<	
	  IFg8NB <D>,<
	    gXA (<B>,D,..MSK)gx>	
	  ..MSK==0>	h	
	IFNB <F>,<
h8	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ hxY

	IFDIF <iD><F>,<	
	  IFi8NB <D>,<
	    IiXFNB <F>,<		
		ixA1 (B,D,..MSK)>j 
	    IFB <F>,j8<		
		A2 (B,DjX,..MSK)>> 
	  ..jxMSK==0>		
	IFNB k<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU iM
	SYN ENDi0BK.,a
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i p!y
	SYN ELSE.,a
	SYN ENDIF0.,b
	SYN ..TAGFP,c
	SYN ..TAGE,pd
	.PSHX <
	  SYN a,ELSE.
	  0SYN b,ENDIF.
	 P SYN c,..TAGF
	p  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k mw
	SYN OD.m0,a
	SYN LOOP.,mPb
	SYN TOP.,c
mp	SYN EXIT.,d
	.nPSHX <
	 SYN a,n0OD.
	 SYN b,LOOnPP.
	 SYN c,TOP.np
	 SYN d,EXIT.>	 SYN d,EXIT.>;$r !#....U;$s !!....U;&` 5P=
	..TSIZ 5p(..PST,C)
	.IF06 ..PST,<		
		SET60CMM B>,<	
	6p..6PTSAC (..ACT,B)	
	7.IF0 ..ACT,<
		MOVX .SAC,C
70		XORM .SAC,B>,<7P
		..TX(C,B,C)>>..TX(C,B,C);&` 2#
	..TSIZ 20(..PST,C)
	.CAS2PE ..PST,<<
		SET2pOM B>,<
		HLLOS3 B>,<
		HRROS 30B>,<
	  ..TSAC (3P..ACT,B)
	  .IF3p0 ..ACT,<
		MOVX4 .SAC,C
		IORM 40.SAC,B>,<
		..TX (O,B,C)>>>T;&@ .0
	..TSIZ .P(..PST,C)	
	.CA.pSE ..PST,<<
		SE/TZM B>,<	
		HLL/0ZS B>,<	
		HRRZ/PS B>,<	
	  ..TS/pAC (..ACT,B)	
	0  .IF0 ..ACT,<
	00	MOVX .SAC,C	
	0P	ANDCAM .SAC,B>,0p<
		..TX (Z,B,C)>>>TX (Z,B,;&81 PX
	A==0		Px	
	..TSA1==<Z BQ>		
	.IF ..TSA1,Q8ABSOLUTE,<	
	  IQXFE ..TSA1&^O77777Qx7777760,<A==1>> 
	60,<A==1>> ;&:= O
	A==3		O8	
	IFE <B>+1,<OXA=0>	
	IFE <B>-Ox^O777777,<A==1> P
	IFE <B>-^O777777B17,<A==2>7;&;Q R8
	A==0		RX	
	..TSA1==0		
Rx	IRPC C,<
	  ..STSA1=..TSA1+1
	SS8 IFE ..TSA1-B,<
	   IFIDN <C><SxD>,<
		A==1>		
	;'STOPI>>		
   ..TX1*8==C			
*x.IFN *X..TX1,ABSOLUTE,<
	TDA B,[C]>
+   .IF ..TX1,ABSO+XLUTE,<		
	..TX2=+8=0		
	IFE <..TX1+x&^O777777B17>,<
,	  ..TX2==1		
	 ,8 TRA B,..TX1>
,X	IFE ..TX2,<		
	,xIFE <..TX1&^O7777-77>,<
	  ..TX2==-81		
	  TLA B,(-X..TX1)>>
	IFE ..-xTX2,<		
	  IFE <.<..TX1>B53-^O7777.877>,< 
	    ..TX6X3 (A,B)>>	
	IF6xE ..TX2,<		
	  I7FE <..TX1+1>,<	
78	    ..TX4 (A,B7X)>>
	IFE ..TX2,<7x		
	  TDA B,[..TX1]>	
  >,[.;'` 88U
	IFIDN <8XA><Z>,<		
	  ..8xTX2==1
	  ANDI 9B,^-..TX1>	
	IFI98DN <A><O>,<		
	9X  ..TX2==1
	:OR9xCMI B,^-..TX1>	
	IFIDN <A><C>,<:8		
	  ..TX2==1
:X	  EQVI B,^-..TX1>QVI B,^-..TX;' ;c
	IFIDN <;8A><NN>,<
	  ..T;XX2==1
	  CAIN B;x,0>		
	IFIDN <A<><NE>,<
	  ..TX2<8==1
	  CAIE B,0>
	  CAIE B,0;' f9
	..TSAC f0(..ACT,B)	
	.IFfP0 ..ACT,<
		PRINfpTX ?TQA - B NOTg IN AC>,<
		TXA B,C>
		TXA;'R SP1
	..TSAC Sp(..ACT,B)	
	.IFT0 ..ACT,<
	  ..JT0X1==C
	  .IF0 <Tp..JX1-1B0>,<
		STPKIPGE B>,<
	   U .IF0 <..JX1+1>,<U0
		SKIPE B>,<
UP		MOVE .SAC,B
	Up	TXNE .SAC,C>>>,V<
		TXNE B,C>
		TXNE B,C>;'W W0-
	..TSAC WP(..ACT,B)	
	.IFWp0 ..ACT,<
	  ..JXX1==C
	  .IF0 <d0..JX1-1B0>,<
		SdPKIPL B>,<
	e  dp.IF0 <..JX1+1>,<
		SKIPN B>,<
	e0	MOVE .SAC,B
		ePTXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  W@%<
	.ACV2 (A)
	.ACV2 (d@ X%P
   IFDEFX  A,<.IF A,SYMBOX@L,<PRINTX ACVAR X`A ALREADY DEFINEDY>>
	A==.FPAC+..Y NAC	
	$A==A		
	IFB <B>,<..NACY`=..NAC+1>
	IFNB Z<B>,<..NAC=..NAC+B>..NAC=..NACd` Z@%`
	IFG A-Z`.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; ('
	  IFIDN0 <A><.>,<
		XMOPVEI .A16,B	
		PpUSH P,.A16>
	  IFDIF <A><.>,<
	0  .IFATM <A>,.BLPF1	
	  IFN .BLF1p,<
	    .BLF1==0		
	    .IF %A,0MACRO,<	
		.BLF1P==1>	
	    IFNB p<B>,<
		.BLF1==1>	
	    IFN .BL0F1,<		
		LOAD .AP16,A,B
		PUSH pP,.A16>>
	  IFE .BLF1,<		;IF WASN0'T A STRUCTURE REPF,
		PUSH P,A>>p	
	  ..NA=..NA+1
	  ..NA=..NA+1
d;	 P'}
	.BLCL1 A
	.BLCL1 
f=( |P'g
	DEFINE |pA<-^OB(.FP)>
	$A==<Z A>>
	9  Ms
	..CSN==M8A
	..CSC==0
	IMXRP B,<
	IFE ..CMxSN-..CSC,<
	  STNOPI
	  ..CAS1 (N8B)>
	..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 ,<H ;a
	..PST==;0C&<-C>
	.IF0 .;P.PST-1,<
		SOS ;pB>,<	
		MOVX .SA<C,-..PST 
		ADDM .SAC,B>		ADDMtH \@%f
	IRP A,\`<
	  .ENAV2 (A)>	  .ENAV2 (A)tI ] %j
	.ENAV3 (A)
	.ENAV3 tI ]`%n
	PURGE A,A
  PURGE t,h }0'm
	IRP A,}P<
   DEFINE A<....U>>FINE A<.v=H FP$7
	IRP A,Fp<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I G0$;
	.ENSV3 (A)
	.ENSV3 v=I Gp$?
	DEFINE A<....U>EFINE vI9A  vI9~+H xW
	A (\..FORN)
	A (\..~. a
	A BP `P =|RQ &2 Kxe
	..IFT==LA		
	IFE ..IFT,L8<
	B
	..IFT==0LX>		
	IFN ..IFT,<
	C>N ..IFT,<&4 0(?
	IRPC AP,<
	B==0
	IFGEp "A"-"A",<IFLE "A"-"Z",<B=1>> 
	IFGE "A"-"0",<PIFLE "A"-"9",<Bp=1>>
	IFE "A"-"%",<B=1>
	IFE "0A"-"$",<B=1>
	PIFE "A"-".",<B=p1>
	IFE B,<STOPI>>IFE B,<STOP&t<H 8pO
	..PST==9C&<-C>	
	.IF0 90..PST-1,<
		AOS 9PB>,<	
		MOVX .S9pAC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P t6k0P 6k4P 6mtP 6MiTQ @;`P ?= =0s
	..TSIZ =P(..PST,C)
	.IF0=p ..PST,<
		A B>>,<	
		..LDB .SA>0C,B,C 
		A .SAC>C 
		A .S?=	 ?P
	..TSIZ ?p(..PST,C)
	.IF0@ ..PST,<
		A B@0>,<	
		..LDB .SA@PC,B,C
		A .SA@pC
		..DPB .SAC,B,C>DPB .SAC,B~ !p"
	.PSHX1 (.POPX2).PSHX1 B~	 "0"
	.POPX4 A
	.POPX4 B~	 #0"!
	A
   #PDEFINE .PSHX1 (WC#pH,STUFF)<
	WCH ($<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 "p"
	.POPX3 B
	.POPX3 C p!
	.PSHX1 (.PSHX2,<A>)1 C  0"
	A (<B>)
	A (<BC	  p"
   DEFIN!E .PSHX1 (WCH,STU!0FF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z X?<<<A>&<Bx>>B<^D70-POS(B)>><^D70-POS(B)>K%\u !0
<IFE <<F!PILIN.(<A>)&<^-A!p>>>,<A>>!<IFN <<"FILIN.(<A>)&<^-"0A>
>><<FILIN.(<<"P<RGHBT.(<<FILIN.("p<A>)&<^-A>>>)>_#-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 BP$
	.STKV2 (A)
	.STKV2 O%=I C$#
	IFB <BC0>,<..STKN==..STKNCP+1>
	IFNB <B>,<Cp..STKN==..STKN+BD>
	..STKQ==..STKD0N+1
	.STKV3 (A,\..STKQ)V3 (A,O%=I Dp$1
   IFDEFE A,<.IF A,SYMBOE0L,<PRINTX STKVAR EPA ALREADY DEFINEEpD>>
	DEFINE A<-F^OB(P)>
	$A==<Z A>>
	$A==<Sd  K0$[
	.TRV2 (A)
	.TRV2 (Sd@ Kp$e
	.TRV3 (LA,\..NV)	
	IFB L0<B>,<..NV=..NV+1LP>
	IFNB <B>,<..NV=..NV+B>,<..Sd` M$s
   IFDEFM0 A,<.IF A,SYMBOMPL,<PRINTX TRVAR MpA ALREADY DEFINEDN>>
	DEFINE A<^ON0B(.FP)>
	$A==<Z A>>
	$A==<b\| 
	.XCREF
	.XCRF1.<..ACT,.,,..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'
	IRP A,x<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP