IDENT BAAML
SST
ENTRY CLOSE
ENTRY DBCOMIT
ENTRY DBEGIN
ENTRY DBFREE
ENTRY DBSTAT
ENTRY DELETE
ENTRY FLOCK
ENTRY LOCK
ENTRY OPEN
ENTRY READ
ENTRY READL
ENTRY READM
ENTRY READNL
ENTRY READN
ENTRY REWIND
ENTRY REWRITE
ENTRY SKIPBL
ENTRY SKIPFL
ENTRY START
ENTRY UNFLOCK
ENTRY UNLOCK
ENTRY WRITE
SYSCOM B1
TITLE BAAML - OBJECT TIME BATCH CONCURRENCY.
*COMMENT BAAML - OBJECT TIME BATCH CONCURRENCY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
BAAML SPACE 4,10
*** BAAML - OBJECT TIME BATCH CONCURRENCY.
*
* P. H. PETERSEN. 81/01/13.
SPACE 4,10
*** BAAML IS AN USER LIBRARY INTERFACE FOR COBOL5 AND FORTRAN
* BATCH USER PROGRAMS TO MAKE ADVANCED ACCESS METHOD CYBER
* RECORD MANAGER REQUESTS OF THE TRANSACTION FACILITY. DECK
* *BAAML* IS PLACED ON THE SYSTEM AS LIBRARY *BAAML*. COBOL5
* *ENTER* VERB AND FORTRAN *CALL* COMMAND INTERFACE THE
* USER BATCH PROGRAMS TO THE TRANSACTION FACILITY.
*
* THE REQUESTS FOR *TAF CMR* ARE AS FOLLOWS -
*
* TO CLOSE A FILE FOR A DATA BASE -
* ENTER "CLOSE" USING FILE,TSTAT,CSTAT.
* CALL CLOSE (FILE,TSTAT,CSTAT).
*
* TO MARK THE END OF AN UPDATE SEQUENCE -
* ENTER "DBCOMIT" USING TSTAT.
* CALL DBCOMIT (TSTAT).
*
* TO ESTABLISH A DATA BASE AS RECOVERABLE -
* ENTER "DBEGIN" USING UBEGIN, TSTAT.
* CALL DBEGIN (UBEGIN, TSTAT).
*
* TO ROLLBACK UPDATES TO A DATA BASE -
* ENTER "DBFREE" USING TSTAT.
* CALL DBFREE (TSTAT).
*
* TO FIND LAST IDENTIFIER OF LAST SUCCESSFULL BEGIN/COMMIT -
* ENTER "DBSTAT" USING UBEGIN, TSTAT, PBEGIN.
* CALL DBSTAT (UBEGIN, TSTAT, PBEGIN).
*
* TO DELETE A RECORD -
* ENTER "DELETE" USING FILE,TSTAT,CSTAT,KEYN,KEYP.
* CALL DELETE (FILE,TSTAT,CSTAT,KEYN,KEYP).
*
* TO LOCK A RECORD -
* ENTER "LOCK" USING FILE,TSTAT,KEYN,KEYP.
* CALL LOCK (FILE,TSTAT,KEYN,KEYP).
*
* TO LOCK A FILE -
* ENTER "FLOCK" USING FILE,TSTAT.
* CALL FLOCK (FILE,TSTAT).
*
* TO OPEN A FILE FOR A DATA BASE -
* ENTER "OPEN" USING FILE,TSTAT,CSTAT.
* CALL OPEN (FILE,TSTAT,CSTAT).
*
* TO READ A RECORD BY KEY -
* ENTER "READ" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
* KSTAT,KEYID,KEYA,KEYL.
* CALL READ (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
* KSTAT,KEYID,KEYA,KEYL).
*
* TO READ A RECORD BY KEY WITH LOCK -
* ENTER "READL" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
* KSTAT,KEYID,KEYA,KEYL.
* CALL READL (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYN,KEYP,
* KSTAT,KEYID,KEYA,KEYL).
*
* TO READ A RECORD BY MAJOR KEY -
* ENTER "READM" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
* KEYRL,KEYN,KEYP,MKEYL,KSTAT,KEYID.
* CALL READM (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYA,
* KEYRL,KEYN,KEYP,MKEYL,KSTAT,KEYID).
*
* TO READ NEXT RECORD -
* ENTER "READN" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,
* KSTAT.
* CALL READN (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,KSTAT).
*
* TO READ NEXT RECORD WITH LOCK -
* ENTER "READNL" USING FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,
* KSTAT.
* CALL READNL (FILE,TSTAT,CSTAT,WSA,WSAL,RL,KEYR,KEYL,KSTAT).
*
* TO REWIND A FILE -
* ENTER "REWIND" USING FILE,TSTAT,CSTAT.
* CALL REWIND (FILE,TSTAT,CSTAT).
*
* TO REWRITE A RECORD -
* ENTER "REWRITE" USING FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP.
* CALL REWRITE (FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP).
*
* TO SKIP A LOGICAL RECORD BACKWARD -
* ENTER "SKIPBL" USING FILE,TSTAT,CSTAT,COUNT.
* CALL SKIPBL (FILE,TSTAT,CSTAT,COUNT).
*
* TO SKIP A LOGICAL RECORD FORWARD -
* ENTER "SKIPFL" USING FILE,TSTAT,CSTAT,COUNT.
* CALL SKIPFL (FILE,TSTAT,CSTAT,COUNT).
*
* TO ESTABLISH A POSITION ON A FILE -
* ENTER "START" USING FILE,TSTAT,CSTAT,RELOP,KEYN,KEYP,KSTAT,
* KEYID,MKEYL.
* CALL START (FILE,TSTAT,CSTAT,RELOP,KEYN,KEYP,KSTAT,
* KEYID,MKEYL.
*
* TO UNLOCK A RECORD -
* ENTER "UNLOCK" USING FILE,TSTAT,KEYN,KEYP.
* CALL UNLOCK (FILE,TSTAT,KEYN,KEYP).
*
* TO UNLOCK A FILE -
* ENTER "UNFLOCK" USING FILE,TSTAT.
* CALL UNFLOCK (FILE,TSTAT).
*
* TO WRITE A RECORD -
* ENTER "WRITE" USING FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP.
* CALL WRITE (FILE,TSTAT,CSTAT,WSA,RL,KEYN,KEYP).
*
* THE PARAMETERS FOR *TAF CRM* REQUESTS ARE DEFINED BELOW -
*
* XXPFNI (FILE) - FILE NAME SELECTED BY DATA BASE ADMINIS-
* TRATOR. THE FILE NAME MUST BEGIN ON A WORD BOUNDARY
* AND CONSIST OF 2-7 CHARACTERS WITH BLANK OR BINARY
* ZERO FILL.
* COBOL5 - 01 LEVEL DATA NAME.
* FORTRAN - INTEGER.
*
* TAF-STATUS (TSTAT) - TRANSACTION FACILTY STATUS.
* SEE DECK *COMKTER.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* CRM-STATUS (STAT) - ERROR CODE STATUS FOR *CRM*.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* WSA-NAME (WSA) - SPECIFIES THE AREA TO CONTAIN THE RECORD.
* COBOL5 - 01 LEVEL DATA NAME.
* FORTRAN - INTEGER ARRAY.
*
*
* WSA-LENGTH (WSAL) - SPECIFIES THE LENGTH OF THE AREA
* IDENTIFIED BY THE WSA-NAME.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-AREA (KEYA) - SPECIFIES THE FIELD TO CONTAIN THE
* PRIMARY KEY RETURNED ON A READ REQUEST.
* COBOL5 - 01 LEVEL DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-AREA-LENGTH (KEYAL) - THE LENGTH OF THE FIELD IDENTIFIED
* BY THE KEY-AREA PARAMETER.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* MAJOR-KEY-LENGTH (MKEYL) - THE LENGTH OF THE MAJOR KEY.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-OFFSET (KEYP) - THE BEGINNING POSITION OF THE
* PRIMARY KEY.
* COBOL5 - 01 COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-NAME (KEYN) - DATA NAME THE CONTAINS THE PRIMARY KEY.
* COBOL5 - 01 LEVEL DATA NAME.
* FORTRAN - INTEGER.
*
* RECORD-LENGTH (RL) - DATA NAME THE SPECIFIES THE LENGTH
* OF THE RECORD RETURNED BY *TAF* AFTER ISSUING
* A READ REQUEST. ALSO, THE LENGTH OF THE RECORD
* TO BE WRITTEN TO THE DATA BASE FROM THE AREA
* IDENTIFIED BY THE WSA-NAME PARAMETER.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* COUNT - COUNT OF LOGICAL RECORDS TO SKIP.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-STATUS (KSTAT) - DATA NAME THAT SPECIFIES THE FIELD TO
* CONTAIN A KEY STATUS CODE RETURNED BY *TAF*.
* COBOL5 - 01 LEVEL COMPUTATIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* KEY-IDENTIFIER (KEYID) - A DATA NAME THE SPECIFIES
* THE KEY, ALTERNATE OR PRIMARY, FOR ACCESS.
*
* NEGATIVE - NO CHANGE IN KEY ACCESS.
* 0 - PRIMARY KEY.
* N - VALUE ASSOCIATED WITH THE
* KEY BY AN *AKY* COMMAND.
* COBOL5 - 01 LEVEL COMPUTIONAL DATA NAME.
* FORTRAN - INTEGER.
*
* RELATION-OPERATOR (RELOP) - VALUES EQ, GT, OR GE.
* A DATA NAME THAT SPECIFIES THE POSITION RELATIVE
* TO THE GIVEN KEY AFTER THE OPERATION.
* COBOL5 - 01 LEVEL COMPUTATION-1 DATA NAME.
* FORTRAN - INTEGER.
*
* UBEGIN - A JOB SUPPLIED VALUE TO DEFINE A
* RESTART POSITION.
* COBOL5 - 01 LEVEL COMPUTIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
* PBEGIN - THE BEGINNING IDENTIFIER OF THE
* PREVIOUS *DBEGIN* REQUEST.
* COBOL5 - 01 LEVEL COMPUTIONAL-1 DATA NAME.
* FORTRAN - INTEGER.
*
SPACE 4,20
*** DAYFILE MESSAGES.
*
* TAF FUNCTION CODE NOT VALID.
* TAF CANNOT PROCESS THE REQUEST ISSUED BECAUSE
* IT IS AN UNRECOGNIZABLE FUNCTION CODE. THIS IS
* AN INTERNAL ERROR.
*
*
* TAF TWO OUTSTANDING REQUEST.
* TAF RECIEVED ANOTHER REQUEST FROM A USER PROGRAM
* BEFORE THE PREVIOUS REQUEST WAS SATISFIED. THIS
* IS AN INTERNAL ERROR.
*
*
* TAF SUBSYSTEM BUSY.
* TAF WAS BUSY AND COULD NOT ACCEPT THE BATCH REQUEST.
*
*
* TAF/CRM FUNCTION CODE NOT VALID.
* *TAF/CRM* CANNOT PROCESS THE REQUEST ISSUED BECAUSE
* IT IS AN UNRECOGNIZABLE FUNCTION CODE. THIS
* IS AN INTERNAL ERROR.
*
*
* TAF USER NOT VALID FOR TAF ACCESS.
* BATCH USER WAS NOT VALIDATED TO USE *TAF*.
*
*
* TAF USER NAME ACTIVE.
* SOME OTHER BATCH OR TERMINAL JOB IS CURRENTLY
* ACCESSING *TAF/CRM* UNDER THIS USER NAME.
*
*
* TAF DATA NOT WITHIN UCP FL.
* TAF CANNOT READ (WRITE) DATA FROM USER PROGRAM
* BECAUSE THE ADDRESS SPECIFIED IS OUTSIDE THE
* *UCP* (USER CONTROL POINT) *FL* (FIELD LENGTH).
*
*
* TAF/CRM TAF STATUS ERROR XXXX IN FUNCTION YYYYYYY.
* AN TAF-STATUS ERROR CODE NNN WAS RETURNED TO
* THE PROGRAM FROM FUNCTION XXXXXXX.
*
*
* TAF/CRM CRM STATUS ERROR XXXX IN FUNCTION YYYYYYY.
* AN CRM-STATUS ERROR CODE NNN WAS RETURNED TO
* THE PROGRAM FROM FUNCTION XXXXXXX.
*
* TAF USER CONFLICT IN ACCESS TYPE.
* BATCH JOB TRIED TO ACCESS AS INTERACTIVE.
*
* TAF ERROR CODE NOT DEFINED.
* *BAAML* COULD NOT FIND PROPER ERROR CODE.
*
* TAF RECOVERY REQUEST ERROR.
* TAF DETECTED AN ERROR IN THE RECOVERY REQUEST.
*
* BATCH CONCURRENCY DISABLED.
* TAF WAS NOT INITIALIZED WITH BATCH CONCURRENCY
* ENABLED.
*
* TAF/CRM DATA MANAGER NOT LOADED IN TAF.
* THE CRM DATA MANAGER WAS NOT LOADED WHEN
* TAF WAS INITIALIZED.
SPACE 4,10
*** OPERATOR MESSAGES.
*
* TAF IDLE (GO OR DROP).
* ACCESS TO *TAF* DENIED BECAUSE IT IS IDLING DOWN.
*
* TAF SUBSYSTEM NOT PRESENT (GO OR DROP).
* THE *TAF* SUBSYSTEM WAS NOT PRESENT WHEN A BATCH
* JOB TRIED TO CONNECT TO IT.
SPACE 4,10
** FCTM - FUNCTION CODE TABLE ERROR.
*
* *FCTM* IS A MACRO THAT IS USED TO BUILD A TABLE
* FOR PROCESSING THE RESPONSE FROM *TAF/CRM*.
*
* ENTRY FCTM MSG,RUT,DSP,ERC
* MSG - MESSAGE TO BE ISSUED.
* RUT - ROUTINE TO DO THE PROCESSING.
* DSP - DISPLAY MESSAGE TO PROPER DAYFILE.
* ERC - ERROR CODE RESPONSE.
FCTM MACRO MSG,RUT,DSP,ERC
VFD 18/MSG,18/RUT,6/DSP,18/ERC
FCTM ENDM
SPACE 4,10
*** COMMON DECKS.
*CALL COMCMAC
*CALL COMKTRN
*CALL COMKTDM
*CALL COMKIPR
LIST X
*CALL COMKFLD
*CALL COMKTSC
BEGNX BSS 0
*CALL COMKCRM
*CALL COMKTER
ORG BEGNX DO NOT RESERVE SPACE FOR *TAF/CRM* TABLES
QUAL SCP
*CALL COMSSCP
QUAL SSD
*CALL COMSSSD
QUAL
LIST -X
TITLE SUB-FUNCTION FOR *CRM* CALLS.
SPACE 4,10
**** ASSEMBLY CONSTANTS.
TCHL EQU 10 NUMBER OF CHARACTERS IN A WORD
TMKL EQU 255 MAXIMUN LENGTH OF A KEY IN CHARACTERS
TMKW EQU 24 MAXIMIN LENGTH OF A KEY IN WORDS
THRL EQU 2 LENGTH OF PACKET HEADER
EJECT
CLOSE SPACE 4,15
** CLOSE - CLOSE A FILE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT *TAF* AND *CRM* STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
CLOSE SUBR ENTRY/EXIT
SB2 TPCLL MAXIMUM NUMBER OF PARAMETERS
SX7 TRCL CLOSE SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUE *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ CLOSEX RETURN
DBCOMIT SPACE 4,15
** DBCOMIT - MARK END OF UPDATE SEQUENCE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE.
*
* USES X - 1, 2, 7.
* A - 1, 2, 7.
* B - 2.
*
* CALLS PRT, DCF.
DBCOMIT SUBR ENTRY/EXIT
SB2 TPDCL MAXIMUM NUMBER OF PARAMETERS
SX7 TRDC SUB-FUNCTION CODE
RJ DCF PROCESS REQUEST
EQ DBCOMITX RETURN
DBEGIN SPACE 4,15
** DBEGIN - DESIGNATE A DATA BASE AS RECOVERABLE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 1, 2, 7.
* A - 1, 2, 7.
* B - 2.
*
* CALLS PRT, RQS, RTT.
DBEGIN SUBR ENTRY/EXIT
SB2 TPDBL MAXIMUM NUMBER OF PARAMETERS
SX7 TRDB SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUE *TAF/CRM* REQUEST
SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
ZR X2,DBN1 IF NO ERRORS
BX1 X2
RJ RTT ISSUE ERROR MESSAGE
DBN1 SX7 B6-TPDBL NUMBER OF PARAMTERS
NG X7,DBEGINX IF NOT ENOUGH PARAMTERS
SA2 A1+TPTS ADDRESS TO PUT TAF-STATUS
SA1 TPKT+THRL+TPTS TAF-STATUS
BX7 X1
SA7 X2 SET TAF-STATUS
EQ DBEGINX RETURN
DBFREE SPACE 4,15
** DBFREE - ROLLBACK ALL UPDATES TO A FILE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 1, 2, 7.
* A - 1, 2, 7.
* B - 2.
*
* CALLS PRT, DCF.
DBFREE SUBR ENTRY/EXIT
SB2 TPDFL MAXIMUM NUMBER OF PARAMETERS
SX7 TRDF SUB-FUNCTION CODE
RJ DCF PROCESS REQUEST
EQ DBFREEX RETURN
DBSTAT SPACE 4,15
** DBSTAT - FIND LAST BEGIN/COMMIT SEQUENCE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 1, 2, 3, 7.
* A - 2, 3, 7.
* B - 2.
*
* CALLS PRT, RQS, RTT.
DBSTAT SUBR ENTRY/EXIT
SB2 TPDSL MAXIMUM NUMBER OF PARAMETERS
SX7 TRDS SUB-FUNCTION CODE
RJ PRT PRESET
SX7 B6-TPDSL PARAMETERS
NG X7,DBS1 IF NOT ENOUGH PARAMETERS
SA2 A1+TPPI PREVIOUS DBCOMIT STATUS
SA2 X2 VALUE
BX7 X2
SA7 TPKT+THRL+TPPI PREVIOUS DBCOMIT STATUS
DBS1 RJ RQS ISSUE *TAF/CRM* REQUEST
SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
ZR X2,DBS2 IF NO ERRORS
BX1 X2
RJ RTT ISSUE ERROR MESSAGE
DBS2 SX7 B6-TPDSL MINIMUM NUMBER OF PARAMETERS
NG X7,DBSTATX IF NOT ENOUGH PARAMETERS
SA3 TPKT+THRL+TPCI DBSTAT FROM *TAF/CRM*
SA2 A1+TPCI DBSTAT ADDRESS
BX7 X3
SA7 X2
SA3 TPKT+THRL+TPTS TAF-STATUS
SA2 A1+TPTS TAF-STATUS ADDRESS
BX7 X3
SA7 X2
SA3 TPKT+THRL+TPPI DBSTAT FROM *TAF/CRM*
SA2 A1+TPPI DBSTAT ADDRESS
BX7 X3
SA7 X2
EQ DBSTATX RETURN
DELETE SPACE 4,15
** DELETE - DELETE A RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND ADDRESS RETURNED.
*
* USES X - 7.
* A - 7.
* B - 2, 4.
*
* CALLS CKF, PRT, RQS, RTS.
DELETE SUBR ENTRY/EXIT
SB2 TPDEL MAXIMUM NUMBER OF PARAMETERS
SX7 TRDE SUB-FUNCTION CODE
RJ PRT PRESET
SX7 B6-TPDEL MINIMUM NUMBER OF PARAMETERS
NG X7,DEL1 IF NOT ENOUGH PARAMETERS
SB4 0 SET NO MAJOR KEY-LENGTH
SB2 TPDK INDEX TO KEY-AREA IN PATAMERER LIST
RJ CKF CHECK AND TRANSFER KEY
NZ X7,DEL2 IF KEY-OFFSET ERROR
DEL1 RJ RQS ISSUE *TAF/CRM* REQUEST
DEL2 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ DELETEX RETURN
FLOCK SPACE 4,15
** FLOCK - LOCK A FILE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
FLOCK SUBR ENTRY/EXIT
SB2 TPLFL MAXIMUM NUMBER OF PARAMETERS
SX7 TRLF SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUE *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ FLOCKX RETURN
LOCK SPACE 4,15
** LOCK - LOCK RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 1, 2, 7.
* A - 1, 2, 7.
* B - 2, 4.
*
* CALLS PRT, RQS, CKF, RTT.
LOCK SUBR ENTRY/EXIT
SB2 TPLCL MAXIMUM NUMBER OF PARAMETERS
SX7 TRLC SUB-FUNCTION CODE
RJ PRT PRESET
SX7 B6-TPLCL MINIMUM NUMBER OF PARAMETERS
NG X7,LOK1 IF NOT ENOUGH PARAMETERS
SB2 TPKL INDEX FOR KEY-NAME TO PARAMETER LIST
SB4 0 SET NO MAJOR-KEY-LENGTH
RJ CKF CHECK AND TRANSFER KEY
NZ X7,LOK2 IF KEY-OFFSET ERRORS
LOK1 RJ RQS ISSUE *TAF/CRM* REQUEST
LOK2 SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
ZR X2,LOK3 IF NO ERRORS
BX1 X2
RJ RTT ISSUE ERROR MESSAGE
LOK3 SX7 B6-TPPI MINIMUM NUMBER OF PARAMETERS
NG X7,LOCKX IF NOT ENOUGH PARAMETERS
SA2 A1+TPTS ADDRESS TO RETURN DBSTAT
SA1 TPKT+THRL+TPTS TAF-STATUS FROM DBSTAT
BX7 X1
SA7 X2 TAF-STATUS TO PROGRAM
EQ LOCKX RETURN
OPEN SPACE 4,15
** OPEN - OPEN DATA BASE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETE AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
OPEN SUBR ENTRY/EXIT
SB2 TPOPL MAXIMUM NUMBER OF PARAMETERS
SX7 TROP SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUES *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ OPENX RETURN
READ SPACE 4,15
** READ - READ BY KEY.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* EXIT READ FUNCTIN COMPLETE AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS RAD.
READ SUBR ENTRY/EXIT
SB2 TPRDL MAXIMIM NUMBER OF PARAMETERS
SX7 TRRD SUB-FUNCTION CODE
RJ RAD PROCESS READ AND READL FUNCTIONS
EQ READX RETURN
READL SPACE 4,15
** READL - READ AND LOCK RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS RAD.
READL SUBR ENTRY/EXIT
SB2 TPRLL MAXIMUM PARAMETERS FOR READ
SX7 TRRL SUB-FUNCTION CODE
RJ RAD PROCESS READ AND READL FUNCTIONS
EQ READLX RETURN
READM SPACE 4,15
** READM - READ BY MAJOR KEY.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 0, 7.
* B - 2.
*
* CALLS RDM.
READM SUBR ENTRY/EXIT
SB2 TPRML MAXIMUM NUMBER OF PARAMETERS
SX7 TRRM SUB-FUNCTION CODE
SX0 TRRM SET SWITCH FOR CALL BY READM
RJ RDM PROCESS READM FUNCTION
EQ READMX RETURN
READNL SPACE 4,15
** READNL - READ NEXT RECORD WITH LOCK.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 0, 7.
* B - 2.
*
* CALLS RDM.
READNL SUBR ENTRY/EXIT
SX7 TRRO SUB-FUNCTION CODE
SB2 TPROL MAXIMUM NUMBER OF PARAMETERS
SX0 0 INDICATE NOT CALLED BY READM
RJ RDM PROCESS READNL FUNCTION
EQ READNLX RETURN
READN SPACE 4,15
** READN - READ NEXT RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 0, 7.
* B - 2.
*
* CALLS RDM.
READN SUBR ENTRY/EXIT
SB2 TPRNL MAXIMUM NUMBER OF PARAMETERS
SX7 TRRN SUB-FUNCTION CODE
SX0 0 INDICATE NOT CALLED BY READM
RJ RDM PROCESS READN FUNCTION
EQ READNX RETURN
REWIND SPACE 4,15
** REWIND - REWIND FILE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
REWIND SUBR ENTRY/EXIT
SB2 TPRPL MAXIMUM NUMBER OF PARAMETERS
SX7 TRRP SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUE *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ REWINDX RETURN
REWRITE SPACE 4,15
** REWRITE - REWRITE RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS WRR.
REWRITE SUBR ENTRY/EXIT
SB2 TPRWL MAXIMUM NUMBER OF PARAMETER
SX7 TRRW SUB-FUNCTION
RJ WRR REWRITE RECORD
EQ REWRITEX RETURN
SKIPBL SPACE 4,15
** SKIPBL - SKIP BACKWARD LOGICAL RECORDS.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS SKP.
SKIPBL SUBR ENTRY/EXIT
SB2 TPSBL MAXIMUM NUMBER OF PARAMETERS
SX7 TRSB SUB-FUNCTION CODE
RJ SKP PROCESS SKIP FUNCTION
EQ SKIPBLX RETURN
SKIPFL SPACE 4,15
** SKIPFL - SKIP FORWARD LOGICAL RECORDS.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS SKP.
SKIPFL SUBR ENTRY/EXIT
SB2 TPSFL MAXIMUM NUMBER OF PARAMETERS
SX7 TRSF SUB-FUNCTION FOR *TAF/CRM*
RJ SKP PROCESS SKIP FUNCTION
EQ SKIPFLX RETURN
START SPACE 4,15
** START - POSITION A FILE AT OR AFTER A GIVEN KEY.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 1, 2, 3, 7.
* A - 2, 3, 7.
* B - 4.
*
* CALLS CKF, PRT, RQS, RTS.
START SUBR ENTRY/EXIT
SB2 TPSTL MAXIMUM NUMBER OF PARAMETERS
SX7 TRST SUB-FUNCTION CODE
RJ PRT PRESET
SX1 B6-TPSTF REQUIRED NUMBER OF PPARAMETERS
NG X1,SRT2 IF NOT ENOUGH PARAMETERS
SA2 A1+TPSR RELATION-OPERATOR
SB4 0
SA2 X2 VALUE OF RELATION-OPERATOR
BX7 X2
SX1 B6-TPSM PARAMETERS
SA7 TPKT+THRL+TPSR RELATION-OPERATOR TO PACKET
NG X1,SRT1 IF END OF PARAMETERS
SA2 A1+TPSO KEY-IDENTIFIER
SA2 X2 VALUE
BX7 X2
SA7 TPKT+THRL+TPSO KEY-IDENTIFIER TO PACKET
ZR X1,SRT1 IF END OF PARAMETERS
SA2 A1+TPSM MAJOR-KEY-INDEX
SA2 X2
BX7 X2
SB4 X2+
SA7 TPKT+THRL+TPSM MAJOR-KEY-LENGTH TO PACKET
SRT1 SB2 TPSK KEY-AREA INDEX
RJ CKF TRANSFER KEY
NZ X7,SRT3 IF KEY-OFFSET ERROR
SRT2 RJ RQS ISSUE *TAF/CRM* REQUEST
SRT3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
SX2 B6-TPSTF REQUIRED PARAMETER
NG X2,STARTX IF NOT ENOUGH PARAMETERS
ZR X2,STARTX IF END OF PARAMETERS
SA2 A1+TPSF KEY-STATUS ADDRESS
SA3 TPKT+THRL+TPSF KEY-STATUS
BX7 X3
SA7 X2
EQ STARTX RETURN
UNFLOCK SPACE 4,15
** UNFLOCK - UNLOCK FILE.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
UNFLOCK SUBR ENTRY/EXIT
SB2 TPUFL MAXIMUM NUMBER OF PARAMETERS
SX7 TRUF SUB-FUNCTION CODE
RJ PRT PRESET
RJ RQS ISSUE *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ UNFLOCKX RETURN
UNLOCK SPACE 4,15
** UNLOCK - UNLOCK RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 1, 2, 7.
* A - 1, 2, 7.
* B - 2, 4.
*
* CALLS PRT, CKF, RQS, RTT.
UNLOCK SUBR ENTRY/EXIT
SB2 TPUCL MAXIMUM NUMBER OF PARAMETERS
SX7 TRUC SUB-FUNCTION CODE
RJ PRT PRESET
SX7 B6-TPUCL CHECK NUMBER OF PARAMETERS
NG X7,UNL1 IF NOT ENOUGH PARAMETERS
SB2 TPKL KEY POSITION
SB4 0 SET NO MAJOR-KEY-LENGTH
RJ CKF TRANSFER KEY
NZ X7,UNL2 IF KEY-OFFSET ERRORS
UNL1 RJ RQS ISSUE *TAF/CRM* REQUEST
UNL2 SA2 TPKT+THRL+TPTS TAF-STATUS FROM AAMI
ZR X2,UNL3 IF NO ERRORS
BX1 X2
RJ RTT ISSUE ERROR MESSAGE
UNL3 SX7 B6-TPPI MINIMUM NUMBER OF PARAMETERS
NG X7,UNLOCKX IF NOT ENOUGH PARAMETERS
SA2 A1+TPTS ADDRESS TO RETURN DBSTAT
SA1 TPKT+THRL+TPTS TAF-STATUS FROM DBSTAT
BX7 X1
SA7 X2 TAF-STATUS TO PROGRAM
EQ UNLOCKX RETURN
WRITE SPACE 4,15
** WRITE - WRITE RECORD.
*
* ENTRY (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 7.
* B - 2.
*
* CALLS WRR.
WRITE SUBR ENTRY/EXIT
SB2 TPWRL MAXIMUM NUMBER OF PARAMETERS
SX7 TRWR SUB-FUNCTION CODE
RJ WRR WRITE A RECORD
EQ WRITEX RETURN
TITLE UTILITIES FOR *CRM* FUNCTIONS.
CKF SPACE 4,20
** CKF - CHECK KEY FIELD LENGTH.
*
* ENTRY (TSA1) = POINTER TO PARAMETER LIST.
* (A1) = ADDRESS OF PARAMETER LIST.
* (B2) = INDEX OF PARAMETER LIST FOR KEY-NAME.
* (B3) = INDEX OF PACKET FOR KEY-NAME ADDRESS.
* (B4) = MAJOR-KEY-LENGTH IF NON-ZERO.
*
* EXIT (TPKT+15) = KEY.
* (X7) - ZERO, NO ERRORS.
* (X7) - NON-ZERO, IF ERROR IN KEY-OFFSET.
*
* USES X - 1, 2, 3, 6, 7.
* A - 2, 3, 6, 7.
* B - 2, 4.
*
* MACRO GETFLC.
*
* CALL MST.
CKF SUBR ENTRY/EXIT
SA3 A1+B2 KEY-NAME ADDRESS
SA2 A3+B1 KEY-OFFSET
SA2 X2 VALUE OF KEY-OFFSET
SX3 X3 ADDRESS ONLY
ZR X2,CKF3 IF KEY-OFFSET ZERO
NG X2,CKF3 IF KEY-OFFSET IS NEGATIVE
SX1 TCHL NUMBER OF CHARACTERS IN A WORD
BX7 X1
BX6 X2
IX6 X6/X7 NUMBER OF WORDS TO KEY-NAME
IX7 X6+X3 ADDRESS PLUS NUMBER OF WORDS
IX1 X1*X6 NUMBER OF CHARACTERS TO KEY-OFFSET
IX2 X2-X1 KEY-OFFSET
SX6 B1
SA7 TPKT+THRL+B2 KEY-NAME ADDRESS
SA6 A7+B1 SET KEY-OFF TO ONE FOR *TAF/CRM*
SB2 X2 KEY-OFFSET FOR MOVE
SX3 X7+ KEY-NAME ADDRESS FOR MOVE
GETFLC CKFA FIELD LENGTH OF JOB
SA2 CKFA MEMORY VALUE
MX1 12 MASK FOR FIELD CENTRAL MEMORY
BX2 X2*X1
SX7 X7+TMKW ADDRESS OF KEY-NAME PLUS KEY
LX2 17-59 POSITION FIELD LENGTH
IX7 X7-X2 SUBTRACT KEY-NAME PLUS KEY SIZE
NE B4,CKF1 IF NOT MAJOR-KEY-LENGTH
SB4 TMKL MAXIMUM LENGTH OF KEY
CKF1 NG X7,CKF2 IF KEY-NAME ADDRESS NOT TO LARGE
SB4 TCHL REDUCE KEY MOVE TO ONE WORD
CKF2 SB5 TKEY ADDRESS TO TRANSFER KEY
SA2 X3 KEY-NAME TRANSFER
SB2 B2-B1
RJ MST MOVE KEY INTO PACKET
BX7 X7-X7 SET NO ERRORS
EQ CKFX RETURN
CKF3 SX7 TERQ INVALID KEY-OFFSET
SA7 TPKT+THRL+TPCS *TAF/CRM* ERROR STATUS SET
EQ CKFX RETURN
CKFA BSSZ 1 FIELD LENGTH OF PROGRAM
CWS SPACE 4,15
** CWS - CALCULATE *WSA* LENGTH.
*
* ENTRY (A1) = PARAMETER LIST ADDRESS.
*
* EXIT (LWRA) = *LWA* OF LAST *WSA*.
* (LWRB) = MASK FOR LAST *WSA*.
* (LWRC) = CONTENTS OF *LWA* OF *WSA*.
*
* USES X - 2, 3, 5, 6, 7.
* A - 2, 3, 6, 7.
* B - 4.
CWS SUBR ENTRY/EXIT
SX7 0
SX5 TCHL NUMBER OF CHARACTER IN A WORD
SA3 A1+TPWL WSA-LENGTH ADDRESS
SA7 LWRB VALUE OF MASK MUST BE ZERO
SA2 A3-B1 WSA-NAME ADDRESS
SA3 X3 VALUE OF LENGTH
SX6 X2
BX7 X3 VALUE OF WSA-LENGTH
SA6 TPKT+THRL+TPWS ADDRESS OF WSA INTO PACKET
PX5 X5 PACK CHARACTERS IN WORD
SA7 A6+B1 LENGTH OF WSA INTO PACKET
PX7 X7 PACK WSA-LENGTH
NX5 X5 NORMALIZE VALUE
FX7 X7/X5 DIVIDE LENGTH BY 10
UX7 B4,X7 UNPACK LENGTH IN WORDS
SX5 TCHL RESTORE CHARACTERS IN WORD
LX7 X7,B4 ADJUST LENGTH IN WORDS
SB4 X7 ADJUST WORD COUNT
SA2 X6+B4 ADDRESS AND VALUE OF LAST WORD
IX6 X5*X7 NUMBER OF CHARACTERS IN LAST WORD
BX7 X2 VALUE OF LAST WORD
IX5 X3-X6 NUMBER OF CHARACTERS IN LAST WORD
ZR X5,CWSX IF END ON WORD BOUNDRY
SX6 A2+ ADDRESS OF LAST WORD
SA7 LWRC VALUES OF LAST WORD
SA6 LWRA ADDRESS OF LAST WORD
LX7 X5,B1 THE NEXT LINES OF CODE WILL MULTIPLY BY 6
MX2 1
* THE NEXT LINES OF CODE WILL MULITIPLY THE NUMBER IN
* X5 BY 6. THE VALUES IN X5 WILL BE 1 THROUGH 9 WILL
* RESULT IN VALUSE OF 6 THROUGH 56 RESPECTIVELY.
LX5 X7,B1
SB4 X5-1
SB4 B4+X7
AX7 X2,B4 FORM MASK
BX7 -X7
SA7 LWRB SAVE MASK
EQ CWSX RETURN
DCF SPACE 4,15
** DCF - DBCOMIT AND DBFREE PROCESSOR.
*
* ENTRY (B2) - NUMBER FOR PARAMETERS.
* (X7) - VALUE OF SUBFUNCTION.
*
* EXIT FUNCTION PROCESSED AND STATUS RETURNED.
*
* USES X - 1, 2, 7.
* A - 2, 7.
*
* CALLS PRT, RTT.
DCF SUBR ENTRY/EXIT
RJ PRT PRESET
SX7 0 CLEAR OUT LFN IN PACKET AREA
SA7 TPKT+THRL+TPSX CLEARED
RJ RQS ISSUE *TAF/CRM* REQUEST
SA2 TPKT+THRL+TPSX TAF-STATUS FROM AAMI
ZR X2,DCF1 IF NO ERRORS
BX1 X2
RJ RTT ISSUE ERROR MESSAGE
DCF1 SX7 B6-TPDCL NUMBER OF PARAMETERS
NG X7,DCFX IF NOT ENOUGH PARAMETERS
SA2 TPKT+THRL+TPSX TAF-STATUS
BX7 X2
SA7 X1 SET TAF-STATUS
EQ DCFX RETURN
LWR SPACE 4,15
** LWR - LAST WORD AND RECORD LENGTH RESTORED.
*
* ENTRY (LWRB) = MASK FOR LAST WORD.
* (LWRA) = ADDRESS OF LAST WORD.
* (LWRC) = VALUE OF LAST WORD.
* (TPKT+7) = RECORD LENGTH OF READ.
* (A1) = POINTER TO PARAMETER LIST.
*
* (B2) = LENGTH TO PACKET HEADER
*
* EXIT RECORD LENGTH AND LAST WORD OF RECORD AREA
* RESTORED.
*
* USES X - 2, 3, 4, 6.
* A - 2, 3, 4, 6.
*
* NOTE (LWRA), (LWRB), AND (LWRC) ARE CONSECUTIVE
* LOCATIONS.
LWR SUBR ENTRY/EXIT
SA3 TPKT+THRL+TPRL NUMBER OF CHARACTERS FROM PACKET
SA2 A1+TPRL RECORD LENGTH
ZR X3,LWRX IF NO RECORD RETURNED
BX6 X3
SA6 X2 LENGTH OF RECORD READ
SA3 LWRA ADDRESS OF LAST WORD OF RECORD
SA2 A3+B1 MASK FOR LAST WORD IN RECORD
SA4 A2+B1 VALUE OF LAST WORD
SA3 X3+
ZR X2,LWRX IF END ON WORD BOUNDRY
BX4 X2*X4 LAST WORD
BX3 -X2*X3 CHARACTERS TO TRANSFER
BX6 X3+X4 VALUE OF OLD LAST WORD PLUS NEW
SA6 A3 RESTORE LAST WORD OF RECORD
EQ LWRX RETURN
LWRA BSSZ 1 ADDRESS OF LAST WORD OF WORKING STORAGE
LWRB BSSZ 1 MASK OF LAST WORD IN WORD STORAGE
LWRC BSSZ 1 VALUE OF LAST WORD IN RECORD
MST SPACE 4,15
** MST - TO MOVE THE KEY TO PACKET AREA.
*
* ENTRY (B2) = CHARACTER POSITION OF GOOD DATA.
* (B5) = ADDRESS TO RECIEVE TEXT.
* (A2) = ADDRESS OF DATA STRING TO TRANSFER.
* (X2) = FIRST WORD OF DATA.
* (B4) = TOTAL NUMBER OF CHARACTERS TO TRANSFER.
*
* EXIT DATA TRANSFERED COMPLETE.
* (B6) - RESTORED TO NUMBER OF PARAMETERS.
*
* USES X - 1, 2, 3, 6, 7.
* A - 2, 6.
* B - 2, 3, 4, 5, 6.
MST2 MX1 1
LX7 X1,B4 SHIFT TO FORM MASK
LX1 X7,B1
BX1 X1*X7
BX6 X1*X6
SA2 TNPR NUMBER OF PARAMETERS IN CALL
SA6 B5
SB6 X2+ RESTORE NUMBER OF PARAMETERS
MST SUBR ENTRY/EXIT
SB3 B2+B2 CHANGE CHARACTER COUNT TO BIT COUNT
SB2 B3+B3
SB2 B2+B3
SB3 B4+B4 CHANGE NUMBER OF CHARACTERS
SB4 B3+B3
SB4 B4+B3
SB4 -B4 CHANGE TO MINUS BIT COUNT
SB3 B2-60
MX1 1
LX7 X1,B3
LX1 X7,B1
BX1 X1*X7
LX2 B2 POSITION STRING BEGINNING
BX3 X1*X2
BX6 X3
SB6 B3-B2
LT B3,B4,MST2 IF LAST WORD
MST1 SA2 A2+B1
LX2 B2
BX6 -X1*X2
BX6 X3+X6
BX3 X1*X2
GE B4,B6,MST2 IF LAST WORD
SB4 B4-B6
SA6 B5 STORE FIRST/NEXT WORD
SB5 B5+B1
EQ MST1 CONTINUE MOVE
MTS SPACE 4,15
** MTS - TO MOVE TEXT TO STRING.
*
* ENTRY (A1) = ADDRESS TO TRANSMIT DATA.
* (X1) = FIRST DATA TO TRANSMIT.
* (A2) = ADDRESS TO RECIEVE DATA.
* (B2) = CHARACTER POSITION.
* (B4) = NUMBER OF CHARACTERS TO TRANSMIT.
*
* EXIT DATA TRANSFERED.
*
* USES X - 0, 2, 3, 4, 6, 7.
* A - 2, 6.
* B - 2, 3, 4.
MTS2 SA2 A6+1 FETCH RESERVED FIELD
MTS3 SB2 B4-60 REMAINING BITS TO TRANSFER
MX0 1
SB2 -B2
AX7 X0,B2
LX0 X7,B1
BX0 X0*X7
BX6 X0*X6 MERGE NEW RESERVED FIELD
BX2 -X0*X2
BX6 X2+X6
SA6 A2+ SET FIRST/LAST STRING WORD
MTS SUBR ENTRY/EXIT
SB3 B2-B1 CHANGE CHARACTERS TO BITS
SB3 B3+B3
SB2 B3+B3
SB2 B3+B2 STARTING BIT POSITION TO TRANSFER
SB3 B4+B4 CHANGE CHARACTERS TO BITS
SB4 B3+B3
SB4 B3+B4 NUMBER OF BITS TO TRANSFER
SB4 -B4 NEGATIVE BITS
SB3 B2-60
MX0 1
AX7 X0,B2
LX0 X7,B1
BX0 X0*X7
AX1 B3 POSITION TEXT
BX4 -X0*X1
BX3 X0*X1
SA1 A1+B1 FETCH NEXT WORD OF TEXT
BX6 X0*X2
BX6 X4+X6
SB4 B4-B3
PL B4,MTS3 IF MOVE IS COMPLETE
SA6 A2 STORE FIRST STRING WORD
MTS1 AX1 B3
BX4 -X0*X1
BX6 X3+X4
BX3 X0*X1
SB4 B4+60
PL B4,MTS2 IF MOVE IS COMPLETED
SA1 A1+B1
SA6 A6+B1 STORE NEXT STRING WORD
EQ MTS1 CONTINUE MOVE
PRT SPACE 4,20
** PRT - PRESET PACKET AND HEADER WORDS.
*
* ENTRY (A1) = ADDRESS TO PARAMETER LIST.
* (X1) = ADDRESS OF FIRST PARAMETER.
* (X7) = SUB-FUNCTION CODE.
*
* EXIT (TSA1) = ADDRESS OF PARAMETER LIST.
* (RQSB) = HEADER WORD SET FOR *TAF/CRM*.
* (TPKT) = INITIALIZED TO ZERO.
* (TPKT+2) = VALUE OF FIRST PARAMETER.
* (TNPR) = NUMBER OF PARAMETERS.
* (TFCD) = NAME CURRENT SUB-FUNCTION.
* (A1) = ADDRESS TO PARAMETER LIST.
* (X1) = ADDRESS OF FIRST PARAMETER.
* (B1) = 1.
* (B6) = NUMBER OF PARAMETERS.
*
* USES X - 2, 6, 7.
* A - 2, 6, 7.
* B - 1, 6.
PRT SUBR ENTRY/EXIT
SA2 PRTA+X7 FUNCTION NAME OF CALLING
SB1 1
BX6 X2
SB6 BUFE-1-TPKT LAST ADDRESS MINUS THE STARTING ADDRESS
SA6 TFCD SET FUNCTION CODE NAME
SX6 0
PRT1 SA6 TPKT+B6 CLEAR CELLS
SB6 B6-1
PL B6,PRT1 IF NOT LAST CELL
SX6 A1+
SA2 X1+ VALUE OF FIRST
SA6 TSA1 SAVE PARAMETER LIST ADDRESS
BX6 X2
SB6 B0
SA6 TPKT+THRL+TPFN FIRST PARAMETER VALUE
PRT2 SA2 A1+B6 NEXT PARAMETER ADDRESS
ZR X2,PRT3 IF END OF PARAMETER LIST
SB6 B6+B1 PARAMETER COUNT
LT B6,B2,PRT2 IF NOT MAXIMUM PARAMETERS
PRT3 SX6 B6 PARAMETER COUNT
SX2 B6
LX7 35-11 POSITION SUB-FUNCTION
LX2 23-5 POSITION COUNT
SA6 TNPR SET NUMBER OF PARAMETER PASSED
BX7 X2+X7 MASK SUB-FUNCTION AND PARAMETER COUNT
PX7 X7 PUT FUNCTION CODE INTO POSITION
SA7 RQSB HEADER WORD (TPKT+1) FOR *TAF/CRM* CALL
EQ PRTX RETURN
PRTA DATA C*CLOSE*
DATA C*DELETE*
DATA C*LOCK*
DATA C*FLOCK*
DATA C*OPEN*
DATA C*READ*
DATA C*READL*
DATA C*READM*
DATA C*READN*
DATA C*READNL*
DATA C*REWIND*
DATA C*REWRITE*
DATA C*SKIPBL*
DATA C*SKIPFL*
DATA C*UNLOCK*
DATA C*UNFLOCK*
DATA C*WRITE*
DATA C*START*
DATA C*DBEGIN*
DATA C*DBCOMIT*
DATA C*DBFREE*
DATA C*DBSTAT*
RTT SPACE 4,20
RAD SPACE 4,20
** RAD - READ AND READL PROCESSOR.
*
* ENTRY (X2) = MAXIMUM PARAMTER COUNT.
* (X7) = SUB-FUNCION CODE.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 1, 2, 3, 7.
* A - 1, 2, 3, 7.
* B - 2, 4.
*
* CALLS CWS, CKF, PRT, RQS, RTS, RKA, LWR.
RAD SUBR ENTRY/EXIT
RJ PRT PRESET
SX7 B6-TPRDF REQUIRED NUMBER OF PARAMETERS
NG X7,RAD2 IF NOT ENOUGH PARAMETERS
RJ CWS CALCULATE LENGTH OF RECORD
SX7 B6-TPRK PARAMETERS REQUIRED FOR KEY-IDENTIFIER
NG X7,RAD1 IF END OF PARAMETER LIST
SA2 A1+TPRO KEY-IDENTIFIER
SA2 X2 VALUE OF KEY-IDENTIFIER
BX7 X2
SA7 TPKT+THRL+TPRO KEY-IDENTIFER INTO PACKET
SX2 B6-TPRLL
NG X2,RAD1 IF END OF PARAMETER LIST
SA3 A1+TPRR ADDRESS OF KEY-AREA-LENGTH
SA2 A3-B1 ADDRESS OF KEY-AREA
SA3 X3 VALUE
SX7 X2+ ADDRESS OF KEY-AREA
SA7 TPKT+THRL+TPRK KEY-AREA ADDRESS TO PACKET
BX7 X3
SA7 A7+B1 KEY-AREA-LENGTH INTO PACKET
RAD1 SB2 TPKA KEY-AREA
SB4 0 SET NO MAJOR-KEY-LENGTH
RJ CKF CHECK FIELD LENGTH AND MOVE KEY
NZ X7,RAD3 IF KEY-OFFSET ERROR
RAD2 RJ RQS ISSUE *TAF/CRM* REQUEST
RAD3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
SA2 TPKT+THRL+TPCS *TAF/CRM* STATUS
NZ X2,RADX IF ERROR RETURN
RJ LWR RESTORE LAST WORD AND RECORD LENGTH
SX2 B6-TPRDF REQUIRED NUMBER OF PARAMETERS
NG X2,RADX IF LESS THEN REQUIRED
ZR X2,RADX IF END OF LIST
SA3 TPKT+THRL+TPRDF KEY-STATUS RESULTS
SA2 A1+TPRDF KEY-STATUS ADDRESS
BX7 X3
SA7 X2 SET KEY-STATUS
SX2 B6-TPRDL PARAMETERS REQUIRED FOR LOCK STATUS
NG X2,RAD4 IF END OF PARAMETER LIST
SA2 TPKT+THRL+TPLB
SA3 A1+TPLB LOCK STATUS ADDRESS
BX7 X2
SA7 X3 RETURN LOCK STATUS
RAD4 SX3 B6-TPRLL PARAMETERS REQUIRED FOR KEY-AREA
NG X3,RADX IF END OF PARAMETER LIST
SA2 A1+TPRK KEY-AREA ADDRESS
RJ RKA RETURN KEY-AREA
EQ RADX RETURN
RDM SPACE 4,20
** RDM - READM/READNL/READN PROCESSOR.
*
* ENTRY (B2) = MAXIMUM NUMBER OF PARAMETERS.
* (X0) = NONZERO IF CALLED BY READM FUNCTION.
* (X7) = SUB-FUNCTION CODE.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 1, 2, 3, 6, 7.
* A - 1, 2, 3, 6, 7.
* B - 2, 4.
*
* CALLS CWS, CKF, PRT, RKA, RQS, RTS.
RDM SUBR ENTRY/EXIT
RJ PRT PRESET
SX1 B6-TPRL PARAMETERS REQUIRED FOR *CWS*
NG X1,RDM2 IF NOT ENOUGH PARAMETERS
RJ CWS WSA-NAME AND WSA-LENGTH
SB4 0 SET NO MAJOR-KEY-LENGTH
SX1 B6-TPRNF REQUIRED NUMBER OF PARAMETERS
NG X1,RDM2 IF NOT ENOUGH PARAMETERS
SA2 A1+TPKW KEY-AREA ADDRESS
SA3 A2+B1 KEY-AREA-LENGTH ADDRESS
SX7 X2 ADDRESS OF KEY-AREA
SA3 X3 VALUE OF KEY-AREA-LENGTH
SX6 X3 VALUE
SA7 TPKT+THRL+TPKW KEY-AREA ADDRESS TO PACKET
SA6 TPKT+THRL+TPLN VALUE OF KEY-AREA-LENGTH
ZR X1,RDM2 IF END OF PARAMETERS
ZR X0,RDM2 IF CALLED BY READN OR READNL
SX1 B6-TPRMF PARAMETERS REQUIRED FOR READM
NG X1,RDM2 IF NOT PARAMETERS FOR READM
SA2 A1+TPMM ADDRESS OF MAJOR-KEY-LENGTH
SA2 X2+ VALUE OF MAJOR-KEY-LENGTH
SB4 X2
BX7 X2
SA7 TPKT+THRL+TPMM MAJOR-KEY-LENGTH INTO PACKET
ZR X1,RDM1 IF END OF PARAMETER LIST
SX1 B6-TPRDL PARAMETERS REQUIRED FOR KEY-IDENTIFIER
NZ X1,RDM1 IF NO KEY-IDENTIFIER
SA3 A1+TPMO ADDRESS OF KEY-IDENTIFIER
SA3 X3 VALUE
BX7 X3
SA7 TPKT+THRL+TPMO VALUE OF KEY-IDENTIFIER INTO PACKET
RDM1 SB2 TPYM INDEX TO PARAMETER LIST FOR KEY-NAME
RJ CKF CHECK AND TRANSFER KEY INTO PACKET
NZ X7,RDM3 IF KEY-OFFSET ERRORS
RDM2 RJ RQS ISSUE *TAF/CRM* REQUEST
RDM3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
SX7 B6-TPRNF REQUIRED NUMBER OF PARAMETERS
SA2 TPKT+THRL+TPCS *CRM* STATUS
NG X7,RDMX IF NOT ENOUGH PARAMETERS
NZ X2,RDMX IF ERROR RETURN
RJ LWR LAST WORD OF RECORD AND RECORD LENGTH
NZ X0,RDM4 IF NOT CALLED BY READN OR READNL
ZR X7,RDM6 IF END OF PARAMETER LIST
SA3 TPKT+THRL+TPRNF KEY-STATUS RESULTS
SA2 A1+TPRNF ADDRESS OF KEY-STATUS FOR READN OR READNL
BX7 X3 KEY-STATUS
SA7 X2 SAVE KEY-STATUS
SX2 B6-TPRNL
NG X2,RDM6 IF END OF PARAMETER LIST
SA3 TPKT+THRL+TPLA GET LOCK STATUS
SA2 A1+TPLA LOCK STATUS ADDRESS
EQ RDM5 PROCESS LOCK STATUS
RDM4 SX7 B6-TPRMF REQUIRED PARAMETERS FOR READM
NG X7,RDMX IF NOT ENOUGH PARAMETERS
ZR X7,RDM6 IF NOT KEY-STATUS
SA3 TPKT+THRL+TPMS KEY-STATUS FROM PACKET
SA2 A1+TPMS ADDRESS OF KEY-STATUS
BX7 X3 KEY-STATUS
SA7 X2 SAVE KEY-STATUS
SX2 B6-TPRML PARAMETERS REQUIRED FOR LOCK STATUS
NG X2,RDM6 IF END OF PARAMETER LIST
SA3 TPKT+THRL+TPLC LOCK STATUS
SA2 A1+TPLC GET LOCK STATUS ADDRESS
RDM5 BX7 X3
SA7 X2+
RDM6 SA2 A1+TPKW KEY-AREA ADDRESS
RJ RKA RETURN KEY-AREA
EQ RDMX RETURN
RKA SPACE 4,15
** RKA - RETURN KEY-AREA.
*
* ENTRY (TPKT) = RESULTS OF *TAF/CRM* REQUEST.
* (A1) = POINTER TO PARAMETER LIST.
* (A2) = POINTER TO KEY-AREA ADDRESS.
* (X2) = ADDRESS OF KEY-AREA.
*
* EXIT KEY-AREA (PRIMARY KEY) PROCESSED.
*
* USES X - 1, 2, 3, 7.
* A - 1, 2, 3.
* B - 2, 3, 4, 6.
*
* CALLS MTS.
RKA SUBR ENTRY/EXIT
SA1 A1+TPWS WORKING-STORGE-ADDRESS (WSA)
SB2 X1 ADDRESS OF WSA
SB3 X2 ADDRESS OF KEY-AREA
EQ B2,B3,RKAX IF SAME ADDRESS RETURN
SX1 TCHL LENGTH OF WORD IN CHARACTERS
SA3 TPKT+THRL+TPRL RECORD LENGTH FROM PACKET
SA2 A2+B1 KEY-AREA-LENGTH ADDRESS
SA2 X2 VALUE
SX7 X1-1 LENGTH OF WORD MINUS ONE (1)
SB4 X2+ LENGTH OF KEY-AREA IN CHARACTERS
GT B3,B2,RKA1 IF KEY-AREA ADDRESS IS BELOW WSA
* KEY-AREA ADDRESS IS ABOVE WORKING-STORAGE ADDRESS.
IX2 X2+X7 ROUND UP CHARACTERS
IX2 X2/X1 CHANGE CHARACTERS TO WORDS
SB6 X2+B3 KEY-AREA ADDRESS PLUS KEY-AREA-LENGTH
SB6 B6-1 ADJUST FOR INDEX
LT B6,B2,RKA2 IF KEY-AREA DOES NOT GO INTO RECORD
SX1 TCHL LENGTH OF WORD IN CHARACTERS
SX3 B2-B3 DIFFERENCE IN KEY-AREA AND WSA
IX3 X3*X1 NUMBER OF CHARACTERS
SB4 X3+ ADJUSTED KEY-LENGTH
EQ RKA2 GO MOVE PART OF KEY
* KEY-AREA ADDRESS IS BELOW WORKING-STORAGE ADDRESS.
RKA1 IX3 X3+X7 ROUND UP CHARACTERS OF RECORD LENGTH
IX3 X3/X1 NUMBER OF WORD
SB6 X3 NUMBER OF WORD MINUS ONE (1)
SB6 B2+B6 END OF RECORD AREA
SB6 B6-B1 ADJUST ADDRESS
LE B3,B6,RKAX IF KEY-AREA IS IN RECORD AREA
RKA2 SB2 B1 STARTING POSITION
SA2 B3 KEY-AREA ADDRESS
SA1 TKEY KEY-AREA IN PACKET
RJ MTS TRANSFER KEY TO KEY-AREA
EQ RKAX RETURN
RTS SPACE 4,20
** RTS - RETURN STATUS CODES.
*
* ENTRY (TPKT+2) = TAF STATUS RETURNED.
* (A1) = POINTER TO PARAMETER LIST.
* (X1) = ADDRESS OF FIRST PARAMETER.
* (B6) = NUMBER OF PARAMETERS.
*
* EXIT *TAF* AND *CRM* STATUS SET IN PROGRAM.
* (A1) = POINTER TO ADDRESS LIST.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* USES X - 1, 2, 3, 6.
* A - 1, 2, 3, 6.
*
* MACROS MESSAGE.
*
* CALLS COD, RTT, SNM.
RTS SUBR ENTRY/EXIT
SA1 TPKT+THRL+TPTS VALUE OF TAF-STATUS FROM TAF
ZR X1,RTS1 IF NO ERROR
RJ RTT TAF-STATUS CODE
RTS1 SA1 TPKT+THRL+TPCS VALUE OF CRM-STATUS FROM AAMI
ZR X1,RTS2 IF STATUS OF ZERO
RJ COD CONVERT ERROR CODE TO DISPLAY
MX3 24 MASK FOR ERROR CODE
SB2 1RX REPLACEMENT CHARACTER
BX1 X3*X4 ERROR CODE
SB3 RTCB ASSEMBLY AREA
SB5 -RTCA FWA OF MESSAGE
RJ SNM SET NAME IN MESSAGE
SA1 TFCD FUNCTION CODE NAME
SB2 1RY REPLACEMENT CHARACTER
SB5 RTCB FWA OF MESSAGE
RJ SNM SET NAME IN MESSAGE
MESSAGE RTCB,0,R
RTS2 SA1 TSA1 RESTORE ADDRESS TO PARAMETER LIST
SA1 X1+
LE B6,B1,RTSX IF NOT ENOUGH PARAMETERS
SA3 TPKT+THRL+TPTS VALUE OF TAF-STATUS FROM AAMI
SA2 A1+TPTS
BX6 X3
SA6 X2 STORE TAF-STATUS
SX3 B6-TPOPL PARAMETERS FOR *TAF/CRM* STATUS
NG X3,RTSX IF END OF PARAMETER LIST
SA2 A1+TPCS ADDRESS OF CRM-STATUS
SA3 TPKT+THRL+TPCS CRM-STATUS FROM AAMI
BX6 X3
SA6 X2
EQ RTSX RETURN
RTCA DATA C* TAF/CRM CRM STATUS XXXXB IN FUNCTION YYYYYYY.*
RTCB BSSZ *+1-RTCA ASSEMBLY AREA FOR *SNM*
RTT SPACE 4,15
** RTT - RETURN TAF-STATUS.
*
* ENTRY (X1) - TAF-STATUS FORM *TAF/CRM* REQUEST (TPKT).
* (RTTB) - LOCATION TO PUT MESSAGE ERROR CODE.
* (RTTC) - LOCATION TO PUT FUNCTION NAME.
* (TFCD) - NAME OF FUNCTION.
*
* EXIT - ERROR MESSAGE ISSUED TO DAYFILE.
* (A1) = ADDRESS OF PARAMETER LIST OF CONSECUTIVE
* WORDS FOLLOWED BY A WORD OF BINARY ZEROS.
* (X1) = ADDRESS OF FIRST PARAMETER.
*
* USES X - 1, 2, 3, 5, 6.
* A - 1, 2, 3, 6.
*
* MACROS MESSAGE, ABORT.
*
* CALLS CDD, SNM.
RTT SUBR ENTRY/EXIT
SX5 X1-TTENL FATAL ERROR STATUS FROM AAMI
RJ CDD CONVERT TO DECIMAL DISPLAY CODE
MX3 24 MASK FOR ERROR CODE
SB2 1RX REPLACEMENT CHARACTER
BX1 X3*X4 ERROR CODE
SB3 RTCB ASSEMBLY AREA
SB5 -RTTA FWA OF MESSAGE
RJ SNM SET NAME IN MESSAGE
SA1 TFCD FUNCTION CODE NAME
SB2 1RY REPLACEMENT CHARACTER
SB5 RTCB FWA OF MESSAGE
RJ SNM SET NAME IN MESSAGE
MESSAGE RTCB,0,R
SA1 TSA1 RESTORE PARAMETER LIST ADDRESS
SA1 X1+
NG X5,RTTX IF NOT A FATAL ERROR
ABORT ABORT DUE TO FATAL *TAF/CRM* ERRORS
RTTA DATA C* TAF/CRM TAF STATUS XXXX IN FUNCTION YYYYYYY.*
RQS SPACE 4,20
** RQS - REQUEST *TAF/CRM* SUBSYSTEM.
*
* ENTRY (RQSA) = HEADER WORD ONE.
* (RQSB) = HEADER WORD TWO.
* (TPKT) = FUNCTION PARAMETERS.
*
* EXIT (TPKT) = RESULTS FROM *TAF/CRM*.
*
* USES X - 1, 2, 6, 7.
* A - 1, 2, 6, 7.
* B - 4.
*
* MACROS CALLSS, ABORT, MESSAGE, RECALL.
RQS SUBR ENTRY/EXIT
RQS1 SA1 RQSA FIRST WORD OF HEADER
SA2 RQSB SECOND HEADER WORD FOR *TAF/CRM*
BX7 X1
BX6 X2
SA7 TPKT FIRST WORD OF PACKET AREA
SA6 A7+B1 *UPC* INTERFACE WORD
CALLSS /SSD/TRSI,TPKT,R *UCP* CALL TO TAF VIA MONITOR
RQS2 SA1 A7 CHECK FOR RESPONSE
LX1 59-0 RESPONSE IN BIT (0)
NG X1,RQS3 IF CALL TO *TAF/CRM* COMPLETE
RECALL
EQ RQS2 IF COMPLETE NOT SET
RQS3 SX2 7776B MASK FOR ERRORS
LX1 0-0-59+0 SHIFT RESPONSE
SB4 B0 TABLE INCREMENT COUNT TO ZERO
BX2 X1*X2
ZR X2,RQS5 IF NO ERRORS
RQS4 SA1 RQSS+B4 SUBSYSTEM ERROR CODES
SX7 X1
IX7 X2-X7 SUBTRACT CODES
SB4 B4+1 INCREMENT TABLE INDEX
ZR X7,RQS7 IF MATCH OF ERROR CODES
ZR X1,RQS11 IF END OF TABLE
EQ RQS4 LOOK AT NEXT
RQS5 SA1 TPKT+1 LOOK AT SECOND WORD OF HEADER FOR ERRORS
MX2 -12 MASK FOR ERROR CODES
BX2 -X2*X1 MASK OFF RESPONSE
ZR X2,RQS1 IF NO RESPONSE
RQS6 SA1 RQST+B4 LOOK AT ALL ERROR CODES
SX7 X1
IX7 X7-X2 SUBTRACT OFF ERROR CODES
SB4 B4+1 INCREMENT TABLE INDEX
ZR X7,RQS7 IF MATCH OF ERROR CODES
ZR X2,RQS11 IF NO MATCH OF ERROR CODES
EQ RQS6 GET NEXT ERROR CODE
RQS7 LX1 17-59 SHIFT ADDRESS OF MESSAGE
SX2 X1 ADDRESS OF MESSAGE
LX1 17-41-17+59 ADDRESS OF ROUTINE
SB4 X1
ZR X2,RQS8 IF NOT ERROR MESSAGE
MX7 -6 MASK FOR DISPLAY DAYFILE
LX1 5-23-17+41 SHIFT DISPLAY MESSAGE AREA
BX7 -X7*X1 MASK OFF DISPLAY VALUE
MESSAGE X2,X7,R ISSUE ERROR MESSAGE
RQS8 SA1 TSA1 RESTORE TO PARAMETER LIST ADDRESS
SA1 X1+
JP B4 GO TO ROUTINE FOR PROCESSING
RQS9 SA1 0 LOCATION ZERO OF *CP* RA+0
SX7 1
LX7 12-0 SHIFT *PAUSE* BIT
BX7 X1+X7
SA7 0 SET IN RA+0
RQS10 RECALL RECALL BEFOR RETRY
SA1 B0 RA+0
LX1 59-12 SHIFT TO POSITION FOR TEST
NG X1,RQS10 IF *PAUSE* BIT NOT CLEARED
EQ RQS1 *GO* ENTERED REISSUE REQUEST
RQS11 MESSAGE RQML,0,R TAF ERROR NOT DEFINED
RQS12 ABORT TERMINATE PROCESSING
RQSA VFD 24/0LTAF,12/0,6/40,4/0,2/3,11/0,1/0
RQSB BSSZ 1 SECOND WORD OF HEADER
* ERROR MESSAGES FOR *RQS* FROM *TAF/CRM*.
RQST EQU * SECOND HEADER WORD ERROR CODE
FCTM ,RQSX,,JSRC REQUEST COMPLETE
FCTM RQMA,RQS9,0,JSNU *TAF* SUBSYSTEM NOT UP
FCTM RQMB,RQS1,1,JSTB *TAF* SUBSYSTEM BUSY
FCTM RQMJ,RQS12,0,JSND SUBSYSTEM NOT DEFINED AS *SCP*
FCTM RQMI,RQS9,0,JSTI *TAF* DEFINED - *TAF* IDLE
FCTM RQMD,RQS12,0,JSNV USER NOT VALID FOR *TAF* ACCESS
FCTM RQME,RQS12,0,JSUA USER NAME ACTIVE
FCTM RQMK,RQS12,0,JSAT CONFLICT IN ACCESS TYPE
FCTM RQMG,RQS12,0,JSFL DATA NOT WITHIN *UCP* FL
FCTM RQMF,RQS12,0,JSOR TWO OUTSTANDING REQUEST
FCTM RQMC,RQS12,0,JSFC *TAF* FUNCTION CODE NOT VALID
FCTM RQMM,RQS12,0,JSRE RECOVERY REQUEST ERROR
FCTM RQMN,RQS12,0,JSDC BATCH CONCURRENCY DISABLED
FCTM RQMO,RQS12,0,JSNC TAF/CRM DATA MANAGER NOT IN TAF
CON 0 END OF LIST
RQSS EQU * FIRST HEADER WORD ERROR CODES
FCTM RQMA,RQS9,0,/SCP/ES1 SUBSYSTEM NOT PRESENT
FCTM RQMB,RQS1,1,/SCP/ES2 SUBSYSTEM BUSY
FCTM RQMJ,RQS12,0,/SCP/ES3 SSID INCORRECT
CON 0 END OF LIST
RQMA DATA C* TAF NOT PRESENT (GO OR DROP).*
RQMB DATA C* TAF SUBSYSTEM BUSY. *
RQMC DATA C* TAF FUNCTION CODE NOT VALID.*
RQMD DATA C* TAF USER NOT VALID FOR TAF ACCESS.*
RQME DATA C* TAF USER NAME ACTIVE.*
RQMF DATA C* TAF TWO OUTSTANDING REQUESTS.*
RQMG DATA C* TAF DATA NOT WITHIN UCP FL.*
RQMI DATA C* TAF IDLE (GO OR DROP).*
RQMJ DATA C* TAF SUBSYSTEM NOT DEFINED AS A SCP.*
RQMK DATA C* TAF USER CONFLICT IN ACCESS TYPE.*
RQML DATA C* TAF ERROR CODE NOT DEFINED.*
RQMM DATA C* TAF RECOVERY REQUEST ERROR.*
RQMN DATA C* BATCH CONCURRENCY DISABLED.*
RQMO DATA C* TAF/CRM DATA MANAGER NOT LOADED IN TAF.*
SKP SPACE 4,15
** SKP - SKIP FUNCTION PROCESSOR.
*
* ENTRY (B2) = NUMBER OF PARAMETERS.
* (X7) = SUB-FUNCTION CODE.
*
* EXIT FUNCTION COMPETED AND STATUS RETURNED.
*
* USES X - 2, 7.
* A - 2, 7.
* B - 2.
*
* CALLS PRT, RQS, RTS.
SKP SUBR ENTRY/EXIT
RJ PRT PRESET
SB2 TPSBL NUMBER OF PARAMETERS
LT B6,B2,SKP1 IF NOT ENOUGH PARAMETERS
SA2 A1+TPCT COUNT ADDRESS
SA2 X2 VALUE OF COUNT
BX7 X2
SA7 TPKT+THRL+TPCT PUT COUNT IN PACKET
SKP1 RJ RQS ISSUE *TAF/CRM* REQUEST
RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
EQ SKPX RETURN
WRR SPACE 4,15
** WRR - WRITE AND REWRITE A RECORD.
*
* ENTRY (B2) - MAXIMUM NUMBER OF PARAMETERS.
* (X7) - FUNCTION CODE.
*
* EXIT FUNCTION COMPLETED AND STATUS RETURNED.
*
* USES X - 1, 2, 3, 7.
* A - 1, 2, 3, 7.
* B - 2, 4.
*
* CALLS CKF, MTS, PRT, RQS, RTS.
WRR SUBR ENTRY/EXIT
RJ PRT PRESET
SB2 TPWRF PARAMETERS NEEDED
LT B6,B2,WRR2 IF NOT ENOUGH PARAMETERS
SA3 A1+TPWR ADDRESS OF RECORD LENGTH
SA2 A1+TPWS ADDRESS OF WSA-NAME
SX7 X2
SA3 X3 VALUE OF RECORD LENGTH
SA7 TPKT+THRL+TPWS STORE ADDRESS INTO PACKET
BX7 X3
SB4 TPWRL NUMBER OF PARAMETERS NEEDED FOR KEY-AREA
SA7 TPKT+THRL+TPWR RECORD LENGTH INTO PACKET
EQ B6,B2,WRR1 IF END OF PARAMETER LIST
LT B6,B4,WRR1 IF NO KEY-AREA AND KEY-AREA-LENGTH
SA3 A1+TPWY ADDRESS OF KEY-AREA-LENGTH
SA2 A1+TPWX ADDRESS OF KEY-AREA
SX7 X2 ADDRESS OF KEY-AREA
SA3 X3 VALUE OF KEY-AREA-LENGTH
SA7 TPKT+THRL+TPWX KEY-AREA ADDRESS INTO PACKET
BX7 X3
SA7 TPKT+THRL+TPWY KEY-AREA-LENGTH INTO PACKET
WRR1 SB2 TPWK PARAMETER POSITION OF KEY-AREA
SB4 0 SET NO MAJOR KEY
RJ CKF CHECK AND TRANSFER KEY INTO PACKET
NZ X7,WRR3 IF KEY-POSITION ERRORS
WRR2 RJ RQS ISSUE *TAF/CRM* REQUEST
WRR3 RJ RTS TAF-STATUS AND CRM-STATUS RETURNED
SA2 TPKT+THRL+TPCS *TAF/CRM* STATUS
NZ X2,WRRX IF ERROR
SB2 TPRWL MINIMUM NUMBER OF PARAMETERS
LE B6,B2,WRRX IF NO KEY-AREA AND KEY-AREA-LENGTH
SA3 A1+TPWY ADDRESS OF KEY-AREA-LENGTH
SA2 A1+TPWX ADDRESS OF KEY-AREA
SA3 X3 VALUE OF KEY-AREA-LENGTH
SB2 B1 KEY-POSITION
SA2 X2 ADDRESS OF KEY-AREA
SB4 X3 NUMBERS OF CHARACTERS TO MOVE
SA1 TKEY ADDRESS OF KEY IN PACKET
RJ MTS MOVE KEY TO KEY-AREA
EQ WRRX RETURN
COMMON SPACE 4,10
** COMMON DECKS.
*CALL COMCSYS
*CALL COMCCDD
*CALL COMCCOD
*CALL COMCSNM
COMMON SPACE 4,65
** COMMON WORK STORAGE.
*
*T W+0 24/ RSS, 12/ RIN, 6/ WC, 4/ RCD, 2/ R, 11/ ES, 1/ C
*
* RSS = RESERVED FOR *TAF* USE; = THE CHARACTERS "TAF".
* RIN = RESERVED FOR INSTALLATION.
* WC = WORD COUNT (COUNT-1) OF REQUEST PACKET.
* RCD = RESERVED FOR OPERATING SYSTEM.
* R = RETURN CODE.
* ES = ERROR STATUS.
* C = COMPLETE BIT, SET TO ZERO (0) BY OBJECT-TIME
* PRIOR TO FUNCTION OR MACRO CALL.
*
*T, W+1 6/ FC, 18/ ADDR, 6/ AC, 30/ 0
*
* FC = *TAF/CRM* FUNCTION CODE
* ADDR = ADDRESS WITHIN THE CALLING OBJECT-TIME, WHERE
* *TAF* IS TO WRITE THE RESPONSE PACKET.
* AC = PARAMETER COUNT (NUMBER OF PARAMETER PASSED).
*
* W+2 6O/ FILE NAME OR UBEGIN-ID FOR REQUEST
* TAF-STATUS FOR DBCOMIT/DBSTAT/DBFREE REQUEST
*
*
* W+3 60/ TAF-STATUS
*
* W+4 60/ KEY-NAME FOR SKIP REQUEST OR CRM-STATUS
*
* W+5 60/ COUNT FOR SKIP REQUEST OR
* KEY-NAME FOR DELETE REQUEST OR
* KEY-OFFSET FOR LOCK REQUEST OR
* WSA-NAME
*
* W+6 60/ KEY-OFFSET FOR DELETE REQUEST OR
* RECORD LENGTH FOR WRITE REQUEST OR
* WSA-LENGTH
*
* W+7 60/ KEY-NAME FOR WRITE REQUEST OR
* RECORD LENGTH
*
* W+10 60/ KEY-AREA FOR READM/READN/READNL REQUEST OR
* KEY-NAME
*
* W+11 60/ KEY-AREA-LENGTH FOR READM REQUEST OR
* KEY-AREA-LENGTH FOR READN REQUEST OR
* KEY-AREA-LENGTH FOR READNL REQUEST OR
* KEY-OFFSET
*
* W+12 60/ KEY-NAME FOR READM REQUEST
* MAJOR-KEY-LENGTH FOR START
* KEY-AREA-LENGTH FOR WRITE
* KEY-STATUS
*
* W+13 60/ KEY-OFFSET FOR READM REQUEST OR
* KEY-IDENTIFIER FOR READ/READL REQUEST OR
* LOCK STATUS FOR READN
*
* W+14 60/ MAJOR-KEY-LENGTH FOR READM REQUEST OR
* KEY-AREA FOR READ/READL REQUEST
*
* W+15 60/ KEY-STATUS FOR READM REQUEST OR
* KEY-AREA-LENGTH FOR READ/READL REQUEST
*
* W+16 60/ KEY-IDENTIFIER FOR READM REQUEST OR
* LOCK STATUS FOR READ
*
* W+17 60/ LOCK STATUS FOR READM
*
* W+20 60/ KEY
*
*
*
*
* W+52
USE BUFFERS
BUFA BSS 0 STARTING ADDRESS OF LITERAL AREA
BEGIN BSSN BUFA START OF BUFFER AREA
TNPR BSSN 1 MAXIMUM NUMBER OF PARAMETER FOR FUNCTION
TFCD BSSN 1 NAME OF CALLING FUNCTION
TSA1 BSSN 1 PARAMETER LIST ADDRESS
TPKT BSSN 43 PACKET TO AND FROM *TAF/CRM*
TKST EQU TPKT+THRL+TPSF KEY STATUS FOR PACKET AREA
TKEY EQU TPKT+16 KEY AREA OF REQUEST PACKET
BUFE BSSN 0 END OF BUFFER AREA
END BSSN
ORG BUFE
END