Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-10 - decus/20-185/macsym.unv
There are 97 other files named macsym.unv in the archive. Click here to see a list.
x,L@P C4@ 1!
	..NAC==80		
	IRP A,<
	X  .ACV1 (A)>		
x	.ACV3 (\..NAC)		
	DEFINE ENDAV.<.ENAV1 <A>>V.<C:$S@ S8-
	..TAGF (<JUMPN A,>,) C:$s@ T8-#
	..TAGF (<JUMPLE A,>,)C:$y' Tx-'
	..TAGF (<JUMPL A,>,) C:%C@ Ux-/
	..TAGF (<JUMPGE A,>,)C:%I' U8-+
	..TAGF (<JUMPG A,>,) C:%c@ Sx-
	..TAGF (<JUMPE A,>,) C:&' W8-=
	..TAGF WX(<JN <A>,<B>,>,)N <A>,<B>,>,C:&G X-C
	..TAGF X8(<JE <A>,<B>,>,)E <A>,<B>,>,C:' #8"
	TXZ A,<^-<B>>TXZ A,C:'	' V8-3
	..TAGF (<JXN A,B,>,)C:'G Vx-7
	..TAGF (<JXE A,B,>,)C:v:g Qx-
	TRNA
	..TAGF (JRST,)	C;< Q8-
	..TAGF (JRST,)	..TAGF CO,,@ 
H0x
	..TRR==
h10		
	RADIX 8
	.NV==1			
	IRP<
	A).TRV1 (
	IFGP..NV-?TOO MANY ARGUMENTS: A>(
	JSP .A16,.ASSEHT		
	RADIX ..TRRh		
	DEFINE ENDAS.<.ENSV1 <A>>
	.ENSV1 <A>>
	E2 $(2*
	..NA==0$H			
	IRP B,<
	$h  .BLCL2 B>		
	%PUSH P,[..NA+1,,.%(.NA+1]	
	PUSHJ P,A		
   SHJ PE3XG h2	
	..TRR==10		
	RADIX 8		(	
	..NA==2			
	HIRP A,<
	  ..NAh=..NA+1>		
	IRP  A,<
	  .BLSU1( (A,\..NA)	
	  ..N HA=..NA-1>
	..NV= h=1			
	IRP B,<
	  .TRV1 (B)>		!(
  DEFINE ENDBS.!H <.ENBS1 <A>
		!h.ENSV1 <B>> 
	J"SP .A16,.ENTER
	"(..NV-1,,..NV-1
	RADIX ..TRR1
	EJMj' p /
{0
W0.==A
W1.==B				;INITqIALIZE BREAK MASKq(
W2.==C
W3.==D
==C
W3.==7].x0*iFp7	0B,<
	70QAB(7	..V22==ak 
	..V1==a
	IFNk@B <B>,<..V22==Bk`>
REPEAT ..V22-<la>+1,<	
	%%W==.l .V1/^D32	
	%%X==[email protected]%%W*^D32	
	l`IFE C,BRKC1 \"<%m%W+"0">	
	IFN Cm ,BRKC2 \"<%%W+"0"m@>
	..V1==..V1+1
		   >
.V1+1 n.p	WA.==WA.!<1B<%%X>>
AEJ\4@ [email protected]	WA.==WAn`.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: [email protected]
%%FOO==i`a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g qh/
	BRINI. Ar,B,C,D	
	IRPCr( E,<	UNBRK. "E"rH>	
	IRPC F,<	BRrhKCH. "F">	
	EXPs W0.,W1.,W2.,W3.		
W1.,W2.,W3.	Ge@ ,GeLR +I  {8']
	..STR0 {X(.DECR0,,<A>,B)DECR0,,<A>,B)I6= O8%	
	A==<-1OXB<C>+1B<C-D>> Ox
	IF1,<IFDEF %AP,<PRINTX ?A ALREP8ADY DEFINED>>
	DPXEFINE %A (OP,AC,PxY,MSK)<
	$A==<ZQ B>		
	OP (<AC>,B'Y,MSK)><AC>I<p (X*W
	..SVLD	(x		
a:!				
  D)EFINE OD. <
b:!)8				
	.POPX>			
  DEFINE LOOP. <)x
	JRST a>		
  *DEFINE TOP. <a>	*8	
  DEFINE ENDLP*X. <b>		
  DEFIN*xE EXIT. <
	JRST b>T. <
	JRST K+\Y`p07Lp07I4p07L.p07IUN.,HK+`p07Xp07U4p07X.p07UUNEMK3S@ -....UK:$Kg *Y
	OD.(7K:%G -....UKCm 0h3DEFINE ..E1P. (LOCN,PTEXT)
1(	    <PRINTX Loca1Htion 'LOCN': PTEX1hT
	    >
	  ..E2P.(\.,<A>)
	  PURGE ..EP.
	  KJn9` g`.@
	ERJMP	[hTMSG <? A>
		 JSHLT]
A>
		 JKc  [email protected]
   IF2,<h`
	IRP A,<
	IFNiDEF A,<EXTERN A
	SUPPRE A>>>M2  !)<<<A>B<POS(B)>>&<B>>POM2$*g wH/b
	..XX==<whFLD(A,CM%FNC)>+xB+<Z G>
   IFNBx( <D>,<..XX=CM%HPxHP!..XX>
   IFNB xh<E>,<..XX=CM%DPPy!..XX>
   IFNB <y(F>,<..XX=CM%BRK!yH..XX>
	..XX
   yhIFNB <C>,<C>
 z  IFB <C>,<0>
 z(  IFNB <D>,<POINzHT 7,[ASCIZ D]>zh
   IFB <D>,<IF{NB <EF>,<0>>
 {(  IFB <E>,<IFNB {H<F>,<0>>
   IFN{hB <E>,<POINT 7,[|ASCIZ \E\]>
   |(IFNB <F>,<F>
    <F>,<F>
 M2$HG sH/8

	..XX==<shFLD(A,CM%FNC)>+tB+<0,,F>
   IFNt(B <D>,<..XX=CM%HtHPP!..XX>
   IFNBth <E>,<..XX=CM%DPuP!..XX>
	..XX
u(  IFNB <C>,<C>
uhIFB <C>,<0>
   IFNB <D>,<POvINT 7,[ASCIZ Dv(]>
   IFB <D>,<vHIFNB <E>,<0>>
 vh  IFNB <E>,<POINwT 7,[ASCIZ \E\]>7,[ASCIZ \E\]>M7p e ..
	HRROI .e@AC2,[ASCIZ \A\]
	MOVEI .AC3,0
	SOUTI .AC3,0
	M?c@ 8!C

  DEFINEX e(C)<D>
..FOxRN==A
REPEAT B-A+1,<
	.FORN1 8(e)
	..FORN=..FORN+1>.FORN=..FM?@ 8!O
  DEFINEX d (B)<C>
  IxRP A,<
	.FORX1 d,A>
	.FORX1CNF{X..ERR.=0		Cx	
	..ENC.=0			
D	IFE B-7,			
	DD8 <..ENC.=^O57			
	  IFN D-^O44,<DxIFN D-^O35,<IFN ED-^O26,<IFN D-^E8O17,<IFN D-^O10,EX
		     	<IFN DEx-1<..ERR.=..ERR.!F1>>>>>>
	  >
	IF8FN B-7,			
	  <FXIFE B-6,
	    <Fx..ENC.=^O45			
	G    IFN D-^O44,<G8IFN D-^O36,<IFN GXD-^O30,<IFN D-^GxO22,<IFN D-^O14,H
			<IFN D-6,<IH8FN D,<..ERR.=.ERHXR.!1>>>>>>>
	   Hx >
	  IFN B-6,	I		
	    <IFE B-I8^O10,
	      <..IXENC.=^O50		
	   Ix   IFN D-^O44,<IJFN D-^O34,<IFN J8D-^O24,<IFN D-^OJX14,<IFN D-4,
		Jx	<..ERR.=.ERR.!1>K>>>>
	      >
	K8    IFN B-^O10,	KX	
	      <IFE BKx-^O11,
		<..ENC.L=^O62		
		IFN DL8-^O44,<IFN D-^O3LX3,<IFN D-^O22,<ILxFN D-^O11,<IFN MD,
			<..ERR.=..M8ERR.!1>>>>>
		>
	      IFN B-^OMx11,		
		<IFE B-N^O22,
		  <..ENCN8.=^O54		
		  IFNNX B-^O44,<IFN B-Nx^O22<IFN B,<..EROR.=..ERR.!1>>>
	O8	  >
		IFN B-^OOX22,<..ERR.=..ERR.Ox!2>	
		>
	     P >
	    >
	P8>
	IFN <<C>&<-1,,PX0>>,<..ERR.=..ERRPx.!4> 
					     Q
	IFN <<A>&<^O<Q8-1,,770000>>>,<..QXERR.=..ERR.!<^O20Qx>> 
	IFN ..ERR.,R
	  <IFN ..ERR.&R81,<MPRNTX (G1BPT,RXIllegal byte offsRxet: D)>
	  IFN S..ERR.&2,<MPRNTX S8(G1BPT,Illegal bySXte size: B)>
	 Sx IFN ..ERR.&4,
	T    <MPRNTX (G1BPT8T,<Address indexeTXd, indirect, or gTxreater than 18 biUts: C>)>
	  IFNU8 ..ERR.&<^O20>,<MUXPRNTX (G1BPT,SectUxion greater than V12 bits: A)>
	 V8 -1,-1,-1		
	  >VX
	
	IFE ..ERR.,Vx
	  <<<..ENC.+<<WB>-<<D>/<B>>>>W8_<^O36>>!<<C>&<0WX,,-1>>!<<A>_^O<2Wx2>>>	
	PURGE ..ERR.,..ENC.
	.E7^4^O44NJ
..ERR.=0		d
	d8.BSIZ.=B		
	  .BPOS.=D
	IdXFN <<A>&<^O<-1,,dx770000>>>,
	  <MePRNTX(G2BPT,Sectie8on greater than 1eX2 bits: A)
	  .ex.ERR.=1
	  >
	IfFN <<C>&<^O<7777f840,,0>>>,
	  <MPfXRNTX(G2BPT,Bits 0fx - 12 non-zero ing address field: g8C)
	  ..ERR.=1
gX	  >
	IFN <<E>&gx<-1,,0>>,
	  <MPhRNTX(G2BPT,Bits 0h8-17 non-zero in ohXptional field: Ehx)
	  ..ERR.=1
	i  >
	IFN <.BSIZ.i8&<^O<-1,,777700>>iX>,
	  <MPRNTX(G2ixBPT,Bytesize greajter than 6 bits: j8B)
	jX..ERR.=1
	  >
	IFN <.BPOjxS.&<^O<-1,,777700k>>>,
	  <MPRNTX(k8G2BPT,Byte offsetkX greater than 6 bkxits: D)
	  ..ERlR.=1
	  >
	IFN l8..ERR.,<-1,-1,-1>lX		
	
	IFE ..ERRlx.,
	  <IFDIF <Dm><>,<<<POINT .BSIm8Z.,E,.BPOS.>!1B1mX2>&<^O<777740,,-1mx>>>
	  IFIDN <Dn><>,<<<POINT .BSIn8Z.,E>!1B12>&<^O<nX777740,,-1>>>
	 nx   
	    <<<C>_o<^O14>>&<^O<37000o80,,0>>!<<C>&<0,,oX-1>>!<<A>_<^O22>ox>>
	  >
	PURGE p..ERR.,.BSIZ.,.BPOS.
	BSIZ.,.BP7`60	6
	IFN <<A>&<^O<6(-1,,770000>>>,
	6H  <MPRNTX(GFIWM,S6hection greater th7an 12 bits: A)
7(	  ..ERR.=1
	  >7H
	IFN <<B>&<^O<7h777740,,0>>>,
	 8 <MPRNTX(GFIWM,Bi8(ts 0 - 12 non-zer8Ho in address fiel8hd: B)
	  ..ERR.9=1
	  >
	IFN ..9(ERR.,<-1,-1,-1>	
				
	IFE ..ERR9h.,<
	  <<<B>_<^:O14>>&<^O<370000,:(,0>>!<<B>&<0,,-1:H>>!<<A>_<^O22>>>:h>
	PURGE ..ERR.
	PURGE..ERR.
	JUMPN =A,b		
	..SVDF		=8	
   DEFINE ..TA=XGF (INST,PCT)<
	=xINST b'PCT>		
 >  DEFINE ..TAGE (>8INST,PCT)<
	INST c'PCT>		
	STS.:g ;X+c
	PRINTX ;x% IFESK. should b<e changed to IFNJ<8E.
	IFNJE. <A>.
	IFNJE. <A>S9` @x,
	JUMPLE AA,b		
	..SVDF	A8		
   DEFINE ..TAXAGF (INST,PCT)<
Ax	INST b'PCT>		
B   DEFINE ..TAGE B8(INST,PCT)<
	INST c'PCT>		
	SS<S@ Bx,#
	JUMPL CA,b		
	..SVDF		C8	
   DEFINE ..TACXGF (INST,PCT)<
	CxINST b'PCT>		
 D  DEFINE ..TAGE (D8INST,PCT)<
	INST c'PCT>		
	STST\G 18+#

   IFB <1XAB>,<		
	..SVD1xF			
	ERJMP e		2
	JRST c		
e:28!
   DEFINE ..TA2XGF (INST,PCT)<
	2xINST c'PCT>		
 3  DEFINE ..TAGE (38INST,PCT)<
	INST3X d'PCT>		
	>
 3x  IFNB <AB>,<		4
	ERJMP c		
	48B
	JRST d
c:!	A
d:!>
c:!Sa` Fx,C
	JUMPGE GA,b		
	..SVDF	G8		
   DEFINE ..TGXAGF (INST,PCT)<
Gx	INST b'PCT>		
H   DEFINE ..TAGE H8(INST,PCT)<
	INST c'PCT>		
	SSdS@ Dx,3
	JUMPG EA,b		
	..SVDF		E8	
   DEFINE ..TAEXGF (INST,PCT)<
	ExINST b'PCT>		
 F  DEFINE ..TAGE (F8INST,PCT)<
	INST c'PCT>		
	STSq` >x,
	JUMPE ?A,b		
	..SVDF		?8	
   DEFINE ..TA?XGF (INST,PCT)<
	?xINST b'PCT>		
 @  DEFINE ..TAGE (@8INST,PCT)<
	INST c'PCT>		
	STSt\g 4x+-
	PRINTX 5% IFNES. should b58e changed to IFJE5XR.
	IFJER. <A>,<B>FJER. <A>,Su)' 8x+Y
   IFB <9A>,<		
	..SVDF	98		
	ERJMP b
  9X DEFINE ..TAGF (I9xNST,PCT)<
	INST :b'PCT>		
   DEF:8INE ..TAGE (INST,:XPCT)<
	INST c'P:xCT>		
	>
   IFN;B <A>,<
	ERJMP b
	A
b:!> Sv:g -x+
   IFB <.AB>,<		
	..SVD.8F			
	TRNA			
	.XJRST c		
   DEF.xINE ..TAGF (INST,/PCT)<
	INST c'P/8CT>		
   DEFINE /X..TAGE (INST,PCT)/x<
	INST d'PCT>	0	
	>
   IFNB <08AB>,<		
	JRST 0Xc		
	B
	JRST 0xd
c:!	A
d:!>
c:!	A
d:!>S
S@ Lx,u
	JN <A>M,<B>,c	
	..SVDM8F			
   DEFINE .MX.TAGF (INST,PCT)<Mx
	INST c'PCT>		N
   DEFINE ..TAGN8E (INST,PCT)<
	INXNST d'PCT>		
	ST d'PCT>		
	S O-
	JE <A>O8,<B>,c	
	..SVDOXF			
   DEFINE .Ox.TAGF (INST,PCT)<P
	INST c'PCT>		P8
   DEFINE ..TAGPXE (INST,PCT)<
	IPxNST d'PCT>		
	ST d'PCT>		
	S< 6+C
   IFB <68A>,<		
	..SVDF	6X		
	JRST b
   6xDEFINE ..TAGF (IN7ST,PCT)<
	INST 78b'PCT>		
   DEFI7XNE ..TAGE (INST,P7xCT)<
	INST c'PC8T>		
	>
   IFNB88 <A>,<
	JRST b
	A
b:!> bSDS@ Hx,S
	JXN A,IB,c	
	..SVDF		I8	
   DEFINE ..TAIXGF (INST,PCT)<
	IxINST c'PCT>		
 J  DEFINE ..TAGE (J8INST,PCT)<
	INST d'PCT>		
	STSEc@ Jx,c
	JXE A,KB,c	
	..SVDF		K8	
   DEFINE ..TAKXGF (INST,PCT)<
	KxINST c'PCT>		
 L  DEFINE ..TAGE (L8INST,PCT)<
	INST d'PCT>		
	STS:  y'K
	..STR0 y8(.INCR0,,<A>,B)INCR0,,<A>,B)S? "x"
	TXO A,<B>
	TXO A,Ut@ X(y
	..STR1 x(..JAN,<d,<C>>,<A>,B,..STR5)
d:B,..STR5)
U 8(
	..STR1 X(..JE,<C>,<A>,B,..STR3)<A>,U8 x(9
	..STR1(..JN,<C>,<A>,B,..STR3)<A>,U:
(c
	..STR1 
8(..JNA3,<C>,<A>,B,..STR4)<A>U:~  x)
	..STR1 (..JNO,<d,<C>>,8<A>,B,..STR5)
d:B,..STR5)
U? 8(]
	..STR1 X(..JN,<C>,<A>,B,..STR4)<A>,UN.,@`p07Fp07C,p07F.p07CUN.,HUN.,HA  UN.,HUNEM`p07Rp07O,p07R.p07OUNEMUNEMA  UNEMUNn9hA  UNn9hUb( 7#Q
	..JX1==78B		
	.IFN ..JX17X,ABSOLUTE,<PRINTX7x B NOT ABSOLUTE
		..JX1==0>
	.I88F ..JX1,ABSOLUTE,8X<
	.IF0 <<..JX1>8x-1B0>,<	
		JUMPG9E A,C>,<
	.IF098 <<..JX1>+1>,<	
9X	  JUMPE A,C>,<9x	
		TXNN (A,..J:X1)
		JRST C>>>)
		JRST C>>>Ub0 B$-
	..JX1==B8B		
	.IFN ..JX1BX,ABSOLUTE,<PRINTXBx B NOT ABSOLUTE
		..JX1==0>
	.IC8F ..JX1,ABSOLUTE,CX<
	.IF0 <<..JX1>Cx-1B0>,<
		JUMPGED A,C>,<
	..ONED8B (..BT,B)	
	.IDXF0 ..BT,<
	  SETDxCM .SAC,A		
	  EJXN (.SAC,..JX1,E8C)>,< 
	    TXNNEX A,..JX1	
	    JRST C>>>	    Ubp :X#m
	..JX1==:xB		
	.IFN ..JX1;,ABSOLUTE,<PRINTX;8 B NOT ABSOLUTE
		..JX1==0>
	.I;xF ..JX1,ABSOLUTE,<<
	.IF0 <<..JX1><8-1B0>,<	
		JUMPL<X A,C>,<
	.IF0 <x<<..JX1>+1>,<	
	=  JUMPN A,C>,<	=8
		TXNE (A,..JX=X1)
		JRST C>>>)
		JRST C>>>Ubx >$
	..JX1==>8B		
	.IFN ..JX1>X,ABSOLUTE,<PRINTX>x B NOT ABSOLUTE
		..JX1==0>
	.I?8F ..JX1,ABSOLUTE,?X<
	.IF0 <<..JX1>?x-1B0>,<
		JUMPL @A,C>,<
	..ONEB@8 (..BT,B)	
	.IF@X0 ..BT,<
	  SETC@xM .SAC,A		
	  JAXE (.SAC,..JX1,CA8)>,< 
	    TXNE AXA,..JX1	
	 JRSTC>>>	.=AJXF	
	.BPOS.=C
	.;h.ERR.=0		
	IFN <<<B>&<^O<777740,,<(0>>>,
	  <MPRNTX<H(L1BPT,Bits 0 - 1<h2 non-zero in add=ress field: B)
=(	  ..ERR.=1
	  >=H
	IFN <.BSIZ.&<^=hO<-1,,777700>>>,
	  <MPRNTX(L1BPT>(,Bytesize greater>H than 6 bits: A)>h
	  ..ERR.=1
	 ? >
	IFN <.BPOS.&?(<^O<-1,,777700>>>?H,
	  <MPRNTX(L1B?hPT,Byte offset gr@eater than 6 bits@(: C)
	  ..ERR.=@H1
	  >
	
	IFN @h<..ERR.>,<-1,-1,-A1>
	
	IFE <..ERA(R.>,
	  <IFIDN <AHC><>,<POINT .BSIAhZ.,B>
	  IFDIF B<C><>,<POINT .BSB(IZ.,B,.BPOS.>
	BH  >
	PURGE ..ERRBh.,.BSIZ.,.BPOS.
	BSIZ.,.BPOS.
XJ XX6{h..ERR.=0		Y
	Y(.BSIZ.=A		
	  .BPOS.=C
	IYHFN <<B>&<^O<7777Yh40,,0>>>,
	  <MPZRNTX(L2BPT,Bits 0Z( - 12 non-zero inZH address field: ZhB)
	  ..ERR.=1
[	  >
	IFN <<D>&[(<-1,,0>>,
	  <MP[HRNTX(L2BPT,Bits 0[h-17 non-zero in o\ptional field: D\()
	  ..ERR.=1
	\H  >
	IFN <.BSIZ.\h&<^O<-1,,777700>>]>,
	  <MPRNTX(L2](BPT,Bytesize grea]Hter than 6 bits: ]hA)
	^..ERR.=1
	  >
	IFN <.BPO^(S.&<^O<-1,,777700^H>>>,
	  <MPRNTX(^hL2BPT,Byte offset_ greater than 6 b_(its: C)
	  ..ER_HR.=1
	  >
	IFN _h..ERR.,<-1,-1,-1>`		
	
	IFE ..ERR`(.,
	  <IFDIF <C`H><>,<<<POINT .BSI`hZ.,D,.BPOS.>!1B1a2>&<^O<777740,,-1a(>>>
	  IFIDN <CaH><>,<<<POINT .BSIahZ.,D>!1B12>&<^O<b777740,,-1>>>
	bb(   <1B0!<<^O<4000bH37,,-1>>&<B>>>	
	  >
	PURGE ..EcRR.,.BSIZ.,.BPOS.
	BSIZ.,.BPOS.7_5A0
	YN{  2H3*..ERR.=0		2h
	IFN <<A>&<^O<3777740,,0>>>,
	 3( <MPRNTX(LFIWM,Bi3Hts 0 - 12 non-zer3ho in address fiel4d: A)
	  ..ERR.4(=1
	  >
	IFN ..4HERR.,<-1,-1,-1>	
	IFE ..ERR.,<1B05!<<^O<400037,,-1>5(>&<A>>>	
	PURGE ..ERR.
	PURGEY>
@ i&K
	..STR0 i8(..LDB,A,B,C)..LDB,A,B,C)[8@ 8!3<1B<<A>-1>-1B<B>><A>-1[>!` x!7<<A>-<<A>/<B>>*<B>>A[?7 X"
   ..MX1x==B			
8.IFN ..MX1,ABSOLUTE,<
	MOVE A,[B]>
X   .IF ..MX1,ABSOxLUTE,<
	..MX2==0		
	IFE <..MX1>B853,<
	  ..MX2==1X
	  MOVEI A,..MxX1>	
	IFE ..MX2,<		
	IFE <..MX1>8B17,<
	  ..MX2==X1
	  MOVSI A,(.x.MX1)>>	
	IFE ..MX2,<		
	IFE <<.8.MX1>B53-^O777777X>,<
	x..MX2==1
	  HRROI A,<..MX1>>>	
	IFE ..MX82,<		
	IFE <<..MXX1>B17-^O777777B1x7>,<
	  ..MX2==1 
	 XHRLOI A,(.. 8MX1-^O777777)>> 
	IFE ..MX2,<		
 x	  MOVE A,[..MX1]>	
  >,[..MX1[Cm .H3DEFINE ..M.hP. (LOCN,MTEXT,PT/EXT)
	    <PRINT/(X Location 'LOCN'/H, Macro 'MTEXT': /hPTEXT
	    >
	 0 ..MP.(\.,A,<B>0()
	  PURGE ..MP.
	  URGE ..MP.[N^= QX%
	A==C	Qx	
	IF1,<IFDEF %RA,<PRINTX ?A ALRR8EADY DEFINED>>
	RXDEFINE %A (OP,ACRx,Y,MSK)<
	$A==<SZ B>		
	OP(<AC>,B'Y,MSK)><AC[Xp !8"
	MOVE .S!XAC,A
	MOVEM .SAC,B
	MOVEM .SA[ZI` ""
	MOVX .S"8AC,<A>
	MOVEM .SAC,B
	MOVEM ._CL@ }X'o
	..STR0 }x(.OPST1,<A>,<B>,C)1,<A>,<B>_CLV x(
	..STR0 (.OPST2,<A>,<B>,C)2,<A>,<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= f .6
   IFNB f@<A>,<
	TMSG <Af`>>
	CALL JSMSG0>
	CALL JSMSG0a4\G   <
	..PGV0=@=.		
	.JBVER=:^O`137		
	LOC	.JBVER		
	BYTE	(3)D( 9)A(6)B(18)C
@	.ORG	..PGV0		
.ORG	..PGV0		
a>Mm 8!%<POINT WIDX(B),A,POS(B)>B),A,POS(B)>a? x!<^L<<A>&<-<A>>>><<A>&<dA  de  ,~e&:x d. JRST RSKP"JRST RSKPeN^A  eN^gXY H1
	..TRR==h10		
	RADIX 8
	..NV==1			
	IRP (A,<
	  .TRV1 (HA)>		
	IFG ..NV-h5,<PRINTX ?TOO MANY ARGUMENTS: A>(
	JSP .A16,.SASEHT		
	RADIX ..TRRh		
	DEFINE ENDSA.<.ENSV1 <A>>
	.ENSV1 <A>>
	g4X1 81q
	.NAC==0X
	IRP A,<
	  PxUSH P,A		
	  .NAC=.NAC+1>		
	.N81==.NAC
	SETMI .XA16,[CAIA	
		AOSx -.N1(P)	
	  IRP A,<
		.N1=.N1-81
		MOVE A,-.N1X(P)>  
		SUB P,[x.NAC,,.NAC]  
		POPJ P,]	
	PUSH P,.A16	
	PUSH g$;8 ux'1
	..STR1 v(..TQC,,<A>,B,..STR4)<A>,B,.g%{R r8'
	..STR1 rX(..TQO,,<A>,B,..STR4)<A>,B,.g',W nX&w
	..STR1 nx(..TQZ,,<A>,B,..STR4)<A>,B,.gR$g  M
F=:0
T18=:1
T2=:2
T3=:3X
T4=:4
Q1=:5
Qx2=:6
Q3=:7
P1=:	10
P2=:11
P3=:1	82
P4=:13
P5=:14	X
P6=:15
CX=:16
P=:17
CX=:16}X/}
	..STKR=}x=10		
	RADIX 8
~	..STKN==0
	IRP ~8A,<
	  .STKV1 (~XA)>
	JSP .A16,.~xSTKST
	 ..STKN,,..STKN
	RADIX ..8STKR
	DEFINE ENDXSV.<.ENSV1 <A>>
gR~NSV1<A>>
	..STR0 l(..DPB,A,B,C)..DPB,A,B,C)i6tP x)!
	..STR1 (..TYNE,,<A>,B,..STR3)<A>,B,i6u` X)?
	..STR1 x(..TYNN,,<A>,B,..STR3)<A>,B,i7p d@.&
	HRROI .d`AC1,[ASCIZ \A\]
	PSOUTZ\A\]
	    ..S"XTR1 (..TY,C,<A>,B,..STR3)<A>,iF $X*'
	    ..S$xTR1 (..TY,CA,<A>,B,..STR3)<A>iFP #*
	    ..S#8TR1 (..TY,CE,<A>,B,..STR3)<A>iF` #x*!
	    ..S$TR1 (..TY,CN,<A>,B,..STR3)<A>iFp 8)M
	    ..SXTR1 (..TY,N,<A>,B,..STR3)<A>,iFt X)_
	    ..SxTR1 (..TY,NA,<A>,B,..STR3)<A>iFtP )S
	    ..S8TR1 (..TY,NE,<A>,B,..STR3)<A>iFu` x)Y
	    ..STR1 (..TY,NN,<A>,B,..STR3)<A>iFx 8)e
	    ..SXTR1 (..TY,O,<A>,B,..STR3)<A>,iF| X)w
	    ..SxTR1 (..TY,OA,<A>,B,..STR3)<A>iF|P )k
	    ..S8TR1 (..TY,OE,<A>,B,..STR3)<A>iF}` x)q
	    ..STR1 (..TY,ON,<A>,B,..STR3)<A>iGP 8)}
	    ..SXTR1 (..TY,Z,<A>,B,..STR3)<A>,iGT !X*
	    ..S!xTR1 (..TY,ZA,<A>,B,..STR3)<A>iGTP  *
	    ..S 8TR1 (..TY,ZE,<A>,B,..STR3)<A>iGU`  x*	
	    ..S!TR1 (..TY,ZN,<A>,B,..STR3)<A>iK4@ H0D
	..TRR==h10		
	RADIX 8
	..NV==1			
	IRP (A,<
	  .TRV1 (HA)>		
	JSP .A16,h.TRSET		
	 ..NV-1,,..NV-1
	RADIX( ..TRR		
	DEFINEH ENDTV.<.ENSV1 <A>>
	.ENSV1 <ib .x"w
		..TX(C,A,<B>)..TX(Cib 08#
		..TX(CA,A,<B>).TX(CibP /8"{
		..TX(CE,A,<B>).TX(Cib` /x"
		..TX(CN,A,<B>).TX(Cibp (x"G
		..TX(N,A,<B>)..TX(Nibt *8"S
		..TX(NA,A,<B>).TX(NibtP )8"K
		..TX(NE,A,<B>).TX(Nibu` )x"O
		..TX(NN,A,<B>).TX(Nibx *x"W
		..TX(O,A,<B>)..TX(Oib| ,8"c
		..TX(OA,A,<B>).TX(Oib|P +8"[
		..TX(OE,A,<B>).TX(Oib}` +x"_
		..TX(ON,A,<B>).TX(OicP ,x"g
		..TX(Z,A,<B>)..TX(ZicT .8"s
		..TX(ZA,A,<B>).TX(ZicTP -8"k
		..TX(ZE,A,<B>).TX(ZicU` -x"o
		..TX(ZN,A,<B>).TX(Zk:*g j .T
%%FOO==j@a
	BRK0 (%%FOO,B,1)
 (%%FOO,m$,I1P$m$,YP#m$-X5Q |m$-Z7Q xm$.zQ po&  8!<^L<-<<A>_<^L<A>>>-1>>>q
fC@ |x/g
	EXTEND A,[XBLT]XTEND q"eJ  P q6~i4 C q? #x"
	TXC A,<B>
	TXC A,:h $G
	A:&@ lX&q
	..TSIZ lx(..PST,C)
	.CASmE ..PST,<<
		MOVm8EM A,B>,<
		HRmXRM A,B>,<
		HRmxLM A,B>,<
		DPnB A,[POINTR (B,C)]>>INTR (B,:<;Y h&E
   DEFINh8E ..CNS2 (NEW,OLDhX)<
	  OLD>			
	..CNS ()>			
	:L;Y ex&=
   DEFINfE ..CNS (ARG)<
	f8..CNS2 <ARG>,>
fX
   DEFINE ..CNS2fx (NEW,OLD)<
	DEFgINE ..CNS (ARG)<
	  ..CNS2 <ARG>,gX<OLD'NEW>>>
   OLD'NEW>>>
   :Mi Xx-W
 DEFINE YELSE. <
	..TAGE Y8(JRST,)		
	..TAGYXF (,<:!>)		
	SYNYx ..TAGE,..TAGF	
Z   DEFINE ELSE. <Z8....U>>	

 DEFIZXNE ENDIF. <
	..TZxAGF (,<:!>)		
	..RSDF>			
   .:TH X(}
	..JNA3 (A,C,D)JNA3 :TI )
	..TSAC 8(..ACT,C)
	.IF0X ..ACT,<
	  SETCxM .SAC,C	
	  JXE (.SAC,D,<B>)>8,<	
	  JXO (C,D,<B>)>O (C,:TP (3
	..TSAC 8(..ACT,B)	
	.IFX0 ..ACT,<
	  ..TxSIZ (..PST,C)	
	  .CASE ..PST,<<8
		SKIPN B	
		XJRST A>,<
		HRRxZ .SAC,B	
		JUMPE .SAC,A>,<
		8HLRZ .SAC,B	
		XJUMPE .SAC,A>,<
		MOVE .SAC,B	
		JXE (.SAC,C,<8A>)>>>,<
	  JXE (B,C,<A>)>E:U` X(W
	..TSAC x(..ACT,B)	
	.IF0 ..ACT,<
	  ..T8SIZ (..PST,C)
	X  .CASE ..PST,<<
		SKIPE B	
		J	RST A>,<
		HRRZ	8 .SAC,B	
		JUMP	XN .SAC,A>,<
		H	xLRZ .SAC,B	
		J
UMPN .SAC,A>,<

8		MOVE .SAC,B	

X		JXN (.SAC,C,<
xA>)>>>,<
	  JXN (B,C,<A>)>N :Uh) 
x(q
	..TSAC,B)
	.IF0T,<
	M SETCB	
	N JXAC,C,<A>)>,<	
	  JXF (B,C,<A>)>F (B,:Ukh x)
	..JN (A,C,D)..JN (:Uki 8)
	..JE (<B>,C,D)JE (<:dH@ ix&[
	..TSIZ j(..PST,C)
	.CASj8E ..PST,<<
		MOVjXE A,B>,<
		HRRjxZ A,B>,<
		HLRkZ A,B>,<
		LDBk8 A,[POINTR (B,C)]>>INTR (B,:}i1 NX$w
	A==<<<Nx-<B>>&<B>>&<1B<^L<B>>>>>&<1B<;9 -o
	.POPX;LH SX%-
	IFNDEF SxC,<PRINTX ?C IST NOT DEFINED
	  T8A (<B>,D,.FWORTXD)>	
	IFDEF C,<Tx
	IFNDEF %C,<
U	  A (<B>,D,CU8)>	
	IFDEF %C,<UX
	  %C (A,<B>,D,C)>>A,<B>;LH V%k

	..NS==0V8			
	IRP C,<..NVXS=..NS+1>	
	IFE Vx..NS,<PRINTX ?EMPWTY STRUCTURE LISTW8, A>
	IFE ..NS-WX1,<		
	  ..STR0 Wx(A,<B>,<C>,D)X>
	IFG ..NS-1,<	X8	
	..ICNS			
	.XX.CNS (<E (A,<BXx>,,>) 
	IRP C,<Y		
	  IFNDEF C,Y8<PRINTX C NOT DEYXFINED>
	  IFDEF YxC,<
	  IFNDEF %ZC,<
	  ..CNS (<Z8,C,D>)>	
	  IFZXDEF %C,<
	  %CZx (..STR2,,D,C)>[ 
	  ..CNS (<)>)[8		
	  ..GCNS		
[X	  ..ICNS		
	  .[x.CNS (<E (A,<B\>>) 
	  IFNDEF %\8C,<
	  ..CNS (<\X,C,D>)>	
	  IF\xDEF %C,<
	  %C] (..STR2,,D,C)>]8>> 
	..CNS (<,,)>)		
	..GCNS>);LI ]x%o
	..CNS (<,C,B>).CNS (;LI ^8&

	IFDIF <^XD><F>,<
	  IFN^xB <D>,<
	    A_ (<B>,D,..MSK)	_8
	    IFNB <F>,_X<PRINTX C AND E_x ARE IN DIFFERENT` WORDS>>
	  ..MS`8K==0>		
	IFNB <`XF>,<
	  ..MSK=..MSK!<E>>MSK=..;LJ a&

	IFDIF <a8D><F>,<	
	  IFaXNB <D>,<
	    axA (<B>,D,..MSK)b>	
	  ..MSK==0>	b8	
	IFNB <F>,<
bX	  ..MSK=..MSK!<E>>MSK=..MSK!<;LJ c&+

	IFDIF <c8D><F>,<	
	  IFcXNB <D>,<
	    IcxFNB <F>,<		
		dA1 (B,D,..MSK)>d8 
	    IFB <F>,dX<		
		A2 (B,Ddx,..MSK)>> 
	  ..eMSK==0>		
	IFNB e8<F>,<
	  ..MSK=..MSK!<E>>MSK=;i [8-m
	SYN ELS[XE.,a
	SYN ENDIF[x.,b
	SYN ..TAGF\,c
	SYN ..TAGE,\8d
	.PSHX <
	  \XSYN a,ELSE.
	  \xSYN b,ENDIF.
	 ] SYN c,..TAGF
	]8  SYN d,..TAGE>
	..INDF			
	      NDF			
	   ;k +X*k
	SYN OD.+x,a
	SYN LOOP.,,b
	SYN TOP.,c
,8	SYN EXIT.,d
	.,XPSHX <
	 SYN a,,xOD.
	 SYN b,LOO-P.
	 SYN c,TOP.-8
	 SYN d,EXIT.>	 SYN d,EXIT.>;$r -....U;$s -....U;&` vX'E
	..TSIZ vx(..PST,C)
	.IF0w ..PST,<		
		SETw8CMM B>,<	
	wx..wXTSAC (..ACT,B)	
	x.IF0 ..ACT,<
		MOVX .SAC,C
x8		XORM .SAC,B>,<xX
		..TX(C,B,C)>>..TX(C,B,C);&` s'+
	..TSIZ s8(..PST,C)
	.CASsXE ..PST,<<
		SETsxOM B>,<
		HLLOSt B>,<
		HRROS t8B>,<
	  ..TSAC (tX..ACT,B)
	  .IFtx0 ..ACT,<
		MOVXu .SAC,C
		IORM u8.SAC,B>,<
		..TX (O,B,C)>>>T;&@ o8'
	..TSIZ oX(..PST,C)	
	.CAoxSE ..PST,<<
		SEpTZM B>,<	
		HLLp8ZS B>,<	
		HRRZpXS B>,<	
	  ..TSpxAC (..ACT,B)	
	q  .IF0 ..ACT,<
	q8	MOVX .SAC,C	
	qX	ANDCAM .SAC,B>,qx<
		..TX (Z,B,C)>>>TX (Z,B,;&81 Jx$a
	A==0		K	
	..TSA1==<Z BK8>		
	.IF ..TSA1,KXABSOLUTE,<	
	  IKxFE ..TSA1&^O77777L7777760,<A==1>> 
	60,<A==1>> ;&:= I8$S
	A==3		IX	
	IFE <B>+1,<IxA=0>	
	IFE <B>-J^O777777,<A==1> J8
	IFE <B>-^O777777B17,<A==2>7;&;Q LX$q
	A==0		Lx	
	..TSA1==0		
M	IRPC C,<
	  ..M8TSA1=..TSA1+1
	MMX IFE ..TSA1-B,<
	   IFIDN <C><ND>,<
		A==1>		
	;'STOPI>>		
   ..TX1$X==C			
%.IFN $x..TX1,ABSOLUTE,<
	TDA B,[C]>
%8   .IF ..TX1,ABSO%xLUTE,<		
	..TX2=%X=0		
	IFE <..TX1&&^O777777B17>,<
&8	  ..TX2==1		
	 &X TRA B,..TX1>
&x	IFE ..TX2,<		
	'IFE <..TX1&^O7777'877>,<
	  ..TX2=='X1		
	  TLA B,('x..TX1)>>
	IFE ..(TX2,<		
	  IFE <(8<..TX1>B53-^O7777(X77>,< 
	    ..TX0x3 (A,B)>>	
	IF1E ..TX2,<		
	  I18FE <..TX1+1>,<	
1X	    ..TX4 (A,B1x)>>
	IFE ..TX2,<2		
	  TDA B,[..TX1]>	
  >,[.;'` 2X#'
	IFIDN <2xA><Z>,<		
	  ..3TX2==1
	  ANDI 38B,^-..TX1>	
	IFI3XDN <A><O>,<		
	3x  ..TX2==1
	48OR4CMI B,^-..TX1>	
	IFIDN <A><C>,<4X		
	  ..TX2==1
4x	  EQVI B,^-..TX1>QVI B,^-..TX;' 58#5
	IFIDN <5XA><NN>,<
	  ..T5xX2==1
	  CAIN B6,0>		
	IFIDN <A68><NE>,<
	  ..TX26X==1
	  CAIE B,0>
	  CAIE B,0;' '*A
	..TSAC '8(..ACT,B)	
	.IF'X0 ..ACT,<
		PRIN'xTX ?TQA - B NOT( IN AC>,<
		TXA B,C>
		TXA;'R X)9
	..TSAC x(..ACT,B)	
	.IF0 ..ACT,<
	  ..J8X1==C
	  .IF0 <x..JX1-1B0>,<
		SXKIPGE B>,<
	    .IF0 <..JX1+1>,<8
		SKIPE B>,<
X		MOVE .SAC,B
	x	TXNE .SAC,C>>>,<
		TXNE B,C>
		TXNE B,C>;'W 8*5
	..TSAC X(..ACT,B)	
	.IFx0 ..ACT,<
	  ..JX1==C
	  .IF0 <%8..JX1-1B0>,<
		S%XKIPL B>,<
	&  %x.IF0 <..JX1+1>,<
		SKIPN B>,<
	&8	MOVE .SAC,B
		&XTXNN .SAC,C>>>,<
		TXNN B,C>
`P P  P 0P d  X1%
	.ACV2 (A)
	.ACV2 (d@ 19
   IFDEF8 A,<.IF A,SYMBOXL,<PRINTX ACVAR xA ALREADY DEFINED>>
	A==.FPAC+..8NAC	
	$A==A		
	IFB <B>,<..NACx=..NAC+1>
	IFNB <B>,<..NAC=..NAC+B>..NAC=..NACd` X1I
	IFG A-x.NPAC,<PRINTX ?TOO MANY ACS USED>
	IFLE A-4,<
	 X JSP .A16,.SAVA>x	
	IFG A-4,<
	  JSP .A16,.SAV8>JSP .A16,.SAV8>):A  ):9:A  9:
d; &(2X
	  IFIDN&H <A><.>,<
		XMO&hVEI .A16,B	
		P'USH P,.A16>
	  I'(FDIF <A><.>,<
	'H  .IFATM <A>,.BL'hF1	
	  IFN .BLF1(,<
	    .BLF1==0((		
	    .IF %A,(HMACRO,<	
		.BLF1(h==1>	
	    IFNB )<B>,<
		.BLF1==)(1>	
	    IFN .BL)HF1,<		
		LOAD .A)h16,A,B
		PUSH *P,.A16>>
	  IFE *(.BLF1,<		;IF WASN*H'T A STRUCTURE RE*hF,
		PUSH P,A>>+	
	  ..NA=..NA+1
	  ..NA=..NA+1
d;	 %h2.
	.BLCL1 A
	.BLCL1 
f=( "h2
	DEFINE #A<-^OB(.FP)>
	$A==<Z A>>
	9  G8$E
	..CSN==GXA
	..CSC==0
	IGxRP B,<
	IFE ..CHSN-..CSC,<
	  STH8OPI
	  ..CAS1 (HXB)>
	..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 ,<H |'i
	..PST==|8C&<-C>
	.IF0 .|X.PST-1,<
		SOS |xB>,<	
		MOVX .SA}C,-..PST 
		ADDM .SAC,B>		ADDMtH X1O
	IRP A,x<
	  .ENAV2 (A)>	  .ENAV2 (A)tI 81S
	.ENAV3 (A)
	.ENAV3 tI x1W
	PURGE A,A
  PURGE t,h #H2
	IRP A,#h<
   DEFINE A<....U>>FINE A<.v=H 0#
	IRP A,8<
	  .ENSV2 (A)>	  .ENSV2 (A)v=I x0'
	.ENSV3 (A)
	.ENSV3 v=I 80+
	DEFINE A<....U>EFINE vI9A  vI9~+H x!G
	A (\..FORN)
	A (\..~. !Q
	A BP `P =|RQ &2 F$7
	..IFT==F8A		
	IFE ..IFT,FX<
	B
	..IFT==0Fx>		
	IFN ..IFT,<
	C>N ..IFT,<&4 +H2p
	IRPC A+h,<
	B==0
	IFGE, "A"-"A",<IFLE ",(A"-"Z",<B=1>> 
	IFGE "A"-"0",<,hIFLE "A"-"9",<B-=1>>
	IFE "A"-"-(%",<B=1>
	IFE "-HA"-"$",<B=1>
	-hIFE "A"-".",<B=.1>
	IFE B,<STOPI>>IFE B,<STOP&t<H yx'W
	..PST==zC&<-C>	
	.IF0 z8..PST-1,<
		AOS zXB>,<	
		MOVX .SzxAC,..PST	
		ADDM .SAC,B>		ADDM&tj7Q ?2DQ x6MiTQ @;`P ?= ~8'{
	..TSIZ ~X(..PST,C)
	.IF0~x ..PST,<
		A B>,<	
		..LDB .SA8C,B,C 
		A .SAC>C 
		A .S?=	 X(
	..TSIZ x(..PST,C)
	.IF0 ..PST,<
		A B8>,<	
		..LDB .SAXC,B,C
		A .SAxC
		..DPB .SAC,B,C>DPB .SAC,B~ `8.
	.PSHX1 (.POPX2).PSHX1 B~	 `x.
	.POPX4 A
	.POPX4 B~	 ax.
	A
   bDEFINE .PSHX1 (WCb8H,STUFF)<
	WCH (bX<<STUFF>,<B>>)><STUFF>,<B>>)>B~
 a8.
	.POPX3 B
	.POPX3 C ^8-s
	.PSHX1 (.PSHX2,<A>)1 C ^x-w
	A (<B>)
	A (<BC	 _8-
   DEFIN_XE .PSHX1 (WCH,STU_xFF)<
	WCH (<<STUFF>,<A>>)><STUJDP'K%,z X!/<<<A>&<Bx>>B<^D70-POS(B)>><^D70-POS(B)>N
0@ N9:A  N9:Nd A" Nd Nd@A" Nd@Nd`A" Nd`NeA  NeNfA  NfO%<ZA  O%<ZO%<zA  O%<zO%=H 0
	.STKV2 (A)
	.STKV2 O%=I X0
	IFB <Bx>,<..STKN==..STKN+1>
	IFNB <B>,<8..STKN==..STKN+BX>
	..STKQ==..STKxN+1
	.STKV3 (A,\..STKQ)V3 (A,O%=I 80
   IFDEFX A,<.IF A,SYMBOxL,<PRINTX STKVAR A ALREADY DEFINE8D>>
	DEFINE A<-X^OB(P)>
	$A==<Z A>>
	$A==<S):A  S):S9:A  S9:Sd  	0H
	.TRV2 (A)
	.TRV2 (Sd@ 	H0R
	.TRV3 (	hA,\..NV)	
	IFB 
<B>,<..NV=..NV+1
(>
	IFNB <B>,<..NV=..NV+B>,<..Sd` 
h0`
   IFDEF A,<.IF A,SYMBO(L,<PRINTX TRVAR HA ALREADY DEFINEDh>>
	DEFINE A<^O
B(.FP)>
	$A==<Z A>>
	$A==<b\| !
	.XCREF
	.XCRF1 <..ACT,.X.CSC,..CSN,..IFT,x..JX1,..MSK,..MX1
,..MX2>
	.XCRF1 
8<..NAC,..NRGS,..N
XS,..NV,..PST,..ST
xKN,..STKQ,..STKR>
	.XCRF1,<..TRR,TX
	.XCRF1 <.SAV2,.SAV3,8POINTR,POS,WID,..XCAS1,..CNS,..CNS2x>
	.XCRF1 <..DPB,..GNCS,..ICNS,..8JE,..LDB,..STR0,.X.STR1,..STR2>
	.xXCRF1 <..STR4,..TQO,..TQZ,..TSAC,.8.TSIZ,..TX,..TY,.XACV1,.ACV2>
	.XCxRF1 <.ACV3,.CASE,.DECR0,.IF0,.INCR80,.OPST1,.OPST2,.XSTKV1>
	.XCRF1 <x.STKV2,.STKV3,.TRV1,.TRV2,.TRV3>
	.CREF
   3>
b)H X!
	IRP A,x<
	 IFDEF A,< .XCREF A>>A,< .>}{woP