COMKCRM 
COMMON
          CTEXT  COMKCRM - *CRM* DEFINITIONS FOR *TAF*. 
          SPACE  4,10 
          BASE   DECIMAL
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CRM      SPACE  4,10 
**        CRM - *CRM* DEFINITIONS FOR *TAF*.
*         G. W. PROPP.  78/08/04. 
*         L. E. LOVETT.      80/04/01.
          TITLE  *CRM* DEFINITIONS FOR *TAF*. 
          SPACE  4,10 
**        THIS DECK GIVES THE CODES FOR TASK AND *TAF* REQUESTS OF
*         THE ADVANCED ACCESS METHODS INTERFACE *AAMI* TO *CRM*.
*         THE REQUEST CODES ARE PASSED TO THE INTERFACE VIA THE 
*         TASK RA REQUEST AND THE *TAF* INPUT QUEUE.
  
  
          TITLE  TASK REQUEST DEFINITIONS.
 TPAR     SPACE  4,10 
**        TPAR - TABLE OF PARAMETERS FOR *TAF CRM* REQUESTS.
  
  
 TPAR     BSS    0           TABLE OF REQUEST PARAMETERS
          LOC    0
 TPBG     BSS    0           BEGINNING OF TABLE RELATIVE TO ZERO
 TPCI     BSS    0           USER ID FOR DBEGIN, DBSTAT 
 TPSX     BSS    0           *TAF CRM* STATUS FOR DBCOMIT, DBFREE 
 TPOF     BSS    0           FUNCTION CODE FOR CRMSTAT COMMAND
 TPFN     BSS    1           FILE NAME OR DATA BASE NAME
 TPDCL    EQU    *-TPBG      LENGTH OF TABLE FOR DBCOMIT
 TPDFL    EQU    *-TPBG      LENGTH OF TABLE FOR DBFREE 
  
 TPTS     BSS    1           *TAF CRM* STATUS 
 TPLFL    EQU    *-TPBG      LENGTH OF TABLE FOR LOCK FILE
 TPUFL    EQU    *-TPBG      LENGTH OF TABLE FOR UNLOCK FILE
 TPDBL    EQU    *-TPBG      LENGTH OF TABLE FOR DBEGIN 
 TPUPL    EQU    *-TPBG      LENGTH OF TABLE FOR DBUP 
 TPDNL    EQU    *-TPBG      LENGTH OF TABLE FOR DBDOWN 
 TPTRL    EQU    *-TPBG      LENGTH OF TABLE FOR TRMREC 
  
 TPBS     BSS    0           BATCH JOB SEQUENCE NUMBER FOR CRMSIC 
 TPPI     BSS    0           PREVIOUS BEGIN ID FOR DBSTAT REQUEST 
 TPBA     BSS    0           FWA OF BUFFER FOR CRMSTAT
 TPKL     BSS    0           KEY AREA FOR LOCK REQUESTS 
 TPCS     BSS    1           *CRM* STATUS 
 TPRPL    EQU    *-TPBG      LENGTH OF TABLE FOR REWIND 
 TPCLL    EQU    *-TPBG      LENGTH OF TABLE FOR CLOSE
 TPOPL    EQU    *-TPBG      LENGTH OF TABLE FOR OPEN 
 TPRIL    EQU    *-TPBG      LENGTH OF TABLE FOR RSTDBI 
 TPDSL    EQU    *-TPBG      LENGTH OF TABLE FOR DBSTAT 
  
 TPFC     BSS    0           FUNCTION CODE FOR CRMSIC 
 TPBL     BSS    0           BUFFER LENGTH FOR CRMSTAT
 TPCT     BSS    0           POSITION COUNT FOR SKIP REQUESTS 
 TPDK     BSS    0           KEY AREA OF DELETE REQUEST 
 TPPL     BSS    0           KEY POSITION FOR LOCK REQUESTS 
 TPSR     BSS    0           RELATION PARAMETER FOR START 
 TPWS     BSS    1           WORKING STORAGE FOR RECORD 
 TPSIL    EQU    *-TPBG      LENGTH OF TABLE FOR CRMSIC 
 TPOSL    EQU    *-TPBG      LENGTH OF TABLE FOR CRMSTAT
  
 TPDP     BSS    0           KEY POSITION  FOR DELETE REQUEST 
 TPLCL    EQU    *-TPBG      LENGTH OF TABLE FOR LOCK RECORD
 TPUCL    EQU    *-TPBG      LENGTH OF TABLE FOR UNLOCK RECORD
 TPSBL    EQU    *-TPBG      LENGTH OF TABLE FOR SKIP BACKWARD
 TPSFL    EQU    *-TPBG      LENGTH OF TABLE FOR SKIP FORWARD 
  
 TPSK     BSS    0           KEY AREA FOR START 
 TPWR     BSS    0           RECORD LENGTH FOR WRITE AND REWRITE
 TPWL     BSS    1           WORKING STORAGE LENGTH 
 TPDEL    EQU    *-TPBG      LENGTH OF TABLE FOR DELETE 
  
 TPSP     BSS    0           KEY POSITION FOR START 
 TPWK     BSS    0           KEY AREA FOR WRITE AND REWRITE 
 TPRL     BSS    1           RECORD LENGTH
 TPSTF    EQU    *-TPBG      NUMBER OF REQUIRED PARAMETERS FOR START
  
 TPWP     BSS    0           KEY POSITION FOR WRITE AND REWRITE 
 TPKM     BSS    0           KEY RETURN AREA FOR READ MAJOR KEY 
 TPKW     BSS    0           KEY RETURN AREA FOR READ NEXT
 TPSF     BSS    0           KEY STATUS FOR START 
 TPKA     BSS    1           KEY AREA 
 TPRWL    EQU    *-TPBG      LENGTH OF TABLE FOR REWRITE
 TPWRF    EQU    *-TPBG      NUMBER OF REQUIRED PARAMETERS FOR WRITE
  
 TPLM     BSS    0           KEY RETURN AREA LENGTH FOR READ MAJOR KEY
 TPLN     BSS    0           KEY RETURN AREA LENGTH FOR READ NEXT 
 TPWX     BSS    0           KEY RETURN AREA FOR WRITE
 TPSO     BSS    0           ALTERNATE KEY ORDINAL FOR START
 TPKP     BSS    1           KEY POSITION 
 TPRDF    EQU    *-TPBG      NUMBER OF REQUIRED PARAMETERS FOR READ 
 TPRLF    EQU    *-TPBG      NUMBER OF REQUIRED PARAMETERS FOR READL
 TPRNF    EQU    *-TPBG      REQUIRED PARAMETERS FOR READ NEXT
 TPROF    EQU    *-TPBG      REQUIRED PARAMETERS FOR READ NEXT LOCK 
  
 TPSM     BSS    0           MAJOR KEY LENGTH FOR START 
 TPWY     BSS    0           KEY RETURN AREA LENGTH FOR WRITE 
 TPYM     BSS    1           KEY AREA FOR READ MAJOR KEY
 TPWRL    EQU    *-TPBG      LENGTH OF TABLE FOR WRITE
 TPROL    EQU    *-TPBG      LENGTH OF TABLE FOR READ NEXT WITH LOCK
 TPSTL    EQU    *-TPBG      LENGTH OF TABLE FOR START
  
 TPLA     BSS    0           LOCK STATUS FOR READ NEXT
 TPRO     BSS    0           ALTERNATE KEY ORDINAL FOR READ 
 TPLO     BSS    0           ALTERNATE KEY ORDINAL FOR READ LOCK
 TPPM     BSS    1           KEY POSITION FOR READ MAJOR KEY
 TPRNL    EQU    *-TPBG      LENGTH OF TABLE FOR READ NEXT
  
 TPRK     BSS    0           KEY RETURN AREA FOR READ 
 TPMM     BSS    1           MAJOR KEY LENGTH FOR READ MAJOR KEY
 TPRMF    EQU    *-TPBG      REQUIRED PARAMETERS FOR READ MAJOR KEY 
  
 TPRR     BSS    0           KEY RETURN AREA LENGTH FOR READ
 TPMS     BSS    1           KEY STATUS FOR READM 
 TPRLL    EQU    *-TPBG      LENGTH OF TABLE FOR READ WITH LOCK 
  
 TPLB     BSS    0           LOCK STATUS FOR READ 
 TPMO     BSS    1           ALTERNATE KEY ORDINAL FOR READM
 TPRDL    EQU    *-TPBG      LENGTH OF TABLE FOR READ 
  
 TPLC     BSS    1           LOCK STATUS FOR READ MAJOR 
 TPRML    EQU    *-TPBG      LENGTH OF TABLE FOR READ MAJOR KEY 
 TPRA     BSS    1           TASK RA
 TPFL     BSS    1           TASK FL
          LOC    *O 
 TPARL    EQU    *-TPAR      LENGHT OF PARAMETER TABLE
 TREQ     SPACE  4,10 
**        TREQ - TABLE OF REQUESTS. 
  
*         THE FOLLOWING REQUESTS CAN BE MADE BY TASKS.
  
 TREQ     BSS    0           TABLE OF REQUESTS
          LOC    0
 TRCL     BSS    1           CLOSE FILE FOR TASK
 TRDE     BSS    1           DELETE RECORD
 TRLC     BSS    1           LOCK RECORD
 TRLF     BSS    1           LOCK FILE
 TROP     BSS    1           OPEN FILE FOR TASK 
 TRRD     BSS    1           READ WITH NO LOCK
 TRRL     BSS    1           READ WITH LOCK 
 TRRM     BSS    1           READ MAJOR KEY 
 TRRN     BSS    1           READ NEXT WITH NO LOCK 
 TRRO     BSS    1           READ NEXT WITH LOCK
 TRRP     BSS    1           REWIND FILE
 TRRW     BSS    1           REWRITE RECORD 
 TRSB     BSS    1           SKIP FILE BACKWARD 
 TRSF     BSS    1           SKIP FILE FORWARD
 TRUC     BSS    1           UNLOCK RECORD
 TRUF     BSS    1           UNLOCK FILE
 TRWR     BSS    1           WRITE RECORD 
 TRST     BSS    1           SET STARTING POSITION
 .TRDBRL  EQU    *           FIRST DATA BASE AUTO-RECOVERY REQUEST
 TRDB     BSS    1           DBEGIN  - AUTO RECOVERY REQUEST
 TRDC     BSS    1           DBCOMIT - AUTO RECOVERY REQUEST
 TRDF     BSS    1           DBFREE  - AUTO RECOVERY REQUEST
 TRDS     BSS    1           DBSTAT  - AUTO RECOVERY REQUEST
.TREQL    EQU    *           LENGTH OF TABLE FOR USER TASK REQUESTS 
 TRDN     BSS    1           DBDOWN  - OPERATOR COMMAND 
 TRUP     BSS    1           DBUP    - OPERATOR COMMAND 
 TROS     BSS    1           CRMSTAT - OPERATOR COMMAND 
 TRSI     BSS    1           CRMSIC  - BATCH RECOVERY REQUEST 
 TRTR     BSS    1           TRMREC  - TERMINATE RECOVERY 
 TRRI     BSS    1           RSTDBI  - RESTORE DATA BASE ID 
          LOC    *O 
 TREQL    EQU    *-TREQ      TABLE LENGTH 
          SPACE  4,10 
 AAMQFL   EQU    5           INPUT/OUTPUT QUEUE FET LENGTH
 CMMCAP   EQU    35000B      MAXIMUM SPACE FOR CAPSULES PLUS PADDING
 CMMORG   EQU    3000B       MEMORY FOR ADDITIONAL FILE ORGANIZATIONS 
          TITLE  TABLE DEFINITIONS. 
          SPACE  4,10 
**        TABLE DEFINITIONS FOR *TAF CRM*.  THESE DEFINITIONS REQUIRE 
*         *COMKFLD* TO DEFINE THE FIELD MACRO.
          SPACE  4,50 
**        TARF - LONG RECOVERY FILE TABLE.
* 
*         THE AFTER IMAGE RECOVERY FILE TABLE CONTAINS THE *ARF* FET, 
*         THE *ARF* HEADER, AND OTHER PERTINENT INFORMATION ABOUT THE 
*         *ARF*.  THERE IS ONE *TARF* FOR EACH DATA BASE. 
* 
*T  W1    12/,18/ TASQ,30/ TACP 
*T, W2    1/A,1/B,28/,30/ TAIS
*T, W3    42/ TAFF,8/0,10/ TAFC 
*T, W4    42/ TAF1,18/ TAFT 
*T, W5    42/0,18/ TAIN 
*T, W6    42/0,18/ TAOT 
*T, W7    42/0,18/ TALM 
*T, W8    60/0
*T, W9    30/ TARI,1/C,29/ TARR 
*T, W10   24/0,18/ TAIL,18/ TAIB
*T, W11   42/ TAFN,18/ TAST 
*T, W12   36/ TACD,24/
*T, W13   36/ TADD,24/
*T, W14   1/D,5/,30/ TAFL,24/ TABL
* 
*                TASQ - FWA OF *TSEQ* ENTRY RESERVING *TARF*. 
*                TACP - UNUSED PRU COUNT. 
*            A = TADN - *ARF* DOWN IF *TADN* .EQ. 1.
*            B = TAFB - *ARF* BUFFER FLUSHED IF *TAFB* .EQ. 1.
*                TAIS - MAXIMUM AFTER IMAGE RECORD SIZE IN WORDS. 
* FET+0          TAFF - LOCAL FILE ANME, FIRST WORD OF *ARF* FET. 
*                TALP - LAST CHARACTER OF *ARF* NAME. 
*                TALB - LAST BIT OF *ARF* NAME. 
*                TAFC - REQUEST/RETURN CODE.
* FET+1          TAF1 - 42 BITS OF FET+1 = 12/,1/R,1/,1/,1/E,20/,6/L. 
*                       R - SET TO 1 FOR RANDOM PROCESSING. 
*                       E - SET TO 1 FOR USER PROCESSING OF ERRORS. 
*                       L - SET TO 3 FOR 8 WORD FET.
*                TAFT - FIRST.
* FET+2          TAIN - IN. 
* FET+3          TAOT - OUT.
* FET+4          TALM - LIMIT.
* FET+6          TARI - CURRENT RANDOM INDEX. 
*            C = TARW - WRITE IN-PLACE IF *TARW* .EQ. 1.
*                TARR - RELATIVE SECTOR ADDRESS FOR RANDOM I/O. 
* FET+7          TAIL - INDEX LENGTH. 
*                TAIB - FWA OF INDEX BUFFER.
* ARF HEADER+0   TAFN - AFTER IMAGE RECOVERY FILE NAME. 
*                TAST - AFTER IMAGE RECOVERY FILE STATUS. 
* ARF HEADER+1   TACD - AFTER IMAGE RECOVERY FILE CREATION
*                       DATE AND TIME.
* ARF HEADER+2   TADD - DATE ANE TIME *ARF* DUMPED. 
* ARF HEADER+3   TAFL - LENGTH OF *ARF* IN PRU-S (*CRMARFN*). 
*                TABL - MAXIMUM BLOCK LENGTH. 
*            D = TAD1 - FIRST *ARF* DUMP IF *TAD1* .EQ. 1 
  
  
 TASQ     FIELD  0,47,30     FWA OF *TSEQ* ENTRY RESERVING *TARF* 
 TACP     FIELD  0,29,0      UNUSED PRU COUNT 
 TADN     FIELD  1,59,59     *ARF* DOWN IF *TADN* .EQ. 1
 TAFB     FIELD  1,58,58     *ARF* BUFFER FLUSHED IF *TAFB* .EQ. 1
 TAIS     FIELD  1,29,0      MAXIMUM AFTER IMAGE RECORD SIZE IN WORDS 
 TAFF     FIELD  2,59,18     LFN, FIRST WORD OF *ARF* RANDOM FET
 TALP     FIELD  2,23,18     LAST CHARACTER OF *ARF* NAME 
 TALB     FIELD  2,18,18     LAST BIT OF *ARF* NAME 
 TAFC     FIELD  2,9,0       REQUEST/RETURN CODE
 TAF1     FIELD  3,59,18     FET+1 UPPER 42 BITS
 TAFT     FIELD  3,17,0      FIRST
 TAIN     FIELD  4,17,0      IN 
 TAOT     FIELD  5,17,0      OUT
 TALM     FIELD  6,17,0      LIMIT
 TARI     FIELD  8,59,30     CURRENT RANDOM INDEX 
 TARW     FIELD  8,29,29     WRITE IN-PLACE IF *TARW* .EQ. 1
 TARR     FIELD  8,28,0      RELATIVE SECTOR ADDRESS FOR RANDOM WRITE 
 TAIL     FIELD  9,35,18     INDEX LENGTH 
 TAIB     FIELD  9,17,0      FWA OF INDEX BUFFER
 TAFN     FIELD  10,59,18    AFTER IMAGE RECOVERY FILE NAME 
 TAST     FIELD  10,17,0     AFTER IMAGE RECOVERY FILE STATUS 
 TACD     FIELD  11,59,24    *ARF* CREATION DATE AND TIME, PACKED 
 TADD     FIELD  12,59,24    DATE AND TIME *ARF* DUMPED, PACKED 
 TAFL     FIELD  13,53,24    LENGTH OF *ARF* IN PRU-S (CRMARFN) 
 TABL     FIELD  13,23,0     MAXIMUM BLOCK LENGTH 
 TAD1     FIELD  13,59,59    FIRST *ARF* DUMP IF *TAD1* .EQ. 1
 TARFE    EQU    14          LENGTH OF *TARF* ENTRY 
 TAHDL    EQU    4           *ARF* HEADER LENGTH
 TARHL    EQU    6           *ARF* RECORD HEADER LENGTH 
          SPACE  4,45 
**        TDRF - DATA BASE AND RECOVERY FILE TABLE. 
* 
*         THE DATA BASE AND RECOVERY FILE TABLE CONTAINS DATA BASE
*         RELATED INFORMATION AND LINKS TO THE RECOVERY FILES.
*         THERE WILL BE ONE *TDRF* CREATED FOR EACH *BRF* STATEMENT 
*         ENCOUNTERED ON XXJ FILES USED TO INSTALL *CRM* DATA BASES 
*         (ONE *TDRF* PER DATA BASE). 
* 
*T  W1    24/ TDKS,18/ TDNL,18/ TDDL
*T, W2    1/A,1/B,16/ TDFI,24/ TDRS,6/,12/ TDOP 
*T, W3    12/ TDID,6/ TDLP,6/,36/ TDBJ
*T, W4    6/ TDQN,18/ TDQL,18/ TDLL,18/ TDAL
*T, W5    60/ TDBG
*T, W6    60/ TDCM
*T, W7    60/ TDFR
*T, W8    1/C,1/D,1/E,9/,12/ TDIF,18/ TDLD,18/ TDQD 
*T, W9    42/,18/ TDCT
* 
*                TDKS - LARGEST KEY LENGTH IN CHARACTERS. 
*                TDNL - FWA OF FIRST *TLNT* FOR DATA BASE FILE. 
*                TDDL - FWA OF NEXT *TDRF* TABLE. 
*            A = TDSD - DATA BASE IS DOWN IF *TDSD* .EQ. 1. 
*            B = TDSI - DATA BASE IS IDLE IF *TDSI* .EQ. 1. 
*                TDFI - NUMBER OF *FIT* *FWI-S* CHANGED VIA *DLX*.
*                TDRS - MAXIMUM RECORD SIZE IN CHAR-S FOR DATA BASE.
*                TDOP - CURRENT OPEN FILE COUNT.
*                TDID - DATA BASE IDENTIFIER. 
*                TDLP - LAST CHARACTER OF LOCAL *ARF*.
*                TDBJ - OUTSTANDING BATCH JOB SEQUENCE NUMBERS, 
*                       18/ TDJA,18/ TDJB.
*                TDJA - OUTSTANDING BATCH JOB SEQUENCE NUMBER 1.
*                TDJB - OUTSTANDING BATCH JOB SEQUENCE NUMBER 2.
*                TDQN - NUMBER OF *BRF-S* FOR DATA BASE.
*                TDQL - FWA OF FIRST *TBRF* FOR THE DATA BASE.
*                TDLL - FWA OF LAST *TLNT* FOR DATA BASE FILE.
*                TDAL - FWA OF *TARF* FOR DATA BASE.
*                TDBG - NUMBER OF *DBEGIN* REQUESTS PROCESSED FOR DB. 
*                TDCM - NUMBER OF *DBCOMIT* REQUESTS PROCESSED FOR DB.
*                TDFR - NUMBER OF *DBFREE* REQUESTS PROCESSED FOR DB. 
*            C = TDRQ - DATA BASE DOWN TO RECVOER *BRF* IF .EQ. 1.
*            D = TDRL - DATA BASE DOWN TO RECOVER *ARF* IF .EQ. 1.
*            E = TDOD - DATA BASE DOWN BY OPERATOR IF .EQ. 1. 
*                TDIF - COUNT OF IDLED DATA BASE FILES. 
*                TDLD - FWA OF *TLNT* DOWN FOR BATCH RECOVERY.
*                TDQD - FWA OF *TBRF* OF FIRST DOWN *BRF*.
*                TDCT - COUNT OF ACTIVE TRANSACTIONS USING RECOVERY.
  
  
 TDKS     FIELD  0,59,36     LARGEST KEY LENGTH IN CHARACTERS 
 TDNL     FIELD  0,35,18     FWA OF FIRST *TLNT* FOR DB FILE
 TDDL     FIELD  0,17,0      FWA OF NEXT *TDRF* TABLE 
 TDSD     FIELD  1,59,59     DATA BASE DOWN IF *TDSD* .EQ. 1
 TDSI     FIELD  1,58,58     DATA BASE IDLE IF *TDSI* .EQ. 1
 TDFI     FIELD  1,57,42     NUMBER OF *FIT* *FWI-S* CHANGED VIA *DLX*
 TDRS     FIELD  1,41,18     MAX RECORD SIZE IN CHAR-S FOR DATA BASE
 TDOP     FIELD  1,11,0      CURRENT OPEN FILE COUNT
 TDID     FIELD  2,59,48     DATA BASE IDENTIFIER 
 TDLP     FIELD  2,47,42     LAST CHARACTER OF LOCAL *ARF*
 TDLB     FIELD  2,42,42     LAST BIT OF ACTIVE *ARF* NAME (0=01, 1=02) 
 TDBJ     FIELD  2,35,0      DB BATCH RECOVERY JOB SEQUENCE NUMBERS 
 TDJA     FIELD  2,35,18     BATCH JOB SEQUENCE NUMBER 1
 TDJB     FIELD  2,17,0      BATCH JOB SEQUENCE NUMBER 2
 TDQN     FIELD  3,59,54     NUMBER OF *BRF-S* FOR DATA BASE
 TDQL     FIELD  3,53,36     FWA OF FIRST *TBRF* FOR DATA BASE
 TDLL     FIELD  3,35,18     FWA OF LAST *TLNT* FOR DATA BASE FILE
 TDAL     FIELD  3,17,0      FWA OF *TARF* FOR DATA BASE
 TDBG     FIELD  4,59,0      NUMBER OF *DBEGIN* REQUESTS PROCESSED
 TDCM     FIELD  5,59,0      NUMBER OF *DBCOMIT* REQUESTS PROCESSED 
 TDFR     FIELD  6,59,0      NUMBER OF *DBFREE* REQUESTS PROCESSED
 TDRQ     FIELD  7,59,59     DATA BASE DOWN TO RECOVER *BRF*
 TDRL     FIELD  7,58,58     DATA BASE DOWN TO RECOVER *ARF*
 TDOD     FIELD  7,57,57     DATA BASE DOWN BY OPERATOR 
 TDIF     FIELD  7,47,36     COUNT OF IDLED DATA BASE FILES 
 TDLD     FIELD  7,35,18     FWA OF *TLNT* DOWN FOR RECOVERY
 TDQD     FIELD  7,17,0      FWA OF *TBRF* OF FIRST DOWN *BRF*
 TDCT     FIELD  8,17,0      COUNT OF TRANSACTIONS USING RECOVERY 
 TDRFE    EQU    9           LENGTH OF *TDRF* ENTRY 
 TFTS     SPACE  4,10 
**        TFCB - FILE CONTROL TABLE.
*         THE FILE CONTROL TABLE CONTAINS THE *CRM* REQUEST AND 
*         THE FILE INFORMATION TABLE *FIT* FOR A FILE.
* 
*T  W1    1/A,5/,18/ TFLN,18/ TFPT,18/ TFNT 
*T, W2    12/ TFKO,12/ TFSK,18/ TFPF,18/ TFNF 
*T, W3    24/ TFSQ,1/B,5/,6/ TFFC,1/C,5/ TFSC,18/ TFPA
*T, W4    60/ TFFT
*T, W39   60/ TFKY
* 
*            A = TFFI - *FIT* *FWI* CHANGED BY *DLX* IF *TFFI* .EQ. 1.
*                TFLN - FWA OF LOGICAL NAME TABLE.
*                TFPT - FWA OF LAST FILE CONTROL LINK FOR 
*                       TRANSACTION.
*                TFNT - FWA OF NEXT FILE CONTROL LINK FOR 
*                       TRANSACTION.
*                TFKO - KEY ORDINAL FOR CURRENT KEY.
*                TFSK - CURRENT SEEK COUNT. 
*                TFPF - FWA OF LAST FILE CONTROL LINK FOR FILE. 
*                TFNF - FWA OF NEXT FILE CONTROL LINK FOR FILE. 
*            B = TFBF - INTERNAL DBFREE PROCESSING IF *TFBF* .EQ. 1.
*                TFSQ - TRANSACTION SEQUENCE NUMBER.
*                TFFC - FUNCTION CODE OF REQUEST. 
*            C = TFRC - RECALL SELECTED IF *TFRC* .EQ. 1. 
*                TFSC - SUB-CONTROL POINT NUMBER OF REQUEST.
*                TFPA - ADDRESS OF REQUEST PARAMETERS.
*                TFFT - FILE INFORMATION TABLE, *FIT*.
*                       WORDS 4 - 38 CONTAIN THE *FIT*. 
*                TFKY - KEY OF DESIRED RECORD.  THE LENGTH OF THIS
*                       AREA DEPENDS ON KEY SIZE OF FILE. 
  
  
 TFFI     FIELD  0,59,59     *FIT* *FWI* CHANGED BY *DLX* IF .EQ. 1 
 TFLN     FIELD  0,53,36     FWA OF LOGICAL NAME ENTRY
 TFPT     FIELD  0,35,18     FWA OF LAST *TFCB* LINK FOR TRANSACTION
 TFNT     FIELD  0,17,0      FWA OF NEXT *TFCB* LINK FOR TRANSACTION
 TFKO     FIELD  1,59,48     CURRENT ALTERNATE KEY ORDINAL
 TFSK     FIELD  1,47,36     CURRENT SEEK COUNT 
 TFPF     FIELD  1,35,18     FWA OF LAST FILE CONTROL LINK
 TFNF     FIELD  1,17,0      FWA OF NEXT FILE CONTROL LINK
 TFRQ     FIELD  2,59,0      *TAF CRM* REQUEST
 TFSQ     FIELD  2,59,36     TRANSACTION SEQUENCE NUMBER
 TFBF     FIELD  2,35,35     INTERNAL DBFREE IF *TFBF* .EQ. 1 
 TFFC     FIELD  2,29,24     FUNCTION CODE
 TFRC     FIELD  2,23,23     IF *TFRC* .EQ. 1, USE RECALL 
 TFSC     FIELD  2,22,18     SUB-CONTROL POINT NUMBER 
 TFPA     FIELD  2,17,0      FWA OF REQUEST PARAMETERS
 TFFT     FIELD  3,59,0      FIRST WORD OF *FIT*
 TFKY     FIELD  38,59,0     FIRST WORD OF KEY
 TKOK     SPACE  4,10 
**        TKOK - LOCK TABLE.
*         THE LOCK TABLE CONTAINS THE LOCKED FILES AND LOCKED RECORDS.
* 
*T  W1    24/ TKSQ,18/ TKPT,18/ TKNT
*T, W2    1/L,1/B,4/,18/ TKLN,18/ TKPF,18/ TKNF 
*T, W3    60/ TKKY
*                TKSQ - TRANSACTION SEQUENCE NUMBER RESERVING ENTRY.
*                TKPT - FWA OF LAST LOCK LINK FOR TRANSACTION.
*                TKNT - FWA OF NEXT LOCK LINK FOR TRANSACTION.
*                   L - IF FILE IS LOCKED, *L* .EQ. 1.
*            B = TKQR - BEFORE IMAGE WRITTEN TO DISK IF 
*                       *TKQR* .EQ. 1 . 
*                TKLN - FWA OF LOGICAL NAME ENTRY.
*                TKPF - FWA OF LAST LOCK LINK FOR FILE. 
*                TKNF - FWA OF NEXT LOCK LINK FOR FILE. 
*                TKKY - KEY OF LOCKED RECORD.  THE LENGTH OF THIS FIELD 
*                       DEPENDS ON KEY SIZE OF FILE.
  
  
 TKSQ     FIELD  0,59,36     TRANSACTION SEQUENCE FOR LOCK
 TKPT     FIELD  0,35,18     FWA OF LAST TRANSACTION LOCK LINK
 TKNT     FIELD  0,17,0      FWA OF NEXT TRANSACTION LOCK LINK
 TKFK     FIELD  1,59,59     IF FILE LOCK, *TKFK* .EQ. 1
 TKQR     FIELD  1,58,58     *BI* WRITTEN IF *TKQR* .EQ. 1
 TKLN     FIELD  1,53,36     FWA OF LOGICAL NAME TABLE ENTRY
 TKPF     FIELD  1,35,18     FWA OF LAST LOCK LINK FOR FILE 
 TKNF     FIELD  1,17,0      FWA OF NEXT LOCK LINK FOR FILE 
 TKKY     FIELD  2,59,0      KEY OF LOCKED RECORD 
 TLNT     SPACE  4,10 
**        TLNT - LOGICAL NAME TABLE.
*         THE LOGICAL NAME TABLE CONTAINS *CRM* INSTALLED FILES.
* 
* 
*T  W1    42/ TLFN,18/ TLNT 
*T, W2    24/ TLKS,18/0,18/ TLNO
*T, W3    24/ TLRS,18/0,18/ TLNF
*T, W4    1/A,1/B,1/C,1/D,1/E,1/F,6/ TLMD,30/,18/ TLNL
*T, W5    1/G,23/,18/0,18/ TLNK 
*T, W6    60/ TLOP
*T, W7    60/ TLNP
*T, W8    60/ TLRL
*T, W9    60/ TLWL
*T, W10   42/ TLPN,12/ TLDV,6/ TLUN 
*T, W11   30/ TLKL,12/,18/ TLNA 
*T, W12   60/ TLKW(0) 
*T, W12+N 60/ TLKW(N) 
* 
*                TLFN - LOGICAL FILE NAME.
*                TLNT - FWA OF NEXT LOGICAL NAME TABLE ENTRY. 
*                TLKS - KEY SIZE IN CHARACTERS. 
*                TLNO - FWA OF NEXT OPEN FILE LINK. 
*                TLRS - RECORD SIZE IN CHARACTERS.
*                TLNF - FWA OF NEXT FREE FILE LINK. 
*            A = TLFD - FILE DOWN IF *TLFD* .EQ. 1. 
*            B = TLFI - FILE IDLE IF *TLFI* .EQ. 1. 
*            C = TLFL - FILE LOCKED IF *TLFL* .EQ. 1. 
*            D = TLRF - FILE RECOVERABLE IF *TLRF* .EQ. 1.
*            E = TLBR - FILE DOWN FOR BATCH RECOVERY IF *TLBR* .EQ. 1.
*            F = TLFE - FILE IDLE/DOWN FOR FATAL *CRM* ERROR IF .EQ. 1. 
*                TLMD - FILE ATTACH MODE. 
*                TLNL - FWA OF NEXT USED LOCK LINK. 
*            G = TLIC - FILE INCONSISTENT.
*                TLNK - FWA OF NEXT FREE LOCK LINK. 
*                TLOP - TOTAL NUMBER OF OPENS ON FILE.
*                TLNP - NUMBER OF OPEN REJECTS BECAUSE OF NO AVAILABLE
*                       FILE CONTROL ENTRIES. 
*                TLRL - TOTAL NUMBER OF LOCKS ON FILE.
*                TLWL - NUMBER OF TIMES LOCK COULD NOT BE GRANTED 
*                       BECAUSE OF NO AVAILABLE LOCK ENTRIES. 
*                TLPN - PACKNAME OF DEVICE WHERE FILE RESIDES.
*                TLDV - DEVICE TYPE ON WHICH FILE RESIDES.
*                TLUN - DEVICE UNIT NUMBER (OCTAL). 
*                TLKL - PRIMARY KEY LENGTH. 
*                TLNA - NUMBER OF ALTERNATE KEYS. 
*                      (ONLY IF TLNA .NE. 0)
*                TLKW(0) - PRIMARY KEY DESCRIPTOR.
*                TLKW(N) - KEY DESCRIPTOR FOR ALTERNATE KEY N.
* 
*                KEY DESCRIPTOR FORMAT. 
* 
*T               6/0,18/ KA,18/ BKP,18/ KL
* 
*                KA   - RELATIVE KEY ADDRESS. 
*                BKP  - BEGINNING KEY POSITION. 
*                KL   - KEY LENGTH. 
  
  
 TLFN     FIELD  0,59,18     LOGICAL FILE NAME
 TLNT     FIELD  0,17,0      FWA OF NEXT *TLNT* ENTRY 
 TLKS     FIELD  1,59,36     KEY SIZE IN CHARACTERS 
 TLNO     FIELD  1,17,0      FWA OF NEXT OPEN FILE LINK 
 TLRS     FIELD  2,59,36     RECORD SIZE IN CHARACTERS
 TLNF     FIELD  2,17,0      FWA OF NEXT FREE FILE CONTROL LINK 
 TLFD     FIELD  3,59,59     FILE DOWN IF *TLFD* .EQ. 1 
 TLFI     FIELD  3,58,58     FILE IDLE IF *TLFI* .EQ. 1 
 TLFL     FIELD  3,57,57     FILE LOCKED IF *TLFL* .EQ. 1 
 TLRF     FIELD  3,56,56     FILE RECOVERABLE IF *TLRF* .EQ. 1
 TLBR     FIELD  3,55,55     FILE DOWN FOR BAT. REC. IF *TLBR* .EQ. 1 
 TLFE     FIELD  3,54,54     FILE IDLE/DOWN FOR FATAL *CRM* ERROR 
 TLMD     FIELD  3,53,48     FILE ATTACH MODE 
 TLNL     FIELD  3,17,0      FWA OF NEXT USED LOCK LINK 
 TLIC     FIELD  4,59,59     FILE INCONSISTENT
 TLNK     FIELD  4,17,0      FWA OF NEXT FREE LOCK LINK 
 TLOP     FIELD  5,59,0      TOTAL NUMBER OF OPENS FOR FILE 
 TLNP     FIELD  6,59,0      NUMBER OF OPEN REJECTS 
 TLRL     FIELD  7,59,0      TOTAL NUMBER OF LOCKS FOR FILE 
 TLWL     FIELD  8,59,0      NUMBER OF LOCK REJECTS FOR FILE
 TLPN     FIELD  9,59,18     PACKNAME OF DEVICE WHERE FILE RESIDES
 TLDV     FIELD  9,17,6      DEVICE TYPE ON WHICH FILE RESIDES
 TLUN     FIELD  9,5,0       DEVICE UNIT NUMBER (OCTAL) 
 TLKL     FIELD  10,59,30    LENGTH OF PRIMARY KEY IN CHARACTERS
 TLNA     FIELD  10,17,0     NUMBER OF ALTERNATE KEYS 
 TLKW     FIELD  11,59,0     KEY DESCRIPTOR 
  
 TLNTE    EQU    12          LENGTH OF LOGICAL NAME ENTRY 
          SPACE  4,60 
**        TBRF - BEFORE IMAGE RECOVERY FILE TABLE.
* 
*         THE BEFORE IMAGE RECOVERY FILE TABLE CONTAINS THE *BRF* FET,
*         THE *BRF* HEADER, AND OTHER INFORMATION RELATIVE TO THE 
*         *BRF-S*.  THERE IS ONE *TBRF* FOR EACH BEFORE IMAGE RECOVERY
*         FILE DEFINED FOR *TAF/CRM*. 
* 
*T  W1    6/,18/ TQSQ,18/ TQDL,18/ TQNL 
*T, W2    60/ TQDD
*T, W3    1/A,1/B,1/C,1/D,20/,18/ TQSI,18/ TQPI 
*T, W4    42/ TQFF,8/0,10/ TQFC 
*T, W5    42/ TQF1,18/ TQFT 
*T, W6    42/0,18/ TQIN 
*T, W7    42/0,18/ TQOT 
*T, W8    42/0,18/ TQLM 
*T, W9    60/0
*T, W10   30/ TQRI,1/E,29/ TQRR 
*T, W11   24/0,18/ TQIL,18/ TQIB
*T, W12   42/ TQFN,18/ TQNR 
*T, W13   36/ TQCD,18/,6/ TQQN
*T, W14   30/ TQNS,30/ TQNP 
*T, W15   60/ TQBM
*T, W15+N 60/ TQBM
* 
*                TQSQ - FWA OF *TSEQ* ENTRY RESERVING *TBRF*. 
*                TQDL - FWA OF DATA BASE RECOVERY FILE TABLE *TDRF*.
*                TQNL - FWA OF NEXT *TBRF*. 
*                TQDD - DATE/TIME *BRF* WENT DOWN (PACKED). 
*            A = TQST - BEFORE IMAGE RECOVERY FILE DOWN.
*                       IF *TQST* .EQ. 1. 
*            B = TQEA - EXCLUSIVE ACCESS TO *BRF* IF *TQEA* .EQ. 1. 
*            C = TQBI - BEFORE IMAGE WRITE PENDING IF *TQBI* .EQ. 1.
*            D = TQDI - *BRF* DOWN STAMP WRITTEN IF *TQDT* .EQ. 1.
*                TQSI - FWA OF *TSEQ* OF TASK WRITING BEFORE IMAGE. 
*                TQPI - NUMBER OF PRU-S PER BEFORE IMAGE RECORD.
* FET+0          TQFF - LOCAL FILE NAME, FIRST WORD OF *BRF* FET. 
*                TQFC - REQUEST/RETURN CODE.
* FET+1          TQF1 - 42 BITS OF FET+1 = 12/,1/R,1/,1/,1/E,20/,6/L. 
*                       R - SET TO 1 FOR RANDOM PROCESSING. 
*                       E - SET TO 1 FOR USER PROCESSING OF ERRORS. 
*                       L - SET TO 3 FOR 8 WORD FET.
*                TQFT - FIRST.
* FET+2          TQIN - IN. 
* FET+3          TQOT - OUT.
* FET+4          TQLM - LIMIT.
* FET+6          TQRI - CURRENT RANDOM INDEX. 
*            E = TQRW - WRITE IN-PLACE IF *TQRW* .EQ. 1.
*                TQRR - RELATIVE SECTOR ADDRESS FOR RANDOM I/O. 
* FET+7          TQIL - INDEX LENGTH. 
*                TQIB - FWA OF INDEX BUFFER.
* BRF HEADER+0   TQFN - BEFORE IMAGE RECOVERY FILE NAME.
*                TQNR - NUMBER OF RECORDS PER SEGMENT (*CRMUPM*). 
* BRF HEADER+1   TQCD - *BRF* CREATION DATE AND TIME. 
*                TQQN - NUMBER OF *BRF-S* ASSIGNED DATE BASE. 
* BRF HEADER+2   TQNS - NUMBER OF SEGMENTS ON BRF (*CMDM*). 
*                TQNP - NUMBER OF PRU-S PER SEGMENT.
*                TQBM - SEGMENT ALLOCATION BIT MAP - 1 OR 2 WORDS LONG
*                       DEPENDING ON *CMDM* PARAMETER.
  
  
 TQSQ     FIELD  0,53,36     FWA OF *TSEQ* ENTRY RESERVING *TQRF* 
 TQDL     FIELD  0,35,18     FWA OF *TDRF* TABLE
 TQNL     FIELD  0,17,0      FWA OF NEXT *TBRF* 
 TQDD     FIELD  1,59,0      DATE/TIME *BRF* WENT DOWN (PACKED) 
 TQST     FIELD  2,59,59     *BRF* DOWN IF *TQST* .EQ. 1
 TQEA     FIELD  2,58,58     TASK HAS EXCLUSIVE ACCESS IF *TQEA* .EQ. 1 
 TQBI     FIELD  2,57,57     BEFORE IMAGE PENDING IF *TQBI* .EQ. 1
 TQDI     FIELD  2,56,56     *BRF* DOWN STAMP WRITTEN ON *ARF* IF SET 
 TQSI     FIELD  2,35,18     FWA OF *TSEQ* OF TASK WRITING BEFORE IMAGE 
 TQPI     FIELD  2,17,0      PRU-S PER BEFORE IMAGE RECORD
 TQFF     FIELD  3,59,18     LFN, FIRST WORD OF *BRF* RANDOM FET
 TQFC     FIELD  3,9,0       REQUEST/RETURN CODE
 TQF1     FIELD  4,59,18     FET+1 UPPER 42 BITS
 TQFT     FIELD  4,17,0      FIRST
 TQIN     FIELD  5,17,0      IN 
 TQOT     FIELD  6,17,0      OUT
 TQLM     FIELD  7,17,0      LIMIT
 TQRI     FIELD  9,59,30     CURRENT RANDOM INDEX 
 TQRW     FIELD  9,29,29     WRITE IN-PLACE IF *TQRW* .EQ. 1
 TQRR     FIELD  9,28,0      RELATIVE SECTOR ADDRESS FOR RANDOM WRITE 
 TQIL     FIELD  10,35,18    INDEX LENGTH 
 TQIB     FIELD  10,17,0     FWA OF INDEX BUFFER
 TQFN     FIELD  11,59,18    BEFORE IMAGE RECOVERY FILE NAME
 TQNR     FIELD  11,17,0     NUMBER OF RECORDS PER SEGMENT (*CRMUPM*) 
 TQCD     FIELD  12,59,24    *BRF* CREATION DATE AND TIME, PACKED 
 TQQN     FIELD  12,5,0      NUMBER OF *BRF-S* ASSIGNED DATA BASE 
 TQNS     FIELD  13,59,30    NUMBER OF SEGMENTS (*CMDM*)
 TQNP     FIELD  13,29,0     NUMBER OF PRU-S PER SEGMENT
 TQBM     FIELD  14,59,0     SEGMENT ALLOCATION BIT MAP FIRST WORD
  
 .TQBML   EQU    CMDM+59     NUMBER OF BITS REQUIRED FOR BIT MAP
 .TQRFE   EQU    .TQBML/60   NUMBER OF WORDS REQUIRED FOR *TQBM*
 TQRFE    EQU    TQBMW+.TQRFE   LENGTH OF *TBRF* ENTRY
 TQHDL    EQU    3           *BRF* HEADER LENGTH
 TQRHL    EQU    7           *BRF* RECORD HEADER LENGTH 
          SPACE  4,40 
**        TSEQ - TRANSACTION SEQUENCE TABLE.
* 
*         THIS TABLE RECORDS THOSE TRANSACTIONS 
*         CURRENTLY USING *CRM*, AND RECORDS ALL RESOURCES
*         USED AND LOCKED BY AN ACTIVE USER OF *TAF*/*CRM*. 
*         THE LENGTH OF *TSEQ* IS ESTABLISHED BY INSTALLATION 
*         PARAMETER *CMDM* AND *RMDM*.
* 
*T  W1    24/ TSSQ,18/0,18/ TSNL
*T, W2    6/,18/ TSLF,18/0,18/ TSNF 
*T, W3    30/ TSBP,30/ TSBC 
*T, W4    1/A,1/B,1/C,1/D,5/,6/ TSER,3/ E,6/ TSQB,18/ TSCP,18/ TSQF 
*T, W5    24/ TSSN,1/F,5/,6/ TSFC,1/G,5/ TSSC,18/ TSPA
*T, W6    1/H,20/,9/ TSBI,1/,29/ TSQR 
*T, W7    42/ TSTN,18/
*T, W8    42/ TSUN,18/
* 
*                TSSQ - TRANSACTION SEQUENCE NUMBER.
*                TSNL - FWA OF NEXT LOCK LINK FOR TRANSACTION.
*                TSLF - FWA OF AFTER IMAGE RECOVERY FILE TABLE
*                       ASSIGNED TASK.
*                TSNF - FWA OF NEXT FILE CONTROL LINK 
*                       FOR TRANSACTION.
*                TSBP - BEGIN ID OF PREVIOUS BEGIN/COMMIT SEQUENCE. 
*                TSBC - BEGIN ID OF CURRENT BEGIN/COMMIT SEQUENCE.
*            A = TSBR - BEGIN PROCESSED FOR TASK IF *TSBR* .EQ. 1.
*            B = TSBW - BEGIN IMAGE WRITE PENDING IF *TSBW* .EQ. 1. 
*            C = TSRC - TASK RECOVERED FROM *BRF* IF *TSRC* .EQ. 1. 
*            D = TSAI - AFTER IMAGE WRITE PENDING IF *TSAI* .EQ. 1. 
*                TSER - ERROR CODE WHICH CAUSED FREEING TO OCCUR. 
*            E = TSQW - ASSIGNED *BRF* SEGMENT BIT MAP WORD NUMBER. 
*                TSQB - ASSIGNED *BRF* SEGMENT BIT MAP WORD BIT NUMBER. 
*                TSCP - DATA BASE LEVEL REQUEST CONTINUATION PROCESSOR. 
*                TSQF - FWA OF BEFORE IMAGE RECOVERY FILE TABLE 
*                       ASSIGNED TASK.
*                TSRQ - INITIAL *TAF CRM* REQUEST IF IMPLICIT 
*                       COMMIT/FREE PROCESSING. 
*                TSSN - TRANSACTION SEQUENCE NUMBER.
*            F = TSBF - INTERNAL *DBFREE* IF *TSBF* .EQ. 1. 
*                TSFC - FUNCTION CODE.
*            G = TSRR - USE RECALL IF *TSRR* .EQ. 1.
*                TSSC - SUB-CONTROL POINT NUMBER. 
*                TSPA - FWA OF REQUEST PARAMETERS.
*            H = TSRF - SECOND ATTEMPT TO ROLLBACK UPDATE IF .EQ. 1.
*                TSBI - NUMBER OF BEFORE IMAGES ON *BRF*. 
*                TSQR - MS RANDOM ADDR. TO WRITE NEXT *BI* RECORD.
*                TSTN - TASK NAME.
*                TSUN - USER NAME.
  
  
 TSSQ     FIELD  0,59,36     TRANSACTION SEQUENCE NUMBER
 TSNL     FIELD  0,17,0      FWA OF NEXT LOCK LINK
 TSLF     FIELD  1,53,36     FWA OF ASSIGNED *ARF* TABLE
 TSNF     FIELD  1,17,0      FWA OF NEXT FILE CONTROL LINK
 TSBP     FIELD  2,59,30     PREVIOUS BEGIN ID
 TSBC     FIELD  2,29,0      CURRENT BEGIN ID 
 TSBR     FIELD  3,59,59     IF *TSBR* .EQ. 1 BEGIN WAS PROCESSED 
 TSBW     FIELD  3,58,58     IF *TSBW* .EQ. 1 BEGIN IMAGE WRITE PENDING 
 TSRC     FIELD  3,57,57     TASK RECOVERED FROM *BRF* IF *TSRC* .EQ. 1 
 TSAI     FIELD  3,56,56     AFTER IMAGE WRITE PENDING FLAG 
 TSER     FIELD  3,50,45     ERROR CODE WHICH CAUSED FREEING TO OCCUR 
 TSQW     FIELD  3,44,42     *BRF* SEGMENT BIT MAP WORD NUMBER
 TSQB     FIELD  3,41,36     *BRF* SEGMENT BIT MAP WORD BIT NUMBER
 TSMP     FIELD  3,44,36     BIT MAP BIT POINTER (*TSQW* + *TSQB*)
 TSCP     FIELD  3,35,18     DB REQUEST CONTINUATION PROCESSOR ADDR.
 TSQF     FIELD  3,17,0      FWA OF ASSIGNED *BRF* TABLE
 TSRQ     FIELD  4,59,0      INITIAL *TAF CRM* REQUEST
 TSSN     FIELD  4,59,36     TRANSACTION SEQUENCE NUMBER (DBLR) 
 TSBF     FIELD  4,35,35     INTERNAL *DBFREE* IF *TSBF* .EQ. 1 (DBLR)
 TSFC     FIELD  4,29,24     FUNCTION CODE (DBLR) 
 TSRR     FIELD  4,23,23     USE RECALL IF *TSRR* .EQ. 1 (DBLR) 
 TSSC     FIELD  4,22,18     SUB-CONTROL POINT NUMBER (DBLR)
 TSPA     FIELD  4,17,0      FWA OF PARAMETERS (DBLR) 
 TSRF     FIELD  5,59,59     SECOND ATTEMPT TO ROLLBACK UPDATE FLAG 
 TSBI     FIELD  5,38,30     NUMBER OF BEFORE IMAGES ON *BRF* SEGMENT 
 TSQR     FIELD  5,28,0      MS RANDOM ADDR. TO WRITE NEXT *BI* RECORD
 TSTN     FIELD  6,59,18     TASK NAME
 TSUN     FIELD  7,59,18     USER NAME
  
 TSEQE    EQU    8           LENGTH OF TRANSACTION SEQUENCE ENTRY 
          SPACE  4,60 
**        XARF - AFTER IMAGE RECOVERY FILE RECORD DESCRIPTION.
* 
*         THE AFTER IMAGE RECOVERY FILE (*ARF*) CONTAINS AFTER
*         IMAGE (*AI*) BLOCKS SEPARATED BY *EOR* MARKS.  THE LAST BLOCK 
*         IS FOLLOWED BY AN *EOR* AND AN *EOF* MARK.
*         THE FIRST BLOCK ON THE *ARF* IS THE FILE HEADER.
*         (SEE *TARF* FOR *ARF* HEADER DESCRIPTION).
*         THE REMAINING BLOCKS CONTAIN AFTER IMAGE DATA.
* 
*         THE MAXIMUM AFTER IMAGE BLOCK SIZE IS - 
* 
*         BLOCK = ((TARHL+(TDKS/10)+(TDRS/10))*(CRMLRB+63)) / 64. 
* 
*         EACH *AI* BLOCK MAY CONTAIN ONE OR MORE *AI* RECORDS. 
* 
*         THE MINIMUM AFTER IMAGE RECORD SIZE IS THE
*         *AI* RECORD HEADER SIZE (*TARHL*).
* 
*         THE LARGEST *AI* RECORD IS -
*         *AI* HEADER PLUS KEY SIZE (WORDS) PLUS RECORD SIZE (WORDS). 
* 
*         *AI* = TARHL + ( XLKS/10 ) + ( XLRS/10 ). 
* 
*         THE AFTER IMAGE RECORDS ARE WRITTEN BY *TAF/CRM*. 
*         THEY ARE READ AND DUMPED TO TAPE BY *DMREC*.
* 
*T  W1    24/ XLSQ,17/,1/A,18/ XLTY 
*T, W2    30/ XLBP,30/ XLBC 
*T, W3    60/ XLPD
*T, W4    12/,24/ XLRS,24/ XLKS 
*T, W5    42/ XLFN,18/
*T, W6    42/ XLTN,18/
*T, W7    N/XLKA  (N=((KS+9)/10 IN WORDS) 
*T, W7+N  M/XLRA  (M=((RS+9)/10) IN WORDS)
* 
* AI HEADER+0    XLSQ - TRANSACTION SEQUENCE NUMBER.
*            A = XLBW - BEGIN INDICATOR.
*                       1 IF FIRST AFTER IMAGE AFTER *DBEGIN* REQUEST.
*                       0 IF NOT FIRST AFTER IMAGE AFTER *DBEGIN* REQ.
*                XLTY - AFTER IMAGE TYPE CODE.
*                       0    IF *DBCOMIT* REQUEST.
*                       *XLQD* IF *BRF* DOWN STAMP. 
*                       *TRDE* IF DELETE REQUEST. 
*                       *TRRW* IF REWRITE REQUEST.
*                       *TRWR* IF WRITE REQUEST.
*                       *TRDF* IF *DBFREE* REQUEST. 
*                       *DMCC* IF DATA MANAGER *CEASE* REQUEST. 
* AI HEADER+1    XLBP - PREVIOUS BEGIN IDENTIFIER.
*                XLBC - CURRENT BEGIN IDENTIFIER. 
* AI HEADER+2    XLPD - PACKED DATE/TIME AFTER IMAGE WRITTEN. 
* AI HEADER+3    XLRS - RECORD AREA SIZE IN CHARACTERS. 
*                XLKS - KEY AREA SIZE IN CHARACTERS.
* AI HEADER+4    XLFN - LOGICAL FILE NAME OF MODIFIED FILE, OR
*                       NAME OF DOWN *BRF* IF *XLTY* .EQ. *XLQD*. 
* AI HEADER+5    XLTN - TASK NAME.
*                XLKA - FIRST WORD OF KEY-AREA. 
*                XLRA - FIRST WORD OF RECORD AREA.
  
 XLSQ     FIELD  0,59,36     TRANSACTION SEQUENCE NUMBER
 XLBW     FIELD  0,18,18     BEGIN INDICATOR
 XLTY     FIELD  0,17,0      AFTER IMAGE TYPE CODE
 XLBP     FIELD  1,59,30     PREVIOUS BEGIN IDENTIFIER
 XLBC     FIELD  1,29,0      CURRENT BEGIN IDENTIFIER 
 XLPD     FIELD  2,59,0      PACKED DATE/TIME AFTER IMAGE WRITTEN 
 XLRS     FIELD  3,47,24     RECORD SIZE IN CHARACTERS
 XLKS     FIELD  3,23,0      KEY SIZE IN CHARACTERS 
 XLFN     FIELD  4,59,18     FILE NAME
 XLTN     FIELD  5,59,18     TASK NAME
 XLKA     FIELD  6,59,0      FIRST WORD OF KEY-AREA 
  
*         XLQD, THE *AI* RECORD TYPE INDICATING *BRF* DOWN
*         IS DEFINED HERE. IT MUST NOT EQUAL THE FOLLOWING
*         VALUES; 
*                0, *TRDE*, *TRRW*, *TRWR*, *DMCC*, OR *TRDF*.
* 
 XLQD     EQU    10          *BRF* DOWN RECORD TYPE 
          ERRZR  XLQD        *BRF* DOWN MUST BE NON-ZERO. 
          ERRZR  XLQD-TRDE   *BRF* DOWN MUST NOT BE DELETE. 
          ERRZR  XLQD-TRRW   *BRF* MUST NOT BE REWRITE. 
          ERRZR  XLQD-TRWR   *BRF* DOWN MUST NOT BE WRITE.
          ERRZR  XLQD-TRDF   *BRF* DOWN MUST NOT BE FREE. 
          ERRZR  XLQD-DMCC   *BRF* DOWN MUST NOT BE CEASE.
          SPACE  4,10 
**        TAST -  RECOVERY FILE HEADER STATUS.
* 
  
 XHIN     EQU    0           INACTIVE/AVAILABLE STATUS
 XHAC     EQU    1           ACTIVE/AVAILABLE STATUS
 XHNA     EQU    2           NOT AVAILABLE STATUS 
 XHER     EQU    3           POSSIBLE ERROR/NOT AVAILABLE STATUS
          SPACE  4,55 
**        XBRF - BEFORE IMAGE RECOVERY FILE RECORD DESCRIPTION. 
* 
*         THE BEFORE IMAGE RECOVERY FILE CONTAINS BEFORE
*         IMAGE (*BI*) RECORDS SEPARATED BY *EOR* MARKS.  THE 
*         FIRST RECORD ON THE *BRF* IS THE FILE HEADER. 
*         (SEE *TBRF* FOR *BRF* HEADER DEFINITION). 
*         THE REMAINING RECORDS CONTAIN BEFORE IMAGE DATA.
*         THE SIZE OF THESE RECORDS IS CALCULATED AS FOLLOWS -
* 
*         RECORD = ((TQRHL+63+(TDKS/10)+(TDRS/10)) / 64.
* 
*         BEFORE IMAGE RECORDS ARE LOGICALLY GROUPED INTO 
*         (CMDM*RMDM) SEGMENTS. 
*         EACH SEGMENTS CONTAINS *CRMUPM* *BI* RECORDS. 
* 
*         THE BEFORE IMAGE RECORDS ARE WRITTEN BY *TAF/CRM* 
*         AND READ BY *TAF/CRM*.
* 
*T  W1    24/ XQSQ,17/,1/A,18/ XQTY 
*T, W2    30/ XQBP,30/ XQBC 
*T, W3    60/ XQPD
*T, W4    1/B,11/,24/ XQRS,24/ XQKS 
*T, W5    42/ XQFN,18/
*T, W6    42/ XQTN,18/
*T, W7    42/ XQUN,18/
*T, W8    N/  XQKA (N=((KS+9)/10) IN WORDS) 
*T, W8+N  M/  XQRA (M=((RS+9)/10) IN WORDS) 
* 
* BI HEADER+0    XQSQ - TRANSACTION SEQUENCE NUMBER.
*            A = XQBR - BEGIN INDICATOR.
*                       1 = *DBEGIN* OUTSTANDING. 
*                       0 = *DBFREE* OR *DBCOMIT* REQUEST PROCESSED.
*                XQTY - TYPE OF BEFORE IMAGE RECORD.
*                       ZERO   = *CEASE* STAMP. 
*                       *TRDE* = DELETE REQUEST.
*                       *TRRW* = REWRITE REQUEST. 
*                       *TRWR* = WRITE REQUEST. 
*                       *TRDC* = DBCOMIT REQUEST. 
*                       *TRDF* = DBFREE REQUEST.
* BI HEADER+1    XQBP - PREVIOUS BEGIN IDENTIFIER.
*                XQBC - CURRENT BEGIN IDENTIFIER. 
*                       PREVIOUS AND CURRENT BEGIN IDENTIFIERS ARE
*                       REQUIRED ON THE FIRST BEFORE IMAGE IN A *BRF* 
*                       SEGMENT.
* BI HEADER+2    XQPD - PACKED DATE/TIME WHEN THIS *BI* WAS WRITTEN.
* BI HEADER+3 B= XQFL - FILE/RECORD LOCK INDICATOR. 
*                       1 = IF FILE LOCKED BY TRANSACTION.
*                       0 = IF RECORD LOCKED BY TRANSACTION.
*                XQRS - RECORD SIZE IN CHARACTERS.
*                       THIS IS NOT THE SIZE OF THIS *BI* RECORD. 
*                XQKS - KEY SIZE IN CHARACTERS. 
* BI HEADER+4    XQFN - FILE NAME OF MODIFIED FILE. 
* BI HEADER+5    XQTN - TASK NAME.
* BI HEADER+6    XQUN - USER NAME.
*                XQKA - KEY AREA (CONTAINS USER RECORD KEY).
*                XQRA - RECORD AREA (CONTAINS USER DATA RECORD).
*                       THE SIZE OF THIS RECORD IS IN *XQRS* FIELD. 
  
 XQSQ     FIELD  0,59,36     TRANSACTION SEQUENCE NUMBER
 XQBR     FIELD  0,18,18     BEGIN INDICATOR
 XQTY     FIELD  0,17,0      BEFORE IMAGE TYPE CODE 
 XQBP     FIELD  1,59,30     PREVIOUS BEGIN IDENTIFIER
 XQBC     FIELD  1,29,0      CURRENT BEGIN IDENTIFIER 
 XQPD     FIELD  2,59,0      PACKED DATE/TIME BEFORE IMAGE WRITTEN
 XQFL     FIELD  3,59,59     FILE LOCK INDICATOR
 XQRS     FIELD  3,47,24     RECORD SIZE IN CHARACTERS
 XQKS     FIELD  3,23,0      KEY SIZE IN CHARACTERS 
 XQFN     FIELD  4,59,18     FILE NAME
 XQTN     FIELD  5,59,18     TASK NAME
 XQUN     FIELD  6,59,18     USER NAME
 XQKA     FIELD  7,59,0      FIRST WORD OF KEY AREA 
          SPACE  4,25 
**        DXPA - DEFERRED LOGGING EXIT PACKET.
* 
*         THE DEFERRED LOGGING EXIT PACKET IS SUPPLIED
*         BY *CRM* WHEN *DLX* IS CALLED.
* 
*T  W1    42/ DXFN,1/A,1/B,1/C,15/ DXBL 
*T, W2    24/ DXRU,18/ DXFT,18/ DXBA
* 
*                DXFN - LOGICAL FILE NAME.
*            A = DXBT - BLOCK TYPE FLAG.
*                       ONE IF *MIP* BLOCK. 
*                       ZERO IF DATA BLOCK. 
*            B = DXCN - SECOND CALL FLAG. 
*                       ONE IF SECOND CALL. 
*                       ZERO IF FIRST CALL. 
*            C = DXIC - INCONSISTENT FLAG.
*                       ONE IF MULTIPLE BLOCKS INVOLVED (INCONSISTENT). 
*                       ZERO IF ONE BLOCK INVOLVED (CONSISTENT).
*                DXBL - BLOCK LENGTH. 
*                DXRU - PRU NUMBER OF BLOCK.
*                DXFT - FWA OF *FIT*. 
*                DXBA - FWA OF BLOCK. 
  
  
 DXFN     FIELD  0,59,18     LOGICAL FILE NAME
 DXBT     FIELD  0,17,17     BLOCK TYPE FLAG .EQ. 1 IF *MIP* BLOCK
 DXCN     FIELD  0,16,16     CALL FLAG .EQ. 0 IF FIRST CALL 
 DXIC     FIELD  0,15,15     INCONSISTENT FLAG .EQ. 1 IF INCONSISTENT 
 DXBL     FIELD  0,14,0      BLOCK LENGTH 
 DXRU     FIELD  1,59,36     PRU NUMBER OF BLOCK
 DXFT     FIELD  1,35,18     FWA OF *FIT* 
 DXBA     FIELD  1,17,0      FWA OF BLOCK 
          SPACE  10 
**        *FSTT**BLOCK IDENTIFIER CODE. 
* 
  
 FSTTID   MICRO  1,, SAAM/
          SPACE  4,10 
*         DEFINE *AAM*/*FSTT* FIELD SYMBOLS.
  
  
 FSHEAD   FIELD  4,59,0      *FSTT* HEADER WORD 
 FSNCL    FIELD  16,58,58    FILE NOT CLOSED PROPERLY FLAG
 FS2BLO   FIELD  16,52,52    FILE INCONSISTENT FLAG 
 FS2BLI   FIELD  16,51,51    PERMANENT FILE INCONSISTENT FLAG 
          SPACE  4,10 
**        DEFINE *AAM*/*FIT* SYMBOLS. 
  
 FTFSTT   FIELD  27,17,0     FWA OF *FSTT*
          TITLE  *TAF/CRM* SYSTEM MACROS. 
          SPACE  4,35 
***       DEFINE *TAF/CRM* MACROS WHICH ARE ONLY
*         TO BE USED BY SYSTEM TASKS. 
* 
*         THE MACROS PREPARE AN RA+1 *AAM* REQUEST IN 
*         REGISTER X6, AND CALL *SYS=* TO PLACE IT IN RA+1. 
* 
*         ALL THESE MACROS HAVE THE SAME FORMAT AND 
*         CALLING SEQUENCE, AS DESCRIBED BELOW; 
* 
*         MNAME  P
* 
*         WHERE  MNAME IS THE RESPECTIVE MACRO NAME.
*         MUST BE ONE OF THE FOLLOWING; 
*                CRM - *DMREC* REQUEST PROCESSING.
*                CRMSTAT - *CRM* STATUS REQUEST PROCESSING. 
*                DBDOWN  - DATA BASE DOWN REQUEST PROCESSING. 
*                DBUP    - DATA BASE UP REQUEST PROCESSING. 
*                RSTDBI  - RESTORE DATA BASE ID REQUEST PROCESSING. 
*                TRMREC  - TERMINATE TASK RECOVERY REQUEST PROCESSING.
* 
*         ENTRY  P = FWA OF PARAMETER ADDRESS LIST. 
* 
*         EXIT   (X6) = 24/3LAAM,18/TRXX,18/P 
*                     TRXX = *TAF/CRM* REQUEST CODE FOR  FUNCTION.
*                     P    = FWA OF PARAMETER ADDRESS LIST. 
*                     EXITS TO *SYS=*, EXTERNAL.
* 
*         USES   X - 1, 6, 7. 
*                B - NONE.
*                A - NONE.
* 
*         CALLS  SYS=.
          SPACE  4,10 
***       CRM - PROCESS *DMREC* REQUEST.
* 
*         THIS MACRO IS USED TO PROCESS *DMREC* RESPONSE
*         WHICH COMES INTO TAF AS A *SIC* REQUEST.
  
          PURGMAC CRMSIC
  
 CRMSIC   MACRO  P
          R=     X1,TRSI
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 CRMSIC   ENDM
          SPACE  4,10 
***       CRMSTAT - PROCESS *TAF/CRM* STATUS REQUEST. 
* 
*         THIS MACRO IS USED TO REQUEST *TAF/CRM* STATUS. 
  
          PURGMAC  CRMSTAT
  
 CRMSTAT  MACRO  P
          R=     X1,TROS
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 CRMSTAT  ENDM
          SPACE  4,10 
***       DBDOWN - PROCESS DATA BASE DOWN REQUEST.
* 
*         THIS MACRO IS USED TO PROCESS DATA BASE DOWN REQUEST. 
  
          PURGMAC DBDOWN
  
 DBDOWN   MACRO  P
          R=     X1,TRDN
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 DBDOWN   ENDM
          SPACE  4,10 
***       DBUP - PROCESS DATA BASE UP REQUEST.
* 
*         THIS MACRO IS USED TO PROCESS DATA BASE UP REQUEST. 
  
          PURGMAC DBUP
  
 DBUP     MACRO  P
          R=     X1,TRUP
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 DBUP     ENDM
          SPACE  4,10 
***       RSTDBI - PROCESS RESTORE DATA BASE BEGIN IDENTIFIERS. 
* 
*         THIS MACRO IS USED TO RESTORE DATA BASE BEGIN IDENTIFIERS.
  
          PURGMAC RSTDBI
  
 RSTDBI   MACRO  P
          R=     X1,TRRI
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 RSTDBI   ENDM
          SPACE  4,10 
***       TRMREC - REQUEST TO TERMINATE TASK RECOVERY.
* 
*         THIS MACRO IS USED TO TERMINATE TASK RECOVERY.
  
          PURGMAC TRMREC
  
 TRMREC   MACRO  P
          R=     X1,TRTR
          SX6    3RAAM
          LX1    35-17
          R=     X7,P 
          LX6    59-17
          BX6    X6+X1
          BX6    X6+X7
          RJ     =XSYS= 
 TRMREC   ENDM
  
          ENDX
