Trailing-Edge
-
PDP-10 Archives
-
cuspbinsrc_2of2_bb-fp63b-sb
-
10,7/rms10/rmssrc/rmssym.mtb
There are 6 other files named rmssym.mtb in the archive. Click here to see a list.
;! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;! OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;! COPYRIGHT (C) 1977, 1979 BY DIGITAL EQUIPMENT CORPORATION
;! *********************************************************
;! * *
;! * START OF RMSSYM.MTB *
;! * *
;! * RMS SYMBOL AND MACRO DEFINITIONS *
;! * *
;! * THIS FILE IS PROCESSED BY BOTH MACRO AND BLISS *
;! * *
;! *********************************************************
;! AUTHOR: S. BLOUNT
;! EDIT DATE: MAY 1, 1976
;! REVISION HISTORY:
;!
;! PRODUCT MODULE SPR
;! EDIT EDIT QAR DESCRIPTION
;! ====== ====== ===== ===========
;!
;!
;! ***** END OF REVISION HISTORY *****
;! *********************************************************
;! * *
;! * ==> READ FILE RMS20T.SNO BEFORE <== *
;! * ==> MAKING ANY EDITS TO THIS FILE <== *
;! * *
;! *********************************************************
;! IN MACRO THIS FILE MUST BE ASSEMBLED AFTER FILE RMSSYM.MPR:
;! @MACRO
;! *,=RMSSYM.MPR,RMSSYM.MTB
;! IN BLISS THIS FILE MUST BE REQUIRED AS SHOWN BELOW:
;! MODULE ...
;! .
;! .
;! .
;! REQUIRE RMSSYM.BPR;
;! REQUIRE RMSSYM.MTB;
;! REQUIRE RMSSYM.BPS;
;! ***********NOTE: MACROS THAT ARE CALLED IN THIS FILE ARE DEFINED
;! IN RMSSYM.MPR (MACRO) AND RMSSYM.BPR (BLISS).
;! SEE THESE FILES FOR ADDITIONAL INFORMATION.
;! CONTENTS:
;! 1. DEFINE OFFSET CONSTANTS
;! 2. DEFINE SIZE, POSITION, COUNT, AND MISC. CONSTANTS
;! 3. SYMBOL DEFINITIONS FOR FILE ACCESS BLOCK (FAB)
;! 4. FAB DEFINITIONS
;! 5. SYMBOL DEFINITIONS FOR RECORD ACCESS BLOCK (RAB)
;! 6. RAB DEFINITIONS
;! 7. SYMBOL DEFINITIONS FOR EXTENDED ATTRIBUTES BLOCK (XAB)
;! 8. XAB DEFINITIONS
;! 9. SYMBOL DEFINITIONS FOR DEBUG MACRO
;! 10. DEFINE RUN TIME OPERATION CODES
;! *********************************************************
;! * 1. DEFINE OFFSET CONSTANTS *
;! *********************************************************
S$$DC (XX,OID,0) ;! BID FIELD OFFSET IN A FAB, RAB, OR XAB
;! MACRO-10 EXPANDS THE ABOVE TO GIVE: XX$OID==^D0
;! BLISS EXPANDS THE ABOVE TO GIVE: BIND XXOID = 0;
S$$DC (XX,OLN,0) ;! BLN FIELD OFFSET IN A FAB, RAB, OR XAB
;! NOTE THAT RMS ASSUMES THE BID (BLOCK TYPE) AND BLN (BLOCK LENGTH)
;! FIELDS ARE THE SAME SIZE AND ARE IN THE SAME RELATIVE POSITION
;! IN A FAB (FILE ACCESS BLOCK), RAB (RECORD ACCESS BLOCK), OR
;! XAB (EXTENDED ATTRIBUTES BLOCK).
S$$DC (XX,OST,1) ;! STS FIELD OFFSET IN A FAB OR RAB
S$$DC (XX,OSV,1) ;! STV FIELD OFFSET IN A FAB OR RAB
S$$DC (XX,OCT,2) ;! CTX FIELD OFFSET IN A FAB OR RAB
;! NOTE THAT RMS ASSUMES THE STS (STATUS), STV (STATUS VALUE), AND
;! CTX (USER CONTEXT WORD) FIELDS ARE THE SAME SIZE AND ARE IN THE
;! SAME RELATIVE POSITION IN A FAB OR RAB.
S$$DC (XX,OCO,1) ;! COD FIELD OFFSET IN AN XAB
S$$DC (XX,OF0,0) ;! OFFSET 0 (0TH WORD OF THE BLOCK)
S$$DC (XX,OF1,1) ;! OFFSET 1
S$$DC (XX,OF2,2) ;! OFFSET 2
S$$DC (XX,OF3,3) ;! OFFSET 3
S$$DC (XX,OF4,4) ;! OFFSET 4
S$$DC (XX,OF5,5) ;! OFFSET 5
S$$DC (XX,OF6,6) ;! OFFSET 6
S$$DC (XX,OF7,7) ;! OFFSET 7
S$$DC (XX,OF8,8) ;! OFFSET 8
S$$DC (XX,OF9,9) ;! OFFSET 9
S$$DC (XX,O10,10) ;! OFFSET 10
S$$DC (XX,O11,11) ;! OFFSET 11
S$$DC (XX,O12,12) ;! OFFSET 12
S$$DC (XX,O13,13) ;! OFFSET 13
S$$DC (XX,O14,14) ;! OFFSET 14
S$$DC (XX,O15,15) ;! OFFSET 15
S$$DC (XX,O16,16) ;! OFFSET 16
S$$DC (XX,O17,17) ;! OFFSET 17
S$$DC (XX,O18,18) ;! OFFSET 18
S$$DC (XX,O19,19) ;! OFFSET 19
S$$DC (XX,O20,20) ;! OFFSET 20
S$$DC (XX,O21,21) ;! OFFSET 21
S$$DC (XX,O22,22) ;! OFFSET 22
;! *********************************************************
;! * 2. DEFINE SIZE, POSITION, COUNT, AND *
;! * MISC. CONSTANTS *
;! *********************************************************
;! DEFINE SIZE CONSTANTS (NUMBER OF BITS)
S$$DC (XX,SW,36) ;! WORD SIZE
S$$DC (XX,SH,18) ;! HALF WORD SIZE
S$$DC (XX,S27,27) ;! 27 BIT FIELD
S$$DC (XX,S23,23) ;! 23 BIT FIELD
S$$DC (XX,S13,13) ;! 13 BIT FIELD
S$$DC (XX,S12,12) ;! 12 BIT FIELD
S$$DC (XX,S9,9) ;! 9 BIT FIELD
S$$DC (XX,S8,8) ;! 8 BIT FIELD
S$$DC (XX,S7,7) ;! 7 BIT FIELD
S$$DC (XX,S6,6) ;! 6 BIT FIELD
S$$DC (XX,S5,5) ;! 5 BIT FIELD
S$$DC (XX,S4,4) ;! 4 BIT FIELD
S$$SC (XX,SID,XX,SH) ;! BID FIELD SIZE IN A FAB, RAB, OR XAB
;! MACRO EXPANDS THE ABOVE TO GIVE: XX$SID==XX$SH
;! BLISS EXPANDS THE ABOVE TO GIVE: BIND XXSID==XXSH;
S$$SC (XX,SLN,XX,SH) ;! BLN FIELD SIZE IN A FAB, RAB, OR XAB
S$$SC (XX,SST,XX,SH) ;! STS FIELD SIZE IN A FAB OR RAB
S$$SC (XX,SSV,XX,SH) ;! STV FIELD SIZE IN A FAB OR RAB
S$$SC (XX,SCT,XX,SW) ;! CTX FIELD SIZE IN A FAB OR RAB
S$$DC (XX,SCO,5) ;! COD FIELD SIZE IN XAB HEADER
;! DEFINE POSITION CONSTANTS (NUMBER OF BITS TO
;! THE RIGHT OF THE FIELD)
S$$DC (XX,PW,0) ;! WORD POSITION
S$$DC (XX,P27,27) ;! 27 BITS REMAINING AT RIGHT
S$$DC (XX,PL,18) ;! LEFT HALF WORD POSITION
S$$DC (XX,P5,5) ;! 5 BITS REMAINING AT RIGHT
S$$DC (XX,P8,8) ;! 8 BITS REMAINING AT RIGHT
S$$DC (XX,P9,9) ;! 9 BITS REMAINING AT RIGHT
S$$DC (XX,P13,13) ;! 13 BITS REMAINING AT RIGHT
S$$DC (XX,P14,14) ;! 14 BITS REMAINING AT RIGHT
S$$DC (XX,PR,0) ;! RIGHT HALF WORD POSITION
S$$DC (XX,P29,29) ;! 29 BITS REMAINING AT RIGHT
S$$DC (XX,P23,23) ;! 23 BITS REMAINING AT RIGHT
S$$DC (XX,P22,22) ;! 22 BITS REMAINING AT RIGHT
S$$DC (XX,P24,24) ;! 24 BITS REMAINING AT RIGHT
S$$DC (XX,P30,30) ;! 30 BITS REMAINING AT RIGHT
S$$SC (XX,PID,XX,PL) ;! BID FIELD POSITION IN A FAB, RAB, OR XAB
S$$SC (XX,PLN,XX,PR) ;! BLN FIELD POSITION IN A FAB, RAB, OR XAB
S$$SC (XX,PST,XX,PL) ;! STS FIELD POSITION IN A FAB OR RAB
S$$SC (XX,PSV,XX,PR) ;! STV FIELD POSITION IN A FAB OR RAB
S$$SC (XX,PCT,XX,PW) ;! CTX FIELD POSITION IN A FAB OR RAB
S$$SC (XX,PCO,XX,PL) ;! COD FIELD POSITION IN XAB HEADER
;! COUNT DEFINITIONS
S$$DC (XX,C0,0) ;! COUNT = 0 (FIELD IS NOT AN ARRAY)
S$$DC (XX,C8,8) ;! COUNT = 8 (FIELD IS AN ARRAY CONTAINING
;! 8 ELEMENTS - USED FOR POS AND SIZ
;! FIELDS IN A XAB)
;! DEFINE MISC. CONSTANTS
S$$DC (XX,YES,1) ;! USED TO INDICATE THAT AN INITIALIZATION
;! MACRO IS DEFINED FOR A FIELD
S$$DC (XX,NO,0) ;! USED TO INDICATE THAT FIELD CANNOT BE
;! SET BY A USER AT COMPILE TIME
S$$DC (X,ZERO,0) ;! DEFAULT VALUE OF 0 (ZERO)
S$$DC (FB,NIL,0) ;! FLAGS OFF FOR FAB
S$$DC (RB,NIL,0) ;! FLAGS OFF FOR RAB
S$$DC (XB,NIL,0) ;! FLAGS OFF FOR XAB
;!*********************************************************
;!* 3. SYMBOL DEFINITIONS FOR FILE ACCESS BLOCK (FAB) *
;!*********************************************************
;! FAC (FILE ACCESS) FIELD
S$$DC (FB,GET,1) ;! GET ACCESS
S$$DC (FB,UPD,2) ;! UPDATE
S$$DC (FB,PUT,4) ;! PUT ACCESS
S$$DC (FB,DEL,8) ;! DELETE
S$$DC (FB,TRN,16) ;! TRUNCATE
S$$SC (FB,IN,FB,GET) ;! INPUT ACCESS
S$$SC (FB,OUT,FB,PUT) ;! OUTPUT ACCESS
;! FOP (FILE OPTIONS) FIELD
S$$BC (FB,WAT,35) ;! WAIT FOR FILE
S$$BC (FB,CIF,34) ;! CREATE FILE ONLY IF NON-EXISTENT
S$$BC (FB,DRJ,33) ;! DON'T RELEASE THE JFN
S$$BC (FB,DFW,32) ;! DEFERRED WRITE TO FILE
S$$BC (FB,SUP,31) ;! SUPERSEDE FILE IF IT EXISTS
;! MACRO-10 EXPANDS THE ABOVE TO GIVE: FB$CIF==1B34
;! BLISS EXPANDS THE ABOVE TO GIVE: BIND FBCIF = 1^(35-34);
;! ORG (FILE ORGANIZATION) FIELD
;! (***NOTE: DO NOT USE 0 AS VALUE FOR FILE ORGANIZATION
S$$DC (FB,SEQ,1) ;! SEQUENTIAL FILE
S$$DC (FB,REL,2) ;! RELATIVE FILE
S$$DC (FB,IDX,3) ;! INDEXED FILE
;! RFM (RECORD FORMAT) FIELD
S$$DC (FB,VAR,0) ;! VARIABLE LENGTH RECORDS
S$$DC (FB,STM,1) ;! STREAM RECORDS
S$$DC (FB,LSA,2) ;! LINE SEQUENCED ASCII RECORDS
S$$DC (FB,FIX,3) ;! FIXED LENGTH RECORDS
;! RAT (RECORD ATTRIBUTES) FIELD
S$$BC (FB,BLK,35) ;! BLOCKED
;! DEV (DEVICE CHARACTERISTICS) FIELD
S$$BC (FB,REC,35) ;! RECORD ORIENTED DEVICE
S$$BC (FB,CCL,34) ;! CARRIAGE CONTROL DEVICE
S$$BC (FB,TRM,33) ;! TERMINAL
S$$BC (FB,MDI,32) ;! MULTIPLE DIRECTORY DEVICE
S$$BC (FB,SQD,31) ;! SEQUENTIAL DEVICE
;! *********************************************************
;! * 4. FAB DEFINITIONS *
;! *********************************************************
;! STRUCTURE OF FILE ACCESS BLOCK:
;! !=====================================!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! STS ! STV !
;! !-------------------------------------!
;! ! CTX !
;! !-------------------------------------!
;! ! IFI ! JFN !
;! !-------------------------------------!
;! ! FAC ! SHR !
;! !-------------------------------------!
;! ! FOP !ORG! BSZ ! BLS !
;! !-------------------------------------!
;! ! FNA !
;! !-------------------------------------!
;! ! RAT ! MRS !
;! !-------------------------------------!
;! ! MRN !
;! !-------------------------------------!
;! ! <UNUSED> ! BKS ! RFM !
;! !-------------------------------------!
;! ! JNL ! XAB !
;! !-------------------------------------!
;! ! DEV ! SDC !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !=====================================!
;! DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET
;! ==>BEGINIMMEDIATE
S$$DC (FA,TYP,1) ;! BLOCK TYPE
S$$DC (FA,LNG,16) ;! BLOCK LENGTH
S$$DC (FA,BSZ,36) ;! DEFAULT BYTE SIZE
;! ==>ENDIMMEDIATE
;! FILE: RMSSYM.MTB (CONTINUED)
;! DEFINE FAB FIELDS
;! ==>BEGINSTRUCTURE(FAB,FALNG)
$$FIELD (F,BID,FA,TYP,OID,SID,PID,NO ,C0) ;! BLOCK TYPE
$$FIELD (F,BLN,FA,LNG,OLN,SLN,PLN,NO ,C0) ;! BLOCK LENGTH
$$FIELD (F,STS,X,ZERO,OST,SST,PST,NO ,C0) ;! STATUS
$$FIELD (F,STV,X,ZERO,OSV,SSV,PSV,NO ,C0) ;! STATUS VALUE
$$FIELD (F,CTX,X,ZERO,OCT,SCT,PCT,YES,C0) ;! USER CONTEXT WORD
$$FIELD (F,IFI,X,ZERO,OF3,SH ,PL ,NO ,C0) ;! INTERNAL FILE ID
$$FIELD (F,JFN,X,ZERO,OF3,SH ,PR ,YES,C0) ;! JFN
$$FIELD (F,FAC,FB,GET,OF4,SH ,PL ,YES,C0) ;! FILE ACCESS
$$FIELD (F,SHR,FB,GET,OF4,SH ,PR ,YES,C0) ;! FILE SHARABILITY
$$FIELD (F,FOP,X,ZERO,OF5,SH ,PL ,YES,C0) ;! FILE OPTIONS
$$FIELD (F,ORG,FB,SEQ,OF5,S4 ,P14,YES,C0) ;! FILE ORGANIZATION
$$FIELD (F,BSZ,FA,BSZ,OF5,S6 ,P8 ,YES,C0) ;! BYTE SIZE
$$FIELD (F,BLS,X,ZERO,OF5,S8 ,PR ,YES,C0) ;! BLOCK SIZE FOR TAPE FILES
$$FIELD (F,FNA,X,ZERO,OF6,SW ,PW ,YES,C0) ;! FILE-NAME ADDRESS
$$FIELD (F,RAT,X,ZERO,OF7,SH ,PL ,YES,C0) ;! RECORD ATTRIBUTES
$$FIELD (F,MRS,X,ZERO,OF7,SH ,PR ,YES,C0) ;! MAXIMUM RECORD SIZE
$$FIELD (F,MRN,X,ZERO,OF8,SW ,PW ,YES,C0) ;! MAXIMUM RECORD NUMBER
$$FIELD (F,RF0,X,ZERO,OF9,S23,P13,NO ,C0) ;! ***RESERVED***
$$FIELD (F,BKS,X,ZERO,OF9,S8 ,P5 ,YES,C0) ;! BUCKET SIZE
$$FIELD (F,RFM,FB,VAR,OF9,S5 ,PR ,YES,C0) ;! RECORD FORMAT
$$FIELD (F,JNL,X,ZERO,O10,SH ,PL ,YES,C0) ;! LOG BLOCK
$$FIELD (F,XAB,X,ZERO,O10,SH ,PR ,YES,C0) ;! XAB POINTER
$$FIELD (F,DEV,X,ZERO,O11,SH ,PL ,NO ,C0) ;! DEVICE CHARACTERISTICS
$$FIELD (F,SDC,X,ZERO,O11,SH ,PR ,NO ,C0) ;! SECONDARY DEVICE CHARACTERISTICS
$$FIELD (F,RF1,X,ZERO,O12,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (F,RF2,X,ZERO,O13,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (F,RF3,X,ZERO,O14,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (F,RF4,X,ZERO,O15,SW ,PW ,NO ,C0) ;! ***RESERVED***
;! ==>ENDSTRUCTURE
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;!*********************************************************
;!* 5. SYMBOL DEFINITIONS FOR RECORD ACCESS BLOCK (RAB) *
;!*********************************************************
;! RAC (RECORD ACCESS) FIELD
;! ==>BEGINCOLLECT(RABRAC,K)
S$$DC (RB,SEQ,0) ;! SEQUENTIAL ACCESS
S$$DC (RB,KEY,1) ;! KEYED ACCESS
S$$DC (RB,RFA,2) ;! RFA
;! ==>ENDCOLLECT
;! ROP (RECORD OPTIONS) FIELD
;! ==>BEGINCOLLECT(RABROP,V)
S$$BC (RB,EOF,35) ;! POSITION FILE TO EOF
S$$BC (RB,FDL,34) ;! FAST DELETE
S$$BC (RB,LOC,33) ;! USE LOCATE MODE ON GET'S
S$$BC (RB,RAH,32) ;! READ AHEAD
S$$BC (RB,LOA,31) ;! FOLLOW LOAD PERCENTAGES
S$$BC (RB,WBH,30) ;! WRITE BEHIND
S$$BC (RB,KGT,29) ;! KEY GREATER THAN
S$$BC (RB,KGE,28) ;! KEY GREATER THAN OR EQUAL TO
S$$BC (RB,PAD,27) ;! USE PAD CHARACTER TO FILL BUFFER
S$$BC (RB,NRP,26) ;! SET NEXT RECORD PTR ON FIND
;! ==>ENDCOLLECT
;! *********************************************************
;! * 6. RAB DEFINITIONS *
;! *********************************************************
;! STRUCTURE OF RECORD ACCESS BLOCK
;! !-------------------------------------!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! STS ! STV !
;! !-------------------------------------!
;! ! CTX !
;! !-------------------------------------!
;! ! ISI ! FAB !
;! !-------------------------------------!
;! ! RAC ! MBF ! ROP !
;! !-------------------------------------!
;! ! UBF !
;! !-------------------------------------!
;! ! RBF !
;! !-------------------------------------!
;! ! RSZ ! USZ !
;! !-------------------------------------!
;! ! RFA !
;! !-------------------------------------!
;! ! KRF ! KSZ ! LSN !
;! !-------------------------------------!
;! ! KBF !
;! !-------------------------------------!
;! ! BKT !
;! !-------------------------------------!
;! ! PAD ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET
;! ==>BEGINIMMEDIATE
S$$DC (RA,TYP,2) ;! BLOCK TYPE
S$$DC (RA,LNG,16) ;! BLOCK LENGTH
;! ==>ENDIMMEDIATE
;! FILE: RMSSYM.MTB (CONTINUED)
;! DEFINE RAB FIELDS
;! ==>BEGINSTRUCTURE(RAB,RALNG)
$$FIELD (R,BID,RA,TYP,OID,SID,PID,NO ,C0) ;! BLOCK TYPE
$$FIELD (R,BLN,RA,LNG,OLN,SLN,PLN,NO ,C0) ;! BLOCK LENGTH
$$FIELD (R,STS,X,ZERO,OST,SST,PST,NO ,C0) ;! STATUS
$$FIELD (R,STV,X,ZERO,OSV,SSV,PSV,NO ,C0) ;! STATUS VALUE
$$FIELD (R,CTX,X,ZERO,OCT,SCT,PCT,YES,C0) ;! USER CONTEXT WORD
$$FIELD (R,ISI,X,ZERO,OF3,SH ,PL ,NO ,C0) ;! INTERNAL STREAM IDENTIFIER
$$FIELD (R,FAB,X,ZERO,OF3,SH ,PR ,YES,C0) ;! ADDRESS OF USER FAB
$$FIELD (R,RAC,RB,SEQ,OF4,S9 ,P27,YES,C0) ;! RECORD ACCESS
$$FIELD (R,MBF,X,ZERO,OF4,S9 ,PL ,YES,C0) ;! MULTI-BUFFER COUNT
$$FIELD (R,ROP,RB,WBH,OF4,SH ,PR ,YES,C0) ;! RECORD OPTIONS
$$FIELD (R,UBF,X,ZERO,OF5,SW ,PW ,YES,C0) ;! USER BUFFER
$$FIELD (R,RBF,X,ZERO,OF6,SW ,PW ,YES,C0) ;! RECORD BUFFER
$$FIELD (R,RSZ,X,ZERO,OF7,SH ,PL ,YES,C0) ;! RECORD SIZE
$$FIELD (R,USZ,X,ZERO,OF7,SH ,PR ,YES,C0) ;! USER BUFFER SIZE
$$FIELD (R,RFA,X,ZERO,OF8,SW ,PW ,NO ,C0) ;! RECORD-FILE ADDRESS
$$FIELD (R,KRF,X,ZERO,OF9,S9 ,P27,YES,C0) ;! KEY OF REFERENCE
$$FIELD (R,KSZ,X,ZERO,OF9,S9 ,PL ,YES,C0) ;! KEY SIZE
$$FIELD (R,LSN,X,ZERO,OF9,SH ,PR ,YES,C0) ;! LINE-SEQUENCE NUMBER
$$FIELD (R,KBF,X,ZERO,O10,SW ,PW ,YES,C0) ;! KEY BUFFER
$$FIELD (R,BKT,X,ZERO,O11,SW ,PW ,NO ,C0) ;! BUCKET HASH CODE
$$FIELD (R,PAD,X,ZERO,O12,S9 ,P27,YES,C0) ;! PAD CHARACTER
$$FIELD (R,RR1,X,ZERO,O12,S27,PR ,NO ,C0) ;! ***RESERVED***
$$FIELD (R,RR2,X,ZERO,O13,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (R,RR3,X,ZERO,O14,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (R,RR4,X,ZERO,O15,SW ,PW ,NO ,C0) ;! ***RESERVED***
;! ==>ENDSTRUCTURE
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;!*********************************************************
;!* 7. SYMBOL DEFINITIONS FOR *
;!* EXTENDED ATTRIBUTES BLOCK (XAB) *
;!*********************************************************
;! COD (XAB TYPE CODE) FIELD
;! ==>BEGINIMMEDIATE
S$$DC (XB,KEY,0) ;! KEY DEFINITION XAB
S$$DC (XB,ALL,1) ;! ALLOCATION DEFINITION XAB
S$$DC (XB,DAT,2) ;! DATE DEFINTION XAB
S$$DC (XB,SUM,3) ;! FILE SUMMARY XAB
S$$SC (XB,MAX,XB,SUM) ;! MAX VALUE FOR XAB TYPE CODE
;! ==>ENDIMMEDIATE
;! DTP (DATE TYPE) FIELD
;! ==>BEGINCOLLECT(XABDTP,K)
S$$DC (XB,STG,0) ;! STRING DATA-TYPE
S$$DC (XB,EBC,1) ;! EBCDIC DATA-TYPE
S$$DC (XB,SIX,2) ;! SIXBIT DATA-TYPE
;! ==>ENDCOLLECTION
;! FLG (FLAG BITS) FIELD
;! ==>BEGINCOLLECT(XABFLG,V)
S$$BC (XB,DUP,35) ;! DUPLICATES ALLOWED
S$$BC (XB,CHG,34) ;! KEYS CAN CHANGE
S$$BC (XB,HSH,33) ;! HASH METHOD OF INDEX ORGANIZATION
;! ==>ENDCOLLECTION
;! *********************************************************
;! * 8. XAB DEFINITIONS *
;! *********************************************************
;! DEFINE NON-ZERO DEFAULTS
;! ==>BEGINIMMEDIATE
S$$DC (XA,TYP,3) ;! BLOCK TYPE CODE FOR XAB
S$$DC (XA,SXKEY,19) ;! SIZE OF KEY XAB
S$$DC (XA,SXK,19) ;! SIZE OF KEY XAB
S$$DC (XA,SXALL,6) ;! SIZE OF ALLOCATION XAB
S$$DC (XA,SXA,6) ;! SIZE OF ALLOCATION XAB
S$$DC (XA,SXDAT,5) ;! SIZE OF DATE XAB
S$$DC (XA,SXD,5) ;! SIZE OF DATE XAB
S$$DC (XA,SXSUM,6) ;! SIZE OF FILE SUMMARY XAB
S$$DC (XA,SXS,6) ;! SIZE OF FILE SUMMARY XAB
S$$DC (XA,SXX,2) ;! SIZE OF COMMON XAB HEADER
S$$SC (XA,LNG,XA,SXKEY) ;! MAXIMUM SIZE FOR AN XAB
;! ==>ENDIMMEDIATE
;! ***************** NOTE *******************
;! WHEN NEW XAB TYPES ARE ADDED,
;! IT IS NECESSARY TO CHANGE THE
;! ..BEG MACRO IN RMSSYM.MPR
;! (MACRO PREFILE).
;! ******************************************
;! DEFINE COMMON HEADER FOR ALL XAB TYPES
;! ==>COMMENT;!
;! ==>COMMENT;! DEFINE COMMON HEADER FOR ALL XAB'S
;! ==>COMMENT;!
;! ==>BEGINTEMPLATE(XAB,2,4)
$$FIELD (X,BID,XA,TYP,OID,SID,PID,NO ,C0) ;! BLOCK TYPE
$$FIELD (X,BLN,X,ZERO,OLN,SLN,PLN,NO ,C0) ;! BLOCK LENGTH
$$FIELD (X,RS1,X,ZERO,OF1,S13,P23,NO ,C0) ;! **RESERVED**
$$FIELD (X,COD,X,ZERO,OCO,SCO,PCO,NO ,C0) ;! CODE OF THIS XAB
$$FIELD (X,NXT,X,ZERO,OF1,SH ,PR ,YES,C0) ;! ADDRESS OF NEXT XAB
;! ==>ENDTEMPLATE
;! DEFINITIONS FOR THE REST OF EACH TYPE OF XAB
;! FILE: RMSSYM.MTB (CONTINUED)
;! STRUCTURE OF DATE XAB
;! !=====================================!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! <UNUSED> ! COD ! NXT !
;! !-------------------------------------!
;! ! CDT !
;! !-------------------------------------!
;! ! RDT !
;! !-------------------------------------!
;! ! EDT !
;! !=====================================!
;! FIELD DEFINITIONS FOR DATE/TIME XAB
;! ==>COMMENT;!
;! ==>COMMENT;! DATE XAB
;! ==>COMMENT;!
;! ==>BEGINTEMPLSTR(XABDAT,XAB,XASXD,XBDAT)
$$FIELD (X,CDT,X,ZERO,OF2,SW ,PW ,NO ,C0) ;! CREATION DATE AND TIME (READ ONLY)
$$FIELD (X,RDT,X,ZERO,OF3,SW ,PW ,NO ,C0) ;! DATE AND TIME OF LAST UPDATE (READ ONLY)
$$FIELD (X,EDT,X,ZERO,OF4,SW ,PW ,YES,C0) ;! DELETION DATE AND TIME
;! ==>ENDTEMPLSTR
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;! FILE: RMSSYM.MTB (CONTINUED)
;! STRUCTURE OF AREA-DEFINITION XAB
;! !=====================================!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! <UNUSED> ! COD ! NXT !
;! !-------------------------------------!
;! ! <UNUSED> ! AID ! BKZ !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !=====================================!
;! FIELD DEFINITIONS FOR AREA-DEFINITION XAB
;! ==>COMMENT;!
;! ==>COMMENT;! AREA ALLOCATION XAB
;! ==>COMMENT;!
;! ==>BEGINTEMPLSTR(XABALL,XAB,XASXA,XBALL)
$$FIELD (X,RS2,X,ZERO,OF2,SH ,PL ,NO ,C0) ;! **RESERVED**
$$FIELD (X,AID,X,ZERO,OF2,S9 ,P9 ,YES,C0) ;! AREA-ID
$$FIELD (X,BKZ,X,ZERO,OF2,S9 ,PR ,YES,C0) ;! BUCKET SIZE OF THIS AREA
$$FIELD (X,RS3,X,ZERO,OF3,SW ,PW ,NO,C0) ;! **RESERVED**
$$FIELD (X,RS4,X,ZERO,OF4,SW ,PW ,NO,C0) ;! **RESERVED**
$$FIELD (X,RS5,X,ZERO,OF5,SW ,PW ,NO,C0) ;! **RESERVED**
;! ==>ENDTEMPLSTR
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;! FILE: RMSSYM.MTB (CONTINUED)
;! STRUCTURE OF KEY DEFINITION XAB
;! !=====================================!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! <UNUSED> ! COD ! NXT !
;! !-------------------------------------!
;! ! <UNUSED> ! DTP ! FLG !
;! !-------------------------------------!
;! ! IAN ! DAN ! LAN ! REF !
;! !-------------------------------------!
;! ! IFL ! DFL !
;! !-------------------------------------!
;! ! KNM !
;! !-------------------------------------!
;! ! <RESERVED> !
;! !-------------------------------------!
;! ! <RESERVED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! POS0 ! SIZ0 !
;! !-------------------------------------!
;! ! POS1 ! SIZ1 !
;! !-------------------------------------!
;! ! POS2 ! SIZ2 !
;! !-------------------------------------!
;! ! POS3 ! SIZ3 !
;! !-------------------------------------!
;! ! POS4 ! SIZ4 !
;! !-------------------------------------!
;! ! POS5 ! SIZ5 !
;! !-------------------------------------!
;! ! POS6 ! SIZ6 !
;! !-------------------------------------!
;! ! POS7 ! SIZ7 !
;! !=====================================!
;! FILE: RMSSYM.MTB (CONTINUED)
;! FIELD DEFINITIONS OF KEY DEFINITION XAB
;! ==>COMMENT;!
;! ==>COMMENT;! KEY DEFINITION XAB
;! ==>COMMENT;!
;! ==>BEGINTEMPLSTR(XABKEY,XAB,XASXK,XBKEY)
$$FIELD (X,RX0,X,ZERO,OF2,S12,P24,NO ,C0) ;! ***RESERVED***
$$FIELD (X,DTP,X,ZERO,OF2,S6 ,PL ,YES,C0) ;! DATA TYPE
$$FIELD (X,FLG,X,ZERO,OF2,SH ,PR ,YES,C0) ;! FLAG BITS
$$FIELD (X,IAN,X,ZERO,OF3,S9 ,P27,YES,C0) ;! INDEX-AREA NUMBER
$$FIELD (X,DAN,X,ZERO,OF3,S9 ,PL ,YES,C0) ;! DATA-AREA NUMBER
$$FIELD (X,LAN,X,ZERO,OF3,S9 ,P9 ,YES,C0) ;! LOWEST-INDEX AREA NUMBER
$$FIELD (X,REF,X,ZERO,OF3,S9 ,PR ,YES,C0) ;! KEY OF REFERENCE
$$FIELD (X,IFL,X,ZERO,OF4,SH ,PL ,YES,C0) ;! INDEX FILL OFFSET
$$FIELD (X,DFL,X,ZERO,OF4,SH ,PR ,YES,C0) ;! DATA FILL OFFSET
$$FIELD (X,KNM,X,ZERO,OF5,SW ,PW ,YES,C0) ;! KEY NAME ADDRESS
$$FIELD (X,RX1,X,ZERO,OF6,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (X,RX2,X,ZERO,OF7,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (X,RX3,X,ZERO,OF8,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (X,RX4,X,ZERO,OF9,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (X,RX5,X,ZERO,O10,SW ,PW ,NO ,C0) ;! ***RESERVED***
$$FIELD (X,POS,X,ZERO,O11,SH ,PL ,YES,C0) ;! KEY POSITION (ARRAY)
$$FIELD (X,PS0,X,ZERO,O11,SH ,PL ,YES,C0)
$$FIELD (X,PS1,X,ZERO,O12,SH ,PL ,YES,C0)
$$FIELD (X,PS2,X,ZERO,O13,SH ,PL ,YES,C0)
$$FIELD (X,PS3,X,ZERO,O14,SH ,PL ,YES,C0)
$$FIELD (X,PS4,X,ZERO,O15,SH ,PL ,YES,C0)
$$FIELD (X,PS5,X,ZERO,O16,SH ,PL ,YES,C0)
$$FIELD (X,PS6,X,ZERO,O17,SH ,PL ,YES,C0)
$$FIELD (X,PS7,X,ZERO,O18,SH ,PL ,YES,C0)
$$FIELD (X,SIZ,X,ZERO,O11,SH ,PR ,YES,C0) ;! KEY SIZE (ARRAY)
$$FIELD (X,SZ0,X,ZERO,O11,SH ,PR ,YES,C0)
$$FIELD (X,SZ1,X,ZERO,O12,SH ,PR ,YES,C0)
$$FIELD (X,SZ2,X,ZERO,O13,SH ,PR ,YES,C0)
$$FIELD (X,SZ3,X,ZERO,O14,SH ,PR ,YES,C0)
$$FIELD (X,SZ4,X,ZERO,O15,SH ,PR ,YES,C0)
$$FIELD (X,SZ5,X,ZERO,O16,SH ,PR ,YES,C0)
$$FIELD (X,SZ6,X,ZERO,O17,SH ,PR ,YES,C0)
$$FIELD (X,SZ7,X,ZERO,O18,SH ,PR ,YES,C0)
;! ==>ENDTEMPLSTR
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;! FILE: RMSSYM.MTB (CONTINUED)
;! STRUCTURE OF FILE SUMMARY XAB
;! !=====================================!
;! ! BID ! BLN !
;! !-------------------------------------!
;! ! <UNUSED> ! COD ! NXT !
;! !-------------------------------------!
;! ! <UNUSED> ! NOK ! NOA !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !-------------------------------------!
;! ! <UNUSED> !
;! !=====================================!
;! FIELD DEFINITIONS FOR FILE SUMMARY XAB
;! ==>COMMENT;!
;! ==>COMMENT;! FILE SUMMARY XAB
;! ==>COMMENT;!
;! ==>BEGINTEMPLSTR(XABSUM,XAB,XASXS,XBSUM)
$$FIELD (X,RS6,X,ZERO,OF2,SH ,PL ,NO ,C0) ;! **RESERVED**
$$FIELD (X,NOK,X,ZERO,OF2,S9 ,P9 ,NO ,C0) ;! NUMBER OF KEYS
$$FIELD (X,NOA,X,ZERO,OF2,S9 ,PR ,NO ,C0) ;! NUMBER OF AREAS
$$FIELD (X,RS7,X,ZERO,OF3,SW ,PW ,NO ,C0) ;! **RESERVED**
$$FIELD (X,RS8,X,ZERO,OF4,SW ,PW ,NO ,C0) ;! **RESERVED**
$$FIELD (X,RS9,X,ZERO,OF5,SW ,PW ,NO ,C0) ;! **RESERVED**
;! ==>ENDTEMPLSTR
;! ^ ^ ^ ^ ^ ^ ^ ^ ^
; ! ! ! ! ! ! ! ! !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
; ! ! ! ! ! ! ! !_____ASNFLG (IF NO THEN USER CAN'T
; ! ! ! ! ! ! ! INITIALIZE AT COMPILE TIME)
; ! ! ! ! ! ! !_____POSITION (NO. BITS AT RIGHT OF FIELD)
; ! ! ! ! ! !_____SIZE OF FIELD IN BITS
; ! ! ! ! !_____OFFSET INTO THE BLOCK
; ! ! ! !_____2ND HALF OF DEFAULT VALUE SYMBOL
; ! ! !_____1ST HALF OF DEFAULT VALUE SYMBOL
; ! ! IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT
; ! ! VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
; ! !_____FIELD NAME
; !_____BLOCK TYPE PREFIX
;! *********************************************************
;! * 9. SYMBOL DEFINITIONS FOR DEBUG MACRO *
;! *********************************************************
S$$BC (DB,TRC,35) ;! TRACE ROUTINE ENTRY
S$$BC (DB,ERR,34) ;! TRACE USER ERRORS
S$$BC (DB,RTR,33) ;! TRACE ROUTINE EXECUTION
S$$BC (DB,LOC,32) ;! TRACE LOCAL VARIABLES
S$$BC (DB,BLK,31) ;! DUMP RMS-20 CONTROL BLOCKS
S$$BC (DB,LCK,30) ;! PRINT TRACE OF RECORD LOCKS
S$$BC (DB,IOT,29) ;! TRACE I/O PAGE ACTIVITY
S$$BC (DB,ENT,28) ;! TRACE RMS-20 ENTRY (USER CALLS)
;! ALL PRIMARY SYMBOLS HAVE BEEN DEFINED NOW, SO DEF DEPENDENT SYMS
;!
$$SYNM
;! *********************************************************
;! * 10. DEFINE RUN TIME OPERATION VERBS *
;! *********************************************************
;! THE CALLING CONVENTION IS:
;! PTR TO XAB/FAB/RAB IN AC1
;! AC1-AC4 NOT PRESERVED, ALL OTHER AC'S PRESERVED
;! JSYS IS DONE ON 20. PUSHJ TO ABSOLUTE LOC DONE ON 10.
;! RMS EXAMINES FOR ERCAL/ERJMP FOLLOWING CALLING LOC.
;!
;! THIS GROUP OF MACROS IS USED IN THE FOLLOWING WAYS:
;!
;! 1. HERE, TO GENERATE THE APPROPRIATE RUN-TIME MACROS
;! 2. IN THE RMS-20 DISPATCHER, TO GENERATE A DISPATCH TABLE
;! AND ENTRY ADDRESSES FOR PUSHJ INTERFACE
;!
;! FOR THE BELOW TO WORK, $$VINI, $$VERB, AND $$VEND MUST BE
;! DEFINED IN RMSSYM.BPR AND RMSSYM.MPR
;! CREATE THE $XXXX MACROS
$$VINI
$$VERB (OPEN)
$$VERB (CLOSE)
$$VERB (GET)
$$VERB (PUT)
$$VERB (UPDATE)
$$VERB (DELETE)
$$VERB (FIND)
$$VERB (TRUNCATE)
$$VERB (CONNECT)
$$VERB (DISCONNECT)
$$VERB (CREATE)
$$VERB (DEBUG)
$$VERB (RELEASE)
$$VERB (FLUSH)
$$VERB (MESSAGE)
$$VERB (NOMESSAGE)
$$VERB (DISPLAY)
$$VERB (ERASE)
$$VERB (FREE)
$$VERB (UTLINT)
$$VEND
;! *********************************************************
;! * 11. DEFINE RMS STATUS CODES *
;! *********************************************************
;! SUCCESS CODES FOR RMS-20
$$SUC (SU$SUC,<%(,OPERATION WAS SUCCESFUL,)%>)
$$SUC (SU$DUP,<%(,DUPLICATE KEY WAS FOUND,)%>)
$$SUC (SU$IDX,<%(,AN INDEX UPDATE ERROR OCCURRED,)%>)
$$SUC (SU$RRV,<%(,ONE OR MORE RRVs COULD NOT BE UPDATED,)%>)
$$SUC (SU$REO,<%(,FILE SHOULD BE RE-ORGANIZED,)%>)
$$MAXC(SU)
;! RMS-20 ERROR CODES
$$UERR (ER$AID,<%(,BAD AID VALUE,)%>)
$$UERR (ER$ALQ,<%(,ALLOCATION QUANTITY INCORRECT,)%>)
$$UERR (ER$ANI,<%(,NOT ANSI 'D' FORMAT,)%>)
$$UERR (ER$BKS,<%(,BAD BUCKET SIZE,)%>)
$$UERR (ER$BKZ,<%(,'BKZ' FIELD INVALID IN XAB,)%>)
$$UERR (ER$BLN,<%(,BAD BLOCK LENGTH,)%>)
$$UERR (ER$BSZ,<%(,BAD BYTE SIZE,)%>)
$$UERR (ER$BUG,<%(,INTERNAL BUG FOUND IN RMS-20,)%>)
$$UERR (ER$CCF,<%(,CANNOT CLOSE FILE,)%>)
$$UERR (ER$CCR,<%(,CANNOT CONNECT RAB,)%>)
$$UERR (ER$CDR,<%(,CANNOT DISCONNECT RAB,)%>)
$$UERR (ER$CEF,<%(,CANNOT $ERASE FILE,)%>)
$$UERR (ER$CGJ,<%(,CANNOT GET JFN FOR FILE,)%>)
$$UERR (ER$CHG,<%(,KEY VALUE CANNOT CHANGE,)%>)
$$UERR (ER$COD,<%(,BAD COD VALUE IN AN XAB,)%>)
$$UERR (ER$COF,<%(,CANNOT OPEN FILE,)%>)
$$UERR (ER$CUR,<%(,NO CURRENT RECORD,)%>)
$$UERR (ER$DAN,<%(,BAD DATA-AREA NUMBER,)%>)
$$UERR (ER$DEL,<%(,RECORD HAS BEEN DELETED,)%>)
$$UERR (ER$DEV,<%(,ILLEGAL DEVICE,)%>)
$$UERR (ER$DFL,<%(,BAD DATA-FILL PERCENTAGE VALUE,)%>)
$$UERR (ER$DLK,<%(,DEADLOCK CONDITION DETECTED,)%>)
$$UERR (ER$DME,<%(,DYNAMIC MEMORY EXHAUSTED,)%>)
$$UERR (ER$DTP,<%(,BAD DATA-TYPE IN XAB,)%>)
$$UERR (ER$DUP,<%(,DUPLICATE KEY EXISTS,)%>)
$$UERR (ER$EDQ,<%(,UNEXPECTED ENQUE/DEQUE ERROR,)%>)
$$UERR (ER$EOF,<%(,END OF FILE,)%>)
$$UERR (ER$FAB,<%(,BLOCK IS NOT A VALID FAB,)%>)
$$UERR (ER$FAC,<%(,BAD FILE ACCESS VALUE,)%>)
$$UERR (ER$FEX,<%(,FILE ALREADY EXISTS,)%>)
$$UERR (ER$FLG,<%(,BAD XAB FLAG COMBINATION,)%>)
$$UERR (ER$FLK,<%(,FILE ALREADY LOCKED BY SOMEONE ELSE,)%>)
$$UERR (ER$FNA,<%(,BAD FNA VALUE,)%>)
$$UERR (ER$FNC,<%(,FILE NOT CLOSED,)%>)
$$UERR (ER$FNF,<%(,FILE NOT FOUND,)%>)
$$UERR (ER$FOP,<%(,BAD FILE OPTIONS,)%>)
$$UERR (ER$FSZ,<%(,INVALID HEADER SIZE FOR VFC-FILE,)%>)
$$UERR (ER$FUL,<%(,FILE FULL,)%>)
$$UERR (ER$IAL,<%(,INVALID ARGUMENT LIST,)%>)
$$UERR (ER$IAN,<%(,BAD INDEX-AREA NUMBER,)%>)
$$UERR (ER$IBC,<%(,ILLEGAL BLOCK MODE CONNECTION,)%>)
$$UERR (ER$IBO,<%(,ILLEGAL BLOCK MODE OPERATION,)%>)
$$UERR (ER$IBS,<%(,ILLEGAL BLOCK MODE SHARING,)%>)
$$UERR (ER$IFI,<%(,BAD IFI VALUE,)%>)
$$UERR (ER$IFL,<%(,BAD INDEX FILL PERCENTAGE,)%>)
$$UERR (ER$IMX,<%(,ILLEGAL MULTIPLE XABs,)%>)
$$UERR (ER$IOP,<%(,INVALID OPERATION ATTEMPTED,)%>)
$$UERR (ER$IRC,<%(,ILLEGAL RECORD ENCOUNTERED,)%>)
$$UERR (ER$ISI,<%(,BAD ISI VALUE,)%>)
$$UERR (ER$JFN,<%(,BAD JFN VALUE,)%>)
$$UERR (ER$KBF,<%(,BAD KBF VALUE,)%>)
$$UERR (ER$KEY,<%(,BAD RECORD KEY,)%>)
$$UERR (ER$KRF,<%(,BAD KEY OF REFERENCE VALUE,)%>)
$$UERR (ER$KSZ,<%(,BAD KEY SIZE,)%>)
$$UERR (ER$LSN,<%(,BAD LINE-SEQUENCE NUMBER,)%>)
$$UERR (ER$MRN,<%(,BAD MRN VALUE,)%>)
$$UERR (ER$MRS,<%(,BAD MRS VALUE,)%>)
$$UERR (ER$NEF,<%(,NOT POSITIONED AT EOF,)%>)
$$UERR (ER$NLG,<%(,LOG FILE NOT ACTIVE,)%>)
$$UERR (ER$NPK,<%(,INDEXED FILE - NO PRIMARY KEY DEFINED,)%>)
$$UERR (ER$NXT,<%(, INVALID 'NXT' FIELD IN AN XAB,)%>)
$$UERR (ER$ORD,<%(,XABs ARE NOT IN CORRECT ORDER,)%>)
$$UERR (ER$ORG,<%(,BAD FILE ORGANIZATION VALUE,)%>)
$$UERR (ER$PEF,<%(,CANNOT POSITION TO END-OF-FILE,)%>)
$$UERR (ER$PLG,<%(,ERROR DETECTED IN FILEs PROLOGUE,)%>)
$$UERR (ER$POS,<%(,BAD KEY POSITION VALUE,)%>)
$$UERR (ER$PRV,<%(,PRIVELEGE VIOLATION,)%>)
$$UERR (ER$QPE,<%(,QUIET POINT ENABLED,)%>)
$$UERR (ER$RAB,<%(,BLOCK IS NOT A VALID RAB,)%>)
$$UERR (ER$RAC,<%(,BAD RECORD ACCESS VALUE,)%>)
$$UERR (ER$RAT,<%(,BAD RECORD ATTRIBUTES,)%>)
$$UERR (ER$RBF,<%(,INVALID RECORD BUFFER ADDRESS,)%>)
$$UERR (ER$REF,<%(,BAD KEY REFERENCE (REF) VALUE,)%>)
$$UERR (ER$RER,<%(,FILE PROCESSOR READ ERROR,)%>)
$$UERR (ER$REX,<%(,RECORD ALREADY EXISTS,)%>)
$$UERR (ER$RFA,<%(,BAD RFA VALUE,)%>)
$$UERR (ER$RFM,<%(,BAD RECORD FORMAT,)%>)
$$UERR (ER$RLK,<%(,RECORD ALREADY LOCKED BY SOMEONE ELSE,)%>)
$$UERR (ER$RNF,<%(,RECORD NOT FOUND,)%>)
$$UERR (ER$RNL,<%(,RECORD NOT LOCKED,)%>)
$$UERR (ER$ROP,<%(,BAD RECORD OPTIONS,)%>)
$$UERR (ER$RRV,<%(,INVALID RRV RECORD FOUND,)%>)
$$UERR (ER$RSA,<%(,RECORD STREAM ACTIVE,)%>)
$$UERR (ER$RSD,<%(,RECORD SIZE DISCREPANCY,)%>)
$$UERR (ER$RSZ,<%(,BAD RECORD SIZE VALUE,)%>)
$$UERR (ER$RTB,<%(,RECORD TOO BIG,)%>)
$$UERR (ER$SEQ,<%(,KEY VALUE NOT IN SEQUENTIAL ORDER,)%>)
$$UERR (ER$SIZ,<%(,'SIZ' FIELD IN XAB INVALID,)%>)
$$UERR (ER$TRE,<%(,INDEX TREE ERROR DETECTED,)%>)
$$UERR (ER$TRU,<%(,CANNOT TRUNCATE TO THIS FILE,)%>)
$$UERR (ER$UBF,<%(,BAD BUFFER ADDRESS,)%>)
$$UERR (ER$UDF,<%(,FILE IS IN UNDEFINED STATE,)%>)
$$UERR (ER$VER,<%(,ERROR IN VERSION NUMBER,)%>)
$$UERR (ER$WER,<%(,FILE PROCESSOR WRITE ERROR,)%>)
$$UERR (ER$XAB,<%(,NOT A VALID XAB,)%>)
$$UERR (ER$XCL,<%(,FILE MUST BE OPEN IN EXCLUSIVE ACCESS,)%>)
$$UERR (ER$FSI,<%(,FILE SPEC HAS INVALID FORMAT,)%>)
$$MAXC(ER)
;! RMS-20 FILE CONSISTENCY ERROR CODES
$$FERR (FE$BEM,<%(,EMPTY INDEX BUCKET DETECTED,)%>)
$$FERR (FE$BFC,<%(,BAD FILE CLASS FOUND IN FILE FDB,)%>)
$$FERR (FE$BHE,<%(,BUCKET HEADER HAS BAD FORMAT,)%>)
$$FERR (FE$BIR,<%(,BAD INDEX RECORD DETECTED,)%>)
$$FERR (FE$ENF,<%(,END BLOCK NOT FOUND IN FILE PROLOGUE,)%>)
$$FERR (FE$EOP,<%(,END-OF-PAGE MARKER DETECTED WITHOUT FB$BLK ATTRIBUTE,)%>)
$$FERR (FE$HDR,<%(,INVALID RECORD HEADER FOUND,)%>)
$$FERR (FE$HNF,<%(,FILE PROLOGUE HEADER NOT FOUND,)%>)
$$FERR (FE$NOA,<%(,NO AREA DESCRIPTORS FOUND IN FILE,)%>)
$$FERR (FE$NOI,<%(,NO INDEX DESCRIPTORS FOUND IN FILE,)%>)
$$FERR (FE$NOR,<%(,NO RRV RECORD FOUND FOR RECORD,)%>)
$$FERR (FE$NOS,<%(,NO RECORD POINTER FOUND IN SECONDARY INDEX,)%>)
$$FERR (FE$NOU,<%(,NO DATA RECORD FOUND FOR RFA IN SECONDARY INDEX,)%>)
$$FERR (FE$PGO,<%(,A FILE PAGE SHOULD DOES NOT EXIST,)%>)
$$FERR (FE$RSZ,<%(,BAD RECORD-SIZE VALUE DETECTED,)%>)
$$FERR (FE$UNL,<%(,RECORD SHOULD BE LOCKED, BUT HAS BEEN UNLOCKED,)%>)
$$MAXC(EX)
$$END ;! IN MACRO, GENERATES AND END STATEMENT