Trailing-Edge
-
PDP-10 Archives
-
AP-4172F-BM
-
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: