IDENT CRMTASK ENTRY CRMTASK LCC OVERLAY(CRMTASK,0,0) SST BEGN,CMBL SYSCOM B1 *COMMENT CRMTASK - TAF/CRM STATUS AND DISPLAY TASK. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. *IFCALL NAM,COMKTAF *NIFCALL NAM,COMKTRN SPACE 4,10 *** CRMTASK - TAF/CRM STATUS COMMAND AND DISPLAY TASK. * * R. G. PARKHOUSE. 80/05/23. * A. SROKA. 80/07/25. * T. E. SCHULL. 84/11/02. SPACE 4,90 *** *CRMTASK* PERFORMS FUNCTIONS FOR *TAF/CRM* AND FORMATS *CRM* * STATUS DISPLAYS FOR THE OPERATOR OR AN ANALYST. * *CRMTASK* IS INITIALLY SCHEDULED WHEN - * * 1) ONE OF THE FOLLOWING *K-DISPLAY* COMMANDS IS ENTERED. * * CRMSTAT. DISPLAY GENERAL *CRM* STATUS. * CRMSTAT,DB. DISPLAY STATUS OF DATA BASE. * CRMSTAT,DBPFNXX. DISPLAY STATUS OF DATA BASE FILE. * DBUP,DB. UP THE DATA BASE. * DBUP,DBPFNXX. UP THE DATA BASE FILE. * DBDOWN,DB. DOWN THE DATA BASE. * DBDOWN,DBPFNXX. DOWN THE DATA BASE FILE. * MENU. DISPLAY COMMAND REPERTOIRE. * * IF *CRMTASK* IS INVOKED FROM THE *K-DISPLAY* AND * NO COMMAND IS ENTERED, THEN THE MENU OF VALID * COMMANDS IS DISPLAYED. * * 2) *TAF* RECEIVES A *SIC* REQUEST FROM THE *CRM* BATCH * RECOVERY PROGRAM. *CRMTASK* FORMATS A PARAMETER BLOCK * AND ISSUES A *CRMSIC* REQUEST TO *AAMI*. * * 3) A TERMINAL OPERATOR INVOKES *CRMTASK* DIRECTLY OR VIA * *CALLTSK* REQUEST. IN EITHER CASE THE COMMUNICATION * BLOCK MUST BE FORMATTED EXACTLY THE SAME WAY - AS IF * THE MESSAGE CAME DIRECTLY FROM THE TERMINAL. * * TERMINAL OPERATOR CANNOT REQUEST ANY FUNCTIONS OTHER * THAN *CRMSTAT*, AND THAT IS RESTRICTED TO HIS/HER OWN * DATA BASE. * THE HOOKS HAVE BEEN LEFT IN THE CODE TO ENLARGE * THE TERMINAL OPERATOR-S COMMAND REPERTOIRE. * * VALID COMMANDS FROM THE TERMINAL ARE - * * CRMSTAT,DB. * CRMSTAT,DBPFN. * * * IF *CRMTASK* IS INITIATED FROM THE OPERATOR CONSOLE TO * PROCESS ANY ONE OF THE *CRMSTAT* REQUESTS, SUBSEQUENT * *K-DISPLAY* COMMANDS ARE PASSED TO *CRMTASK* RATHER THAN * BEING PROCESSED BY *TAF*. SIMILARLY, WHEN *CRMTASK* IS * INITIATED FROM A TERMINAL TO PROCESS ANY OF THE *CRMSTAT* * REQUESTS, THE DISPLAY IS SENT TO THE TERMINAL AND SUBSEQUENT * REQUESTS WILL BE ACCEPTED FROM THE TERMINAL. IN EITHER CASE, * ADDITIONAL VALID COMMANDS ARE - * * END. END DISPLAY AND CEASE. * +. DISPLAY NEXT SCREEN IF MORE. * -. DISPLAY FIRST SCREEN. * * IN CASE OF *SIC* REQUEST ERRORS, THE FOLLOWING MESSAGES, * ALONG WITH THE FIRST 4 WORDS OF MESSAGE IN THE COMMUNICA- * TION BLOCK, WILL BE WRITTEN IN *JOUR0* - * * CRMTASK- INCORRECT REQUEST. * CRMTASK- DATA BASE/FILE NAME UNKNOWN. * CRMTASK- INCORRECT TT SEQUENCE NUMBER. * CRMTASK- DATA BASE DOWNED BY OPERATOR. * CRMTASK- NOT ALL DATA BASE FILES UPPED. * CRMTASK- DATA BASE/FILE CANNOT BE UPPED. * CRMTASK- DATA BASE/FILE BEING IDLED. * CRMTASK- INCORRECT REQUEST FORMAT. * * THE FOLLOWING INFORMATIVE OR ERROR MESSAGES WILL APPEAR * ON A *K-DISPLAY* AS A RESULT OF OPERATOR COMMANDS - * * DATA BASE/FILE NAME UNKNOWN. * DATA BASE/FILE CANNOT BE UPPED. * DATA BASE/FILE ALREADY DOWN OR IDLE. * INCORRECT PAGING COMMAND. * INSUFFICIENT FIELD LENGTH FOR THIS COMMAND. * INCORRECT COMMAND. * NOT ALL DATA BASE FILES UPPED. * REQUEST COMPLETE. * * THE TERMINAL WILL ALSO RECEIVE ALL OF THE ABOVE MESSAGES * AND, IN ADDITION MAY RECEIVE THE FOLLOWING - * * ENTER NEXT COMMAND... * CRMTASK TIMEOUT. * CRMTASK COMPLETE. * SPACE 4,10 *** COMMON DECKS. BEGN BSS 0 *CALL COMCMAC *CALL COMCDCM *CALL COMCDCP *CALL COMKIPR *CALL COMKMAC *CALL COMKFLD *CALL COMKTDM *CALL COMKCRM *CALL COMKCBD *CALL COMKTER ORG BEGN SPACE 4,10 **** ASSEMBLY CONSTANTS. CMAXNF EQU 100D MAXIMUM NUMBER OF DISPLAYABLE DBPFNS KFNL EQU 20 NUMBER OF LINES BEFORE *MORE* LINE **** CMB SPACE 4,10 * COMMUNICATION BLOCK. CMBK BSS CMBL VFD 60/0L. MESSAGE TERMINATOR SPACE 4,10 * GLOBAL VARIABLES. DBNM CON 0 DATA BASE NAME ORIG CON 0 TASK ORIGIN (0=TAF, 1=TERMINAL) MORE DATA 10HMORE PAGE CON DMU PROCESSOR RE-ENTRY ADDRESS FPAG CON DMU PROCESSOR ENTRY ADDRESS NPAG CON 0 BUFFER ADDRESS FOR NEXT PAGE OF DATA BLNK DATA 10H CWKD CON KDE *K-DISPLAY* CONTROL WORD EAKD CON KDEA *K-DISPLAY* ERROR MESSAGE ADDRESS IAKD CON 0 *K-DISPLAY* INPUT MESSAGE ADDRESS DSTP CON 0 *K-DISPLAY* (0=FORMATTED , 1=-C- FORMAT) RFRS CON 0 REFRESH *K-DISPLAY* SWITCH CPAR CON 0 *CRMSTAT* PARAMETER FOR SCREEN REFRESH IOLN CON 377777B SYSTEM REQUEST CALL LIMIT TILN CON 7777B TASK TIME LIMIT PADR BSSZ 5 PARAMETER BLOCK FOR *AAMI* REQUEST * *AAMI* CALLING SEUQUENCE FOR *CRMSTAT*. CSQ1 CON PADR CON PADR+1 CON 0 CON PADR+2 CON 0 * *AAMI* CALLING SEQUENCE FOR *DBUP* AND *DBDOWN*. CSQ2 CON PADR CON PADR+1 CON 0 * *AAMI* CALLING SEQUENCE FOR *CRMSIC*. CSQ3 CON PADR CON PADR+1 CON PADR+2 CON PADR+3 CON 0 CRMTASK SPACE 4,25 ** CRMTASK - INITIALIZATION. * * THIS SUBROUTINE DETERMINES THE TRANSACTION ORIGIN. * THEN, IF *SIC* COMMAND PROCESSING, IT VALIDATES THE * COMMAND AND JUMPS TO THE *SIC* PROCESSOR. IF COM- * MAND ORIGINATES FROM A TERMINAL, THE PARAMETERS ARE * UNPACKED INTO RA+2 AND THEN MOVED BACK TO *TMSW*. * * ENTRY COMMUNICATION BLOCK LOADED. * * EXIT TO *CVL*, IF *TAF* OR TERMINAL ORIGIN. * (B3) = FWA OF VALID COMMAND TABLE. * * ERROR TO *IBR*, IF INCORRECT *SIC* COMMAND. * (X3) = ERROR CODE. * TO *TTE*, IF INCORRECT TERMINAL COMMAND. * (B2) = ERROR CODE. * * USES X - 0, 1, 2, 3, 5, 6, 7. * A - 1, 2, 5, 6, 7. * B - 1, 3. * * CALLS ITU, PRK. * * MACROS IIO, ITL. CRMTASK BSS 0 ENTRY SB1 1 IIO IOLN INCREASE TASK-S SYSTEM REQUEST CALL LIMIT ITL TILN INCREASE TASK-S TIME LIMIT SX3 KBLG RJ PRK PRESET *K-DISPLAY* BUFFER SA1 TRSQ MX0 12 BX6 X0*X1 EXTRACT DATA BASE FROM C.B. SA6 DBNM SX6 B0+ SA1 CBSYW LX1 59-CBSYS NG X1,CRM1 IF SYSTEM ORIGIN TASK SX6 B1 TERMINAL ORIGIN MX0 36 SA1 TMSW SA2 CRMA SX3 IER0 IN CASE ATTEMPTED *SIC* REQUEST BX1 X1-X2 ZR X1,IBR IF *SIC* FROM TERMINAL CRM1 SA6 ORIG SAVE TASK ORIGIN SX7 KDEB+1 *K-DISPLAY* INPUT LINE SA7 IAKD SB3 CVLA FWA OF COMMAND TABLE ZR X6,CVL IF *TAF* ORIGIN RJ ITU INSERT TERMINATOR AND UNPACK MESSAGE SA1 2 SA2 A1+1 SA5 CRMB BX6 X1 BX5 X5-X1 NZ X5,TTE IF REQUEST OTHER THAN *CRMSTAT* SA6 TMSW BX7 X2 SB3 CVLA FWA OF COMMAND TABLE SA7 A6+B1 EQ CVL SEARCH FOR THE PROCESSOR CRMA DATA 0LCRMSIC CRMB DATA 0LCRMSTAT CVL SPACE 4,25 ** CVL - COMMAND VALIDATION. * * CVL VALIDATES THE COMMAND AND JUMPS TO THE RELEVANT COMMAND * PROCESSOR. * * ENTRY (B3) = FWA OF VALID COMMAND TABLE. * (IAKD) = *K-DISPLAY* INPUT MESSAGE ADDRESS. * FIRST WORD OF DATA AREA OF COMMUNICATION BLOCK HAS THE * COMMAND. * * EXIT TO RELEVANT COMMAND PROCESSOR. * * ERROR TO *TPA* (*TAF* ORIGIN). * TO *TTE* (TERMINAL ORIGIN). * (B2) = ERROR CODE. * * USES X - 0, 1, 2, 3, 4, 7. * A - 1, 2, 3, 7. * B - 2, 3. * * CALLS SEM. * * MACROS MOVE. CVL BSS 0 ENTRY MOVE KBLCL,KBLC,KDBD BLANK ERROR MESSAGE LINES MOVE KBLCL,KBLC,KDCM MOVE KBLFL,KBLF,KDAF MOVE KBLFL,KBLF,KDEA SA1 TRSQ SA2 TMSW+1 PARAMETER MX0 12 BX4 X1-X2 SA3 ORIG BX4 X0*X4 MX0 42 SX7 B0+ SA1 TMSW SA7 RFRS RESET SCREEN REFRESH SWITCH ZR X3,CVL1 IF *TAF* ORIGIN ZR X2,CVL1 IF NO PARAMETER NZ X4,CVL2 IF NOT TERMINAL OWN DATA BASE CVL1 SA2 B3 NEXT COMMAND FROM LIST ZR X2,CVL2 IF END OF LIST SB3 B3+B1 BX3 X0*X2 BX3 X3-X1 NZ X3,CVL1 IF NO MATCH SB3 X2+ COMMAND PROCESSOR ADDRESS JP B3 PROCESS COMMAND CVL2 SA3 ORIG ORIGIN SB2 ER5 *INCORRECT COMMAND.* NZ X3,TTE IF TERMINAL ORIGIN RJ SEM SET ERROR MESSAGE EQ TPA DISPLAY ERROR MESSAGE * VALID COMMAND TABLE FIRST TIME THROUGH. CVLA BSS 0 VFD 42/0,18/DMU VFD 42/0LMENU,18/DMU VFD 42/0LCRMSTAT,18/CRS VFD 42/0LDBUP,18/DBU VFD 42/0LDBDOWN,18/DBD VFD 42/0LCRMSIC,18/SIC CON 0 TABLE TERMINATOR * VALID COMMAND TABLE WHILE RUNNING. CVLB VFD 42/0LCRMSTAT,18/CRS VFD 42/0LDBUP,18/DBU VFD 42/0LDBDOWN,18/DBD VFD 42/0LMENU,18/DMU VFD 42/0LEND,18/TPD VFD 42/1C+,18/PFP VFD 42/1C-,18/PBP CON 0 TABLE TERMINATOR CRS SPACE 4,25 ** CRS - CRMSTAT PROCESSOR. * * CRS VALIDATES THE PARAMETER AND IF VALID ISSUES A *CRMSTAT* * REQUEST TO *AAMI* TO GET STATUS INFORMATION. * * ENTRY SECOND WORD OF DATA AREA OF COMMUNICATION BLOCK * CONTAINS THE PARAMETER. * * EXIT TO *FCD* IF CRM STATUS REQUEST. * TO *FDD* IF DATA BASE STATUS REQUEST. * TO *FFD* IF FILE STATUS REQUEST. * * ERROR TO *TPA*. (TAF ORIGIN). * (X1) = ADDRESS OF K-DISPLAY CONTROL WORD. * TO *TTE*. (TERMINAL ORIGIN). * (B2) = ERROR CODE. * * USES X - ALL. * A - 1, 3, 4, 7. * B - 2. * * CALLS CST, SEM. CRS BSS 0 ENTRY SX7 B0+ SB2 BUFSIZE CRS1 SB2 B2-1 CLEAR BUFFER SA7 BADR+B2 PL B2,CRS1 IF NOT ENTIRE BUFFER SET TO ZEROS SA4 ORIG ORIGIN SA1 TMSW+1 PARAMETER SX6 B1 BX7 X1 SA6 RFRS SET SWITCH TO REFRESH *K-DISPLAY* SA7 CPAR SAVE *CRMSTAT* PARAMETER ZR X1,CRS3 IF NO PARAMETER MX0 12 BX2 -X0*X1 SA3 DBNM ZR X4,CRS2 IF SYSTEM ORIGIN BX3 X1-X3 BX3 X0*X3 SB2 ER5 *INCORRECT REQUEST* NZ X3,TTE IF TERMINAL DID NOT REQUEST OWN DATA BASE CRS2 NZ X2,CRS5 IF FILE STATUS REQUEST EQ CRS4 PROCESS DATA BASE STATUS REQUEST * CRM STATUS REQUEST. CRS3 SX5 B0+ FUNCTION CODE - *CRM* STATUS SB2 ER5 *INCORRECT COMMAND* NZ X4,TTE IF REQUEST FROM TERMINAL SX6 BADR FWA OF BUFFER TO RECEIVE STATUS SX7 CST1L LENGTH OF BUFFER RJ CST ISSUE *CRMSTAT* REQUEST SB2 ER4 *INSUFICIENT FIELD LENGTH.* NZ X2,CRS6 IF BUFFER TOO SMALL SX5 B1+ FUNCTION CODE - REQUEST ALL *TDRF-S* SX6 BADR+CST1L FWA OF BUFFER TO RECEIVE STATUS SX7 CST2L LENGTH OF BUFFER RJ CST ISSUE *CRMSTAT* FUNCTION NZ X2,CRS6 IF BUFFER TOO SMALL EQ FCD FORMAT DISPLAY * DATA BASE STATUS REQUEST. CRS4 SX5 B1+B1 FUNCTION CODE - DATA BASE STATUS BX5 X1+X5 DATA BASE NAME + FUNCTION CODE SX6 BADR FWA OF BUFFER TO RECEIVE STATUS SX7 DST1L LENGTH OF BUFFER RJ CST ISSUE *CRMSTAT* REQUEST SX2 X2-1 SB2 ER0 *DATA BASE/FILE NAME UNKNOWN.* ZR X2,CRS6 IF DATA BASE UNKNOWN SB2 ER4 *INSUFICIENT FIELD LENGTH.* PL X2,CRS6 IF BUFFER TOO SMALL SA1 TMSW+1 DATA BASE NAME SX5 3 FUNCTION CODE - REQUEST ALL *TLNT-S* BX5 X1+X5 SX6 BADR+DST1L FWA OF BUFFER TO RECEIVE STATUS SX7 DST2L LENGTH OF BUFFER RJ CST ISSUE *CRMSTAT* REQUEST SB2 ER4 *INSUFICIENT FIELD LENGTH.* NZ X2,CRS6 IF BUFFER TOO SMALL EQ FDD FORMAT DISPLAY * FILE STATUS REQUEST. CRS5 SX5 4 FUNCTION CODE - FILE STATUS BX5 X1+X5 FILE NAME + FUNCTION CODE SX6 BADR FWA OF BUFFER TO RECEIVE STATUS SX7 FSTBL LENGTH OF BUFFER RJ CST ISSUE *CRMSTAT* REQUEST SX2 X2-1 SB2 ER0 *DATA BASE/FILE NAME UNKNOWN.* ZR X2,CRS6 IF FILE NAME UNKNOWN SB2 ER4 *INSUFICIENT FIELD LENGTH.* PL X2,CRS6 IF BUFFER TOO SMALL EQ FFD FORMAT DISPLAY * PROCESS ERRORS. CRS6 NZ X4,TTE IF TERMINAL ORIGIN RJ SEM SET ERROR MESSAGE EQ TPA DISPLAY ERROR MESSAGE DBD SPACE 4,25 ** DBD - DATA BASE DOWN. * * DBD ISSUES A REQUEST TO *AAMI* TO DOWN A DATA BASE OR DATA * BASE FILE. * * ENTRY SECOND WORD OF DATA AREA OF COMMUNICATION BLOCK * CONTAINS DATA BASE OR FILE NAME. * * EXIT TO *TPA*. (TAF ORIGIN). * (X1) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * TO *TPD*. (TERMINAL ORIGIN). * * ERROR TO *TPA*. (TAF ORIGIN). * (X1) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * TO *TTE*. (TERMINAL ORIGIN). * (B2) = ERROR CODE. * * USES X - 1, 2, 6, 7. * A - 1, 2, 6, 7. * B - 2. * * CALLS SEM. * * MACROS DBDOWN. DBD BSS 0 ENTRY SX6 DMU SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDE *K-DISPLAY* CONTROL WORD SX7 KDEA *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDEB+1 *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B0+ FORMATTED *K-DISPLAY* SA6 DSTP SA1 TMSW+1 DATA BASE OR FILE NAME BX6 X1 BX7 X7-X7 SA6 PADR SA7 A6+B1 CLEAR STATUS WORD SA7 A7+B1 PARAMETER LIST TERMINATOR DBDOWN CSQ2 ISSUE *AAMI* REQUEST SA1 PADR+1 STATUS SA2 ORIG NZ X1,DBD1 IF ERROR SB2 ER7 *REQUEST COMPLETE.* NZ X2,TPD IF TERMINAL ORIGIN RJ SEM EQ TPA COMPLETE PROCESSING DBD1 SX6 X1-TERB SB2 ER0 *DATA BASE/FILE NAME UNKNOWN.* ZR X6,DBD2 IF NO FILE OR DATA BASE SB2 ER3 *DATA BASE/FILE ALREADY DOWN OR IDLE.* DBD2 NZ X2,TTE IF TERMINAL ORIGIN RJ SEM SET ERROR MESSAGE EQ TPA DISPLAY ERROR MESSAGE DBU SPACE 4,25 ** DBU - DATA BASE UP. * * DBU ISSUES A REQUEST TO *AAMI* TO UP A DATA BASE OR DATA BASE * FILE. * * ENTRY SECOND WORD OF DATA AREA OF COMMUNICATION BLOCK * CONTAINS DATA BASE OR FILE NAME. * * EXIT TO *TPA*. (TAF ORIGIN). * (X1) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * TO *TPD*. (TERMINAL ORIGIN). * * ERROR TO *TPA*. (TAF ORIGIN). * (X1) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * TO *TTE*. (TERMINAL ORIGIN). * (B2) = ERROR CODE. * * USES X - 1, 2, 6, 7. * A - 1, 2, 6, 7. * B - 2. * * CALLS SEM. * * MACROS DBUP. DBU BSS 0 ENTRY SX6 DMU SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDE *K-DISPLAY* CONTROL WORD SX7 KDEA *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDEB+1 *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B0+ FORMATTED *K-DISPLAY* SA6 DSTP SA1 TMSW+1 DATA BASE OR FILE NAME BX6 X1 BX7 X7-X7 SA6 PADR SA7 A6+B1 CLEAR STATUS WORD SA7 A7+B1 PARAMETER LIST TERMINATOR DBUP CSQ2 ISSUE *AAMI* REQUEST SA1 PADR+1 STATUS SA2 ORIG NZ X1,DBU1 IF ERROR SB2 ER7 *REQUEST COMPLETE.* NZ X2,TPD IF TERMINAL ORIGIN RJ SEM EQ TPA COMPLETE PROCESSING DBU1 SX6 X1-TERB SB2 ER0 *DATA BASE/FILE NAME UNKNOWN.* ZR X6,DBU2 IF NO FILE OR DATA BASE SB2 ER1 *NOT ALL DATA BASE FILES UPPED.* SX6 X1-TERAL ZR X6,DBU2 IF NOT ALL FILES UP SB2 ER2 *DATA BASE/FILE CANNOT BE UPPED.* DBU2 NZ X2,TTE IF TERMINAL ORIGIN RJ SEM SET ERROR MESSAGE EQ TPA DISPLAY ERROR MESSAGE DMU SPACE 4,25 ** DMU - DISPLAY MENU. * * THIS SUBROUTINE DISPLAYS THE MENU OF *CRMTASK* * COMMANDS UPON THE *K-DISPLAY*. IT CAN ONLY BE * INVOKED BY *K-DISPLAY* COMMAND. NO PROVISIONS ARE * MADE TO DISPLAY MENU AT THE TERMINAL. * * ENTRY NONE. * * EXIT TO *TPA*. * (X1) = *K-DISPLAY* CONTROL WORD. * * ERROR TO *TTE*, IF TERMINAL ORIGIN. * (B2) =ERROR CODE. * TO *IBR*, IF *SIC* REQUEST. * (X3) = ERROR CODE. * * USES X - 1, 3, 4, 6, 7. * A - 1, 6, 7. * B - 2, 3. * * MACROS SYSTEM. DMU BSS 0 ENTRY SX6 DMU SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDE *K-DISPLAY* CONTROL WORD SX7 KDEA *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDEB+1 *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B0+ FORMATTED *K-DISPLAY* SA6 DSTP SA1 ORIG SB2 ER5 *INCORRECT COMMAND.* SX1 X1-1 ZR X1,TTE IF TERMINAL ORIGIN SX3 B0+ *INCORRECT SIC REQUEST.* PL X1,IBR IF *BTRAN* REQUEST SX1 KDE *K-DISPLAY* CONTROL WORD EQ TPA DISPLAY THE MENU PBP SPACE 4,20 ** PBP - PAGE BACKWARD PROCESSOR. * * PBP REPROCESSES THE *CRMSTAT* INFORMATION AGAIN. * IT GETS THE FWA OF THE BUFFER AND ENTERS THE AP- * PROPRIATE DISPLAY PROCESSOR. * * ENTRY (FPAG) = PROCESSOR ADDRESS. * (BADR) = CONTAINS DATA RECEIVED FROM *AAMI*. * * EXIT TO (PAGE). * * USES X - 2. * A - 2. * B - 3. PBP BSS 0 ENTRY SA2 FPAG SB3 X2+ JP B3 ENTER PROCESSOR PFP SPACE 4,20 ** PFP - PAGE FORWARD PROCESSOR. * * PFP GETS THE BUFFER ADDRESS FROM WHICH TO CONSTRUCT THE NEXT * PAGE OF THE DISPLAY, AND RE-ENTERS THE DISPLAY PROCESSOR. * * ENTRY (PAGE) = PROCESSOR ADDRESS FOR REENTRY. * (NPAG) = BUFFER ADDRESS OF DATA FOR DISPLAY. * * EXIT TO DISPLAY PROCESSOR WHOSE ADDRESS IS IN *PAGE*. * (A5) = FWA OF BUFFER OF DISPLAY DATA. * (X5) = CONTENTS OF A WORD AT (A5). * * USES X - 1, 2, 5. * A - 1, 2, 5. * B - 3. PFP BSS 0 ENTRY SA1 NPAG SA2 PAGE SB3 X2 SA5 X1 JP B3 REENTER DISPLAY PROCESSOR SIC SPACE 4,20 ** SIC - PROCESS *CRMSIC* REQUEST. * * SIC REFORMATS THE INFORMATION FROM THE COMMUNICATION BLOCK * INTO A PARAMETER BLOCK, AND ISSUES A *CRMSIC* REQUEST TO * *AAMI*. * * ENTRY FIRST FOUR WORDS OF DATA AREA OF COMMUNICATION BLOCK * CONTAIN INFORMATION TO BE STORED IN PARAMETER BLOCK. * * EXIT TO *TPD*. * * ERROR TO *IBR*. * (X3) = ERROR CODE. * * USES X - 0, 1, 3, 6, 7. * A - 1, 3, 6, 7. * * MACROS CRMSIC. SIC BSS 0 ENTRY SA1 TMSW+1 MX0 42 BX6 X0*X1 DATA BASE/FILE NAME SA6 PADR SX7 B0 SA7 A6+B1 CLEAR STATUS WORD BX6 -X0*X1 BATCH JOB SEQUENCE NUMBER SA6 A7+B1 SA1 A1+B1 FUNCTION CODE BX6 X1 SA6 A6+B1 SA7 A6+B1 PARAMETER LIST TERMINATOR CRMSIC CSQ3 ISSUE *AAMI* REQUEST SA3 PADR+1 STATUS ZR X3,TPD IF NO ERROR SX6 X1-TERB SX3 IER1 ZR X6,IBR IF UNKNOWN DATA BASE SX3 IER2 SX6 X1-TERAD ZR X6,IBR IF INCORRECT TT NUMBER SX3 IER3 SX6 X1-TERAK ZR X6,IBR IF DATA BASE DOWNED BY OPERATOR SX3 IER4 SX6 X1-TERAL ZR X6,IBR IF NOT ALL FILE UP SX3 IER5 SX6 X1-TERAM ZR X6,IBR IF DATA BASE CANNOT BE UPPED SX3 IER6 SX6 X1-TERAG ZR X6,IBR IF DATA BASE IDLING DOWN SX3 IER7 EQ IBR JOURNAL MESSAGE AND QUIT CST SPACE 4,45 ** CST - ISSUE *CRMSTAT* REQUEST. * * THIS SUBROUTINE REQUESTS *AAMI* STATUS. FUNCTION CODE IN X5 * DETERMINES WHAT IS RETURNED BY *AAMI*. * * FC = 0, *AAMI* RETURNS *TSEQ* TABLE, * A WORD OF BINARY ZEROS, * INPUT QUEUE FET, * INPUT QUEUE, * OUTPUT QUEUE FET, * OUTPUT QUEUE, * A WORD OF BINARY ZEROS. * = 1, *AAMI* RETURNS ALL *TDRF* TABLES, * A WORD OF BINARY ZEROS. * = 2, *AAMI* RETURNS *TDRF* TABLE, * A WORD OF BINARY ZEROS, * *TARF* TABLE, * A WORD OF BINARY ZEROS, * ALL *TQRF* TABLES FOR * THE SPECFIED DATA BASE, * A WORD OF BINARY ZEROS. * = 3, *AAMI* RETURNS ALL *TLNT* TABLES FOR * THE SPECFIED DATA BASE, * A WORD OF BINARY ZEROS. * = 4, *AAMI* RETURNS *TLNT* TABLE, * A WORD OF BINARY ZEROS, * NUMBER OF ACTIVE USERS, * NUMBER OF LOCKED RECORDS FOR * THE SPECFIED DATA BASE FILE, * A WORD OF BINARY ZEROS. * * ENTRY (X5) = FUNCTION CODE * (X6) = FWA OF BUFFER * (X7) = LENGTH OF BUFFER * * EXIT (X2) = STATUS REPLY * * USES X - 2, 6, 7. * A - 2, 6, 7. * * MACROS CRMSTAT. CST SUBR ENTRY/EXIT SA7 PADR+2 SA6 CSQ1+2 BX6 X6-X6 SA6 A7-B1 BX6 X5 SA6 A6-B1 BX7 X7-X7 SA7 A7+B1 PARAMETER LIST TERMINATOR CRMSTAT CSQ1 ISSUE *AAMI* REQUEST SA2 PADR+1 STATUS WORD EQ CSTX RETURN FCD SPACE 4,20 ** FCD - FORMAT CRMSTAT DISPLAY. * * FCD EXTRACTS RAW DATA FROM THE *TSEQ*, *AMIQ*, *AMOQ*, *TDRF* * TABLES AND FORMATS A *K-DISPLAY*. * * ENTRY BADR = FWA OF TABLES. * * REENTRY AT *FCD5*. * (A5) = FWA OF NEXT *TDRF*. * (X5) = FIRST WORD OF *TDRF*. * * EXIT TO *TPA*. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 2, 3, 4, 6. * * CALLS CDD. FCD BSS 0 ENTRY SX6 FCD SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDA *K-DISPLAY* CONTROL WORD SX7 KDAF *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDAG+1 *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B0 FORMATTED *K-DISPLAY* SX1 B0 INITIALIZE COUNT OF ACTIVE TRANSACTIONS SA6 DSTP SB2 TSEQE LENGTH OF *TSEQ* TABLE ENTRY SB3 CMDM*RMDM+1 NO OF ENTRIES SA5 BADR-TSEQE FCD1 SB3 B3-B1 LT B3,FCD2 IF ALL ENTRIES CHECKED SA5 A5+B2 NEXT ENTRY ZR X5,FCD1 IF EMPTY SX1 X1+1 INCREMENT ACTIVE COUNT EQ FCD1 NEXT ENTRY FCD2 RJ CDD CONVERT TO DECIMAL DISPLAY SA6 KDAB+1 STORE IN DISPLAY BUFFER SA5 A5+TSEQE+1 SKIP LAST ENTRY AND THE ZERO WORD SA1 A5+B1 GET *AMIQ* FET POINTERS SX1 X1 FIRST SA2 A1+B1 IN SA3 A2+B1 OUT SA4 A3+1 SX4 X4 LIMIT IX6 X2-X3 IN-OUT PL X6,FCD3 IF IN .GE. OUT IX3 X4-X3 LIMIT-OUT IX2 X2-X1 IN-FIRST IX6 X2+X3 REQUESTS IN *AMIQ* FCD3 BX1 X6 MX0 24 RJ CDD CONVERT TO DECIMAL DISPLAY SA1 KDAA NUMBER OF TRANSACTIONS IN INPUT QUEUE BX2 X0*X1 EXTRACT *KDL* COORDINATES BX6 -X0*X6 BX6 X2+X6 SA6 A1 STORE IN DISPLAY BUFFER SA5 A5+AAMQFL+AIBFL GET *AMOQ* FET POINTERS SA2 A5+B1 SX2 X2 FIRST SA3 A2+B1 IN SA4 A3+B1 OUT SA1 A4+B1 SX1 X1 LIMIT IX6 X3-X4 IX4 X1-X4 LIMIT-OUT PL X6,FCD4 IF IN .GE. OUT IX3 X3-X2 IN - FIRST IX6 X3+X4 REQUESTS IN *AMOQ* FCD4 BX1 X6 RJ CDD CONVERT TO DECIMAL DISPLAY SA1 KDAC NUMBER OF TRANSACTIONS IN OUTPUT QUEUE BX2 X0*X1 EXTRACT *KDL* COORDINATES BX6 -X0*X6 BX6 X2+X6 SA6 A1 STORE IN DISPLAY SA5 A5+AAMQFL+AOBFL+1 POSITION TO FIRST *TDRF* * REENTRY POINT. * * ENTRY (A5) = ADDRESS OF THE NEXT *TDRF* TO DISPLAY. * (X5) = FIRST WORD OF THE NEXT *TDRF* TO DISPLAY. FCD5 SB3 3 DATA BASES PER DISPLAY LINE SA4 KDAD-2 SB4 10 NUMBER OF LINES PER DISPLAY SA3 A4+1 *KDAD*-1 BX6 X3 MX0 TDIDN SA6 A3+ IN CASE OF NO DATA BASES FCD6 ZR X5,FCD9 IF NO DATA BASES SA3 A5+TDODW SA4 A4+2 ADDRESS IN DISPLAY BUFFER SA2 A5+TDIDW BX6 X0*X2 LX4 59-35 SA1 A5+TDSDW BX4 -X0*X4 BX6 X4+X6 INSERT DATA BASE NAME INTO THE LINE LX6 35-59 SA6 A4 LX3 59-TDODS SB6 B0 INITIALIZE STATUS = UP NG X1,FCD7 IF DATA BASE DOWN LX1 TDSDS-TDSIS PL X1,FCD8 IF NOT IDLE SB6 B1 STATUS = IDLE EQ FCD8 SET STATUS IN DISPLAY FCD7 SB6 B1+B1 STATUS = DOWN PL X3,FCD8 IF NOT OPERATOR DOWN SB6 B6+B1 STATUS = OPERATOR DOWN FCD8 SA3 FCDA+B6 GET STATUS BX6 X3 SA6 A6+B1 STORE IN DISPLAY BUFFER SB3 B3-1 SA5 A5+TDRFE NEXT *TDRF* NE B3,FCD6 IF MORE TO GO IN THIS LINE SB3 3 SB4 B4-1 DECREMENT LINE COUNT NE B4,FCD6 IF DISPLAY NOT FULL ZR X5,FCD9 IF ALL DATA BASES DISPLAYED SA2 MORE BX6 X2 SX7 A5 SA6 KDAE+1 INDICATE MORE TO BE DISPLAYED SA7 NPAG SAVE FWA FOR NEXT PAGE SX7 FCD5 SA7 PAGE SAVE RESTART ADDRESS FOR PAGING SX1 KDA ADDRESS OF K-DISPLAY CONTROL WORD EQ TPA GO TO TERMINATION PROCESSOR FCD9 SA2 BLNK BLANK OUT UNUSED PART OF DISPLAY SX7 FCD SA7 PAGE ALLOW FORWARD PAGING TO ROLL BACK SX4 B3+ MX0 24 LX4 1 CONVERT DATA BASES/LINE TO WORDS/LINE SX1 KDA *K-DISPLAY* CONTROL WORD SB3 X4+ SB4 B4+1 BLANK OUT *MORE* LINE FCD10 EQ B4,TPA IF ALL LINES BLANKED SB6 B3-6 NE B6,FCD11 IF NOT FIRST WORD OF DISPLAY LINE SA4 A6+B1 BX6 X0*X4 RETAIN *DSD* CO-ORDINATES BX3 -X0*X2 BX6 X6+X3 SA6 A4+ EQ FCD12 CONTINUE WITH THE NEXT WORD FCD11 BX6 X2 SA6 A6+1 FCD12 SB3 B3-B1 NE B3,FCD10 IF MORE WORDS IN LINE SB4 B4-B1 DECREMENT LINE COUNT SB3 6 WORDS PER DISPLAY LINE EQ FCD10 BLANK NEXT WORD * TABLE OF DATA BASE STATUSES. FCDA BSS 0 LOC 0 DATA 10H UP DATA 10H IDLE DATA 10H DOWN DATA 10H OP-DOWN LOC *O FDD SPACE 4,30 ** FDD - FORMAT DATA BASE DISPLAY. * * FDD EXTRACTS RAW DATA FROM THE *TDRF*, *TARF*, *TQRF* TABLES * AND FORMATS A DATA BASE STATUS DISPLAY SUITABLE FOR THE * OPERATOR CONSOLE OR USER TERMINAL. IF THE DISPLAY IS TO * BE SENT TO A TERMINAL, DISPLAY LINES MAY ROLL OFF * THE TOP OF THE SCREEN. DUE TO THE LARGE NUMBER OF * TERMINAL TYPES, NO ATTEMPT IS MADE TO PREVENT THIS. * * ENTRY BADR = FWA OF TABLES. * * RE-ENTRY AT *FDD4*, *FDD14*, AND *FDD15*. * (A5) = FWA OF NEXT *TLNT*. * (X5) = FIRST WORD OF *TLNT*. * * EXIT TO *TPA* IF TAF ORIGIN. * (X1) = ADDRESS OF K-DISPLAY CONTROL WORD. * TO *TPB* IF TERMINAL ORIGIN. * (X1) = FWA OF SEND BUFFER. * (X5) = NUMBER OF WORDS TO SEND. * * USES X - ALL. * A - ALL. * B - ALL. * * CALLS CDD, SFN. * * MACROS MOVE. FDD BSS 0 ENTRY SX6 FDD SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDB *K-DISPLAY* CONTROL WORD SX7 KDBD *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDBE *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B1+ -C- FORMAT DISPLAY SA6 DSTP SA1 BADR+TDSDW SA2 BADR+TDIDW MX0 12 BX4 X0*X2 DATA BASE NAME LX4 -12 LX0 -12 SA3 KDBG+2 BX6 -X0*X3 MASK OUT ANY PREVIOUS NAME BX6 X6+X4 MERGE IN CURRENT NAME SA6 A3 STORE IN DATA BASE STATUS HEADING SB6 B0 PRESET STATUS = UP NG X1,FDD1 IF FILE DOWN LX1 TDSDS-TDSIS PL X1,FDD2 IF NOT IDLE SB6 B1+ SET STATUS = IDLE EQ FDD2 STORE STATUS FDD1 SA2 BADR+TDODW OPERATOR DOWN INDICATOR SB6 B1+B1 LX2 59-TDODS PL X2,FDD2 IF NOT OPERATOR DOWN SB6 3 FDD2 SA3 FDDE+B6 GET STATUS MESSAGE LX3 6 SX6 1R=&1R LX6 54 BX6 X6-X3 SA6 KDBH+2 STORE IN DATA BASE STATUS HEADING SA1 BADR+TDRFE+1 NZ X1,FDD3 IF AFTER IMAGE RECOVERY FILE EXISTS SA2 BLNK SA1 A1+B1 FWA OF FIRST *TLNT* BX6 X2 SA6 KDBG+5 BLANK OUT AFTER IMAGE RECOVERY FILE NAME SA6 KDBH+5 AND PRU-S REMAINING MOVE KDBFW,KDBF,KDBA STORE DATA BASE STATUS HEADING SA5 BADR+DST1L+TLFNW FWA OF 1ST *TLNT* FILE NAME EQ FDD13 FORMAT FILE LIST FDD3 SA1 A1+TAFFW MX0 42 BX1 X0*X1 AFTER IMAGE RECOVERY FILE NAME SA2 FDDD BX6 X1+X2 PAD NAME WITH BLANKS LX6 -6 MX0 TACPN SA6 KDBG+5 STORE IN DATA BASE STATUS HEADING SA1 BADR+TDRFE+1+TACPW LX1 59-TACPS BX1 X0*X1 LX1 TACPN RJ CDD CONVERT UNUSED PRU COUNT BX6 X4 LX6 -6 MX0 TQFFN SA6 KDBH+5 STORE IN DATA BASE STATUS HEADING MOVE KDBFW,KDBF,KDBA STORE DATA BASE STATUS HEADING MOVE KDBIW,KDBI,KDBB STORE BEFORE IMAGE FILE HEADER SA5 A1+TARFE-TACPW+1 SB4 KFNL-KDBFL-KDBIL NUMBER OF DISPLAY LINES SX6 1R LX6 59-5 SA6 KDBB+KDBIW-1 EQ FDD5 DISPLAY *BRF-S* * RE-ENTRY POINT. * * ENTRY (A5) = ADDRESS OF THE NEXT *TLNT* TO DISPLAY. * (X5) = FIRST WORD OF THE NEXT *TLNT* TO DISPLAY. FDD4 MOVE KDBKW,KDBK,KDBA STORE FILE AND STATUS SUB-HEADING SX6 1R LX6 59-5 SA6 KDBA+KDBKW-1 SB4 KFNL-KDBKL NUMBER OF DISPLAY LINES FDD5 SB3 6 NUMBER OF WORDS PER DISPLAY LINE FDD6 SA5 A5+TQSTW *BRF* STATUS WORD SA2 A5+TQFFW-TQSTW *BRF* FILE NAME MX0 TQFFN BX1 X0*X2 RJ SFN LX6 41-59 SA6 A6+B1 STORE *BRF* FILE NAME SA3 FDDA STATUS = UP PL X5,FDD7 IF *BRF* UP SA3 FDDB STATUS = DOWN FDD7 BX6 X3 SA6 A6+B1 STORE STATUS SB3 B3-2 DECREMENT COUNT SA5 A5+TQRFE-TQSTW NEXT *BRF* ZR X5,FDD8 IF NO MORE *BRF-S* NE B3,FDD6 IF MORE *BRF-S* THIS DISPLAY LINE SB4 B4-1 DECREMENT THE LINE COUNT SX6 1R LX6 59-5 SA6 A6+B1 SKIP OVER END OF LINE NE B4,FDD5 IF DISPLAY NOT FULL SX6 FDD4 RE-ENTRY ADDRESS EQ FDD20 PROCESS NEXT PAGE * DISPLAY *AFTER IMAGE RECOVERY FILES*. FDD8 SB4 B4-B1 DECREMENT DISPLAY LINE COUNT SA2 BLNK BX6 X2 ZR B3,FDD10 IF DISPLAY LINE FULL FDD9 SA6 A6+1 BLANK OUT REST OF LINE SA6 A6+1 SB3 B3-2 NE B3,FDD9 IF MORE TO BLANK FDD10 SB5 6 LT B4,B5,FDD11 IF NOT ENOUGH ROOM ON CURRENT PAGE SX5 A6+2 SKIP OVER END OF LINE MOVE KDBJW,KDBJ,X5 MOVE FILE HEADING TO DISPLAY SB4 B4-KDBJL DECREMENT LINE COUNT SB5 X5+KDBJW FWA TO STORE FILE NAMES SA5 BADR+DST1L+TLFNW FWA OF FIRST *TLNT* FILE NAME EQ FDD16 FORMAT FILE LIST FDD11 ZR B4,FDD12 IF ALL LINES PROCESSED SX6 1R LX6 59-5 SA6 A6+B1 END OF LINE SB3 6 RE-INITIALIZE COUNT EQ FDD8 BLANK OUT NEXT LINE FDD12 SX6 FDD15 RE-ENTRY ADDRESS SA5 BADR+DST1L+TLFNW FWA OF FIRST *TLNT* FILE NAME EQ FDD20 PROCESS NEXT PAGE FDD13 MOVE KDBJW,KDBJ,KDBB STORE DATA BASE FILE HEADER SB5 KDBB+KDBJW FWA TO STORE FILE NAMES SB4 KFNL-KDBFL-KDBJL NUMBER OF DISPLAY LINES EQ FDD16 DISPLAY DATA BASE FILES * RE-ENTRY POINTS. * * ENTRY (A5) = ADDRESS OF THE NEXT *TLNT* TO DISPLAY. * (X5) = FIRST WORD OF THE NEXT *TLNT* TO DISPLAY. FDD14 MOVE KDBKW,KDBK,KDBA STORE FILE AND STATUS SUB-HEADING SB5 KDBA+KDBKW FWA TO STORE FILE NAMES SB4 KFNL-KDBKL NUMBER OF DISPLAY LINES EQ FDD16 DISPLAY DATA BASE FILES FDD15 MOVE KDBJW,KDBJ,KDBA STORE DATA BASE FILE HEADER SB5 KDBA+KDBJW FWA TO STORE FILE NAMES SB4 KFNL-KDBJL NUMBER OF DISPLAY LINES FDD16 MX0 TLFNN SB3 6 WORDS PER DISPLAY LINE FDD17 BX1 X0*X5 RJ SFN LX6 41-59 SA2 A5+TLFDW-TLFNW STATUS WORD LX2 59-TLFDS SB6 B0+ STATUS = UP NG X2,FDD18 IF FILE DOWN LX2 TLFDS-TLFIS PL X2,FDD19 IF FILE NOT IDLE SB6 B1 STATUS = IDLE EQ FDD19 GET STATUS FDD18 LX2 TLFDS-TLFES SB6 2 STATUS = DOWN PL X2,FDD19 IF NOT DUE TO *CRM* ERROR SB6 B6+2 STATUS=*CRM* ERROR FDD19 SA3 FDDE+B6 GET STATUS BX7 X3 SA6 B5 STORE FILE NAME SA7 A6+1 SB3 B3-2 SB5 B5+2 ADDRESS FOR NEXT FILE NAME SA5 A5+TLNTE-TLFNW NEXT *TLNT* ZR X5,FDD21 IF END NE B3,FDD17 IF MORE FILES THIS DISPLAY LINE SB3 6 SB4 B4-B1 DECREMENT LINE COUNT SB5 B5+B1 ADDRESS OF NEXT DISPLAY LINE NE B4,FDD17 IF DISPLAY NOT FULL SX6 FDD14 RE-ENTRY ADDRESS * PROCESS NEXT PAGE. FDD20 SA6 PAGE SA2 MORE BX6 X2 SX7 A5 SX1 KDB *K-DISPLAY* CONTROL WORD SA6 KDBC+1 INDICATE MORE FILES SA7 NPAG NEXT ADDRESS IN THE BUFFER SA2 ORIG ZR X2,TPA IF *TAF* ORIGIN SX1 KDBA FWA OF SEND BUFFER SX5 KDBC-KDBA+2 WORDS TO SEND TO TERMINAL EQ TPB SEND DISPLAY TO TERMINAL * BLANK OUT UNUSED PART OF LAST PAGE. FDD21 SA2 BLNK BLANK OUT UNUSED PART OF DISPLAY BX6 X2 SX7 FDD SA7 PAGE ALLOW FORWARD PAGING TO ROLL BACK SB4 B4+1 BLANK OUT *MORE* LINE SX5 B5-KDBA+1 WORDS TO SEND FDD22 NE B3,FDD23 IF NOT END OF DISPLAY LINE SB3 6 SB5 B5+1 SKIP OVER END OF LINE SB4 B4-1 DECREMENT THE LINE COUNT FDD23 LE B4,FDD24 IF ALL LINES PROCESSED SA6 B5+ SB5 B5+B1 SB3 B3-B1 EQ FDD22 BLANK NEXT WORD FDD24 SX1 KDB SA2 ORIG ZR X2,TPA IF *TAF* ORIGIN SX1 KDBA FWA OF SEND BUFFER EQ TPB SEND DISPLAY TO TERMINAL FDDA DATA 10H UP *BRF* STATUS *UP* FDDB DATA 10H DOWN *BRF* STATUS DOWN FDDC CON 0 DISPLAY ADDRESS FOR FILE NAMES FDDD VFD 42/0,18/3L * TABLE OF DATA BASE FILE STATUSES. FDDE BSS 0 LOC 0 DATA 10H UP FILE UP DATA 10H IDLE FILE IDLE DATA 10H DOWN FILE DOWN FOR BATCH RECOVERY DATA 10H O-DOWN FILE DOWNED BY OPERATOR COMMAND DATA 10H E-DOWN FILE DOWN DUE TO *CRM* ERROR LOC *O FFD SPACE 4,25 ** FFD - FORMAT FILE DISPLAY. * * FFD EXTRACTS RAW DATA FROM THE *TLNT* AND COUNT OF USERS AND * LOCKS ON THE FILE, AND FORMATS A DISPLAY SUITABLE FOR THE * OPERATOR CONSOLE OR USER TERMINAL. * * ENTRY BADR = FWA OF *TLNT*. * * EXIT TO *TPA* IF TAF ORIGIN. * (X1) = ADDRESS OF K-DISPLAY CONTROL WORD. * TO *TPB* IF TERMINAL ORIGIN. * (X1) = FWA OF *SEND* BUFFER. * (X5) = NUMBER OF WORDS TO SEND. * * USES X - 0, 1, 2, 4, 5, 6, 7. * A - 1, 2, 5, 6, 7. * B - 6, 7. * * CALLS CDD, DXB, SFN. * * MACROS MOVE. FFD BSS 0 ENTRY SX6 FFD SA6 FPAG SET PROCESSOR ADDRESS SA6 PAGE SX6 KDC *K-DISPLAY* CONTROL WORD SX7 KDCM *K-DISPLAY* ERROR LINE SA6 CWKD SA7 EAKD SX6 KDCN *K-DISPLAY* INPUT LINE SA6 IAKD SX6 B1 -C- FORMAT DISPLAY MX0 42 SA6 DSTP SA1 BADR+TLFNW BX1 X0*X1 FILE NAME SB6 B0 PRESET STATUS = UP RJ SFN SPACE FILL NAME LX6 -6 SA6 KDCB+3 STORE IN DISPLAY BUFFER SA1 BADR+TLFDW FILE STATUS NG X1,FFD1 IF FILE DOWN LX1 TLFDS-TLFIS PL X1,FFD2 IF FILE NOT IDLE SB6 B1+ SET STATUS IDLE EQ FFD2 GET STATUS MESSAGE FFD1 LX1 TLFDS-TLFES SB6 B1+B1 SET STATUS = DOWN PL X1,FFD2 IF NOT DUE TO *CRM* ERROR SB6 3 SET STATUS = *CRM* ERROR* FFD2 SA2 FFDA+B6 GET STATUS BX6 X2 SA6 KDCD+3 STORE IN DISPLAY BUFFER SA1 BADR+TLNTE+1 COUNT OF ACTIVE FILE USERS RJ CDD CONVERT TO DECIMAL DISPLAY LX4 -18 MX0 -54 SA5 FFDB BX4 -X0*X4 BX6 X4+X5 SA6 KDCK+3 STORE IN DISPLAY BUFFER SA1 A1+1 COUNT OF LOCKS RJ CDD CONVERT TO DECIMAL DISPLAY LX4 -18 BX4 -X0*X4 BX6 X4+X5 SA6 KDCL+3 STORE IN DISPLAY BUFFER SA1 BADR+TLRFW RECOVERABILITY FLAG SB6 B0+ LX1 59-TLRFS MX0 TLPNN NG X1,FFD4 IF FILE RECOVERABLE SB6 B1+ FFD4 SA2 FFDC+B6 SA1 BADR+TLPNW PACK NAME BX6 X2 SA6 KDCE+3 RECOVERABILITY TO DISPLAY BUFFER BX1 X0*X1 RJ SFN SPACE FILL EVEN IF PACK NAME ABSENT LX6 -6 SA6 KDCF+3 PACK NAME TO DISPLAY BUFFER MX0 TLDVN SA1 BADR+TLDVW DEVICE TYPE LX1 59-TLDVS BX6 X0*X1 NZ X6,FFD5 IF DEVICE TYPE PRESENT SA1 FFDD BX6 X1 SA6 KDCG+3 STORE DEFAULT IN DISPLAY EQ FFD6 PROCESS ATTACH MODE FFD5 LX6 -6 SA5 BADR+TLUNW NUMBER OF UNITS ON DEVICE SA6 KDCG+3 SAVE DEVICE TYPE IN DISPLAY BUFFER LX5 59-TLUNS MX0 TLUNN BX5 X0*X5 SB7 -B1 RJ DXB MX0 24 BX6 X0*X6 SA2 KDCG+3 PICK DEVICE TYPE LX6 24 BX6 X2+X6 DEVICE TYPE AND NO. OF UNITS SA6 A2+ FFD6 SB6 4 SA2 FFDK MX0 -3 LX2 3 SA1 BADR+TLMDW PICK ATTACH MODE CODE MX6 TLMDN LX1 59-TLMDS BX1 X6*X1 LX1 TLMDN FFD7 BX5 -X0*X2 BX6 X5-X1 ZR X6,FFD8 IF ATTACH MODE CODE FOUND SB6 B6-B1 LX2 15 NZ B6,FFD7 IF NOT ALL CODES EXAMINED SA2 FFDM PUT BLANKS FOR ATTACH MODE MNEMONICS FFD8 MX7 12 BX1 X7*X2 ISOLATE MNEMONIC ATTACH MODE RJ SFN PAD WITH BLANKS LX6 -6 SA6 KDCH+3 STORE ATTACH MODE MNEMONIC MX0 TLKLN SA1 BADR+TLKLW SIZE OF PRIMARY KEY LX1 59-TLKLS BX1 X0*X1 LX1 TLKLN RIGHT JUSTIFY THE NUMBER RJ CDD CONVERT TO DECIMAL BX6 X4 LX6 35-59 SA6 KDCI+4 STORE IN DISPLAY BUFFER MX0 TLNAN SA1 BADR+TLNAW NUMBER OF ALTERNATE KEYS LX1 59-TLNAS BX1 X0*X1 LX1 TLNAN RJ CDD CONVERT TO DISPLAY MX0 -36 SA2 FFDE BX6 X4 LX6 35-59 BX6 -X0*X6 BX7 X2+X6 SA7 KDCJ+4 STORE IN DISPLAY BUFFER SX1 KDC K-DISPLAY CONTROL WORD SA2 ORIG ZR X2,TPA IF TAF ORIGIN SX1 KDCA FWA OF SEND BUFFER SX5 KDC1L WORDS TO SEND EQ TPB SEND DISPLAY TO TERMINAL * TABLE OF FILE STATUSES. FFDA BSS 0 LOC 0 DATA 10H UP DATA 10H IDLE DATA 10H DOWN DATA 10H E-DOWN LOC *O FFDB DATA 1L= FFDC DATA 10H YES DATA 10H NO FFDD DATA 10H DEFAULT FFDE DATA 4LS = FFDK VFD 3/PTRD,12/2LR ,3/PTWR,12/2LW ,3/PTMD,12/2LM VFD 3/PTRM,12/2LRM FFDL DATA 7LKEYS = FFDM DATA 10H IBR SPACE 4,15 ** IBR - INCORRECT *BTRAN* REQUEST. * * THIS SUBROUTINE JOURNALS AN INCORRECT *SIC* REQUEST * IN *JOUR0* AND TERMINATES THE TASK. * * ENTRY (X3) = ERROR CODE. * COMMUNICATION BLOCK CONTAINS INCORRECT REQUEST. * * USES X - 0, 1, 3, 6. * A - 1, 6. * B - 2, 3. * * MACROS CEASE, JOURNL. IBR BSS 0 ENTRY SB2 3 LX3 2 MX0 -12 SA1 IBRA+X3 ERROR MESSAGE ADDRESS SB3 TMSW IBR1 SA3 A1+B2 MOVE MESSAGE TO JOURNAL BUFFER BX6 X3 SA6 IBRB+B2 SB2 B2-1 PL B2,IBR1 IF NOT ENTIRE MESSAGE MOVED SA1 TNAM BX1 -X0*X1 SX6 IBRB SX0 X1-5 NG X0,IBR2 IF COMMUNICATION BLOCK 4 WORDS OR LESS SX1 4 IBR2 SB2 X1 SX1 X1+4 FORM PARAMETER WORD FOR JOURNAL CALL LX1 18 BX6 X1+X6 SB2 B2-B1 SA6 PADR IBR3 SA1 B3+B2 COPY COMMUNICATION BLOCK BX6 X1 SA6 IBRC+B2 SB2 B2-1 PL B2,IBR3 IF MORE WORDS IN THE COMMUNICATION BLOCK JOURNL PADR CEASE END TASK IBRA BSS 0 DATA 40HCRMTASK- INCORRECT REQUEST. DATA 40HCRMTASK- DATA BASE/FILE NAME UNKNOWN. DATA 40HCRMTASK- INCORRECT TT SEQUENCE NUMBER. DATA 40HCRMTASK- DATA BASE DOWNED BY OPERATOR. DATA 40HCRMTASK- NOT ALL DATA BASE FILES UPPED. DATA 40HCRMTASK- DATA BASE/FILE CANNOT BE UPPED. DATA 40HCRMTASK- DATA BASE/FILE BEING IDLED. DATA 40HCRMTASK- INCORRECT REQUEST FORMAT. IBRB BSS 4 ERROR MESSAGE AREA IBRC BSSZ 4 IBRE BSS 0 ERROR CODES LOC 0 IER0 BSS 1 INCORRECT REQUEST IER1 BSS 1 DATA BASE/FILE UNKNOWN IER2 BSS 1 INCORRECT TT SEQUENCE IER3 BSS 1 DATA BASE/FILE DOWNED BY OPERATOR IER4 BSS 1 NOT ALL FILES UPPED IER5 BSS 1 DATA BASE/FILE CANNOT BE UPPED IER6 BSS 1 IDLE DATA BASE/FILE IER7 BSS 1 REQUEST FORMAT ERROR LOC *O ORG IBRE ITU SPACE 4,20 ** ITU - INSERT TERMINATOR AND UNPACK MESSAGE. * * THIS SUBROUTINE DETERMINES WHERE THE TERMINAL MESSAGE * ENDS AND INSERTS A TERMINATOR THEN UNPACKS THE MESSAGE * TO RA+2. * * ENTRY DATA IN MESSAGE AREA. * * EXIT TERMINATOR IS INSERTED IN MESSAGE AND IT IS * UNPACKED TO RA+2. * * ERROR TO *TTE* IF UNPACK ERRORS. * * USES X - 0, 1, 2, 5, 6, 7. * A - 1, 2, 5, 7. * B - 1, 2, 3, 7. * * CALLS UPC. ITU SUBR ENTRY/EXIT SA2 CBSYW MX0 -12 BX2 -X0*X2 NUMBER OF WORDS IN MESSAGE SB2 X2+TMSW-2 LWA OF MESSAGE MX0 -6 SA1 B2+B1 LWA OF MESSAGE SA2 A1-B1 SX6 1R. BX7 -X0*X2 NZ X1,ITU1 IF LAST WORD CONTAINS NON ZERO CHARACTERS NZ X7,ITU1 IF NEXT TO LAST WORD IS FULL BX7 X2+X6 SA7 A2 EQ ITU3 UNPACK ITU1 SB2 B2+B1 SB3 CMBK+CMBL-1 LWA OF COMMUNICATION BLOCK SA1 B2 CURRENT WORD TO CHECK GE B2,B3,ITU3 IF MESSAGE EXCEEDED LIMIT SB3 60 ITU2 LX1 6 BX2 -X0*X1 SB3 B3-6 NG B3,ITU1 IF END OF WORD NZ X2,ITU2 IF NOT END OF MESSAGE BX1 X1+X6 INSERT TERMINATOR LX7 X1,B3 SA7 A1+ ITU3 SA5 TMSW FWA OF MESSAGE SB7 2 RJ UPC UNPACK TERMINAL COMMAND SB2 ER5 *INCORRECT COMMAND* NZ X6,TTE IF UNPACK ERRORS EQ ITUX RETURN SEM SPACE 4,20 ** SEM - SET ERROR MESSAGE. * * SEM SETS AN ERROR MESSAGE ON THE *K-DISPLAY*. * * ENTRY (B2) = INDEX INTO TABLE MESSAGE ADDRESSES. * (DSTP) = *K-DISPLAY* FORMAT FLAG. * (EAKD) = *K-DISPLAY* ERROR LINE. * (CWKD) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * * EXIT (X1) = ADDRESS OF *K-DISPLAY* CONTROL WORD. * * USES X - 1, 2, 3. * A - 1, 3. * B - 5. * * MACROS MOVE. SEM SUBR ENTRY/EXIT SB5 ERK SA1 DSTP ZR X1,SEM1 IF FORMATTED *K-DISPLAY* SB5 ERT SEM1 SA1 B5+B2 GET ERROR MESSAGE SX2 X1 MESSAGE ADDRESS SA3 EAKD *K-DISPLAY* ERROR LINE AX1 18 MESSAGE LENGTH MOVE X1,X2,X3 MOVE MESSAGE TO DISPLAY SA1 CWKD ADDRESS OF *K-DISPLAY* CONTROL WORD EQ SEMX RETURN TPR SPACE 4,10 *** TERMINATION PROCESSING ROUTINES. TPA SPACE 4,15 ** TPA - TERMINATION PROCESSOR FOR *K-DISPLAY* COMMAND. * * ENTRY (X1) = *K-DISPLAY* CONTROL WORD. * * EXIT TO *CVL*, IF NEW COMMAND ENTERED. * (B3) = FWA OF VALID COMMAND TABLE. * TO *CRS*, IF REFRESHING *CRMSTAT* DISPLAY. * (TMSW+1) = PARAMETER OF LAST *CRMSTAT* COMMAND. * * USES X - 1, 2, 3, 4, 6. * A - 1, 2, 4, 6. * B - 3. * * MACROS SYSTEM. TPA BSS 0 ENTRY BX6 X1 SA6 TPAA SAVE THE DISPLAY BUFFER ADDRESS SA4 IAKD MOVE 5,TDUA,X4 ECHO *DSD* INPUT TO *K-DISPLAY* SX6 B0 CLEAR MESSAGE AREA SA6 TMSW SA6 A6+B1 SA1 TPAA RESTORE THE DISPLAY BUFFER ADDRESS TPA1 SYSTEM CTI,,X1,8 TAF FUNCTION - SET *K-DISPLAY* SA1 TMSW ZR X1,TPA3 IF NO NEW COMMAND SX2 1R+ SX3 1R- BX6 X1 IX2 X2-X1 IX3 X3-X1 LX6 54 SB3 CVLB ZR X2,TPA2 IF *+* ZR X3,TPA2 IF *-* EQ CVL SEARCH FOR THE PROCESSOR TPA2 SA6 TMSW EQ CVL VALIDATE NEXT COMMAND TPA3 SA2 RFRS SA1 TPAA ZR X2,TPA1 IF LAST COMMAND NOT *CRMSTAT* SA2 A2+B1 PICK PARAMETER OF LAST *CRMSTAT* BX6 X2 SA6 TMSW+1 EQ CRS RE-ISSUE *CRMSTAT* REQUEST TPAA BSS 1 SAVE AREA FOR DISPLAY BUFFER ADDRESS TPB SPACE 4,20 ** TPB - TERMINATION PROCESSOR FOR TERMINAL DISPLAY. * * ENTRY (X1) = FWA OF SEND BUFFER. * (X5) = NUMBER WORDS TO SEND. * * EXIT TO *CVL*. * (B3) = FWA OF VALID COMMAND TABLE. * * ERROR TO *TTE*. * (B2) = ERROR CODE. * * USES X - ALL. * A - 1, 5, 6. * B - 2, 3, 5, 6, 7. * * CALLS ITU. * * MACROS SEND, WAITINP. TPB BSS 0 ENTRY SX3 MAXWS MAXIMUM WORDS + 1 FOR A *SEND* REQUEST SX4 X3-1 IX5 X5-X3 BX6 X1 LX6 30 MX0 1 SA6 PADR STORE MESSAGE ADDRESS NG X5,TPB2 IF LESS THAN MAXIMUM WORDS TO SEND LX0 -2 FLAG NOT LAST BLOCK BX6 X0+X6 BX6 X6+X4 MX0 18 LX0 -12 SA6 A6+ LX4 30 TPB1 SEND PADR SEND DATA TO TERMINAL SA1 PADR BX2 -X0*X1 BX1 X0*X1 IX1 X1+X4 INCREMENT MESSAGE ADDRESS BX6 X2+X1 SA6 A1 IX5 X5-X3 PL X5,TPB1 IF STILL .GT. MAXIMUM FOR SEND TPB2 IX5 X5+X3 WORDS TO SEND ZR X5,TPB2.1 IF WORD COUNT IS ZERO MX0 18 LX0 -12 BX6 X0*X6 BX6 X6+X5 SA6 A6 SEND PADR SEND FINAL BLOCK TPB2.1 SA1 MADB BX6 X1 SA6 PADR SEND PADR SEND MESSAGE SX6 B0 CLEAR MESSAGE AREA SA6 TMSW SA6 A6+B1 SX6 300 SA6 TPBB WAITINP TPBB WAIT FOR NEXT COMMAND SA1 TMSW SX1 X1-1 NZ X1,TPB3 IF NOT TIMEOUT SB2 ER8 *CRMTASK TIMEOUT.* EQ TTE TERMINATE TASK IN ERROR TPB3 RJ ITU INSERT TERMINATOR AND UNPACK SA1 B1+ SB5 TMSW TPB4 SA1 A1+1 NEXT WORD BX6 X1 SA6 B5 SB5 B5+1 SB6 B6-1 NE B6,TPB4 IF MORE WORDS TO MOVE SB3 CVLB FWA OF TABLE OF VALID COMMANDS SA1 TMSW SX2 1R+ SX3 1R- BX6 X1 IX2 X2-X1 IX3 X3-X1 LX6 59-5 ZR X2,TPB5 IF *+* ZR X3,TPB5 IF *-* EQ CVL VALIDATE COMMAND TPB5 SA6 TMSW EQ CVL VALIDATE COMMAND TPBB CON 0 WAIT TIME IN SECONDS TPD SPACE 4,10 ** TPD - TERMINATION PROCESSOR TASK CEASE. * * ENTRY (ORIG) = ORIGIN CODE. * * USES X - 1, 6. * A - 1, 6. * * MACROS CEASE, SEND. TPD BSS 0 ENTRY SA1 ORIG SX1 X1-1 NZ X1,TPD1 IF NOT TERMINAL ORIGIN SA1 MADA BX6 X1 SA6 PADR SEND PADR ISSUE TERMINATION MESSAGE TPD1 CEASE END TASK TTE SPACE 4,10 ** TTE - TERMINATE TERMINAL IN ERROR. * * ENTRY (B2) = ERROR CODE. * * USES X - 1, 2, 6. * A - 1, 6. * * MACROS CEASE, SEND. TTE BSS 0 ENTRY SA1 ERT+B2 SX2 X1 FWA OF THE MESSAGE AX1 18 MESSAGE LENGTH LX2 30 BX6 X2+X1 SA6 PADR SEND PADR SEND ERROR MESSAGE SA1 MADA BX6 X1 SA6 PADR SEND PADR SEND TERMINATION MESSAGE CEASE TERMINATE TASK ERK SPACE 4,10 * TABLE OF MESSAGE CODES FOR BOTH TERMINAL AND *K-DISPLAY*. ERC BSS 0 LOC 0 ER0 BSS 1 *DATA BASE/FILE NAME UNKNOWN.* ER1 BSS 1 *NOT ALL DATA BASE FILES UPPED.* ER2 BSS 1 *DATA BASE/FILE CANNOT BE UPPED.* ER3 BSS 1 *DATA BASE/FILE ALREADY DOWN OR IDLE.* ER4 BSS 1 *INSUFFICIENT FL FOR THIS COMMAND.* ER5 BSS 1 *INCORRECT COMMAND.* ER7 BSS 1 *REQUEST COMPLETE.* ER8 BSS 1 *CRMTASK TIMEOUT.* (TERMINAL ONLY) LOC *O ORG ERC RESET ORIGIN COUNTER * ERROR MESSAGES FOR *K-DISPLAY*. ERKA KDL 7,M,(DATA BASE/FILE NAME UNKNOWN.) ERKAL EQU *-ERKA ERKB KDL 7,M,(NOT ALL DATA BASE FILES UPPED.) ERKBL EQU *-ERKB ERKC KDL 7,M,(DATA BASE/FILE CANNOT BE UPPED.) ERKCL EQU *-ERKC ERKD KDL 7,M,(DATA BASE/FILE ALREADY DOWN OR IDLE.) ERKDL EQU *-ERKD ERKE KDL 7,M,(INSUFFICIENT FIELD LENGTH FOR THIS COMMAND.) ERKEL EQU *-ERKE ERKF KDL 7,M,(INCORRECT COMMAND.) ERKFL EQU *-ERKF ERKH KDL 7,M,(REQUEST COMPLETE.) ERKHL EQU *-ERKH * TABLE OF ERROR MESSAGE ADDRESSES AND LENGTHS. ERK BSS 0 LOC 0 VFD 24/0,18/ERKAL,18/ERKA VFD 24/0,18/ERKBL,18/ERKB VFD 24/0,18/ERKCL,18/ERKC VFD 24/0,18/ERKDL,18/ERKD VFD 24/0,18/ERKEL,18/ERKE VFD 24/0,18/ERKFL,18/ERKF VFD 24/0,18/ERKHL,18/ERKH LOC *O ERT SPACE 4,10 * ERROR MESSAGES FOR TERMINAL. ERTA DATA 50CDATA BASE/FILE NAME UNKNOWN. ERTAL EQU *-ERTA ERTB DATA 50CNOT ALL DATA BASE FILES UPPED. ERTBL EQU *-ERTB ERTC DATA 50CDATA BASE/FILE CANNOT BE UPPED. ERTCL EQU *-ERTC ERTD DATA 50CDATA BASE/FILE ALREADY DOWN OR IDLE. ERTDL EQU *-ERTD ERTE DATA 50CINSUFFICIENT FIELD LENGTH FOR THIS COMMAND. ERTEL EQU *-ERTE ERTF DATA 50CINCORRECT COMMAND. ERTFL EQU *-ERTF ERTH DATA 50CREQUEST COMPLETE. ERTHL EQU *-ERTH ERTI DATA 50CCRMTASK TIMEOUT. ERTIL EQU *-ERTI * TABLE OF ERROR MESSAGE ADDRESSES AND LENGTHS. ERT BSS 0 LOC 0 VFD 24/0,18/ERTAL,18/ERTA VFD 24/0,18/ERTBL,18/ERTB VFD 24/0,18/ERTCL,18/ERTC VFD 24/0,18/ERTDL,18/ERTD VFD 24/0,18/ERTEL,18/ERTE VFD 24/0,18/ERTFL,18/ERTF VFD 24/0,18/ERTHL,18/ERTH VFD 24/0,18/ERTIL,18/ERTI LOC *O SPACE 4 MSGA DATA 1L DATA C*CRMTASK COMPLETE.* MSGAL EQU *-MSGA MSGB DATA 1L DATA C*ENTER NEXT COMMAND...* MSGBL EQU *-MSGB MADA VFD 30/MSGA,30/MSGAL MADB VFD 30/MSGB,30/MSGBL KDA SPACE 4,10 * CRMSTAT K-DISPLAY. KDA VFD 10/0,1/0,1/0,6/0,18/0,24/2 FORMAT CONTROL WORD KDL 28,T,(CRM STATUS) KDL 16,,(TRANSACTIONS IN INPUT QUEUE = ) KDAA KDL 47,K,( ) KDL 16,,(ACTIVE TRANSACTIONS =) KDAB KDL 37,K,( ) KDL 16,,(TRANSACTIONS IN OUTPUT QUEUE = ) KDAC KDL 47,H,( ) KDL 6,K,(DATA DATA DATA) KDL 6,H,(BASE STATUS BASE STATUS BASE STA ,TUS) KDAD BSS 0 START OF VARIABLE DISPLAY DUP KFNL-10,1 ASSIGN SPACE FOR DATA BASE NAMES/STATUSES KDL 7,K,( , ) KDAE KDL 5,K,( , ) *MORE* LINE KDAF KDL 7,M,( , ) MESSAGE LINE KDAG KDL 1,I,( , ) KEYBOARD INPUT LINE CON 0 END OF DISPLAY KDB SPACE 4,10 * DATA BASE STATUS DISPLAY. KDB BSS 0 ZERO BYTE FORMAT VFD 10/0,1/0,1/1,1/1,5/0,18/0,24/2 FORMAT CONTROL WORD KDBA BSS 0 DUP 5,1 DATA 60C , KDBB BSS 0 DUP 15,1 DATA 60C , KDBC DATA 60C , *MORE* LINE KDBD DATA 50C , END OF MESSAGE LINE KDBE DATA 50C , END OF KEYBOARD INPUT LINE CON 0 * DATA BASE STATUS HEADING. KDBF DATA 60C , DATA 60C ---------------- CRM DATA BASE STATUS ----------- ,----- DATA 60C , KDBG DATA 60C DATA BASE NAME = AFTER IMAGE FILE = , KDBH DATA 60C DATA BASE STATUS = PRU-S REMAINING = , KDBFW EQU *-KDBF NUMBER OF WORDS KDBFL EQU KDBFW/7 NUMBER OF LINES ERRNZ KDBFL*7-KDBFW ASSUMES 7 WORDS PER DISPLAY LINE * BEFORE IMAGE FILE HEADER. KDBI DATA 60C , DATA 60C ------------- BEFORE IMAGE FILES STATUS -------- ,------ DATA 60C FILE STATUS FILE STATUS FILE ,STATUS DATA 60C , KDBIW EQU *-KDBI NUMBER OF WORDS KDBIL EQU KDBIW/7 NUMBER OF LINES ERRNZ KDBIL*7-KDBIW ASSUMES 7 WORDS PER DISPLAY LINE * DATA BASE FILE HEADER. KDBJ DATA 60C , DATA 60C --------------- DATA BASE FILES STATUS --------- ,------ DATA 60C FILE STATUS FILE STATUS FILE ,STATUS DATA 60C , KDBJW EQU *-KDBJ NUMBER OF WORDS KDBJL EQU KDBJW/7 NUMBER OF LINES ERRNZ KDBJL*7-KDBJW ASSUMES 7 WORDS PER DISPLAY LINE * FILE AND STATUS SUB-HEADING. KDBK DATA 60C , DATA 60C FILE STATUS FILE STATUS FILE ,STATUS DATA 60C , KDBKW EQU *-KDBK NUMBER OF WORDS KDBKL EQU KDBKW/7 NUMBER OF LINES ERRNZ KDBKL*7-KDBKW ASSUMES 7 WORDS PER DISPLAY LINE KDC SPACE 4,10 * FILE STATUS DISPLAY. KDC BSS 0 ZERO BYTE FORMAT VFD 10/0,1/0,1/1,1/1,5/0,18/0,24/2 FORMAT CONTROL WORD KDCA DATA 1L DATA C* CRM FILE STATUS * DATA 1L KDCB DATA C* FILE NAME = * KDCD DATA C* FILE STATUS = * KDCE DATA C* RECOVERABLE = * DATA 1L KDCF DATA C* PACK NAME = * KDCG DATA C* DEVICE TYPE = * KDCH DATA C* ATTACH MODE = * DATA 1L KDCI DATA C* SIZE OF PRIMARY KEY = * KDCJ DATA C* NUMBER OF ALTERNATE KEYS = * DATA 1L KDCK DATA C* ACTIVE USERS = * KDCL DATA C* ACTIVE LOCKS = * KDC1L EQU KDCL+3-KDCA DUP 5,1 DATA 1L KDCM DATA 50C , END OF MESSAGE LINE KDCN DATA C* , * END OF KEYBOARD INPUT LINE CON 0 END OF DISPLAY SPACE 4,10 ** MENU DISPLAY. KDE BSS 0 VFD 10/0,1/0,1/0,6/0,18/0,24/2 KDL 25,T,(CRMTASK COMMANDS) KDL 8,K,(CRMSTAT SEE ALL CRM DATA BASES.) KDL 8,K,(CRMSTAT,DB SEE CRM DATA BASE DB.) KDL 8,H,(CRMSTAT,DBPFN SEE CRM DATA BASE FILE DBPFN.) KDL 8,K,(DBDOWN,DB DOWN DATA BASE DB.) KDL 8,K,(DBDOWN,DBPFN DOWN DATA BASE FILE DBPFN.) KDL 8,K,(DBUP,DB UP DATA BASE DB.) KDL 8,H,(DBUP,DBPFN UP DATA BASE FILE DBPFN.) KDL 8,K,(END END CRMTASK PROCESSING.) KDL 8,K,(MENU SEE THIS DISPLAY.) KDL 8,K,(+ PAGE LEFT SCREEN FORWARD.) KDL 8,K,(- PAGE LEFT SCREEN BACKWARD.) KDEA KDL 7,M,( , ) MESSAGE LINE KDEB KDL 1,I,( , ) KEYBOARD INPUT LINE CON 0 END OF DISPLAY SPACE 4,10 * BLANK LINES FOR *K-DISPLAY*. KBLC DATA 50H KBLCL EQU *-KBLC KBLF KDL 7,M,( , ) KBLFL EQU *-KBLF SPACE 4,10 * Y-COORDINATE TABLE. KBLG KDL * PRK HERE REMOTE BLOCK FROM *COMCDCP* SPACE 4,10 *** COMMON DECKS. *CALL COMCCDD *CALL COMCDCP *CALL,COMCDXB *CALL COMCMVE *CALL COMCSFN *CALL COMCSNM *CALL COMCSYS *CALL COMCUPC *CALL,COMSPFM BUF EJECT * DEFINE BUFFER SIZES FOR *AAMI* REQUESTS. CST1L EQU CMDM*RMDM*TSEQE+TSEQE+1+2*AAMQFL+AIBFL+AOBFL+1 CST2L EQU CMAXDB*TDRFE+1 DST1L EQU TDRFE+1+TARFE+1+BMAX*TQRFE+1 DST2L EQU CMAXNF*TLNTE+1 FSTBL EQU TLNTE+1+2+1 * DETERMINE MAXIMUM REQUIRED BUFFER SIZE. .1 MAX CST1L,DST1L,FSTBL .2 MAX CST2L,DST2L BUFSIZE EQU .1+.2 * ALLOCATE BUFFER. BADR BSSZ BUFSIZE+10B SPACE 4,10 END CRMTASK