Google
 

Trailing-Edge - PDP-10 Archives - AP-5471B-BM - sources/algmac.unv
There are 6 other files named algmac.unv in the archive. Click here to see a list.
x
(4/@P BDP BEP BHP BLP BPP BTP BXP B\P C|i@P C}`P C}pP  C&= =8+m
							S=XETONE(STOPS,A);*
	(STOPS,A);*C;L`P CJ$X`A  CJ$X`CK P CL Vp%;
$BTYPE==W$AS
$POP($TYPES,W0$T)
$DEFTF(\$T)
$PUSH($AS,$T)
$PUSH($BEGIN,0)
USH($BE2\)3PE2\[RPE2|:vA@E2|:vEB v@G' v G2H w G2~9  (2K
	IFB <A(8>,<
							SETZ	(XT,
		>
	 IFNB <(xA>,<
							MOV)EI	T,A(REV)
		>)8
							PUSHJ	SP,.CLOSE
	HJ	SPG3 w@G>$P +}
	PG>n9P G>nPA  G>nPG>vH1A  G>vH1GJ,`P GJH v`GJ` wGW+A  GW+I
9 P I k0'

$ITEM==0kP
IFN $STOPPER,<IkpFE $SBIT,<$ERROR(lTOO MANY STOPPERSl0)>
$ITEM==$ITEM!lP$SBIT
.A==$SBITlp
$SBIT==$SBIT_1>m

IFN $KWSTST,<m0$ITEM==$ITEM!KWSTmPST>
IFN $SYMSTSTmp,<$ITEM==$ITEM!SYnMSTST>
IFN $DECSn0PEC,<$ITEM==$ITEMnP!DECSPEC>
IFN $EnpXPCONT,<$ITEM==$IoTEM!EXPCONT>

Ro0ADIX 10
IFNB <BoP>,<$PRIOR==B>
IopFNB <C>,<$DC==Cp>
IFNB <D>,<$DIp0SC==D>
RADIX 8

IFNB <E>,<$ITppEM==$ITEM!E>
$IqTEM==$ITEM!$DC!<$q0PRIOR_4>!<$DISC_^qPD8>

EXTERN ZAqp
INTERN L$A,R$rA

L$A==$ITEM_r0-^D18
R$A==$ITEM&777777A==$ITEIH9P I  Y@%L
							SOS	A;*
					SI<Q I4+w )
	DEFINE 8A(BITS)
	<
	IFXN $BTYPE-$AS,<TESxT(N,B,BITS)
							GOTO	FALSE;*
	>IFE $BTYPE-$ASX,<TEST(E,B,BITS)x
							GOTO	TRUE;*
	>>OTO	TRUI5hW 8)!
	DEFINE XA(BITS)
	<
	IFxN $BTYPE-$AS,<TEST(E,B,BITS)
			8				GOTO	FALSE;*
	>IFE $BTYPE-$ASx,<TEST(N,B,BITS)
							GOTO	TRUE;*
	>>OTO	TRUI696 (8*W
	DEFINE (XASEL(SITE)
		<
		SELTH==ASELTH)
							TDNE	DEL)8,STOPS;*
							)XGOTO	.+4+SELTH;*
		TEST(E,FL,ERRL*);*
							PUSHJ*8	SP,.ERR;*
		AS*XELECT(SITE);*
		*x					GOTO	.-4-SELTH;*
		>
	SELI6I9 B,
	DEFINE B8A(REG)
		<
		TBX.INIT(REG)
					Bx		TLNE	T.REGZ,B;C*
							GOTO	FALSE;*
		>
	FAI`P Id[ X)Q
	IFN $BTxYPE-$AS,<TEST(N,DEL,A)
							GO8TO	FALSE;*
	>IFEX $BTYPE-$AS,<TESTx(E,DEL,A)
							GOTO	TRUE;*
	>GOTO	TRUE;*
	>Iei6 X)a
	IFN $BTxYPE-$AS,<TEST(E,DEL,A)
							GO8TO	FALSE;*
	>IFEX $BTYPE-$AS,<TESTx(N,DEL,A)
							GOTO	TRUE;*
	>GOTO	TRUE;*
	>I0 rp'R$A_-10&37R$A_-10&3I< S0%!
$POP($TYSPPES,$T)
$UNDEFTFSp($FCNT)
$PLAB(<TT>,\$T)
$PUSH($DO,$T)
$PUSH($DOIC.: p K2H w`K3P K0$o
$POP($TYKPPES,$T); UNSTACK KpLAST ITEM
$JLAB(L<S>,\$T); GENERATL0E THE JUMP PAST TLPHE ELSE PART
$PULpSH($ELSE,$T); STAMCK AWAY THE ELSE M0LABEL.
$PLAB(<F>MP,\$T); PLACE LABEMpL FOR ELSE DESTINATION.
 DESTINK6NHw )x2Y
	IFB <A*>,<
							SETZI*8	T2,
		>
	 IFNB*X <A>,<
							M*xOVE	T2,A
		>
	+						PUSHJ	SP,.EMITCODE
	SP,.EK:$;r +
	PaK:$@ 6p#u
$POP($TY7PES,$T)
IFE $TYP70ES-$LOC,<
$.==$L7PCNT
							SUB	S7pP,[XWD $.,$.];*
8IFN $PLEVEL-PMAX,80<; UPDATE DISPLAY8P
$T==DBASE+$PLEV8pEL-1
							POP	9SP,$T;*
>
$POP(90$TYPES,$T) >
IFE9P $TYPES-$REGIS,<
REPEAT $LRCNT,< :$T==RBASE-$T
			:0				POP	SP,$T;*
:P$POP($TYPES,$T)>>:p
IFE $TYPES-$NEW;,<
							POP	SP;0,LCOMPNAME;*
			;P				POP	SP,LLEXEX;p;*
$POP($TYPES,$<T)
>
IFN $$SP,<<0
$EXAMINE($TYPES<P,$T)
IFE $TYPES-<p$PROC,<
							P=OPJ	SP,0;*
$POP(=0$TYPES,$RCNT)
$P=POP($LCNT,$LRCNT)
$POP($NEWCT,$NEW>CT)
$PLEVEL==$PL>0EVEL-1
>>
IFE $>P$SP,<
$ENDALL
>P,<
$ENDALL
>KK`P KK@P KK=Q KN-@ 08+
		SELTH=0X=ESELTH
							T0xDNE	DEL,STOPS;*
1							GOTO	.+4+S18ELTH;*
		TEST(E,1XFL,ERRL);*
					1x		PUSHJ	SP,.ERR;*2
		ESELECT(A);*28
							GOTO	.-4-SELTH;*
		.-4KN-I1 $8*+
							L$XDB	T,DCBYTE;*
		$x					PUSHJ	SP,@ET%ABLE(T);*
						%8	NOOP	.ESEL!A;*
	P	.ESEL!A;*Q @Kc+q 
%EXPROC(C,D,E,F,G,H,I,J,K, L,M,N,O,P,Q@,R,S,T,U,V,W,X,Y>)
V,Kc[SQ aL:@ X0y
							HxLLZ	A,LEXEX-B+SYM;*
							TLZ	A,$LEXSA;*
		L:` X0
							MxOVE	A,LEXEX+1-B+SYM;*
	X+1-BL:%q 
							MP;*
				NDI	A,$OPDSC;*
							LSH	A,-10;*
	LSH	AL:exw 
x0g
							HRRZ	A,B;*
	HL; 81
							HXLLZ	A,LEXEX-B+SxYM;*
							TLZ	A,$LEXBL;*
		L;&(7 X0c
							HxLRZ	A,B;*
				
			ANDI	A,$TRANK
8;*
							LSH	A,-14;*
	LSH	AL;' 
X0Y
							H
xLRZ	A,B;*
							ANDI	A,$TYPE;*
	I	A,$TYPE;MM@ 98+U
							P9XUSHJ	SP,.FAIL;*
9x	RADIX	10;*
	XLI:ST
							XWD	<.:8.B>!<..C>,A;*
	LIST
	RADIX	8;*
	
	RADIX	8;M\P !2
%FAKE(< A,B,C,D,E,F,@G,H,I,J,K,L`,M,N,O,P,Q,R,S,T,U,V,W,X,Y>)
V,W,M
{8A  M
{8M
d^A  M
d^M9A  M9M$: :3WREOPEN(A):8
							MOVE	T2,:XA
							PUSHJ	:xSP,.FETCH
							MOVE	A,T4
		M$ N0%	
$POP($TYNPPES,$T); UNSTACK NpLAST ITEM
IFE $TOYPES-$ELSE<; WE HO0AD AN ELSE PART
OP$PLAB(<S>,\$T); POpALE THE SKIP LABEPL
>
IFE $TYPES-P0$THEN,<; WE ONLY PPHAD A THEN PART
Pp$PLAB(<F>,\$T); PQLACE THE FALSE LABEL.
>FALSE LAM'DY x19
	IFNB <A>,<
							MOVE8	T,A;*
	>
	IFNXB <B>,<
							xMOVE	T1,B;*
	>
							PUSHJ	SP,.ABSFIX;*
	SP,M'D X1G
	IFNB <xA>,<
							MOVE	T,A;*
	>
	IFN8B <B>,<
							XMOVE	T1,B;*
	>x
							PUSHJ	SP,.ADDFIX;*
	SP,M'F)6 81+
	IFNB <XA>,<
							MOVEx	T,A;*
	>
	IFB <B>,<
							P8USHJ	SP,.RAFIX;*
	>
	IFNB <B>,<x
							MOVE	T1,B;*
							PUSH8J	SP,.ADRFIX;*
	>P,.ADRFIX;*
	M'F\A  M'F\M0P M:d]RA  M:d]RM?X6 4p#3
$T==$LCN5T+$LRCNT+$NEWCT
50IFN <$PLEVEL-PMAX5P>*$LCNT,< ; ACCOU5pNT FOR PUSHED DIS6PLAY REG
$T==$T+601
>
$DEFST(A,\$T,\SP);
(A,\M?x9 !2
%FORWARD (<A,B,C,D,E,@F,G,H,I,J,K`,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y>)
V,MN-I1 '8*?
							L'XDB	T,DCBYTE;*
		'x					PUSHJ	SP,@FTABLE(T);*
	@FTO jP&WA==BVBIT
BVBIT==BVBIT_1
VBIT==BVBIT_1
O>d@P O?%p +QtKA  QtKS Gp$E
$BTYPE==H$IF
$LABCNT==$LAH0BCNT+1
$PUSH($IFHP,$LABCNT)
$DEFTF(\$LABCNT)DEFTFS:  Y%H
							AOS	A;*
					AS:$^A  S:$^U>M` x2
	IFNB < A>,<
							MOVE 8	T,A;*
	>
				 X			HLRZM	T,CAX;*
							PUSHJ	SP,.RAFIX;*
		SP,WA  WW&eH< "2
							SETOM	CAX;*
		SWLzQPXXP XYtP 
X{vP XySP X{P %X{ P X{8P X{@P X%@P X%pP 
X%}PX-LrPX-iP@X-y@P!X.PX.@PX/ XM\P XMmP XdRP Xd,PP 
2P XM9P X}`P X+qP X,PP XX6P X[ P X9P X0P  XH9P XI8P"XLTP Xz:P X%	7P DX%2P X-Z7P X-mP$X.P X4P X=
6P YA  YYT "X2
							M"xOVEI	T,A13+1;*
	#						MOVEM	T,LAC;*
	OVEM	T,LACY)9 $X2)
							M$xOVE	T,A;*
					%		MOVEM	T,LAC;*
	OVEM	T,LAC;*
Y8; #X2!
							M#xOVE	T,LAC;*
				$			MOVEM	T,A;*
	MOVEM	T,A;*
Y}\A  Y}\YD+A  YD+YD^A  YD^Y
@ s@Y&` t Yn tY  s`Y&t[WA  Y&t[WY'KwP Y2/	<A  Y2/	<Y6~i  pY6~i6 p@Y6~k  sY6~k@ rY6~kV r@Y:}pP Y>
@ /3
	IFNB </8B>,<
							MOVE/XI	T1,B
		>
	 I/xFB <A>,<
						0	HRLI	T1,<MOVE 0,08(SYM+1)>_-22
		>0X
	 IFNB <A>,<
0x							HRLI	T1,<M1OVE 0,(A)>_-22
18		>
							PUSHJ	SP,.LOAD
	SHJY>
H` 4X37
	IFNB <4xB>,<
							MOVE5I	T1,B
		>
	 I58FB <A>,<
						5X	HRLI	T1,<SETCM 05x,(SYM+1)>_-22
		6>
	6IFNB <A>,<
							HRLI	T1,<6XSETCM 0,(A)>_-226x
		>
							PUSHJ	SP,.LOAD
	SY>
K@ 1x3!
	IFNB <2B>,<
							MOVE28I	T1,B
		>
	 I2XFB <A>,<
						2x	HRLI	T1,<MOVN 0,3(SYM+1)>_-22
		>38
	 IFNB <A>,<
3X							HRLI	T1,<M3xOVN 0,(A)>_-22
4		>
							PUSHJ	SP,.LOAD
	SHJY> @!$2
%LOCAL(<`A,B,C,D,E,F,G,H,I,J,K, L,M,N,O,P,Q,@R,S,T,U,V,W,X,Y>)
V,WY>~ UP%3
$LABCNT=Up=$LABCNT+1
$PLABV(<T>,\$LABCNT)
$V0PUSH($LOOP,$LABCNT)($LOOP,$LABCNY?P YC.: p YN-@ 2x+'
		SELTH=3=LSELTH
							T38DNE	DEL,STOPS;*
3X							GOTO	.+4+S3xELTH;*
		TEST(E,4FL,ERRL);*
					48		PUSHJ	SP,.ERR;*4X
		LSELECT(A);*4x
							GOTO	.-4-SELTH;*
		.-4YN-I1 %x*7
							L&DB	T,DCBYTE;*
		&8					PUSHJ	SP,@LT&XABLE(T);*
						&x	NOOP	.LSEL!A;*
	P	.LSEL!A;* 81
							MXOVE	T,[A];*
			x				PUSHJ	SP,.MABS;*
	J	SP,.MAB[
							PXUSHJ	SP,.PCALL;*
							NOOP	A;*
				NOOP	A;*[> ;83_
							P;XUSHJ	SP,.MOB;*
	;x						NOOP	A;*
				NOOP	A;*
[>&[ [@&0
Q.A==$Q[`;
EXTERNAL B.A;\
INTERNAL C.A,Q\ .A;
C.A:

DE\@FINE $BASE <B.A>\`

%TITLE(A,ALG]OL COMPILER MODUL] E A)

; SET UP]@ SOME CHECKS:

]`$CHKDEF(<SP,PMAX,^RBASE,RMAX>)

;^  SET UP ASSEMBLY ^@TIME VARIABLES:
^`
$ECNT==0			; NU_MBER OF MACRO ERR_ ORS FOUND
$LABCN_@T==0		; UNIQUE LA_`BEL COUNTER
$$SP`==0			; ASSEMBLY ` TIME STACK POINTE`@R
$$SPMAX==0		; ``RECORD OF MAX OF a$$SP
$PLEVEL==0	a 	; DEPTH OF PROCEa@DURE NESTING
$ALa`LOW==0		; RECORD bOF WHICH CONSTRUCb TS ARE ALLOWED
b@
; COUNTERS USED b`FOR SPACE ALLOCATcION:

$NEWCT==0c 		; LEFTOP REGISTc@ER
$LCNT==0			; c`LOCALS
$LRCNT==0d		; REGISTERS LOCd AL TO PROCEDURES
$RCNT==0			; REGd`ISTERS LOCAL TO CeURRENT PROCEDURE
$MCNT==0			; LOWe@ SEGMENT AREA FORe` OWNS AND NON STAfCK
			; VERSION LOCALS

SION ]I A  ]I ]6I A  ]6I ]I A  ]I ]-@A  ]-@]-I6 X)'
							MxOVE	T,NDEL;*
	TEL(A)
	;*
	TE]-KR x)i
							MOVE	T,NDEL;*
	TNEL(A)
	*
	TN]=Kx %@"4
							P%`USH	SP,LLEXEX;*
&							PUSH	SP,LC& OMPNAME;*
$NEWCT&@==2
$PUSH($NEW,0)
$PUSH($NEW,0]>-mP @]>~ + ]?&= +8*i
	IFN $BT+XYPE-$AS,<
						+x	TDNE	DEL,STOPS;*,
							GOTO	FAL,8SE;*
	>IFE $BTYP,XE-$AS,<
							T,xDNN	DEL,STOPS;*
-							GOTO	TRUE;*
	>GOTO	TRUE;]?&KxQ `z]OMPA  ]OMP_M0P _(<P _
}pP _ TP%)
$POP($TYTpPES,$T)
$JLAB(<WU>,\$T)
$PLAB(<F>,\$T)
$PLAB(<F>_@A  _@_RD[@P _^p ! "
$OWNN(<!@A,B,C,D,E,F,!`G,H,I,J,K,L>)
I,J,K,La P aNI P a3-j` +X2g
	IFB <A+x>,<
							SETZI,	T2,
		>
	 IFNB,8 <A>,<
							M,XOVE	T2,A
		>
	,x						PUSHJ	SP,.PLUNK
	HJ	SP,.Pa3-jt -82u
	IFB <A-X>,<
							SETZI-x	T2,
		>
	 IFNB. <A>,<
							M.8OVE	T2,A
		>
	.X						PUSHJ	SP,.IPLUNK
	J	SP,.Ia6P a?>$  ua?>$@ u a?>$` u@a?>% u`a?>%  vaJ,h1A  aJ,h1aJ|92 '"X
$PLEVEL=' =$PLEVEL+1
IFG $'@PLEVEL-PMAX,<
$E'`RROR(<PROCEDURES (NESTED MORE THAN ( PMAX >)
>
$PUSH(@($NEWCT,$NEWCT)
(`$PUSH($LCNT,$LRCN)T)
$PUSH($PROC,$) RCNT)
$LRCNT==0
$LCNT==0
$RCNT=)`=0
$NEWCT==0

*IFNDEF A,<
DEFI* NE A
<
							*@PUSHJ	SP,.A;*
>*`>
							.A:;*
							INTERN	.A;*
	INTERN	.aJ~:tAaJ~:td d{vP"dySP 
d{P5d{@P5d{8P"d%}P>ld-LrP>d-iPLd-y@PMd.P#-Bd.@P#5d/
ddRP cdd,PP `dd\ P!'BdeRP 
deySP de{@P de{SP!hdf9P adf<`P!!BdmZP JdtPP#/Bdu}P 1:d~ P#3*d~{@P !d
2P dM9P#Jd}`P Zd+qP!&d,PP dX6P"	d[ P Rd9P d0P dH9P RdI8P dLTP"
dz:P!Gd%	7P d%2P#Rd-Z7P Rd-mP d.P Rd4P dd=
6P eA  ee
9 P e=z @!
2
%REGISTE`R(<A,B,C,D,E,F,G,H,I,J, K,L,M,N,O,P,@Q,R,S,T,U,V,W,X,Y>)
Ve~	7 &82=
	IFB <A&X>,<
							SETZ	&xT,
		>
	 IFNB <'A>,<
							MOV'8EI	T,A(REV)
		>'X
							PUSHJ	SP,.REOPEN
	J	SPeKx >+s
							M>8OVE	STOPS,A;*
	E	STOPS,A;*
	e0P e4\@ %X2/
							M%xOVNI	REV,SYM;*
	NI	REV,SYM;*
	e24M@ t`e268@ t@e6P f:@ x0?
							MOVE	T,LEXEX;*
		8					TLZ	T,$LEXBLX;*
							OR	T,xA;*
							MOVEM	T,LEXEX;*
	EMf:` 80E
							MXOVEM	A,LEXEX+1;*
	A,LEXEX+1;*f; 	0Q
							M	8OVE	T,LEXEX;*
			X					TLZ	T,$LEXSA	x;*
							OR	T,
A;*
							MOVEM	T,LEXEX;*
	EMg Wp%C
$POP($TYXPES,$T)
$PLAB(<FX0>,\$T)
$UNDEFTF($TCNT)$UNDEFTF(g4\z <X+g
							M<xOVEM	STOPS,A;*
	M	STOPS,A;*
gl\Y ;+a
							P;8USHJ	SP,.SEMERR;*;X
XLIST
RADIX 10;x;*
							XWD	B<,A;*
RADIX 8;*
LIST
	IX8;*Z@%T
							SETZM	A;*
			Sg%{R 
	$HALVE(
	IFN LH,<
							TLO	A,LH;
	>IFN RH,<
							IORI	A,RH;*
	>ORI	A,RH;*g&= >x+{
							S?AVESTOPS(A);*
	?8						ADDSTOPS(B);*
	DSTOPS(Bg&@ Z%P
							SETOM	A;*
			Sg')9 X(}
	$HALVE(xB);
	IFN LH,<
							TLZ	A,LH;8*
	>IFN RH,<
		X					ANDCMI	A,RH;*
	>CMI	A,RHg
	SETZERO(FL,A)
	TZEROg2F0 -X+G
	IF DEL 58EQ LEFT BRACKET
5X							CAME	DEL,Z5xLBRA;*
							GO6TO	FALSE;*
	 THE68N
	  BEGIN
	   6XSBRACK;
							N6xOOP	.SSEL;
	  EN7DD;
	FI;
	IF DE78L EQ DOT
							7XCAME	DEL,ZDOT;*
7x							GOTO	FALSE8;*
	 THEN
	  BE88GIN
	   SDOT;
	8X						NOOP	.SSEL;8x
	  ENDD;
	FI;
	 ENDD;
	FI; x1{
							HRRZ	T,RA;*
					8		HRL	T,CAX;*
		X					MOVEM	T,A;*x
							HRLZI	T,<JRST 0>_-22;*
	8						PUSHJ	SP,.MABS;*
	J	SP,.MgN-@ -x*
		SELTH=.=SSELTH
							T.8DNE	DEL,STOPS;*
.X							GOTO	.+4+S.xELTH;*
		TEST(E,/FL,ERRL);*
					/8		PUSHJ	SP,.ERR;*/X
		SSELECT(A);*/x
							GOTO	.-4-SELTH;*
		.-4gN-I1 "*
							T"8RNN	FL,TRPOFF;*
"X							PUSHJ	SP,."xESBLK##;*
						#	LDB	T,DCBYTE;*
#8							PUSHJ	SP,@#XSTABLE(T);*
				#x			NOOP	.SSEL!A;*
	P	.SSEL!A;gN-MP gRI6 !82
							H!XRLZI	SYM,$STMT!A;*
	M,$STMT!AgR A  gR gR~
`P gSyP gSI1P gSY  X)m
	SETONE(FL,A)
	ETONE(gS: 3a0(SYM)gS: 3c1(SYM)gWwP gW
rP gW
|P gfhP gfn)9 X1k
							MxOVEM	LOP,SYM;*
							MOVE	T,LLEX8EX;*
							MOVEXM	T,LEXEX;*
				x			MOVE	T,LCOMPNAME;*
							MOVE8M	T,COMPNAME;*
	T,COMPNAME;*
	gfn8; 81Y
							MXOVEM	SYM,LOP;*
	x						MOVE	T,LEXEX;*
							MOVEM8	T,LLEXEX;*
				X			MOVE	T,COMPNAMxE;*
							MOVEM	T,LCOMPNAME;*
	,LCOMPNAME;*
	gfn=Q hP h:
8` X-G
		T.INITX8(A)
							TLNEXX	T.REGZ,$AMAC;*
Xx							GOTO	FALSE;*
		OTO	FALSEh:
P m8.u
	T.INIT(mXA)
							TLNN	mxT.REGZ,$ARR!$ARC;n*
							TLNN	T.n8REGZ,$DECL;*
			nX				GOTO	FALSE;*
	GOTO	FALSE;*
		T.INITPx(A)
							TLNEQ	T.REGZ,$ARC;*
	Q8						GOTO	FALSE;*
		OTO	FALSE;h:,@ [x-i
	T.INIT(\A)
							TLNE	\8T.REGZ,$KIND;*
	\X						TLNE	T.REGZ\x,$KIND-$ARR;*
		]					GOTO	FALSE;*
	GOTO	FALSE;*h: J8,Y
		T.INITJX(A)
							TLNEJx	T.REGZ,$TYPE-$B;K*
							GOTO	FALSE;*
		OTO	FAh: Cx,O
		T.INITI8(A)
							TLNEIX	T.REGZ,$TYPE-$C;Ix*
							GOTO	FALSE;*
		OTO	FAh:yr o.
	T.INIT(o8A)
							TLNN	oXT.REGZ,$SINGLE
	ox						GOTO	FALSE
			GOTO	FALSE
		T.INITYX(A)
							TLNEYx	T.REGZ,$CONST;*
							GOTO	FALSE;*
		OTO	FALSh:$Xv l.g
	T.INIT(l8A)
							TLNN	lXT.REGZ,$DECL;$
	lx						GOTO	FALSE;$
	GOTO	FALSE;h:/
 D-[
	T.INIT(T8A)
							TLNE	ZXT.REGZ,$KIND;*
	Zx						TLNE	T.REGZ[,$KIND-$EXP;*
		[8					GOTO	FALSE;*
	GOTO	FALSE;*h:5{@ eX.=
	T.INIT(exA)
							TLNE	fT.REGZ,000400;*
f8							TLNN	T.REGfXZ,000100;*
					fx		GOTO	FALSE;*
	g						TLNE	T.REGZg8,000200;*
						gX	GOTO	FALSE;*
	GOTO	FALSE;*
	h:5|V jX.]
	T.INIT(jxA)
							TLNE	kT.REGZ,000300
		k8					TLNN	T.REGZ,kX000400
							GOTO	FALSE
			GOh:5}@ h.Q
	T.INIT(h8A)
							TLNE	hXT.REGZ,000400;*
hx							TLNN	T.REGiZ,000200;*
					i8		GOTO	FALSE;*
	iX						TLNE	T.REGZix,000100;*
						j	GOTO	FALSE;*
	GOTO	FALSE;*
	h:5}` cx.)
	T.INIT(dA)
							TLNE	d8T.REGZ,$STATUS;*
							TLNE	T.REdxGZ,$STATUS-$FOW;*e
							GOTO	FALSE;*
	GOTO	FALh:H CX,1
		T.INITEX(A)
							TLNEEx	T.REGZ,$TYPE-$I;F*
							GOTO	FALSE;*
		OTO	FAh:M[  Gx-3
		T.INITUx(A)
							TLNEV	T.REGZ,$AM-$IMM;V8*
							GOTO	FALSE;*
		OTO	FAh:Mj: @8,
	IFIDN <@X$BTYPE><$AS>,<$ER@xROR TEST CANT BE AUSED IN  AS>
	IFA8B <A>,<T.REGZ==SAXYM>
	IFNB <A>,<T.REGZ==A>
	<h:N+ _8-
							T_XLNN	A,$IRLR;*
	_x						GOTO	FALSE;*
	GOTO	FALSE;h:` Lx,m
		T.INITM(A)
							TLNEM8	T.REGZ,$TYPE-$L;MX*
							GOTO	FALSE;*
		OTO	FAh:f  H,G
		T.INITH8(A)
							TLNEHX	T.REGZ,$TYPE-$LRHx;*
							GOTO	FALSE;*
		OTO	Fh:p N,w
		T.INITN8(A)
							TLNENX	T.REGZ,$TYPE-$N;Nx*
							GOTO	FALSE;*
		OTO	FAh:}i  Qx-
		T.INITR(A)
							TLNER8	T.REGZ,$VAR1;*
RX							GOTO	FALSE;*
		OTO	FALSEh:~	9 tX/+
							MtxOVE	T,OP;*
					u		CAME	T,A;*
		u8					GOTO	FALSE;*
	GOTO	FALSE;*h:~{@ b.
	T.INIT(b8A)
							TLNE	bXT.REGZ,$STATUS;*
							TLNE	T.REcGZ,$STATUS-$OWN;*c8
							GOTO	FALSE;*
	GOTO	FALh;
  O8-
		T.INITOX(A)
							TLNEOx	T.REGZ,$PHI;*
	P						GOTO	FALSE;*
		OTO	FALSE;h;+` ]X-w
	T.INIT(]xA)
							TLNE	^T.REGZ,200000;*
^8							TLNN	T.REG^XZ,100000;*
					^x		GOTO	FALSE;*
	GOTO	FALSE;*
	h;L@ p8/
	T.INIT(pXA)
							TLNN	pxT.REGZ,$AMAC;*
	q						TLNN	T.REGZq8,$INDC
							GOTO	FALSE
			GOh; FX,;
		T.INITFx(A)
							TLNEG	T.REGZ,$TYPE-$R;G8*
							GOTO	FALSE;*
		OTO	FAh;Y` `8.
	T.INIT(`XA)
							TLNE	`xT.REGZ,$STATUS;*
							TLNE	T.REa8GZ,$STATUS-$REG;*aX
							GOTO	FALSE;*
	GOTO	FALh;[ ux/7
							MvOVE	A,OP;*
				v8			TRNE	A,$OPPRIvX-$RELPRI;*
					vx		GOTO	FALSE;*
	GOTO	FALSE;*
	h;]@ w8/?
							TwXRNE	REV,SYM-LOP;*wx
							GOTO	FALSE;*
	GOTO	FALh; KX,c
		T.INITKx(A)
							TLNEL	T.REGZ,$TYPE-$S;L8*
							GOTO	FALSE;*
		OTO	FAh;  TX-+
		T.INITTx(A)
							TLNEU	T.REGZ,$STATUS-$U8SIM;*
							GOTO	FALSE;*
		OTh;S Vx-=
		T.INITW(A)
							TLNEW8	T.REGZ,$SINGLE;*WX
							GOTO	FALSE;*
		OTO	FALh;J` qx/
							TrLNE	A,$STACK;*
r8							GOTO	FALSE;*
	GOTO	FALSEh;%| x8/G
							TxXEST(E,STOPS,NOTTOxxP);*
							GOTO	FALSE;*
	GOTOh;&{` S-
		T.INITS8(A)
							TLNESX	T.REGZ,$VAR2;*
Sx							GOTO	FALSE;*
		OTO	FALSEh;4@ D8,)
		T.INITDX(A)
							TLNEDx	T.REGZ,$KIND-$VAER;*
							GOTO	FALSE;*
		OTO	h;5S rx/!
	T.INIT(sA)
							TLNN	s8T.REGZ,777770;*
sX							TRNN	T.REGsxZ,777777;*
					t		GOTO	FALSE;*
	GOTO	FALSE;*
	hDP hHP hLP hPP hTP i
I xirA  iri-Lr qi5 q ilA  ili~@ q`i` r`i%	7 p`i%p q@i' r i` )3
	IFN $BT8YPE-$AS,<TEST(N,TX,A)
							GOTOx	FALSE;*
	>IFE $BTYPE-$AS,<TEST(E8,T,A)
							GOTO	TRUE;*
	>GOi@ X(e
	$HALVE(xC)
	IFN LH,<
	
						TLNA	B,LH
8;*
	>IFN RH,<
	
X						TRNA	B,RH;*
	>NA	B,RHi ){
	IFN $BT8YPE-$AS,<TEST(N,FXL,A)
							GOTxO	FALSE;*
	>IFE $BTYPE-$AS,<TEST(8E,FL,A)
							GOTO	TRUE;*
	>i"-` I$W
$UNDEFTFI0($FCNT)
$POP($TYIPPES,$T); UNSTACK IpLAST ITEM
$PLAB(J<T>,\$T); AND PLAJ0CE IT HERE
$PUSHJP($THEN,$T); AND CJpHANGE TYPE TO THEN.
TYPE TO THEi#-j`A  i#-j`i8th X0
							TxLNE	A,$AM-$ACC;*
							GOTO	TRU8E;*
							TRNN	XA,777777;*
				x			GOTO	FALSE;*
	GOTO	FALSE;*
i8tq 80
							TXLNN	A,$AM-$ACC;*x
							GOTO	FALSE;*
	GOTO	FALi8tT ~X/y
							T~xLNN	A,$ARC;*
							GOTO	FALSE;*
	GOTO	FALSE;*i8t  |8/g
							T|XLNN	A,$TYPE-$B;*|x
							GOTO	FALSE;*
	GOTO	FALi8u y8/O
							TyXLNN	A,$TYPE-$I;*yx
							GOTO	FALSE;*
	GOTO	FALi8u@ }8/q
	T.INIT(}XA)
							TLNN	}xT.REGZ,$TYPE-$L;*~
							GOTO	FALSE;*
	GOTO	FALi8uL@ {8/_
							T{XLNN	A,$TYPE-$LR;{x*
							GOTO	FALSE;*
	GOTO	FAi8u| X0+
							MxOVE	T,OP;*
							CAMN	T,A;*
		8					GOTO	FALSE;*
	GOTO	FALSE;*i8v  z8/W
							TzXLNN	A,$TYPE-$R;*zx
							GOTO	FALSE;*
	GOTO	FALi8v:7 80
							TXLNN	A,$SINGLE;*
							GOTO	FALSE;*
	GOTO	FALSi8vKx x03
							TEST(N,STOPS,NOTTO8P);*
							GOTO	FALSE;*
	GOTOi8vj9 80!
	T.INIT(XA)
							TLNN	xT.REGZ,777770;*
							JUMPN	T.REGZ,FALSE;*
	REi:-@ x)A
	IFN $BTYPE-$AS,<TEST(E,T8,A)
							GOTOX	FALSE;*
	>IFE $xBTYPE-$AS,<TEST(N,T,A)
							GOTO	TRUE;*
	>GOi:<  x*	
	IFN $BT YPE-$AS,<TEST(E,F 8L,A)
							GOT XO	FALSE;*
	>IFE  x$BTYPE-$AS,<TEST(!N,FL,A)
							GOTO	TRUE;*
	>i>@ 783M
	IFE A-7X1, <
							PUSH7xJ 	SP,.TOCT1
		>8
	IFE A-2, <
	88						PUSHJ	SP,.T8XOCT2
		>
	IFNB 8x<B>,<
							TL9Z	B,$AM
							98TLO	B,$CT
					9X		HRR	B,T2
		>
	R	B,T2
		>@P iJd P!iJeySP  iJ}`P @iKySP o"MI  QP%
$BTYPE==Qp$WHILE
$LABCNT==R$LABCNT+1
$PLAB(R0<W>,\$LABCNT)
$PRPUSH($WHILE,$LABCNRpT)
$DEFTF(\$LABCNT)DEFTF(\$LABCut@A  ut@u(<A  u(<u0A  u0u
,z7A  u
,z7u
}{A  u
}{u|i@A  u|i@u}KwA  u}Kwu}PA  u}Pu}\A  u}\u}`A  u}`uN`A  uN`uxA  uxu~@A  u~@uf9 A  uf9 ut@A  ut@u|`A  u|`uA  uu`A  u`up [%X
							SETZM	A;*
			SuFI9A  uFI9u~ A  u~ u~-pA  u~-pu~K`A  u~K`u$PA  u$Pu& A  u& u&0A  u&0u&nA  u&nu&vI3A  u&vI3u2
)6A  u2
)6u2(Au2(u2.A u2.u2MiA u2Miu2|i@A  u2|i@u2}`A  u2}`u2}i`A  u2}i`u3@A  u3@u30A  u30u6Mm9A  u6Mm9u:(A  u:(u:~@A  u:~@u?A  u?u?=`A  u?=`uBEA  uBEuBf\`A  uBf\`uB~pA  uB~puCxrA  uCxruJ( A  uJ( uJ,A  uJ,uJ-PA  uJ-PuK@A  uK@uNA  uNuNdtA  uNdtuO$\A  uO$\uO&*7A  uO&*7uO=A  uO=uRD[@A  uRD[@uRMY9A  uRMY9uVmZA  uVmZuVvJ6A  uVvJ6uWM9A  uWM9uZ
[P 	P  	@P 	
9  3oB.'NCOMP	
,z7P 	
`P`	DXu