! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! record access block (rab) definitions ! ! there is one rab per connected stream ! it is used for all communications between the user ! and rms concerning operations on the stream ! ! the fields thru ctx cannot be changed due to commonality ! with the fab ! DECLARE LONG CONSTANT RAB$C_BID = 1 ! code for rab DECLARE LONG CONSTANT RAB$M_PPF_RAT = x'00003FC0' DECLARE LONG CONSTANT RAB$M_PPF_IND = x'00004000' DECLARE LONG CONSTANT RAB$M_PPISI = x'00008000' DECLARE LONG CONSTANT RAB$M_ASY = x'00000001' DECLARE LONG CONSTANT RAB$M_TPT = x'00000002' DECLARE LONG CONSTANT RAB$M_REA = x'00000004' DECLARE LONG CONSTANT RAB$M_RRL = x'00000008' DECLARE LONG CONSTANT RAB$M_UIF = x'00000010' DECLARE LONG CONSTANT RAB$M_MAS = x'00000020' DECLARE LONG CONSTANT RAB$M_FDL = x'00000040' DECLARE LONG CONSTANT RAB$M_REV = x'00000080' DECLARE LONG CONSTANT RAB$M_EOF = x'00000100' DECLARE LONG CONSTANT RAB$M_RAH = x'00000200' DECLARE LONG CONSTANT RAB$M_WBH = x'00000400' DECLARE LONG CONSTANT RAB$M_BIO = x'00000800' DECLARE LONG CONSTANT RAB$M_CDK = x'00001000' DECLARE LONG CONSTANT RAB$M_LOA = x'00002000' DECLARE LONG CONSTANT RAB$M_LIM = x'00004000' DECLARE LONG CONSTANT RAB$M_SYNCSTS = x'00008000' DECLARE LONG CONSTANT RAB$M_LOC = x'00010000' DECLARE LONG CONSTANT RAB$M_WAT = x'00020000' DECLARE LONG CONSTANT RAB$M_ULK = x'00040000' DECLARE LONG CONSTANT RAB$M_RLK = x'00080000' DECLARE LONG CONSTANT RAB$M_NLK = x'00100000' DECLARE LONG CONSTANT RAB$M_KGE = x'00200000' DECLARE LONG CONSTANT RAB$M_KGT = x'00400000' DECLARE LONG CONSTANT RAB$M_NXR = x'00800000' DECLARE LONG CONSTANT RAB$M_RNE = x'01000000' DECLARE LONG CONSTANT RAB$M_TMO = x'02000000' DECLARE LONG CONSTANT RAB$M_CVT = x'04000000' DECLARE LONG CONSTANT RAB$M_RNF = x'08000000' DECLARE LONG CONSTANT RAB$M_ETO = x'10000000' DECLARE LONG CONSTANT RAB$M_PTA = x'20000000' DECLARE LONG CONSTANT RAB$M_PMT = x'40000000' DECLARE LONG CONSTANT RAB$M_CCO = x'80000000' DECLARE LONG CONSTANT RAB$M_EQNXT = x'00200000' DECLARE LONG CONSTANT RAB$M_NXT = x'00400000' DECLARE LONG CONSTANT RAB$M_NQL = x'00000001' DECLARE LONG CONSTANT RAB$M_NODLCKWT = x'00000002' DECLARE LONG CONSTANT RAB$M_NODLCKBLK = x'00000004' DECLARE LONG CONSTANT RAB$C_SEQ = 0 ! sequential access DECLARE LONG CONSTANT RAB$C_KEY = 1 ! keyed access DECLARE LONG CONSTANT RAB$C_RFA = 2 ! rfa access DECLARE LONG CONSTANT RAB$C_STM = 3 ! stream access (valid only for sequential org) DECLARE LONG CONSTANT RAB$C_MAXRAC = 2 ! Maximum RAC value currently supported by RMS DECLARE LONG CONSTANT RAB$S_RABDEF = 68 record RABDEF BYTE RAB$B_BID ! block id BYTE RAB$B_BLN ! block length group RAB$R_ISI_OVERLAY variant case WORD RAB$W_ISI ! internal stream index ! (ifi in fab) case group RAB$R_ISI_BITS ! move to bit 6 ! rat value for process-permanent files ! indirect access to process-permanent file ! (i.e., restricted operations) ! indicates that this is process-permanent stream WORD FILL_1_bits ! COMMENT ADDED BY SDL - FILL_1_bits contains bits FILL_1 through PPISI end group RAB$R_ISI_BITS end variant end group RAB$R_ISI_OVERLAY group RAB$R_ROP_OVERLAY variant case LONG RAB$L_ROP ! record options case group RAB$R_ROP_BITS0 ! asynchronous operations ! truncate put - allow sequential put not at ! eof, thus truncating file (seq. org only) ! ! these next two should be in the byte for bits ! input to $find or $get, but there is no room there ! ! lock record for read only, allow other readers ! read record regardless of lock ! ! update if existent ! mass-insert mode ! fast record deletion ! reverse-search - can only be set with NXT or EQNXT ! ! connect to eof ! read ahead ! write behind ! connect for bio only ! check for duplicate keys on $GET ! use bucket fill percentage ! compare for key limit reached on $get/$find seq. (idx only) ! Synchronous status notification for asynchronous routines. ! ! the following bits are input to ! $find or $get, (see above also REA and RRL) ! (separate byte) ! ! use locate mode ! wait if record not available ! manual unlocking ! allow readers for this locked record ! do not lock record ! key > or = ! key greater than ! get non-existent record ! ! the following bits are terminal qualifiers only ! (separate byte) ! ! read no echo ! use time-out period ! convert to upper case ! read no filter ! extended terminal operation ! purge type ahead ! use prompt buffer ! cancel control o on output LONG ASY_bits ! COMMENT ADDED BY SDL - ASY_bits contains bits ASY through CCO end group RAB$R_ROP_BITS0 case group RAB$R_ROP_BITS1 ! Synonyms for KGE and ! KGT LONG FILL_6_bits ! COMMENT ADDED BY SDL - FILL_6_bits contains bits FILL_6 through FILL_3_ end group RAB$R_ROP_BITS1 ! the following bits may be ! input to various rab-related ! operations ! case group RAB$R_ROP_FIELDS BYTE RABDEF$$_FILL_3 BYTE RAB$B_ROP1 ! various options BYTE RAB$B_ROP2 ! get/find options (use of this field discouraged ! due to REA and RRL being in a different byte) BYTE RAB$B_ROP3 ! terminal read options ! end group RAB$R_ROP_FIELDS end variant end group RAB$R_ROP_OVERLAY LONG RAB$L_STS ! status group RAB$R_STV_OVERLAY variant case LONG RAB$L_STV ! status value case group RAB$R_STV_FIELDS WORD RAB$W_STV0 ! low word of stv WORD RAB$W_STV2 ! high word of stv end group RAB$R_STV_FIELDS end variant end group RAB$R_STV_OVERLAY group RAB$R_RFA_OVERLAY variant case WORD RAB$W_RFA ( 1 to 3 ) ! record's file address case group RAB$R_RFA_FIELDS LONG RAB$L_RFA0 WORD RAB$W_RFA4 end group RAB$R_RFA_FIELDS end variant end group RAB$R_RFA_OVERLAY WORD RABDEF$$_FILL_4 ! (reserved - rms release 1 optimizes stores ! to the rfa field to be a move quad, overwriting ! this reserved word) LONG RAB$L_CTX ! user context ! -----***** group RAB$R_ROP_2_OVERLAY ! variant case WORD RAB$W_ROP_2 ! extension to record options in traditional RAB case group RAB$R_ROP_2_BITS0 ! no query locking (record level) ! no deadlock wait ! no deadlock blocking ! reserved for future development WORD NQL_bits ! COMMENT ADDED BY SDL - NQL_bits contains bits NQL through FILL_5 end group RAB$R_ROP_2_BITS0 end variant end group RAB$R_ROP_2_OVERLAY BYTE RAB$B_RAC ! record access BYTE RAB$B_TMO ! time-out period WORD RAB$W_USZ ! user buffer size WORD RAB$W_RSZ ! record buffer size LONG RAB$L_UBF ! user buffer address LONG RAB$L_RBF ! record buffer address LONG RAB$L_RHB ! record header buffer addr group RAB$R_KBF_OVERLAY variant case LONG RAB$L_KBF ! key buffer address case LONG RAB$L_PBF ! prompt buffer addr end variant end group RAB$R_KBF_OVERLAY group RAB$R_KSZ_OVERLAY variant case BYTE RAB$B_KSZ ! key buffer size case BYTE RAB$B_PSZ ! prompt buffer size end variant end group RAB$R_KSZ_OVERLAY BYTE RAB$B_KRF ! key of reference BYTE RAB$B_MBF ! multi-buffer count BYTE RAB$B_MBC ! multi-block count group RAB$R_BKT_OVERLAY variant case LONG RAB$L_BKT ! bucket hash code, vbn, or rrn case LONG RAB$L_DCT ! duplicates count on key accessed on alternate key end variant end group RAB$R_BKT_OVERLAY LONG RAB$L_FAB ! related fab for connect LONG RAB$L_XAB ! XAB address end record RABDEF ! end of traditional 32-bit rab DECLARE LONG CONSTANT RAB$K_BLN = 68 ! length of traditional 32-bit rab DECLARE LONG CONSTANT RAB$C_BLN = 68 ! length of traditional 32-bit rab ! ! 64-bit variant of the record access block (rab) definitions ! ! The 64-bit rab consists of the traditional 32-bit rab ! followed by additional cells, added mainly to provide ! support for a 64-bit address for user buffers (UBF, RBF, ! KBF, RHB). ! ! DECLARE LONG CONSTANT RAB64$C_BID = 1 ! code for rab DECLARE LONG CONSTANT RAB64$M_PPF_RAT = x'00003FC0' DECLARE LONG CONSTANT RAB64$M_PPF_IND = x'00004000' DECLARE LONG CONSTANT RAB64$M_PPISI = x'00008000' DECLARE LONG CONSTANT RAB64$M_ASY = x'00000001' DECLARE LONG CONSTANT RAB64$M_TPT = x'00000002' DECLARE LONG CONSTANT RAB64$M_REA = x'00000004' DECLARE LONG CONSTANT RAB64$M_RRL = x'00000008' DECLARE LONG CONSTANT RAB64$M_UIF = x'00000010' DECLARE LONG CONSTANT RAB64$M_MAS = x'00000020' DECLARE LONG CONSTANT RAB64$M_FDL = x'00000040' DECLARE LONG CONSTANT RAB64$M_REV = x'00000080' DECLARE LONG CONSTANT RAB64$M_EOF = x'00000100' DECLARE LONG CONSTANT RAB64$M_RAH = x'00000200' DECLARE LONG CONSTANT RAB64$M_WBH = x'00000400' DECLARE LONG CONSTANT RAB64$M_BIO = x'00000800' DECLARE LONG CONSTANT RAB64$M_CDK = x'00001000' DECLARE LONG CONSTANT RAB64$M_LOA = x'00002000' DECLARE LONG CONSTANT RAB64$M_LIM = x'00004000' DECLARE LONG CONSTANT RAB64$M_SYNCSTS = x'00008000' DECLARE LONG CONSTANT RAB64$M_LOC = x'00010000' DECLARE LONG CONSTANT RAB64$M_WAT = x'00020000' DECLARE LONG CONSTANT RAB64$M_ULK = x'00040000' DECLARE LONG CONSTANT RAB64$M_RLK = x'00080000' DECLARE LONG CONSTANT RAB64$M_NLK = x'00100000' DECLARE LONG CONSTANT RAB64$M_KGE = x'00200000' DECLARE LONG CONSTANT RAB64$M_KGT = x'00400000' DECLARE LONG CONSTANT RAB64$M_NXR = x'00800000' DECLARE LONG CONSTANT RAB64$M_RNE = x'01000000' DECLARE LONG CONSTANT RAB64$M_TMO = x'02000000' DECLARE LONG CONSTANT RAB64$M_CVT = x'04000000' DECLARE LONG CONSTANT RAB64$M_RNF = x'08000000' DECLARE LONG CONSTANT RAB64$M_ETO = x'10000000' DECLARE LONG CONSTANT RAB64$M_PTA = x'20000000' DECLARE LONG CONSTANT RAB64$M_PMT = x'40000000' DECLARE LONG CONSTANT RAB64$M_CCO = x'80000000' DECLARE LONG CONSTANT RAB64$M_EQNXT = x'00200000' DECLARE LONG CONSTANT RAB64$M_NXT = x'00400000' DECLARE LONG CONSTANT RAB64$M_NQL = x'00000001' DECLARE LONG CONSTANT RAB64$M_NODLCKWT = x'00000002' DECLARE LONG CONSTANT RAB64$M_NODLCKBLK = x'00000004' DECLARE LONG CONSTANT RAB64$C_SEQ = 0 ! sequential access DECLARE LONG CONSTANT RAB64$C_KEY = 1 ! keyed access DECLARE LONG CONSTANT RAB64$C_RFA = 2 ! rfa access DECLARE LONG CONSTANT RAB64$C_STM = 3 ! stream access (valid only for sequential org) DECLARE LONG CONSTANT RAB64$C_MAXRAC = 2 ! Maximum RAC value currently supported by RMS DECLARE LONG CONSTANT RAB64$M_RESERVED29 = x'20000000' DECLARE LONG CONSTANT RAB64$M_RESERVED30 = x'40000000' DECLARE LONG CONSTANT RAB64$M_RESERVED31 = x'80000000' DECLARE LONG CONSTANT RAB$M_RESERVED29 = 536870912 DECLARE LONG CONSTANT RAB$M_RESERVED30 = 1073741824 DECLARE LONG CONSTANT RAB$M_RESERVED31 = X"80000000"L DECLARE LONG CONSTANT RAB64$S_RAB64DEF = 144 record RAB64DEF BYTE RAB64$B_BID ! block id BYTE RAB64$B_BLN ! block length group RAB64$R_ISI_OVERLAY variant case WORD RAB64$W_ISI ! internal stream index ! (ifi in fab) case group RAB64$R_ISI_BITS ! move to bit 6 ! rat value for process-permanent files ! indirect access to process-permanent file ! (i.e., restricted operations) ! indicates that this is process-permanent stream WORD FILL_1_bits ! COMMENT ADDED BY SDL - FILL_1_bits contains bits FILL_1 through PPISI end group RAB64$R_ISI_BITS end variant end group RAB64$R_ISI_OVERLAY group RAB64$R_ROP_OVERLAY variant case LONG RAB64$L_ROP ! record options case group RAB64$R_ROP_BITS0 ! asynchronous operations ! truncate put - allow sequential put not at ! eof, thus truncating file (seq. org only) ! ! these next two should be in the byte for bits ! input to $find or $get, but there is no room there ! ! lock record for read only, allow other readers ! read record regardless of lock ! ! update if existent ! mass-insert mode ! fast record deletion ! reverse-search - can only be set with NXT or EQNXT ! ! connect to eof ! read ahead ! write behind ! connect for bio only ! check for duplicate keys on $GET ! use bucket fill percentage ! compare for key limit reached on $get/$find seq. (idx only) ! Synchronous status notification for asynchronous routines. ! ! the following bits are input to ! $find or $get, (see above also REA and RRL) ! (separate byte) ! ! use locate mode ! wait if record not available ! manual unlocking ! allow readers for this locked record ! do not lock record ! key > or = ! key greater than ! get non-existent record ! ! the following bits are terminal qualifiers only ! (separate byte) ! ! read no echo ! use time-out period ! convert to upper case ! read no filter ! extended terminal operation ! purge type ahead ! use prompt buffer ! cancel control o on output LONG ASY_bits ! COMMENT ADDED BY SDL - ASY_bits contains bits ASY through CCO end group RAB64$R_ROP_BITS0 case group RAB64$R_ROP_BITS1 ! Synonyms for KGE and ! KGT LONG FILL_6_bits ! COMMENT ADDED BY SDL - FILL_6_bits contains bits FILL_6 through FILL_4_ end group RAB64$R_ROP_BITS1 ! the following bits may be ! input to various rab-related ! operations ! case group RAB64$R_ROP_FIELDS BYTE RAB64DEF$$_FILL_3 BYTE RAB64$B_ROP1 ! various options BYTE RAB64$B_ROP2 ! get/find options (use of this field discouraged ! due to REA and RRL being in a different byte) BYTE RAB64$B_ROP3 ! terminal read options ! end group RAB64$R_ROP_FIELDS end variant end group RAB64$R_ROP_OVERLAY LONG RAB64$L_STS ! status group RAB64$R_STV_OVERLAY variant case LONG RAB64$L_STV ! status value case group RAB64$R_STV_FIELDS WORD RAB64$W_STV0 ! low word of stv WORD RAB64$W_STV2 ! high word of stv end group RAB64$R_STV_FIELDS end variant end group RAB64$R_STV_OVERLAY group RAB64$R_RFA_OVERLAY variant case WORD RAB64$W_RFA ( 1 to 3 ) ! record's file address case group RAB64$R_RFA_FIELDS LONG RAB64$L_RFA0 WORD RAB64$W_RFA4 end group RAB64$R_RFA_FIELDS end variant end group RAB64$R_RFA_OVERLAY WORD RAB64DEF$$_FILL_4 ! (reserved - rms release 1 optimizes stores ! to the rfa field to be a move quad, overwriting ! this reserved word) LONG RAB64$L_CTX ! user context ! -----***** group RAB64$R_ROP_2_OVERLAY ! variant case WORD RAB64$W_ROP_2 ! extension to record options in traditional RAB case group RAB64$R_ROP_2_BITS0 ! no query locking (record level) ! no deadlock wait ! no deadlock blocking ! reserved for future development WORD NQL_bits ! COMMENT ADDED BY SDL - NQL_bits contains bits NQL through FILL_5 end group RAB64$R_ROP_2_BITS0 end variant end group RAB64$R_ROP_2_OVERLAY BYTE RAB64$B_RAC ! record access BYTE RAB64$B_TMO ! time-out period WORD RAB64$W_USZ ! user buffer size WORD RAB64$W_RSZ ! record buffer size LONG RAB64$L_UBF ! user buffer address LONG RAB64$L_RBF ! record buffer address LONG RAB64$L_RHB ! record header buffer addr group RAB64$R_KBF_OVERLAY variant case LONG RAB64$L_KBF ! key buffer address case LONG RAB64$L_PBF ! prompt buffer addr end variant end group RAB64$R_KBF_OVERLAY group RAB64$R_KSZ_OVERLAY variant case BYTE RAB64$B_KSZ ! key buffer size case BYTE RAB64$B_PSZ ! prompt buffer size end variant end group RAB64$R_KSZ_OVERLAY BYTE RAB64$B_KRF ! key of reference BYTE RAB64$B_MBF ! multi-buffer count BYTE RAB64$B_MBC ! multi-block count group RAB64$R_BKT_OVERLAY variant case LONG RAB64$L_BKT ! bucket hash code, vbn, or rrn case LONG RAB64$L_DCT ! duplicates count on key accessed on alternate key end variant end group RAB64$R_BKT_OVERLAY LONG RAB64$L_FAB ! related fab for connect LONG RAB64$L_XAB ! XAB address group RAB64$R_VERSION64_OVERLAY variant case LONG RAB64$L_VERSION ! 64-bit rab extension version case LONG RAB$L_VERSION ! 64-bit rab extension version case group RAB64$R_VERSION_FIELDS_1 WORD RAB64$W_VERMINOR ! minor version ident WORD RAB64$W_VERMAJOR ! major version ident end group RAB64$R_VERSION_FIELDS_1 case group RAB64$R_VERSION_FIELDS_2 WORD RAB$W_VERMINOR ! minor version ident WORD RAB$W_VERMAJOR ! major version ident end group RAB64$R_VERSION_FIELDS_2 end variant end group RAB64$R_VERSION64_OVERLAY group RAB64$R_UBF64_OVERLAY variant case BASIC$QUADWORD RAB64$PQ_UBF ! 64-bit user buffer address case BASIC$QUADWORD RAB$PQ_UBF ! 64-bit user buffer address end variant end group RAB64$R_UBF64_OVERLAY group RAB64$R_USZ64_OVERLAY variant case BASIC$QUADWORD RAB64$Q_USZ ! 64-bit user buffer size case BASIC$QUADWORD RAB$Q_USZ ! 64-bit user buffer size end variant end group RAB64$R_USZ64_OVERLAY group RAB64$R_RBF64_OVERLAY variant case BASIC$QUADWORD RAB64$PQ_RBF ! 64-bit record buffer address case BASIC$QUADWORD RAB$PQ_RBF ! 64-bit record buffer address end variant end group RAB64$R_RBF64_OVERLAY group RAB64$R_RSZ64_OVERLAY variant case BASIC$QUADWORD RAB64$Q_RSZ ! 64-bit record buffer size case BASIC$QUADWORD RAB$Q_RSZ ! 64-bit record buffer size end variant end group RAB64$R_RSZ64_OVERLAY group RAB64$R_KBF64_OVERLAY variant case BASIC$QUADWORD RAB64$PQ_KBF ! 64-bit key buffer address case BASIC$QUADWORD RAB$PQ_KBF ! 64-bit key buffer address end variant end group RAB64$R_KBF64_OVERLAY group RAB64$R_RHB64_OVERLAY variant case BASIC$QUADWORD RAB64$PQ_RHB ! 64-bit record header buffer addr case BASIC$QUADWORD RAB$PQ_RHB ! 64-bit record header buffer addr end variant end group RAB64$R_RHB64_OVERLAY group RAB64$R_CTX64_OVERLAY variant case BASIC$QUADWORD RAB64$Q_CTX ! 64-bit user context case BASIC$QUADWORD RAB$Q_CTX ! 64-bit user context end variant end group RAB64$R_CTX64_OVERLAY group RAB64$R_ROPEXT_OVERLAY_RAB64 variant case LONG RAB64$L_ROPEXT ! extended record options case LONG RAB$L_ROPEXT ! extended record options case group RAB64$R_ROPEXT_BITS0_1 ! MBZ - reserved for Digital ! MBZ - reserved for Digital ! MBZ - reserved for Digital LONG FILL_7_1_bits ! COMMENT ADDED BY SDL - FILL_7_1_bits contains bits FILL_7_1 through RESERVED31 end group RAB64$R_ROPEXT_BITS0_1 case group RAB64$R_ROPEXT_BITS0_2 ! MBZ - reserved for Digital ! MBZ - reserved for Digital ! MBZ - reserved for Digital LONG FILL_7_2_bits ! COMMENT ADDED BY SDL - FILL_7_2_bits contains bits FILL_7_2 through RESERVED31 end group RAB64$R_ROPEXT_BITS0_2 end variant end group RAB64$R_ROPEXT_OVERLAY_RAB64 group RAB64$R_MBF_OVERLAY variant case LONG RAB64$L_MBF ! longword multi-buffer count case LONG RAB$L_MBF ! longword multi-buffer count end variant end group RAB64$R_MBF_OVERLAY group RAB64$R_MBC_OVERLAY variant case LONG RAB64$L_MBC ! longword multi-block count case LONG RAB$L_MBC ! longword multi-block count end variant end group RAB64$R_MBC_OVERLAY group RAB64$R_RESERVED_1_OVERLAY variant case LONG RAB64$L_RESERVED_1 ! MBZ - reserved for Digital case LONG RAB$L_RESERVED_1 ! MBZ - reserved for Digital end variant end group RAB64$R_RESERVED_1_OVERLAY end record RAB64DEF ! end of 64-bit rab variant DECLARE LONG CONSTANT RAB64$K_BLN64 = 144 ! length of 64-bit rab variant DECLARE LONG CONSTANT RAB64$C_BLN64 = 144 ! length of 64-bit rab variant DECLARE LONG CONSTANT RAB$K_BLN64 = 144 ! length of 64-bit rab variant DECLARE LONG CONSTANT RAB$C_BLN64 = 144 ! length of 64-bit rab variant DECLARE LONG CONSTANT RAB$K_MAXBLN = 144 ! current maximum length of rab DECLARE LONG CONSTANT RAB$C_MAXBLN = 144 ! current maximum length of rab