Google
 

Trailing-Edge - PDP-10 Archives - BB-JR93K-BB_1990 - 10,7/macsym/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Ub@P C4@ P(
	..NAC==p0		
	IRP A,<
	  .ACV1 (A)>		
0	.ACV3 (\..NAC)		P
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' [H\OP%%IA	(A,B,ADD,SUB)(AC:$S@ >#p
	..TAGF (<JUMPN A,>,) C:$s@ ?#x
	..TAGF (<JUMPLE A,>,)C:$y' ?@#|
	..TAGF (<JUMPL A,>,) C:%C@ @@$
	..TAGF (<JUMPGE A,>,)C:%I' @$
	..TAGF (<JUMPG A,>,) C:%c@ >@#t
	..TAGF (<JUMPE A,>,) C:&' B$
	..TAGF B (<JN <A>,<B>,>,)N <A>,<B>,>,C:&G B`$
	..TAGF C(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 2H
	TXZ A,<^-<B>>TXZ A,C:'	' A$
	..TAGF (<JXN A,B,>,)C:'G A@$

	..TAGF (<JXE A,B,>,)C:v:g <@#d
	TRNA
	..TAGF (JRST,)	C;< <#`
	..TAGF (JRST,)	..TAGF CO,,@ z`'j
	..TRR=={10		
	RADIX 8
	{ ..NV==1			
	IRP {@A,<
	  .TRV1 ({`A)>		
	IFG ..NV-|5,<PRINTX ?TOO MA| NY ARGUMENTS: A>|@
	JSP .A16,.ASSE|`T		
	RADIX ..TRR}		
	DEFINE ENDAS} .<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= H
}H
	IFN FTSHOW,..LOC==.

 
DEFINE	WORD(NAM,@NUMB<1>),<
	IFN `<..MSK>,<..OFF==..OFF+1> 

	..MS K==0		
	FIELDM(N@AM,<.FWORD>)	

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

DEFINE	NXT@WRD(NUMB<1>),<
	`..MSK==0
	..OFF=..OFF+NUMB

>
 
DEFINE	FILLER(N@UM),<
	..FLG==PO`S(..MSK)
	IFE ..MSK,<..FLG==-1>
 	IFG <^D<NUM>-<^D@35-..FLG>>,<PRINT`X ?FILL TOO BIG IN A STRUCTURE>
 	...MSK==MASK.(^D@<NUM>,<..FLG+^D<N`UM>>)
	IFN FTSHOW,<
	  PHASE ..O FF
	  EXP ...MSK@
	>
	..MSK==..M`SK!...MSK
>



DEFINE	HWORD(n am),<
	..FLG==0	@	
	IFE ..MSK&.LH`ALF,<FIELDM(nam,.LHALF)
			  ..FL G==1>
	IFE ..FLG@,<..MSK==..MSK!.L`HALF
		   IFE ..MSK&.RHALF,<FIELD M(nam,.RHALF)
		@		     ..FLG==1>
		   IFE ..FLG,<NXTWRD
			       FIELDM(nam,.LHALF@) >
		  >
>

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

	IFB @<POS>,<IFB <SIZ>,`<
	  ...MSK==.RTMSK(<<^-<<..MSK>> >>) 
	  IFE ...M@SK,<..OFF==..OFF+`1 
	    ..MSK==0		
	    ...MSK== -1
	  >
	  FIEL@DM(NAM,<...MSK>)	`
	..FLG==-1		
	>>

	IFNB <SI Z>,<.SIZ==^D<SIZ>@> 

	IFNB <POS>`,<		
	  FIELDM(NAM,MASK.(.SIZ,POS )) 
	  ..FLG==-1@		
	  ..BITS==MA`SK.(.SIZ,POS) 
	 >

	IFE ..FLG,<  IFGE <^D<.SIZ>-^D @36>,< 
	  WORD(N `AM,<^D<.SIZ>/^D36!>) 
	  IFN <<^D<! .SIZ>-<^D<.SIZ>/^!@D36>*^D36>>,<	
	!`    FIELD(...,<<^"D<.SIZ>-<^D<.SIZ>" /^D36>*^D36>>) 
"@	  >

	  ..FLG="`=-1		
	>>

	IF#E ..FLG,<		
	  .# .BITS==MASK.(^D<.#@SIZ>,<^D<.SIZ>-1>#`) 

	  REPEAT <$^D36-^D<.SIZ>+1>,$ < 
	    IFE ..FL$@G,<	
	      IFE $`<..BITS&..MSK>,< %
			..MSK==..MSK% !..BITS 
		..FLG%@==-1 
	       > %`

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

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

	MSKSTR(( A'NAM,\..OFFC,..(@BITS) 
	A.'NAM=(`=..OFF
	IFN FTSH)OW,<
	  PHASE	A) .'NAM
	  EXP	A')@NAM
	>>

	..OL)`D==..BITS		
	...*OLD==..BITS		

* >

DEFINE	BIT(N*@AM),<
	..BITS==L*`FTBT.(..OLD)	

+	IFE ..BITS,<PRIN+ TX ?NO ROOM FOR B+@IT IN LAST FIELD>+`

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

	M,`SKSTR(A'NAM,\..O-FFC,..BITS) 
	I- FN FTSHOW,<
	  P-@HASE ..OFF
	  EX-`P A'NAM
	>

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

>
.@
DEFINE	FIELDM(NA.`M,MASK),<
	IFN M/ASK&..MSK,<	
	  / ..MSK==0		
	  ../@OFF==..OFF+1
	>`

	..MSK==..MSK!0MASK	

	MSKSTR(0 A'NAM,\..OFFC,M0@ASK) 
	A.'NAM==0`..OFF
	IFN FTSHO1W,<
	  PHASE	A.1 'NAM
	  EXP	A'N1@AM
	>
>

DEFI1`NE ENDSTR(LENNAM<2LEN>,LSTNAM<LST>)2 ,<

	IFN ..MSK,2@<..OFF==..OFF+1> 2`

	A.'LSTNAM==3..OFF	

	IFN FT3 SHOW,DEPHASE

	3@..LOK==..LOK+1
	3`IFN ..LOK,<PRINTX4 ? MISSING BEGSTR4 >

	IF2,<
	  I4@FDEF ...MSK,<SUPP4`RESS ...MSK>
	  5IFDEF ..BITS,<SUP5 PRESS ..BITS>
	 5@ IFDEF .SIZ,<SUPP5`RESS .SIZ>
	  IF6DEF ..MSK,<SUPPRE6 SS ..MSK>
	  IFD6@EF ..OFF,<SUPPRES6`S ..OFF>
	  IFDE7F ..FLG,<SUPPRESS7  ..FLG>
	  IFDEF7@ ..LOK,<SUPPRESS 7`..LOK>
	  IFDEF 8..LOC,<SUPPRESS .8 .LOC>
	  IFDEF .8@.OLD,<SUPPRESS ..8`OLD>
	  IFDEF ..9.OLD,<SUPPRESS ..9 .OLD>
	>

	IF19@,<
	  IFDEF ...M9`SK,<.XCREF ...MSK:>
	  IFDEF ..BIT: S,<.XCREF ..BITS>:@
	  IFDEF .SIZ,<:`.XCREF .SIZ>
	  ;IFDEF ..MSK,<.XCR; EF ..MSK>
	  IFD;@EF ..FLG,<.XCREF ;`..FLG>
	  IFDEF <..OFF,<.XCREF ..O< FF>
	  IFDEF ..L<@OK,<.XCREF ..LOK><`
	  IFDEF ..LOC,=<.XCREF ..LOC>
	=   IFDEF ..OLD,<.X=@CREF ..OLD>
	  I=`FDEF ...OLD,<.XCR>EF ...OLD>
	>
> 
	PURGE WORD,NXTW>@RD,FILLER,HWORD,F>`IELD,BIT,FIELDM
?
	A.'LENNAM==..? OFF-B
	IFN FTSH?@OW,<RELOC ..LOC>>?`



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

	@@IFDEF ..LOK,<IFL @`..LOK,<PRINTX ? NAEW BEGSTR WITHOUTA  ENDSTR>>

	..LOK==-1


	..L/mv0/:BEG
	  E2 ,*h
	..NA==0, 			
	IRP B,<
	,@  .BLCL2 B>		
	,`PUSH P,[..NA+1,,.-.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g 	` V
	..SVBK	
		
	XMOVEI .A16,
 a	
	PUSH P,.A16
@
  DEFINE ENDBK.
` <
	RET			
a:!				
	.POPX>:!E3XG &@*P	
	..TRR=&`=10		
	RADIX 8		'	
	..NA==2			
	' IRP A,<
	  ..NA'@=..NA+1>		
	IRP '`A,<
	  .BLSU1((A,\..NA)	
	  ..N( A=..NA-1>
	..NV=(@=1			
	IRP B,<
	  .TRV1 (B)>		)
  DEFINE ENDBS.)  <.ENBS1 <A>
		)@.ENSV1 <B>> 
	J)`SP .A16,.ENTER
	*..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' Zh%_ 
W0.==A
W1.==B				;INIT[PIALIZE BREAK MASK[p
W2.==C
W3.==D
==C
W3.==0%L0/>0B,<
	/@0QAB (/D0    ..SEJZ UH%@	..V22==aUh
	..V1==a
	IFNVB <B>,<..V22==BV(>
REPEAT ..V22-<VHa>+1,<	
	%%W==.Vh.V1/^D32	
	%%X==W..V1-%%W*^D32	
	W(IFE C,BRKC1 \"<%WH%W+"0">	
	IFN CWh,BRKC2 \"<%%W+"0"X>
	..V1==..V1+1
		   >
.V1+1 XH%D	WA.==WA.!<1B<%%X>>
AEJ\4@ Y%J	WA.==WAY(.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: T%"
%%FOO==T(a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g \0%m
	BRINI. A\P,B,C,D	
	IRPC\p E,<	UNBRK. "E"]>	
	IRPC F,<	BR]0KCH. "F">	
	EXP]P W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +G@ U(*OP%%CA (A,B,)OP%%CA (AGD XhFOP%%CA (A,B,A)P%%CA (AGDP Vh6OP%%CA (A,B,E)P%%CA (AGDp W(:OP%%CA (A,B,G)P%%CA (AGDy  Wh>OP%%CA (A,B,GE)%%CA (AGE@ Uh.OP%%CA (A,B,L)P%%CA (AGEI  V(2OP%%CA (A,B,LE)%%CA (AGE` X(BOP%%CA (A,B,N)P%%CA (AG?Z 
Hl
	ASCIZ /
h
COPYRIGHTQ(C)MDT 
ALL RIGHTS RESERVED.
/TS RESERVI  \@f
	..STR0 \`(.DECR0,,<A>,<B>)CR0,,<A>,<BI6= ph
	A==<-1qB<C>+1B<C-D>> q(
	IF1,<IFDEF %AqH,<PRINTX ?A ALREqhADY DEFINED>>
	DrEFINE %A (OP,AC,r(Y,MSK)<
	$A==<ZrH B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 ]HlOP%%IN	(A,B,DIV)%IN	(AI<p 
  t
	..SVLD	
@		
a:!				
  D
`EFINE OD. <
b:!
	.POPX>			
@ DEFINE LOOP. <
	JRST a>		
`DFINE TOP. <a>		
  DEFINE ENDLP . <b>		
  DEFIN@E EXIT. <
	JRST b>T. <
	JRST IKH1 p*
..TMSK==..MASK
..TNAC==.0.NAC-1
REPEAT ..PNAC,<
   IFN ..TpMSK,<
	..NUM==^L<..TMSK>
	..TMSK0==..TMSK-1B<..NUMP>
	IFE ..TMSK & p1B<..NUM+1>,<
		 MOVE ..NUM,-..TNA 0C(P)
		..TNAC==. P.TNAC-1>
	IFN .. pTMSK & 1B<..NUM+1!>,<
		DMOVE ..NU!0M,-..TNAC(P)
		.!P.TNAC==..TNAC-2
!p		..TMSK==..TMSK-"1B<..NUM+1>>
	>>"0
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 p)k
IFG ..NAC,<ADJSP P,..NAC>0
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
   IFN ..TMSK,<
0	..NUM==^L<..TMSKP>
	..TMSK==..TMSpK-1B<..NUM>
	IFE ..TMSK & 1B<..NU0M+1>,<
		MOVEM .P.NUM,-..TNAC(P)
p		..TNAC==..TNAC-1>
	IFN ..TMSK &0 1B<..NUM+1>,<
	P	DMOVEM ..NUM,-..pTNAC(P)
		..TNAC==..TNAC-2
		..T0MSK==..TMSK-1B<..NUM+1>>
	>>
.K,lz s&
	A==<-1s(B<C>+1B<C-D>> sH
	IF1,<IFDEF %Ash,<PRINTX ?A ALREtADY DEFINED>>
	Dt(EFINE %A (OP,AC,tHY,MSK)<
	OP (<ACth>,<@[EP. B'Y]>,MSK)>P. B'Y]>,MK+\Y`p00p004p00$np00UN.,HK+`p00p00
4p00$pp00
UNEMK3S@ #f....U@K7<z w(F
	A==C	wH	
	IF1,<IFDEF %whA,<PRINTX ?A ALRxEADY DEFINED>>
	x(DEFINE %A (OP,ACxH,Y,MSK)<
	OP (<AxhC>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg  v
	OD.K:%G #h....U,<HK@p =@,
	..I==0
	..X==0
	MAKRM.> (..CON,..GET)
	> ..CON <EXIND. ..I>@,>
	IRPC A,<
	>`  ..SC==0
	  IFE? "A"-"@",<..I==1? 
			..SC=1>
	  ?@IFE "A"-"(",<..C?`ON <,>
			..SC=1@
			..X==1>
	  @ IFE "A"-")",<
	@@    IFE ..X,<PRIN@`TX %UNEXPECTED RIAGHT PAREN IN EP. A MACRO>
			..SC=1A@>
	A`IFE ..SC,<
	   ..CON <A>>>B
	IFE ..X,<
	  B ..CON <,0>>
	..CB@ON <
>
	..GET
   
>
	..GET
KCm ;@+h
	  DEFIN;`E ..EP. (LOCN,PTE<XT)
	    <PRINTX<  Location 'LOCN':<@ PTEXT
	    >
	<`  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` R(%
	ERJMP	[RHTMSG <? A>
		 JSHLT]
A>
		 JKbMi C,<<A>B1+<C>B5+<B>>B1+<Kc  S%
   IF2,<S(
	IRP A,<
	IFNSHDEF A,<EXTERN A
	SUPPRE A>>>M&. cHOP%%FP	(A,B,FADR)FP	(AM6. e(OP%%FP	(A,B,FDVR)FP	(AM2   H<<<A>B<POS(<B>)>>&<B>>M2$*g b&7
	..XX==<b0FLD(A,CM%FNC)>+bPB+<Z G>
   IFNBbp <D>,<..XX=CM%HPcP!..XX>
   IFNB c0<E>,<..XX=CM%DPPcP!..XX>
   IFNB <cpF>,<..XX=CM%BRK!d..XX>
	..XX
   d0IFNB <C>,<C>
 dP  IFB <C>,<0>
 dp  IFNB <D>,<POINeT 7,[ASCIZ D]>e0
   IFB <D>,<IFePNB <EF>,<0>>
 ep  IFB <E>,<IFNB f<F>,<0>>
   IFNf0B <E>,<POINT 7,[fPASCIZ \E\]>
   fpIFNB <F>,<F>
    <F>,<F>
M2$HG ^&

	..XX==<^0FLD(A,CM%FNC)>+^PB+<0,,F>
   IFN^pB <D>,<..XX=CM%H_PP!..XX>
   IFNB_0 <E>,<..XX=CM%DP_PP!..XX>
	..XX
p  IFNB <C>,<C>
`0IFB <C>,<0>
   IFNB <D>,<PO`PINT 7,[ASCIZ D`p]>
   IFB <D>,<aIFNB <E>,<0>>
 a0  IFNB <E>,<POINaPT 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. dH$OP%%FP	(A,B,FMPR)FP	(AM7p Oh%
	HRROI .PAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ "h

  DEFINE# e(C)<D>
..FO#(RN==A
REPEAT B#H-A+1,<
	.FORN1 #h(e)
	..FORN=..FORN+1>.FORN=..FM?3@ &4
  DEFINE&( %MN1 (B)<C>
	&H..FORN==A		
	.FORN1 (%MN1)
	.FM?@ $h*
  DEFINE% d (B)<C>
  I%(RP A,<
	.FORX1 d,A>
	.FORX1\MN.dPOP%%FP	(A,B,FSBR)FP	(AMS{PNF00^O44C==:NJ

	..ERR.=c 0		
	  .BSIZ.=Bc@		
	c`.BPOS.=D
	IFN <<A>&<^O<-d1,,770000>>>,<
	d   MPRNTX(G2BPT,SedPction greater thaj`n 12 bits: A)
	k  ..ERR.=1
	k >
	IFN <<C>&<^O<7k@77740,,0>>>,<
	 k` MPRNTX(G2BPT,Bitls 0 - 12 non-zerol  in address fieldl@: C)
	  ..ERR.=l`1
	  >
	IFN <<mE>&<-1,,0>>,<
	 m  MPRNTX(G2BPT,Bitm@s 0-17 non-zero im`n optional field:n E)
	  ..ERR.=1n 
	  >
	IFN <.BSn@IZ.&<^O<-1,,77770n`0>>>,<
	  MPRNTXo(G2BPT,Bytesize go reater than 6 bito@s: B)
	  ..ERR.o`=1
	  >
	IFN <.pBPOS.&<^O<-1,,777p 700>>>,<
	  MPRNp@TX(G2BPT,Byte offp`set greater than q6 bits: D)
	  .q .ERR.=1
	  >
	Iq@FN ..ERR.,<-1,-1,q`-1>		
	
	IFE ..rERR.,<
	  IFDIF r <D><>,<<<POINT .r@BSIZ.,E,.BPOS.>!r`1B12>&<^O<777740,s,-1>>>
	tIFIDN s <D><>,<<<POINT .s@BSIZ.,E>!1B12>&<s`^O<777740,,-1>>>
	    
	    <<<t C>_<^O14>>&<^O<37t@0000,,0>>!<<C>&<t`0,,-1>>!<<A>_<^Ou22>>>
	  >
	PURu GE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,1".0		GENBPON{  F`,^
	..ERR.=G0		
	IFN <<A>&<G ^O<-1,,770000>>>,G@<
	  MPRNTX(GFIWG`M,Section greaterH than 12 bits: AH )
	  ..ERR.=1
	H@  >
	IFN <<B>&<H`^O<777740,,0>>>,<I
	  MPRNTX(GFIWMI ,Bits 0 - 12 non-I@zero in address fI`ield: B)
	  ..EJRR.=1
	  >
	IFNJ  ..ERR.,<-1,-1,-1J@>	
				
	IFE ..J`ERR.,<
	  <<<B>K_<^O14>>&<^O<3700K 00,,0>>!<<B>&<0,K@,-1>>!<<A>_<^O22K`>>>>
	PURGE ..ERR.
	PURGE ..ERSNn ^pOP%%IN	(A,B,IDIV)IN	(AS)` '@"H
	JUMPN '`A,b		
	..SVDF		(	
   DEFINE ..TA( GF (INST,PCT)<
	(@INST b'PCT>		
 (`  DEFINE ..TAGE ()INST,PCT)<
	INST c'PCT>		
	STS.:g & "8
	PRINTX &@% IFESK. should b&`e changed to IFNJ'E.
	IFNJE. <A>.
	IFNJE. <A>S9` +@"h
	JUMPLE +`A,b		
	..SVDF	,		
   DEFINE ..T, AGF (INST,PCT)<
,@	INST b'PCT>		
,`   DEFINE ..TAGE -(INST,PCT)<
	INST c'PCT>		
	SS<S@ -@"x
	JUMPL -`A,b		
	..SVDF		.	
   DEFINE ..TA. GF (INST,PCT)<
	.@INST b'PCT>		
 .`  DEFINE ..TAGE (/INST,PCT)<
	INST c'PCT>		
	STSTS@ !`

   IFB < BC>,<		
	..SVD@F			
	ERJMPA f`		
	JRST d		
f:!
@DEFINE .. TAGF (INST,PCT)<
	INST d'PCT>		
   DEFINE ..TAGE (INST,PCT)<
	IN ST e'PCT>		
	>@
   IFNB <BC>,<`		
	ERJMPA d		
	C
	JRST e
d:!	B
e:!>
ST\G @!D

   IFB <`AB>,<		
	..SVDF			
	ERJMP e		 
	JRST c		
e:@!
   DEFINE ..TA`GF (INST,PCT)<
	INST c'PCT>		
    DEFINE ..TAGE (@INST,PCT)<
	INST` d'PCT>		
	>
   IFNB <AB>,<		 
	ERJMP c		
	@B
	JRST d
c:!	A
d:!>
c:!SUc@ # ".
   IFB <#@B>,<		
	..SVDF	#`		
	ERJMPA c
$   DEFINE ..TAGF $ (INST,PCT)<
	INS$@T c'PCT>		
   D$`EFINE ..TAGE (INS%T,PCT)<
	INST d% 'PCT>		
	>
   I%@FNB <B>,<
	ERJM%`PA c
	B
c:!> c
	B
c:!Sa` 1@#
	JUMPGE 1`A,b		
	..SVDF	2		
   DEFINE ..T2 AGF (INST,PCT)<
2@	INST b'PCT>		
2`   DEFINE ..TAGE 3(INST,PCT)<
	INST c'PCT>		
	SSdS@ /@#
	JUMPG /`A,b		
	..SVDF		0	
   DEFINE ..TA0 GF (INST,PCT)<
	0@INST b'PCT>		
 0`  DEFINE ..TAGE (1INST,PCT)<
	INST c'PCT>		
	STSq` )@"X
	JUMPE )`A,b		
	..SVDF		*	
   DEFINE ..TA* GF (INST,PCT)<
	*@INST b'PCT>		
 *`  DEFINE ..TAGE (+INST,PCT)<
	INST c'PCT>		
	STSt\g @!j
	PRINTX `% IFNES. should be changed to IFJE R.
	IFJER. <A>,<B>FJER. <A>,Su)'  @"
   IFB < `A>,<		
	..SVDF	!		
	ERJMP b
  !  DEFINE ..TAGF (I!@NST,PCT)<
	INST !`b'PCT>		
   DEF"INE ..TAGE (INST," PCT)<
	INST c'P"@CT>		
	>
   IFN"`B <A>,<
	ERJMP b
	A
b:!> Sv:g !(
   IFB < AB>,<		
	..SVD@F			
	TRNA			
	`JRST c		
   DEFINE ..TAGF (INST, PCT)<
	INST c'P@CT>		
   DEFINE `..TAGE (INST,PCT)<
	INST d'PCT>	 	
	>
   IFNB <@AB>,<		
	JRST `c		
	B
	JRST d
c:!	A
d:!>
c:!	A
d:!>S
S@ 7@#J
	JN <A>7`,<B>,c	
	..SVD8F			
   DEFINE .8 .TAGF (INST,PCT)<8@
	INST c'PCT>		8`
   DEFINE ..TAG9E (INST,PCT)<
	I9 NST d'PCT>		
	ST d'PCT>		
	S 9`#\
	JE <A>:,<B>,c	
	..SVD: F			
   DEFINE .:@.TAGF (INST,PCT)<:`
	INST c'PCT>		;
   DEFINE ..TAG; E (INST,PCT)<
	I;@NST d'PCT>		
	ST d'PCT>		
	S< `"
   IFB <A>,<		
	..SVDF	 		
	JRST b
   @DEFINE ..TAGF (IN`ST,PCT)<
	INST b'PCT>		
   DEFI NE ..TAGE (INST,P@CT)<
	INST c'PC`T>		
	>
   IFNB  <A>,<
	JRST b
	A
b:!> bSDS@ 3@#(
	JXN A,3`B,c	
	..SVDF		4	
   DEFINE ..TA4 GF (INST,PCT)<
	4@INST c'PCT>		
 4`  DEFINE ..TAGE (5INST,PCT)<
	INST d'PCT>		
	STSEc@ 5@#8
	JXE A,5`B,c	
	..SVDF		6	
   DEFINE ..TA6 GF (INST,PCT)<
	6@INST c'PCT>		
 6`  DEFINE ..TAGE (7INST,PCT)<
	INST d'PCT>		
	STS7-N ]hOP%%IN	(A,B,IMUL)IN	(AS:  Z T
	..STR0 Z@(.INCR0,,<A>,<B>)CR0,,<A>,<BS? 2
	TXO A,<B>
	TXO A,Ut@ o`
	..STR1 p(..JAN,<d,<C>>,p <A>,<B>,..STR5)
d:B>,..STR5)U c@
	..STR1 c`(..JE,<C>,<A>,<B>,..STR3)A>,<U8 hB
	..STR1h(..JN,<C>,<A>,<B>,..STR3)A>,<U:
	..STR1 m@(..JNA3,<C>,<A>,<B>,..STR4)A>U:~  s
	..STR1 s (..JNO,<d,<C>>,s@<A>,<B>,..STR5)
d:B>,..STR5)U? l@f
	..STR1 l`(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0/}p0/z,p0/}$np0/zUN.,HUN.,HA  UN.,HUNEM`p00	p00,p00	$pp00UNEMUNEMA  UNEMUNn9hA  UNn9hUb( F(J
	..JX1==FHB		
	.IFN ..JX1Fh,ABSOLUTE,<PRINTXG B NOT ABSOLUTE
		..JX1==0>
	.IGHF ..JX1,ABSOLUTE,Gh<
	.IF0 <<..JX1>H-1B0>,<	
		JUMPGH(E A,C>,<
	.IF0HH <<..JX1>+1>,<	
Hh	  JUMPE A,C>,<I	
		TXNN (A,..JI(X1)
		JRST C>>>)
		JRST C>>>Ub0 Q(&
	..JX1==QHB		
	.IFN ..JX1Qh,ABSOLUTE,<PRINTXR B NOT ABSOLUTE
		..JX1==0>
	.IRHF ..JX1,ABSOLUTE,Rh<
	.IF0 <<..JX1>S-1B0>,<
		JUMPGES( A,C>,<
	..ONESHB (..BT,B)	
	.IShF0 ..BT,<
	  SETTCM .SAC,A		
	  T(JXN (.SAC,..JX1,THC)>,< 
	    TXNNTh A,..JX1	
	    JRST C>>>	    Ubp Ihf
	..JX1==JB		
	.IFN ..JX1J(,ABSOLUTE,<PRINTXJH B NOT ABSOLUTE
		..JX1==0>
	.IKF ..JX1,ABSOLUTE,K(<
	.IF0 <<..JX1>KH-1B0>,<	
		JUMPLKh A,C>,<
	.IF0 L<<..JX1>+1>,<	
	L(  JUMPN A,C>,<	LH
		TXNE (A,..JXLh1)
		JRST C>>>)
		JRST C>>>Ubx M(
	..JX1==MHB		
	.IFN ..JX1Mh,ABSOLUTE,<PRINTXN B NOT ABSOLUTE
		..JX1==0>
	.INHF ..JX1,ABSOLUTE,Nh<
	.IF0 <<..JX1>O-1B0>,<
		JUMPL O(A,C>,<
	..ONEBOH (..BT,B)	
	.IFOh0 ..BT,<
	  SETCPM .SAC,A		
	  JP(XE (.SAC,..JX1,CPH)>,< 
	    TXNE PhA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=L@A		
	.BPOS.=C
	..ERR.=0		
	IFMN <<B>&<^O<77774M 0,,0>>>,<
	  MPRM@NTX(L1BPT,Bits 0 M`- 12 non-zero in Naddress field: BN )
	  ..ERR.=1
	N@  >
	IFN <.BSIZ.N`&<^O<-1,,777700>>O>,<
	  MPRNTX(L1O BPT,Bytesize greaO@ter than 6 bits: O`A)
	P..ERR.=1
	  >
	IFN <.BPOP S.&<^O<-1,,777700P@>>>,<
	  MPRNTX(P`L1BPT,Byte offsetQ greater than 6 bQ its: C)
	  ..ERQ@R.=1
	  >
	
	IQ`FN <..ERR.>,<-1,-R1,-1>
	
	IFE <.R .ERR.>,<
	  IFIDR@N <C><>,<POINT .R`BSIZ.,B>
	  IFDSIF <C><>,<POINT S .BSIZ.,B,.BPOS.>S@
	  >
	PURGE ..S`ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=Z`0		
	  .BSIZ.=A[		
	[ .BPOS.=C
	IFN <<B>&<^O<7[@77740,,0>>>,<
	 [` MPRNTX(L2BPT,Bit\s 0 - 12 non-zero\  in address fieldT : B)
	  ..ERR.=T@1
	  >
	IFN <<T`D>&<-1,,0>>,<
	 U MPRNTX(L2BPT,BitU s 0-17 non-zero iU@n optional field:U` D)
	  ..ERR.=1V
	  >
	IFN <.BSV IZ.&<^O<-1,,77770V@0>>>,<
	  MPRNTXV`(L2BPT,Bytesize gWreater than 6 bitW s: A)
	  ..ERR.W@=1
	  >
	IFN <.W`BPOS.&<^O<-1,,777X700>>>,<
	  MPRNX TX(L2BPT,Byte off^ set greater than ^@6 bits: C)
	  .^`.ERR.=1
	  >
	I_FN ..ERR.,<-1,-1,_ -1>		
	
	IFE .._@ERR.,<
	  IFDIF _`<C><>,<<<POINT .`BSIZ.,D,.BPOS.>!` 1B12>&<^O<777740,`@,-1>>>
	a@IFIDN ``<C><>,<<<POINT .aBSIZ.,D>!1B12>&<a ^O<777740,,-1>>>
	    <1B0!<<^O<4a`00037,,-1>>&<B>>b>	
	  >
	PURGE b ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP1!-P0(B).YN{  C@,2
	..ERR.=C`0		
	IFN <<A>&<D^O<777740,,0>>>,<D 
	  MPRNTX(LFIWMD@,Bits 0 - 12 non-D`zero in address fEield: A)
	  ..EE RR.=1
	  >
	IFNE@ ..ERR.,<-1,-1,-1E`>	
	IFE ..ERR.,<F1B0!<<^O<400037,,F -1>>&<A>>>	
	PURGE ..ERR.
	PUY$- A`1_<^D35-^L<A>>1_<^D35-^LY>
@ E*
	..STR0 E (..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  HB
	..STR0 H (..LDBE,A,B,<C>)DBE,A,B,<C[i9Q u[^+' 'J
  DEFINE'( A (STUFF)<
	c'H (<STUFF>,)>

 'h DEFINE c (NEW,O(LD)<
    DEFINE ((A (STUFF)<
	c (H(<STUFF>,<OLD'NEW(h>)>>

  DEFINE )B <
    DEFINE )(c (NEW,OLD)<OLD>
	A ()>
OLD>[3@ B <<<1_<A>>-1>B<B>>_<A>>[8@ !h<1B<<A>-1>-1B<B>><A>-1[>!` "(<<A>-<<A>/<B>>*<B>>A[?7 )h
   ..MX1*==B			
*H.IFN *(..MX1,ABSOLUTE,<
	MOVE A,[B]>
*h   .IF ..MX1,ABSO+LUTE,<
	..MX2==0+(		
	IFE <..MX1>B+H53,<
	  ..MX2==1+h
	  MOVEI A,..M,X1>	
	IFE ..MX2,,(<		
	IFE <..MX1>,HB17,<
	  ..MX2==,h1
	  MOVSI A,(.-.MX1)>>	
	IFE ..-(MX2,<		
	IFE <<.-H.MX1>B53-^O777777-h>,<
	...MX2==1
	  HRROI A,<..M.(X1>>>	
	IFE ..MX.H2,<		
	IFE <<..M.hX1>B17-^O777777B1/7>,<
	  ..MX2==1/(
	/hHRLOI A,(../HMX1-^O777777)>> 
	IFE ..MX2,<		
0	  MOVE A,[..MX1]>	
  >,[..MX1[Cm 9 +X
	  DEFIN9@E ..MP. (LOCN,MTE9`XT,PTEXT)<
	    :PRINTX Location ': LOCN', Macro 'MTE:@XT': PTEXT
	    :`>
	  ..MP.(\.,A;,<B>)
	  PURGE ..MP.
	  URGE [N^= u(6
	A==C	uH	
	IF1,<IFDEF %uhA,<PRINTX ?A ALRvEADY DEFINED>>
	v(DEFINE %A (OP,ACvH,Y,MSK)<
	$A==<vhZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg \HdOP%%IN	(A,B,MUL)%IN	(A[Xp 0H
	MOVE .S0hAC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` 1(

	MOVX .S1HAC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp Y(X
	.XCREF
IFE	<<B>_-^D18>Yh,<
	.CREF
	CAIZC	A,<B>
	.XCREZ(F
>
IFN	<<B>_-ZH^D18>,<
	.CREF
Zh	CAMC	A,[B]
	[.XCREF
>
	.CREFCREF
>
	.CREF_@(YX eH8
	.XCREF
IFE	<<B>_^D18>,f<
	.CREF
	CI	f(A,(B)
	.XCREF
fH>
IFN	<<B>_^D18fh>,<
	.CREF
	C	gA,[B]
	.XCREF
>
	.CREFCREFH
	.XCREF
	TEST%%=0
IFE	<_<<B>_-^D18>-^O77_(7777>,<
IFN	<<B_H>&^O777777>,<
	T_hEST%%=1
	.CREF
`	DI	A,-<B>
	.`(XCREF
>>
IFE	TE`HST%%,<
	OP%%IN	`hA,<B>,C
>
	PUaRGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 aH
	.XCREF
IFE	<<B>_-^D18>b,<
	.CREF
	CI	b(A,<B>
	.XCREF
>
IFN	<<B>_-^Dbh18>,<
	.CREF
	cC	A,[B]
	.XCREF
>
	.CREFCRE_CL@ ^`x
	..STR0 _(.OPST1,<A>,<B>,<C>)<A>,<B>_CLV a

	..STR0 a (.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ Y -Jx<..OWGP (\<A>,B,\<C>)>1 -F^O44 B-_^>
G Y`-NOWGP. 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= Ph%

   IFNB Q<A>,<
	TMSG <AQ(>>
	CALL JSMSG0>
	CALL JSMSG0a4\G 
	..PGV0=0=.		
	.JBVER=:^OP137		
	LOC	.JBVEpR		
	BYTE	(3)D(9)A(6)B(18)C
0	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm h<POINT WID (<B>),A,POS(<B>)>),A,POS(<Ba? (z<^L<<A>&<-<A>>>><<A>&<aKH1 $P*/
	..NUM==$p^D15
	REPEAT ^D1%6,<
		IFN ..MASK%0 & 1B<..NUM>,<
	%P	POP P,..NUM>
		%p..NUM==..NUM-1
	>
==..NUM-1
	aNh1 "p*!
	..TMSK=#=..MASK
	REPEAT #0..NAC,<
		..NUM=#P=^L<..TMSK>
		..#pTMSK==..TMSK-1B<.$.NUM>
		PUSH P,..NUM
	>
H P,.aR<& v(/2
	TXO A,.FR8BY
	TXO A,aRd6 u`/.
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x NH$tJRST RSKPvJRST RSKPeN^A  eN^gXY ~(
	..TRR==~ 10		
	RADIX 8
	~@..NV==1			
	IRP ~`A,<
	  .TRV1 (A)>		
	IFG ..NV- 5,<PRINTX ?TOO MA@NY ARGUMENTS: A>`
	JSP .A16,.SASET		
	RADIX ..TRR 		
	DEFINE ENDSA@.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 0)/

..DONEP==0
..SACC==0
.p.NAC==0
..MASK==
0

IRP <A>,<

0	IFG A-^D15,<PRI
PNTX ?SAVEAC(A) I
pS ILLEGAL,
		CAPINTXU?SAVEAC
	IFE A-.SAC,<..SACC==1>
	..SYA0C==A				
	IFN PA-.SAC,<IFE ..MASpK&1B<..SYAC>,<	
		..MASK==..MASK!01B<..SYAC>	
		..PNAC==..NAC+1>>
	p>
IFE ..SACC,<USRSAV>		
IFE ..DO0NE,<
  IFLE ..SAPCC,<JSP .SAC,[>
p  IFG ..SACC,<CALL [EXCH .SAC,(P)>0
		    IFG  ..NAPC-3,<DSAVAC>
		 p   IFLE ..NAC-3,<IFG ..NAC,<PSAVAC0>>
		    PUSHJ PP,(.SAC)
		      pTRNA
		    AOS -..NAC-..SACC(P)
0		    IFG  ..NAC-P3,<DRSTAC>
		   p IFLE ..NAC-3,<IFG ..NAC,<PRSTAC>>0
		    IFG ..SACPC,<POP P,.SAC>
	p	    POPJ P,]
>
PURGE ..NAC,..TN0AC,..MASK,..TMSK,P..SACC,..NUM,..SMpSK,..DONE,..SYAC  
DONE,..SYAC g$;8 W:
	..STR1 W (..TQC,,<A>,<B>,..STR4)A>,<B>g%{R S@
	..STR1 S`(..TQO,,<A>,<B>,..STR4)A>,<B>g',W O`
	..STR1 P(..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@ (r
	....Z=A
	....Z=gB8; 0)C
	IFE ..DPONE,<
		..SMSK==p0
		IRP <B>,<
		   ..SYAC==B		0		
		   ..SMSK==P..SMSK!1B<..SYAC>p>		
		IFE ..MASK-..SMSK,<JSP .SAC0,A
				   ..DONE==1>
	>
.DONgR$g $
F=:0
T1(=:1
T2=:2
T3=:3H
T4=:4
Q1=:5
Qh2=:6
Q3=:7
P1=:10
P2=:11
P3=:1(2
P4=:13
P5=:14H
P6=:15
CX=:16
P=:17
CX=:16h &Z
	..STKR=h@=10		
	RADIX 8
h`	..STKN==0
	IRP iA,<
	  .STKV1 (i A)>
	JSP .A16,.i@XSTKS		;Call intei`rnal routine for jallocation
	 EXPj  ..STKN		;Size ofj@ block to allocatj`e
	RADIX ..STKR
	DEFINE ENDSV.<.k ENSV1 <A>>
   NSV1 <A>>
   gR~  L`h
	..STR0 M(..DPB,A,B,<C>)DPB,A,B,<C>gV \`OP%%IA	(A,B,SUB,ADD)(Ai6tP u*
	..STR1 u (..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` x`H
	..STR1 y(..TYNN,,<A>,<B>,..STR3)A>,<Bi7p O$z
	HRROI .O(AC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..S`TR1 (..TY,C,<A>,<B>,..STR3)A>,iF ` 0
	    ..STR1 (..TY,CA,<A>,<B>,..STR3)A>iFP   $
	    ..S@TR1 (..TY,CE,<A>,<B>,..STR3)A>iF`  *
	    ..S TR1 (..TY,CN,<A>,<B>,..STR3)A>iFp z@V
	    ..Sz`TR1 (..TY,N,<A>,<B>,..STR3)A>,iFt |`h
	    ..S}TR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP { \
	    ..S{@TR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` |b
	    ..S| TR1 (..TY,NN,<A>,<B>,..STR3)A>iFx }@n
	    ..S}`TR1 (..TY,O,<A>,<B>,..STR3)A>,iF| ` 
	    ..STR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P ~ t
	    ..S~@TR1 (..TY,OE,<A>,<B>,..STR3)A>iF}` z
	    ..S TR1 (..TY,ON,<A>,<B>,..STR3)A>iGP @ 
	    ..S`TR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT ` 
	    ..STR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP   

	    ..S@TR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU`  
	    ..S TR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ s'*
	..TRR==s 10		
	RADIX 8
	s@..NV==1			
	IRP s`A,<
	  .TRV1 (tA)>		
	JSP .A16,t .XTRST		
	uEXP .t@.NV-1		;Size of bt`lock to allocate
	RADIX ..TRR		
u 	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib >p
		..TX(C,A,<B>)..TX(Cib ?H|
		..TX(CA,A,<B>).TX(CibP >Ht
		..TX(CE,A,<B>).TX(Cib` ?x
		..TX(CN,A,<B>).TX(Cibp 8@
		..TX(N,A,<B>)..TX(Nibt 9HL
		..TX(NA,A,<B>).TX(NibtP 8HD
		..TX(NE,A,<B>).TX(Nibu` 9H
		..TX(NN,A,<B>).TX(Nibx :P
		..TX(O,A,<B>)..TX(Oib| ;H\
		..TX(OA,A,<B>).TX(Oib|P :HT
		..TX(OE,A,<B>).TX(Oib}` ;X
		..TX(ON,A,<B>).TX(OicP <`
		..TX(Z,A,<B>)..TX(ZicT =Hl
		..TX(ZA,A,<B>).TX(ZicTP <Hd
		..TX(ZE,A,<B>).TX(ZicU` =h
		..TX(ZN,A,<B>).TX(Zk:*g Th%(
%%FOO==Ua
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; (Wm$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  hv<^L<-<<A>_<^L<A>>>-1>>>q
fC@ g@&<
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? 3
	TXC A,<B>
	TXC A,+Q zjQ |kQ x2 Q N2`Q P2$`Q R2& Q T25 Q V25@Q J2PQ L:`Q f:$Q h:%`Q j:5Q l:5@Q b:`Q dB Q \B$`Q ^B4 Q `B5@Q XBpQ ZJ`Q rJ%@Q tJ5 Q vJ5@Q nKQ p
+Q \
KQ ^
kQ `

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

Q n$HQ z%	Q |%
Q x2`Q N2$ Q P2%`Q R25 Q T2D`Q V2EQ J2PQ L: Q f:%Q h:4`Q j:D@Q l:EQ b:`Q d:h R
	A:&@ M@z
	..TSIZ M`(..PST,C)
	.CASNE ..PST,<<
		MOVN EM A,B>,<
		HRN@RM A,B>,<
		HRN`LM A,B>,<
		DPOB A,[POINT WID(<O C>),B,POS(<C>)]>>B,POS(<C>):<;Y t
   DEFIN(E ..CNS2 (NEW,OLDH)<
	  OLD>			
	..CNS ()>			
	:L;Y hl
   DEFIN
E ..CNS (ARG)<
	
(..CNS2 <ARG>,>

H
   DEFINE ..CNS2
h (NEW,OLD)<
	DEF..CNS (ARG)<
	<O..CNS2><ARG>,
   OLD'NEW>>>
   :Mi C@$,
 DEFINE C`ELSE. <
	..TAGE D(JRST,)		
	..TAGD F (,<:!>)		
	SYND@ ..TAGE,..TAGF	
D`   DEFINE ELSE. <E....U>>	

 DEFIE NE ENDIF. <
	..TE@AGF (,<:!>)		
	..RSDF>			
   .:TH p`
	..JNA3 (A,C,D)JNA3 :TI q 
	..TSAC q@(..ACT,C)
	.IF0q` ..ACT,<
	  SETCrM .SAC,C	
	  JXr E (.SAC,D,<B>)>r@,<	
	  JXO (C,D,<B>)>O (C,:TP d <
	..TSAC d@(..ACT,B)	
	.IFd`0 ..ACT,<
	  ..TeSIZ (..PST,C)	
e 	  .CASE ..PST,<<e@
		SKIPN B	
		e`JRST A>,<
		HRRfZ .SAC,B	
		JUMf PE .SAC,A>,<
		f@HLRZ .SAC,B	
		f`JUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<g@A>)>>>,<
	  JXE (B,C,<A>)>E:U` h``
	..TSAC i(..ACT,B)	
	.IFi 0 ..ACT,<
	  ..Ti@SIZ (..PST,C)
	i`  .CASE ..PST,<<
		SKIPE B	
		Jj RST A>,<
		HRRZj@ .SAC,B	
		JUMPj`N .SAC,A>,<
		HkLRZ .SAC,B	
		Jk UMPN .SAC,A>,<
k@		MOVE .SAC,B	
k`		JXN (.SAC,C,<lA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) nz
	..TSAC n (..ACT,B)
	.IF0n@ ..ACT,<
	  SETCn`M .SAC,B	
	  JXoN (.SAC,C,<A>)>o ,<	
	  JXF (B,C,<A>)>F (B,:Ukh t 
	..JN (A,C,D)..JN (:Uki t@$
	..JE (<B>,C,D)JE (<:dH@ E`<
	..TSIZ F(..PST,C)
	.CASF E ..PST,<<
		MOVF@E A,B>,<
		HRRF`Z A,B>,<
		HLRGZ A,B>,<
		LDBG  A,[POINT WID(<G@C>),B,POS(<C>)]>>B,POS(<C>)]:dHR H`b
	..TSIZ I(..PST,C)
	.CASI E ..PST,<<
		MOVI@E A,B>,<
		HRRI`E A,B>,<
		HLRJE A,B>,<
		JSPJ  .SAC,[LDB A,[POJ@INT WID(<C>),B,J`POS(<C>)]
			  K..MSK==MASK.(WID(K C),35)
			  TXNK@E A,LFTBT.(..MSKK`)	
			  TXO A,^L-..MSK	
			  PURL GE ..MSK
			  JRST (.SAC)]>> JR:}i1 p
	A==<<<p(-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx ]-nIFE 10-8, ]   <.%AC!<B>>+ ]@			     IFE 10-^D]`10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 $D
	.POPX;LH y(Z
	IFNDEF yHC,<PRINTX ?C ISyh NOT DEFINED
	  zA (<B>,<D>,.FWz(ORD)>	
	IFDEF CzH,<
	IFNDEF %C,<zh
	  A (<B>,<D{>,C)>	
	IFDEF %{(C,<
	  %C (A,<B>,<D>,C)>>;LH {h

	..NS==0|			
	IRP C,<..N|(S=..NS+1>	
	IFE |H..NS,<PRINTX ?EMP|hTY STRUCTURE LIST}, A>
	IFE ..NS-}(1,<		
	  ..STR0 }H(A,<B>,<C>,<D}h>)>
	IFG ..NS-1,~<		
	..ICNS			
~(	..CNS (<E (A,<~HB>,,>) 
	IRP C~h,<		
	  IFNDEF C,<PRINTX C NOT (DEFINED>
	  IFDEHF C,<
	  IFNDEFh %C,<
	  ..CNS (<,C,D>)>	
	  (IFDEF %C,<
	  %HC (..STR2,,<D>,hC)> 
	  ..CNS (<)>)		
	  ..GCNS(		
	  ..ICNS		
H	  ..CNS (<E (Ah,<B>>) 
	  IFNDEF %C,<
	  ..CN(S (<,C,D>)>	
	H  IFDEF %C,<
	 h %C (..STR2,,<D>,C)>>> 
	..CNS( (<,,)>)		
	..GCNS>)>)		
	..GC;LI h
	..CNS (<,C,B>).CNS (;LI (4

	IFDIF <HD><F>,<
	  IFNhB <D>,<
	    A (<B>,D,..MSK)	(
	    IFNB <F>,H<PRINTX C AND Eh ARE IN DIFFERENT WORDS>>
	  ..MS(K==0>		
	IFNB <HF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ D

	IFDIF <(D><F>,<	
	  IFHNB <D>,<
	    hA (<B>,D,..MSK)>	
	  ..MSK==0>	(	
	IFNB <F>,<
H	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ 	Z

	IFDIF <	(D><F>,<	
	  IF	HNB <D>,<
	    I	hFNB <F>,<		
		
A1 (B,D,..MSK)>
( 
	    IFB <F>,
H<		
		A2 (B,D
h,..MSK)>> 
	  ..MSK==0>		
	IFNB (<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU   ^
	SYN END@BK.,a
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i F$B
	SYN ELSF E.,a
	SYN ENDIFF@.,b
	SYN ..TAGFF`,c
	SYN ..TAGE,Gd
	.PSHX <
	  G SYN a,ELSE.
	  G@SYN b,ENDIF.
	 G` SYN c,..TAGF
	H  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k  !


	SYN OD.@,a
	SYN LOOP.,`b
	SYN TOP.,c
	SYN EXIT.,d
	S YN ENDLP.,e
	.P@SHX <
	 SYN a,O`D.
	 SYN b,LOOP.
	SYN c,TOP.
	 SYN d,EXIT.
@	 SYN e,ENDLP.> SYN e,ENDLP.>;$r #l....U2;$s #j....U~.;&` W`N
	..TSIZ X(..PST,C)
	.IF0X  ..PST,<		
		SETX@CMM B>,<	
	Y..X`TSAC (..ACT,B)	
	Y .IF0 ..ACT,<
		MOVX .SAC,C
Y@		XORM .SAC,B>,<Y`
		..TX(C,B,C)>>..TX(C,B,C);&` T 4
	..TSIZ T@(..PST,C)
	.CAST`E ..PST,<<
		SETUOM B>,<
		HLLOSU  B>,<
		HRROS U@B>,<
	  ..TSAC (U`..ACT,B)
	  .IFV0 ..ACT,<
		MOVXV  .SAC,C
		IORM V@.SAC,B>,<
		..TX (O,B,C)>>>T;&@ P@
	..TSIZ P`(..PST,C)	
	.CAQSE ..PST,<<
		SEQ TZM B>,<	
		HLLQ@ZS B>,<	
		HRRZQ`S B>,<	
	  ..TSRAC (..ACT,B)	
	R   .IF0 ..ACT,<
	R@	MOVX .SAC,C	
	R`	ANDCAM .SAC,B>,S<
		..TX (Z,B,C)>>>TX (Z,B,;&81 l(l
	A==0		lH	
	..TSA1==<Z Blh>		
	.IF ..TSA1,mABSOLUTE,<	
	  Im(FE ..TSA1&^O77777mH7777760,<A==1>> 
	60,<A==1>> ;&:= jh^
	A==3		k	
	IFE <B>+1,<k(A=0>	
	IFE <B>-kH^O777777,<A==1> kh
	IFE <B>-^O777777B17,<A==2>7;&;Q n|
	A==0		n(	
	..TSA1==0		
nH	IRPC C,<
	  ..nhTSA1=..TSA1+1
	oo IFE ..TSA1-B,<
	   IFIDN <C><oHD>,<
		A==1>		
	;'STOPI>>		

   ..TX13h==C			
4(.IFN 4..TX1,ABSOLUTE,<
	TDA B,[C]>
4H   .IF ..TX1,ABSO5LUTE,<		
	..TX2=4h=0		
	IFE <..TX15(&^O777777B17>,<
5H	  ..TX2==1		
	 5h TRA B,..TX1>
6	IFE ..TX2,<		
	6(IFE <..TX1&^O77776H77>,<
	  ..TX2==6h1		
	  TLA B,(7..TX1)>>
	IFE ..7(TX2,<		
	  IFE <7H<..TX1>B53-^O77777h77>,< 
	    ..TX@3 (A,B)>>	
	IF@(E ..TX2,<		
	  I@HFE <..TX1+1>,<	
@h	    ..TX4 (A,BA)>>
	IFE ..TX2,<A(		
	  TDA B,[..TX1]>	
  >,[.;'` Ah 
	IFIDN <BA><Z>,<		
	  ..B(TX2==1
	  ANDI BHB,^-..TX1>	
	IFIBhDN <A><O>,<		
	C  ..TX2==1
	CHORC(CMI B,^-..TX1>	
	IFIDN <A><C>,<Ch		
	  ..TX2==1
D	  EQVI B,^-..TX1>QVI B,^-..TX;' DH.
	IFIDN <DhA><NN>,<
	  ..TEX2==1
	  CAIN BE(,0>		
	IFIDN <AEH><NE>,<
	  ..TX2Eh==1
	  CAIE B,0>
	  CAIE B,0;'   J
	..TSAC @(..ACT,B)	
	.IF`0 ..ACT,<
		PRIN	TX ?TQA - B NOT	  IN AC>,<
		TXA B,C>
		TXA;'R u`B
	..TSAC v(..ACT,B)	
	.IFv 0 ..ACT,<
	  ..Jv@X1==C
	  .IF0 <w..JX1-1B0>,<
		Sv`KIPGE B>,<
	   w  .IF0 <..JX1+1>,<w@
		SKIPE B>,<
w`		MOVE .SAC,B
	x	TXNE .SAC,C>>>,x <
		TXNE B,C>
		TXNE B,C>;'W y@ >
	..TSAC y`(..ACT,B)	
	.IFz0 ..ACT,<
	  ..Jz X1==C
	  .IF0 <@..JX1-1B0>,<
		S`KIPL B>,<
	   .IF0 <..JX1+1>,<
		SKIPN B>,<
	@	MOVE .SAC,B
		`TXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  (
	.ACV2 (A)
	.ACV2 (d@ P(7
   IFDEFp A,<.IF A,SYMBOL,<PRINTX ACVAR 0A ALREADY DEFINEDP>>
	A==.FPAC+..pNAC	
	$A==A		
	IFB <B>,<..NAC0=..NAC+1>
	IFNB P<B>,<
	...X==Bp
	IF2,<.IFN ...X,ABSOLUTE,<PRINTX0 ?ACVAR A, B isP not absolute>>
p	..NAC=..NAC+...X>NAC=..NAC+...Xd` 0(G
	IFG A-P.NPAC,<PRINTX ?TOpO MANY ACS USED>
	IFLE A-4,<
	 0 JSP .A16,.SAVA>P	
	IFG A-4,<
	p  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; .+.
	  IFIDN.  <A><.>,<
		XMO.@VEI .A16,B	
		P.`USH P,.A16>
	  I/FDIF <A><.>,<
	/   .IFATM <A>,.BL/@F4	
	  .BLF1==0	/`	
	  IFN .BLF4,<0		
	    .IF %A,0 MACRO,<	
		.BLF10@==1>	
	    IFNB 0`<B>,<
		.BLF1==11>	
	    IFN .BL1 F1,<		
		LOAD .A1@16,A,B
		PUSH 1`P,.A16>>
	  IFE 2.BLF1,<		;IF WASN2 'T A STRUCTURE RE2@F,
	    IFN .BLF2`4,<		
	     .BLF32==<<Z A>&17B17>3 -<P>B17 
	      3@.IF .BLF2,ABSOLUT3`E,< 
	       IFE4 .BLF2,<		
	    4    .BLF1==1		
	 4@      .BLF3==<Z 4`A>&777777
		PUSH5 P,.BLF3-..NA(P)>5 >>> 
	  IFE .BLF5@1,<		
		PUSH P,5`A>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 -@*l
	.BLCL1 A
	.BLCL1 
f=( *@*V
	DEFINE *`A<-^OB(.FP)>
	$A==<Z A>>
	9  hhP
	..CSN==iA
	..CSC==0
	Ii(RP B,<
	IFE ..CiHSN-..CSC,<
	  STihOPI
	  ..CAS1 (jB)>
	..CSC==..CSC+1>..CSC==..CSD	P ?DP >D)6P D,xP D8YP D8sP D;PP D;QP D;QP D;RP D;RP D;SP D;WP D;WP D;XP D;XP D;YP 	D;YP 	D;ZP 
D;ZP 
D;[P D;[P D;\P 
D;\P 
D;]P D<ZP D=7P DI6P ?D\qP FH1P FmP F{P S@P Z 		
	XLIST(
	LOC 0
	COPYRTH A
     .IFN .,hABSOLUTE,<PRINTX ?.CPYRT, COPYRIGH(T IS NOT ABSOLUTEH>
     IFGE .-^Oh22,<PRINTX %COPYRIGHT DOESN'T FIT (IN SINGLE REL BLOHCK>
	RELOC
	LIST
	SALL

	LIS,<H ] r
	..PST==]@C&<-C>
	.IF0 .]`.PST-1,<
		SOS ^B>,<	
		MOVX .SA^ C,-..PST 
		ADDM .SAC,B>		ADDMtH 	0(M
	IRP A,	P<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
(Q
	.ENAV3 (A)
	.ENAV3 tI 
P(U
	PURGE A,A
  PURGE t,h + *\
	IRP A,+@<
   DEFINE A<....U>>FINE A<.v=H q'

	IRP A,q <
	  .ENSV2 (A)>	  .ENSV2 (A)v=I q`'
	.ENSV3 (A)
	.ENSV3 v=I r '
	DEFINE A<....U>EFINE vI9A  vI9~+H $("
	A (\..FORN)
	A (\..~. ,
	A BP `P \Q X=|RQ &2 gHB
	..IFT==ghA		
	IFE ..IFT,h<
	B
	..IFT==0h(>		
	IFN ..IFT,<
	C>N ..IFT,<&4 6 +F
	IRPC A6@,<
	B==0
	IFGE6` "A"-"A",<IFLE "7A"-"Z",<B=1>> 
	IFGE "A"-"0",<7@IFLE "A"-"9",<B7`=1>>
	IFE "A"-"8%",<B=1>
	IFE "8 A"-"$",<B=1>
	8@IFE "A"-".",<B=8`1>
	IFE B,<STOPI>>IFE B,<STOP&t<H [`
	..PST==[ C&<-C>	
	.IF0 [@..PST-1,<
		AOS [`B>,<	
		MOVX .S\AC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P u6k0P 6k4P 6mtP 6MiTQ @;`P ?= _@
	..TSIZ _`(..PST,C)
	.IF0` ..PST,<
		A B` >,<	
		..LDB .SA`@C,B,C 
		A .SAC>C 
		A .S?=	 a`
	..TSIZ b(..PST,C)
	.IF0b  ..PST,<
		A Bb@>,<	
		..LDB .SAb`C,B,C
		A .SAcC
		..DPB .SAC,B,C>DPB .SAC,A`Q JAd
Q LAd(Q NAd+Q PAdIQ RAdLQ TAdjQ VAdkQ JApQ bAtQ dAt)Q fAtHQ hAtKQ jAtjQ lAtkQ bAQ XAQ ZA*Q \AIQ ^AhQ `AkQ XAQ nA
Q pA+Q rAKQ tAjQ vAkQ nAQ xA+Q zAjQ |AkQ xB~ K$X
	.PSHX1 (.POPX2).PSHX1 B~	 K@$\
	.POPX4 A
	.POPX4 B~	 L@$j
	A
   L`DEFINE .PSHX1 (WCMH,STUFF)<
	WCH (M <<STUFF>,<B>>)><STUFF>,<B>>)>B~
 L$`
	.POPX3 B
	.POPX3 C I$H
	.PSHX1 (.PSHX2,<A>)1 C I@$L
	A (<B>)
	A (<BC	 J$T
   DEFINJ E .PSHX1 (WCH,STUJ@FF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z !
<<<A>&<B!(>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u B`$
<IFE <<FCILIN.(<A>)&<^-AC >>>,<A>>!<IFN <<C@FILIN.(<A>)&<^-C`A>
>><<FILIN.(<<D<RGHBT.(<<FILIN.(D <A>)&<^-A>>>)>_D@-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 k`&^
	.STKV2 (A)
	.STKV2 O%=I l &v
	IFB <Bl@>,<..STKN==..STKNl`+1>
	IFNB <B>,<m
	...X==B
	IF2m ,<.IFN ...X,ABSOLm@UTE,<PRINTX ?STKVm`AR A, B is not nabsolute>>
	..STn KN==..STKN+...X>
	..STKQ==..STKN+n`1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I o '
   IFDEFo@ A,<.IF A,SYMBOo`L,<PRINTX STKVAR pA ALREADY DEFINEp D>>
	DEFINE A<-p@^OB(P)>
	$A==<Z A>>
	$A==<Sd  u`'.
	.TRV2 (A)
	.TRV2 (Sd@ v 'B
	.TRV3 (v@A,\..NV)	
	IFB v`<B>,<..NV=..NV+1w>
	IFNB <B>,<
w 	...X==B
	IF2,<w@.IFN ...X,ABSOLUTw`E,<PRINTX ?TRVAR xA, B is not absx olute>>
	..NV=..NV+...X>..NV=..Sd` x`'P
   IFDEFy A,<.IF A,SYMBOy L,<PRINTX TRVAR y@A ALREADY DEFINEDy`>>
	DEFINE A<^OzB(.FP)>
	$A==<Z A>>
	$A==<b\| h
	.XCREF
	.XCRF1 <..ACT,.H.CSC,..CSN,..IFT,h..JX1,..MSK,..MX1,..MX2>
	.XCRF1 (<..NAC,..NRGS,..NHS,..NV,..PST,..SThKN,..STKQ,..STKR>
	.XCRF1 <..TRR,(..TSA1,..TX1,..TXH2,.FP,.FPAC,.NAC,h.SAC,.SAV1>
	.XCRF1 <.SAV2,.SAV3,(POINTR,POS,WID,..HCAS1,..CNS,..CNS2h>
	.XCRF1 <..DPB,..GNCS,..ICNS,..(JE,..LDB,..STR0,.H.STR1,..STR2>
	.hXCRF1 <..STR4,..TQO,..TQZ,..TSAC,.(.TSIZ,..TX,..TY,.HACV1,.ACV2>
	.XChRF1 <.ACV3,.CASE,.DECR0,.IF0,.INCR(0,.OPST1,.OPST2,.HSTKV1>
	.XCRF1 <h.STKV2,.STKV3,.TRV1,.TRV2,.TRV3>
	.CREF
   3>
b)H Hn
	IRP A,h<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP