Google
 

Trailing-Edge - PDP-10 Archives - bb-d868b-bm_tops20_v3a_2020_dist - 3a-sources/rmssym.unv
There are 4 other files named rmssym.unv in the archive. Click here to see a list.
xS@P CO[2 &h*D
	IFNB <'B>,<IFL A-B,<PR'(INTX ?A HAS A VA'HLUE WHICH IS TOO 'hLOW>>
	IFNB <C>(,<IFG A-C,<PRIN((TX ?A HAS A VALU(HE WHICH IS TOO HIGH>>
IS TOO HII$+P I$[XP I$\YP I%KqP I&-P I&LQP I6= F(,4

	DEFSTR(FHAB,C,D,E)
AB,C,D,E)
I6= ]t
	A==<-1](B<C>+1B<C-D>> ]H
	IF1,<IFDEF %A]h,<PRINTX ?A ALRE^ADY DEFINED>>
	D^(EFINE %A (OP,AC,^HY,MSK)<
	OP(<AC>,B'Y,MSK)><ACL
		IF1,<PO(RINTX	%"F$ALQ" ISO IGNORED BY RMS-20>
	.ALQL
		IF1,<PPhRINTX	%"F$ANB" ISPH IGNORED BY RMS-20>
	.ANBL "p2y
		;MAKE !(MACRO GIVE ERROR !HIF FIELD CANT BE !hINITIALIZED.
		I"F1,<IFE 0,<PRINTX#8	?"F$BID" IS AN I#XNVALID RMS-20 MAC#xRO!>>
		;FOR ARR$AY FIELDS, DEFINE$8 MACRO WITH MULTI$XPLE ARGUMENTS
		$x; WHICH CAN SET T%HE CORRECT VALUE %8IN EACH ARRAY ELE%XMENT.
		IFG 0,<	%x	
			IFNB<A>,<
			XXX==0
			..&8OFF==.OFBID
			;&XSET THE RUN-TIME &xSYMBOL TO THIS MA'CRO ARGUMENT VALU'8E
			IRP A,<
	'X			..VALQ(.RF,.,B'xID,\XXX,\..OFF,.P(SBID,A)
				..O(8FF==..OFF+1
				(X;CHECK FOR MORE T(xHAN 8 ARGS
				I)FG XXX-0,<PRINTX	)8?TOO MANY ARGS DE)XTECTED IN F$BID M)xACRO>
				XXX==X*XX+1
			>
			>
		;DONT ALLOW NU*XLL ARRAY FIELD MA*xCRO INVOCATIONS
+		IFB <A>,<PRINT+8X	?NO ARGUMENTS F+XOUND IN F$BID MAC+xRO>
		>


		;,FOR NORMAL (I.E.,,8 NON-ARRAY FIELDS,X):
		IFE 0,<
		,x;DEFINE THE RUN-T-IME VALUE OF THE -8FIELD
		IFNB <A-X>,<..VAL(.RF,.,BI-xD,\.OFBID,.PSBID,.A)>
		;IF NO A.8 IS GIVEN, INVOKE.X MACRO WITH DEFAU.xLT VALUE
		IFB </A>,<F$BID<.DFBID>>
		>
	L<` XB_
		;MAKE MACRO GIVE ERROR 8IF FIELD CANT BE XINITIALIZED.
		IxF1,<IFE 1,<PRINTX 	?"F$BKS" IS AN I 8NVALID RMS-20 MAC XRO!>>
		;FOR ARR xAY FIELDS, DEFINE! MACRO WITH MULTI!8PLE ARGUMENTS
		!X; WHICH CAN SET T!xHE CORRECT VALUE "IN EACH ARRAY ELE"8MENT.
		IFG 0,<	"X	
			IFNB<A>,<
			XXX==0
			..#OFF==.OFBKS
			;#8SET THE RUN-TIME #XSYMBOL TO THIS MA#xCRO ARGUMENT VALU$E
			IRP A,<
	$8			..VALQ(.RF,.,B$XKS,\XXX,\..OFF,.P$xSBKS,A)
				..O%FF==..OFF+1
				%8;CHECK FOR MORE T%XHAN 8 ARGS
				I%xFG XXX-0,<PRINTX	&?TOO MANY ARGS DE&8TECTED IN F$BKS M&XACRO>
				XXX==X&xXX+1
			>
			>
		;DONT ALLOW NU'8LL ARRAY FIELD MA'XCRO INVOCATIONS
'x		IFB <A>,<PRINT(X	?NO ARGUMENTS F(8OUND IN F$BKS MAC(XRO>
		>


		;(xFOR NORMAL (I.E.,) NON-ARRAY FIELDS)8):
		IFE 0,<
		)X;DEFINE THE RUN-T)xIME VALUE OF THE *FIELD
		IFNB <A*8>,<..VAL(.RF,.,BK*XS,\.OFBKS,.PSBKS,*xA)>
		;IF NO A+ IS GIVEN, INVOKE+8 MACRO WITH DEFAU+XLT VALUE
		IFB <+xA>,<F$BKS<.DFBKS>>
		>
	LK@ 0x3j
		;MAKE /8MACRO GIVE ERROR /XIF FIELD CANT BE /xINITIALIZED.
		I0F1,<IFE 0,<PRINTX1@	?"F$BLN" IS AN I1`NVALID RMS-20 MAC2RO!>>
		;FOR ARR2 AY FIELDS, DEFINE2@ MACRO WITH MULTI2`PLE ARGUMENTS
		3; WHICH CAN SET T3 HE CORRECT VALUE 3@IN EACH ARRAY ELE3`MENT.
		IFG 0,<	4	
			IFNB<A>,<
			XXX==0
			..4@OFF==.OFBLN
			;4`SET THE RUN-TIME 5SYMBOL TO THIS MA5 CRO ARGUMENT VALU5@E
			IRP A,<
	5`			..VALQ(.RF,.,B6LN,\XXX,\..OFF,.P6 SBLN,A)
				..O6@FF==..OFF+1
				6`;CHECK FOR MORE T7HAN 8 ARGS
				I7 FG XXX-0,<PRINTX	7@?TOO MANY ARGS DE7`TECTED IN F$BLN M8ACRO>
				XXX==X8 XX+1
			>
			>
		;DONT ALLOW NU8`LL ARRAY FIELD MA9CRO INVOCATIONS
9 		IFB <A>,<PRINT9@X	?NO ARGUMENTS F9`OUND IN F$BLN MAC:RO>
		>


		;: FOR NORMAL (I.E.,:@ NON-ARRAY FIELDS:`):
		IFE 0,<
		;;DEFINE THE RUN-T; IME VALUE OF THE ;@FIELD
		IFNB <A;`>,<..VAL(.RF,.,BL<N,\.OFBLN,.PSBLN,< A)>
		;IF NO A<@ IS GIVEN, INVOKE<` MACRO WITH DEFAU=LT VALUE
		IFB <= A>,<F$BLN<.DFBLN>>
		>
	LL` K8==
		;MAKE IxMACRO GIVE ERROR JIF FIELD CANT BE J8INITIALIZED.
		IJXF1,<IFE 1,<PRINTXKx	?"F$BLS" IS AN ILNVALID RMS-20 MACL8RO!>>
		;FOR ARRLXAY FIELDS, DEFINELx MACRO WITH MULTIMPLE ARGUMENTS
		M8; WHICH CAN SET TMXHE CORRECT VALUE MxIN EACH ARRAY ELENMENT.
		IFG 0,<	N8	
			IFNB<A>,<
			XXX==0
			..NxOFF==.OFBLS
			;OSET THE RUN-TIME O8SYMBOL TO THIS MAOXCRO ARGUMENT VALUOxE
			IRP A,<
	P			..VALQ(.RF,.,BP8LS,\XXX,\..OFF,.PPXSBLS,A)
				..OPxFF==..OFF+1
				Q;CHECK FOR MORE TQ8HAN 8 ARGS
				IQXFG XXX-0,<PRINTX	Qx?TOO MANY ARGS DERTECTED IN F$BLS MR8ACRO>
				XXX==XRXXX+1
			>
			>
		;DONT ALLOW NUSLL ARRAY FIELD MAS8CRO INVOCATIONS
SX		IFB <A>,<PRINTSxX	?NO ARGUMENTS FTOUND IN F$BLS MACT8RO>
		>


		;TXFOR NORMAL (I.E.,Tx NON-ARRAY FIELDSU):
		IFE 0,<
		U8;DEFINE THE RUN-TUXIME VALUE OF THE UxFIELD
		IFNB <AV>,<..VAL(.RF,.,BLV8S,\.OFBLS,.PSBLS,VXA)>
		;IF NO AVx IS GIVEN, INVOKEW MACRO WITH DEFAUW8LT VALUE
		IFB <WXA>,<F$BLS<.DFBLS>>
		>
	PL>@ =8<M
		;MAKE ;xMACRO GIVE ERROR <IF FIELD CANT BE <8INITIALIZED.
		I<XF1,<IFE 1,<PRINTX=x	?"F$BSZ" IS AN I>NVALID RMS-20 MAC>8RO!>>
		;FOR ARR>XAY FIELDS, DEFINE>x MACRO WITH MULTI?PLE ARGUMENTS
		?8; WHICH CAN SET T?XHE CORRECT VALUE ?xIN EACH ARRAY ELE@MENT.
		IFG 0,<	@8	
			IFNB<A>,<
			XXX==0
			..@xOFF==.OFBSZ
			;ASET THE RUN-TIME A8SYMBOL TO THIS MAAXCRO ARGUMENT VALUAxE
			IRP A,<
	B			..VALQ(.RF,.,BB8SZ,\XXX,\..OFF,.PBXSBSZ,A)
				..OBxFF==..OFF+1
				C;CHECK FOR MORE TC8HAN 8 ARGS
				ICXFG XXX-0,<PRINTX	Cx?TOO MANY ARGS DEDTECTED IN F$BSZ MD8ACRO>
				XXX==XDXXX+1
			>
			>
		;DONT ALLOW NUELL ARRAY FIELD MAE8CRO INVOCATIONS
EX		IFB <A>,<PRINTExX	?NO ARGUMENTS FFOUND IN F$BSZ MACF8RO>
		>


		;FXFOR NORMAL (I.E.,Fx NON-ARRAY FIELDSG):
		IFE 0,<
		G8;DEFINE THE RUN-TGXIME VALUE OF THE GxFIELD
		IFNB <AH>,<..VAL(.RF,.,BSH8Z,\.OFBSZ,.PSBSZ,HXA)>
		;IF NO AHx IS GIVEN, INVOKEI MACRO WITH DEFAUI8LT VALUE
		IFB <IXA>,<F$BSZ<.DFBSZ>>
		>
	PLN [6;
		;MAKE YHMACRO GIVE ERROR YhIF FIELD CANT BE ZINITIALIZED.
		IZ(F1,<IFE 1,<PRINTX[P	?"F$CTX" IS AN I[pNVALID RMS-20 MAC\RO!>>
		;FOR ARR\0AY FIELDS, DEFINE\P MACRO WITH MULTI\pPLE ARGUMENTS
		]; WHICH CAN SET T]0HE CORRECT VALUE ]PIN EACH ARRAY ELE]pMENT.
		IFG 0,<	^	
			IFNB<A>,<
			XXX==0
			..^POFF==.OFCTX
			;^pSET THE RUN-TIME _SYMBOL TO THIS MA_0CRO ARGUMENT VALU_PE
			IRP A,<
	_p			..VALQ(.RF,.,C`TX,\XXX,\..OFF,.P`0SCTX,A)
				..O`PFF==..OFF+1
				`p;CHECK FOR MORE TaHAN 8 ARGS
				Ia0FG XXX-0,<PRINTX	aP?TOO MANY ARGS DEapTECTED IN F$CTX MbACRO>
				XXX==Xb0XX+1
			>
			>
		;DONT ALLOW NUbpLL ARRAY FIELD MAcCRO INVOCATIONS
c0		IFB <A>,<PRINTcPX	?NO ARGUMENTS FcpOUND IN F$CTX MACdRO>
		>


		;d0FOR NORMAL (I.E.,dP NON-ARRAY FIELDSdp):
		IFE 0,<
		e;DEFINE THE RUN-Te0IME VALUE OF THE ePFIELD
		IFNB <Aep>,<..VAL(.RF,.,CTfX,\.OFCTX,.PSCTX,f0A)>
		;IF NO AfP IS GIVEN, INVOKEfp MACRO WITH DEFAUgLT VALUE
		IFB <g0A>,<F$CTX<.DFCTX>>
		>
	L$]@ WhF 
		;MAKE V MACRO GIVE ERROR V@IF FIELD CANT BE V`INITIALIZED.
		IWF1,<IFE 0,<PRINTXX(	?"F$DEV" IS AN IXHNVALID RMS-20 MACXhRO!>>
		;FOR ARRYAY FIELDS, DEFINEY( MACRO WITH MULTIYHPLE ARGUMENTS
		Yh; WHICH CAN SET TZHE CORRECT VALUE Z(IN EACH ARRAY ELEZHMENT.
		IFG 0,<	Zh	
			IFNB<A>,<
			XXX==0
			..[(OFF==.OFDEV
			;[HSET THE RUN-TIME [hSYMBOL TO THIS MA\CRO ARGUMENT VALU\(E
			IRP A,<
	\H			..VALQ(.RF,.,D\hEV,\XXX,\..OFF,.P]SDEV,A)
				..O](FF==..OFF+1
				]H;CHECK FOR MORE T]hHAN 8 ARGS
				I^FG XXX-0,<PRINTX	^(?TOO MANY ARGS DE^HTECTED IN F$DEV M^hACRO>
				XXX==X_XX+1
			>
			>
		;DONT ALLOW NU_HLL ARRAY FIELD MA_hCRO INVOCATIONS
`		IFB <A>,<PRINT`(X	?NO ARGUMENTS F`HOUND IN F$DEV MAC`hRO>
		>


		;aFOR NORMAL (I.E.,a( NON-ARRAY FIELDSaH):
		IFE 0,<
		ah;DEFINE THE RUN-TbIME VALUE OF THE b(FIELD
		IFNB <AbH>,<..VAL(.RF,.,DEbhV,\.OFDEV,.PSDEV,cA)>
		;IF NO Ac( IS GIVEN, INVOKEcH MACRO WITH DEFAUchLT VALUE
		IFB <dA>,<F$DEV<.DFDEV>>
		>
	L%h  K,T
		IF1,<PJhRINTX	%"F$DNA" ISJH IGNORED BY RMS-20>
	.DNAL%l` LH,`
		IF1,<PL(RINTX	%"F$DNS" ISL IGNORED BY RMS-20>
	.DNSL4`  9

		;MAKE XMACRO GIVE ERROR xIF FIELD CANT BE INITIALIZED.
		I8F1,<IFE 1,<PRINTXh	?"F$FAC" IS AN INVALID RMS-20 MAC(RO!>>
		;FOR ARRHAY FIELDS, DEFINEh MACRO WITH MULTIPLE ARGUMENTS
		(; WHICH CAN SET THHE CORRECT VALUE hIN EACH ARRAY ELEMENT.
		IFG 0,<	(	
			IFNB<A>,<
			XXX==0
			..hOFF==.OFFAC
			;	SET THE RUN-TIME 	(SYMBOL TO THIS MA	HCRO ARGUMENT VALU	hE
			IRP A,<
	
			..VALQ(.RF,.,F
(AC,\XXX,\..OFF,.P
HSFAC,A)
				..O
hFF==..OFF+1
				;CHECK FOR MORE T(HAN 8 ARGS
				IHFG XXX-0,<PRINTX	h?TOO MANY ARGS DE
TECTED IN F$FAC M
(ACRO>
				XXX==X
HXX+1
			>
			>
h
		;DONTAALLOWLNUA
		IFB <A>,<PRINTOUND IN F$FAC MAC(RO>
		>


		;HFOR NORMAL (I.E.,h NON-ARRAY FIELDS):
		IFE 0,<
		(;DEFINE THE RUN-THIME VALUE OF THE hFIELD
		IFNB <A>,<..VAL(.RF,.,FA(C,\.OFFAC,.PSFAC,HA)>
		;IF NO Ah IS GIVEN, INVOKE MACRO WITH DEFAU(LT VALUE
		IFB <HA>,<F$FAC<.DFFAC>>
		>
	P	L5h  Y@>.
		;MAKE WxMACRO GIVE ERROR XIF FIELD CANT BE X8INITIALIZED.
		IXXF1,<IFE 1,<PRINTXZ	?"F$FNA" IS AN IZ NVALID RMS-20 MACZ@RO!>>
		;FOR ARRZ`AY FIELDS, DEFINE[ MACRO WITH MULTI[ PLE ARGUMENTS
		[@; WHICH CAN SET T[`HE CORRECT VALUE \IN EACH ARRAY ELE\ MENT.
		IFG 0,<	\@	
			IFNB<A>,<
			XXX==0
			..]OFF==.OFFNA
			;] SET THE RUN-TIME ]@SYMBOL TO THIS MA]`CRO ARGUMENT VALU^E
			IRP A,<
	^ 			..VALQ(.RF,.,F^@NA,\XXX,\..OFF,.P^`SFNA,A)
				..O_FF==..OFF+1
				_ ;CHECK FOR MORE T_@HAN 8 ARGS
				I_`FG XXX-0,<PRINTX	`?TOO MANY ARGS DE` TECTED IN F$FNA M`@ACRO>
				XXX==X``XX+1
			>
			>
		;DONT ALLOW NUa LL ARRAY FIELD MAa@CRO INVOCATIONS
a`		IFB <A>,<PRINTbX	?NO ARGUMENTS Fb OUND IN F$FNA MACb@RO>
		>


		;b`FOR NORMAL (I.E.,c NON-ARRAY FIELDSc ):
		IFE 0,<
		c@;DEFINE THE RUN-Tc`IME VALUE OF THE dFIELD
		IFNB <Ad >,<..VAL(.RF,.,FNd@A,\.OFFNA,.PSFNA,d`A)>
		;IF NO Ae IS GIVEN, INVOKEe  MACRO WITH DEFAUe@LT VALUE
		IFB <e`A>,<F$FNA<.DFFNA>>
		>
	L5l` IH,H
		IF1,<PI(RINTX	%"F$FNS" ISI IGNORED BY RMS-20>
	.FNSL5| !8:m
		;MAKE pMACRO GIVE ERROR  IF FIELD CANT BE  0INITIALIZED.
		I PF1,<IFE 1,<PRINTX!x	?"F$FOP" IS AN I"NVALID RMS-20 MAC"8RO!>>
		;FOR ARR"XAY FIELDS, DEFINE"x MACRO WITH MULTI#PLE ARGUMENTS
		#8; WHICH CAN SET T#XHE CORRECT VALUE #xIN EACH ARRAY ELE$MENT.
		IFG 0,<	$8	
			IFNB<A>,<
			XXX==0
			..$xOFF==.OFFOP
			;%SET THE RUN-TIME %8SYMBOL TO THIS MA%XCRO ARGUMENT VALU%xE
			IRP A,<
	&			..VALQ(.RF,.,F&8OP,\XXX,\..OFF,.P&XSFOP,A)
				..O&xFF==..OFF+1
				';CHECK FOR MORE T'8HAN 8 ARGS
				I'XFG XXX-0,<PRINTX	'x?TOO MANY ARGS DE(TECTED IN F$FOP M(8ACRO>
				XXX==X(XXX+1
			>
			>
		;DONT ALLOW NU)LL ARRAY FIELD MA)8CRO INVOCATIONS
)X		IFB <A>,<PRINT)xX	?NO ARGUMENTS F*OUND IN F$FOP MAC*8RO>
		>


		;*XFOR NORMAL (I.E.,*x NON-ARRAY FIELDS+):
		IFE 0,<
		+8;DEFINE THE RUN-T+XIME VALUE OF THE +xFIELD
		IFNB <A,>,<..VAL(.RF,.,FO,8P,\.OFFOP,.PSFOP,,XA)>
		;IF NO A,x IS GIVEN, INVOKE- MACRO WITH DEFAU-8LT VALUE
		IFB <-XA>,<F$FOP<.DFFOP>>
		>
	L6>@ RH-
		IF1,<PR(RINTX	%"F$FSZ" ISR IGNORED BY RMS-20>
	.FSZLLj  i7+
		;MAKE gPMACRO GIVE ERROR gpIF FIELD CANT BE hINITIALIZED.
		Ih0F1,<IFE 0,<PRINTXiX	?"F$IFI" IS AN IixNVALID RMS-20 MACjRO!>>
		;FOR ARRj8AY FIELDS, DEFINEjX MACRO WITH MULTIjxPLE ARGUMENTS
		k; WHICH CAN SET Tk8HE CORRECT VALUE kXIN EACH ARRAY ELEkxMENT.
		IFG 0,<	l	
			IFNB<A>,<
			XXX==0
			..lXOFF==.OFIFI
			;lxSET THE RUN-TIME mSYMBOL TO THIS MAm8CRO ARGUMENT VALUmXE
			IRP A,<
	mx			..VALQ(.RF,.,InFI,\XXX,\..OFF,.Pn8SIFI,A)
				..OnXFF==..OFF+1
				nx;CHECK FOR MORE ToHAN 8 ARGS
				Io8FG XXX-0,<PRINTX	oX?TOO MANY ARGS DEoxTECTED IN F$IFI MpACRO>
				XXX==Xp8XX+1
			>
			>
		;DONT ALLOW NUpxLL ARRAY FIELD MAqCRO INVOCATIONS
q8		IFB <A>,<PRINTqXX	?NO ARGUMENTS FqxOUND IN F$IFI MACrRO>
		>


		;r8FOR NORMAL (I.E.,rX NON-ARRAY FIELDSrx):
		IFE 0,<
		s;DEFINE THE RUN-Ts8IME VALUE OF THE sXFIELD
		IFNB <Asx>,<..VAL(.RF,.,IFtI,\.OFIFI,.PSIFI,t8A)>
		;IF NO AtX IS GIVEN, INVOKEtx MACRO WITH DEFAUuLT VALUE
		IFB <u8A>,<F$IFI<.DFIFI>>
		>
	LTk@ w8
		;MAKE uXMACRO GIVE ERROR uxIF FIELD CANT BE vINITIALIZED.
		Iv8F1,<IFE 1,<PRINTXwX	?"F$JFN" IS AN IwxNVALID RMS-20 MACxRO!>>
		;FOR ARRx8AY FIELDS, DEFINExX MACRO WITH MULTIxxPLE ARGUMENTS
		y; WHICH CAN SET Ty8HE CORRECT VALUE yXIN EACH ARRAY ELEyxMENT.
		IFG 0,<	z	
			IFNB<A>,<
			XXX==0
			..zXOFF==.OFJFN
			;zxSET THE RUN-TIME {SYMBOL TO THIS MA{8CRO ARGUMENT VALU{XE
			IRP A,<
	{x			..VALQ(.RF,.,J|FN,\XXX,\..OFF,.P|8SJFN,A)
				..O|XFF==..OFF+1
				|x;CHECK FOR MORE T}HAN 8 ARGS
				I}8FG XXX-0,<PRINTX	}X?TOO MANY ARGS DE}xTECTED IN F$JFN M~ACRO>
				XXX==X~8XX+1
			>
			>
		;DONT ALLOW NU~xLL ARRAY FIELD MACRO INVOCATIONS
8		IFB <A>,<PRINTXX	?NO ARGUMENTS FxOUND IN F$JFN MACRO>
		>


		;8FOR NORMAL (I.E.,X NON-ARRAY FIELDSx):
		IFE 0,<
		;DEFINE THE RUN-T8IME VALUE OF THE XFIELD
		IFNB <Ax>,<..VAL(.RF,.,JFN,\.OFJFN,.PSJFN,8A)>
		;IF NO AX IS GIVEN, INVOKEx MACRO WITH DEFAULT VALUE
		IFB <8A>,<F$JFN<.DFJFN>>
		>
	PLUk ;`D@
		;MAKE :MACRO GIVE ERROR :8IF FIELD CANT BE :XINITIALIZED.
		I:xF1,<IFE 1,<PRINTX< 	?"F$JNL" IS AN I<@NVALID RMS-20 MAC<`RO!>>
		;FOR ARR=AY FIELDS, DEFINE=  MACRO WITH MULTI=@PLE ARGUMENTS
		=`; WHICH CAN SET T>HE CORRECT VALUE > IN EACH ARRAY ELE>@MENT.
		IFG 0,<	>`	
			IFNB<A>,<
			XXX==0
			..? OFF==.OFJNL
			;?@SET THE RUN-TIME ?`SYMBOL TO THIS MA@CRO ARGUMENT VALU@ E
			IRP A,<
	@@			..VALQ(.RF,.,J@`NL,\XXX,\..OFF,.PASJNL,A)
				..OA FF==..OFF+1
				A@;CHECK FOR MORE TA`HAN 8 ARGS
				IBFG XXX-0,<PRINTX	B ?TOO MANY ARGS DEB@TECTED IN F$JNL MB`ACRO>
				XXX==XCXX+1
			>
			>
		;DONT ALLOW NUC@LL ARRAY FIELD MAC`CRO INVOCATIONS
D		IFB <A>,<PRINTD X	?NO ARGUMENTS FD@OUND IN F$JNL MACD`RO>
		>


		;EFOR NORMAL (I.E.,E  NON-ARRAY FIELDSE@):
		IFE 0,<
		E`;DEFINE THE RUN-TFIME VALUE OF THE F FIELD
		IFNB <AF@>,<..VAL(.RF,.,JNF`L,\.OFJNL,.PSJNL,GA)>
		;IF NO AG  IS GIVEN, INVOKEG@ MACRO WITH DEFAUG`LT VALUE
		IFB <HA>,<F$JNL<.DFJNL>>
		>
		J.M9Ld: T-
		IF1,<PShRINTX	%"F$LCH" ISSH IGNORED BY RMS-20>
	.LCHLn+@ P@
		;MAKE MACRO GIVE ERROR (IF FIELD CANT BE HINITIALIZED.
		IhF1,<IFE 1,<PRINTX	?"F$MRN" IS AN I0NVALID RMS-20 MACPRO!>>
		;FOR ARRpAY FIELDS, DEFINE MACRO WITH MULTI0PLE ARGUMENTS
		P; WHICH CAN SET TpHE CORRECT VALUE IN EACH ARRAY ELE0MENT.
		IFG 0,<	P	
			IFNB<A>,<
			XXX==0
			..OFF==.OFMRN
			;0SET THE RUN-TIME PSYMBOL TO THIS MApCRO ARGUMENT VALUE
			IRP A,<
	0			..VALQ(.RF,.,MPRN,\XXX,\..OFF,.PpSMRN,A)
				..O	FF==..OFF+1
					0;CHECK FOR MORE T	PHAN 8 ARGS
				I	pFG XXX-0,<PRINTX	
?TOO MANY ARGS DE
0TECTED IN F$MRN M
PACRO>
				XXX==X
pXX+1
			>
			>
		;DONT ALLOW NU0LL ARRAY FIELD MAPCRO INVOCATIONS
p		IFB <A>,<PRINT
X	?NO ARGUMENTS F
0OUND IN F$MRN MAC
PRO>
		>


		;
pFORNNORMAL (I.E.,
		IFE 0,<
		EFINEUTHEFRUN-TFIELD
		IFNB <A0>,<..VAL(.RF,.,MRPN,\.OFMRN,.PSMRN,pA)>
		;IF NO A IS GIVEN, INVOKE0 MACRO WITH DEFAUPLT VALUE
		IFB <pA>,<F$MRN<.DFMRN>>
		>
	
;D. Ln,` uH@
		;MAKE tMACRO GIVE ERROR t(IF FIELD CANT BE tHINITIALIZED.
		IthF1,<IFE 1,<PRINTXv	?"F$MRS" IS AN Iv(NVALID RMS-20 MACvHRO!>>
		;FOR ARRvhAY FIELDS, DEFINEw MACRO WITH MULTIw(PLE ARGUMENTS
		wH; WHICH CAN SET TwhHE CORRECT VALUE xIN EACH ARRAY ELEx(MENT.
		IFG 0,<	xH	
			IFNB<A>,<
			XXX==0
			..yOFF==.OFMRS
			;y(SET THE RUN-TIME yHSYMBOL TO THIS MAyhCRO ARGUMENT VALUzE
			IRP A,<
	z(			..VALQ(.RF,.,MzHRS,\XXX,\..OFF,.PzhSMRS,A)
				..O{FF==..OFF+1
				{(;CHECK FOR MORE T{HHAN 8 ARGS
				I{hFG XXX-0,<PRINTX	|?TOO MANY ARGS DE|(TECTED IN F$MRS M|HACRO>
				XXX==X|hXX+1
			>
			>
		;DONT ALLOW NU}(LL ARRAY FIELD MA}HCRO INVOCATIONS
}h		IFB <A>,<PRINT~X	?NO ARGUMENTS F~(OUND IN F$MRS MAC~HRO>
		>


		;~hFOR NORMAL (I.E., NON-ARRAY FIELDS():
		IFE 0,<
		H;DEFINE THE RUN-ThIME VALUE OF THE FIELD
		IFNB <A(>,<..VAL(.RF,.,MRHS,\.OFMRS,.PSMRS,hA)>
		;IF NO A IS GIVEN, INVOKE( MACRO WITH DEFAUHLT VALUE
		IFB <hA>,<F$MRS<.DFMRS>>
		>
	.(L~)` /8;]
		;MAKE -xMACRO GIVE ERROR .IF FIELD CANT BE .8INITIALIZED.
		I.XF1,<IFE 1,<PRINTX/x	?"F$ORG" IS AN I0NVALID RMS-20 MAC08RO!>>
		;FOR ARR0XAY FIELDS, DEFINE0x MACRO WITH MULTI1PLE ARGUMENTS
		18; WHICH CAN SET T1XHE CORRECT VALUE 1xIN EACH ARRAY ELE2MENT.
		IFG 0,<	28	
			IFNB<A>,<
			XXX==0
			..2xOFF==.OFORG
			;3SET THE RUN-TIME 38SYMBOL TO THIS MA3XCRO ARGUMENT VALU3xE
			IRP A,<
	4			..VALQ(.RF,.,O48RG,\XXX,\..OFF,.P4XSORG,A)
				..O4xFF==..OFF+1
				5;CHECK FOR MORE T58HAN 8 ARGS
				I5XFG XXX-0,<PRINTX	5x?TOO MANY ARGS DE6TECTED IN F$ORG M68ACRO>
				XXX==X6XXX+1
			>
			>
		;DONT ALLOW NU7LL ARRAY FIELD MA78CRO INVOCATIONS
7X		IFB <A>,<PRINT7xX	?NO ARGUMENTS F8OUND IN F$ORG MAC88RO>
		>


		;8XFOR NORMAL (I.E.,8x NON-ARRAY FIELDS9):
		IFE 0,<
		98;DEFINE THE RUN-T9XIME VALUE OF THE 9xFIELD
		IFNB <A:>,<..VAL(.RF,.,OR:8G,\.OFORG,.PSORG,:XA)>
		;IF NO A:x IS GIVEN, INVOKE; MACRO WITH DEFAU;8LT VALUE
		IFB <;XA>,<F$ORG<.DFORG>>
		>
	L B8\u
		;MAKE @pMACRO GIVE ERROR AIF FIELD CANT BE A0INITIALIZED.
		IAPF1,<IFE 0,<PRINTXBx	?"F$PAD" IS AN ICNVALID RMS-20 MACC8RO!>>
		;FOR ARRCXAY FIELDS, DEFINECx MACRO WITH MULTIDPLE ARGUMENTS
		D8; WHICH CAN SET TDXHE CORRECT VALUE DxIN EACH ARRAY ELEEMENT.
		IFG 0,<	E8	
			IFNB<A>,<
			XXX==0
			..ExOFF==.OFPAD
			;FSET THE RUN-TIME F8SYMBOL TO THIS MAFXCRO ARGUMENT VALUFxE
			IRP A,<
	G			..VALQ(.RF,.,PG8AD,\XXX,\..OFF,.PGXSPAD,A)
				..OGxFF==..OFF+1
				H;CHECK FOR MORE TH8HAN 8 ARGS
				IHXFG XXX-0,<PRINTX	Hx?TOO MANY ARGS DEITECTED IN F$PAD MI8ACRO>
				XXX==XIXXX+1
			>
			>
		;DONT ALLOW NUJLL ARRAY FIELD MAJ8CRO INVOCATIONS
JX		IFB <A>,<PRINTJxX	?NO ARGUMENTS FKOUND IN F$PAD MACK8RO>
		>


		;KXFOR NORMAL (I.E.,Kx NON-ARRAY FIELDSL):
		IFE 0,<
		L8;DEFINE THE RUN-TLXIME VALUE OF THE LxFIELD
		IFNB <AM>,<..VAL(.RF,.,PAM8D,\.OFPAD,.PSPAD,MXA)>
		;IF NO AMx IS GIVEN, INVOKEN MACRO WITH DEFAUN8LT VALUE
		IFB <NXA>,<F$PAD<.DFPAD>>
		>
	PL gH?
		;MAKE fMACRO GIVE ERROR f IF FIELD CANT BE f@INITIALIZED.
		If`F1,<IFE 1,<PRINTXh	?"F$RAT" IS AN Ih(NVALID RMS-20 MAChHRO!>>
		;FOR ARRhhAY FIELDS, DEFINEi MACRO WITH MULTIi(PLE ARGUMENTS
		iH; WHICH CAN SET TihHE CORRECT VALUE jIN EACH ARRAY ELEj(MENT.
		IFG 0,<	jH	
			IFNB<A>,<
			XXX==0
			..kOFF==.OFRAT
			;k(SET THE RUN-TIME kHSYMBOL TO THIS MAkhCRO ARGUMENT VALUlE
			IRP A,<
	l(			..VALQ(.RF,.,RlHAT,\XXX,\..OFF,.PlhSRAT,A)
				..OmFF==..OFF+1
				m(;CHECK FOR MORE TmHHAN 8 ARGS
				ImhFG XXX-0,<PRINTX	n?TOO MANY ARGS DEn(TECTED IN F$RAT MnHACRO>
				XXX==XnhXX+1
			>
			>
		;DONT ALLOW NUo(LL ARRAY FIELD MAoHCRO INVOCATIONS
oh		IFB <A>,<PRINTpX	?NO ARGUMENTS Fp(OUND IN F$RAT MACpHRO>
		>


		;phFOR NORMAL (I.E.,q NON-ARRAY FIELDSq():
		IFE 0,<
		qH;DEFINE THE RUN-TqhIME VALUE OF THE rFIELD
		IFNB <Ar(>,<..VAL(.RF,.,RArHT,\.OFRAT,.PSRAT,rhA)>
		;IF NO As IS GIVEN, INVOKEs( MACRO WITH DEFAUsHLT VALUE
		IFB <shA>,<F$RAT<.DFRAT>>
		>
	Ld XAo
		;MAKE MACRO GIVE ERROR 0IF FIELD CANT BE PINITIALIZED.
		IpF1,<IFE 0,<PRINTX	?"F$RF0" IS AN I8NVALID RMS-20 MACXRO!>>
		;FOR ARRxAY FIELDS, DEFINE MACRO WITH MULTI8PLE ARGUMENTS
		X; WHICH CAN SET TxHE CORRECT VALUE IN EACH ARRAY ELE8MENT.
		IFG 0,<	X	
			IFNB<A>,<
			XXX==0
			..OFF==.OFRF0
			;8SET THE RUN-TIME XSYMBOL TO THIS MAxCRO ARGUMENT VALUE
			IRP A,<
	8			..VALQ(.RF,.,RXF0,\XXX,\..OFF,.PxSRF0,A)
				..OFF==..OFF+1
				8;CHECK FOR MORE TXHAN 8 ARGS
				IxFG XXX-0,<PRINTX	?TOO MANY ARGS DE8TECTED IN F$RF0 MXACRO>
				XXX==XxXX+1
			>
			>
		;DONT ALLOW NU8LL ARRAY FIELD MAXCRO INVOCATIONS
x		IFB <A>,<PRINTX	?NO ARGUMENTS F8OUND IN F$RF0 MACXRO>
		>


		;xFOR NORMAL (I.E., NON-ARRAY FIELDS8):
		IFE 0,<
		X;DEFINE THE RUN-TxIME VALUE OF THE FIELD
		IFNB <A8>,<..VAL(.RF,.,RFX0,\.OFRF0,.PSRF0,xA)>
		;IF NO A IS GIVEN, INVOKE8 MACRO WITH DEFAUXLT VALUE
		IFB <xA>,<F$RF0<.DFRF0>>
		>
	P	Ld  spH
		;MAKE r(MACRO GIVE ERROR rHIF FIELD CANT BE rhINITIALIZED.
		IsF1,<IFE 0,<PRINTXt0	?"F$RF1" IS AN ItPNVALID RMS-20 MACtpRO!>>
		;FOR ARRuAY FIELDS, DEFINEu0 MACRO WITH MULTIuPPLE ARGUMENTS
		up; WHICH CAN SET TvHE CORRECT VALUE v0IN EACH ARRAY ELEvPMENT.
		IFG 0,<	vp	
			IFNB<A>,<
			XXX==0
			..w0OFF==.OFRF1
			;wPSET THE RUN-TIME wpSYMBOL TO THIS MAxCRO ARGUMENT VALUx0E
			IRP A,<
	xP			..VALQ(.RF,.,RxpF1,\XXX,\..OFF,.PySRF1,A)
				..Oy0FF==..OFF+1
				yP;CHECK FOR MORE TypHAN 8 ARGS
				IzFG XXX-0,<PRINTX	z0?TOO MANY ARGS DEzPTECTED IN F$RF1 MzpACRO>
				XXX==X{XX+1
			>
			>
		;DONT ALLOW NU{PLL ARRAY FIELD MA{pCRO INVOCATIONS
|		IFB <A>,<PRINT|0X	?NO ARGUMENTS F|POUND IN F$RF1 MAC|pRO>
		>


		;}FOR NORMAL (I.E.,}0 NON-ARRAY FIELDS}P):
		IFE 0,<
		}p;DEFINE THE RUN-T~IME VALUE OF THE ~0FIELD
		IFNB <A~P>,<..VAL(.RF,.,RF~p1,\.OFRF1,.PSRF1,A)>
		;IF NO A0 IS GIVEN, INVOKEP MACRO WITH DEFAUpLT VALUE
		IFB <	A>,<F$RF1<.DFRF1>>
		>
	q`&LLd@ 	xHq
		;MAKE 	0MACRO GIVE ERROR 	PIF FIELD CANT BE 	pINITIALIZED.
		I	F1,<IFE 0,<PRINTX	8	?"F$RF2" IS AN I	XNVALID RMS-20 MAC	xRO!>>
		;FOR ARR	AY FIELDS, DEFINE	8 MACRO WITH MULTI	XPLE ARGUMENTS
			x; WHICH CAN SET T	HE CORRECT VALUE 	8IN EACH ARRAY ELE	XMENT.
		IFG 0,<		x	
			IFNB<A>,<
			XXX==0
			..	8OFF==.OFRF2
			;	XSET THE RUN-TIME 	xSYMBOL TO THIS MA	CRO ARGUMENT VALU	8E
			IRP A,<
		X			..VALQ(.RF,.,R	xF2,\XXX,\..OFF,.P	SRF2,A)
				..O	8FF==..OFF+1
					X;CHECK FOR MORE T	xHAN 8 ARGS
				I	FG XXX-0,<PRINTX		8?TOO MANY ARGS DE	XTECTED IN F$RF2 M	xACRO>
				XXX==X		XX+1
			>
			>
		;DONT ALLOW NU		XLL ARRAY FIELD MA		xCRO INVOCATIONS
	
		IFB <A>,<PRINT	
8X	?NO ARGUMENTS F	
XOUND IN F$RF2 MAC	
xRO>
		>


		;	FOR NORMAL (I.E.,	8 NON-ARRAY FIELDS	X):
		IFE 0,<
			x;DEFINE THE RUN-T	
IME VALUE OF THE 	
8FIELD
		IFNB <A	
X>,<..VAL(.RF,.,RF	
x2,\.OFRF2,.PSRF2,	
		;IFGNOEA	INVOKE	
		IFB <	A>,<F$RF2<.DFRF2>>
		>
	PLd` 	Ib
		;MAKE 	8MACRO GIVE ERROR 	XIF FIELD CANT BE 	xINITIALIZED.
		I	F1,<IFE 0,<PRINTX	@	?"F$RF3" IS AN I	`NVALID RMS-20 MAC	RO!>>
		;FOR ARR	 AY FIELDS, DEFINE	@ MACRO WITH MULTI	`PLE ARGUMENTS
			; WHICH CAN SET T	 HE CORRECT VALUE 	@IN EACH ARRAY ELE	`MENT.
		IFG 0,<			
			IFNB<A>,<
			XXX==0
			..	@OFF==.OFRF3
			;	`SET THE RUN-TIME 	SYMBOL TO THIS MA	 CRO ARGUMENT VALU	@E
			IRP A,<
		`			..VALQ(.RF,.,R	F3,\XXX,\..OFF,.P	 SRF3,A)
				..O	@FF==..OFF+1
					`;CHECK FOR MORE T	HAN 8 ARGS
				I	 FG XXX-0,<PRINTX		@?TOO MANY ARGS DE	`TECTED IN F$RF3 M	ACRO>
				XXX==X	 XX+1
			>
			>
		;DONT ALLOW NU	`LL ARRAY FIELD MA	CRO INVOCATIONS
	 		IFB <A>,<PRINT	@X	?NO ARGUMENTS F	`OUND IN F$RF3 MAC	RO>
		>


		;	 FOR NORMAL (I.E.,	@ NON-ARRAY FIELDS	`):
		IFE 0,<
			;DEFINE THE RUN-T	 IME VALUE OF THE 	@FIELD
		IFNB <A	`>,<..VAL(.RF,.,RF	3,\.OFRF3,.PSRF3,	 A)>
		;IF NO A	@ IS GIVEN, INVOKE	` MACRO WITH DEFAU	LT VALUE
		IFB <	 A>,<F$RF3<.DFRF3>>
		>
	OT*yLe 	JR
		;MAKE 	@MACRO GIVE ERROR 	`IF FIELD CANT BE 	INITIALIZED.
		I	 F1,<IFE 0,<PRINTX	H	?"F$RF4" IS AN I	hNVALID RMS-20 MAC	RO!>>
		;FOR ARR	(AY FIELDS, DEFINE	H MACRO WITH MULTI	hPLE ARGUMENTS
			 ; WHICH CAN SET T	 (HE CORRECT VALUE 	 HIN EACH ARRAY ELE	 hMENT.
		IFG 0,<		!	
			IFNB<A>,<
			XXX==0
			..	!HOFF==.OFRF4
			;	!hSET THE RUN-TIME 	"SYMBOL TO THIS MA	"(CRO ARGUMENT VALU	"HE
			IRP A,<
		"h			..VALQ(.RF,.,R	#F4,\XXX,\..OFF,.P	#(SRF4,A)
				..O	#HFF==..OFF+1
					#h;CHECK FOR MORE T	$HAN 8 ARGS
				I	$(FG XXX-0,<PRINTX		$H?TOO MANY ARGS DE	$hTECTED IN F$RF4 M	%ACRO>
				XXX==X	%(XX+1
			>
			>
		;DONT ALLOW NU	%hLL ARRAY FIELD MA	&CRO INVOCATIONS
	&(		IFB <A>,<PRINT	&HX	?NO ARGUMENTS F	&hOUND IN F$RF4 MAC	'RO>
		>


		;	'(FOR NORMAL (I.E.,	'H NON-ARRAY FIELDS	'h):
		IFE 0,<
			(;DEFINE THE RUN-T	((IME VALUE OF THE 	(HFIELD
		IFNB <A	(h>,<..VAL(.RF,.,RF	)4,\.OFRF4,.PSRF4,	)(A)>
		;IF NO A	)H IS GIVEN, INVOKE	)h MACRO WITH DEFAU	*LT VALUE
		IFB <	*(A>,<F$RF4<.DFRF4>>
		>
	Lk  -XCO
		;MAKE ,MACRO GIVE ERROR ,8IF FIELD CANT BE ,XINITIALIZED.
		I,xF1,<IFE 1,<PRINTX.	?"F$RFM" IS AN I.8NVALID RMS-20 MAC.XRO!>>
		;FOR ARR.xAY FIELDS, DEFINE/ MACRO WITH MULTI/8PLE ARGUMENTS
		/X; WHICH CAN SET T/xHE CORRECT VALUE 0IN EACH ARRAY ELE08MENT.
		IFG 0,<	0X	
			IFNB<A>,<
			XXX==0
			..1OFF==.OFRFM
			;18SET THE RUN-TIME 1XSYMBOL TO THIS MA1xCRO ARGUMENT VALU2E
			IRP A,<
	28			..VALQ(.RF,.,R2XFM,\XXX,\..OFF,.P2xSRFM,A)
				..O3FF==..OFF+1
				38;CHECK FOR MORE T3XHAN 8 ARGS
				I3xFG XXX-0,<PRINTX	4?TOO MANY ARGS DE48TECTED IN F$RFM M4XACRO>
				XXX==X4xXX+1
			>
			>
		;DONT ALLOW NU58LL ARRAY FIELD MA5XCRO INVOCATIONS
5x		IFB <A>,<PRINT6X	?NO ARGUMENTS F68OUND IN F$RFM MAC6XRO>
		>


		;6xFOR NORMAL (I.E.,7 NON-ARRAY FIELDS78):
		IFE 0,<
		7X;DEFINE THE RUN-T7xIME VALUE OF THE 8FIELD
		IFNB <A88>,<..VAL(.RF,.,RF8XM,\.OFRFM,.PSRFM,8xA)>
		;IF NO A9 IS GIVEN, INVOKE98 MACRO WITH DEFAU9XLT VALUE
		IFB <9xA>,<F$RFM<.DFRFM>>
		>
	PL$  P@]f
		;MAKE NxMACRO GIVE ERROR OIF FIELD CANT BE O8INITIALIZED.
		IOXF1,<IFE 0,<PRINTXQ	?"F$RR1" IS AN IQ NVALID RMS-20 MACQ@RO!>>
		;FOR ARRQ`AY FIELDS, DEFINER MACRO WITH MULTIR PLE ARGUMENTS
		R@; WHICH CAN SET TR`HE CORRECT VALUE SIN EACH ARRAY ELES MENT.
		IFG 0,<	S@	
			IFNB<A>,<
			XXX==0
			..TOFF==.OFRR1
			;T SET THE RUN-TIME T@SYMBOL TO THIS MAT`CRO ARGUMENT VALUUE
			IRP A,<
	U 			..VALQ(.RF,.,RU@R1,\XXX,\..OFF,.PU`SRR1,A)
				..OVFF==..OFF+1
				V ;CHECK FOR MORE TV@HAN 8 ARGS
				IV`FG XXX-0,<PRINTX	W?TOO MANY ARGS DEW TECTED IN F$RR1 MW@ACRO>
				XXX==XW`XX+1
			>
			>
		;DONT ALLOW NUX LL ARRAY FIELD MAX@CRO INVOCATIONS
X`		IFB <A>,<PRINTYX	?NO ARGUMENTS FY OUND IN F$RR1 MACY@RO>
		>


		;Y`FOR NORMAL (I.E.,Z NON-ARRAY FIELDSZ ):
		IFE 0,<
		Z@;DEFINE THE RUN-TZ`IME VALUE OF THE [FIELD
		IFNB <A[ >,<..VAL(.RF,.,RR[@1,\.OFRR1,.PSRR1,[`A)>
		;IF NO A\ IS GIVEN, INVOKE\  MACRO WITH DEFAU\@LT VALUE
		IFB <\`A>,<F$RR1<.DFRR1>>
		>
	L~)`L$@ ^H^V
		;MAKE ]MACRO GIVE ERROR ] IF FIELD CANT BE ]@INITIALIZED.
		I]`F1,<IFE 0,<PRINTX_	?"F$RR2" IS AN I_(NVALID RMS-20 MAC_HRO!>>
		;FOR ARR_hAY FIELDS, DEFINE` MACRO WITH MULTI`(PLE ARGUMENTS
		`H; WHICH CAN SET T`hHE CORRECT VALUE aIN EACH ARRAY ELEa(MENT.
		IFG 0,<	aH	
			IFNB<A>,<
			XXX==0
			..bOFF==.OFRR2
			;b(SET THE RUN-TIME bHSYMBOL TO THIS MAbhCRO ARGUMENT VALUcE
			IRP A,<
	c(			..VALQ(.RF,.,RcHR2,\XXX,\..OFF,.PchSRR2,A)
				..OdFF==..OFF+1
				d(;CHECK FOR MORE TdHHAN 8 ARGS
				IdhFG XXX-0,<PRINTX	e?TOO MANY ARGS DEe(TECTED IN F$RR2 MeHACRO>
				XXX==XehXX+1
			>
			>
		;DONT ALLOW NUf(LL ARRAY FIELD MAfHCRO INVOCATIONS
fh		IFB <A>,<PRINTgX	?NO ARGUMENTS Fg(OUND IN F$RR2 MACgHRO>
		>


		;ghFOR NORMAL (I.E.,h NON-ARRAY FIELDSh():
		IFE 0,<
		hH;DEFINE THE RUN-ThhIME VALUE OF THE iFIELD
		IFNB <Ai(>,<..VAL(.RF,.,RRiH2,\.OFRR2,.PSRR2,ihA)>
		;IF NO Aj IS GIVEN, INVOKEj( MACRO WITH DEFAUjHLT VALUE
		IFB <jhA>,<F$RR2<.DFRR2>>
		>
	PL$` lP_G
		;MAKE kMACRO GIVE ERROR k(IF FIELD CANT BE kHINITIALIZED.
		IkhF1,<IFE 0,<PRINTXm	?"F$RR3" IS AN Im0NVALID RMS-20 MACmPRO!>>
		;FOR ARRmpAY FIELDS, DEFINEn MACRO WITH MULTIn0PLE ARGUMENTS
		nP; WHICH CAN SET TnpHE CORRECT VALUE oIN EACH ARRAY ELEo0MENT.
		IFG 0,<	oP	
			IFNB<A>,<
			XXX==0
			..pOFF==.OFRR3
			;p0SET THE RUN-TIME pPSYMBOL TO THIS MAppCRO ARGUMENT VALUqE
			IRP A,<
	q0			..VALQ(.RF,.,RqPR3,\XXX,\..OFF,.PqpSRR3,A)
				..OrFF==..OFF+1
				r0;CHECK FOR MORE TrPHAN 8 ARGS
				IrpFG XXX-0,<PRINTX	s?TOO MANY ARGS DEs0TECTED IN F$RR3 MsPACRO>
				XXX==XspXX+1
			>
			>
		;DONT ALLOW NUt0LL ARRAY FIELD MAtPCRO INVOCATIONS
tp		IFB <A>,<PRINTuX	?NO ARGUMENTS Fu0OUND IN F$RR3 MACuPRO>
		>


		;upFOR NORMAL (I.E.,v NON-ARRAY FIELDSv0):
		IFE 0,<
		vP;DEFINE THE RUN-TvpIME VALUE OF THE wFIELD
		IFNB <Aw0>,<..VAL(.RF,.,RRwP3,\.OFRR3,.PSRR3,wpA)>
		;IF NO Ax IS GIVEN, INVOKEx0 MACRO WITH DEFAUxPLT VALUE
		IFB <xpA>,<F$RR3<.DFRR3>>
		>
	
;>@L% zX`7
		;MAKE yMACRO GIVE ERROR y0IF FIELD CANT BE yPINITIALIZED.
		IypF1,<IFE 0,<PRINTX{	?"F$RR4" IS AN I{8NVALID RMS-20 MAC{XRO!>>
		;FOR ARR{xAY FIELDS, DEFINE| MACRO WITH MULTI|8PLE ARGUMENTS
		|X; WHICH CAN SET T|xHE CORRECT VALUE }IN EACH ARRAY ELE}8MENT.
		IFG 0,<	}X	
			IFNB<A>,<
			XXX==0
			..~OFF==.OFRR4
			;~8SET THE RUN-TIME ~XSYMBOL TO THIS MA~xCRO ARGUMENT VALUE
			IRP A,<
	8			..VALQ(.RF,.,RXR4,\XXX,\..OFF,.PxSRR4,A)
				..O
FF==..OFF+1
				
8;CHECK FOR MORE T
XHAN 8 ARGS
				I
xFG XXX-0,<PRINTX	
?TOO MANY ARGS DE
8TECTED IN F$RR4 M
XACRO>
				XXX==X
xXX+1
			>
			>

		;DONT ALLOW NU
8LL ARRAY FIELD MA
XCRO INVOCATIONS
x		IFB <A>,<PRINT
X	?NO ARGUMENTS F
8OUND IN F$RR4 MAC
XRO>
		>


		;
xFOR NORMAL (I.E.,
 NON-ARRAY FIELDS
8):
		IFE 0,<
		
X;DEFINE THE RUN-T
xIME VALUE OF THE 
FIELD
		IFNB <A
8>,<..VAL(.RF,.,RR
X4,\.OFRR4,.PSRR4,
xA)>
		;IF NO A
 IS GIVEN, INVOKE
8 MACRO WITH DEFAU
XLT VALUE
		IFB <
xA>,<F$RR4<.DFRR4>>
		>
	PLM@ N,l
		IF1,<PMhRINTX	%"F$RTV" ISMH IGNORED BY RMS-20>
	.RTVL 
		;MAKEEGIVEAERROR 
		I1,<IFE00,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFRX0
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RF,.,R
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
*@		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RF,.,RX
		;IFCNOVA,HINVOKE
		IFB,<F$RX0<.DFRX0>>
		>
	
;*@L  .PsW
		;MAKE -MACRO GIVE ERROR -(IF FIELD CANT BE -HINITIALIZED.
		I-hF1,<IFE 0,<PRINTX/	?"F$RX1" IS AN I/0NVALID RMS-20 MAC/PRO!>>
		;FOR ARR/pAY FIELDS, DEFINE0 MACRO WITH MULTI00PLE ARGUMENTS
		0P; WHICH CAN SET T0pHE CORRECT VALUE 1IN EACH ARRAY ELE10MENT.
		IFG 0,<	1P	
			IFNB<A>,<
			XXX==0
			..2OFF==.OFRX1
			;20SET THE RUN-TIME 2PSYMBOL TO THIS MA2pCRO ARGUMENT VALU3E
			IRP A,<
	30			..VALQ(.RF,.,R3PX1,\XXX,\..OFF,.P3pSRX1,A)
				..O4FF==..OFF+1
				40;CHECK FOR MORE T4PHAN 8 ARGS
				I4pFG XXX-0,<PRINTX	5?TOO MANY ARGS DE50TECTED IN F$RX1 M5PACRO>
				XXX==X5pXX+1
			>
			>
		;DONT ALLOW NU60LL ARRAY FIELD MA6PCRO INVOCATIONS
6p		IFB <A>,<PRINT7X	?NO ARGUMENTS F70OUND IN F$RX1 MAC7PRO>
		>


		;7pFOR NORMAL (I.E.,8 NON-ARRAY FIELDS80):
		IFE 0,<
		8P;DEFINE THE RUN-T8pIME VALUE OF THE 9FIELD
		IFNB <A90>,<..VAL(.RF,.,RX9P1,\.OFRX1,.PSRX1,9pA)>
		;IF NO A: IS GIVEN, INVOKE:0 MACRO WITH DEFAU:PLT VALUE
		IFB <:pA>,<F$RX1<.DFRX1>>
		>
	(1L@ <XtG
		;MAKE ;MACRO GIVE ERROR ;0IF FIELD CANT BE ;PINITIALIZED.
		I;pF1,<IFE 0,<PRINTX=	?"F$RX2" IS AN I=8NVALID RMS-20 MAC=XRO!>>
		;FOR ARR=xAY FIELDS, DEFINE> MACRO WITH MULTI>8PLE ARGUMENTS
		>X; WHICH CAN SET T>xHE CORRECT VALUE ?IN EACH ARRAY ELE?8MENT.
		IFG 0,<	?X	
			IFNB<A>,<
			XXX==0
			..@OFF==.OFRX2
			;@8SET THE RUN-TIME @XSYMBOL TO THIS MA@xCRO ARGUMENT VALUAE
			IRP A,<
	A8			..VALQ(.RF,.,RAXX2,\XXX,\..OFF,.PAxSRX2,A)
				..OBFF==..OFF+1
				B8;CHECK FOR MORE TBXHAN 8 ARGS
				IBxFG XXX-0,<PRINTX	C?TOO MANY ARGS DEC8TECTED IN F$RX2 MCXACRO>
				XXX==XCxXX+1
			>
			>
		;DONT ALLOW NUD8LL ARRAY FIELD MADXCRO INVOCATIONS
Dx		IFB <A>,<PRINTEX	?NO ARGUMENTS FE8OUND IN F$RX2 MACEXRO>
		>


		;ExFOR NORMAL (I.E.,F NON-ARRAY FIELDSF8):
		IFE 0,<
		FX;DEFINE THE RUN-TFxIME VALUE OF THE GFIELD
		IFNB <AG8>,<..VAL(.RF,.,RXGX2,\.OFRX2,.PSRX2,GxA)>
		;IF NO AH IS GIVEN, INVOKEH8 MACRO WITH DEFAUHXLT VALUE
		IFB <HxA>,<F$RX2<.DFRX2>>
		>
	PL` J`u8
		;MAKE IMACRO GIVE ERROR I8IF FIELD CANT BE IXINITIALIZED.
		IIxF1,<IFE 0,<PRINTXK 	?"F$RX3" IS AN IK@NVALID RMS-20 MACK`RO!>>
		;FOR ARRLAY FIELDS, DEFINEL  MACRO WITH MULTIL@PLE ARGUMENTS
		L`; WHICH CAN SET TMHE CORRECT VALUE M IN EACH ARRAY ELEM@MENT.
		IFG 0,<	M`	
			IFNB<A>,<
			XXX==0
			..N OFF==.OFRX3
			;N@SET THE RUN-TIME N`SYMBOL TO THIS MAOCRO ARGUMENT VALUO E
			IRP A,<
	O@			..VALQ(.RF,.,RO`X3,\XXX,\..OFF,.PPSRX3,A)
				..OP FF==..OFF+1
				P@;CHECK FOR MORE TP`HAN 8 ARGS
				IQFG XXX-0,<PRINTX	Q ?TOO MANY ARGS DEQ@TECTED IN F$RX3 MQ`ACRO>
				XXX==XRXX+1
			>
			>
		;DONT ALLOW NUR@LL ARRAY FIELD MAR`CRO INVOCATIONS
S		IFB <A>,<PRINTS X	?NO ARGUMENTS FS@OUND IN F$RX3 MACS`RO>
		>


		;TFOR NORMAL (I.E.,T  NON-ARRAY FIELDST@):
		IFE 0,<
		T`;DEFINE THE RUN-TUIME VALUE OF THE U FIELD
		IFNB <AU@>,<..VAL(.RF,.,RXU`3,\.OFRX3,.PSRX3,VA)>
		;IF NO AV  IS GIVEN, INVOKEV@ MACRO WITH DEFAUV`LT VALUE
		IFB <WA>,<F$RX3<.DFRX3>>
		>
	q`%t(L Xhv(
		;MAKE W MACRO GIVE ERROR W@IF FIELD CANT BE W`INITIALIZED.
		IXF1,<IFE 0,<PRINTXY(	?"F$RX4" IS AN IYHNVALID RMS-20 MACYhRO!>>
		;FOR ARRZAY FIELDS, DEFINEZ( MACRO WITH MULTIZHPLE ARGUMENTS
		Zh; WHICH CAN SET T[HE CORRECT VALUE [(IN EACH ARRAY ELE[HMENT.
		IFG 0,<	[h	
			IFNB<A>,<
			XXX==0
			..\(OFF==.OFRX4
			;\HSET THE RUN-TIME \hSYMBOL TO THIS MA]CRO ARGUMENT VALU](E
			IRP A,<
	]H			..VALQ(.RF,.,R]hX4,\XXX,\..OFF,.P^SRX4,A)
				..O^(FF==..OFF+1
				^H;CHECK FOR MORE T^hHAN 8 ARGS
				I_FG XXX-0,<PRINTX	_(?TOO MANY ARGS DE_HTECTED IN F$RX4 M_hACRO>
				XXX==X`XX+1
			>
			>
		;DONT ALLOW NU`HLL ARRAY FIELD MA`hCRO INVOCATIONS
a		IFB <A>,<PRINTa(X	?NO ARGUMENTS FaHOUND IN F$RX4 MACahRO>
		>


		;bFOR NORMAL (I.E.,b( NON-ARRAY FIELDSbH):
		IFE 0,<
		bh;DEFINE THE RUN-TcIME VALUE OF THE c(FIELD
		IFNB <AcH>,<..VAL(.RF,.,RXch4,\.OFRX4,.PSRX4,dA)>
		;IF NO Ad( IS GIVEN, INVOKEdH MACRO WITH DEFAUdhLT VALUE
		IFB <eA>,<F$RX4<.DFRX4>>
		>
	->L  fpw
		;MAKE e(MACRO GIVE ERROR eHIF FIELD CANT BE ehINITIALIZED.
		IfF1,<IFE 0,<PRINTXg0	?"F$RX5" IS AN IgPNVALID RMS-20 MACgpRO!>>
		;FOR ARRhAY FIELDS, DEFINEh0 MACRO WITH MULTIhPPLE ARGUMENTS
		hp; WHICH CAN SET TiHE CORRECT VALUE i0IN EACH ARRAY ELEiPMENT.
		IFG 0,<	ip	
			IFNB<A>,<
			XXX==0
			..j0OFF==.OFRX5
			;jPSET THE RUN-TIME jpSYMBOL TO THIS MAkCRO ARGUMENT VALUk0E
			IRP A,<
	kP			..VALQ(.RF,.,RkpX5,\XXX,\..OFF,.PlSRX5,A)
				..Ol0FF==..OFF+1
				lP;CHECK FOR MORE TlpHAN 8 ARGS
				ImFG XXX-0,<PRINTX	m0?TOO MANY ARGS DEmPTECTED IN F$RX5 MmpACRO>
				XXX==XnXX+1
			>
			>
		;DONT ALLOW NUnPLL ARRAY FIELD MAnpCRO INVOCATIONS
o		IFB <A>,<PRINTo0X	?NO ARGUMENTS FoPOUND IN F$RX5 MACopRO>
		>


		;pFOR NORMAL (I.E.,p0 NON-ARRAY FIELDSpP):
		IFE 0,<
		pp;DEFINE THE RUN-TqIME VALUE OF THE q0FIELD
		IFNB <AqP>,<..VAL(.RF,.,RXqp5,\.OFRX5,.PSRX5,rA)>
		;IF NO Ar0 IS GIVEN, INVOKErP MACRO WITH DEFAUrpLT VALUE
		IFB <sA>,<F$RX5<.DFRX5>>
		>
	6)HLH` ehG
		;MAKE d(MACRO GIVE ERROR dHIF FIELD CANT BE dhINITIALIZED.
		IeF1,<IFE 0,<PRINTXf(	?"F$SDC" IS AN IfHNVALID RMS-20 MACfhRO!>>
		;FOR ARRgAY FIELDS, DEFINEg( MACRO WITH MULTIgHPLE ARGUMENTS
		gh; WHICH CAN SET ThHE CORRECT VALUE h(IN EACH ARRAY ELEhHMENT.
		IFG 0,<	hh	
			IFNB<A>,<
			XXX==0
			..i(OFF==.OFSDC
			;iHSET THE RUN-TIME ihSYMBOL TO THIS MAjCRO ARGUMENT VALUj(E
			IRP A,<
	jH			..VALQ(.RF,.,SjhDC,\XXX,\..OFF,.PkSSDC,A)
				..Ok(FF==..OFF+1
				kH;CHECK FOR MORE TkhHAN 8 ARGS
				IlFG XXX-0,<PRINTX	l(?TOO MANY ARGS DElHTECTED IN F$SDC MlhACRO>
				XXX==XmXX+1
			>
			>
		;DONT ALLOW NUmHLL ARRAY FIELD MAmhCRO INVOCATIONS
n		IFB <A>,<PRINTn(X	?NO ARGUMENTS FnHOUND IN F$SDC MACnhRO>
		>


		;oFOR NORMAL (I.E.,o( NON-ARRAY FIELDSoH):
		IFE 0,<
		oh;DEFINE THE RUN-TpIME VALUE OF THE p(FIELD
		IFNB <ApH>,<..VAL(.RF,.,SDphC,\.OFSDC,.PSSDC,qA)>
		;IF NO Aq( IS GIVEN, INVOKEqH MACRO WITH DEFAUqhLT VALUE
		IFB <rA>,<F$SDC<.DFSDC>>
		>
	3	L
@ (9}
		;MAKE hMACRO GIVE ERROR IF FIELD CANT BE (INITIALIZED.
		IHF1,<IFE 1,<PRINTXp	?"F$SHR" IS AN INVALID RMS-20 MAC0RO!>>
		;FOR ARRPAY FIELDS, DEFINEp MACRO WITH MULTIPLE ARGUMENTS
		0; WHICH CAN SET TPHE CORRECT VALUE pIN EACH ARRAY ELEMENT.
		IFG 0,<	0	
			IFNB<A>,<
			XXX==0
			..pOFF==.OFSHR
			;SET THE RUN-TIME 0SYMBOL TO THIS MAPCRO ARGUMENT VALUpE
			IRP A,<
				..VALQ(.RF,.,S0HR,\XXX,\..OFF,.PPSSHR,A)
				..OpFF==..OFF+1
				;CHECK FOR MORE T0HAN 8 ARGS
				IPFG XXX-0,<PRINTX	p?TOO MANY ARGS DETECTED IN F$SHR M0ACRO>
				XXX==XPXX+1
			>
			>
		;DONT ALLOW NULL ARRAY FIELD MA0CRO INVOCATIONS
P		IFB <A>,<PRINTpX	?NO ARGUMENTS FOUND IN F$SHR MAC0RO>
		>


		;PFOR NORMAL (I.E.,p NON-ARRAY FIELDS):
		IFE 0,<
		0;DEFINE THE RUN-TPIME VALUE OF THE pFIELD
		IFNB <A>,<..VAL(.RF,.,SH0R,\.OFSHR,.PSSHR,PA)>
		;IF NO Ap IS GIVEN, INVOKE MACRO WITH DEFAU0LT VALUE
		IFB <PA>,<F$SHR<.DFSHR>>
		>
	>}{woLL` ?4Z
		;MAKE =@MACRO GIVE ERROR =`IF FIELD CANT BE >INITIALIZED.
		I> F1,<IFE 0,<PRINTX?H	?"F$STS" IS AN I?hNVALID RMS-20 MAC@RO!>>
		;FOR ARR@(AY FIELDS, DEFINE@H MACRO WITH MULTI@hPLE ARGUMENTS
		A; WHICH CAN SET TA(HE CORRECT VALUE AHIN EACH ARRAY ELEAhMENT.
		IFG 0,<	B	
			IFNB<A>,<
			XXX==0
			..BHOFF==.OFSTS
			;BhSET THE RUN-TIME CSYMBOL TO THIS MAC(CRO ARGUMENT VALUCHE
			IRP A,<
	Ch			..VALQ(.RF,.,SDTS,\XXX,\..OFF,.PD(SSTS,A)
				..ODHFF==..OFF+1
				Dh;CHECK FOR MORE TEHAN 8 ARGS
				IE(FG XXX-0,<PRINTX	EH?TOO MANY ARGS DEEhTECTED IN F$STS MFACRO>
				XXX==XF(XX+1
			>
			>
		;DONT ALLOW NUFhLL ARRAY FIELD MAGCRO INVOCATIONS
G(		IFB <A>,<PRINTGHX	?NO ARGUMENTS FGhOUND IN F$STS MACHRO>
		>


		;H(FOR NORMAL (I.E.,HH NON-ARRAY FIELDSHh):
		IFE 0,<
		I;DEFINE THE RUN-TI(IME VALUE OF THE IHFIELD
		IFNB <AIh>,<..VAL(.RF,.,STJS,\.OFSTS,.PSSTS,J(A)>
		;IF NO AJH IS GIVEN, INVOKEJh MACRO WITH DEFAUKLT VALUE
		IFB <K(A>,<F$STS<.DFSTS>>
		>
	1"LM@ M5J
		;MAKE KHMACRO GIVE ERROR KhIF FIELD CANT BE LINITIALIZED.
		IL(F1,<IFE 0,<PRINTXMH	?"F$STV" IS AN IMhNVALID RMS-20 MACNRO!>>
		;FOR ARRN(AY FIELDS, DEFINENH MACRO WITH MULTINhPLE ARGUMENTS
		O; WHICH CAN SET TO(HE CORRECT VALUE OHIN EACH ARRAY ELEOhMENT.
		IFG 0,<	P	
			IFNB<A>,<
			XXX==0
			..PHOFF==.OFSTV
			;PhSET THE RUN-TIME QSYMBOL TO THIS MAQ(CRO ARGUMENT VALUQHE
			IRP A,<
	Qh			..VALQ(.RF,.,SRTV,\XXX,\..OFF,.PR(SSTV,A)
				..ORHFF==..OFF+1
				Rh;CHECK FOR MORE TSHAN 8 ARGS
				IS(FG XXX-0,<PRINTX	SH?TOO MANY ARGS DEShTECTED IN F$STV MTACRO>
				XXX==XT(XX+1
			>
			>
		;DONT ALLOW NUThLL ARRAY FIELD MAUCRO INVOCATIONS
U(		IFB <A>,<PRINTUHX	?NO ARGUMENTS FUhOUND IN F$STV MACVRO>
		>


		;V(FOR NORMAL (I.E.,VH NON-ARRAY FIELDSVh):
		IFE 0,<
		W;DEFINE THE RUN-TW(IME VALUE OF THE WHFIELD
		IFNB <AWh>,<..VAL(.RF,.,STXV,\.OFSTV,.PSSTV,X(A)>
		;IF NO AXH IS GIVEN, INVOKEXh MACRO WITH DEFAUYLT VALUE
		IFB <Y(A>,<F$STV<.DFSTV>>
		>
	, LD@ I`E0
		;MAKE H MACRO GIVE ERROR H@IF FIELD CANT BE H`INITIALIZED.
		IIF1,<IFE 1,<PRINTXJ 	?"F$XAB" IS AN IJ@NVALID RMS-20 MACJ`RO!>>
		;FOR ARRKAY FIELDS, DEFINEK  MACRO WITH MULTIK@PLE ARGUMENTS
		K`; WHICH CAN SET TLHE CORRECT VALUE L IN EACH ARRAY ELEL@MENT.
		IFG 0,<	L`	
			IFNB<A>,<
			XXX==0
			..M OFF==.OFXAB
			;M@SET THE RUN-TIME M`SYMBOL TO THIS MANCRO ARGUMENT VALUN E
			IRP A,<
	N@			..VALQ(.RF,.,XN`AB,\XXX,\..OFF,.POSXAB,A)
				..OO FF==..OFF+1
				O@;CHECK FOR MORE TO`HAN 8 ARGS
				IPFG XXX-0,<PRINTX	P ?TOO MANY ARGS DEP@TECTED IN F$XAB MP`ACRO>
				XXX==XQXX+1
			>
			>
		;DONT ALLOW NUQ@LL ARRAY FIELD MAQ`CRO INVOCATIONS
R		IFB <A>,<PRINTR X	?NO ARGUMENTS FR@OUND IN F$XAB MACR`RO>
		>


		;SFOR NORMAL (I.E.,S  NON-ARRAY FIELDSS@):
		IFE 0,<
		S`;DEFINE THE RUN-TTIME VALUE OF THE T FIELD
		IFNB <AT@>,<..VAL(.RF,.,XAT`B,\.OFXAB,.PSXAB,UA)>
		;IF NO AU  IS GIVEN, INVOKEU@ MACRO WITH DEFAUU`LT VALUE
		IFB <VA>,<F$XAB<.DFXAB>>
		>
	>4*2M$,}P M%KSP M&N8P MH@ (06
		;IF NOHT AN XAB, CHECK ThHAT NO ARG IS GIVEN...
		IF1,<IFD(IF <F><X>,<IFNB <HA>,<PRINTX	?FAB$hB DOESNT TAKE ANY ARGUMENTS>>>
		(;SINCE XAB'S ARE HTHE ONLY BLOCK WHhICH HAVE TYPES,
		; WE CAN CREATE( THE SYMBOL NOW BHY PRECEEDING IT WhITH "XB$"
		..BEG(F,FB$A)	
	EMI  (0:
		..END(F,A)
		..END(M$PM$+PM$8vPM$:3PM$I6PM$LUPM$j<PM$y:PM%PM%@P&M%LpP)M%YP M%j6P M%}:P M&
	;IF A U)HNIQUE FIELD (NOT )hBID,STS,...), THE*N DEFINE FORMAT:
	IFNDEF %BC,<
		DEFSTR(BC,E*h,G,F)	
	>

	+..OFF==E
	;IF F+(IELD IS ARRAY, DE+HFINE SYMBOL FOR E+hACH ELEMENT
	IFG, I,<				
		XXX=,(=0
		REPEAT I,<,H
		DEFSTQ(BC,\,hXXX,..OFF,G,F)
		..VAL(.DA,B,-(C,\..OFF,G,D)
		..OFF==..OFF+1-h
		XXX==XXX+1
	.	>
	>

;FIELDS.( MACRO CONTINUES .HON NEXT PAGE...
.h
	;SET MAX E T/O CURRENT FIELD /(E
	..AMAX==..OF/HF		

	;IF NON-A/hRRAY FIELD, DEFIN0E THE DEFAULT VAL0(UE WHICH IS
	; U0HSED WHEN THE BLOC0hK IS INITIALIZED.1
	IFE I,<
	..V1(AL(.DA,B,C,\E1H,G,D)
	.DAC=1h=D			
	>


	2
	DEFINE A$C(A2(RG),<
		;MAKE MA2HCRO GIVE ERROR IF2h FIELD CANT BE IN3ITIALIZED.
		IF13(,<IFE H,<PRINTX	3H?"A$C" IS AN IN3hVALID RMS-20 MACR4O!>>
		;FOR ARRA4(Y FIELDS, DEFINE 4HMACRO WITH MULTIP4hLE ARGUMENTS
		;5 WHICH CAN SET TH5(E CORRECT VALUE I5HN EACH ARRAY ELEM5hENT.
		IFG I,<	6	
			IFNB<ARG>,<6(
			XXX==0
			.6H.OFF==E
			;SET6h THE RUN-TIME SYM7BOL TO THIS MACRO7( ARGUMENT VALUE
7H			IRP ARG,<
			7h	..VALQ(.RA,B,8C,\XXX,\..OFF,G,8(ARG)
				..OFF==8H..OFF+1
				;CHE8hCK FOR MORE THAN 98 ARGS
				IFG X9(XX-I,<PRINTX	?TO9HO MANY ARGS DETEC9hTED IN A$C MACR:O>
				XXX==XXX+:(1
			>
			>
		:H;DONT ALLOW NULL :hARRAY FIELD MACRO; INVOCATIONS
		I;(FB <ARG>,<PRINTX	;H?NO ARGUMENTS FOU;hND IN A$C MACRO<>
		>


		;FO<(R NORMAL (I.E., N<HON-ARRAY FIELDS):<h
		IFE I,<
		;=DEFINE THE RUN-TI=(ME VALUE OF THE F=HIELD
		IFNB <ARG=h>,<..VAL(.RA,B,>C,\E,G,ARG)>
>(		;IF NO ARG IS G>HIVEN, INVOKE MACR>hO WITH DEFAULT VA?LUE
		IFB <ARG>,?(<A$C<.DAC>>
		>
	>
C>>
d 	+HK?
		;MAKE 	+(MACRO GIVE ERROR 	+IF FIELD CANT BE 	*hINITIALIZED.
		I	*HF1,<IFE 0,<PRINTX	,	?"R$BID" IS AN I	,0NVALID RMS-20 MAC	,PRO!>>
		;FOR ARR	,pAY FIELDS, DEFINE	- MACRO WITH MULTI	-0PLE ARGUMENTS
			-P; WHICH CAN SET T	-pHE CORRECT VALUE 	.IN EACH ARRAY ELE	.0MENT.
		IFG 0,<		.P	
			IFNB<A>,<
			XXX==0
			..	/OFF==.OFBID
			;	/0SET THE RUN-TIME 	/PSYMBOL TO THIS MA	/pCRO ARGUMENT VALU	0E
			IRP A,<
		00			..VALQ(.RR,.,B	0PID,\XXX,\..OFF,.P	0pSBID,A)
				..O	1FF==..OFF+1
					10;CHECK FOR MORE T	1PHAN 8 ARGS
				I	1pFG XXX-0,<PRINTX		2?TOO MANY ARGS DE	20TECTED IN R$BID M	2PACRO>
				XXX==X	2pXX+1
			>
			>
		;DONT ALLOW NU	30LL ARRAY FIELD MA	3PCRO INVOCATIONS
	3p		IFB <A>,<PRINT	4X	?NO ARGUMENTS F	40OUND IN R$BID MAC	4PRO>
		>


		;	4pFOR NORMAL (I.E.,	5 NON-ARRAY FIELDS	50):
		IFE 0,<
			5P;DEFINE THE RUN-T	5pIME VALUE OF THE 	6FIELD
		IFNB <A	60>,<..VAL(.RR,.,BI	6PD,\.OFBID,.PSBID,	6pA)>
		;IF NO A	7 IS GIVEN, INVOKE	70 MACRO WITH DEFAU	7PLT VALUE
		IFB <	7pA>,<R$BID<.DRBID>>
		>
	p5{d= 40\
		;MAKE 2hMACRO GIVE ERROR 3IF FIELD CANT BE 3(INITIALIZED.
		I3HF1,<IFE 0,<PRINTX4p	?"R$BKT" IS AN I5NVALID RMS-20 MAC50RO!>>
		;FOR ARR5PAY FIELDS, DEFINE5p MACRO WITH MULTI6PLE ARGUMENTS
		60; WHICH CAN SET T6PHE CORRECT VALUE 6pIN EACH ARRAY ELE7MENT.
		IFG 0,<	70	
			IFNB<A>,<
			XXX==0
			..7pOFF==.OFBKT
			;8SET THE RUN-TIME 80SYMBOL TO THIS MA8PCRO ARGUMENT VALU8pE
			IRP A,<
	9			..VALQ(.RR,.,B90KT,\XXX,\..OFF,.P9PSBKT,A)
				..O9pFF==..OFF+1
				:;CHECK FOR MORE T:0HAN 8 ARGS
				I:PFG XXX-0,<PRINTX	:p?TOO MANY ARGS DE;TECTED IN R$BKT M;0ACRO>
				XXX==X;PXX+1
			>
			>
		;DONT ALLOW NU<LL ARRAY FIELD MA<0CRO INVOCATIONS
<P		IFB <A>,<PRINT<pX	?NO ARGUMENTS F=OUND IN R$BKT MAC=0RO>
		>


		;=PFOR NORMAL (I.E.,=p NON-ARRAY FIELDS>):
		IFE 0,<
		>0;DEFINE THE RUN-T>PIME VALUE OF THE >pFIELD
		IFNB <A?>,<..VAL(.RR,.,BK?0T,\.OFBKT,.PSBKT,?PA)>
		;IF NO A?p IS GIVEN, INVOKE@ MACRO WITH DEFAU@0LT VALUE
		IFB <@PA>,<R$BKT<.DRBKT>>
		>
	2dK@ 	9L+
		;MAKE 	8pMACRO GIVE ERROR 	8PIF FIELD CANT BE 	80INITIALIZED.
		I	8F1,<IFE 0,<PRINTX	9X	?"R$BLN" IS AN I	9xNVALID RMS-20 MAC	:RO!>>
		;FOR ARR	:8AY FIELDS, DEFINE	:X MACRO WITH MULTI	:xPLE ARGUMENTS
			;; WHICH CAN SET T	;8HE CORRECT VALUE 	;XIN EACH ARRAY ELE	;xMENT.
		IFG 0,<		<	
			IFNB<A>,<
			XXX==0
			..	<XOFF==.OFBLN
			;	<xSET THE RUN-TIME 	=SYMBOL TO THIS MA	=8CRO ARGUMENT VALU	=XE
			IRP A,<
		=x			..VALQ(.RR,.,B	>LN,\XXX,\..OFF,.P	>8SBLN,A)
				..O	>XFF==..OFF+1
					>x;CHECK FOR MORE T	?HAN 8 ARGS
				I	?8FG XXX-0,<PRINTX		?X?TOO MANY ARGS DE	?xTECTED IN R$BLN M	@ACRO>
				XXX==X	@8XX+1
			>
			>
		;DONT ALLOW NU	@xLL ARRAY FIELD MA	ACRO INVOCATIONS
	A8		IFB <A>,<PRINT	AXX	?NO ARGUMENTS F	AxOUND IN R$BLN MAC	BRO>
		>


		;	B8FOR NORMAL (I.E.,	BX NON-ARRAY FIELDS	Bx):
		IFE 0,<
			C;DEFINE THE RUN-T	C8IME VALUE OF THE 	CXFIELD
		IFNB <A	Cx>,<..VAL(.RR,.,BL	DN,\.OFBLN,.PSBLN,	D8A)>
		;IF NO A	DX IS GIVEN, INVOKE	Dx MACRO WITH DEFAU	ELT VALUE
		IFB <	E8A>,<R$BLN<.DRBLN>>
		>
	HdN 	aXNo
		;MAKE 	a8MACRO GIVE ERROR 	aIF FIELD CANT BE 	`xINITIALIZED.
		I	`XF1,<IFE 1,<PRINTX	b	?"R$CTX" IS AN I	b8NVALID RMS-20 MAC	bXRO!>>
		;FOR ARR	bxAY FIELDS, DEFINE	c MACRO WITH MULTI	c8PLE ARGUMENTS
			cX; WHICH CAN SET T	cxHE CORRECT VALUE 	dIN EACH ARRAY ELE	d8MENT.
		IFG 0,<		dX	
			IFNB<A>,<
			XXX==0
			..	eOFF==.OFCTX
			;	e8SET THE RUN-TIME 	eXSYMBOL TO THIS MA	exCRO ARGUMENT VALU	fE
			IRP A,<
		f8			..VALQ(.RR,.,C	fXTX,\XXX,\..OFF,.P	fxSCTX,A)
				..O	gFF==..OFF+1
					g8;CHECK FOR MORE T	gXHAN 8 ARGS
				I	gxFG XXX-0,<PRINTX		h?TOO MANY ARGS DE	h8TECTED IN R$CTX M	hXACRO>
				XXX==X	hxXX+1
			>
			>
		;DONT ALLOW NU	i8LL ARRAY FIELD MA	iXCRO INVOCATIONS
	ix		IFB <A>,<PRINT	jX	?NO ARGUMENTS F	j8OUND IN R$CTX MAC	jXRO>
		>


		;	jxFOR NORMAL (I.E.,	k NON-ARRAY FIELDS	k8):
		IFE 0,<
			kX;DEFINE THE RUN-T	kxIME VALUE OF THE 	lFIELD
		IFNB <A	l8>,<..VAL(.RR,.,CT	lXX,\.OFCTX,.PSCTX,	lxA)>
		;IF NO A	m IS GIVEN, INVOKE	m8 MACRO WITH DEFAU	mXLT VALUE
		IFB <	mxA>,<R$CTX<.DRCTX>>
		>
	F0d4@ 	}`PP
		;MAKE 	| MACRO GIVE ERROR 	|@IF FIELD CANT BE 	|`INITIALIZED.
		I	}F1,<IFE 1,<PRINTX	~ 	?"R$FAB" IS AN I	~@NVALID RMS-20 MAC	~`RO!>>
		;FOR ARR	AY FIELDS, DEFINE	  MACRO WITH MULTI	@PLE ARGUMENTS
			`; WHICH CAN SET T
HE CORRECT VALUE 
 IN EACH ARRAY ELE
@MENT.
		IFG 0,<	
`	
			IFNB<A>,<

			XXX==0
			..
 OFF==.OFFAB
			;
@SET THE RUN-TIME 
`SYMBOL TO THIS MA
CRO ARGUMENT VALU
 E
			IRP A,<
	
@			..VALQ(.RR,.,F
`AB,\XXX,\..OFF,.P
SFAB,A)
				..O
 FF==..OFF+1
				
@;CHECK FOR MORE T
`HAN 8 ARGS
				I
FG XXX-0,<PRINTX	
 ?TOO MANY ARGS DE
@TECTED IN R$FAB M
`ACRO>
				XXX==X
XX+1
			>
			>
 
		;DONT ALLOW NU
@LL ARRAY FIELD MA
`CRO INVOCATIONS

		IFB <A>,<PRINT
 X	?NO ARGUMENTS F
@OUND IN R$FAB MAC
`RO>
		>


		;
FOR NORMAL (I.E.,
  NON-ARRAY FIELDS
@):
		IFE 0,<
		
`;DEFINE THE RUN-T
IME VALUE OF THE 
 FIELD
		IFNB <A
@>,<..VAL(.RR,.,FA
`B,\.OFFAB,.PSFAB,
	A)>
		;IF NO A
	  IS GIVEN, INVOKE
	@ MACRO WITH DEFAU
	`LT VALUE
		IFB <

A>,<R$FAB<.DRFAB>>
		>
	2 dN:  	o`O`
		;MAKE 	nMACRO GIVE ERROR 	n8IF FIELD CANT BE 	nXINITIALIZED.
		I	nxF1,<IFE 0,<PRINTX	p 	?"R$ISI" IS AN I	p@NVALID RMS-20 MAC	p`RO!>>
		;FOR ARR	qAY FIELDS, DEFINE	q  MACRO WITH MULTI	q@PLE ARGUMENTS
			q`; WHICH CAN SET T	rHE CORRECT VALUE 	r IN EACH ARRAY ELE	r@MENT.
		IFG 0,<		r`	
			IFNB<A>,<
			XXX==0
			..	s OFF==.OFISI
			;	s@SET THE RUN-TIME 	s`SYMBOL TO THIS MA	tCRO ARGUMENT VALU	t E
			IRP A,<
		t@			..VALQ(.RR,.,I	t`SI,\XXX,\..OFF,.P	uSISI,A)
				..O	u FF==..OFF+1
					u@;CHECK FOR MORE T	u`HAN 8 ARGS
				I	vFG XXX-0,<PRINTX		v ?TOO MANY ARGS DE	v@TECTED IN R$ISI M	v`ACRO>
				XXX==X	wXX+1
			>
			>
		;DONT ALLOW NU	w@LL ARRAY FIELD MA	w`CRO INVOCATIONS
	x		IFB <A>,<PRINT	x X	?NO ARGUMENTS F	x@OUND IN R$ISI MAC	x`RO>
		>


		;	yFOR NORMAL (I.E.,	y  NON-ARRAY FIELDS	y@):
		IFE 0,<
			y`;DEFINE THE RUN-T	zIME VALUE OF THE 	z FIELD
		IFNB <A	z@>,<..VAL(.RR,.,IS	z`I,\.OFISI,.PSISI,	{A)>
		;IF NO A	{  IS GIVEN, INVOKE	{@ MACRO WITH DEFAU	{`LT VALUE
		IFB <	|A>,<R$ISI<.DRISI>>
		>
	q`& d\)@ &([
		;MAKE $`MACRO GIVE ERROR %IF FIELD CANT BE % INITIALIZED.
		I%@F1,<IFE 1,<PRINTX&h	?"R$KBF" IS AN I'NVALID RMS-20 MAC'(RO!>>
		;FOR ARR'HAY FIELDS, DEFINE'h MACRO WITH MULTI(PLE ARGUMENTS
		((; WHICH CAN SET T(HHE CORRECT VALUE (hIN EACH ARRAY ELE)MENT.
		IFG 0,<	)(	
			IFNB<A>,<
			XXX==0
			..)hOFF==.OFKBF
			;*SET THE RUN-TIME *(SYMBOL TO THIS MA*HCRO ARGUMENT VALU*hE
			IRP A,<
	+			..VALQ(.RR,.,K+(BF,\XXX,\..OFF,.P+HSKBF,A)
				..O+hFF==..OFF+1
				,;CHECK FOR MORE T,(HAN 8 ARGS
				I,HFG XXX-0,<PRINTX	,h?TOO MANY ARGS DE-TECTED IN R$KBF M-(ACRO>
				XXX==X-HXX+1
			>
			>
		;DONT ALLOW NU.LL ARRAY FIELD MA.(CRO INVOCATIONS
.H		IFB <A>,<PRINT.hX	?NO ARGUMENTS F/OUND IN R$KBF MAC/(RO>
		>


		;/HFOR NORMAL (I.E.,/h NON-ARRAY FIELDS0):
		IFE 0,<
		0(;DEFINE THE RUN-T0HIME VALUE OF THE 0hFIELD
		IFNB <A1>,<..VAL(.RR,.,KB1(F,\.OFKBF,.PSKBF,1HA)>
		;IF NO A1h IS GIVEN, INVOKE2 MACRO WITH DEFAU2(LT VALUE
		IFB <2HA>,<R$KBF<.DRKBF>>
		>
	Pd^)@ 
|XC
		;MAKE 
zPMACRO GIVE ERROR 
zpIF FIELD CANT BE 
{INITIALIZED.
		I
{0F1,<IFE 1,<PRINTX
|X	?"R$KRF" IS AN I
|xNVALID RMS-20 MAC
}RO!>>
		;FOR ARR
}8AY FIELDS, DEFINE
}X MACRO WITH MULTI
}xPLE ARGUMENTS
		
~; WHICH CAN SET T
~8HE CORRECT VALUE 
~XIN EACH ARRAY ELE
~xMENT.
		IFG 0,<	
	
			IFNB<A>,<
8
			XXX==0
			..
XOFF==.OFKRF
			;
xSET THE RUN-TIME SYMBOL TO THIS MA8CRO ARGUMENT VALUXE
			IRP A,<
	x			..VALQ(.RR,.,KRF,\XXX,\..OFF,.P8SKRF,A)
				..OXFF==..OFF+1
				x;CHECK FOR MORE THAN 8 ARGS
				I8FG XXX-0,<PRINTX	X?TOO MANY ARGS DExTECTED IN R$KRF MACRO>
				XXX==X8XX+1
			>
			>
		;DONT ALLOW NUxLL ARRAY FIELD MACRO INVOCATIONS
8		IFB <A>,<PRINTXX	?NO ARGUMENTS FxOUND IN R$KRF MACRO>
		>


		;8FOR NORMAL (I.E.,X NON-ARRAY FIELDSx):
		IFE 0,<
		;DEFINE THE RUN-T8IME VALUE OF THE XFIELD
		IFNB <Ax>,<..VAL(.RR,.,KRF,\.OFKRF,.PSKRF,8A)>
		;IF NO AX IS GIVEN, INVOKEx MACRO WITH DEFAULT VALUE
		IFB <8A>,<R$KRF<.DRKRF>>
		>
	Pd^>@ 
 Y4
		;MAKE XMACRO GIVE ERROR xIF FIELD CANT BE 	INITIALIZED.
		I	8F1,<IFE 1,<PRINTX
`	?"R$KSZ" IS AN INVALID RMS-20 MAC RO!>>
		;FOR ARR@AY FIELDS, DEFINE` MACRO WITH MULTI
PLE ARGUMENTS
		
 ; WHICH CAN SET T
@HE CORRECT VALUE 
`INNEACH ARRAY ELE
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			...OFKSZ
			;SET THE RUN-TIME  SYMBOL TO THIS MA@CRO ARGUMENT VALU`E
			IRP A,<
				..VALQ(.RR,.,K SZ,\XXX,\..OFF,.P@SKSZ,A)
				..O`FF==..OFF+1
				;CHECK FOR MORE T HAN 8 ARGS
				I@FG XXX-0,<PRINTX	`?TOO MANY ARGS DETECTED IN R$KSZ M ACRO>
				XXX==X@XX+1
			>
			>
		;DONT ALLOW NULL ARRAY FIELD MA CRO INVOCATIONS
@		IFB <A>,<PRINT`X	?NO ARGUMENTS FOUND IN R$KSZ MAC RO>
		>


		;@FOR NORMAL (I.E.,` NON-ARRAY FIELDS):
		IFE 0,<
		 ;DEFINE THE RUN-T@IME VALUE OF THE `FIELD
		IFNB <A>,<..VAL(.RR,.,KS Z,\.OFKSZ,.PSKSZ,@A)>
		;IF NO A` IS GIVEN, INVOKE MACRO WITH DEFAU LT VALUE
		IFB <@A>,<R$KSZ<.DRKSZ>>
		>
	C)Jdf;@  Z$
		;MAKE `MACRO GIVE ERROR IF FIELD CANT BE  INITIALIZED.
		I@F1,<IFE 1,<PRINTX`	?"R$LSN" IS AN INVALID RMS-20 MAC RO!>>
		;FOR ARR@AY FIELDS, DEFINE` MACRO WITH MULTIPLE ARGUMENTS
		 ; WHICH CAN SET T@HE CORRECT VALUE `IN EACH ARRAY ELEMENT.
		IFG 0,<	 	
			IFNB<A>,<
			XXX==0
			..`OFF==.OFLSN
			;SET THE RUN-TIME  SYMBOL TO THIS MA@CRO ARGUMENT VALU`E
			IRP A,<
				..VALQ(.RR,.,L SN,\XXX,\..OFF,.P@SLSN,A)
				..O`FF==..OFF+1
				;CHECK FOR MORE T HAN 8 ARGS
				I@FG XXX-0,<PRINTX	`?TOO MANY ARGS DETECTED IN R$LSN M ACRO>
				XXX==X@XX+1
			>
			>
		;DONT ALLOW NU LL ARRAY FIELD MA  CRO INVOCATIONS
 @		IFB <A>,<PRINT `X	?NO ARGUMENTS F!OUND IN R$LSN MAC! RO>
		>


		;!@FOR NORMAL (I.E.,!` NON-ARRAY FIELDS"):
		IFE 0,<
		" ;DEFINE THE RUN-T"@IME VALUE OF THE "`FIELD
		IFNB <A#>,<..VAL(.RR,.,LS# N,\.OFLSN,.PSLSN,#@A)>
		;IF NO A#` IS GIVEN, INVOKE$ MACRO WITH DEFAU$ LT VALUE
		IFB <$@A>,<R$LSN<.DRLSN>>
		>
	M& 
pR1
		;MAKE 
(MACRO GIVE ERROR 
HIF FIELD CANT BE 
hINITIALIZED.
		I
F1,<IFE 1,<PRINTX
0	?"R$MBF" IS AN I
PNVALID RMS-20 MAC
pRO!>>
		;FOR ARR
AY FIELDS, DEFINE
0 MACRO WITH MULTI
PPLE ARGUMENTS
		
p; WHICH CAN SET T
HE CORRECT VALUE 
0IN EACH ARRAY ELE
PMENT.
		IFG 0,<	
p	
			IFNB<A>,<

			XXX==0
			..
0OFF==.OFMBF
			;
PSET THE RUN-TIME 
pSYMBOL TO THIS MA
CRO ARGUMENT VALU
0E
			IRP A,<
	
P			..VALQ(.RR,.,M
pBF,\XXX,\..OFF,.P
SMBF,A)
				..O
0FF==..OFF+1
				
P;CHECK FOR MORE T
pHAN 8 ARGS
				I
 FG XXX-0,<PRINTX	
 0?TOO MANY ARGS DE
 PTECTED IN R$MBF M
 pACRO>
				XXX==X
!XX+1
			>
			>
!0
		;DONT ALLOW NU
!PLL ARRAY FIELD MA
!pCRO INVOCATIONS

"		IFB <A>,<PRINT
"0X	?NO ARGUMENTS F
"POUND IN R$MBF MAC
"pRO>
		>


		;
#FOR NORMAL (I.E.,
#0 NON-ARRAY FIELDS
#P):
		IFE 0,<
		
#p;DEFINE THE RUN-T
$IME VALUE OF THE 
$0FIELD
		IFNB <A
$P>,<..VAL(.RR,.,MB
$pF,\.OFMBF,.PSMBF,
%A)>
		;IF NO A
%0 IS GIVEN, INVOKE
%P MACRO WITH DEFAU
%pLT VALUE
		IFB <
&A>,<R$MBF<.DRMBF>>
		>
	I6=d` 
hQ@
		;MAKE 

 MACRO GIVE ERROR 

@IF FIELD CANT BE 

`INITIALIZED.
		I
F1,<IFE 1,<PRINTX
(	?"R$RAC" IS AN I
HNVALID RMS-20 MAC
hRO!>>
		;FOR ARR
AY FIELDS, DEFINE
( MACRO WITH MULTI
HPLE ARGUMENTS
		
h; WHICH CAN SET T
HE CORRECT VALUE 
(IN EACH ARRAY ELE
HMENT.
		IFG 0,<	
h	
			IFNB<A>,<

			XXX==0
			..
(OFF==.OFRAC
			;
HSET THE RUN-TIME 
hSYMBOL TO THIS MA
CRO ARGUMENT VALU
(E
			IRP A,<
	
H			..VALQ(.RR,.,R
hAC,\XXX,\..OFF,.P
SRAC,A)
				..O
(FF==..OFF+1
				
H;CHECK FOR MORE T
hHAN 8 ARGS
				I
FG XXX-0,<PRINTX	
(?TOO MANY ARGS DE
HTECTED IN R$RAC M
hACRO>
				XXX==X
XX+1
			>
			>
(
		;DONT ALLOW NU
HLL ARRAY FIELD MA
hCRO INVOCATIONS

		IFB <A>,<PRINT
(X	?NO ARGUMENTS F
HOUND IN R$RAC MAC
hRO>
		>


		;
FOR NORMAL (I.E.,
( NON-ARRAY FIELDS
H):
		IFE 0,<
		
h;DEFINE THE RUN-T
IME VALUE OF THE 
(FIELD
		IFNB <A
H>,<..VAL(.RR,.,RA
hC,\.OFRAC,.PSRAC,
A)>
		;IF NO A
( IS GIVEN, INVOKE
H MACRO WITH DEFAU
hLT VALUE
		IFB <
A>,<R$RAC<.DRRAC>>
		>
	Pd)@ 
DU
		;MAKE 
B8MACRO GIVE ERROR 
BXIF FIELD CANT BE 
BxINITIALIZED.
		I
CF1,<IFE 1,<PRINTX
D@	?"R$RBF" IS AN I
D`NVALID RMS-20 MAC
ERO!>>
		;FOR ARR
E AY FIELDS, DEFINE
E@ MACRO WITH MULTI
E`PLE ARGUMENTS
		
F; WHICH CAN SET T
F HE CORRECT VALUE 
F@IN EACH ARRAY ELE
F`MENT.
		IFG 0,<	
G	
			IFNB<A>,<
G 
			XXX==0
			..
G@OFF==.OFRBF
			;
G`SET THE RUN-TIME 
HSYMBOL TO THIS MA
H CRO ARGUMENT VALU
H@E
			IRP A,<
	
H`			..VALQ(.RR,.,R
IBF,\XXX,\..OFF,.P
I SRBF,A)
				..O
I@FF==..OFF+1
				
I`;CHECK FOR MORE T
JHAN 8 ARGS
				I
J FG XXX-0,<PRINTX	
J@?TOO MANY ARGS DE
J`TECTED IN R$RBF M
KACRO>
				XXX==X
K XX+1
			>
			>
K@
		;DONT ALLOW NU
K`LL ARRAY FIELD MA
LCRO INVOCATIONS

L 		IFB <A>,<PRINT
L@X	?NO ARGUMENTS F
L`OUND IN R$RBF MAC
MRO>
		>


		;
M FOR NORMAL (I.E.,
M@ NON-ARRAY FIELDS
M`):
		IFE 0,<
		
N;DEFINE THE RUN-T
N IME VALUE OF THE 
N@FIELD
		IFNB <A
N`>,<..VAL(.RR,.,RB
OF,\.OFRBF,.PSRBF,
O A)>
		;IF NO A
O@ IS GIVEN, INVOKE
O` MACRO WITH DEFAU
PLT VALUE
		IFB <
P A>,<R$RBF<.DRRBF>>
		>
	7`dh  
nWS
		;MAKE 
lHMACRO GIVE ERROR 
lhIF FIELD CANT BE 
mINITIALIZED.
		I
m(F1,<IFE 0,<PRINTX
nP	?"R$RFA" IS AN I
npNVALID RMS-20 MAC
oRO!>>
		;FOR ARR
o0AY FIELDS, DEFINE
oP MACRO WITH MULTI
opPLE ARGUMENTS
		
p; WHICH CAN SET T
p0HE CORRECT VALUE 
pPIN EACH ARRAY ELE
ppMENT.
		IFG 0,<	
q	
			IFNB<A>,<
q0
			XXX==0
			..
qPOFF==.OFRFA
			;
qpSET THE RUN-TIME 
rSYMBOL TO THIS MA
r0CRO ARGUMENT VALU
rPE
			IRP A,<
	
rp			..VALQ(.RR,.,R
sFA,\XXX,\..OFF,.P
s0SRFA,A)
				..O
sPFF==..OFF+1
				
sp;CHECK FOR MORE T
tHAN 8 ARGS
				I
t0FG XXX-0,<PRINTX	
tP?TOO MANY ARGS DE
tpTECTED IN R$RFA M
uACRO>
				XXX==X
u0XX+1
			>
			>
uP
		;DONT ALLOW NU
upLL ARRAY FIELD MA
vCRO INVOCATIONS

v0		IFB <A>,<PRINT
vPX	?NO ARGUMENTS F
vpOUND IN R$RFA MAC
wRO>
		>


		;
w0FOR NORMAL (I.E.,
wP NON-ARRAY FIELDS
wp):
		IFE 0,<
		
x;DEFINE THE RUN-T
x0IME VALUE OF THE 
xPFIELD
		IFNB <A
xp>,<..VAL(.RR,.,RF
yA,\.OFRFA,.PSRFA,
y0A)>
		;IF NO A
yP IS GIVEN, INVOKE
yp MACRO WITH DEFAU
zLT VALUE
		IFB <
z0A>,<R$RFA<.DRRFA>>
		>
	
:4@d@ U,D
		IF1,<PHhRINTX	%"R$RHB" ISHH IGNORED BY RMS-20>
	.RHBd| 
'pS!
		;MAKE 
&0MACRO GIVE ERROR 
&PIF FIELD CANT BE 
&pINITIALIZED.
		I
'F1,<IFE 1,<PRINTX
(0	?"R$ROP" IS AN I
(PNVALID RMS-20 MAC
(pRO!>>
		;FOR ARR
)AY FIELDS, DEFINE
)0 MACRO WITH MULTI
)PPLE ARGUMENTS
		
)p; WHICH CAN SET T
*HE CORRECT VALUE 
*0IN EACH ARRAY ELE
*PMENT.
		IFG 0,<	
*p	
			IFNB<A>,<
+
			XXX==0
			..
+0OFF==.OFROP
			;
+PSET THE RUN-TIME 
+pSYMBOL TO THIS MA
,CRO ARGUMENT VALU
,0E
			IRP A,<
	
,P			..VALQ(.RR,.,R
,pOP,\XXX,\..OFF,.P
-SROP,A)
				..O
-0FF==..OFF+1
				
-P;CHECK FOR MORE T
-pHAN 8 ARGS
				I
.FG XXX-0,<PRINTX	
.0?TOO MANY ARGS DE
.PTECTED IN R$ROP M
.pACRO>
				XXX==X
/XX+1
			>
			>
/0
		;DONT ALLOW NU
/PLL ARRAY FIELD MA
/pCRO INVOCATIONS

0		IFB <A>,<PRINT
00X	?NO ARGUMENTS F
0POUND IN R$ROP MAC
0pRO>
		>


		;
1FOR NORMAL (I.E.,
10 NON-ARRAY FIELDS
1P):
		IFE 0,<
		
1p;DEFINE THE RUN-T
2IME VALUE OF THE 
20FIELD
		IFNB <A
2P>,<..VAL(.RR,.,RO
2pP,\.OFROP,.PSROP,
3A)>
		;IF NO A
30 IS GIVEN, INVOKE
3P MACRO WITH DEFAU
3pLT VALUE
		IFB <
4A>,<R$ROP<.DRROP>>
		>
	qH@d>@ 
RUr
		;MAKE 
P@MACRO GIVE ERROR 
P`IF FIELD CANT BE 
QINITIALIZED.
		I
Q F1,<IFE 1,<PRINTX
RH	?"R$RSZ" IS AN I
RhNVALID RMS-20 MAC
SRO!>>
		;FOR ARR
S(AY FIELDS, DEFINE
SH MACRO WITH MULTI
ShPLE ARGUMENTS
		
T; WHICH CAN SET T
T(HE CORRECT VALUE 
THIN EACH ARRAY ELE
ThMENT.
		IFG 0,<	
U	
			IFNB<A>,<
U(
			XXX==0
			..
UHOFF==.OFRSZ
			;
UhSET THE RUN-TIME 
VSYMBOL TO THIS MA
V(CRO ARGUMENT VALU
VHE
			IRP A,<
	
Vh			..VALQ(.RR,.,R
WSZ,\XXX,\..OFF,.P
W(SRSZ,A)
				..O
WHFF==..OFF+1
				
Wh;CHECK FOR MORE T
XHAN 8 ARGS
				I
X(FG XXX-0,<PRINTX	
XH?TOO MANY ARGS DE
XhTECTED IN R$RSZ M
YACRO>
				XXX==X
Y(XX+1
			>
			>
YH
		;DONT ALLOW NU
YhLL ARRAY FIELD MA
ZCRO INVOCATIONS

Z(		IFB <A>,<PRINT
ZHX	?NO ARGUMENTS F
ZhOUND IN R$RSZ MAC
[RO>
		>


		;
[(FOR NORMAL (I.E.,
[H NON-ARRAY FIELDS
[h):
		IFE 0,<
		
\;DEFINE THE RUN-T
\(IME VALUE OF THE 
\HFIELD
		IFNB <A
\h>,<..VAL(.RR,.,RS
]Z,\.OFRSZ,.PSRSZ,
](A)>
		;IF NO A
]H IS GIVEN, INVOKE
]h MACRO WITH DEFAU
^LT VALUE
		IFB <
^(A>,<R$RSZ<.DRRSZ>>
		>
	PdL` 	FXM
		;MAKE 	F8MACRO GIVE ERROR 	FIF FIELD CANT BE 	ExINITIALIZED.
		I	EXF1,<IFE 0,<PRINTX	G	?"R$STS" IS AN I	G8NVALID RMS-20 MAC	GXRO!>>
		;FOR ARR	GxAY FIELDS, DEFINE	H MACRO WITH MULTI	H8PLE ARGUMENTS
			HX; WHICH CAN SET T	HxHE CORRECT VALUE 	IIN EACH ARRAY ELE	I8MENT.
		IFG 0,<		IX	
			IFNB<A>,<
			XXX==0
			..	JOFF==.OFSTS
			;	J8SET THE RUN-TIME 	JXSYMBOL TO THIS MA	JxCRO ARGUMENT VALU	KE
			IRP A,<
		K8			..VALQ(.RR,.,S	KXTS,\XXX,\..OFF,.P	KxSSTS,A)
				..O	LFF==..OFF+1
					L8;CHECK FOR MORE T	LXHAN 8 ARGS
				I	LxFG XXX-0,<PRINTX		M?TOO MANY ARGS DE	M8TECTED IN R$STS M	MXACRO>
				XXX==X	MxXX+1
			>
			>
		;DONT ALLOW NU	N8LL ARRAY FIELD MA	NXCRO INVOCATIONS
	Nx		IFB <A>,<PRINT	OX	?NO ARGUMENTS F	O8OUND IN R$STS MAC	OXRO>
		>


		;	OxFOR NORMAL (I.E.,	P NON-ARRAY FIELDS	P8):
		IFE 0,<
			PX;DEFINE THE RUN-T	PxIME VALUE OF THE 	QFIELD
		IFNB <A	Q8>,<..VAL(.RR,.,ST	QXS,\.OFSTS,.PSSTS,	QxA)>
		;IF NO A	R IS GIVEN, INVOKE	R8 MACRO WITH DEFAU	RXLT VALUE
		IFB <	RxA>,<R$STS<.DRSTS>>
		>
	PdM@ 	TN
		;MAKE 	SxMACRO GIVE ERROR 	SXIF FIELD CANT BE 	S8INITIALIZED.
		I	SF1,<IFE 0,<PRINTX	TX	?"R$STV" IS AN I	TxNVALID RMS-20 MAC	URO!>>
		;FOR ARR	U8AY FIELDS, DEFINE	UX MACRO WITH MULTI	UxPLE ARGUMENTS
			V; WHICH CAN SET T	V8HE CORRECT VALUE 	VXIN EACH ARRAY ELE	VxMENT.
		IFG 0,<		W	
			IFNB<A>,<
			XXX==0
			..	WXOFF==.OFSTV
			;	WxSET THE RUN-TIME 	XSYMBOL TO THIS MA	X8CRO ARGUMENT VALU	XXE
			IRP A,<
		Xx			..VALQ(.RR,.,S	YTV,\XXX,\..OFF,.P	Y8SSTV,A)
				..O	YXFF==..OFF+1
					Yx;CHECK FOR MORE T	ZHAN 8 ARGS
				I	Z8FG XXX-0,<PRINTX		ZX?TOO MANY ARGS DE	ZxTECTED IN R$STV M	[ACRO>
				XXX==X	[8XX+1
			>
			>
		;DONT ALLOW NU	[xLL ARRAY FIELD MA	\CRO INVOCATIONS
	\8		IFB <A>,<PRINT	\XX	?NO ARGUMENTS F	\xOUND IN R$STV MAC	]RO>
		>


		;	]8FOR NORMAL (I.E.,	]X NON-ARRAY FIELDS	]x):
		IFE 0,<
			^;DEFINE THE RUN-T	^8IME VALUE OF THE 	^XFIELD
		IFNB <A	^x>,<..VAL(.RR,.,ST	_V,\.OFSTV,.PSSTV,	_8A)>
		;IF NO A	_X IS GIVEN, INVOKE	_x MACRO WITH DEFAU	`LT VALUE
		IFB <	`8A>,<R$STV<.DRSTV>>
		>
	d,)@ 
5xT
		;MAKE 
40MACRO GIVE ERROR 
4PIF FIELD CANT BE 
4pINITIALIZED.
		I
5F1,<IFE 1,<PRINTX
68	?"R$UBF" IS AN I
6XNVALID RMS-20 MAC
6xRO!>>
		;FOR ARR
7AY FIELDS, DEFINE
78 MACRO WITH MULTI
7XPLE ARGUMENTS
		
7x; WHICH CAN SET T
8HE CORRECT VALUE 
88IN EACH ARRAY ELE
8XMENT.
		IFG 0,<	
8x	
			IFNB<A>,<
9
			XXX==0
			..
98OFF==.OFUBF
			;
9XSET THE RUN-TIME 
9xSYMBOL TO THIS MA
:CRO ARGUMENT VALU
:8E
			IRP A,<
	
:X			..VALQ(.RR,.,U
:xBF,\XXX,\..OFF,.P
;SUBF,A)
				..O
;8FF==..OFF+1
				
;X;CHECK FOR MORE T
;xHAN 8 ARGS
				I
<FG XXX-0,<PRINTX	
<8?TOO MANY ARGS DE
<XTECTED IN R$UBF M
<xACRO>
				XXX==X
=XX+1
			>
			>
=8
		;DONT ALLOW NU
=XLL ARRAY FIELD MA
=xCRO INVOCATIONS

>		IFB <A>,<PRINT
>8X	?NO ARGUMENTS F
>XOUND IN R$UBF MAC
>xRO>
		>


		;
?FOR NORMAL (I.E.,
?8 NON-ARRAY FIELDS
?X):
		IFE 0,<
		
?x;DEFINE THE RUN-T
@IME VALUE OF THE 
@8FIELD
		IFNB <A
@X>,<..VAL(.RR,.,UB
@xF,\.OFUBF,.PSUBF,
AA)>
		;IF NO A
A8 IS GIVEN, INVOKE
AX MACRO WITH DEFAU
AxLT VALUE
		IFB <
BA>,<R$UBF<.DRUBF>>
		>
	-,d.>@ 
`Vb
		;MAKE 
^HMACRO GIVE ERROR 
^hIF FIELD CANT BE 
_INITIALIZED.
		I
_(F1,<IFE 1,<PRINTX
`H	?"R$USZ" IS AN I
`hNVALID RMS-20 MAC
aRO!>>
		;FOR ARR
a(AY FIELDS, DEFINE
aH MACRO WITH MULTI
ahPLE ARGUMENTS
		
b; WHICH CAN SET T
b(HE CORRECT VALUE 
bHIN EACH ARRAY ELE
bhMENT.
		IFG 0,<	
c	
			IFNB<A>,<
c(
			XXX==0
			..
cHOFF==.OFUSZ
			;
chSET THE RUN-TIME 
dSYMBOL TO THIS MA
d(CRO ARGUMENT VALU
dHE
			IRP A,<
	
dh			..VALQ(.RR,.,U
eSZ,\XXX,\..OFF,.P
e(SUSZ,A)
				..O
eHFF==..OFF+1
				
eh;CHECK FOR MORE T
fHAN 8 ARGS
				I
f(FG XXX-0,<PRINTX	
fH?TOO MANY ARGS DE
fhTECTED IN R$USZ M
gACRO>
				XXX==X
g(XX+1
			>
			>
gH
		;DONT ALLOW NU
ghLL ARRAY FIELD MA
hCRO INVOCATIONS

h(		IFB <A>,<PRINT
hHX	?NO ARGUMENTS F
hhOUND IN R$USZ MAC
iRO>
		>


		;
i(FOR NORMAL (I.E.,
iH NON-ARRAY FIELDS
ih):
		IFE 0,<
		
j;DEFINE THE RUN-T
j(IME VALUE OF THE 
jHFIELD
		IFNB <A
jh>,<..VAL(.RR,.,US
kZ,\.OFUSZ,.PSUSZ,
k(A)>
		;IF NO A
kH IS GIVEN, INVOKE
kh MACRO WITH DEFAU
lLT VALUE
		IFB <
l(A>,<R$USZ<.DRUSZ>>
		>
	Pe%KSP e&N8P eH@ h0Z
		;IF NOT AN XAB, CHECK T(HAT NO ARG IS GIVHEN...
		IF1,<IFDhIF <R><X>,<IFNB <	A>,<PRINTX	?RAB$	(B DOESNT TAKE ANY	H ARGUMENTS>>>
			h;SINCE XAB'S ARE 
THE ONLY BLOCK WH
(ICH HAVE TYPES,

H		; WE CAN CREATE
h THE SYMBOL NOW BY PRECEEDING IT W(ITH "XB$"
		..BEG(R,RB$A)	
	EeI  h0^
		..END(R,A)
		..END(e$[sP e$iP e%9<P e%9rP @e%9zP  e%KpP e%KqP e&2P e&(4P e&)PP e&98P e&xTP e4%X< e4%Z7 e7(` h1 A$B==1BC  A$B==1Be7-@ H1X
						
h	DEFINE RMSVRB (NAME),  < RMSV2 (N(AME,) >

						H
						
						
						
	DEFINE RMSV2 (NEW, OLD) (<
		$$VERB ($'NEHW)			
		DEFINE RhMSVRB (NAME) <		
			RMSV2 (NAME, (	OLD
					<$'NEWH##>  )
		>; END hOF REDEFINITION OF RMSVRB
	>; END OF RMSV2
 ENDe7;v 1 e7H` (1 A$B==^DC  A$B==^De7[R 1b END ,e7k (18
	IF1,<
H	..DF==C$D
	
h	
	
	.OFB==XX$E
	.SZB==XX$F(
	.PSB==^D35-XXH$G		; COMPUTE RIhGHT-MOST BIT
	..ASN==XX$H
	..CN(T==XX$I
	FIELDSH(A,.,B,\..DF,.OhFB,.SZB,.PSB,\..ASN,\..CNT)
	>;END OF IF1
	>e78` h1 A$B==C$D  A$B==Ce7d@ (1v
		$$VERBH ($A)			
		DEFIhNE RMSVRB (NAME) <		
			RMSV2 (NA(ME, 	B
					<$HA##>  )
		>; ENDh OF REDEFINITION OF RMSVRB
	ON e7lQ @YB		
			RMSD9V2 (A, 	 	 	 	 	KH 	 	 	 	 	 	 	 	 (	 	 	 	 	
					<I$OPEN##>  
					! <$CLOSE##>  
			1		<$GET##>  
			N			<$PUT##>  
			N(		<$UPDATE##>  
NH					<$DELETE##> I 
					<$FIND##>H  
					<$TRUNCA.TE##>  
					<$C%iONNECT##>  
				G!	<$DISCONNECT##> G@ 
					<$CREATE#G`#>  
					<$DEBUPG##>  
					<$RE.yLEASE##>  
					Ji<$FLUSH##>  
			3!		<$MESSAGE##>  
					<$NOMESSAGE3##>  
					<$DIS{	PLAY##>  
					<8)$ERASE##>  )
		BERASE	 	p
		;MAKEEGIVEAERROR 
		I1,<IFED1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFAID
			;T THE RUN-TIME 
SYMBOL TO THIS MA
8CRO ARGUMENT VALU
XE
			IRP A,<
	
x			..VALQ(.RX,.,AP
				..O.OFF+1
				HECK FOR MORE T
HAN 8 ARGS
				I
8FG XXX-0,<PRINTX	
X?TOO MANY ARGS DE
xTECTED IN X$AID M
				XXX==X
			>
			>
		;DONTAALLOWLNUMA
8		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,AI
		;IFCNOVA,HINVOKE
		IFB,<X$AID<.DXAID>>
		>
	Pp 
a$
		;MAKE 
xMACRO GIVE ERROR 
XIF FIELD CANT BE 
8INITIALIZED.
		I
F1,<IFE 0,<PRINTX
`	?"X$BID" IS AN I
	NVALID RMS-20 MAC
	 RO!>>
		;FOR ARR
	@AY FIELDS, DEFINE
	` MACRO WITH MULTI
PLE ARGUMENTS
		
 ; WHICH CAN SET T
@HE CORRECT VALUE 
`IN EACH ARRAY ELE
MENT.
		IFG 0,<	
 	
			IFNB<A>,<
@
			XXX==0
			..
`OFF==.OFBID
			;
SET THE RUN-TIME 
 SYMBOL TO THIS MA
@CRO ARGUMENT VALU
`E
			IRP A,<
	
			..VALQ(.RX,.,B
 ID,\XXX,\..OFF,.P
@SBID,A)
				..O
`FF==..OFF+1
				
;CHECK FOR MORE T
 HAN 8 ARGS
				I
@FG XXX-0,<PRINTX	
`?TOO MANY ARGS DE
TECTED IN X$BID M
 ACRO>
				XXX==X
@XX+1
			>
			>
`
		;DONT ALLOW NU
LL ARRAY FIELD MA
 CRO INVOCATIONS
@		IFB <A>,<PRINT
`X	?NO ARGUMENTS F
OUND IN X$BID MAC
 RO>
		>


		;
@FOR NORMAL (I.E.,
` NON-ARRAY FIELDS
):
		IFE 0,<
		
 ;DEFINE THE RUN-T
@IME VALUE OF THE 
`FIELD
		IFNB <A
>,<..VAL(.RX,.,BI
 D,\.OFBID,.PSBID,
@A)>
		;IF NO A
` IS GIVEN, INVOKE
 MACRO WITH DEFAU
 LT VALUE
		IFB <
@A>,<X$BID<.DXBID>>
		>
	L>@ 
		;MAKEEGIVEAERROR 
		I1,<IFEZ1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFBKZ
			;TBTHETRUN-TIMEA
			IRP A,<
	x			..VALQ(.RX,.,B
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
8		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,BK
		;IFCNOVA,HINVOKE
		IFB,<X$BKZ<.DXBKZ>>
		>
	PpK@ 
`b
		;MAKE 
@MACRO GIVE ERROR 
 IF FIELD CANT BE 
INITIALIZED.
		I
`F1,<IFE 0,<PRINTX
(	?"X$BLN" IS AN I
HNVALID RMS-20 MAC
hRO!>>
		;FOR ARR
AY FIELDS, DEFINE
( MACRO WITH MULTI
HPLE ARGUMENTS
		
h; WHICH CAN SET T
HE CORRECT VALUE 
(IN EACH ARRAY ELE
HMENT.
		IFG 0,<	
h	
			IFNB<A>,<

			XXX==0
			..
(OFF==.OFBLN
			;
HSET THE RUN-TIME 
hSYMBOL TO THIS MA
CRO ARGUMENT VALU
(E
			IRP A,<
	
H			..VALQ(.RX,.,B
hLN,\XXX,\..OFF,.P
SBLN,A)
				..O
(FF==..OFF+1
				
H;CHECK FOR MORE T
hHAN 8 ARGS
				I
FG XXX-0,<PRINTX	
(?TOO MANY ARGS DE
HTECTED IN X$BLN M
hACRO>
				XXX==X
XX+1
			>
			>
(
		;DONT ALLOW NU
HLL ARRAY FIELD MA
hCRO INVOCATIONS
		IFB <A>,<PRINT
(X	?NO ARGUMENTS F
HOUND IN X$BLN MAC
hRO>
		>


		;
FOR NORMAL (I.E.,
( NON-ARRAY FIELDS
H):
		IFE 0,<
		
h;DEFINE THE RUN-T
 IME VALUE OF THE 
 (FIELD
		IFNB <A
 H>,<..VAL(.RX,.,BL
 hN,\.OFBLN,.PSBLN,
!A)>
		;IF NO A
!( IS GIVEN, INVOKE
!H MACRO WITH DEFAU
!hLT VALUE
		IFB <
"A>,<X$BLN<.DXBLN>>
		>
	1<pM 
NeR
		;MAKE 
L8MACRO GIVE ERROR 
LXIF FIELD CANT BE 
LxINITIALIZED.
		I
MF1,<IFE 0,<PRINTX
N@	?"X$CDT" IS AN I
N`NVALID RMS-20 MAC
ORO!>>
		;FOR ARR
O AY FIELDS, DEFINE
O@ MACRO WITH MULTI
O`PLE ARGUMENTS
		
P; WHICH CAN SET T
P HE CORRECT VALUE 
P@IN EACH ARRAY ELE
P`MENT.
		IFG 0,<	
Q	
			IFNB<A>,<
Q 
			XXX==0
			..
Q@OFF==.OFCDT
			;
Q`SET THE RUN-TIME 
RSYMBOL TO THIS MA
R CRO ARGUMENT VALU
R@E
			IRP A,<
	
R`			..VALQ(.RX,.,C
SDT,\XXX,\..OFF,.P
S SCDT,A)
				..O
S@FF==..OFF+1
				
S`;CHECK FOR MORE T
THAN 8 ARGS
				I
T FG XXX-0,<PRINTX	
T@?TOO MANY ARGS DE
T`TECTED IN X$CDT M
UACRO>
				XXX==X
U XX+1
			>
			>
U@
		;DONT ALLOW NU
U`LL ARRAY FIELD MA
VCRO INVOCATIONS
V 		IFB <A>,<PRINT
V@X	?NO ARGUMENTS F
V`OUND IN X$CDT MAC
WRO>
		>


		;
W FOR NORMAL (I.E.,
W@ NON-ARRAY FIELDS
W`):
		IFE 0,<
		
X;DEFINE THE RUN-T
X IME VALUE OF THE 
X@FIELD
		IFNB <A
X`>,<..VAL(.RX,.,CD
YT,\.OFCDT,.PSCDT,
Y A)>
		;IF NO A
Y@ IS GIVEN, INVOKE
Y` MACRO WITH DEFAU
ZLT VALUE
		IFB <
Z A>,<X$CDT<.DXCDT>>
		>
	d^>@py 
1xcq
		;MAKE 
00MACRO GIVE ERROR 
0PIF FIELD CANT BE 
0pINITIALIZED.
		I
1F1,<IFE 0,<PRINTX
28	?"X$COD" IS AN I
2XNVALID RMS-20 MAC
2xRO!>>
		;FOR ARR
3AY FIELDS, DEFINE
38 MACRO WITH MULTI
3XPLE ARGUMENTS
		
3x; WHICH CAN SET T
4HE CORRECT VALUE 
48IN EACH ARRAY ELE
4XMENT.
		IFG 0,<	
4x	
			IFNB<A>,<
5
			XXX==0
			..
58OFF==.OFCOD
			;
5XSET THE RUN-TIME 
5xSYMBOL TO THIS MA
6CRO ARGUMENT VALU
68E
			IRP A,<
	
6X			..VALQ(.RX,.,C
6xOD,\XXX,\..OFF,.P
7SCOD,A)
				..O
78FF==..OFF+1
				
7X;CHECK FOR MORE T
7xHAN 8 ARGS
				I
8FG XXX-0,<PRINTX	
88?TOO MANY ARGS DE
8XTECTED IN X$COD M
8xACRO>
				XXX==X
9XX+1
			>
			>
98
		;DONT ALLOW NU
9XLL ARRAY FIELD MA
9xCRO INVOCATIONS
:		IFB <A>,<PRINT
:8X	?NO ARGUMENTS F
:XOUND IN X$COD MAC
:xRO>
		>


		;
;FOR NORMAL (I.E.,
;8 NON-ARRAY FIELDS
;X):
		IFE 0,<
		
;x;DEFINE THE RUN-T
<IME VALUE OF THE 
<8FIELD
		IFNB <A
<X>,<..VAL(.RX,.,CO
<xD,\.OFCOD,.PSCOD,
=A)>
		;IF NO A
=8 IS GIVEN, INVOKE
=X MACRO WITH DEFAU
=xLT VALUE
		IFB <
>A>,<X$COD<.DXCOD>>
		>
	Pp$@ 
		;MAKEEGIVEAERROR 
		I1,<IFEN1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFDAN
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,D
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
bX		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,DA
		;IFCNOVA,HINVOKE
		IFB,<X$DAN<.DXDAN>>
		>
	2p$k @qv
		;MAKE MACRO GIVE ERROR  IF FIELD CANT BE @INITIALIZED.
		I`F1,<IFE 1,<PRINTX	?"X$DFL" IS AN I NVALID RMS-20 MAC@RO!>>
		;FOR ARR`AY FIELDS, DEFINE MACRO WITH MULTI PLE ARGUMENTS
		@; WHICH CAN SET T`HE CORRECT VALUE IN EACH ARRAY ELE MENT.
		IFG 0,<	@	
			IFNB<A>,<
			XXX==0
			..OFF==.OFDFL
			; SET THE RUN-TIME @SYMBOL TO THIS MA`CRO ARGUMENT VALUE
			IRP A,<
	 			..VALQ(.RX,.,D@FL,\XXX,\..OFF,.P`SDFL,A)
				..OFF==..OFF+1
				 ;CHECK FOR MORE T@HAN 8 ARGS
				I`FG XXX-0,<PRINTX	?TOO MANY ARGS DE TECTED IN X$DFL M@ACRO>
				XXX==X`XX+1
			>
			>
		;DONT ALLOW NU LL ARRAY FIELD MA@CRO INVOCATIONS
`		IFB <A>,<PRINTX	?NO ARGUMENTS F OUND IN X$DFL MAC@RO>
		>


		;`FOR NORMAL (I.E., NON-ARRAY FIELDS ):
		IFE 0,<
		@;DEFINE THE RUN-T`IME VALUE OF THE FIELD
		IFNB <A >,<..VAL(.RX,.,DF@L,\.OFDFL,.PSDFL,`A)>
		;IF NO A IS GIVEN, INVOKE  MACRO WITH DEFAU@LT VALUE
		IFB <`A>,<X$DFL<.DXDFL>>
		>
	q`&p&L 
		;MAKEEGIVEAERROR 
		I1,<IFEP1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFDTP
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,D
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
8H		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,DT
		;IFCNOVA,HINVOKE
		IFB,<X$DTP<.DXDTP>>
		>
	Pp,M 
jg3
		;MAKE 
hHMACRO GIVE ERROR 
hhIF FIELD CANT BE 
iINITIALIZED.
		I
i(F1,<IFE 1,<PRINTX
jP	?"X$EDT" IS AN I
jpNVALID RMS-20 MAC
kRO!>>
		;FOR ARR
k0AY FIELDS, DEFINE
kP MACRO WITH MULTI
kpPLE ARGUMENTS
		
l; WHICH CAN SET T
l0HE CORRECT VALUE 
lPIN EACH ARRAY ELE
lpMENT.
		IFG 0,<	
m	
			IFNB<A>,<
m0
			XXX==0
			..
mPOFF==.OFEDT
			;
mpSET THE RUN-TIME 
nSYMBOL TO THIS MA
n0CRO ARGUMENT VALU
nPE
			IRP A,<
	
np			..VALQ(.RX,.,E
oDT,\XXX,\..OFF,.P
o0SEDT,A)
				..O
oPFF==..OFF+1
				
op;CHECK FOR MORE T
pHAN 8 ARGS
				I
p0FG XXX-0,<PRINTX	
pP?TOO MANY ARGS DE
ppTECTED IN X$EDT M
qACRO>
				XXX==X
q0XX+1
			>
			>
qP
		;DONT ALLOW NU
qpLL ARRAY FIELD MA
rCRO INVOCATIONS
r0		IFB <A>,<PRINT
rPX	?NO ARGUMENTS F
rpOUND IN X$EDT MAC
sRO>
		>


		;
s0FOR NORMAL (I.E.,
sP NON-ARRAY FIELDS
sp):
		IFE 0,<
		
t;DEFINE THE RUN-T
t0IME VALUE OF THE 
tPFIELD
		IFNB <A
tp>,<..VAL(.RX,.,ED
uT,\.OFEDT,.PSEDT,
u0A)>
		;IF NO A
uP IS GIVEN, INVOKE
up MACRO WITH DEFAU
vLT VALUE
		IFB <
v0A>,<X$EDT<.DXEDT>>
		>
	:8:p5I` 
		;MAKEEGIVEAERROR 
		I1,<IFEG1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFFLG
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,F
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
FH		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,FL
		;IFCNOVA,HINVOKE
		IFB,<X$FLG<.DXFLG>>
		>
	8,p>, `(-~
		IF1,<P`RINTX	%"X$GRP" IS_h IGNORED BY RMS-20>
	.GRPpD Xh-B
		IF1,<PXHRINTX	%"X$HAL" ISX( IGNORED BY RMS-20>
	.HALpL@ 
		;MAKEEGIVEAERROR 
		I1,<IFEN1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFIAN
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,I
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
TP		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,IA
		;IFCNOVA,HINVOKE
		IFB,<X$IAN<.DXIAN>>
		>
	p5I`pLk @q
		;MAKE xMACRO GIVE ERROR IF FIELD CANT BE 8INITIALIZED.
		IXF1,<IFE 1,<PRINTX	?"X$IFL" IS AN I NVALID RMS-20 MAC@RO!>>
		;FOR ARR`AY FIELDS, DEFINE MACRO WITH MULTI PLE ARGUMENTS
		@; WHICH CAN SET T`HE CORRECT VALUE IN EACH ARRAY ELE MENT.
		IFG 0,<	@	
			IFNB<A>,<
			XXX==0
			..OFF==.OFIFL
			; SET THE RUN-TIME @SYMBOL TO THIS MA`CRO ARGUMENT VALU	E
			IRP A,<
		 			..VALQ(.RX,.,I	@FL,\XXX,\..OFF,.P	`SIFL,A)
				..O
FF==..OFF+1
				
 ;CHECK FOR MORE T
@HAN 8 ARGS
				I
`FG XXX-0,<PRINTX	?TOO MANY ARGS DE TECTED IN X$IFL M@ACRO>
				XXX==X`XX+1
			>
			>

		;DONT ALLOW NU
 LL ARRAY FIELD MA
@CRO INVOCATIONS

`		IFBI<A>,<PRINT
		>


		; NORMAL (I.E., NON-ARRAY FIELDS ):
		IFE 0,<
		@;DEFINE THE RUN-T`IME VALUE OF THE FIELD
		IFNB <A >,<..VAL(.RX,.,IF@L,\.OFIFL,.PSIFL,`A)>
		;IF NO A IS GIVEN, INVOKE  MACRO WITH DEFAU@LT VALUE
		IFB <`A>,<X$IFL<.DXIFL>>
		>
	e&N8pV>9P 	p]k   Hrf
		;MAKE MACRO GIVE ERROR  IF FIELD CANT BE @INITIALIZED.
		I`F1,<IFE 1,<PRINTX!	?"X$KNM" IS AN I!(NVALID RMS-20 MAC!HRO!>>
		;FOR ARR!hAY FIELDS, DEFINE" MACRO WITH MULTI"(PLE ARGUMENTS
		"H; WHICH CAN SET T"hHE CORRECT VALUE #IN EACH ARRAY ELE#(MENT.
		IFG 0,<	#H	
			IFNB<A>,<
			XXX==0
			..$OFF==.OFKNM
			;$(SET THE RUN-TIME $HSYMBOL TO THIS MA$hCRO ARGUMENT VALU%E
			IRP A,<
	%(			..VALQ(.RX,.,K%HNM,\XXX,\..OFF,.P%hSKNM,A)
				..O&FF==..OFF+1
				&(;CHECK FOR MORE T&HHAN 8 ARGS
				I&hFG XXX-0,<PRINTX	'?TOO MANY ARGS DE'(TECTED IN X$KNM M'HACRO>
				XXX==X'hXX+1
			>
			>
		;DONT ALLOW NU((LL ARRAY FIELD MA(HCRO INVOCATIONS
(h		IFB <A>,<PRINT)X	?NO ARGUMENTS F)(OUND IN X$KNM MAC)HRO>
		>


		;)hFOR NORMAL (I.E.,* NON-ARRAY FIELDS*():
		IFE 0,<
		*H;DEFINE THE RUN-T*hIME VALUE OF THE +FIELD
		IFNB <A+(>,<..VAL(.RX,.,KN+HM,\.OFKNM,.PSKNM,+hA)>
		;IF NO A, IS GIVEN, INVOKE,( MACRO WITH DEFAU,HLT VALUE
		IFB <,hA>,<X$KNM<.DXKNM>>
		>
	.pd@ 
		;MAKEEGIVEAERROR 
		I1,<IFEN1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFLAN
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,L
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
pX		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,LA
		;IFCNOVA,HINVOKE
		IFB,<X$LAN<.DXLAN>>
		>
	PpnJ W(-6
		IF1,<PWRINTX	%"X$MTH" ISVh IGNORED BY RMS-20>
	.MTHpux  CH|~
		;MAKE BMACRO GIVE ERROR B(IF FIELD CANT BE BHINITIALIZED.
		IBhF1,<IFE 0,<PRINTXD	?"X$NOA" IS AN ID(NVALID RMS-20 MACDHRO!>>
		;FOR ARRDhAY FIELDS, DEFINEE MACRO WITH MULTIE(PLE ARGUMENTS
		EH; WHICH CAN SET TEhHE CORRECT VALUE FIN EACH ARRAY ELEF(MENT.
		IFG 0,<	FH	
			IFNB<A>,<
			XXX==0
			..GOFF==.OFNOA
			;G(SET THE RUN-TIME GHSYMBOL TO THIS MAGhCRO ARGUMENT VALUHE
			IRP A,<
	H(			..VALQ(.RX,.,NHHOA,\XXX,\..OFF,.PHhSNOA,A)
				..OIFF==..OFF+1
				I(;CHECK FOR MORE TIHHAN 8 ARGS
				IIhFG XXX-0,<PRINTX	J?TOO MANY ARGS DEJ(TECTED IN X$NOA MJHACRO>
				XXX==XJhXX+1
			>
			>
		;DONT ALLOW NUK(LL ARRAY FIELD MAKHCRO INVOCATIONS
Kh		IFB <A>,<PRINTLX	?NO ARGUMENTS FL(OUND IN X$NOA MACLHRO>
		>


		;LhFOR NORMAL (I.E.,M NON-ARRAY FIELDSM():
		IFE 0,<
		MH;DEFINE THE RUN-TMhIME VALUE OF THE NFIELD
		IFNB <AN(>,<..VAL(.RX,.,NONHA,\.OFNOA,.PSNOA,NhA)>
		;IF NO AO IS GIVEN, INVOKEO( MACRO WITH DEFAUOHLT VALUE
		IFB <OhA>,<X$NOA<.DXNOA>>
		>
	P 5H|
		;MAKE 4MACRO GIVE ERROR 4(IF FIELD CANT BE 4HINITIALIZED.
		I4hF1,<IFE 0,<PRINTX6	?"X$NOK" IS AN I6(NVALID RMS-20 MAC6HRO!>>
		;FOR ARR6hAY FIELDS, DEFINE7 MACRO WITH MULTI7(PLE ARGUMENTS
		7H; WHICH CAN SET T7hHE CORRECT VALUE 8IN EACH ARRAY ELE8(MENT.
		IFG 0,<	8H	
			IFNB<A>,<
			XXX==0
			..9OFF==.OFNOK
			;9(SET THE RUN-TIME 9HSYMBOL TO THIS MA9hCRO ARGUMENT VALU:E
			IRP A,<
	:(			..VALQ(.RX,.,N:HOK,\XXX,\..OFF,.P:hSNOK,A)
				..O;FF==..OFF+1
				;(;CHECK FOR MORE T;HHAN 8 ARGS
				I;hFG XXX-0,<PRINTX	<?TOO MANY ARGS DE<(TECTED IN X$NOK M<HACRO>
				XXX==X<hXX+1
			>
			>
		;DONT ALLOW NU=(LL ARRAY FIELD MA=HCRO INVOCATIONS
=h		IFB <A>,<PRINT>X	?NO ARGUMENTS F>(OUND IN X$NOK MAC>HRO>
		>


		;>hFOR NORMAL (I.E.,? NON-ARRAY FIELDS?():
		IFE 0,<
		?H;DEFINE THE RUN-T?hIME VALUE OF THE @FIELD
		IFNB <A@(>,<..VAL(.RX,.,NO@HK,\.OFNOK,.PSNOK,@hA)>
		;IF NO AA IS GIVEN, INVOKEA( MACRO WITH DEFAUAHLT VALUE
		IFB <AhA>,<X$NOK<.DXNOK>>
		>
	Vpu|@ 'H{
		;MAKE &MACRO GIVE ERROR & IF FIELD CANT BE &@INITIALIZED.
		I&`F1,<IFE 0,<PRINTX(	?"X$NOR" IS AN I((NVALID RMS-20 MAC(HRO!>>
		;FOR ARR(hAY FIELDS, DEFINE) MACRO WITH MULTI)(PLE ARGUMENTS
		)H; WHICH CAN SET T)hHE CORRECT VALUE *IN EACH ARRAY ELE*(MENT.
		IFG 0,<	*H	
			IFNB<A>,<
			XXX==0
			..+OFF==.OFNOR
			;+(SET THE RUN-TIME +HSYMBOL TO THIS MA+hCRO ARGUMENT VALU,E
			IRP A,<
	,(			..VALQ(.RX,.,N,HOR,\XXX,\..OFF,.P,hSNOR,A)
				..O-FF==..OFF+1
				-(;CHECK FOR MORE T-HHAN 8 ARGS
				I-hFG XXX-0,<PRINTX	.?TOO MANY ARGS DE.(TECTED IN X$NOR M.HACRO>
				XXX==X.hXX+1
			>
			>
		;DONT ALLOW NU/(LL ARRAY FIELD MA/HCRO INVOCATIONS
/h		IFB <A>,<PRINT0X	?NO ARGUMENTS F0(OUND IN X$NOR MAC0HRO>
		>


		;0hFOR NORMAL (I.E.,1 NON-ARRAY FIELDS1():
		IFE 0,<
		1H;DEFINE THE RUN-T1hIME VALUE OF THE 2FIELD
		IFNB <A2(>,<..VAL(.RX,.,NO2HR,\.OFNOR,.PSNOR,2hA)>
		;IF NO A3 IS GIVEN, INVOKE3( MACRO WITH DEFAU3HLT VALUE
		IFB <3hA>,<X$NOR<.DXNOR>>
		>
	Ppw
?xda
		;MAKE 
>8MACRO GIVE ERROR 
>XIF FIELD CANT BE 
>xINITIALIZED.
		I
?F1,<IFE 1,<PRINTX
@8	?"X$NXT" IS AN I
@XNVALID RMS-20 MAC
@xRO!>>
		;FOR ARR
AAY FIELDS, DEFINE
A8 MACRO WITH MULTI
AXPLE ARGUMENTS
		
Ax; WHICH CAN SET T
BHE CORRECT VALUE 
B8IN EACH ARRAY ELE
BXMENT.
		IFG 0,<	
Bx	
			IFNB<A>,<
C
			XXX==0
			..
C8OFF==.OFNXT
			;
CXSET THE RUN-TIME 
CxSYMBOL TO THIS MA
DCRO ARGUMENT VALU
D8E
			IRP A,<
	
DX			..VALQ(.RX,.,N
DxXT,\XXX,\..OFF,.P
ESNXT,A)
				..O
E8FF==..OFF+1
				
EX;CHECK FOR MORE T
ExHAN 8 ARGS
				I
FFG XXX-0,<PRINTX	
F8?TOO MANY ARGS DE
FXTECTED IN X$NXT M
FxACRO>
				XXX==X
GXX+1
			>
			>
G8
		;DONT ALLOW NU
GXLL ARRAY FIELD MA
GxCRO INVOCATIONS
H		IFB <A>,<PRINT
H8X	?NO ARGUMENTS F
HXOUND IN X$NXT MAC
HxRO>
		>


		;
IFOR NORMAL (I.E.,
I8 NON-ARRAY FIELDS
IX):
		IFE 0,<
		
Ix;DEFINE THE RUN-T
JIME VALUE OF THE 
J8FIELD
		IFNB <A
JX>,<..VAL(.RX,.,NX
JxT,\.OFNXT,.PSNXT,
KA)>
		;IF NO A
K8 IS GIVEN, INVOKE
KX MACRO WITH DEFAU
KxLT VALUE
		IFB <
LA>,<X$NXT<.DXNXT>>
		>
	Pp~{@ ^h-r
		IF1,<P^HRINTX	%"X$OWN" IS^( IGNORED BY RMS-20>
	.OWN p|` spx-
		;MAKE sPMACRO GIVE ERROR s0IF FIELD CANT BE txINITIALIZED.
		IuF1,<IFE 1,<PRINTXu8	?"X$POS" IS AN IwXNVALID RMS-20 MACuXRO!>>
		;FOR ARRuxAY FIELDS, DEFINEv MACRO WITH MULTIv8PLE ARGUMENTS
		vX; WHICH CAN SET TwHE CORRECT VALUE w8IN EACH ARRAY ELEvxMENT.
		IFG 10,<|8		
			IFNB<A>,<|X
			XXX==0
			.|x.OFF==.OFPOS
			};SET THE RUN-TIME}8 SYMBOL TO THIS M}XACRO ARGUMENT VAL}xUE
			IRP A,<
~				..VALQ(.RX,.,~8POS,\XXX,\..OFF,.~XPSPOS,A)
				..~xOFF==..OFF+1
				;CHECK FOR MORE 8THAN 8 ARGS
				XIFG XXX-10,<PRINTxX	?TOO MANY ARGS DETECTED IN X$POS8 MACRO>
				XXX=X=XXX+1
			>
			x>
		;DONT ALLOW NULL ARRAY FIELD 8MACRO INVOCATIONSX
		IFB <A>,<PRIxNTX	?NO ARGUMENTS FOUND IN X$POS M8ACRO>
		>


	X	;FOR NORMAL (I.Ex., NON-ARRAY FIELDS):
		IFE 10,<
		;DEFINE THE RUXN-TIME VALUE OF TxHE FIELD
		IFNB <A>,<..VAL(.RX,.8,POS,\.OFPOS,.PSPXOS,A)>
		;IF NOx A IS GIVEN, INVOKE MACRO WITH DE8FAULT VALUE
		IFXB <A>,<X$POS<.DXPOS>>
		>
	Np)` Z(-N
		IF1,<PZRINTX	%"X$PRG" ISYh IGNORED BY RMS-20>
	.PRG p*@ [h-Z
		IF1,<P[HRINTX	%"X$PRJ" IS[( IGNORED BY RMS-20>
	.PRJ*JpM 
\fB
		;MAKE 
Z@MACRO GIVE ERROR 
Z`IF FIELD CANT BE 
[INITIALIZED.
		I
[ F1,<IFE 0,<PRINTX
\H	?"X$RDT" IS AN I
\hNVALID RMS-20 MAC
]RO!>>
		;FOR ARR
](AY FIELDS, DEFINE
]H MACRO WITH MULTI
]hPLE ARGUMENTS
		
^; WHICH CAN SET T
^(HE CORRECT VALUE 
^HIN EACH ARRAY ELE
^hMENT.
		IFG 0,<	
_	
			IFNB<A>,<
_(
			XXX==0
			..
_HOFF==.OFRDT
			;
_hSET THE RUN-TIME 
`SYMBOL TO THIS MA
`(CRO ARGUMENT VALU
`HE
			IRP A,<
	
`h			..VALQ(.RX,.,R
aDT,\XXX,\..OFF,.P
a(SRDT,A)
				..O
aHFF==..OFF+1
				
ah;CHECK FOR MORE T
bHAN 8 ARGS
				I
b(FG XXX-0,<PRINTX	
bH?TOO MANY ARGS DE
bhTECTED IN X$RDT M
cACRO>
				XXX==X
c(XX+1
			>
			>
cH
		;DONT ALLOW NU
chLL ARRAY FIELD MA
dCRO INVOCATIONS
d(		IFB <A>,<PRINT
dHX	?NO ARGUMENTS F
dhOUND IN X$RDT MAC
eRO>
		>


		;
e(FOR NORMAL (I.E.,
eH NON-ARRAY FIELDS
eh):
		IFE 0,<
		
f;DEFINE THE RUN-T
f(IME VALUE OF THE 
fHFIELD
		IFNB <A
fh>,<..VAL(.RX,.,RD
gT,\.OFRDT,.PSRDT,
g(A)>
		;IF NO A
gH IS GIVEN, INVOKE
gh MACRO WITH DEFAU
hLT VALUE
		IFB <
h(A>,<X$RDT<.DXRDT>>
		>
	P	pY@ 
		;MAKEEGIVEAERROR 
		I1,<IFEF1,<PRINTX
		;FORIARRS,HDEFINE
		;EWHICHECANVSETET
		IFG 0,<	
			IFNB<A>,<
			XXX==0
			..==.OFREF
			;TBTHETRUN-TIMEA
			IRP A,<
				..VALQ(.RX,.,R
				..O.OFF+1
				HECKAFOR MORE T
				IXXX-0,<PRINTX	
				XXX==X
			>
			>
		;DONTRALLOWENUSMA
~X		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,):
		IFE 0,<
		8;DEFINE THE RUN-TXIME VALUE OF THE xFIELD
		IFNB <A>,<..VAL(.RX,.,RE8F,\.OFREF,.PSREF,XA)>
		;IF NO Ax IS GIVEN, INVOKE MACRO WITH DEFAU8LT VALUE
		IFB <XA>,<X$REF<.DXREF>>
		>
	QNyp4  
#pc
		;MAKE 
"(MACRO GIVE ERROR 
"HIF FIELD CANT BE 
"hINITIALIZED.
		I
#F1,<IFE 0,<PRINTX
$0	?"X$RS1" IS AN I
$PNVALID RMS-20 MAC
$pRO!>>
		;FOR ARR
%AY FIELDS, DEFINE
%0 MACRO WITH MULTI
%PPLE ARGUMENTS
		
%p; WHICH CAN SET T
&HE CORRECT VALUE 
&0IN EACH ARRAY ELE
&PMENT.
		IFG 0,<	
&p	
			IFNB<A>,<
'
			XXX==0
			..
'0OFF==.OFRS1
			;
'PSET THE RUN-TIME 
'pSYMBOL TO THIS MA
(CRO ARGUMENT VALU
(0E
			IRP A,<
	
(P			..VALQ(.RX,.,R
(pS1,\XXX,\..OFF,.P
)SRS1,A)
				..O
)0FF==..OFF+1
				
)P;CHECK FOR MORE T
)pHAN 8 ARGS
				I
*FG XXX-0,<PRINTX	
*0?TOO MANY ARGS DE
*PTECTED IN X$RS1 M
*pACRO>
				XXX==X
+XX+1
			>
			>
+0
		;DONT ALLOW NU
+PLL ARRAY FIELD MA
+pCRO INVOCATIONS
,		IFB <A>,<PRINT
,0X	?NO ARGUMENTS F
,POUND IN X$RS1 MAC
,pRO>
		>


		;
-FOR NORMAL (I.E.,
-0 NON-ARRAY FIELDS
-P):
		IFE 0,<
		
-p;DEFINE THE RUN-T
.IME VALUE OF THE 
.0FIELD
		IFNB <A
.P>,<..VAL(.RX,.,RS
.p1,\.OFRS1,.PSRS1,
/A)>
		;IF NO A
/0 IS GIVEN, INVOKE
/P MACRO WITH DEFAU
/pLT VALUE
		IFB <
0A>,<X$RS1<.DXRS1>>
		>
	
:p4@ 
xh#
		;MAKE 
vPMACRO GIVE ERROR 
vpIF FIELD CANT BE 
wINITIALIZED.
		I
w0F1,<IFE 0,<PRINTX
xX	?"X$RS2" IS AN I
xxNVALID RMS-20 MAC
yRO!>>
		;FOR ARR
y8AY FIELDS, DEFINE
yX MACRO WITH MULTI
yxPLE ARGUMENTS
		
z; WHICH CAN SET T
z8HE CORRECT VALUE 
zXIN EACH ARRAY ELE
zxMENT.
		IFG 0,<	
{	
			IFNB<A>,<
{8
			XXX==0
			..
{XOFF==.OFRS2
			;
{xSET THE RUN-TIME 
|SYMBOL TO THIS MA
|8CRO ARGUMENT VALU
|XE
			IRP A,<
	
|x			..VALQ(.RX,.,R
}S2,\XXX,\..OFF,.P
}8SRS2,A)
				..O
}XFF==..OFF+1
				
}x;CHECK FOR MORE T
~HAN 8 ARGS
				I
~8FG XXX-0,<PRINTX	
~X?TOO MANY ARGS DE
~xTECTED IN X$RS2 M
ACRO>
				XXX==X
8XX+1
			>
			>
X
		;DONT ALLOW NU
xLLOARRAYCFIELDSMA
8		IFBI<A>,<PRINT
		>


		;ORNNORMAL (I.E.,
		IFE 0,<
		;DEFINEUTHEFRUN-T
		IFNB.<A(.RX,.,RS
		;IFCNOVA,HINVOKE
		IFB,<X$RS2<.DXRS2>>
		>
	Pp5@ @z.
		;MAKE xMACRO GIVE ERROR IF FIELD CANT BE 8INITIALIZED.
		IXF1,<IFE 0,<PRINTX	?"X$RS6" IS AN I NVALID RMS-20 MAC@RO!>>
		;FOR ARR`AY FIELDS, DEFINE MACRO WITH MULTI PLE ARGUMENTS
		@; WHICH CAN SET T`HE CORRECT VALUE IN EACH ARRAY ELE MENT.
		IFG 0,<	@	
			IFNB<A>,<
			XXX==0
			..OFF==.OFRS6
			; SET THE RUN-TIME @SYMBOL TO THIS MA`CRO ARGUMENT VALUE
			IRP A,<
	 			..VALQ(.RX,.,R@S6,\XXX,\..OFF,.P`SRS6,A)
				..OFF==..OFF+1
				 ;CHECK FOR MORE T@HAN 8 ARGS
				I`FG XXX-0,<PRINTX	 ?TOO MANY ARGS DE  TECTED IN X$RS6 M @ACRO>
				XXX==X `XX+1
			>
			>
		;DONT ALLOW NU! LL ARRAY FIELD MA!@CRO INVOCATIONS
!`		IFB <A>,<PRINT"X	?NO ARGUMENTS F" OUND IN X$RS6 MAC"@RO>
		>


		;"`FOR NORMAL (I.E.,# NON-ARRAY FIELDS# ):
		IFE 0,<
		#@;DEFINE THE RUN-T#`IME VALUE OF THE $FIELD
		IFNB <A$ >,<..VAL(.RX,.,RS$@6,\.OFRS6,.PSRS6,$`A)>
		;IF NO A% IS GIVEN, INVOKE%  MACRO WITH DEFAU%@LT VALUE
		IFB <%`A>,<X$RS6<.DXRS6>>
		>
	
;M@p5` QP}o
		;MAKE PMACRO GIVE ERROR P(IF FIELD CANT BE PHINITIALIZED.
		IPhF1,<IFE 0,<PRINTXR	?"X$RS7" IS AN IR0NVALID RMS-20 MACRPRO!>>
		;FOR ARRRpAY FIELDS, DEFINES MACRO WITH MULTIS0PLE ARGUMENTS
		SP; WHICH CAN SET TSpHE CORRECT VALUE TIN EACH ARRAY ELET0MENT.
		IFG 0,<	TP	
			IFNB<A>,<
			XXX==0
			..UOFF==.OFRS7
			;U0SET THE RUN-TIME UPSYMBOL TO THIS MAUpCRO ARGUMENT VALUVE
			IRP A,<
	V0			..VALQ(.RX,.,RVPS7,\XXX,\..OFF,.PVpSRS7,A)
				..OWFF==..OFF+1
				W0;CHECK FOR MORE TWPHAN 8 ARGS
				IWpFG XXX-0,<PRINTX	X?TOO MANY ARGS DEX0TECTED IN X$RS7 MXPACRO>
				XXX==XXpXX+1
			>
			>
		;DONT ALLOW NUY0LL ARRAY FIELD MAYPCRO INVOCATIONS
Yp		IFB <A>,<PRINTZX	?NO ARGUMENTS FZ0OUND IN X$RS7 MACZPRO>
		>


		;ZpFOR NORMAL (I.E.,[ NON-ARRAY FIELDS[0):
		IFE 0,<
		[P;DEFINE THE RUN-T[pIME VALUE OF THE \FIELD
		IFNB <A\0>,<..VAL(.RX,.,RS\P7,\.OFRS7,.PSRS7,\pA)>
		;IF NO A] IS GIVEN, INVOKE]0 MACRO WITH DEFAU]PLT VALUE
		IFB <]pA>,<X$RS7<.DXRS7>>
		>
	
;h p6 _X~_
		;MAKE ^MACRO GIVE ERROR ^0IF FIELD CANT BE ^PINITIALIZED.
		I^pF1,<IFE 0,<PRINTX`	?"X$RS8" IS AN I`8NVALID RMS-20 MAC`XRO!>>
		;FOR ARR`xAY FIELDS, DEFINEa MACRO WITH MULTIa8PLE ARGUMENTS
		aX; WHICH CAN SET TaxHE CORRECT VALUE bIN EACH ARRAY ELEb8MENT.
		IFG 0,<	bX	
			IFNB<A>,<
			XXX==0
			..cOFF==.OFRS8
			;c8SET THE RUN-TIME cXSYMBOL TO THIS MAcxCRO ARGUMENT VALUdE
			IRP A,<
	d8			..VALQ(.RX,.,RdXS8,\XXX,\..OFF,.PdxSRS8,A)
				..OeFF==..OFF+1
				e8;CHECK FOR MORE TeXHAN 8 ARGS
				IexFG XXX-0,<PRINTX	f?TOO MANY ARGS DEf8TECTED IN X$RS8 MfXACRO>
				XXX==XfxXX+1
			>
			>
		;DONT ALLOW NUg8LL ARRAY FIELD MAgXCRO INVOCATIONS
gx		IFB <A>,<PRINThX	?NO ARGUMENTS Fh8OUND IN X$RS8 MAChXRO>
		>


		;hxFOR NORMAL (I.E.,i NON-ARRAY FIELDSi8):
		IFE 0,<
		iX;DEFINE THE RUN-TixIME VALUE OF THE jFIELD
		IFNB <Aj8>,<..VAL(.RX,.,RSjX8,\.OFRS8,.PSRS8,jxA)>
		;IF NO Ak IS GIVEN, INVOKEk8 MACRO WITH DEFAUkXLT VALUE
		IFB <kxA>,<X$RS8<.DXRS8>>
		>
	Pp6  m`P
		;MAKE lMACRO GIVE ERROR l8IF FIELD CANT BE lXINITIALIZED.
		IlxF1,<IFE 0,<PRINTXn 	?"X$RS9" IS AN In@NVALID RMS-20 MACn`RO!>>
		;FOR ARRoAY FIELDS, DEFINEo  MACRO WITH MULTIo@PLE ARGUMENTS
		o`; WHICH CAN SET TpHE CORRECT VALUE p IN EACH ARRAY ELEp@MENT.
		IFG 0,<	p`	
			IFNB<A>,<
			XXX==0
			..q OFF==.OFRS9
			;q@SET THE RUN-TIME q`SYMBOL TO THIS MArCRO ARGUMENT VALUr E
			IRP A,<
	r@			..VALQ(.RX,.,Rr`S9,\XXX,\..OFF,.PsSRS9,A)
				..Os FF==..OFF+1
				s@;CHECK FOR MORE Ts`HAN 8 ARGS
				ItFG XXX-0,<PRINTX	t ?TOO MANY ARGS DEt@TECTED IN X$RS9 Mt`ACRO>
				XXX==XuXX+1
			>
			>
		;DONT ALLOW NUu@LL ARRAY FIELD MAu`CRO INVOCATIONS
v		IFB <A>,<PRINTv X	?NO ARGUMENTS Fv@OUND IN X$RS9 MACv`RO>
		>


		;wFOR NORMAL (I.E.,w  NON-ARRAY FIELDSw@):
		IFE 0,<
		w`;DEFINE THE RUN-TxIME VALUE OF THE x FIELD
		IFNB <Ax@>,<..VAL(.RX,.,RSx`9,\.OFRS9,.PSRS9,yA)>
		;IF NO Ay  IS GIVEN, INVOKEy@ MACRO WITH DEFAUy`LT VALUE
		IFB <zA>,<X$RS9<.DXRS9>>
		>
	M&)1p+@ dh."
		IF1,<PdHRINTX	%"X$SBN" ISd( IGNORED BY RMS-20>
	.SBNp@ 8y=
		;MAKE MACRO GIVE ERROR xIF FIELD CANT BE 8INITIALIZED.
		IXF1,<IFE 1,<PRINTXx	?"X$SIZ" IS AN I
NVALID RMS-20 MACRO!>>
		;FOR ARR8AY FIELDS, DEFINEX MACRO WITH MULTIxPLE ARGUMENTS
			; WHICH CAN SET T	XHE CORRECT VALUE 	xIN EACH ARRAY ELE	8MENT.
		IFG 10,<8		
			IFNB<A>,<X
			XXX==0
			.x.OFF==.OFSIZ
			;SET THE RUN-TIME8 SYMBOL TO THIS MXACRO ARGUMENT VALxUE
			IRP A,<
				..VALQ(.RX,.,8SIZ,\XXX,\..OFF,.XPSSIZ,A)
				..xOFF==..OFF+1
				;CHECK FOR MORE 8THAN 8 ARGS
				XIFG XXX-10,<PRINTxX	?TOO MANY ARGS DETECTED IN X$SIZ8 MACRO>
				XXX=X=XXX+1
			>
			x>
		;DONT ALLOW NULL ARRAY FIELD 8MACRO INVOCATIONSX
		IFB <A>,<PRIxNTX	?NO ARGUMENTS FOUND IN X$SIZ M8ACRO>
		>


	X	;FOR NORMAL (I.Ex., NON-ARRAY FIELDS):
		IFE 10,<
		;DEFINE THE RUXN-TIME VALUE OF TxHE FIELD
		IFNB <A>,<..VAL(.RX,.8,SIZ,\.OFSIZ,.PSSXIZ,A)>
		;IF NOx A IS GIVEN, INVOKE MACRO WITH DE8FAULT VALUE
		IFXB <A>,<X$SIZ<.DXSIZ>>
		>
	p` ](-f
		IF1,<P]RINTX	%"X$SYS" IS\h IGNORED BY RMS-20>
	.SYS->p5{ c(.
		IF1,<PcRINTX	%"X$VOL" ISbh IGNORED BY RMS-20>
	.VOLp=I ah.

		IF1,<PaHRINTX	%"X$WLD" ISa( IGNORED BY RMS-20>
	.WLDpD.  f(..
		IF1,<PfRINTX	%"X$XBY" ISeh IGNORED BY RMS-20>
	.XBYpT\WP q%KSP 	q&>P q&>P q&>P 	q&>P q&>P q&N8P qH@ 
(0~
		;IF NO
HT AN XAB, CHECK T
hHAT.NO ARG IS GIV
		IF1,<IFD<IFNBB< ARGUMENTS>>>
		(;SINCE XAB'S ARE HTHE ONLY BLOCK WHhICH HAVE TYPES,
		; WE CAN CREATE( THE SYMBOL NOW BHY PRECEEDING IT WhITH "XB$"
		..BEG(X,XB$A)	
	EqI  (1
		..END(X,A)
		..END(q$P q$*7P q$:P q$H:P q$M8P q$XQP q%
tP q%9<P q%X<P q&1P q&:<P q&=P q&=6P q`$4P q`$6P q`%X<P q`%Z7P q`%k`P q`%t(P q`%t(P q`%t)P q`%t)P q`%t*P q`%t*P q`%xwP q`%xzP q`%yHP q`%yHP q`%yIP q`%yIP q`%yJP q`%yJP q`%yKP q`%yKP q`%yLP q`%yLP q`%z2P q`%{P q`%|zP q`%|{P q`&)P q`&*P q`&IP q`&IP q`&JP 
q`&KP q`&hP q`& P q`&P q`& P q`&wP 	q`&zP q`&
2P 	q`&P 	q`&P q`&
@P q`&
zP 	q`&
{P5q`&4)P5q`&4)P5q`&4IP5q`&4KP6P q`&6 P q`&8wP q`&8zP q`&:P 	q`&:2P 	q`&;P 	q`&<zP 	q`&<{P 	q`&=`P q`'9P qc@P 4\Q }(0	OPDEF	%A}H [104B8+<X$JSYS==}hX$JSYS+1>-1]
 DE~FINE ..FOO(X),<
~(	DEFINE A(.BLK1,~H.ERRAD,.NLARG),<
		..ARGC==1
		IFNB <.ERRAD>,<..A(RGC==2>
		IFNB <H.BLK1>,<MOVEI	16,h1+[-..ARGC,,0
					1B0+<.DPCDT>B7(+.BLK1
					1B0+H<.DPCDT>B7+.ERRADh
				]
			>;END OF IFNB
	IFNB <(.NLARG>,<IF1,<PRIHNTX	%MORE THAN 2 hARGS DETECTED IN A MACRO>>
		%'X(			
	>
	>
..FOO(A)


..FO6(Y H1`
						
h	DEFINE RMSV2 (NEW, OLD)  < OLD >
	RMSVRB ( )
e|r 1-
		..ARGCQ==1
		IFNB <B>,p<..ARGC==2>
		IFNB <A>,<MOVEI	160,1+[-..ARGC,,0
	P				1B0+<.DPCDT>Bp7+A
					1B0+<.DPCDT>B7+B
				0]
			>;END OF IFPNB
	IFNB <C>,<IpF1,<PRINTX	%MORE THAN 2 ARGS DETEC0TED IN $CLOSE MACPRO>>
		%$CLOSE			
			%$CLOSE			}kR |	&
		..ARGCQ==1
		IFNB <B>,p<..ARGC==2>
		IFNB <A>,<MOVEI	160,1+[-..ARGC,,0
	P				1B0+<.DPCDT>B07+A
					1B0+<.|IDPCDT>B7+B
				#H]
			>;END OF IF#hNB
	IFNB <C>,<I$F1,<PRINTX	%MORE $(THAN 2 ARGS DETEC$HTED IN $CONNECT M$hACRO>>
		%$CONNECT			
	%$CONNE	X: {Io
		..ARGC"!==1
		IFNB <B>,"@<..ARGC==2>
		IF"`NB <A>,<MOVEI	16#,1+[-..ARGC,,0
	# 				1B0+<.DPCDT>B@7+A
					1B0+<.9DPCDT>B7+B
				Y]
			>;END OF IFxNB
	IFNB <C>,<I(F1,<PRINTX	%MORE ITHAN 2 ARGS DETEC-XTED IN $CREATE MA-xCRO>>
		%$CREATE			
		%$CREATE	,-3 &	
		..ARGC&)==1
		IFNB <B>,&H<..ARGC==2>
		IF&hNB <A>,<MOVEI	16',1+[-..ARGC,,0
	'(				1B0+<.DPCDT>B'H7+A
					1B0+<.'hDPCDT>B7+B
				H]
			>;END OF IFiNB
	IFNB <C>,<I!@F1,<PRINTX	%MORE {iTHAN 2 ARGS DETEC2TED IN $DEBUG MAC2 RO>>
		%$DEBUG			
			%$DEBUG			-I: 9;
		..ARGCI==1
		IFNB <B>,<..ARGC==2>
		IF})NB <A>,<MOVEI	16,1+[-..ARGC,,0
	0				1B0+<.DPCDT>BP7+A
					1B0+<.pDPCDT>B7+B
				]
			>;END OF IF0NB
	IFNB <C>,<IPF1,<PRINTX	%MORE pTHAN 2 ARGS DETECTED IN $DELETE MA0CRO>>
		%$DELETE			
		%$DELETE	N8w 9S
		..ARGC
y==1
		IFNB <B>,q<..ARGC==2>
		IF|)NB <A>,<MOVEI	16(,1+[-..ARGC,,0
	(0				1B0+<.DPCDT>B(P7+A
					1B0+<.(pDPCDT>B7+B
				)]
			>;END OF IF)0NB
	IFNB <C>,<I)PF1,<PRINTX	%MORE )pTHAN 2 ARGS DETEC*TED IN $DISCONNEC*0T MACRO>>
		%$DISCONNECT			
	I	N< !	
		..ARGC===1
		IFNB <B>,=0<..ARGC==2>
		IF=PNB <A>,<MOVEI	16=p,1+[-..ARGC,,0
	>				1B0+<.DPCDT>B>07+A
					1B0+<.>PDPCDT>B7+B
				>p]
			>;END OF IF?NB
	IFNB <C>,<I?0F1,<PRINTX	%MORE ?PTHAN 2 ARGS DETEC?pTED IN $DISPLAY M@ACRO>>
		%$DISPLAY			
	%$DISPL	r @y!
		..ARGCA==1
		IFNB <B>,A8<..ARGC==2>
		IFAXNB <A>,<MOVEI	16Ax,1+[-..ARGC,,0
	B				1B0+<.DPCDT>BB87+A
					1B0+<.BXDPCDT>B7+B
				Bx]
			>;END OF IFCNB
	IFNB <C>,<IC8F1,<PRINTX	%MORE CXTHAN 2 ARGS DETECCxTED IN $ERASE MACDRO>>
		%$ERASE			
			%$ERASE			.Ht (1
$LOAD(A,B,C)$LOAD(A,	Mi _
		..ARGC!==1
		IFNB <B>,h<..ARGC==2>
		IF
XNB <A>,<MOVEI	16}	,1+[-..ARGC,,0
	x				1B0+<.DPCDT>B7+A
					1B0+<.8DPCDT>B7+B
				X]
			>;END OF IFxNB
	IFNB <C>,<IF1,<PRINTX	%MORE 8THAN 2 ARGS DETECXTED IN $FIND MACRxO>>
		%$FIND			
	
		%$FIND			/Z
		..ARGC/9==1
		IFNB <B>,/X<..ARGC==2>
		IF/xNB <A>,<MOVEI	160,1+[-..ARGC,,0
	08				1B0+<.DPCDT>B0X7+A
					1B0+<.0xDPCDT>B7+B
				1]
			>;END OF IF18NB
	IFNB <C>,<I1XF1,<PRINTX	%MORE THAN 2 ARGS DETECyTED IN $FLUSH MAC{)RO>>
		%$FLUSH			
			%$FLUSH			.@ yQ
		..ARGC==1
		IFNB <B>,8<..ARGC==2>
		IFXNB <A>,<MOVEI	16x,1+[-..ARGC,,0
					1B0+<.DPCDT>B87+A
					1B0+<.XDPCDT>B7+B
				x]
			>;END OF IF	NB
	IFNB <C>,<I	8F1,<PRINTX	%MORE 	XTHAN 2 ARGS DETEC	xTED IN $GET MACRO
>>
		%$GET			
	
		%$GET			
		2| 1
	..STR0(h..LDB,A,.B,C)		
,A,.B,C)		6.<p 3A
		..ARGC3a==1
		IFNB <B>,4<..ARGC==2>
		IF4 NB <A>,<MOVEI	164@,1+[-..ARGC,,0
	4`				1B0+<.DPCDT>B57+A
					1B0+<.5 DPCDT>B7+B
				5@]
			>;END OF IF5`NB
	IFNB <C>,<I6F1,<PRINTX	%MORE 6 THAN 2 ARGS DETEC6@TED IN $MESSAGE M!`ACRO>>
		%$MESSAGE			
	%$MESSA	:}Y9 9)*
		..ARGC9I==1
		IFNB <B>,9h<..ARGC==2>
		IF:NB <A>,<MOVEI	16:(,1+[-..ARGC,,0
	:H				1B0+<.DPCDT>B:h7+A
					1B0+<.;DPCDT>B7+B
				;(]
			>;END OF IF%HNB
	IFNB <C>,<I2aF1,<PRINTX	%MORE ziTHAN 2 ARGS DETECETED IN $NOMESSAGEE  MACRO>>
		%$NOMESSAGE			
	NOM	?[@ ~	

		..ARGC~)==1
		IFNB <B>,~H<..ARGC==2>
		IF~hNB <A>,<MOVEI	16,1+[-..ARGC,,0
	(				1B0+<.DPCDT>BH7+A
					1B0+<.hDPCDT>B7+B
				]
			>;END OF IF(NB
	IFNB <C>,<IHF1,<PRINTX	%MORE hTHAN 2 ARGS DETECTED IN $OPEN MACR(O>>
		%$OPEN			
	
		%$OPEN			}iv
		..ARGCa==1
		IFNB <B>,
<..ARGC==2>
		IF
 NB <A>,<MOVEI	16
@,1+[-..ARGC,,0
	
`				1B0+<.DPCDT>B
					1B0+<.
				
			>;END OF IF
	IFNB <C>,<IF1,<PRINTX	%MORE  THAN 2 ARGS DETEC@TED IN $PUT MACRO`>>
		%$PUT			
	
		%$PUT			
		J-I0 +6
		..ARGC+1==1
		IFNB <B>,+P<..ARGC==2>
		IF+pNB <A>,<MOVEI	16,,1+[-..ARGC,,0
	,0				1B0+<.DPCDT>B,P7+A
					1B0+<.,pDPCDT>B7+B
				-]
			>;END OF IF-0NB
	IFNB <C>,<IF1,<PRINTX	%MORE %)THAN 2 ARGS DETEC9TED IN $RELEASE M6iACRO>>
		%$RELEASE			
	%$RELEA	J.M9 0POPJ	17,	O%|R h1
	..STR0(..DPB,A,.B,C)		
,A,.B,C)		S[Q i
		..ARGCi==1
		IFNB <B>, <..ARGC==2>
		IF|iNB <A>,<MOVEI	16`,1+[-..ARGC,,0
					1B0+<.DPCDT>B 7+A
					1B0+<.@DPCDT>B7+B
				`]
			>;END OF IF NB
	IFNB <C>,<I  F1,<PRINTX	%MORE  @THAN 2 ARGS DETEC `TED IN $TRUNCATE !MACRO>>
		%$TRUNCATE			
	$TRUN	WH:  	
		..ARGCi==1
		IFNB <B>,}H<..ARGC==2>
		IFHNB <A>,<MOVEI	16h,1+[-..ARGC,,0
					1B0+<.DPCDT>B(7+A
					1B0+<.HDPCDT>B7+B
				h]
			>;END OF IFNB
	IFNB <C>,<I(F1,<PRINTX	%MORE HTHAN 2 ARGS DETEChTED IN $UPDATE MACRO>>
		%$UPDATE			
		%$UPDATE
Ky 
{W 
)0 
$XZ 
$[ 
%q 
%x 
.(9 
5R 
5M9 
<] 
l\y 
u{2 
~	7 
] 
[ 
&-7 
.	 
:
	A (<B>,.OFAIDC,D)E
:  P(-
	A (<B>,0C,D)
:@ Qh-
	A (<B>,0C,D)
: "P2
	A (<B>,.OFBIDC,D)
:<` 8A{
	A (<B>,.OFBKSC,D)
:= 4[!
	A (<B>,.OFBKTC,D)
:>@
	A (<B>,.OFBKZC,D)
:K@ 0X3
	A (<B>,.OFBLNC,D)
:L` K<Y
	A (<B>,.OFBLSC,D)	
:>@ =;i
	A (<B>,.OFBSZC,D)f
:M 
M`dn
	A (<B>,.OFCDTC,D)H
:y 
1Xc
	A (<B>,.OFCODC,D)H
:N Zp5W
	A (<B>,.OFCTXC,D)
:$@
	A (<B>,.OFDANC,D)l
:$]@ WHE<
	A (<B>,.OFDEVC,D)
:$k  q
	A (<B>,.OFDFLC,D)P
:%h  Kh,^
	A (<B>,0C,D)
:%l` M(,j
	A (<B>,0C,D)
:&L
	A (<B>,.OFDTPC,D),
:,M 
ipfO
	A (<B>,.OFEDTC,D)
:4@ 	}@Ol
	A (<B>,.OFFABC,D)I
:4` 8(
	A (<B>,.OFFACC,D)p
:5I`
	A (<B>,.OFFLGC,D)
:5h  Y =J
	A (<B>,.OFFNAC,D)
:5l` J(,R
	A (<B>,0C,D)
:5| !:	
	A (<B>,.OFFOPC,D)
:6>@ S(-
	A (<B>,0C,D)
:>, a.
	A (<B>,0C,D)
:D YH-L
	A (<B>,0C,D)
:L@
	A (<B>,.OFIANC,D)
:Lj  hx6G
	A (<B>,.OFIFIC,D)
:Lk  p"
	A (<B>,.OFIFLC,D)2
:N:  	o@N|
	A (<B>,.OFISIC,D)6
:Tk@ vx77
	A (<B>,.OFJFNC,D)
:Uk ;@C\
	A (<B>,.OFJNLC,D)2
:\)@ &Z0
	A (<B>,.OFKBFC,D)^
:]k   (r
	A (<B>,.OFKNMC,D)
:^)@ 
{xW_
	A (<B>,.OFKRFC,D)$
:^>@ 
XP
	A (<B>,.OFKSZC,D)
:d@
	A (<B>,.OFLANC,D)h
:d: Th-&
	A (<B>,0C,D)
:f;@ Y@
	A (<B>,.OFLSNC,D)
:l)@ 
PQM
	A (<B>,.OFMBFC,D)1
:n+@ 0@
	A (<B>,.OFMRNC,D))
:n,` u(?*
	A (<B>,.OFMRSC,D)
:nJ X-@
	A (<B>,0C,D)
:ux  C(|
	A (<B>,.OFNOAC,D)
:uz` 5({*
	A (<B>,.OFNOKC,D)6
:u|@ '(z:
	A (<B>,.OFNORC,D)<
:w 
?Xc}
	A (<B>,.OFNXTC,D)
:~)` /:y
	A (<B>,.OFORGC,D)
:~{@ _H-|
	A (<B>,0C,D)P
; B\
	A (<B>,.OFPADC,D)
;|` tXw%
	A (<B>,.OFPOSC,D)
;|h x wB
	A (<B>,..OFFC,D)Lw
;|h xhwF
	A (<B>,..OFFC,D)
;|i y0wK
	A (<B>,..OFFC,D)XS
;|i yxwO
	A (<B>,..OFFC,D)
;|j z@wT
	A (<B>,..OFFC,D)2
;|j {wX
	A (<B>,..OFFC,D)
;|k {Pw]
	A (<B>,..OFFC,D)L 
;|k |wa
	A (<B>,..OFFC,D)3	
;)` [-X
	A (<B>,0C,D)-"
;*@ \H-d
	A (<B>,0C,D)-J
;` 
HP\
	A (<B>,.OFRACC,D)
; g(>:
	A (<B>,.OFRATC,D)
;)@ 
C`T
	A (<B>,.OFRBFC,D)
;M 
[he^
	A (<B>,.OFRDTC,D)
;Y@
	A (<B>,.OFREFC,D)
;d 8A
	A (<B>,.OFRF0C,D)
;d  sPG
	A (<B>,.OFRF1C,D)@
;d@ 	XH
	A (<B>,.OFRF2C,D)
;d` 	`H~
	A (<B>,.OFRF3C,D)
;e 	hIn
	A (<B>,.OFRF4C,D)
;h  
mpVo
	A (<B>,.OFRFAC,D)v
;k  -8Bk
	A (<B>,.OFRFMC,D)
;@ Uh-.
	A (<B>,0C,D)
;| 
'PR=
	A (<B>,.OFROPC,D)`
;$  P ]
	A (<B>,.OFRR1C,D)P
;$@ ^(]r
	A (<B>,.OFRR2C,D)
;$` l0^c
	A (<B>,.OFRR3C,D)2
;% z8_S
	A (<B>,.OFRR4C,D)J
;4  
#Pb
	A (<B>,.OFRS1C,D)@
;4@ 
wxg?
	A (<B>,.OFRS2C,D)
;5@  yJ
	A (<B>,.OFRS6C,D)`
;5` Q0}
	A (<B>,.OFRS7C,D){
;6 _8}{
	A (<B>,.OFRS8C,D)t
;6  m@~l
	A (<B>,.OFRS9C,D)
;>@ 
QhU
	A (<B>,.OFRSZC,D)
;M@ Nh,v
	A (<B>,0C,D)
;
	A (<B>,.OFRX0C,D)H
;  .0rs
	A (<B>,.OFRX1C,D)
;@ <8sc
	A (<B>,.OFRX2C,D)
;` J@tT
	A (<B>,.OFRX3C,D)
; XHuD
	A (<B>,.OFRX4C,D)
;  fPv5
	A (<B>,.OFRX5C,D) 
;+@ eH.,
	A (<B>,0C,D)
;H` eHF,
	A (<B>,.OFSDCC,D)
;
@ 9
	A (<B>,.OFSHRC,D)
;@ x9
	A (<B>,.OFSIZC,D)A
;H 
XxU
	A (<B>,..OFFC,D)1
;H xY
	A (<B>,..OFFC,D)a0
;I Xx]
	A (<B>,..OFFC,D)q
;I 
xa
	A (<B>,..OFFC,D).
;J 
Xxe
	A (<B>,..OFFC,D)r
;J
	A (<B>,..OFFC,D)-x
;K
	A (<B>,..OFFC,D)o5
;K xq
	A (<B>,..OFFC,D)-l
;L` >h3v
	A (<B>,.OFSTSC,D)
;M@ Lh4f
	A (<B>,.OFSTVC,D)4
;` ^-p
	A (<B>,0C,D)P
;,)@ 
5XS-
	A (<B>,.OFUBFC,D)
;.>@ 
_hU~
	A (<B>,.OFUSZC,D)
;5{ d. 
	A (<B>,0C,D)
;=I bH.
	A (<B>,0C,D)
;D@ I@DL
	A (<B>,.OFXABC,D)`
;D.  g.8
	A (<B>,0C,D):;@P : B(,
	DEFSTR(BH.B,0,0,0)			
	DBhEFINE A$B(ARG),C<
		IF1,<PRINTX	C(%"A$B" IS IGNORCHED BY RMS-20>
	>
Y RMS-20>
	>:Y` jh/8

	;DEFIkNE FLAG FOR ACTIVk(E BLOCK DEFINITIOkHN
	IFNDEF ..AFLkhG,<..AFLG==0>
	l;IF FLAG IS ON, Bl(LOCK IS ALREADY AlHCTIVE
	IF1,<IFN lh..AFLG,<PRINTX	?mAAB$B FOUND WITHm(OUT MATCHING AABmH$E>>
	..AFLG==1mh

	;IF XAB, CHEnCK BLOCK-TYPE CODn(E
	IFIDN <A><X>nH,<

		IFB <B>,nh<PRINTX ?NO XAB ToYPE-CODE FOUND...o(FATAL ERROR>
		IoHFG B-XB$MAX,<IF1oh,<PRINTX ?INVALIDp XAB TYPE DETECTEp(D: B>>
		IFL BpH,<IF1,<PRINTX ?NEphGATIVE XAB TYPE DqETECTED: B>>
		q(IFIDN <B><XB$KEYqH>, <..SIZE==XA$SXqhK>
		IFIDN <B><rXB$ALL>, <..SIZE=r(=XA$SXA>
		IFIDNrH <B><XB$DAT>, <.rh.SIZE==XA$SXD>
	s	IFIDN <B><XB$SUs(M>, <..SIZE==XA$SsHXS>
		..XMAX==..shSIZE-1		
		..VALt(.DX,.,BLN,\.OFBLt(N,.PSBLN,..SIZE)	tH
		..VAL(.DX,.,CthOD,\.OFCOD,.PSCODu,B)		
						
	u(					

		>

	uHXXX==0					
	REPuhEAT ..AMAX+1,<
v		..CCAT(.RA,\XXv(X)==..CCAT(.DA,\vHXXX)
		XXX==XXX+vh1			
	>
	..A%PwC==.
	BLOCK ..AMAX+1			
 ..A:h1 D,"
	IRP A,D(< ..BADF(F,A) >
.BADF(F,A)/>
	IRP A,wh<
	
	DEFINE AAxB$B(BLKARG),<
		x(;IF NOT AN XAB, CxHHECK THAT NO ARG xhIS GIVEN...
		IFy1,<IFDIF <A><X>,y(<IFNB <BLKARG>,<PyHRINTX	?AAB$B DOEyhSNT TAKE ANY ARGUzMENTS>>>
		;SINCz(E XAB'S ARE THE OzHNLY BLOCK WHICH HzhAVE TYPES,
		; W{E CAN CREATE THE {(SYMBOL NOW BY PRE{HCEEDING IT WITH "{hXB$"
		..BEG(A,|AB$'BLKARG)	
	>|(
	
	DEFINE AAB|H$E(BLKARG),<
		.|h.END(A,BLKARG)
	>
	>
KARG)
:(1 Dh,(
	IRP A,E< ..BADF(R,A) >
.BADF(R,A),>
	IRP A,Eh< ..BADF(X,A) >
.BADF(X,A)2>AB 	:mP :$`P :-i G.R
	IF1,<IFG(NB <B>,<PRINTX	?GHAAB$E DOESNT TAKGhE ANY ARGUMENTS>>H(
	IFNDEF ..AFLGH,<..AFLG==0>
	IVF1,<IFE ..AFLG,<VHPRINTX	?AAB$E FOV(UND WITHOUT MATCHg(ING AAB$B>>
	..gHAFLG==0
	..%LOCgh==.
	RELOC ..A%hPC
	XXX==0				
h(	REPEAT ..AMAX+1hH,<
		..CCAT(.RAhh,\XXX)		;GENERATEi A WORD OF THE Ai(AB

		XXX==XXX+iH1
	>
;	..%LOC==ih..A%PC+..AMAX+1j		
	RELOC ..%LOCj(
;	..ATMX==..AMAX			
X==..A:5X<P :5{` c
	DEFINE L)$ERASE(.BLK1,.ERRS1AD,.NLARG),<
		.;q.ARGC==1
		IFNB *Q<.ERRAD>,<..ARGC=RQ=2>
		IFNB <.BLK1>,<MOVEI	16,1+[-(i..ARGC,,0
					1qB0+<.DPCDT>B7+.BLK1
					1B0+<.DPQCDT>B7+.ERRAD
		P1		]
			>;END OF OQIFNB
	IFNB <.NLA	RG>,<IF1,<PRINTX	@9%MORE THAN 2 ARGSNp DETECTED IN $ERA<0SE MACRO>>
		%A			
	>
	>>
	:|i@P ;X<P ;4 ?h,

	IFNDEF @AD,<AD==0>
	@(AD==<AD&<-1-@HBC>>+<<F>_<^D35-E>><F>_<^D35;4 A,
	IFNDEF A(AED,<AED==0AH>
	AE==<AE&<Ah-1-BCD>>+<<G>_<^D35-F>><G>;EX<P L@P'~fP t P 
L@Q x
^0P p
^@Q 
_ P 
e`P'
f0PP`?&@Q|@QxS@P'Q@P 2`P 2P 2 P 2@P 2`P 2 P 20P 2@Q 2PP d2`P 2pP 4*2P 4*yP 4+P 4+P 4,}P 4=P 4I;P 4h1P 4kPP 4kxP 5TP 5)WP 5+VP 5@P'5\WP 5\YP 5|SP 62P 6(:P 6)HP 6)HP 6)IP 6)IP 6)JP 6)VP 6,HP 6,IP 6,IP 6,JP 6.P 6.P 6.	P 6.	P 6.
P 6.
P 69P 6:P 6=P 6=P 71P tP v0P 9P Q P P  P @P `P  P 0P @P PP `P pP *2P *zP +P =P h1P tP 8SP <SP <}P LwP XSP (1P (SP )PP +xP ,}P =P =P XSP \}P &Q xBQ BP B`P BP B P B@P B`P B P B$P B$ P B$@P B0P B@P BPP D2P D*2P D*}P D+P D9P D;rP DH7P DIVP DMP DYP DkP E7P EVP E;VP EH7P EkpP EkuP EkyP EnP F)P F)3P F,hP F,iP F,kP F,kP F,lP F,lP &@Q 
 P'
0Q'xdpP'tQ5v0P~QxxPuPx"`Q}.uPQ /`Q'`/Q4x24*yP >4*zP >4*}P >4+P >4+P >4,}P >49P >4;rP >4=P >4H7P >4I;P >4IVP >4MP >4YP >4h1P >4h1P >4kP >4kPP >4kxP >57P >5TP >5VP >5tP >5)WP >5+VP >58SP >5;VP >5<SP >5<}P >5H7P >5LwP >5XSP >5\WP >5\YP >5kpP >5kuP >5kyP >5nP >5|SP >62P >6yP >6(1P >6(:P >6(SP >6)P >6)3P >6)HP >6)HP >6)IP >6)IP >6)JP >6)PP >6)VP >6+xP >6,HP >6,IP >6,IP >6,JP >6,hP >6,iP >6,kP >6,kP >6,lP >6,lP >6,}P >6.P >6.P >6.	P >6.	P >6.
P >6.
P >69P >6:P >6:=P >6=P >6=P >6XSP >6\}P >71P ?pP'@?=`P B
@Q2`B~0QxB~4Q}xB~4QxB~4@Q}xB~4`QxB~5Q1xB~5QxB~5@QxxB~5`QxCpPVCPtC2PW C+VP C8SP C;VP C<SP C<}P CH7P 
C2P CyP C(1P C(:P C(SP C)P C)3P C)HP C)HP C)IP C)IP C)JP C)PP C)VP C+xP C,HP C,IP C,IP C,JP C,hP C,iP C,kP C,kP C,lP C,lP C,}P C.P C.P C.	P C.	P C.
P C.
P C9P C:P C:=P C=P C=P CXSP C\}P C1P J
0QI`J@QxJ`QhJ&@Q	J,`PkJ2Ql`J2QJ2QJ20QJ2@Q	J4Q J5PP JD P J~P'KQ K Q K0Q K@Q KQ ~K Q xK`Q `KpQ KQ KQ K Q xK&`P KBQ |KBQ KB Q KB0Q KB@Q KBPQ N`P N$0P'NF P'NO P'NO$P'NO$ P'NO$@P'NO$`P'NO%P'NO% P'NO%@P'NO%`P'O&0Q xO&`P'ON0P OT2P OT*2P 	OT*yP OT*zP OT*}P OT+P 	OT+P OT,}P OT9P OT;rP OT=P OTH7P OTI;P 	OTIVP 	OTMP OTYP OTh1P 	OTh1P 	OTkP 	OTkPP OTkxP 	OU7P OUTP 	OUVP 	OUtP 	OU)WP 	OU+VP 	OU8SP OU;VP OU<SP OU<}P OUH7P OULwP 	OUXSP OU\WP OU\YP 	OUkpP OUkuP OUkyP OUnP 	OU|SP OV2P OVyP 	OV(1P OV(:P 	OV(SP OV)P OV)3P OV)HP OV)HP OV)IP OV)IP OV)JP OV)PP OV)VP OV+xP 	OV,HP 
P OV.
P OV9P 	OV:P 	OV:=P 	OV=P 	OV=P 	OVXSP OV\}P 	OW1P 	V`Q W P'Z}@P ^d@P b
 P'bP >}{woP