This topic provides you with the format of each RMS control block macro.
1 – $FAB
The $FAB macro allocates storage for a FAB and initializes certain FAB fields with defaults and user-specified values. No value is returned for this assembly-time operation. Format $FAB ALQ=allocation-quantity, BKS=bucket-size, BLS=block-size, CHAN_MODE=channel-access-mode CTX=user-context-value, DEQ=extension-quantity, DNA=default-filespec-address, DNM=<filespec>, DNS=default-filespec-string-size, FAC=<BIO BRO DEL GET PUT TRN UPD>, FNA=filespec-string-address, FNM=<filespec>, FNS=filespec-string-size, FOP=<CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP POS RCK RWC RWO SCF SPL SQO SUP TEF TMD TMP UFO WCK>, FSZ=header-size, GBC=global-buffer-count, LNM_MODE=logical-name-translation-access-mode, MRN=maximum-record-number, MRS=maximum-record-size, NAM=nam-address, ORG={IDX|REL|SEQ}, RAT=<BLK{CR|FTN|PRN}>, RFM={FIX|STM|STMCR|STMLF|UDF|VAR|VFC}, RTV=window-size, SHR=<DEL GET MSE NIL PUT UPD UPI NQL>, XAB=xab-address
2 – $FAB STORE
The $FAB_STORE macro moves user-specified values into fields of the specified FAB. The expanded $FAB_STORE code executes at run time on a previously initialized (allocated) FAB, in contrast to the $FAB macro, which initializes the FAB at assembly time. The $FAB_STORE macro must reside in a code program section. Format $FAB_STORE fab=fab-address, ALQ=#allocation-quantity, BKS=#bucket-size, BLS=#block-size, CHAN_MODE=#channel-access-mode CTX=user-context-value, DEQ=#extension-quantity, DNA=default-filespec-address, DNS=#default-filespec-string-size, FAC=<BIO BRO DEL GET PUT TRN UPD>, FNA=filespec-string-address, FNS=#filespec-string-size, FOP=<CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP POS RCK RWC RWO SCF SPL SQO SUP TEF TMD TMP UFO WCK>, FSZ=#header-size, GBC=#global-buffer-count, LNM_MODE=#logical-name-translation-access-mode, MRN=#maximum-record-number, MRS=#maximum-record-size, NAM=nam-address, ORG={IDX|REL|SEQ}, RAT=<BLK{CR|FTN|PRN}>, RFM={FIX|STM|STMCR|STMLF|UDF|VAR|VFC}, RTV=#window-size, SHR=<DEL GET MSE NIL PUT UPD UPI NQL>, XAB=xab-address
3 – $NAM
The $NAM macro allocates storage for a NAM block and initializes certain NAM fields with default values and user-specified values. No value is returned for this assembly-time operation. Format $NAM ESA=expanded-string-address, ESS=expanded-string-size, NOP=<NOCONCEAL PWD NO_SHORT_UPCASE SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=resultant-string-size
4 – $NAM STORE
The $NAM_STORE macro moves user-specified values into fields of the specified NAM block. The expanded $NAM_STORE code executes at run time on a previously initialized (allocated) NAM block, in contrast to the $NAM macro, which initializes a NAM block at assembly time. The $NAM_STORE macro must reside in a code program section. Format $NAM_STORE NAM=nam-address, DID=#directory-identification, DVI=#device-identification, ESA=expanded-string-address, ESS=#expanded-string-size, FID=#file-identification, NOP=<NOCONCEAL NO_SHORT_UPCASE PWD SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=#resultant-string-size
5 – $NAML
The $NAML macro allocates storage for a NAML block and initializes certain NAML fields with default values and user- specified values. Format $NAML ESA=expanded-string-address, ESS=expanded-string-size, NOP=<NOCONCEAL PWD NO_SHORT_UPCASE SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=resultant-string-size, FILESYS_NAME=file system name buffer address, FILESYS_NAME_ALLOC=file system name buffer size, INPUT_FLAGS=<NO_SHORT_OUTPUT>, LONG_DEFNAME=long default file specification string address, LONG_DEFNAME_SIZE=long default file specification string size, LONG_FILENAME=long file specification string address, LONG_FILENAME_SIZE=long file specification string size, LONG_EXPAND=long expanded string area address, LONG_EXPAND_ALLOC=long expanded string area size, LONG_RESULT=long resultant string area address, LONG_RESULT_ALLOC=long resultant string area size, USER_CONTEXT=user context
6 – $NAML STORE
The $NAML_STORE macro moves user-specified values into fields of the specified NAML block. The expanded $NAML_STORE code executes at run time on a previously initialized (allocated) NAML block, in contrast to the $NAML macro, which initializes a NAML block at assembly time. The $NAML_STORE macro must reside in a code program section. Format $NAML_STORE NAM=naml-address, DID=#directory-identification, DVI=#device-identification, ESA=expanded-string-address, ESS=#expanded-string-size, FID=#file-identification, NOP=<NOCONCEAL NO_SHORT_UPCASE PWD SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=#resultant-string-size, FILESYS_NAME=file system name buffer address, FILESYS_NAME_ALLOC=#file system name buffer size, INPUT_FLAGS=<NO_SHORT_OUTPUT>, LONG_DEFNAME=long default file specification string address, LONG_DEFNAME_SIZE=#long default file specification string size, LONG_FILENAME=long file specification string address, LONG_FILENAME_SIZE=#long file specification string size, LONG_EXPAND=long expanded string area address, LONG_EXPAND_ALLOC=#long expanded string area size, LONG_RESULT=long resultant string area address, LONG_RESULT_ALLOC=#long resultant string area size, USER_CONTEXT=#user context
7 – $RAB
The $RAB macro allocates storage for a RAB and initializes certain RAB fields with defaults and user-specified values. You cannot use this macro within a sequence of executable instructions. No value is returned for this assembly-time operation. Format $RAB BKT=bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=key-of-reference-number, KSZ=key-size, MBC=multiblock-count-number, MBF=multibuffer-count-number, PBF=prompt-buffer-address, PSZ=prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address
8 – $RAB STORE
The $RAB_STORE macro moves user-specified values into fields of the specified RAB. The expanded $RAB_STORE code executes at run time on a previously initialized (allocated) RAB, in contrast to the $RAB macro, which allocates and initializes the RAB at assembly time. The $RAB_STORE macro must reside in a code program section. Format $RAB_STORE RAB=rab-address, BKT=#bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=#key-of-reference-number, KSZ=#key-size, MBC=#multiblock-count-number, MBF=#multibuffer-count-number, PBF=prompt-buffer-address, PSZ=#prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=#record-size, TMO=#time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address
9 – $RAB64 (Alpha Only)
On Alpha systems, the $RAB64 macro allocates storage for a RAB64 and initializes certain RAB64 fields with defaults and user- specified values. You cannot use this macro within a sequence of executable instructions. No value is returned for this assembly- time operation. The defaults unique to $RAB64 are as follows: o RAB64$B_BLN is initialized to RAB64$C_BLN64. o The original longword I/O buffers (KBF, RHB, RBF, and UBF) are initialized to -1; USZ and RSZ word sizes are initialized to 0. User-specified values using the CTX, KBF, RHB, RBF, RSZ, UBF, or USZ keywords are moved into the quadword fields for these keywords. In contrast, the $RAB macro moves them into the longword (or word) fields for these keywords. Format $RAB64 BKT=bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=key-of-reference-number, KSZ=key-size, MBC=multiblock-count-number, MBF=multibuffer-count-number, PBF=prompt-buffer-address, PSZ=prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address
10 – $RAB64 STORE (Alpha Only)
On Alpha systems, the $RAB64_STORE macro moves user-specified values into fields of the specified RAB64. The expanded $RAB64_ STORE code executes at run time on a previously initialized (allocated) RAB64. In contrast, the $RAB64 macro allocates and initializes the RAB64 at assembly time. The $RAB64_STORE macro must reside in a code program section. User-specified values that use the CTX, KBF, RHB, RBF, RSZ, UBF, or USZ keywords are moved into the quadword fields for these keywords. In contrast, the $RAB_STORE macro moves them into the longword (or word) fields for these keywords. Format $RAB64_STORE RAB=rab64-address, BKT=#bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=#key-of-reference-number, KSZ=#key-size, MBC=#multiblock-count-number, MBF=#multibuffer-count-number, PBF=prompt-buffer-address, PSZ=#prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=#record-size, TMO=#time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address
11 – $XABALL
The $XABALL macro allocates and initializes a XABALL, which allows extended control of file disk space allocation, both for initial allocation and later extension. No value is returned for this assembly-time operation. Format $XABALL AID=area-identification-number, ALN={ANY|CYL|LBN|RFI|VBN}, ALQ=allocation-quantity, AOP=<CBT CTG HRD ONC>, BKZ=bucket-size, DEQ=extension-quantity, LOC=location-number, NXT=next-xab-address, RFI=<f(1), f(2), f(3)>, VOL=volume-number
12 – $XABALL STORE
The $XABALL_STORE macro moves user-specified values into fields of the specified XABALL. The expanded $XABALL_STORE code executes at run time on a previously initialized (allocated) XABALL, in contrast to the $XABALL macro, which initializes a XABALL at assembly time. The $XABALL_STORE macro must reside in a code program section. Format $XABALL_STORE XAB=xaball-address, AID=#area-identification-number, ALN={ANY|CYL|LBN|RFI|VBN}, ALQ=#allocation-quantity, AOP=<CBT CTG HRD ONC>, BKZ=#bucket-size, DEQ=#extension-quantity, LOC=#location-number, NXT=next-xab-address, RFI=#related-file-identification, VOL=#volume-number
13 – $XABDAT
The $XABDAT macro allocates and initializes a XABDAT. No value is returned for this assembly-time operation. Format $XABDAT EDT=date-time, NXT=next-xab-address
14 – $XABDAT STORE
The $XABDAT_STORE macro moves user-specified values into fields of the specified XABDAT. The expanded $XABDAT_STORE code executes at run time on a previously initialized (allocated) XABDAT, in contrast to the $XABDAT macro, which initializes a XABDAT at assembly time. The $XABDAT_STORE macro must reside in a code program section. Format $XABDAT_STORE XAB=xabdat-address, CDT=#creation-date-time, EDT=#expiration-date-time, RDT=#revision-date-time, RVN=#revision-number, NXT=next-xab-address
15 – $XABFHC
The $XABFHC macro allocates and initializes a XABFHC. No value is returned for this assembly-time operation. Format $XABFHC NXT=next-xab-address
16 – $XABFHC STORE
The $XABFHC_STORE macro moves user-specified values into fields of the specified XABFHC. The expanded $XABFHC_STORE code executes at run time on a previously initialized (allocated) XABFHC, in contrast to the $XABFHC macro, which initializes a XABFHC at assembly time. The $XABFHC_STORE macro must reside in a code program section. Format $XABFHC_STORE XAB=xabfhc-address, NXT=next-xab-address
17 – $XABITM
The $XABITM macro allocates and initializes a XABITM. No value is returned for this assembly-time operation. Format $XABITM ITEMLIST=item-list-address, MODE={sensemode|setmode}, NXT=next-xab-address
18 – $XABKEY
The $XABKEY macro allocates and initializes a XABKEY. No value is returned for this assembly-time operation. Format $XABKEY COLTBL=collating-table-address, DAN=data-bucket-area-number, DFL=data-bucket-fill-size, DTP={BN2|DBN2|BN4|DBN4|BN8|DBN8|IN2 |DIN2|IN4|DIN4|IN8|DIN8|COL|DCOL |PAC|DPAC|STG|DSTG}, FLG=<CHG DAT_NCMPR DUP IDX_NCMPR KEY_NCMPR NUL>, IAN=index-bucket-area-number, IFL=index-bucket-file-size, KNM=key-name-buffer-address, LAN=lowest-level-index-area-number, NUL=null-key-value, NXT=next-xab-address, POS=<position,...>, PROLOG=prolog-level, REF=key-of-reference-value, SIZ=<size,...>
19 – $XABKEY STORE
The $XABKEY_STORE macro moves user-specified values into fields of the specified XABKEY. The expanded $XABKEY_STORE code executes at run time on a previously initialized (allocated) XABKEY, in contrast to the $XABKEY macro, which initializes the XABKEY at assembly time. The $XABKEY_STORE macro must reside in a code program section. Format $XABKEY_STORE XAB=xabkey-address, COLTBL=#collating-table-address, DAN=#data-bucket-area-number, DFL=#data-bucket-fill-size, DTP={BN2|DBN2|BN4|DBN4|BN8|DBN8|IN2 |DIN2|IN4|DIN4|IN8|DIN8|COL|DCOL |PAC|DPAC|STG|DSTG}, FLG=<CHG DAT_NCMPR DUP IDX_NCMPR KEY_NCMPR NUL>, IAN=#index-bucket-area-number, IFL=#index-bucket-fill-size, KNM=key-name-buffer-address, LAN=#lowest-level-index-area-number, NUL=#null-key-value, NXT=next-xab-address, POS=<position,...>, PROLOG=#prolog-level, REF=#key-of-reference-value, SIZ=<size,...>
20 – $XABPRO
The $XABPRO macro allocates and initializes a XABPRO. No value is returned for this assembly-time operation. Format $XABPRO ACLBUF=ACL-buffer-address, ACLCTX=<ACL-context>, ACLSIZ=ACL-buffer-size, MTACC=magnetic-tape-accessibility, NXT=next-xab-address, PRO=<system, owner, group, world>, PROT_OPT=<PROPAGATE>, UIC=<group, member>
21 – $XABPRO STORE
The $XABPRO_STORE macro moves user-specified values into fields of the specified XABPRO. The expanded $XABPRO_STORE code executes at run time on a previously initialized (allocated) XABPRO, in contrast to the $XABPRO macro, which initializes a XABPRO at assembly time. The $XABPRO_STORE macro must reside in a code program section. Format $XABPRO_STORE XAB=xabpro-address, ACLBUF=ACL-buffer-address, ACLCTX=#<ACL-context>, ACLSIZ=#ACL-buffer-size, MTACC=#magnetic-tape-accessibility, NXT=next-xab-address, PRO=<system, owner, group, world>, PROT_OPT=<PROPAGATE>, UIC=#uic-value
22 – $XABRDT
The $XABRDT macro allocates and initializes a XABRDT. No value is returned for this assembly-time operation. Format $XABRDT NXT=next-xab-address
23 – $XABRDT STORE
The $XABRDT_STORE macro moves user-specified values into fields of the specified XABRDT. The expanded $XABRDT_STORE code executes at run time on a previously initialized (allocated) XABRDT, in contrast to the $XABRDT macro, which initializes the XABRDT at assembly time. The $XABRDT_STORE macro must reside in a code program section. Format $XABRDT_STORE XAB=xabrdt-address, RDT=#revision-date-time, RVN=#revision-number, NXT=next-xab-address
24 – $XABSUM
The $XABSUM macro allocates and initializes a XABSUM. No value is returned for this assembly-time operation. Format $XABSUM NXT=next-xab-address
25 – $XABSUM STORE
The $XABSUM_STORE macro moves user-specified values into fields of the specified XABSUM. The expanded $XABSUM_STORE code executes at run time on a previously initialized (allocated) XABSUM, in contrast to the $XABSUM macro, which initializes the XABSUM at assembly time. The $XABSUM_STORE macro must reside in a code program section. Format $XABSUM_STORE XAB=xabsum-address, NXT=next-xab-address
26 – $XABTRM
The $XABTRM macro allocates and initializes a XABTRM. No value is returned for this assembly-time operation. Format $XABTRM ITMLST=item-list-address, ITMLST_LEN=item-list-length, NXT=next-xab-address
27 – $XABTRM STORE
The $XABTRM_STORE macro moves user-specified values into fields of the specified XABTRM. The expanded $XABTRM_STORE code executes at run time on a previously initialized (allocated) XABTRM, in contrast to the $XABTRM macro, which initializes a XABTRM at assembly time. The $XABTRM_STORE macro must reside in a code program section. Format $XABTRM_STORE XAB=xabtrm-address, ITMLST=item-list-address, ITMLST_LEN=#item-list-length, NXT=next-xab-address