Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99h-bb - macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Ra@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

	[email protected]==..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 .[email protected],<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/ev0/2BEG
	  E2 +*`
	..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 %@*H	
	..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/60B,<
	/80QAB (/<0    ..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,-..TNA0C(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)c
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`p0/{p0/x4p0/{$np0/xUN.,HK+`p00p004p00$pp00UNEMK3S@ #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 RI@GHT PAREN IN EP. @ MACRO>
			..SC=1@@>
	@`IFE ..SC,<
	   ..CON <A>>>A
	IFE ..X,<
	  A ..CON <,0>>
	..CA@ON <
>
	..GET
   
>
	..GET
KCm :@+`
	  DEFIN:`E ..EP. (LOCN,PTE;XT)
	    <PRINTX;  Location 'LOCN':;@ PTEXT
	    >
	;`  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` R(%
	ERJMP	[RHTMSG <? A>
		 JSHLT]
A>
		 JKbMi B,<<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{P>NF0(^O44C==:NJ

	..ERR.=b 0		
	  .BSIZ.=Bb@		
	b`.BPOS.=D
	IFN <<A>&<^O<-c1,,770000>>>,<
	c   MPRNTX(G2BPT,SecPction greater thai`n 12 bits: A)
	j  ..ERR.=1
	j >
	IFN <<C>&<^O<7j@77740,,0>>>,<
	 j` MPRNTX(G2BPT,Bitks 0 - 12 non-zerok  in address fieldk@: C)
	  ..ERR.=k`1
	  >
	IFN <<lE>&<-1,,0>>,<
	 l  MPRNTX(G2BPT,Bitl@s 0-17 non-zero il`n optional field:m E)
	  ..ERR.=1m 
	  >
	IFN <.BSm@IZ.&<^O<-1,,77770m`0>>>,<
	  MPRNTXn(G2BPT,Bytesize gn reater than 6 bitn@s: B)
	  ..ERR.n`=1
	  >
	IFN <.oBPOS.&<^O<-1,,777o 700>>>,<
	  MPRNo@TX(G2BPT,Byte offo`set greater than p6 bits: D)
	  .p .ERR.=1
	  >
	Ip@FN ..ERR.,<-1,-1,p`-1>		
	
	IFE ..qERR.,<
	  IFDIF q <D><>,<<<POINT .q@BSIZ.,E,.BPOS.>!q`1B12>&<^O<777740,r,-1>>>
	sIFIDN r <D><>,<<<POINT .r@BSIZ.,E>!1B12>&<r`^O<777740,,-1>>>
	    
	    <<<s C>_<^O14>>&<^O<37s@0000,,0>>!<<C>&<s`0,,-1>>!<<A>_<^Ot22>>>
	  >
	PURt GE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,1.
0		GENBPON{  E`,V
	..ERR.=F0		
	IFN <<A>&<F ^O<-1,,770000>>>,F@<
	  MPRNTX(GFIWF`M,Section greaterG than 12 bits: AG )
	  ..ERR.=1
	G@  >
	IFN <<B>&<G`^O<777740,,0>>>,<H
	  MPRNTX(GFIWMH ,Bits 0 - 12 non-H@zero in address fH`ield: B)
	  ..EIRR.=1
	  >
	IFNI  ..ERR.,<-1,-1,-1I@>	
				
	IFE ..I`ERR.,<
	  <<<B>J_<^O14>>&<^O<3700J 00,,0>>!<<B>&<0,J@,-1>>!<<A>_<^O22J`>>>>
	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/up0/r,p0/u$np0/rUN.,HUN.,HA  UN.,HUNEM`p00p0/~,p00$pp0/~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.=K@A		
	.BPOS.=C
	..ERR.=0		
	IFLN <<B>&<^O<77774L 0,,0>>>,<
	  MPRL@NTX(L1BPT,Bits 0 L`- 12 non-zero in Maddress field: BM )
	  ..ERR.=1
	M@  >
	IFN <.BSIZ.M`&<^O<-1,,777700>>N>,<
	  MPRNTX(L1N BPT,Bytesize greaN@ter than 6 bits: N`A)
	O..ERR.=1
	  >
	IFN <.BPOO S.&<^O<-1,,777700O@>>>,<
	  MPRNTX(O`L1BPT,Byte offsetP greater than 6 bP its: C)
	  ..ERP@R.=1
	  >
	
	IP`FN <..ERR.>,<-1,-Q1,-1>
	
	IFE <.Q .ERR.>,<
	  IFIDQ@N <C><>,<POINT .Q`BSIZ.,B>
	  IFDRIF <C><>,<POINT R .BSIZ.,B,.BPOS.>R@
	  >
	PURGE ..R`ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ

	..ERR.=Y`0		
	  .BSIZ.=AZ		
	Z .BPOS.=C
	IFN <<B>&<^O<7Z@77740,,0>>>,<
	 Z` MPRNTX(L2BPT,Bit[s 0 - 12 non-zero[  in address fieldS : B)
	  ..ERR.=S@1
	  >
	IFN <<S`D>&<-1,,0>>,<
	 T MPRNTX(L2BPT,BitT s 0-17 non-zero iT@n optional field:T` D)
	  ..ERR.=1U
	  >
	IFN <.BSU IZ.&<^O<-1,,77770U@0>>>,<
	  MPRNTXU`(L2BPT,Bytesize gVreater than 6 bitV s: A)
	  ..ERR.V@=1
	  >
	IFN <.V`BPOS.&<^O<-1,,777W700>>>,<
	  MPRNW 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>>>
	`@IFIDN `<C><>,<<<POINT .`BSIZ.,D>!1B12>&<` ^O<777740,,-1>>>
	    <1B0!<<^O<4``00037,,-1>>&<B>>a>	
	  >
	PURGE a ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP1-H0(B).YN{  B@,*
	..ERR.=B`0		
	IFN <<A>&<C^O<777740,,0>>>,<C 
	  MPRNTX(LFIWMC@,Bits 0 - 12 non-C`zero in address fDield: A)
	  ..ED RR.=1
	  >
	IFND@ ..ERR.,<-1,-1,-1D`>	
	IFE ..ERR.,<E1B0!<<^O<400037,,E -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 8 +P
	  DEFIN8@E ..MP. (LOCN,MTE8`XT,PTEXT)<
	    9PRINTX Location '9 LOCN', Macro 'MTE9@XT': PTEXT
	    9`>
	  ..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>_^>@ X -Bx<..OWGP (\<A>,B,\<C>)>1->^O44 B-_^>
G X`-FOWGP. 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<& u(/*
	TXO A,.FR8BY
	TXO A,aRd6 t`/&
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x NH$tJRST RSKPvJRST RSKPeN^A  eN^gXY ~(
	..TRR==~ 10		
	RADIX 8
	[email protected]==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>
	IFN 0A-.SAC,<IFE ..MASPK&1B<A>,<
		..MpASK==..MASK!1B<A>
		..NAC==..NAC0+1>>
	>
IFE ..SPACC,<USRSAV>		
IpFE ..DONE,<
  IFLE ..SACC,<JSP .S0AC,[>
  IFG ..SAPCC,<CALL [EXCH .SpAC,(P)>
		    IFG  ..NAC-3,<DSAVA0C>
		    IFLE ..PNAC-3,<IFG ..NAC,p<PSAVAC>>
		    PUSHJ P,(.SAC)
	0	      TRNA
		  P  AOS -..NAC-..SApCC(P)
		    IFG  ..NAC-3,<DRSTAC>0
		    IFLE ..NAPC-3,<IFG ..NAC,<PpRSTAC>>
		    IFG ..SACC,<POP P,.0SAC>
		    POPJ PP,]
>
PURGE ..NpAC,..TNAC,..MASK,..TMSK,..SACC,..N0UM,..SMSK,..DONE
..SMSK,..DONE
	..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);
	IFE ..DONE,<
		..SMSK==00
		IRP <B>,<..PSMSK==..SMSK!1B<pB>>
		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
	[email protected]==1			
	IRP s`A,<
	  .TRV1 (tA)>		
	JSP .A16,t .XTRST		
	uEXP .[email protected]		;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 \-fIFE 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 [email protected],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,</		
	    .IF %A,/ MACRO,<	
		.BLF1/@==1>	
	    IFNB /`<B>,<
		.BLF1==01>	
	    IFN .BL0 F1,<		
		LOAD .A0@16,A,B
		PUSH 0`P,.A16>>
	  IFE 1.BLF1,<		;IF WASN1 'T A STRUCTURE RE1@F,
	    IFN .BLF1`4,<		
	     .BLF22==<<Z A>&17B17>2 -<P>B17 
	      [email protected] .BLF2,ABSOLUT2`E,< 
	       IFE3 .BLF2,<		
	    3    .BLF1==1		
	 3@      .BLF3==<Z 3`A>&777777
		PUSH4 P,.BLF3-..NA(P)>4 >>> 
	  IFE .BLF4@1,<		
		PUSH P,4`A>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 ,@*d
	.BLCL1 A
	.BLCL1 
f=( )@*N
	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 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 	0(M
	IRP A,	P<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
(Q
	.ENAV3 (A)
	.ENAV3 tI 
P(U
	PURGE A,A
  PURGE t,h * *T
	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 5 +>
	IRPC A5@,<
	B==0
	IFGE5` "A"-"A",<IFLE "6A"-"Z",<B=1>> 
	IFGE "A"-"0",<6@IFLE "A"-"9",<B6`=1>>
	IFE "A"-"7%",<B=1>
	IFE "7 A"-"$",<B=1>
	7@IFE "A"-".",<B=7`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,<[email protected] ...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