Google
 

Trailing-Edge - PDP-10 Archives - BB-JR93N-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,Uc@P C4@ (
	..NAC==00		
	IRP A,<
	P  .ACV1 (A)>		
p	.ACV3 (\..NAC)		
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' [H\OP%%IA	(A,B,ADD,SUB)(AC:$S@ >@#t
	..TAGF (<JUMPN A,>,) C:$s@ ?@#|
	..TAGF (<JUMPLE A,>,)C:$y' @$
	..TAGF (<JUMPL A,>,) C:%C@ A$
	..TAGF (<JUMPGE A,>,)C:%I' @@$
	..TAGF (<JUMPG A,>,) C:%c@ ?#x
	..TAGF (<JUMPE A,>,) C:&' B@$
	..TAGF B`(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G C $
	..TAGF C@(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 2H
	TXZ A,<^-<B>>TXZ A,C:'	' A@$

	..TAGF (<JXN A,B,>,)C:'G B$
	..TAGF (<JXE A,B,>,)C:u)' =#h
	..TAGF (ERJMP,)..TAGF C:v:g <@#d
	TRNA
	..TAGF (JRST,)	C;< <#`
	..TAGF (JRST,)	..TAGF CO,,@ { 'n
	..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
~
	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/qv0/>BEG
	  E2 ,@*l
	..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 '*T	
	..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' [(%c`
W0.==A
W1.==B				;INIT\IALIZE BREAK MASK\0
W2.==C
W3.==D
==C
W3.==0%P0/B0B,<
	/D0QAB (/H0    ..SEJZ V%D	..V22==aV(
	..V1==a
	IFNVHB <B>,<..V22==BVh>
REPEAT ..V22-<Wa>+1,<	
	%%W==.W(.V1/^D32	
	%%X==WH..V1-%%W*^D32	
	WhIFE C,BRKC1 \"<%X%W+"0">	
	IFN CX(,BRKC2 \"<%%W+"0"XH>
	..V1==..V1+1
		   >
.V1+1 Y%H	WA.==WA.!<1B<%%X>>
AEJ\4@ YH%N	WA.==WAYh.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: TH%&
%%FOO==Tha
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g \p%q
	BRINI. A],B,C,D	
	IRPC]0 E,<	UNBRK. "E"]P>	
	IRPC F,<	BR]pKCH. "F">	
	EXP^ 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 0*
..TMSK==P..MASK
..TNAC==.p.NAC-1
REPEAT ..NAC,<
   IFN ..T0MSK,<
	..NUM==^LP<..TMSK>
	..TMSKp==..TMSK-1B<..NUM >
	IFE ..TMSK &  01B<..NUM+1>,<
		 PMOVE ..NUM,-..TNA pC(P)
		..TNAC==.!.TNAC-1>
	IFN ..!0TMSK & 1B<..NUM+1!P>,<
		DMOVE ..NU!pM,-..TNAC(P)
		.".TNAC==..TNAC-2
"0		..TMSK==..TMSK-"P1B<..NUM+1>>
	>>"p
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 0)o
IFG ..NAPC,<ADJSP P,..NAC>p
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
P   IFN ..TMSK,<
p	..NUM==^L<..TMSK>
	..TMSK==..TMS0K-1B<..NUM>
	IFEP ..TMSK & 1B<..NUpM+1>,<
		MOVEM ..NUM,-..TNAC(P)
0		..TNAC==..TNAC-P1>
	IFN ..TMSK &p 1B<..NUM+1>,<
		DMOVEM ..NUM,-..0TNAC(P)
		..TNACP==..TNAC-2
		..TpMSK==..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$rp00UN.,HK+`p00p004p00$tp00UNEMK3S@ #j....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 #l....U2K@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"-")",<
	A    IFE ..X,<PRINA TX %UNEXPECTED RIA@GHT PAREN IN EP. A`MACRO>
			..SC=1B>
	B IFE ..SC,<
	   ..CON <A>>>B@
	IFE ..X,<
	  B`..CON <,0>>
	..CCON <
>
	..GET
   
>
	..GET
KCm <+l
	  DEFIN< E ..EP. (LOCN,PTE<@XT)
	    <PRINTX<` Location 'LOCN':= PTEXT
	    >
	=   ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` Rh%
	ERJMP	[STMSG <? A>
		 JSHLT]
A>
		 JKbMi C@,<<A>B1+<C>B5+<B>>B1+<Kc  SH% 
   IF2,<Sh
	IRP A,<
	IFNTDEF 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 bP&;
	..XX==<bpFLD(A,CM%FNC)>+cB+<Z G>
   IFNBc0 <D>,<..XX=CM%HPcPP!..XX>
   IFNB cp<E>,<..XX=CM%DPPd!..XX>
   IFNB <d0F>,<..XX=CM%BRK!dP..XX>
	..XX
   dpIFNB <C>,<C>
 e  IFB <C>,<0>
 e0  IFNB <D>,<POINePT 7,[ASCIZ D]>ep
   IFB <D>,<IFfNB <EF>,<0>>
 f0  IFB <E>,<IFNB fP<F>,<0>>
   IFNfpB <E>,<POINT 7,[gASCIZ \E\]>
   g0IFNB <F>,<F>
    <F>,<F>
 M2$HG ^P&

	..XX==<^pFLD(A,CM%FNC)>+_B+<0,,F>
   IFN_0B <D>,<..XX=CM%H_PPP!..XX>
   IFNB_p <E>,<..XX=CM%DP`P!..XX>
	..XX
`0  IFNB <C>,<C>
`pIFB <C>,<0>
   IFNB <D>,<POaINT 7,[ASCIZ Da0]>
   IFB <D>,<aPIFNB <E>,<0>>
 ap  IFNB <E>,<POINbT 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. dH$OP%%FP	(A,B,FMPR)FP	(AM7p P(%
	HRROI .PHAC2,[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{PNF04^O44C==:NJ

	..ERR.=c`0		
	  .BSIZ.=Bd		
	d .BPOS.=D
	IFN <<A>&<^O<-d@1,,770000>>>,<
	d`  MPRNTX(G2BPT,Seection greater thak n 12 bits: A)
	k@  ..ERR.=1
	k`>
	IFN <<C>&<^O<7l77740,,0>>>,<
	 l  MPRNTX(G2BPT,Bitl@s 0 - 12 non-zerol` in address fieldm: C)
	  ..ERR.=m 1
	  >
	IFN <<m@E>&<-1,,0>>,<
	 m` MPRNTX(G2BPT,Bitns 0-17 non-zero in n optional field:n@ E)
	  ..ERR.=1n`
	  >
	IFN <.BSoIZ.&<^O<-1,,77770o 0>>>,<
	  MPRNTXo@(G2BPT,Bytesize go`reater than 6 bitps: B)
	  ..ERR.p =1
	  >
	IFN <.p@BPOS.&<^O<-1,,777p`700>>>,<
	  MPRNqTX(G2BPT,Byte offq set greater than q@6 bits: D)
	  .q`.ERR.=1
	  >
	IrFN ..ERR.,<-1,-1,r -1>		
	
	IFE ..r@ERR.,<
	  IFDIF r`<D><>,<<<POINT .sBSIZ.,E,.BPOS.>!s 1B12>&<^O<777740,s@,-1>>>
	t@IFIDN s`<D><>,<<<POINT .tBSIZ.,E>!1B12>&<t ^O<777740,,-1>>>
	    
	    <<<t`C>_<^O14>>&<^O<37u0000,,0>>!<<C>&<u 0,,-1>>!<<A>_<^Ou@22>>>
	  >
	PURu`GE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,1&.0		GENBPON{  G ,b
	..ERR.=G@0		
	IFN <<A>&<G`^O<-1,,770000>>>,H<
	  MPRNTX(GFIWH M,Section greaterH@ than 12 bits: AH`)
	  ..ERR.=1
	I  >
	IFN <<B>&<I ^O<777740,,0>>>,<I@
	  MPRNTX(GFIWMI`,Bits 0 - 12 non-Jzero in address fJ ield: B)
	  ..EJ@RR.=1
	  >
	IFNJ` ..ERR.,<-1,-1,-1K>	
				
	IFE ..K ERR.,<
	  <<<B>K@_<^O14>>&<^O<3700K`00,,0>>!<<B>&<0,L,-1>>!<<A>_<^O22L >>>>
	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
	..STR1l`(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p00p0/~,p00$rp0/~UN.,HUN.,HA  UN.,HUNEM`p00
,p00p00
UNEMUNEMA  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.=MA		
	.BPOS.=C
	..ERR.=0		
	IFM@N <<B>&<^O<77774M`0,,0>>>,<
	  MPRNNTX(L1BPT,Bits 0 N - 12 non-zero in N@address field: BN`)
	  ..ERR.=1
	O  >
	IFN <.BSIZ.O &<^O<-1,,777700>>O@>,<
	  MPRNTX(L1O`BPT,Bytesize greaPter than 6 bits: P A)
	P@..ERR.=1
	  >
	IFN <.BPOP`S.&<^O<-1,,777700Q>>>,<
	  MPRNTX(Q L1BPT,Byte offsetQ@ greater than 6 bQ`its: C)
	  ..ERRR.=1
	  >
	
	IR FN <..ERR.>,<-1,-R@1,-1>
	
	IFE <.R`.ERR.>,<
	  IFIDSN <C><>,<POINT .S BSIZ.,B>
	  IFDS@IF <C><>,<POINT S`.BSIZ.,B,.BPOS.>T
	  >
	PURGE ..T ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=[ 0		
	  .BSIZ.=A[@		
	[`.BPOS.=C
	IFN <<B>&<^O<7\77740,,0>>>,<
	 \  MPRNTX(L2BPT,Bit\@s 0 - 12 non-zero\` in address fieldT`: B)
	  ..ERR.=U1
	  >
	IFN <<U D>&<-1,,0>>,<
	 U@ MPRNTX(L2BPT,BitU`s 0-17 non-zero iVn optional field:V  D)
	  ..ERR.=1V@
	  >
	IFN <.BSV`IZ.&<^O<-1,,77770W0>>>,<
	  MPRNTXW (L2BPT,Bytesize gW@reater than 6 bitW`s: A)
	  ..ERR.X=1
	  >
	IFN <.X BPOS.&<^O<-1,,777X@700>>>,<
	  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,a,-1>>>
	bIFIDN a <C><>,<<<POINT .a@BSIZ.,D>!1B12>&<a`^O<777740,,-1>>>
	    <1B0!<<^O<4b 00037,,-1>>&<B>>b@>	
	  >
	PURGE b`..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP1%-T0(B).YN{  D,6
	..ERR.=D 0		
	IFN <<A>&<D@^O<777740,,0>>>,<D`
	  MPRNTX(LFIWME,Bits 0 - 12 non-E zero in address fE@ield: A)
	  ..EE`RR.=1
	  >
	IFNF ..ERR.,<-1,-1,-1F >	
	IFE ..ERR.,<F@1B0!<<^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 ~[^+' '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`+\
	  DEFIN:E ..MP. (LOCN,MTE: 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`-N8<..OWGP (\<A>,B,\<C>)>1$-J^O44 B-_^>
G Z -ROWGP. 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= Q(%
   IFNB QH<A>,<
	TMSG <AQh>>
	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 %*3
	..NUM==%0^D15
	REPEAT ^D1%P6,<
		IFN ..MASK%p & 1B<..NUM>,<
	&	POP P,..NUM>
		&0..NUM==..NUM-1
	>
==..NUM-1
	aNh1 #0*%
	..TMSK=#P=..MASK
	REPEAT #p..NAC,<
		..NUM=$=^L<..TMSK>
		..$0TMSK==..TMSK-1B<.$P.NUM>
		PUSH P,..NUM
	>
H P,.aR<& vh/6
	TXO A,.FR8BY
	TXO A,aRd6 v /2
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x O$xJRST RSKPzJRST RSKPeN^A  eN^gXY ~@(
	..TRR==~`10		
	RADIX 8
	..NV==1			
	IRP  A,<
	  .TRV1 (@A)>		
	IFG ..NV-`5,<PRINTX ?TOO MANY ARGUMENTS: A> 
	JSP .A16,.SASE@T		
	RADIX ..TRR`		
	DEFINE ENDSA.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 p)3

..DONE
==0
..SACC==0
.
0.NAC==0
..MASK==
P0

IRP <A>,<

p	IFG?A-^D15,<PRI
		CAPINTX ?SAVEAC ON ACCUMULATORS>0
	IFE A-.SAC,<.P.SACC==1>
	..SYApC==A				
	IFN A-.SAC,<IFE ..MAS0K&1B<..SYAC>,<	
P		..MASK==..MASK!p1B<..SYAC>	
		..NAC==..NAC+1>>
	0>
IFE ..SACC,<USPRSAV>		
IFE ..DOpNE,<
  IFLE ..SACC,<JSP .SAC,[>
0  IFG ..SACC,<CALPL [EXCH .SAC,(P)>p
		    IFG  ..NAC-3,<DSAVAC>
		 0   IFLE ..NAC-3,<PIFG ..NAC,<PSAVACp>>
		    PUSHJ P,(.SAC)
		      0TRNA
		    AOS -P..NAC-..SACC(P)
p		    IFG  ..NAC-3,<DRSTAC>
		   0 IFLE ..NAC-3,<IFPG ..NAC,<PRSTAC>>p
		    IFG ..SACC,<POP P,.SAC>
	0	    POPJ P,]
>P
PURGE ..NAC,..TNpAC,..MASK,..TMSK,..SACC,..NUM,..SM0SK,..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; p)G
	IFE ..DONE,<
		..SMSK==00
		IRP <B>,<
P		   ..SYAC==B		p		
		   ..SMSK==..SMSK!1B<..SYAC>0>		
		IFE ..MASKP-..SMSK,<JSP .SACp,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`&^
	..STKR=i=10		
	RADIX 8
i 	..STKN==0
	IRP i@A,<
	  .STKV1 (i`A)>
	JSP .A16,.jXSTKS		;Call intej rnal routine for j@allocation
	 EXPj` ..STKN		;Size ofk block to allocatk 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 OH$~
	HRROI .OhAC1,[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
	t..NV==1			
	IRP t A,<
	  .TRV1 (t@A)>		
	JSP .A16,t`.XTRST		
	uEXP .u.NV-1		;Size of bu 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 U(%,
%%FOO==UHa
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; ([m$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  hv<^L<-<<A>_<^L<A>>>-1>>>q
fC@ h&@
	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 D$0
 DEFINE D ELSE. <
	..TAGE D@(JRST,)		
	..TAGD`F (,<:!>)		
	SYNE ..TAGE,..TAGF	
E    DEFINE ELSE. <E@....U>>	

 DEFIE`NE ENDIF. <
	..TFAGF (,<:!>)		
	..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 ]@-rIFE 10-8, ]`  <.%AC!<B>>+ ^			     IFE 10-^D^ 10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 $H
	.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@$F
	SYN ELSF`E.,a
	SYN ENDIFG.,b
	SYN ..TAGFG ,c
	SYN ..TAGE,G@d
	.PSHX <
	  G`SYN a,ELSE.
	  HSYN b,ENDIF.
	 H  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 #p....Ui2;$s #n....Utj7;&` 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  P(
	.ACV2 (A)
	.ACV2 (d@ (;
   IFDEF0 A,<.IF A,SYMBOPL,<PRINTX ACVAR pA ALREADY DEFINED>>
	A==.FPAC+..0NAC	
	$A==A		
	IFB <B>,<..NACp=..NAC+1>
	IFNB <B>,<
	...X==B0
	IF2,<.IFN ...XP,ABSOLUTE,<PRINTXp ?ACVAR A, B is not absolute>>
0	..NAC=..NAC+...X>NAC=..NAC+...Xd` p(K
	IFG A-.NPAC,<PRINTX ?TO0O MANY ACS USED>
	IFLE A-4,<
	 p JSP .A16,.SAVA>		
	IFG A-4,<
		0  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; .@+2
	  IFIDN.` <A><.>,<
		XMO/VEI .A16,B	
		P/ USH P,.A16>
	  I/@FDIF <A><.>,<
	/`  .IFATM <A>,.BL0F4	
	  .BLF1==0	0 	
	  IFN .BLF4,<0@		
	    .IF %A,0`MACRO,<	
		.BLF11==1>	
	    IFNB 1 <B>,<
		.BLF1==1@1>	
	    IFN .BL1`F1,<		
		LOAD .A216,A,B
		PUSH 2 P,.A16>>
	  IFE 2@.BLF1,<		;IF WASN2`'T A STRUCTURE RE3F,
	    IFN .BLF3 4,<		
	     .BLF3@2==<<Z A>&17B17>3`-<P>B17 
	      4.IF .BLF2,ABSOLUT4 E,< 
	       IFE4@ .BLF2,<		
	    4`   .BLF1==1		
	 5      .BLF3==<Z 5 A>&777777
		PUSH5@ P,.BLF3-..NA(P)>5`>>> 
	  IFE .BLF61,<		
		PUSH P,6 A>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 .*p
	.BLCL1 A
	.BLCL1 
f=( +*Z
	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 DH9P DI6P ?D\qP FH1P FmP 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 	p(Q
	IRP A,
<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
P(U
	.ENAV3 (A)
	.ENAV3 tI (Y
	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 r '
	.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`+J
	IRPC A7,<
	B==0
	IFGE7  "A"-"A",<IFLE "7@A"-"Z",<B=1>> 
	IFGE "A"-"0",<8IFLE "A"-"9",<B8 =1>>
	IFE "A"-"8@%",<B=1>
	IFE "8`A"-"$",<B=1>
	9IFE "A"-".",<B=9 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 ~6k0P 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@$\
	.PSHX1 (.POPX2).PSHX1 B~	 L$`
	.POPX4 A
	.POPX4 B~	 M$n
	A
   M DEFINE .PSHX1 (WCM@H,STUFF)<
	WCH (M`<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 L@$d
	.POPX3 B
	.POPX3 C I@$L
	.PSHX1 (.PSHX2,<A>)1 C J$P
	A (<B>)
	A (<BC	 J@$X
   DEFINJ`E .PSHX1 (WCH,STUKFF)<
	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 l &b
	.STKV2 (A)
	.STKV2 O%=I l`&z
	IFB <Bm>,<..STKN==..STKNm +1>
	IFNB <B>,<m@
	...X==B
	IF2m`,<.IFN ...X,ABSOLnUTE,<PRINTX ?STKVn AR A, B is not n@absolute>>
	..STn`KN==..STKN+...X>
	..STKQ==..STKN+o 1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I o`'
   IFDEFp A,<.IF A,SYMBOp L,<PRINTX STKVAR p@A ALREADY DEFINEp`D>>
	DEFINE A<-q^OB(P)>
	$A==<Z A>>
	$A==<Sd  v '2
	.TRV2 (A)
	.TRV2 (Sd@ v`'F
	.TRV3 (wA,\..NV)	
	IFB w <B>,<..NV=..NV+1w@>
	IFNB <B>,<
w`	...X==B
	IF2,<x.IFN ...X,ABSOLUTx E,<PRINTX ?TRVAR x@A, B is not absx`olute>>
	..NV=..NV+...X>..NV=..Sd` y 'T
   IFDEFy@ A,<.IF A,SYMBOy`L,<PRINTX TRVAR zA ALREADY DEFINEDz >>
	DEFINE A<^Oz@B(.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