Google
 

Trailing-Edge - PDP-10 Archives - BB-L014Y-BM_1990 - t20sub/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Uc@P C4@ 08
	..NAC==P0		
	IRP A,<
	p  .ACV1 (A)>		
	.ACV3 (\..NAC)		0
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' [h%^OP%%IA	(A,B,ADD,SUB)(AC:$S@ >`3v
	..TAGF (<JUMPN A,>,) C:$s@ ?`3~
	..TAGF (<JUMPLE A,>,)C:$y' @ 4
	..TAGF (<JUMPL A,>,) C:%C@ A 4

	..TAGF (<JUMPGE A,>,)C:%I' @`4
	..TAGF (<JUMPG A,>,) C:%c@ ? 3z
	..TAGF (<JUMPE A,>,) C:&' B`4
	..TAGF C(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G C@4
	..TAGF C`(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 2h#
	TXZ A,<^-<B>>TXZ A,C:'	' A`4
	..TAGF (<JXN A,B,>,)C:'G B 4
	..TAGF (<JXE A,B,>,)C:u)' = 3j
	..TAGF (ERJMP,)..TAGF C:v:g <`3f
	TRNA
	..TAGF (JRST,)	C;< < 3b
	..TAGF (JRST,)	..TAGF CO,,@ {@7p
	..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 FTS HOW,..LOC==.

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

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

	..MSK==0		
	..O FF==..OFF+NUMB	
@
>

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

>
@
DEFINE	FILLER(N`UM),<
	..FLG==POS(..MSK)
	IFE .. MSK,<..FLG==-1>
@	IFG <^D<NUM>-<^D`35-..FLG>>,<PRINTX ?FILL TOO BIG I N A STRUCTURE>
@	...MSK==MASK.(^D`<NUM>,<..FLG+^D<NUM>>)
	IFN FTSHO W,<
	  PHASE ..O@FF
	  EXP ...MSK`
	>
	..MSK==..MSK!...MSK
>

 

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


DEFINE	FIELD(NA M,SIZ,POS),<
	..@FLG==0		

	IFB `<POS>,<IFB <SIZ>,<
	  ...MSK==.RT MSK(<<^-<<..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(N AM,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!0 MASK	

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

DEFI2NE ENDSTR(LENNAM<2 LEN>,LSTNAM<LST>)2@,<

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

	A.'LSTNAM==3 ..OFF	

	IFN FT3@SHOW,DEPHASE

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

	IF2,<
	  I4`FDEF ...MSK,<SUPP5RESS ...MSK>
	  5 IFDEF ..BITS,<SUP5@PRESS ..BITS>
	 5` IFDEF .SIZ,<SUPP6RESS .SIZ>
	  IF6 DEF ..MSK,<SUPPRE6@SS ..MSK>
	  IFD6`EF ..OFF,<SUPPRES7S ..OFF>
	  IFDE7 F ..FLG,<SUPPRESS7@ ..FLG>
	  IFDEF7` ..LOK,<SUPPRESS 8..LOK>
	  IFDEF 8 ..LOC,<SUPPRESS .8@.LOC>
	  IFDEF .8`.OLD,<SUPPRESS ..9OLD>
	  IFDEF ..9 .OLD,<SUPPRESS ..9@.OLD>
	>

	IF19`,<
	  IFDEF ...M: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 A..LOK,<PRINTX ? NA EW BEGSTR WITHOUTA@ ENDSTR>>

	..LOK==-1


	..L?s(x0?@BEG
	  E2 ,`:n
	..NA==0-			
	IRP B,<
	-   .BLCL2 B>		
	-@PUSH P,[..NA+1,,.-`.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g 
0X
	..SVBK	
 		
	XMOVEI .A16,
@a	
	PUSH P,.A16
`
  DEFINE ENDBK. <
	RET			
a:!				
	.POPX>:!E3XG ' :V	
	..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' [H5e
W0.==A
W1.==B				;INIT\0IALIZE BREAK MASK\P
W2.==C
W3.==D
==C
W3.==@5R0?D0B,<
	?F0QAB (?J0    ..SEJZ V(5F	..V22==aVH
	..V1==a
	IFNVhB <B>,<..V22==BW>
REPEAT ..V22-<W(a>+1,<	
	%%W==.WH.V1/^D32	
	%%X==Wh..V1-%%W*^D32	
	XIFE C,BRKC1 \"<%X(%W+"0">	
	IFN CXH,BRKC2 \"<%%W+"0"Xh>
	..V1==..V1+1
		   >
.V1+1 Y(5J	WA.==WA.!<1B<%%X>>
AEJ\4@ Yh5P	WA.==WAZ.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: Th5(
%%FOO==Ua
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g ]5s
	BRINI. A]0,B,C,D	
	IRPC]P E,<	UNBRK. "E"]p>	
	IRPC F,<	BR^KCH. "F">	
	EXP^0 W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +G@ UH%,OP%%CA (A,B,)OP%%CA (AGD Y%HOP%%CA (A,B,A)P%%CA (AGDP W%8OP%%CA (A,B,E)P%%CA (AGDp WH%<OP%%CA (A,B,G)P%%CA (AGDy  X%@OP%%CA (A,B,GE)%%CA (AGE@ V%0OP%%CA (A,B,L)P%%CA (AGEI  VH%4OP%%CA (A,B,LE)%%CA (AGE` XH%DOP%%CA (A,B,N)P%%CA (AG?Z 
h n
	ASCIZ /
COPYRIGHTQ(c)MDT 
ALL RIGHTS RESERVED.
/TS RESERVI  \`-h
	..STR0 ](.DECR0,,<A>,<B>)CR0,,<A>,<BI6= q'
	A==<-1q(B<C>+1B<C-D>> qH
	IF1,<IFDEF %Aqh,<PRINTX ?A ALRErADY DEFINED>>
	Dr(EFINE %A (OP,AC,rHY,MSK)<
	$A==<Zrh B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 ]h%nOP%%IN	(A,B,DIV)%IN	(AI<p 
@0v
	..SVLD	
`		
a:!				
EDNE OD. <
b:!
	.POPX>			
` DEFINE LOOP. <
	JRST a>		
  DEFINE TOP. <a>	 	
  DEFINE ENDLP@. <b>		
  DEFIN`E EXIT. <
	JRST b>T. <
	JRST IKH1 P:
..TMSK==p..MASK
..TNAC==..NAC-1
REPEAT ..0NAC,<
   IFN ..TPMSK,<
	..NUM==^Lp<..TMSK>
	..TMSK ==..TMSK-1B<..NUM 0>
	IFE ..TMSK &  P1B<..NUM+1>,<
		 pMOVE ..NUM,-..TNA!C(P)
		..TNAC==.!0.TNAC-1>
	IFN ..!PTMSK & 1B<..NUM+1!p>,<
		DMOVE ..NU"M,-..TNAC(P)
		."0.TNAC==..TNAC-2
"P		..TMSK==..TMSK-"p1B<..NUM+1>>
	>>#
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 P9q
IFG ..NApC,<ADJSP P,..NAC>
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
p   IFN ..TMSK,<
	..NUM==^L<..TMSK0>
	..TMSK==..TMSPK-1B<..NUM>
	IFEp ..TMSK & 1B<..NUM+1>,<
		MOVEM .0.NUM,-..TNAC(P)
P		..TNAC==..TNAC-p1>
	IFN ..TMSK & 1B<..NUM+1>,<
	0	DMOVEM ..NUM,-..PTNAC(P)
		..TNACp==..TNAC-2
		..TMSK==..TMSK-1B<..NUM+1>>
	>>
.K,lz s('(
	A==<-1sHB<C>+1B<C-D>> sh
	IF1,<IFDEF %At,<PRINTX ?A ALREt(ADY DEFINED>>
	DtHEFINE %A (OP,AC,thY,MSK)<
	OP (<ACu>,<@[EP. B'Y]>,MSK)>P. B'Y]>,MK+\Y`p0@	p0@4p0@	4tp0@UN.,HK+`p0@p0@4p0@4vp0@UNEMK3S@ 3l....U2K7<z wH'H
	A==C	wh	
	IF1,<IFDEF %xA,<PRINTX ?A ALRx(EADY DEFINED>>
	xHDEFINE %A (OP,ACxh,Y,MSK)<
	OP (<AyC>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg 0x
	OD.K:%G 3n....Utj7K@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>
	  AIFE "A"-")",<
	A     IFE ..X,<PRINA@TX %UNEXPECTED RIA`GHT PAREN IN EP. BMACRO>
			..SC=1B >
	B@IFE ..SC,<
	   ..CON <A>>>B`
	IFE ..X,<
	  C..CON <,0>>
	..CC ON <
>
	..GET
   
>
	..GET
KCm < ;n
	  DEFIN<@E ..EP. (LOCN,PTE<`XT)
	    <PRINTX= Location 'LOCN':=  PTEXT
	    >
	=@  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` S5
	ERJMP	[S(TMSG <? A>
		 JSHLT]
A>
		 JKbMi C`<<<A>B1+<C>B5+<B>>B1+<Kc  Sh5"
   IF2,<T
	IRP A,<
	IFNT(DEF A,<EXTERN A
	SUPPRE A>>>M&. ch&OP%%FP	(A,B,FADR)FP	(AM6. e(&*OP%%FP	(A,B,FDVR)FP	(AM2   h"<<<A>B<POS(<B>)>>&<B>>M2$*g bp6=
	..XX==<cFLD(A,CM%FNC)>+c0B+<Z G>
   IFNBcP <D>,<..XX=CM%HPcpP!..XX>
   IFNB d<E>,<..XX=CM%DPPd0!..XX>
   IFNB <dPF>,<..XX=CM%BRK!dp..XX>
	..XX
   eIFNB <C>,<C>
 e0  IFB <C>,<0>
 eP  IFNB <D>,<POINepT 7,[ASCIZ D]>f
   IFB <D>,<IFf0NB <EF>,<0>>
 fP  IFB <E>,<IFNB fp<F>,<0>>
   IFNgB <E>,<POINT 7,[g0ASCIZ \E\]>
   gPIFNB <F>,<F>
    <F>,<F>
 M2$HG ^p6

	..XX==<_FLD(A,CM%FNC)>+_0B+<0,,F>
   IFN_PB <D>,<..XX=CM%H_pPP!..XX>
   IFNB` <E>,<..XX=CM%DP`0P!..XX>
	..XX
`P  IFNB <C>,<C>
aIFB <C>,<0>
   IFNB <D>,<POa0INT 7,[ASCIZ DaP]>
   IFB <D>,<apIFNB <E>,<0>>
 b  IFNB <E>,<POINb0T 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. dh&&OP%%FP	(A,B,FMPR)FP	(AM7p PH5
	HRROI .PhAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ #" 

  DEFINE#( e(C)<D>
..FO#HRN==A
REPEAT B#h-A+1,<
	.FORN1 $(e)
	..FORN=..FORN+1>.FORN=..FM?3@ &("6
  DEFINE&H %MN1 (B)<C>
	&h..FORN==A		
	.FORN1 (%MN1)
	.FM?@ %",
  DEFINE%( d (B)<C>
  I%HRP A,<
	.FORX1 d,A>
	.FORX1]MN.d(&"OP%%FP	(A,B,FSBR)FP	(AMS{PNF@6^O44C==:NJ

	..ERR.=d0		
	  .BSIZ.=Bd 		
	d@.BPOS.=D
	IFN <<A>&<^O<-d`1,,770000>>>,<
	e  MPRNTX(G2BPT,See0ction greater thak@n 12 bits: A)
	k`  ..ERR.=1
	l>
	IFN <<C>&<^O<7l 77740,,0>>>,<
	 l@ MPRNTX(G2BPT,Bitl`s 0 - 12 non-zerom in address fieldm : C)
	  ..ERR.=m@1
	  >
	IFN <<m`E>&<-1,,0>>,<
	 n MPRNTX(G2BPT,Bitn s 0-17 non-zero in@n optional field:n` E)
	  ..ERR.=1o
	  >
	IFN <.BSo IZ.&<^O<-1,,77770o@0>>>,<
	  MPRNTXo`(G2BPT,Bytesize gpreater than 6 bitp s: B)
	  ..ERR.p@=1
	  >
	IFN <.p`BPOS.&<^O<-1,,777q700>>>,<
	  MPRNq TX(G2BPT,Byte offq@set greater than q`6 bits: D)
	  .r.ERR.=1
	  >
	Ir FN ..ERR.,<-1,-1,r@-1>		
	
	IFE ..r`ERR.,<
	  IFDIF s<D><>,<<<POINT .s BSIZ.,E,.BPOS.>!s@1B12>&<^O<777740,s`,-1>>>
	t`IFIDN t<D><>,<<<POINT .t BSIZ.,E>!1B12>&<t@^O<777740,,-1>>>
	    
	    <<<uC>_<^O14>>&<^O<37u 0000,,0>>!<<C>&<u@0,,-1>>!<<A>_<^Ou`22>>>
	  >
	PURvGE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,A(>0		GENBPON{  G@<d
	..ERR.=G`0		
	IFN <<A>&<H^O<-1,,770000>>>,H <
	  MPRNTX(GFIWH@M,Section greaterH` than 12 bits: AI)
	  ..ERR.=1
	I   >
	IFN <<B>&<I@^O<777740,,0>>>,<I`
	  MPRNTX(GFIWMJ,Bits 0 - 12 non-J zero in address fJ@ield: B)
	  ..EJ`RR.=1
	  >
	IFNK ..ERR.,<-1,-1,-1K >	
				
	IFE ..K@ERR.,<
	  <<<B>K`_<^O14>>&<^O<3700L00,,0>>!<<B>&<0,L ,-1>>!<<A>_<^O22L@>>>>
	PURGE ..ERR.
	PURGE ..ERSNn ^(%rOP%%IN	(A,B,IDIV)IN	(AS)` '`2J
	JUMPN (A,b		
	..SVDF		( 	
   DEFINE ..TA(@GF (INST,PCT)<
	(`INST b'PCT>		
 )  DEFINE ..TAGE () INST,PCT)<
	INST c'PCT>		
	STS.:g &@2:
	PRINTX &`% IFESK. should b'e changed to IFNJ' E.
	IFNJE. <A>.
	IFNJE. <A>S9` +`2j
	JUMPLE ,A,b		
	..SVDF	, 		
   DEFINE ..T,@AGF (INST,PCT)<
,`	INST b'PCT>		
-   DEFINE ..TAGE - (INST,PCT)<
	INST c'PCT>		
	SS<S@ -`2z
	JUMPL .A,b		
	..SVDF		. 	
   DEFINE ..TA.@GF (INST,PCT)<
	.`INST b'PCT>		
 /  DEFINE ..TAGE (/ INST,PCT)<
	INST c'PCT>		
	STSTS@  1b

   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 `1F

   IFB <AB>,<		
	..SVD F			
	ERJMP e		@
	JRST c		
e:`!
   DEFINE ..TAGF (INST,PCT)<
	 INST c'PCT>		
 @  DEFINE ..TAGE (`INST,PCT)<
	INST d'PCT>		
	>
    IFNB <AB>,<		@
	ERJMP c		
	`B
	JRST d
c:!	A
d:!>
c:!SUc@ #@20
   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`3
	JUMPGE 2A,b		
	..SVDF	2 		
   DEFINE ..T2@AGF (INST,PCT)<
2`	INST b'PCT>		
3   DEFINE ..TAGE 3 (INST,PCT)<
	INST c'PCT>		
	SSdS@ /`3

	JUMPG 0A,b		
	..SVDF		0 	
   DEFINE ..TA0@GF (INST,PCT)<
	0`INST b'PCT>		
 1  DEFINE ..TAGE (1 INST,PCT)<
	INST c'PCT>		
	STSq` )`2Z
	JUMPE *A,b		
	..SVDF		* 	
   DEFINE ..TA*@GF (INST,PCT)<
	*`INST b'PCT>		
 +  DEFINE ..TAGE (+ INST,PCT)<
	INST c'PCT>		
	STSt\g `1l
	PRINTX % IFNES. should b e changed to IFJE@R.
	IFJER. <A>,<B>FJER. <A>,Su)'  `2
   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  1*
   IFB <@AB>,<		
	..SVD`F			
	TRNA			
	JRST c		
   DEF INE ..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`3L
	JN <A>8,<B>,c	
	..SVD8 F			
   DEFINE .8@.TAGF (INST,PCT)<8`
	INST c'PCT>		9
   DEFINE ..TAG9 E (INST,PCT)<
	I9@NST d'PCT>		
	ST d'PCT>		
	S :3^
	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< 2
   IFB < A>,<		
	..SVDF	@		
	JRST b
   `DEFINE ..TAGF (INST,PCT)<
	INST  b'PCT>		
   DEFI@NE ..TAGE (INST,P`CT)<
	INST c'PC T>		
	>
   IFNB   <A>,<
	JRST b
	A
b:!> bSDS@ 3`3*
	JXN A,4B,c	
	..SVDF		4 	
   DEFINE ..TA4@GF (INST,PCT)<
	4`INST c'PCT>		
 5  DEFINE ..TAGE (5 INST,PCT)<
	INST d'PCT>		
	STSEc@ 5`3:
	JXE A,6B,c	
	..SVDF		6 	
   DEFINE ..TA6@GF (INST,PCT)<
	6`INST c'PCT>		
 7  DEFINE ..TAGE (7 INST,PCT)<
	INST d'PCT>		
	STS7-N ](%jOP%%IN	(A,B,IMUL)IN	(AS:  Z@-V
	..STR0 Z`(.INCR0,,<A>,<B>)CR0,,<A>,<BS? 2(#
	TXO A,<B>
	TXO A,Ut@ p/
	..STR1 p (..JAN,<d,<C>>,p@<A>,<B>,..STR5)
d:B>,..STR5)U c`. 
	..STR1 d(..JE,<C>,<A>,<B>,..STR3)A>,<U8 h .D
	..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`.h
	..STR1 m(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0@p0@,p0@4tp0@UN.,HUN.,HA  UN.,HUNEM`p0@p0@
,p0@4vp0@
UNEMUNEMA  UNEMUNn9hA  UNn9hUb( FH$L
	..JX1==FhB		
	.IFN ..JX1G,ABSOLUTE,<PRINTXG( B NOT ABSOLUTE
		..JX1==0>
	.IGhF ..JX1,ABSOLUTE,H<
	.IF0 <<..JX1>H(-1B0>,<	
		JUMPGHHE A,C>,<
	.IF0Hh <<..JX1>+1>,<	
I	  JUMPE A,C>,<I(	
		TXNN (A,..JIHX1)
		JRST C>>>)
		JRST C>>>Ub0 QH%(
	..JX1==QhB		
	.IFN ..JX1R,ABSOLUTE,<PRINTXR( B NOT ABSOLUTE
		..JX1==0>
	.IRhF ..JX1,ABSOLUTE,S<
	.IF0 <<..JX1>S(-1B0>,<
		JUMPGESH A,C>,<
	..ONEShB (..BT,B)	
	.ITF0 ..BT,<
	  SETT(CM .SAC,A		
	  THJXN (.SAC,..JX1,ThC)>,< 
	    TXNNU A,..JX1	
	    JRST C>>>	    Ubp J$h
	..JX1==J(B		
	.IFN ..JX1JH,ABSOLUTE,<PRINTXJh B NOT ABSOLUTE
		..JX1==0>
	.IK(F ..JX1,ABSOLUTE,KH<
	.IF0 <<..JX1>Kh-1B0>,<	
		JUMPLL A,C>,<
	.IF0 L(<<..JX1>+1>,<	
	LH  JUMPN A,C>,<	Lh
		TXNE (A,..JXM1)
		JRST C>>>)
		JRST C>>>Ubx MH%
	..JX1==MhB		
	.IFN ..JX1N,ABSOLUTE,<PRINTXN( B NOT ABSOLUTE
		..JX1==0>
	.INhF ..JX1,ABSOLUTE,O<
	.IF0 <<..JX1>O(-1B0>,<
		JUMPL OHA,C>,<
	..ONEBOh (..BT,B)	
	.IFP0 ..BT,<
	  SETCP(M .SAC,A		
	  JPHXE (.SAC,..JX1,CPh)>,< 
	    TXNE QA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=M A		
	.BPOS.=C
	..ERR.=0		
	IFM`N <<B>&<^O<77774N0,,0>>>,<
	  MPRN NTX(L1BPT,Bits 0 N@- 12 non-zero in N`address field: BO)
	  ..ERR.=1
	O   >
	IFN <.BSIZ.O@&<^O<-1,,777700>>O`>,<
	  MPRNTX(L1PBPT,Bytesize greaP ter than 6 bits: P@A)
	P`..ERR.=1
	  >
	IFN <.BPOQS.&<^O<-1,,777700Q >>>,<
	  MPRNTX(Q@L1BPT,Byte offsetQ` greater than 6 bRits: C)
	  ..ERR R.=1
	  >
	
	IR@FN <..ERR.>,<-1,-R`1,-1>
	
	IFE <.S.ERR.>,<
	  IFIDS N <C><>,<POINT .S@BSIZ.,B>
	  IFDS`IF <C><>,<POINT T.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 fieldU: B)
	  ..ERR.=U 1
	  >
	IFN <<U@D>&<-1,,0>>,<
	 U` MPRNTX(L2BPT,BitVs 0-17 non-zero iV n optional field:V@ D)
	  ..ERR.=1V`
	  >
	IFN <.BSWIZ.&<^O<-1,,77770W 0>>>,<
	  MPRNTXW@(L2BPT,Bytesize gW`reater than 6 bitXs: A)
	  ..ERR.X =1
	  >
	IFN <.X@BPOS.&<^O<-1,,777X`700>>>,<
	  MPRNYTX(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.>!a1B12>&<^O<777740,a ,-1>>>
	b IFIDN a@<C><>,<<<POINT .a`BSIZ.,D>!1B12>&<b^O<777740,,-1>>>
	    <1B0!<<^O<4b@00037,,-1>>&<B>>b`>	
	  >
	PURGE c..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPA'=V0(B).YN{  D <8
	..ERR.=D@0		
	IFN <<A>&<D`^O<777740,,0>>>,<E
	  MPRNTX(LFIWME ,Bits 0 - 12 non-E@zero in address fE`ield: A)
	  ..EFRR.=1
	  >
	IFNF  ..ERR.,<-1,-1,-1F@>	
	IFE ..ERR.,<F`1B0!<<^O<400037,,G-1>>&<A>>>	
	PURGE ..ERR.
	PUY$- B,1_<^D35-^L<A>>1_<^D35-^LY>
@ E ,,
	..STR0 E@(..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  H ,D
	..STR0 H@(..LDBE,A,B,<C>)DBE,A,B,<C[i9Q ~[^+' '("L
  DEFINE'H A (STUFF)<
	c'h (<STUFF>,)>

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

  DEFINE )(B <
    DEFINE )Hc (NEW,OLD)<OLD>
	A ()>
OLD>[3@ B@,<<<1_<A>>-1>B<B>>_<A>>[8@ ""<1B<<A>-1>-1B<B>><A>-1[>!` "H"<<A>-<<A>/<B>>*<B>>A[?7 *#
   ..MX1*(==B			
*h.IFN *H..MX1,ABSOLUTE,<
	MOVE A,[B]>
+   .IF ..MX1,ABSO+(LUTE,<
	..MX2==0+H		
	IFE <..MX1>B+h53,<
	  ..MX2==1,
	  MOVEI A,..M,(X1>	
	IFE ..MX2,,H<		
	IFE <..MX1>,hB17,<
	  ..MX2==-1
	  MOVSI A,(.-(.MX1)>>	
	IFE ..-HMX2,<		
	IFE <<.-h.MX1>B53-^O777777.>,<
	.(..MX2==1
	  HRROI A,<..M.HX1>>>	
	IFE ..MX.h2,<		
	IFE <<..M/X1>B17-^O777777B1/(7>,<
	  ..MX2==1/H
	0HRLOI A,(../hMX1-^O777777)>> 
	IFE ..MX2,<		
0(	  MOVE A,[..MX1]>	
  >,[..MX1[Cm :;^
	  DEFIN: E ..MP. (LOCN,MTE:@XT,PTEXT)<
	    :`PRINTX Location ';LOCN', Macro 'MTE; XT': PTEXT
	    ;@>
	  ..MP.(\.,A;`,<B>)
	  PURGE ..MP.
	  URGE [N^= uH'8
	A==C	uh	
	IF1,<IFDEF %vA,<PRINTX ?A ALRv(EADY DEFINED>>
	vHDEFINE %A (OP,ACvh,Y,MSK)<
	$A==<wZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg \h%fOP%%IN	(A,B,MUL)%IN	(A[Xp 0h#
	MOVE .S1AC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` 1H#
	MOVX .S1hAC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp YH%Z
	.XCREF
IFE	<<B>_-^D18>Z,<
	.CREF
	CAIZ(C	A,<B>
	.XCREZHF
>
IFN	<<B>_-Zh^D18>,<
	.CREF
[	CAMC	A,[B]
	[(.XCREF
>
	.CREFCREF
>
	.CREF_@(YX eh&:
	.XCREF
IFE	<<B>_^D18>,f(<
	.CREF
	CI	fHA,(B)
	.XCREF
fh>
IFN	<<B>_^D18g>,<
	.CREF
	C	g(A,[B]
	.XCREF
>
	.CREFCREFh&

	.XCREF
	TEST%%=0
IFE	<_(<<B>_-^D18>-^O77_H7777>,<
IFN	<<B_h>&^O777777>,<
	T`EST%%=1
	.CREF
`(	DI	A,-<B>
	.`HXCREF
>>
IFE	TE`hST%%,<
	OP%%IN	aA,<B>,C
>
	PUa(RGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 ah&
	.XCREF
IFE	<<B>_-^D18>b(,<
	.CREF
	CI	bHA,<B>
	.XCREF
>
IFN	<<B>_-^Dc18>,<
	.CREF
	c(C	A,[B]
	.XCREF
>
	.CREFCRE_CL@ _-z
	..STR0 _ (.OPST1,<A>,<B>,<C>)<A>,<B>_CLV a .

	..STR0 a@(.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ Z=PX<..OWGP (\<A>,B,\<C>)>A&=L^O44 B-_^>
G Z@=TOWGP. 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= QH5
   IFNB Qh<A>,<
	TMSG <AR>>
	CALL JSMSG0>
	CALL JSMSG0a4\G 0!
	..PGV0=P=.		
	.JBVER=:^Op137		
	LOC	.JBVER		
	BYTE	(3)D(09)A(6)B(18)C
P	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm  "<POINT WID ((<B>),A,POS(<B>)>),A,POS(<Ba? H!|<^L<<A>&<-<A>>>><<A>&<aKH1 %0:5
	..NUM==%P^D15
	REPEAT ^D1%p6,<
		IFN ..MASK& & 1B<..NUM>,<
	&0	POP P,..NUM>
		&P..NUM==..NUM-1
	>
==..NUM-1
	aNh1 #P:'
	..TMSK=#p=..MASK
	REPEAT $..NAC,<
		..NUM=$0=^L<..TMSK>
		..$PTMSK==..TMSK-1B<.$p.NUM>
		PUSH P,..NUM
	>
H P,.aR<& w?8
	TXO A,.FR8BY
	TXO A,aRd6 v@?4
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x O(4zJRST RSKP|JRST RSKPeN^A  eN^gXY ~`8

	..TRR==10		
	RADIX 8
	 ..NV==1			
	IRP @A,<
	  .TRV1 (`A)>		
	IFG ..NV-5,<PRINTX ?TOO MA NY ARGUMENTS: A>@
	JSP .A16,.SASE`T		
	RADIX ..TRR		
	DEFINE ENDSA .<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 
95

..DONE
0==0
..SACC==0
.
P.NAC==0
..MASK==
p0

IRP <A>,<
	IFG?A-^D15,<PRI
		  PINTX ?SAVEAC CAN ONLY BE USED0 ON ACCUMULATORS>P
	IFE A-.SAC,<.p.SACC==1>
	..SYAC==A				
	IFN 0A-.SAC,<IFE ..MASPK&1B<..SYAC>,<	
p		..MASK==..MASK!1B<..SYAC>	
		..0NAC==..NAC+1>>
	P>
IFE ..SACC,<USpRSAV>		
IFE ..DONE,<
  IFLE ..SA0CC,<JSP .SAC,[>
P  IFG ..SACC,<CALpL [EXCH .SAC,(P)>
		    IFG  ..NA0C-3,<DSAVAC>
		 P   IFLE ..NAC-3,<pIFG ..NAC,<PSAVAC>>
		    PUSHJ P0,(.SAC)
		      PTRNA
		    AOS -p..NAC-..SACC(P)
		    IFG  ..NAC-03,<DRSTAC>
		   P IFLE ..NAC-3,<IFpG ..NAC,<PRSTAC>>
		    IFG ..SAC0C,<POP P,.SAC>
	P	    POPJ P,]
>p
PURGE ..NAC,..TNAC,..MASK,..TMSK,0..SACC,..NUM,..SMPSK,..DONE,..SYAC  
DONE,..SYAC g$;8 W -<
	..STR1 W@(..TQC,,<A>,<B>,..STR4)A>,<B>g%{R S`- 
	..STR1 T(..TQO,,<A>,<B>,..STR4)A>,<B>g',W P-
	..STR1 P (..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@ H!t
	....Z=A
	....Z=gB8; 9I
	IFE ..D0ONE,<
		..SMSK==P0
		IRP <B>,<
p		   ..SYAC==B				
		   ..SMSK==0..SMSK!1B<..SYAC>P>		
		IFE ..MASKp-..SMSK,<JSP .SAC,A
				   ..DONE==1>
	>
.DONgR$g (!&
F=:0
T1H=:1
T2=:2
T3=:3h
T4=:4
Q1=:5
Q2=:6
Q3=:7
P1=:(10
P2=:11
P3=:1H2
P4=:13
P5=:14h
P6=:15
CX=:16
P=:17
CX=:16i6`
	..STKR=i =10		
	RADIX 8
i@	..STKN==0
	IRP i`A,<
	  .STKV1 (jA)>
	JSP .A16,.j XSTKS		;Call intej@rnal routine for j`allocation
	 EXPk ..STKN		;Size ofk  block to allocatk@e
	RADIX ..STKR
	DEFINE ENDSV.<.lENSV1 <A>>
   NSV1 <A>>
   gR~  M,j
	..STR0 M (..DPB,A,B,<C>)DPB,A,B,<C>gV \(%bOP%%IA	(A,B,SUB,ADD)(Ai6tP u /,
	..STR1 u@(..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` y/J
	..STR1 y (..TYNN,,<A>,<B>,..STR3)A>,<Bi7p Oh5
	HRROI .PAC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..STR1 (..TY,C,<A>,<B>,..STR3)A>,iF 02
	    ..S TR1 (..TY,CA,<A>,<B>,..STR3)A>iFP @0&
	    ..S`TR1 (..TY,CE,<A>,<B>,..STR3)A>iF`  0,
	    ..S@TR1 (..TY,CN,<A>,<B>,..STR3)A>iFp z`/X
	    ..S{TR1 (..TY,N,<A>,<B>,..STR3)A>,iFt }/j
	    ..S} TR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP {@/^
	    ..S{`TR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` | /d
	    ..S|@TR1 (..TY,NN,<A>,<B>,..STR3)A>iFx }`/p
	    ..S~TR1 (..TY,O,<A>,<B>,..STR3)A>,iF| 0
	    ..S TR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P ~@/v
	    ..S~`TR1 (..TY,OE,<A>,<B>,..STR3)A>iF}`  /|
	    ..S@TR1 (..TY,ON,<A>,<B>,..STR3)A>iGP `0
	    ..STR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT 0
	    ..S TR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP @0
	    ..S`TR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU`  0
	    ..S@TR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ s`70
	..TRR==t10		
	RADIX 8
	t ..NV==1			
	IRP t@A,<
	  .TRV1 (t`A)>		
	JSP .A16,u.XTRST		
	uEXP .u .NV-1		;Size of bu@lock to allocate
	RADIX ..TRR		
v	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib >(#r
		..TX(C,A,<B>)..TX(Cib ?h#~
		..TX(CA,A,<B>).TX(CibP >h#v
		..TX(CE,A,<B>).TX(Cib` ?(#z
		..TX(CN,A,<B>).TX(Cibp 8(#B
		..TX(N,A,<B>)..TX(Nibt 9h#N
		..TX(NA,A,<B>).TX(NibtP 8h#F
		..TX(NE,A,<B>).TX(Nibu` 9(#J
		..TX(NN,A,<B>).TX(Nibx :(#R
		..TX(O,A,<B>)..TX(Oib| ;h#^
		..TX(OA,A,<B>).TX(Oib|P :h#V
		..TX(OE,A,<B>).TX(Oib}` ;(#Z
		..TX(ON,A,<B>).TX(OicP <(#b
		..TX(Z,A,<B>)..TX(ZicT =h#n
		..TX(ZA,A,<B>).TX(ZicTP <h#f
		..TX(ZE,A,<B>).TX(ZicU` =(#j
		..TX(ZN,A,<B>).TX(Zk:*g UH5.
%%FOO==Uha
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; 8]m$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  !x<^L<-<<A>_<^L<A>>>-1>>>q
fC@ h 6B
	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 &T
	A:&@ M`,|
	..TSIZ N(..PST,C)
	.CASN E ..PST,<<
		MOVN@EM A,B>,<
		HRN`RM A,B>,<
		HROLM A,B>,<
		DPO B A,[POINT WID(<O@C>),B,POS(<C>)]>>B,POS(<C>):<;Y ((v
   DEFINHE ..CNS2 (NEW,OLDh)<
	  OLD>			
	..CNS ()>			
	:L;Y 
(n
   DEFIN
(E ..CNS (ARG)<
	
H..CNS2 <ARG>,>

h
 (DEFINED..CNS2
	DEF..CNS (ARG)<
	<O..CNS2><ARG>,
   OLD'NEW>>>
   :Mi D 42
 DEFINE D@ELSE. <
	..TAGE D`(JRST,)		
	..TAGEF (,<:!>)		
	SYNE  ..TAGE,..TAGF	
E@   DEFINE ELSE. <E`....U>>	

 DEFIFNE ENDIF. <
	..TF AGF (,<:!>)		
	..RSDF>			
   .:TH q/
	..JNA3 (A,C,D)JNA3 :TI q@/
	..TSAC q`(..ACT,C)
	.IF0r ..ACT,<
	  SETCr M .SAC,C	
	  JXr@E (.SAC,D,<B>)>r`,<	
	  JXO (C,D,<B>)>O (C,:TP d@.>
	..TSAC d`(..ACT,B)	
	.IFe0 ..ACT,<
	  ..Te SIZ (..PST,C)	
e@	  .CASE ..PST,<<e`
		SKIPN B	
		fJRST A>,<
		HRRf Z .SAC,B	
		JUMf@PE .SAC,A>,<
		f`HLRZ .SAC,B	
		gJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<g`A>)>>>,<
	  JXE (B,C,<A>)>E:U` i.b
	..TSAC i (..ACT,B)	
	.IFi@0 ..ACT,<
	  ..Ti`SIZ (..PST,C)
	j  .CASE ..PST,<<
		SKIPE B	
		Jj@RST A>,<
		HRRZj` .SAC,B	
		JUMPkN .SAC,A>,<
		Hk LRZ .SAC,B	
		Jk@UMPN .SAC,A>,<
k`		MOVE .SAC,B	
l		JXN (.SAC,C,<l A>)>>>,<
	  JXN (B,C,<A>)>N :Uh) n .|
	..TSAC n@(..ACT,B)
	.IF0n` ..ACT,<
	  SETCoM .SAC,B	
	  JXo N (.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@ F,>
	..TSIZ F (..PST,C)
	.CASF@E ..PST,<<
		MOVF`E A,B>,<
		HRRGZ A,B>,<
		HLRG Z A,B>,<
		LDBG@ A,[POINT WID(<G`C>),B,POS(<C>)]>>B,POS(<C>)]:dHR I,d
	..TSIZ I (..PST,C)
	.CASI@E ..PST,<<
		MOVI`E A,B>,<
		HRRJE A,B>,<
		HLRJ E A,B>,<
		JSPJ@ .SAC,[LDB A,[POJ`INT WID(<C>),B,KPOS(<C>)]
			  K ..MSK==MASK.(WID(K@C),35)
			  TXNK`E A,LFTBT.(..MSKL)	
			  TXO A,^L -..MSK	
			  PURL@GE ..MSK
			  JRST (.SAC)]>> JR:}i1 p('
	A==<<<pH-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx ]`=tIFE 10-8, ^  <.%AC!<B>>+ ^ 			     IFE 10-^D^@10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 4J
	.POPX;LH yH'\
	IFNDEF yhC,<PRINTX ?C ISz NOT DEFINED
	  z(A (<B>,<D>,.FWzHORD)>	
	IFDEF Czh,<
	IFNDEF %C,<{
	  A (<B>,<D{(>,C)>	
	IFDEF %{HC,<
	  %C (A,<B>,<D>,C)>>;LH |(

	..NS==0|(			
	IRP C,<..N|HS=..NS+1>	
	IFE |h..NS,<PRINTX ?EMP}TY STRUCTURE LIST}(, A>
	IFE ..NS-}H1,<		
	  ..STR0 }h(A,<B>,<C>,<D~>)>
	IFG ..NS-1,~(<		
	..ICNS			
~H	..CNS (<E (A,<~hB>,,>) 
	IRP C,<		
	  IFNDEF (C,<PRINTX C NOT HDEFINED>
	  IFDEhF C,<
	  IFNDEF %C,<
	  ..CNS ((<,C,D>)>	
	  HIFDEF %C,<
	  %hC (..STR2,,<D>,C)> 
	  ..CNS ((<)>)		
	  ..GCNSH		
	  ..ICNS		
h	  ..CNS (<E (A,<B>>) 
	  IFND(EF %C,<
	  ..CNHS (<,C,D>)>	
	h  IFDEF %C,<
	  %C (..STR2,,<D(>,C)>>> 
	..CNSH (<,,)>)		
	..GCNS>)>)		
	..GC;LI ( 
	..CNS (<,C,B>).CNS (;LI H(6

	IFDIF <hD><F>,<
	  IFNB <D>,<
	    A( (<B>,D,..MSK)	H
	    IFNB <F>,h<PRINTX C AND E ARE IN DIFFERENT( WORDS>>
	  ..MSHK==0>		
	IFNB <hF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ ((F

	IFDIF <HD><F>,<	
	  IFhNB <D>,<
	    A (<B>,D,..MSK)(>	
	  ..MSK==0>	H	
	IFNB <F>,<
h	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ 	((\

	IFDIF <	HD><F>,<	
	  IF	hNB <D>,<
	    I
FNB <F>,<		
		
(A1 (B,D,..MSK)>
H 
	    IFB <F>,
h<		
		A2 (B,D,..MSK)>> 
	  ..(MSK==0>		
	IFNB H<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU @0`
	SYN END`BK.,a
	.PSHX <

	 SYN a,ENDBK.> SYN a,ENDBK.>;i F`4H
	SYN ELSGE.,a
	SYN ENDIFG .,b
	SYN ..TAGFG@,c
	SYN ..TAGE,G`d
	.PSHX <
	  HSYN a,ELSE.
	  H SYN b,ENDIF.
	 H@ SYN c,..TAGF
	H`  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k @1

	SYN OD.`,a
	SYN LOOP.,b
	SYN TOP.,c
 	SYN EXIT.,d
	S@YN ENDLP.,e
	.P`SHX <
	 SYN a,OD.
	 SYN b,LOOP .
	SYN c,TOP.
	 SYN d,EXIT.
`	 SYN e,ENDLP.> SYN e,ENDLP.>;$r 3r....Uk4;$s 3p....Ui2;&` X-P
	..TSIZ X (..PST,C)
	.IF0X@ ..PST,<		
		SETX`CMM B>,<	
	Y ..YTSAC (..ACT,B)	
	Y@.IF0 ..ACT,<
		MOVX .SAC,C
Y`		XORM .SAC,B>,<Z
		..TX(C,B,C)>>..TX(C,B,C);&` T@-6
	..TSIZ T`(..PST,C)
	.CASUE ..PST,<<
		SETU OM B>,<
		HLLOSU@ B>,<
		HRROS U`B>,<
	  ..TSAC (V..ACT,B)
	  .IFV 0 ..ACT,<
		MOVXV@ .SAC,C
		IORM V`.SAC,B>,<
		..TX (O,B,C)>>>T;&@ P`-
	..TSIZ Q(..PST,C)	
	.CAQ SE ..PST,<<
		SEQ@TZM B>,<	
		HLLQ`ZS B>,<	
		HRRZRS B>,<	
	  ..TSR AC (..ACT,B)	
	R@  .IF0 ..ACT,<
	R`	MOVX .SAC,C	
	S	ANDCAM .SAC,B>,S <
		..TX (Z,B,C)>>>TX (Z,B,;&81 lH&n
	A==0		lh	
	..TSA1==<Z Bm>		
	.IF ..TSA1,m(ABSOLUTE,<	
	  ImHFE ..TSA1&^O77777mh7777760,<A==1>> 
	60,<A==1>> ;&:= k&`
	A==3		k(	
	IFE <B>+1,<kHA=0>	
	IFE <B>-kh^O777777,<A==1> l
	IFE <B>-^O777777B17,<A==2>7;&;Q n(&~
	A==0		nH	
	..TSA1==0		
nh	IRPC C,<
	  ..oTSA1=..TSA1+1
	oo( IFE ..TSA1-B,<
	   IFIDN <C><ohD>,<
		A==1>		
	;'STOPI>>		

   ..TX14==C			
4H.IFN 4(..TX1,ABSOLUTE,<
	TDA B,[C]>
4h   .IF ..TX1,ABSO5(LUTE,<		
	..TX2=5=0		
	IFE <..TX15H&^O777777B17>,<
5h	  ..TX2==1		
	 6 TRA B,..TX1>
6(	IFE ..TX2,<		
	6HIFE <..TX1&^O77776h77>,<
	  ..TX2==71		
	  TLA B,(7(..TX1)>>
	IFE ..7HTX2,<		
	  IFE <7h<..TX1>B53-^O7777877>,< 
	    ..TX@(3 (A,B)>>	
	IF@HE ..TX2,<		
	  I@hFE <..TX1+1>,<	
A	    ..TX4 (A,BA()>>
	IFE ..TX2,<AH		
	  TDA B,[..TX1]>	
  >,[.;'` B$"
	IFIDN <B(A><Z>,<		
	  ..BHTX2==1
	  ANDI BhB,^-..TX1>	
	IFICDN <A><O>,<		
	C(  ..TX2==1
	ChORCHCMI B,^-..TX1>	
	IFIDN <A><C>,<D		
	  ..TX2==1
D(	  EQVI B,^-..TX1>QVI B,^-..TX;' Dh$0
	IFIDN <EA><NN>,<
	  ..TE(X2==1
	  CAIN BEH,0>		
	IFIDN <AEh><NE>,<
	  ..TX2F==1
	  CAIE B,0>
	  CAIE B,0;' @0L
	..TSAC `(..ACT,B)	
	.IF	0 ..ACT,<
		PRIN	 TX ?TQA - B NOT	@ IN AC>,<
		TXA B,C>
		TXA;'R v/D
	..TSAC v (..ACT,B)	
	.IFv@0 ..ACT,<
	  ..Jv`X1==C
	  .IF0 <w ..JX1-1B0>,<
		SwKIPGE B>,<
	   w@ .IF0 <..JX1+1>,<w`
		SKIPE B>,<
x		MOVE .SAC,B
	x 	TXNE .SAC,C>>>,x@<
		TXNE B,C>
		TXNE B,C>;'W y`0@
	..TSAC z(..ACT,B)	
	.IFz 0 ..ACT,<
	  ..Jz@X1==C
	  .IF0 <`..JX1-1B0>,<
		SKIPL B>,<
	@   .IF0 <..JX1+1>,<
		SKIPN B>,<
	`	MOVE .SAC,B
		TXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  p8
	.ACV2 (A)
	.ACV2 (d@ 08=
   IFDEFP A,<.IF A,SYMBOpL,<PRINTX ACVAR A ALREADY DEFINED0>>
	A==.FPAC+..PNAC	
	$A==A		
	IFB <B>,<..NAC=..NAC+1>
	IFNB 0<B>,<
	...X==BP
	IF2,<.IFN ...Xp,ABSOLUTE,<PRINTX ?ACVAR A, B is0 not absolute>>
P	..NAC=..NAC+...X>NAC=..NAC+...Xd` 8M
	IFG A-0.NPAC,<PRINTX ?TOPO MANY ACS USED>
	IFLE A-4,<
	 	 JSP .A16,.SAVA>	0	
	IFG A-4,<
		P  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; .`;4
	  IFIDN/ <A><.>,<
		XMO/ VEI .A16,B	
		P/@USH P,.A16>
	  I/`FDIF <A><.>,<
	0  .IFATM <A>,.BL0 F4	
	  .BLF1==0	0@	
	  IFN .BLF4,<0`		
	    .IF %A,1MACRO,<	
		.BLF11 ==1>	
	    IFNB 1@<B>,<
		.BLF1==1`1>	
	    IFN .BL2F1,<		
		LOAD .A2 16,A,B
		PUSH 2@P,.A16>>
	  IFE 2`.BLF1,<		;IF WASN3'T A STRUCTURE RE3 F,
	    IFN .BLF3@4,<		
	     .BLF3`2==<<Z A>&17B17>4-<P>B17 
	      4 .IF .BLF2,ABSOLUT4@E,< 
	       IFE4` .BLF2,<		
	    5   .BLF1==1		
	 5       .BLF3==<Z 5@A>&777777
		PUSH5` P,.BLF3-..NA(P)>6>>> 
	  IFE .BLF6 1,<		
		PUSH P,6@A>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 . :r
	.BLCL1 A
	.BLCL1 
f=( + :\
	DEFINE +@A<-^OB(.FP)>
	$A==<Z A>>
	9  i&R
	..CSN==i(A
	..CSC==0
	IiHRP B,<
	IFE ..CihSN-..CSC,<
	  STjOPI
	  ..CAS1 (j(B)>
	..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 (!		
	XLISTH
	LOC 0
	COPYRTh A
     .IFN .,ABSOLUTE,<PRINTX (?.CPYRT, COPYRIGHHT IS NOT ABSOLUTEh>
     IFGE .-^O22,<PRINTX %COPYR(IGHT DOESN'T FIT HIN SINGLE REL BLOhCK>
	RELOC
	LIST
	SALL

	LIS,<H ]@-t
	..PST==]`C&<-C>
	.IF0 .^.PST-1,<
		SOS ^ B>,<	
		MOVX .SA^@C,-..PST 
		ADDM .SAC,B>		ADDMtH 
8S
	IRP A,
0<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 
p8W
	.ENAV3 (A)
	.ENAV3 tI 08[
	PURGE A,A
  PURGE t,h ,:b
	IRP A,, <
   DEFINE A<....U>>FINE A<.v=H q`7
	IRP A,r<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I r@7
	.ENSV3 (A)
	.ENSV3 v=I s7
	DEFINE A<....U>EFINE vI9A  vI9~+H $H"$
	A (\..FORN)
	A (\..~. ".
	A BP `P \Q X=|RQ &2 gh&D
	..IFT==hA		
	IFE ..IFT,h(<
	B
	..IFT==0hH>		
	IFN ..IFT,<
	C>N ..IFT,<&4 7;L
	IRPC A7 ,<
	B==0
	IFGE7@ "A"-"A",<IFLE "7`A"-"Z",<B=1>> 
	IFGE "A"-"0",<8 IFLE "A"-"9",<B8@=1>>
	IFE "A"-"8`%",<B=1>
	IFE "9A"-"$",<B=1>
	9 IFE "A"-".",<B=9@1>
	IFE B,<STOPI>>IFE B,<STOP&t<H [ -b
	..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?=	 b.
	..TSIZ b (..PST,C)
	.IF0b@ ..PST,<
		A Bb`>,<	
		..LDB .SAcC,B,C
		A .SAc C
		..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`4^
	.PSHX1 (.POPX2).PSHX1 B~	 L 4b
	.POPX4 A
	.POPX4 B~	 M 4p
	A
   M@DEFINE .PSHX1 (WCM`H,STUFF)<
	WCH (N<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 L`4f
	.POPX3 B
	.POPX3 C I`4N
	.PSHX1 (.PSHX2,<A>)1 C J 4R
	A (<B>)
	A (<BC	 J`4Z
   DEFINKE .PSHX1 (WCH,STUK FF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z !("
<<<A>&<B!H>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u C,&
<IFE <<FC ILIN.(<A>)&<^-AC@>>>,<A>>!<IFN <<C`FILIN.(<A>)&<^-DA>
>><<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@6d
	.STKV2 (A)
	.STKV2 O%=I m6|
	IFB <Bm >,<..STKN==..STKNm@+1>
	IFNB <B>,<m`
	...X==B
	IF2n,<.IFN ...X,ABSOLn UTE,<PRINTX ?STKVn@AR A, B is not n`absolute>>
	..SToKN==..STKN+...X>
	..STKQ==..STKN+o@1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I p7

   IFDEFp  A,<.IF A,SYMBOp@L,<PRINTX STKVAR p`A ALREADY DEFINEqD>>
	DEFINE A<-q ^OB(P)>
	$A==<Z A>>
	$A==<Sd  v@74
	.TRV2 (A)
	.TRV2 (Sd@ w7H
	.TRV3 (w A,\..NV)	
	IFB w@<B>,<..NV=..NV+1w`>
	IFNB <B>,<
x	...X==B
	IF2,<x .IFN ...X,ABSOLUTx@E,<PRINTX ?TRVAR x`A, B is not absyolute>>
	..NV=..NV+...X>..NV=..Sd` y@7V
   IFDEFy` A,<.IF A,SYMBOzL,<PRINTX TRVAR z A ALREADY DEFINEDz@>>
	DEFINE A<^Oz`B(.FP)>
	$A==<Z A>>
	$A==<b\| (!j
	.XCREF
	.XCRF1 <..ACT,.h.CSC,..CSN,..IFT,..JX1,..MSK,..MX1(,..MX2>
	.XCRF1 H<..NAC,..NRGS,..NhS,..NV,..PST,..STKN,..STKQ,..STKR>(
	.XCRF1 <..TRR,H..TSA1,..TX1,..TXh2,.FP,.FPAC,.NAC,.SAC,.SAV1>
	.XC(RF1 <.SAV2,.SAV3,HPOINTR,POS,WID,..hCAS1,..CNS,..CNS2>
	.XCRF1 <..DPB(,..GNCS,..ICNS,..HJE,..LDB,..STR0,.h.STR1,..STR2>
	.XCRF1 <..STR4,..T(QO,..TQZ,..TSAC,.H.TSIZ,..TX,..TY,.hACV1,.ACV2>
	.XCRF1 <.ACV3,.CASE,(.DECR0,.IF0,.INCRH0,.OPST1,.OPST2,.hSTKV1>
	.XCRF1 <.STKV2,.STKV3,.TR(V1,.TRV2,.TRV3>
	.CREF
   3>
b)H h!p
	IRP A,<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP