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