Google
 

Trailing-Edge - PDP-10 Archives - bb-4157j-bm_fortran20_v11_16mt9 - fortran-tools/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,Ra@P C4@ X8
	..NAC==x0		
	IRP A,<
	  .ACV1 (A)>		
8	.ACV3 (\..NAC)		X
	DEFINE ENDAV.<.ENAV1 <A>>V.<C' YP%MOP%%IA	(A,B,ADD,SUB)(AC:$S@ <3`
	..TAGF (<JUMPN A,>,) C:$s@ =3h
	..TAGF (<JUMPLE A,>,)C:$y' =H3l
	..TAGF (<JUMPL A,>,) C:%C@ >H3t
	..TAGF (<JUMPGE A,>,)C:%I' >3p
	..TAGF (<JUMPG A,>,) C:%c@ <H3d
	..TAGF (<JUMPE A,>,) C:&' @4
	..TAGF @((<JN <A>,<B>,>,)N <A>,<B>,>,C:&G @h4
	..TAGF A(<JE <A>,<B>,>,)E <A>,<B>,>,C:' 0P#
	TXZ A,<^-<B>>TXZ A,C:'	' ?3x
	..TAGF (<JXN A,B,>,)C:'G ?H3|
	..TAGF (<JXE A,B,>,)C:v:g :H3T
	TRNA
	..TAGF (JRST,)	C;< :3P
	..TAGF (JRST,)	..TAGF CO,,@ xh7Z
	..TRR==y10		
	RADIX 8
	y(..NV==1			
	IRP yHA,<
	  .TRV1 (yhA)>		
	IFG ..NV-z5,<PRINTX ?TOO MAz(NY ARGUMENTS: A>zH
	JSP .A16,.ASSEzhT		
	RADIX ..TRR{		
	DEFINE ENDAS{(.<.ENSV1 <A>>
	.ENSV1 <A>>
	E>= 
	IFN FTSHOW,..LOC==.

(
DEFINE	WORD(NAM,HNUMB<1>),<
	IFN h<..MSK>,<..OFF==..OFF+1> 

	..MS(K==0		
	FIELDM(NHAM,<.FWORD>)	

h	..MSK==0		
	..OFF==..OFF+NUMB	
(
>

DEFINE	NXTHWRD(NUMB<1>),<
	h..MSK==0
	..OFF=..OFF+NUMB

>
(
DEFINE	FILLER(NHUM),<
	..FLG==POhS(..MSK)
	IFE ..MSK,<..FLG==-1>
(	IFG <^D<NUM>-<^DH35-..FLG>>,<PRINThX ?FILL TOO BIG IN A STRUCTURE>
(	...MSK==MASK.(^DH<NUM>,<..FLG+^D<NhUM>>)
	IFN FTSHOW,<
	  PHASE ..O(FF
	  EXP ...MSKH
	>
	..MSK==..MhSK!...MSK
>



DEFINE	HWORD(n(am),<
	..FLG==0	H	
	IFE ..MSK&.LHhALF,<FIELDM(nam,.LHALF)
			  ..FL(G==1>
	IFE ..FLGH,<..MSK==..MSK!.LhHALF
		   IFE ..MSK&.RHALF,<FIELD(M(nam,.RHALF)
		H		     ..FLG==1>
		   IFE ..FLG,<NXTWRD
			      (FIELDM(nam,.LHALFH) >
		  >
>

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

	IFB H<POS>,<IFB <SIZ>,h<
	  ...MSK==.RTMSK(<<^-<<..MSK>>(>>) 
	  IFE ...MHSK,<..OFF==..OFF+h1 
	    ..MSK==0		
	    ...MSK==(-1
	  >
	  FIELHDM(NAM,<...MSK>)	h
	..FLG==-1		
	>>

	IFNB <SI(Z>,<.SIZ==^D<SIZ>H> 

	IFNB <POS>h,<		
	  FIELDM(NAM,MASK.(.SIZ,POS()) 
	  ..FLG==-1H		
	  ..BITS==MAhSK.(.SIZ,POS) 
	>

	IFE ..FLG,<(IFGE <^D<.SIZ>-^DH36>,< 
	  WORD(NhAM,<^D<.SIZ>/^D36>) 
	  IFN <<^D<(.SIZ>-<^D<.SIZ>/^HD36>*^D36>>,<	
	h    FIELD(...,<<^ D<.SIZ>-<^D<.SIZ> (/^D36>*^D36>>) 
 H	  >

	  ..FLG= h=-1		
	>>

	IF!E ..FLG,<		
	  .!(.BITS==MASK.(^D<.!HSIZ>,<^D<.SIZ>-1>!h) 

	  REPEAT <"^D36-^D<.SIZ>+1>,"(< 
	    IFE ..FL"HG,<	
	      IFE "h<..BITS&..MSK>,< #
			..MSK==..MSK#(!..BITS 
		..FLG#H==-1 
	       > #h

	    IFE ..FL$G,..BITS==..BITS_$(<-1> 
	    >
	 $H >

	IFE ..FLG,$h<		
	  ..BITS==M%ASK.(^D<.SIZ>,<^D%(<.SIZ>-1>) 
	  .%H.OFF==..OFF+1	
	%h  ..MSK==..BITS		&
	>

	MSKSTR(&(A'NAM,\..OFFC,..&HBITS) 
	A.'NAM=&h=..OFF
	IFN FTSH'OW,<
	  PHASE	A'(.'NAM
	  EXP	A''HNAM
	>>

	..OL'hD==..BITS		
	...(OLD==..BITS		

((>

DEFINE	BIT(N(HAM),<
	..BITS==L(hFTBT.(..OLD)	

)	IFE ..BITS,<PRIN)(TX ?NO ROOM FOR B)HIT IN LAST FIELD>)h

	A%'NAM==..B*ITS_<-<^D35-POS(.*(..OLD)>> 
	A.'N*HAM==..OFF		

	M*hSKSTR(A'NAM,\..O+FFC,..BITS) 
	I+(FN FTSHOW,<
	  P+HHASE ..OFF
	  EX+hP A'NAM
	>

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

>
,H
DEFINE	FIELDM(NA,hM,MASK),<
	IFN M-ASK&..MSK,<	
	  -(..MSK==0		
	  ..-HOFF==..OFF+1
	>h

	..MSK==..MSK!.MASK	

	MSKSTR(.(A'NAM,\..OFFC,M.HASK) 
	A.'NAM==.h..OFF
	IFN FTSHO/W,<
	  PHASE	A./('NAM
	  EXP	A'N/HAM
	>
>

DEFI/hNE ENDSTR(LENNAM<0LEN>,LSTNAM<LST>)0(,<

	IFN ..MSK,0H<..OFF==..OFF+1> 0h

	A.'LSTNAM==1..OFF	

	IFN FT1(SHOW,DEPHASE

	1H..LOK==..LOK+1
	1hIFN ..LOK,<PRINTX2 ? MISSING BEGSTR2(>

	IF2,<
	  I2HFDEF ...MSK,<SUPP2hRESS ...MSK>
	  3IFDEF ..BITS,<SUP3(PRESS ..BITS>
	 3H IFDEF .SIZ,<SUPP3hRESS .SIZ>
	  IF4DEF ..MSK,<SUPPRE4(SS ..MSK>
	  IFD4HEF ..OFF,<SUPPRES4hS ..OFF>
	  IFDE5F ..FLG,<SUPPRESS5( ..FLG>
	  IFDEF5H ..LOK,<SUPPRESS 5h..LOK>
	  IFDEF 6..LOC,<SUPPRESS .6(.LOC>
	  IFDEF .6H.OLD,<SUPPRESS ..6hOLD>
	  IFDEF ..7.OLD,<SUPPRESS ..7(.OLD>
	>

	IF17H,<
	  IFDEF ...M7hSK,<.XCREF ...MSK8>
	  IFDEF ..BIT8(S,<.XCREF ..BITS>8H
	  IFDEF .SIZ,<8h.XCREF .SIZ>
	  9IFDEF ..MSK,<.XCR9(EF ..MSK>
	  IFD9HEF ..FLG,<.XCREF 9h..FLG>
	  IFDEF :..OFF,<.XCREF ..O:(FF>
	  IFDEF ..L:HOK,<.XCREF ..LOK>:h
	  IFDEF ..LOC,;<.XCREF ..LOC>
	;(  IFDEF ..OLD,<.X;HCREF ..OLD>
	  I;hFDEF ...OLD,<.XCR<EF ...OLD>
	>
<(
	PURGE WORD,NXTW<HRD,FILLER,HWORD,F<hIELD,BIT,FIELDM
=
	A.'LENNAM==..=(OFF-B
	IFN FTSH=HOW,<RELOC ..LOC>>=h



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

	>HIFDEF ..LOK,<IFL >h..LOK,<PRINTX ? N?EW BEGSTR WITHOUT?( ENDSTR>>

	..LOK==-1


	..L?^(g0?+BEG
	  E2 *:X
	..NA==0*(			
	IRP B,<
	*H  .BLCL2 B>		
	*hPUSH P,[..NA+1,,.+.NA+1]	
	PUSHJ P,A		
   SHJ PE2|:g h0F
	..SVBK			
	XMOVEI .A16,(a	
	PUSH P,.A16H
  DEFINE ENDBK.h <
	RET			
a:!				
	.POPX>:!E3XG $H:@	
	..TRR=$h=10		
	RADIX 8		%	
	..NA==2			
	%(IRP A,<
	  ..NA%H=..NA+1>		
	IRP %hA,<
	  .BLSU1(&A,\..NA)	
	  ..N&(A=..NA-1>
	..NV=&H=1			
	IRP B,<
	  .TRV1 (B)>		'
  DEFINE ENDBS.'( <.ENBS1 <A>
		'H.ENSV1 <B>> 
	J'hSP .A16,.ENTER
	(..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' Xp5O(
W0.==A
W1.==B				;INITYXIALIZE BREAK MASKYx
W2.==C
W3.==D
==C
W3.==@5=0?/0B,<
	?10QAB (?50    ..SEJZ SP51	..V22==aSp
	..V1==a
	IFNTB <B>,<..V22==BT0>
REPEAT ..V22-<TPa>+1,<	
	%%W==.Tp.V1/^D32	
	%%X==U..V1-%%W*^D32	
	U0IFE C,BRKC1 \"<%UP%W+"0">	
	IFN CUp,BRKC2 \"<%%W+"0"V>
	..V1==..V1+1
		   >
.V1+1 VP55	WA.==WA.!<1B<%%X>>
AEJ\4@ W5;	WA.==WAW0.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: R5
%%FOO==R0a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g Z85]
	BRINI. AZX,B,C,D	
	IRPCZx E,<	UNBRK. "E"[>	
	IRPC F,<	BR[8KCH. "F">	
	EXP[X W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +G@ S0%OP%%CA (A,B,)OP%%CA (AGD Vp%7OP%%CA (A,B,A)P%%CA (AGDP Tp%'OP%%CA (A,B,E)P%%CA (AGDp U0%+OP%%CA (A,B,G)P%%CA (AGDy  Up%/OP%%CA (A,B,GE)%%CA (AGE@ Sp%OP%%CA (A,B,L)P%%CA (AGEI  T0%#OP%%CA (A,B,LE)%%CA (AGE` V0%3OP%%CA (A,B,N)P%%CA (AG?Z 
P ]
	ASCIZ /
p
COPYRIGHT (C) DIGITAL EQUIPMENT 0CORPORATION A.
PALL RIGHTS RESERVED.
/TS RESERVI  ZH-V
	..STR0 Zh(.DECR0,,<A>,<B>)CR0,,<A>,<BI6= np'
	A==<-1oB<C>+1B<C-D>> o0
	IF1,<IFDEF %AoP,<PRINTX ?A ALREopADY DEFINED>>
	DpEFINE %A (OP,AC,p0Y,MSK)<
	$A==<ZpP B>		
	OP (<AC>,B'Y,MSK)><AC>I'7 [P%]OP%%IN	(A,B,DIV)%IN	(AI<p 
(0d
	..SVLD	
H		
a:!				
  D
hEFINE OD. <
b:!				
	.POPX>			
  DEFINE LOOP. <H
	JRST a>		
  hDEFINE TOP. <a>	
	
  DEFINE ENDLP
(. <b>		
  DEFIN
HE EXIT. <
	JRST b>T. <
	JRST IKH1 x:
..TMSK==..MASK
..TNAC==.8.NAC-1
REPEAT ..XNAC,<
   IFN ..TxMSK,<
	..NUM==^L<..TMSK>
	..TMSK8==..TMSK-1B<..NUMX>
	IFE ..TMSK & x1B<..NUM+1>,<
		MOVE ..NUM,-..TNA8C(P)
		..TNAC==.X.TNAC-1>
	IFN ..xTMSK & 1B<..NUM+1>,<
		DMOVE ..NU8M,-..TNAC(P)
		.X.TNAC==..TNAC-2
x		..TMSK==..TMSK- 1B<..NUM+1>>
	>> 8
IFG ..NAC,<ADJSP P,-..NAC>
JSINh1 x9[
IFG ..NAC,<ADJSP P,..NAC>8
..TMSK==..MASK
..TNAC==..NAC-1
REPEAT ..NAC,<
   IFN ..TMSK,<
8	..NUM==^L<..TMSKX>
	..TMSK==..TMSxK-1B<..NUM>
	IFE ..TMSK & 1B<..NU8M+1>,<
		MOVEM .X.NUM,-..TNAC(P)
x		..TNAC==..TNAC-1>
	IFN ..TMSK &8 1B<..NUM+1>,<
	X	DMOVEM ..NUM,-..xTNAC(P)
		..TNAC==..TNAC-2
		..T8MSK==..TMSK-1B<..NUM+1>>
	>>
.K,lz q'
	A==<-1q0B<C>+1B<C-D>> qP
	IF1,<IFDEF %Aqp,<PRINTX ?A ALRErADY DEFINED>>
	Dr0EFINE %A (OP,AC,rPY,MSK)<
	OP (<ACrp>,<@[EP. B'Y]>,MSK)>P. B'Y]>,MK+\Y`p0?sp0?p4p0?s4^p0?pUN.,HK+`p0?p0?|4p0?4`p0?|UNEMK3S@ 3V....UK7<z u0'7
	A==C	uP	
	IF1,<IFDEF %upA,<PRINTX ?A ALRvEADY DEFINED>>
	v0DEFINE %A (OP,ACvP,Y,MSK)<
	OP (<AvpC>,<@[EP. B'Y]>,MSK)>P. B'Y]>,K:$Kg 0f
	OD.K:%G 3X....U
K@p ;H<
	..I==0
	..X==0
	MAKRM.< (..CON,..GET)
	<(..CON <EXIND. ..I<H,>
	IRPC A,<
	<h  ..SC==0
	  IFE= "A"-"@",<..I==1=(
			..SC=1>
	  =HIFE "A"-"(",<..C=hON <,>
			..SC=1>
			..X==1>
	  >(IFE "A"-")",<
	>H    IFE ..X,<PRIN>hTX %UNEXPECTED RI?GHT PAREN IN EP. ?(MACRO>
			..SC=1?H>
	?hIFE ..SC,<
	   ..CON <A>>>@
	IFE ..X,<
	  @(..CON <,0>>
	..C@HON <
>
	..GET
   
>
	..GET
KCm 9H;X
	  DEFIN9hE ..EP. (LOCN,PTE:XT)
	    <PRINTX:( Location 'LOCN'::H PTEXT
	    >
	:h  ..EP.(\.,<A>)
	  PURGE ..EP.
	  URGE ..EP.
KJn9` P05
	ERJMP	[PPTMSG <? A>
		 JSHLT]
A>
		JKbMi A<<<A>B1+<C>B5+<B>>B1+<Kc  Q5
   IF2,<Q0
	IRP A,<
	IFNQPDEF A,<EXTERN A
	SUPPRE%A>>>M&.FaP&FP	(AM6. c&OP%%FP	(A,B,FDVR)FP	(AM2  P!u<<<A>B<POS(<B>)>>&<B>>M2$*g `6'
	..XX==<`8FLD(A,CM%FNC)>+`XB+<Z G>
   IFNB`x <D>,<..XX=CM%HPaP!..XX>
   IFNB a8<E>,<..XX=CM%DPPaX!..XX>
   IFNB <axF>,<..XX=CM%BRK!b..XX>
	..XX
   b8IFNB <C>,<C>
 bX  IFB <C>,<0>
 bx  IFNB <D>,<POINcT 7,[ASCIZ D]>c8
   IFB <D>,<IFcXNB <EF>,<0>>
 cx  IFB <E>,<IFNB d<F>,<0>>
   IFNd8B <E>,<POINT 7,[dXASCIZ \E\]>
   dxIFNB <F>,<F>
    <F>,<F>
 M2$HG \5}

	..XX==<\8FLD(A,CM%FNC)>+\XB+<0,,F>
   IFN\xB <D>,<..XX=CM%H]PP!..XX>
   IFNB]8 <E>,<..XX=CM%DP]XP!..XX>
	..XX
]x  IFNB <C>,<C>
^8IFB <C>,<0>
   IFNB <D>,<PO^XINT 7,[ASCIZ D^x]>
   IFB <D>,<_IFNB <E>,<0>>
 _8  IFNB <E>,<POIN_XT 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7. bP&OP%%FP	(A,B,FMPR)FP	(AM7p Mp4s
	HRROI .NAC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@  p"

  DEFINE! e(C)<D>
..FO!0RN==A
REPEAT B!P-A+1,<
	.FORN1 !p(e)
	..FORN=..FORN+1>.FORN=..FM?3@ $"%
  DEFINE$0 %MN1 (B)<C>
	$P..FORN==A		
	.FORN1 (%MN1)
	.FM?@ "p"
  DEFINE# d (B)<C>
  I#0RP A,<
	.FORX1 d,A>
	.FORX1ZMN.b&OP%%FP	(A,B,FSBR)FP	(AMS{PNF@!^O44C==:NJ

	..ERR.=a(0		
	  .BSIZ.=BaH		
	ah.BPOS.=D
	IFN <<A>&<^O<-b1,,770000>>>,<
	b(  MPRNTX(G2BPT,SebXction greater thahhn 12 bits: A)
	i  ..ERR.=1
	i(>
	IFN <<C>&<^O<7iH77740,,0>>>,<
	 ih MPRNTX(G2BPT,Bitjs 0 - 12 non-zeroj( in address fieldjH: C)
	  ..ERR.=jh1
	  >
	IFN <<kE>&<-1,,0>>,<
	 k( MPRNTX(G2BPT,BitkHs 0-17 non-zero ikhn optional field:l E)
	  ..ERR.=1l(
	  >
	IFN <.BSlHIZ.&<^O<-1,,77770lh0>>>,<
	  MPRNTXm(G2BPT,Bytesize gm(reater than 6 bitmHs: B)
	  ..ERR.mh=1
	  >
	IFN <.nBPOS.&<^O<-1,,777n(700>>>,<
	  MPRNnHTX(G2BPT,Byte offnhset greater than o6 bits: D)
	  .o(.ERR.=1
	  >
	IoHFN ..ERR.,<-1,-1,oh-1>		
	
	IFE ..pERR.,<
	  IFDIF p(<D><>,<<<POINT .pHBSIZ.,E,.BPOS.>!ph1B12>&<^O<777740,q,-1>>>
	rIFIDN q(<D><>,<<<POINT .qHBSIZ.,E>!1B12>&<qh^O<777740,,-1>>>
	    
	    <<<r(C>_<^O14>>&<^O<37rH0000,,0>>!<<C>&<rh0,,-1>>!<<A>_<^Os22>>>
	  >
	PURs(GE ..ERR.,.BSIZ.,.BPOS.
	BSIZ.,A>0		GENBPON{  Dh<N
	..ERR.=E0		
	IFN <<A>&<E(^O<-1,,770000>>>,EH<
	  MPRNTX(GFIWEhM,Section greaterF than 12 bits: AF()
	  ..ERR.=1
	FH  >
	IFN <<B>&<Fh^O<777740,,0>>>,<G
	  MPRNTX(GFIWMG(,Bits 0 - 12 non-GHzero in address fGhield: B)
	  ..EHRR.=1
	  >
	IFNH( ..ERR.,<-1,-1,-1HH>	
				
	IFE ..HhERR.,<
	  <<<B>I_<^O14>>&<^O<3700I(00,,0>>!<<B>&<0,IH,-1>>!<<A>_<^O22Ih>>>>
	PURGE ..ERR.
	PURGE ..ERSNn \%aOP%%IN	(A,B,IDIV)IN	(AS)` %H28
	JUMPN %hA,b		
	..SVDF		&	
   DEFINE ..TA&(GF (INST,PCT)<
	&HINST b'PCT>		
 &h  DEFINE ..TAGE ('INST,PCT)<
	INST c'PCT>		
	STS.:g $(2(
	PRINTX $H% IFESK. should b$he changed to IFNJ%E.
	IFNJE. <A>.
	IFNJE. <A>S9` )H2X
	JUMPLE )hA,b		
	..SVDF	*		
   DEFINE ..T*(AGF (INST,PCT)<
*H	INST b'PCT>		
*h   DEFINE ..TAGE +(INST,PCT)<
	INST c'PCT>		
	SS<S@ +H2h
	JUMPL +hA,b		
	..SVDF		,	
   DEFINE ..TA,(GF (INST,PCT)<
	,HINST b'PCT>		
 ,h  DEFINE ..TAGE (-INST,PCT)<
	INST c'PCT>		
	STSTS@ 1P

   IFB <(BC>,<		
	..SVDHF			
	ERJMPA fh		
	JRST d		
f:!
HDEFINE ..(TAGF (INST,PCT)<
	INST d'PCT>		
   DEFINE ..TAGE (INST,PCT)<
	IN(ST e'PCT>		
	>H
   IFNB <BC>,<h		
	ERJMPA d		
	C
	JRST e
d:!	B
e:!>
ST\G H14

   IFB <hAB>,<		
	..SVDF			
	ERJMP e		(
	JRST c		
e:H!
   DEFINE ..TAhGF (INST,PCT)<
	INST c'PCT>		
 (  DEFINE ..TAGE (HINST,PCT)<
	INSTh d'PCT>		
	>
   IFNB <AB>,<		(
	ERJMP c		
	HB
	JRST d
c:!	A
d:!>
c:!SUc@ !(2
   IFB <!HB>,<		
	..SVDF	!h		
	ERJMPA c
"   DEFINE ..TAGF "((INST,PCT)<
	INS"HT c'PCT>		
   D"hEFINE ..TAGE (INS#T,PCT)<
	INST d#('PCT>		
	>
   I#HFNB <B>,<
	ERJM#hPA c
	B
c:!> c
	B
c:!Sa` /H3
	JUMPGE /hA,b		
	..SVDF	0		
   DEFINE ..T0(AGF (INST,PCT)<
0H	INST b'PCT>		
0h   DEFINE ..TAGE 1(INST,PCT)<
	INST c'PCT>		
	SSdS@ -H2x
	JUMPG -hA,b		
	..SVDF		.	
   DEFINE ..TA.(GF (INST,PCT)<
	.HINST b'PCT>		
 .h  DEFINE ..TAGE (/INST,PCT)<
	INST c'PCT>		
	STSq` 'H2H
	JUMPE 'hA,b		
	..SVDF		(	
   DEFINE ..TA((GF (INST,PCT)<
	(HINST b'PCT>		
 (h  DEFINE ..TAGE ()INST,PCT)<
	INST c'PCT>		
	STSt\g H1Z
	PRINTX h% IFNES. should be changed to IFJE(R.
	IFJER. <A>,<B>FJER. <A>,Su)' H2
   IFB <hA>,<		
	..SVDF			
	ERJMP b
  ( DEFINE ..TAGF (IHNST,PCT)<
	INST hb'PCT>		
   DEF INE ..TAGE (INST, (PCT)<
	INST c'P HCT>		
	>
   IFN hB <A>,<
	ERJMP b
	A
b:!> Sv:g 1
   IFB <(AB>,<		
	..SVDHF			
	TRNA			
	hJRST c		
   DEFINE ..TAGF (INST,(PCT)<
	INST c'PHCT>		
   DEFINE h..TAGE (INST,PCT)<
	INST d'PCT>	(	
	>
   IFNB <HAB>,<		
	JRST hc		
	B
	JRST d
c:!	A
d:!>
c:!	A
d:!>S
S@ 5H3:
	JN <A>5h,<B>,c	
	..SVD6F			
   DEFINE .6(.TAGF (INST,PCT)<6H
	INST c'PCT>		6h
   DEFINE ..TAG7E (INST,PCT)<
	I7(NST d'PCT>		
	ST d'PCT>		
	S 7h3L
	JE <A>8,<B>,c	
	..SVD8(F			
   DEFINE .8H.TAGF (INST,PCT)<8h
	INST c'PCT>		9
   DEFINE ..TAG9(E (INST,PCT)<
	I9HNST d'PCT>		
	ST d'PCT>		
	S< h1p
   IFB <A>,<		
	..SVDF	(		
	JRST b
   HDEFINE ..TAGF (INhST,PCT)<
	INST b'PCT>		
   DEFI(NE ..TAGE (INST,PHCT)<
	INST c'PChT>		
	>
   IFNB <A>,<
	JRST b
	A
b:!> bSDS@ 1H3
	JXN A,1hB,c	
	..SVDF		2	
   DEFINE ..TA2(GF (INST,PCT)<
	2HINST c'PCT>		
 2h  DEFINE ..TAGE (3INST,PCT)<
	INST d'PCT>		
	STSEc@ 3H3(
	JXE A,3hB,c	
	..SVDF		4	
   DEFINE ..TA4(GF (INST,PCT)<
	4HINST c'PCT>		
 4h  DEFINE ..TAGE (5INST,PCT)<
	INST d'PCT>		
	STS7-N [%YOP%%IN	(A,B,IMUL)IN	(AS:  X(-D
	..STR0 XH(.INCR0,,<A>,<B>)CR0,,<A>,<BS? 0#
	TXO A,<B>
	TXO A,Ut@ mh.r
	..STR1 n(..JAN,<d,<C>>,n(<A>,<B>,..STR5)
d:B>,..STR5)U aH.
	..STR1 ah(..JE,<C>,<A>,<B>,..STR3)A>,<U8 f.2
	..STR1f((..JN,<C>,<A>,<B>,..STR3)A>,<U:
	..STR1 kH(..JNA3,<C>,<A>,<B>,..STR4)A>U:~  q/

	..STR1 q((..JNO,<d,<C>>,qH<A>,<B>,..STR5)
d:B>,..STR5)U? jH.V
	..STR1 jh(..JN,<C>,<A>,<B>,..STR4)A>,<UN.,@`p0?mp0?j,p0?m4^p0?jUN.,HUN.,HA  UN.,HUNEM`p0?yp0?v,p0?y4`p0?vUNEMUNEMA  UNEMUNn9hA  UNn9hUb( D0$;
	..JX1==DPB		
	.IFN ..JX1Dp,ABSOLUTE,<PRINTXE B NOT ABSOLUTE
		..JX1==0>
	.IEPF ..JX1,ABSOLUTE,Ep<
	.IF0 <<..JX1>F-1B0>,<	
		JUMPGF0E A,C>,<
	.IF0FP <<..JX1>+1>,<	
Fp	  JUMPE A,C>,<G	
		TXNN (A,..JG0X1)
		JRST C>>>)
		JRST C>>>Ub0 O0%
	..JX1==OPB		
	.IFN ..JX1Op,ABSOLUTE,<PRINTXP B NOT ABSOLUTE
		..JX1==0>
	.IPPF ..JX1,ABSOLUTE,Pp<
	.IF0 <<..JX1>Q-1B0>,<
		JUMPGEQ0 A,C>,<
	..ONEQPB (..BT,B)	
	.IQpF0 ..BT,<
	  SETRCM .SAC,A		
	  R0JXN (.SAC,..JX1,RPC)>,< 
	    TXNNRp A,..JX1	
	    JRST C>>>	    Ubp Gp$W
	..JX1==HB		
	.IFN ..JX1H0,ABSOLUTE,<PRINTXHP B NOT ABSOLUTE
		..JX1==0>
	.IIF ..JX1,ABSOLUTE,I0<
	.IF0 <<..JX1>IP-1B0>,<	
		JUMPLIp A,C>,<
	.IF0 J<<..JX1>+1>,<	
	J0  JUMPN A,C>,<	JP
		TXNE (A,..JXJp1)
		JRST C>>>)
		JRST C>>>Ubx K0$w
	..JX1==KPB		
	.IFN ..JX1Kp,ABSOLUTE,<PRINTXL B NOT ABSOLUTE
		..JX1==0>
	.ILPF ..JX1,ABSOLUTE,Lp<
	.IF0 <<..JX1>M-1B0>,<
		JUMPL M0A,C>,<
	..ONEBMP (..BT,B)	
	.IFMp0 ..BT,<
	  SETCNM .SAC,A		
	  JN0XE (.SAC,..JX1,CNP)>,< 
	    TXNE NpA,..JX1	
	 JRSTC>>>	    JXF
	.BSIZ.=JHA		
	.BPOS.=C
	..ERR.=0		
	IFKN <<B>&<^O<77774K(0,,0>>>,<
	  MPRKHNTX(L1BPT,Bits 0 Kh- 12 non-zero in Laddress field: BL()
	  ..ERR.=1
	LH  >
	IFN <.BSIZ.Lh&<^O<-1,,777700>>M>,<
	  MPRNTX(L1M(BPT,Bytesize greaMHter than 6 bits: MhA)
	N..ERR.=1
	  >
	IFN <.BPON(S.&<^O<-1,,777700NH>>>,<
	  MPRNTX(NhL1BPT,Byte offsetO greater than 6 bO(its: C)
	  ..EROHR.=1
	  >
	
	IOhFN <..ERR.>,<-1,-P1,-1>
	
	IFE <.P(.ERR.>,<
	  IFIDPHN <C><>,<POINT .PhBSIZ.,B>
	  IFDQIF <C><>,<POINT Q(.BSIZ.,B,.BPOS.>QH
	  >
	PURGE ..QhERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOSXJ
	..ERR.=Xh0		
	  .BSIZ.=AY		
	Y(.BPOS.=C
	IFN <<B>&<^O<7YH77740,,0>>>,<
	 Yh MPRNTX(L2BPT,BitZs 0 - 12 non-zeroZ( in address fieldR(: B)
	  ..ERR.=RH1
	  >
	IFN <<RhD>&<-1,,0>>,<
	 S MPRNTX(L2BPT,BitS(s 0-17 non-zero iSHn optional field:Sh D)
	  ..ERR.=1T
	  >
	IFN <.BST(IZ.&<^O<-1,,77770TH0>>>,<
	  MPRNTXTh(L2BPT,Bytesize gUreater than 6 bitU(s: A)
	  ..ERR.UH=1
	  >
	IFN <.UhBPOS.&<^O<-1,,777V700>>>,<
	  MPRNV(TX(L2BPT,Byte off\(set greater than \H6 bits: C)
	  .\h.ERR.=1
	  >
	I]FN ..ERR.,<-1,-1,](-1>		
	
	IFE ..]HERR.,<
	  IFDIF ]h<C><>,<<<POINT .^BSIZ.,D,.BPOS.>!^(1B12>&<^O<777740,^H,-1>>>
	 HIFIDN ^h<C><>,<<<POINT .BSIZ.,D>!1B12>&<(^O<777740,,-1>>>
	    <1B0!<<^O<4_h00037,,-1>>&<B>>`>	
	  >
	PURGE `(..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BPA=@0(B).YN{  AH<"
	..ERR.=Ah0		
	IFN <<A>&<B^O<777740,,0>>>,<B(
	  MPRNTX(LFIWMBH,Bits 0 - 12 non-Bhzero in address fCield: A)
	  ..EC(RR.=1
	  >
	IFNCH ..ERR.,<-1,-1,-1Ch>	
	IFE ..ERR.,<D1B0!<<^O<400037,,D(-1>>&<A>>>	
	PURGE ..ERR.
	PUY$- ?h+~1_<^D35-^L<A>>1_<^D35-^LY>
@ C,
	..STR0 C((..LDB,A,B,<C>)LDB,A,B,<C>Y>
I  F,2
	..STR0 F((..LDBE,A,B,<C>)DBE,A,B,<C[i9Q u[^+' %";
  DEFINE%0 A (STUFF)<
	c%P (<STUFF>,)>

 %p DEFINE c (NEW,O&LD)<
    DEFINE &0A (STUFF)<
	c &P(<STUFF>,<OLD'NEW&p>)>>

  DEFINE 'B <
    DEFINE '0c (NEW,OLD)<OLD>
	A ()>
OLD>[3@ @(,<<<1_<A>>-1>B<B>>_<A>>[8@ p!<1B<<A>-1>-1B<B>><A>-1[>!`  0"<<A>-<<A>/<B>>*<B>>A[?7 'p"q
   ..MX1(==B			
(P.IFN (0..MX1,ABSOLUTE,<
	MOVE A,[B]>
(p   .IF ..MX1,ABSO)LUTE,<
	..MX2==0)0		
	IFE <..MX1>B)P53,<
	  ..MX2==1)p
	  MOVEI A,..M*X1>	
	IFE ..MX2,*0<		
	IFE <..MX1>*PB17,<
	  ..MX2==*p1
	  MOVSI A,(.+.MX1)>>	
	IFE ..+0MX2,<		
	IFE <<.+P.MX1>B53-^O777777+p>,<
	,..MX2==1
	  HRROI A,<..M,0X1>>>	
	IFE ..MX,P2,<		
	IFE <<..M,pX1>B17-^O777777B1-7>,<
	  ..MX2==1-0
	-pHRLOI A,(..-PMX1-^O777777)>> 
	IFE ..MX2,<		
.	  MOVE A,[..MX1]>	
  >,[..MX1[Cm 7(;H
	  DEFIN7HE ..MP. (LOCN,MTE7hXT,PTEXT)<
	    8PRINTX Location '8(LOCN', Macro 'MTE8HXT': PTEXT
	    8h>
	  ..MP.(\.,A9,<B>)
	  PURGE ..MP.
	  URGE [N^= s0''
	A==C	sP	
	IF1,<IFDEF %spA,<PRINTX ?A ALRtEADY DEFINED>>
	t0DEFINE %A (OP,ACtP,Y,MSK)<
	$A==<tpZ B>		
	OP (<AC>,B'Y,MSK)><AC[Vg ZP%UOP%%IN	(A,B,MUL)%IN	(A[Xp .P"w
	MOVE .S.pAC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` /0"}
	MOVX .S/PAC,<A>
	MOVEM .SAC,B
	MOVEM ._@(Xp W0%I
	.XCREF
IFE	<<B>_-^D18>Wp,<
	.CREF
	CAIXC	A,<B>
	.XCREX0F
>
IFN	<<B>_-XP^D18>,<
	.CREF
Xp	CAMC	A,[B]
	Y.XCREF
>
	.CREFCREF
>
	.CREF_@(YX cP&)
	.XCREF
IFE	<<B>_^D18>,d<
	.CREF
	CI	d0A,(B)
	.XCREF
dP>
IFN	<<B>_^D18dp>,<
	.CREF
	C	eA,[B]
	.XCREF
>
	.CREFCREFP%y
	.XCREF
	TEST%%=0
IFE	<]<<B>_-^D18>-^O77]07777>,<
IFN	<<B]P>&^O777777>,<
	T]pEST%%=1
	.CREF
^	DI	A,-<B>
	.^0XCREF
>>
IFE	TE^PST%%,<
	OP%%IN	^pA,<B>,C
>
	PU_RGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 _P&	
	.XCREF
IFE	<<B>_-^D18>`,<
	.CREF
	CI	`0A,<B>
	.XCREF
>
IFN	<<B>_-^D`p18>,<
	.CREF
	aC	A,[B]
	.XCREF
>
	.CREFCRE_CL@ \h-h
	..STR0 ](.OPST1,<A>,<B>,<C>)<A>,<B>_CLV _-z
	..STR0 _((.OPST2,<A>,<B>,<C>)<A>,<B>_^>@ W(=:<..OWGP (\<A>,B,\<C>)>A=6^O44 B-_^>
G Wh=>OWGP. 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= Np4{
   IFNB O<A>,<
	TMSG <AO0>>
	CALL JSMSG0>
	CALL JSMSG0a4\G !
	..PGV0=8=.		
	.JBVER=:^OX137		
	LOC	.JBVExR		
	BYTE	(3)D(9)A(6)B(18)C
8	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm p!q<POINT WID(<B>),A,POS(<B>)>),A,POS(<Ba? 0!k<^L<<A>&<-<A>>>><<A>&<aKH1 "X:
	..NUM=="x^D15
	REPEAT ^D1#6,<
		IFN ..MASK#8 & 1B<..NUM>,<
	#X	POP P,..NUM>
		#x..NUM==..NUM-1
	>
==..NUM-1
	aNh1  x:
	..TMSK=!=..MASK
	REPEAT !8..NAC,<
		..NUM=!X=^L<..TMSK>
		..!xTMSK==..TMSK-1B<.".NUM>
		PUSH P,..NUM
	>
H P,.aR<& t0?#
	TXO A,.FR8BY
	TXO A,aRd6 sh?
	HRLI A,(POINT 8,0) AdA  de  ,~e&:x LP4eJRST RSKPgJRST RSKPeN^A  eN^gXY |7t
	..TRR==|(10		
	RADIX 8
	|H..NV==1			
	IRP |hA,<
	  .TRV1 (}A)>		
	IFG ..NV-}(5,<PRINTX ?TOO MA}HNY ARGUMENTS: A>}h
	JSP .A16,.SASE~T		
	RADIX ..TRR~(		
	DEFINE ENDSA~H.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 	89

..DONE	X==0
..SACC==0
.	x.NAC==0
..MASK==
0

IRP <A>,<

8	IFG A-^D15,<PRI
XNTX ?SAVEAC(A) I
xS ILLEGAL,
		      PRINTX ?SAVEAC8 CAN ONLY BE USEDX ON ACCUMULATORS>x
	IFE A-.SAC,<.
.SACC==1>
	..SYA
8C==A				
	IFN 
XA-.SAC,<IFE ..MAS
xK&1B<..SYAC>,<	
		..MASK==..MASK!
		..=..NAC+1>>
	
IFE ..SACC,<USRSAV>		
IFE ..DO8NE,<
  IFLE ..SAXCC,<JSP .SAC,[>
x  IFG ..SACC,<CALL [EXCH .SAC,(P)>8
		    IFG  ..NAXC-3,<DSAVAC>
		 x   IFLE ..NAC-3,<IFG ..NAC,<PSAVAC8>>
		    PUSHJ PX,(.SAC)
		      xTRNA
		    AOS -..NAC-..SACC(P)
8		    IFG  ..NAC-X3,<DRSTAC>
		   x IFLE ..NAC-3,<IFG ..NAC,<PRSTAC>>8
		    IFG ..SACXC,<POP P,.SAC>
	x	    POPJ P,]
>
PURGE ..NAC,..TN8AC,..MASK,..TMSK,X..SACC,..NUM,..SMxSK,..DONE,..SYAC  
DONE,..SYAC g$;8 U-*
	..STR1 U((..TQC,,<A>,<B>,..STR4)A>,<B>g%{R QH-
	..STR1 Qh(..TQO,,<A>,<B>,..STR4)A>,<B>g',W Mh,p
	..STR1 N(..TQZ,,<A>,<B>,..STR4)A>,<B>g"~s@ 0!c
	....Z=A
	....Z=gB8; 893
	IFE ..DXONE,<
		..SMSK==x0
		IRP <B>,<
		   ..SYAC==B		8		
		   ..SMSK==X..SMSK!1B<..SYAC>x>		
		IFE ..MASK-..SMSK,<JSP .SAC8,A
				   ..DONE==1>
	>
.DONgR$g !
F=:0
T10=:1
T2=:2
T3=:3P
T4=:4
Q1=:5
Qp2=:6
Q3=:7
P1=:10
P2=:11
P3=:102
P4=:13
P5=:14P
P6=:15
CX=:16
P=:17
CX=:16f(6J
	..STKR=fH=10		
	RADIX 8
fh	..STKN==0
	IRP gA,<
	  .STKV1 (g(A)>
	JSP .A16,.gHXSTKS		;Call integhrnal routine for hallocation
	 EXPh( ..STKN		;Size ofhH block to allocathhe
	RADIX ..STKR
	DEFINE ENDSV.<.i(ENSV1 <A>>
   NSV1 <A>>
   gR~  Jh,X
	..STR0 K(..DPB,A,B,<C>)DPB,A,B,<C>gV Z%QOP%%IA	(A,B,SUB,ADD)(Ai6tP s/
	..STR1 s((..TYNE,,<A>,<B>,..STR3)A>,<Bi6u` vh/8
	..STR1 w(..TYNN,,<A>,<B>,..STR3)A>,<Bi7p M4k
	HRROI .M0AC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..ShTR1 (..TY,C,<A>,<B>,..STR3)A>,iF h0 
	    ..STR1 (..TY,CA,<A>,<B>,..STR3)A>iFP (0
	    ..SHTR1 (..TY,CE,<A>,<B>,..STR3)A>iF` 0
	    ..S(TR1 (..TY,CN,<A>,<B>,..STR3)A>iFp xH/F
	    ..SxhTR1 (..TY,N,<A>,<B>,..STR3)A>,iFt zh/X
	    ..S{TR1 (..TY,NA,<A>,<B>,..STR3)A>iFtP y(/L
	    ..SyHTR1 (..TY,NE,<A>,<B>,..STR3)A>iFu` z/R
	    ..Sz(TR1 (..TY,NN,<A>,<B>,..STR3)A>iFx {H/^
	    ..S{hTR1 (..TY,O,<A>,<B>,..STR3)A>,iF| }h/p
	    ..S~TR1 (..TY,OA,<A>,<B>,..STR3)A>iF|P |(/d
	    ..S|HTR1 (..TY,OE,<A>,<B>,..STR3)A>iF}` }/j
	    ..S}(TR1 (..TY,ON,<A>,<B>,..STR3)A>iGP ~H/v
	    ..S~hTR1 (..TY,Z,<A>,<B>,..STR3)A>,iGT h0
	    ..STR1 (..TY,ZA,<A>,<B>,..STR3)A>iGTP (/|
	    ..SHTR1 (..TY,ZE,<A>,<B>,..STR3)A>iGU` 0
	    ..S(TR1 (..TY,ZN,<A>,<B>,..STR3)A>iK4@ q7
	..TRR==q(10		
	RADIX 8
	qH..NV==1			
	IRP qhA,<
	  .TRV1 (rA)>		
	JSP .A16,r(.XTRST		
	sEXP .rH.NV-1		;Size of brhlock to allocate
	RADIX ..TRR		
s(	DEFINE ENDTV.<.ENSV1 <A>>
	.Eib <#a
		..TX(C,A,<B>)..TX(Cib =P#m
		..TX(CA,A,<B>).TX(CibP <P#e
		..TX(CE,A,<B>).TX(Cib` =#i
		..TX(CN,A,<B>).TX(Cibp 6#1
		..TX(N,A,<B>)..TX(Nibt 7P#=
		..TX(NA,A,<B>).TX(NibtP 6P#5
		..TX(NE,A,<B>).TX(Nibu` 7#9
		..TX(NN,A,<B>).TX(Nibx 8#A
		..TX(O,A,<B>)..TX(Oib| 9P#M
		..TX(OA,A,<B>).TX(Oib|P 8P#E
		..TX(OE,A,<B>).TX(Oib}` 9#I
		..TX(ON,A,<B>).TX(OicP :#Q
		..TX(Z,A,<B>)..TX(ZicT ;P#]
		..TX(ZA,A,<B>).TX(ZicTP :P#U
		..TX(ZE,A,<B>).TX(ZicU` ;#Y
		..TX(ZN,A,<B>).TX(Zk:*g Rp5
%%FOO==Sa
	BRK0 (%%FOO,B,1)
 (%%FOO,kO8; 8Gm$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  p!g<^L<-<<A>_<^L<A>>>-1>>>q
fC@ eH6,
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? 1#	
	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 &C
	A:&@ KH,j
	..TSIZ Kh(..PST,C)
	.CASLE ..PST,<<
		MOVL(EM A,B>,<
		HRLHRM A,B>,<
		HRLhLM A,B>,<
		DPMB A,[POINT WID(<M(C>),B,POS(<C>)]>>B,POS(<C>):<;Y 
(e
   DEFIN
0E ..CNS2 (NEW,OLD
P)<
	  OLD>			
	..CNS ()>			
	:L;Y 	p(]
   DEFIN
E ..CNS (ARG)<
	
0..CNS2 <ARG>,>

P
   DEFINE ..CNS2
p (NEW,OLD)<
	DEFINE ..CNS (ARG)<
	  ..CNS2 <ARG>,P<OLD'NEW>>>
   OLD'NEW>>>
   :Mi AH4
 DEFINE AhELSE. <
	..TAGE B(JRST,)		
	..TAGB(F (,<:!>)		
	SYNBH ..TAGE,..TAGF	
Bh   DEFINE ELSE. <C....U>>	

 DEFIC(NE ENDIF. <
	..TCHAGF (,<:!>)		
	..RSDF>			
   .:TH nh.v
	..JNA3 (A,C,D)JNA3 :TI o(/
	..TSAC oH(..ACT,C)
	.IF0oh ..ACT,<
	  SETCpM .SAC,C	
	  JXp(E (.SAC,D,<B>)>pH,<	
	  JXO (C,D,<B>)>O (C,:TP b(.,
	..TSAC bH(..ACT,B)	
	.IFbh0 ..ACT,<
	  ..TcSIZ (..PST,C)	
c(	  .CASE ..PST,<<cH
		SKIPN B	
		chJRST A>,<
		HRRdZ .SAC,B	
		JUMd(PE .SAC,A>,<
		dHHLRZ .SAC,B	
		dhJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<eHA>)>>>,<
	  JXE (B,C,<A>)>E:U` fh.P
	..TSAC g(..ACT,B)	
	.IFg(0 ..ACT,<
	  ..TgHSIZ (..PST,C)
	gh  .CASE ..PST,<<
		SKIPE B	
		Jh(RST A>,<
		HRRZhH .SAC,B	
		JUMPhhN .SAC,A>,<
		HiLRZ .SAC,B	
		Ji(UMPN .SAC,A>,<
iH		MOVE .SAC,B	
ih		JXN (.SAC,C,<jA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) l.j
	..TSAC l((..ACT,B)
	.IF0lH ..ACT,<
	  SETClhM .SAC,B	
	  JXmN (.SAC,C,<A>)>m(,<	
	  JXF (B,C,<A>)>F (B,:Ukh r/
	..JN (A,C,D)..JN (:Uki rH/
	..JE (<B>,C,D)JE (<:dH@ Ch,,
	..TSIZ D(..PST,C)
	.CASD(E ..PST,<<
		MOVDHE A,B>,<
		HRRDhZ A,B>,<
		HLREZ A,B>,<
		LDBE( A,[POINT WID(<EHC>),B,POS(<C>)]>>B,POS(<C>)]:dHR Fh,R
	..TSIZ G(..PST,C)
	.CASG(E ..PST,<<
		MOVGHE A,B>,<
		HRRGhE A,B>,<
		HLRHE A,B>,<
		JSPH( .SAC,[LDB A,[POHHINT WID(<C>),B,HhPOS(<C>)]
			  I..MSK==MASK.(WID(I(C),35)
			  TXNIHE A,LFTBT.(..MSKIh)	
			  TXO A,^J-..MSK	
			  PURJ(GE ..MSK
			  JRST (.SAC)]>> JR:}i1 n&s
	A==<<<n0-<B>>&<B>>&<1B<^L<B>>>>>&<1B<:~yx [=^IFE 10-8, [(  <.%AC!<B>>+ [H			     IFE 10-^D[h10,<.$AC!<B>>0,<.$AC!<B>>;@ ;9 44
	.POPX;LH w0'K
	IFNDEF wPC,<PRINTX ?C ISwp NOT DEFINED
	  xA (<B>,<D>,.FWx0ORD)>	
	IFDEF CxP,<
	IFNDEF %C,<xp
	  A (<B>,<Dy>,C)>	
	IFDEF %y0C,<
	  %C (A,<B>,<D>,C)>>;LH yp(

	..NS==0z			
	IRP C,<..Nz0S=..NS+1>	
	IFE zP..NS,<PRINTX ?EMPzpTY STRUCTURE LIST{, A>
	IFE ..NS-{01,<		
	  ..STR0 {P(A,<B>,<C>,<D{p>)>
	IFG ..NS-1,|<		
	..ICNS			
|0	..CNS (<E (A,<|PB>,,>) 
	IRP C|p,<		
	  IFNDEF }C,<PRINTX C NOT }0DEFINED>
	  IFDE}PF C,<
	  IFNDEF}p %C,<
	  ..CNS ~(<,C,D>)>	
	  ~0IFDEF %C,<
	  %~PC (..STR2,,<D>,~pC)> 
	  ..CNS (<)>)		
	  ..GCNS0		
	  ..ICNS		
P	  ..CNS (<E (Ap,<B>>) 
	  IFNDEF %C,<
	  ..CN0S (<,C,D>)>	
	P  IFDEF %C,<
	 p %C (..STR2,,<D>,C)>>> 
	..CNS0 (<,,)>)		
	..GCNS>)>)		
	..GC;LI p(
	..CNS (<,C,B>).CNS (;LI 0(%

	IFDIF <PD><F>,<
	  IFNpB <D>,<
	    A (<B>,D,..MSK)	0
	    IFNB <F>,P<PRINTX C AND Ep ARE IN DIFFERENT WORDS>>
	  ..MS0K==0>		
	IFNB <PF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ (5

	IFDIF <0D><F>,<	
	  IFPNB <D>,<
	    pA (<B>,D,..MSK)>	
	  ..MSK==0>	0	
	IFNB <F>,<
P	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ (K

	IFDIF <0D><F>,<	
	  IFPNB <D>,<
	    IpFNB <F>,<		
		A1 (B,D,..MSK)>0 
	    IFB <F>,P<		
		A2 (B,Dp,..MSK)>> 
	  ..	MSK==0>		
	IFNB 	0<F>,<
	  ..MSK=..MSK!<E>>MSK=;hU 	(0N
	SYN END	HBK.,a
	.PSHX <
	 SYN a,ENDBK.> SYN a,ENDBK.>;i D42
	SYN ELSD(E.,a
	SYN ENDIFDH.,b
	SYN ..TAGFDh,c
	SYN ..TAGE,Ed
	.PSHX <
	  E(SYN a,ELSE.
	  EHSYN b,ENDIF.
	 Eh SYN c,..TAGF
	F  SYN d,..TAGE>
	..INDF			
	      NDF			
	0|;k 

	SYN OD.
	SYN LOOP.,
	SYN TOP.,c
	SYN EXIT.,d
	S(YN ENDLP.,e
	.PHSHX <
	 SYN a,OhD.
	 SYN b,LOOP.
	SYN c,TOP.
	 SYN d,EXIT.
H	`SYNe,ENDLP.> SYN e,ENDLP.>;$r 3\....U;$s 3Z....U
	..TSIZ V(..PST,C)
	.IF0V( ..PST,<		
		SETVHCMM B>,<	
	W..VhTSAC (..ACT,B)	
	W(.IF0 ..ACT,<
		MOVX .SAC,C
WH		XORM .SAC,B>,<Wh
		..TX(C,B,C)>>..TX(C,B,C);&` R(-$
	..TSIZ RH(..PST,C)
	.CASRhE ..PST,<<
		SETSOM B>,<
		HLLOSS( B>,<
		HRROS SHB>,<
	  ..TSAC (Sh..ACT,B)
	  .IFT0 ..ACT,<
		MOVXT( .SAC,C
		IORM TH.SAC,B>,<
		..TX (O,B,C)>>>T;&@ NH-
	..TSIZ Nh(..PST,C)	
	.CAOSE ..PST,<<
		SEO(TZM B>,<	
		HLLOHZS B>,<	
		HRRZOhS B>,<	
	  ..TSPAC (..ACT,B)	
	P(  .IF0 ..ACT,<
	PH	MOVX .SAC,C	
	Ph	ANDCAM .SAC,B>,Q<
		..TX (Z,B,C)>>>TX (Z,B,;&81 j0&]
	A==0		jP	
	..TSA1==<Z Bjp>		
	.IF ..TSA1,kABSOLUTE,<	
	  Ik0FE ..TSA1&^O77777kP7777760,<A==1>> 
	60,<A==1>> ;&:= hp&O
	A==3		i	
	IFE <B>+1,<i0A=0>	
	IFE <B>-iP^O777777,<A==1> ip
	IFE <B>-^O777777B17,<A==2>7;&;Q l&m
	A==0		l0	
	..TSA1==0		
lP	IRPC C,<
	  ..lpTSA1=..TSA1+1
	mm IFE ..TSA1-B,<
	   IFIDN <C><mPD>,<
		A==1>		
	;'STOPI>>		
   ..TX11p==C			
20.IFN 2..TX1,ABSOLUTE,<
	TDA B,[C]>
2P   .IF ..TX1,ABSO3LUTE,<		
	..TX2=2p=0		
	IFE <..TX130&^O777777B17>,<
3P	  ..TX2==1		
	 3p TRA B,..TX1>
4	IFE ..TX2,<		
	40IFE <..TX1&^O77774P77>,<
	  ..TX2==4p1		
	  TLA B,(5..TX1)>>
	IFE ..50TX2,<		
	  IFE <5P<..TX1>B53-^O77775p77>,< 
	    ..TX>3 (A,B)>>	
	IF>0E ..TX2,<		
	  I>PFE <..TX1+1>,<	
>p	    ..TX4 (A,B?)>>
	IFE ..TX2,<?0		
	  TDA B,[..TX1]>	
  >,[.;'` ?p$
	IFIDN <@A><Z>,<		
	  ..@0TX2==1
	  ANDI @PB,^-..TX1>	
	IFI@pDN <A><O>,<		
	A  ..TX2==1
	APORA0CMI B,^-..TX1>	
	IFIDN <A><C>,<Ap		
	  ..TX2==1
B	  EQVI B,^-..TX1>QVI B,^-..TX;' BP$
	IFIDN <BpA><NN>,<
	  ..TCX2==1
	  CAIN BC0,0>		
	IFIDN <ACP><NE>,<
	  ..TX2Cp==1
	  CAIE B,0>
	  CAIE B,0;' (0:
	..TSAC H(..ACT,B)	
	.IFh0 ..ACT,<
		PRINTX ?TQA - B NOT( IN AC>,<
		TXA B,C>
		TXA;'R sh/2
	..TSAC t(..ACT,B)	
	.IFt(0 ..ACT,<
	  ..JtHX1==C
	  .IF0 <u..JX1-1B0>,<
		SthKIPGE B>,<
	   u( .IF0 <..JX1+1>,<uH
		SKIPE B>,<
uh		MOVE .SAC,B
	v	TXNE .SAC,C>>>,v(<
		TXNE B,C>
		TXNE B,C>;'W wH0.
	..TSAC wh(..ACT,B)	
	.IFx0 ..ACT,<
	  ..Jx(X1==C
	  .IF0 <H..JX1-1B0>,<
		ShKIPL B>,<
	(  .IF0 <..JX1+1>,<
		SKIPN B>,<
	H	MOVE .SAC,B
		hTXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  8	
	.ACV2 (A)
	.ACV2 (d@ X8'
   IFDEFx A,<.IF A,SYMBOL,<PRINTX ACVAR 8A ALREADY DEFINEDX>>
	A==.FPAC+..xNAC	
	$A==A		
	IFB <B>,<..NAC8=..NAC+1>
	IFNB X<B>,<
	...X==Bx
	IF2,<.IFN ...X,ABSOLUTE,<PRINTX8 ?ACVAR A, B isX not absolute>>
x	..NAC=..NAC+...X>NAC=..NAC+...Xd` 887
	IFG A-X.NPAC,<PRINTX ?TOxO MANY ACS USED>
	IFLE A-4,<
	 8 JSP .A16,.SAVA>X	
	IFG A-4,<
	x  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; ,;
	  IFIDN,( <A><.>,<
		XMO,HVEI .A16,B	
		P,hUSH P,.A16>
	  I-FDIF <A><.>,<
	-(  .IFATM <A>,.BL-HF4	
	  .BLF1==0	-h	
	  IFN .BLF4,<.		
	    .IF %A,.(MACRO,<	
		.BLF1.H==1>	
	    IFNB .h<B>,<
		.BLF1==/1>	
	    IFN .BL/(F1,<		
		LOAD .A/H16,A,B
		PUSH /hP,.A16>>
	  IFE 0.BLF1,<		;IF WASN0('T A STRUCTURE RE0HF,
	    IFN .BLF0h4,<		
	     .BLF12==<<Z A>&17B17>1(-<P>B17 
	      1H.IF .BLF2,ABSOLUT1hE,< 
	       IFE2 .BLF2,<		
	    2(   .BLF1==1		
	 2H      .BLF3==<Z 2hA>&777777
		PUSH3 P,.BLF3-..NA(P)>3(>>> 
	  IFE .BLF3H1,<		
		PUSH P,3hA>>	
	  ..NA=..NA+1
	  ..NA=..N
d;	 +H:\
	.BLCL1 A
	.BLCL1 
f=( (H:F
	DEFINE (hA<-^OB(.FP)>
	$A==<Z A>>
	9  fp&A
	..CSN==gA
	..CSC==0
	Ig0RP B,<
	IFE ..CgPSN-..CSC,<
	  STgpOPI
	  ..CAS1 (hB)>
	..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 
 u		
	XLIST
0
	LOC 0
	COPYRT
P A
     .IFN .,
pABSOLUTE,<PRINTXH
p22,<IFGET.-^OPYRIGHT DOESN'T FIT 0IN SINGLE REL BLOPCK>
	RELOC
	LIST
	SALL

	LIS,<H [(-b
	..PST==[HC&<-C>
	.IF0 .[h.PST-1,<
		SOS \B>,<	
		MOVX .SA\(C,-..PST 
		ADDM .SAC,B>		ADDMtH 88=
	IRP A,X<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 8A
	.ENAV3 (A)
	.ENAV3 tI X8E
	PURGE A,A
  PURGE t,h )(:L
	IRP A,)H<
   DEFINE A<....U>>FINE A<.v=H o6z
	IRP A,o(<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I oh6~
	.ENSV3 (A)
	.ENSV3 v=I p(7
	DEFINE A<....U>EFINE vI9A  vI9~+H "0"
	A (\..FORN)
	A (\..~. "
	A BP `P \Q X=|RQ &2 eP&3
	..IFT==epA		
	IFE ..IFT,f<
	B
	..IFT==0f0>		
	IFN ..IFT,<
	C>N ..IFT,<&4 4(;6
	IRPC A4H,<
	B==0
	IFGE4h "A"-"A",<IFLE "5A"-"Z",<B=1>> 
	IFGE "A"-"0",<5HIFLE "A"-"9",<B5h=1>>
	IFE "A"-"6%",<B=1>
	IFE "6(A"-"$",<B=1>
	6HIFE "A"-".",<B=6h1>
	IFE B,<STOPI>>IFE B,<STOP&t<H Y-P
	..PST==Y(C&<-C>	
	.IF0 YH..PST-1,<
		AOS YhB>,<	
		MOVX .SZAC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6i2P u6k0P 6k4P 6mtP 6MiTQ @;`P ?= ]H-t
	..TSIZ ]h(..PST,C)
	.IF0^ ..PST,<
		A B^(>,<	
		..LDB .SA^HC,B,C 
		A .SAC>C 
		A .S?=	 _h.
	..TSIZ `(..PST,C)
	.IF0`( ..PST,<
		A B`H>,<	
		..LDB .SA`hC,B,C
		A .SAaC
		..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~ I4H
	.PSHX1 (.POPX2).PSHX1 B~	 IH4L
	.POPX4 A
	.POPX4 B~	 JH4Z
	A
   JhDEFINE .PSHX1 (WCKH,STUFF)<
	WCH (K(<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 J4P
	.POPX3 B
	.POPX3 C G48
	.PSHX1 (.PSHX2,<A>)1 C GH4<
	A (<B>)
	A (<BC	 H4D
   DEFINH(E .PSHX1 (WCH,STUHHFF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z !{<<<A>&<B0>>B<^D70-POS(<B>)>>D70-POS(<B>K%\u @h,
<IFE <<FAILIN.(<A>)&<^-AA(>>>,<A>>!<IFN <<AHFILIN.(<A>)&<^-AhA>
>><<FILIN.(<<B<RGHBT.(<<FILIN.(B(<A>)&<^-A>>>)>_BH-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 ih6N
	.STKV2 (A)
	.STKV2 O%=I j(6f
	IFB <BjH>,<..STKN==..STKNjh+1>
	IFNB <B>,<k
	...X==B
	IF2k(,<.IFN ...X,ABSOLkHUTE,<PRINTX ?STKVkhAR A, B is not labsolute>>
	..STl(KN==..STKN+...X>
	..STKQ==..STKN+lh1
	.STKV3 (A,\..STKQ)V3 (A,\.O%=I m(6t
   IFDEFmH A,<.IF A,SYMBOmhL,<PRINTX STKVAR nA ALREADY DEFINEn(D>>
	DEFINE A<-nH^OB(P)>
	$A==<Z A>>
	$A==<Sd  sh7
	.TRV2 (A)
	.TRV2 (Sd@ t(72
	.TRV3 (tHA,\..NV)	
	IFB th<B>,<..NV=..NV+1u>
	IFNB <B>,<
u(	...X==B
	IF2,<uH.IFN ...X,ABSOLUTuhE,<PRINTX ?TRVAR vA, B is not absv(olute>>
	..NV=..NV+...X>..NV=..Sd` vh7@
   IFDEFw A,<.IF A,SYMBOw(L,<PRINTX TRVAR wHA ALREADY DEFINEDwh>>
	DEFINE A<^OxB(.FP)>
	$A==<Z A>>
	$A==<b\| !Y
	.XCREF
	.XCRF1 <..ACT,.P.CSC,..CSN,..IFT,p..JX1,..MSK,..MX1,..MX2>
	.XCRF1 0<..NAC,..NRGS,..NPS,..NV,..PST,..STpKN,..STKQ,..STKR>
	.XCRF1 <..TRR,0..TSA1,..TX1,..TXP2,.FP,.FPAC,.NAC,p.SAC,.SAV1>
	.XCRF1 <.SAV2,.SAV3,0POINTR,POS,WID,..PCAS1,..CNS,..CNS2p>
	.XCRF1 <..DPB,..GNCS,..ICNS,..0JE,..LDB,..STR0,.P.STR1,..STR2>
	.pXCRF1 <..STR4,..TQO,..TQZ,..TSAC,.0.TSIZ,..TX,..TY,.PACV1,.ACV2>
	.XCpRF1 <.ACV3,.CASE,.DECR0,.IF0,.INCR00,.OPST1,.OPST2,.PSTKV1>
	.XCRF1 <p.STKV2,.STKV3,.TRV1,.TRV2,.TRV3>
	.CREF
   3>
b)H P!_
	IRP A,p<
	 IFDEF A,< .XCREF A>>A,< .cJyA  cJycJyA  cJyc&,ZA  c&,Zc&,zA  c&,z>}{woP