cdc:nos2.source:opl871:crmtask
Table of Contents
CRMTASK
Table Of Contents
- [00011] TAF/CRM STATUS COMMAND AND DISPLAY TASK.
- [00172] INITIALIZATION.
- [00242] CVL - COMMAND VALIDATION.
- [00323] CRS - CRMSTAT PROCESSOR.
- [00430] DBD - DATA BASE DOWN.
- [00491] DBU - DATA BASE UP.
- [00555] DMU - DISPLAY MENU.
- [00600] PBP - PAGE BACKWARD PROCESSOR.
- [00621] PFP - PAGE FORWARD PROCESSOR.
- [00645] SIC - PROCESS *CRMSIC* REQUEST.
- [00702] CST - ISSUE *CRMSTAT* REQUEST.
- [00758] FCD - FORMAT CRMSTAT DISPLAY.
- [00935] FDD - FORMAT DATA BASE DISPLAY.
- [01214] FFD - FORMAT FILE DISPLAY.
- [01393] IBR - INCORRECT *BTRAN* REQUEST.
- [01465] ITU - INSERT TERMINATOR AND UNPACK MESSAGE.
- [01520] SEM - SET ERROR MESSAGE.
- [01553] TPA - TERMINATION PROCESSOR FOR *K-DISPLAY* COMMAND.
- [01605] TPB - TERMINATION PROCESSOR FOR TERMINAL DISPLAY.
- [01700] TPD - TERMINATION PROCESSOR TASK CEASE.
- [01720] TTE - TERMINATE TERMINAL IN ERROR.
Source Code
- CRMTASK.txt
- 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
cdc/nos2.source/opl871/crmtask.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator