IDENTIFICATION DIVISION. PROGRAM-ID. OPERMENU. AUTHOR. LaNeta M. Counts INSTALLATION. University of Arkansas at Little Rock. DATE-WRITTEN. March 1987. DATE-COMPILED. ******** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. VAX-11. OBJECT-COMPUTER. VAX-11. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SCANUSER-FILE ASSIGN TO SF ORGANIZATION IS RELATIVE ACCESS MODE IS RANDOM RELATIVE KEY IS RECNUM. ******** DATA DIVISION. FILE SECTION. FD SCANUSER-FILE VALUE OF ID IS "SYS$MANAGER:SCANUSER.DAT" RECORD CONTAINS 128 CHARACTERS. 01 SCANUSER-RECORD. 02 SCANUSER-TO-TAB. 05 S-PID PIC S9(9) COMP. 05 S-TERMINAL PIC X(9). 05 S-PTERMINAL PIC X(6). 05 S-USERNAME PIC X(12). 05 S-PRCNAM PIC X(15). 05 S-IMAGE PIC X(15). 05 S-PRI PIC S9(9) COMP. 05 S-APRIV. 10 S-APRIV-1 PIC S9(9) COMP. 10 S-APRIV-2 PIC S9(9) COMP. 05 S-CPUTIM PIC S9(9) COMP. 05 S-LOGINT PIC S9(18) COMP. 02 FILLER PIC X(43). WORKING-STORAGE SECTION. 01 SCANUSER-TABLE. 02 SCANUSER-ENTRY OCCURS 200 TIMES. 05 T-PID PIC S9(9) COMP. 05 T-TERMINAL PIC X(9). 05 T-PTERMINAL PIC X(6). 05 T-USERNAME PIC X(12). 05 T-PRCNAM PIC X(15). 05 T-IMAGE PIC X(15). 05 T-PRI PIC S9(9) COMP. 05 T-APRIV. 10 T-APRIV-1 PIC S9(9) COMP. 10 T-APRIV-2 PIC S9(9) COMP. 05 T-CPUTIM PIC S9(9) COMP. 05 T-LOGINT PIC S9(18) COMP. 05 T-MINUTES PIC S9(9) COMP. 05 T-NODE PIC S9(9) COMP. 01 TAG-TABLE. 05 TAG OCCURS 200 TIMES PIC S9(9) COMP. 01 WHO-RECORD. 05 W-USERNAME PIC X(12). 05 FILLER PIC X VALUE SPACES. 05 W-NODENAME PIC X(6). 05 W-IMAGE PIC X(10). 05 FILLER PIC X VALUE SPACES. 05 W-PRCNAM PIC X(15). 05 FILLER PIC X VALUE SPACES. 05 W-TERMINAL PIC X(6). 05 FILLER PIC X VALUE SPACES. 05 W-PID PIC X(8). 05 FILLER PIC X VALUE SPACES. 05 W-MINUTES PIC ZZZZ9. 01 WHO-TITLE-1. 05 FILLER PIC X(6) VALUE "Users:". 05 TOTAL-USERS PIC ZZZ9. 05 USER-DATA. 10 FILLER PIC X(7) VALUE " Alpha:". 10 SYS1-USERS PIC ZZ9. 10 FILLER PIC X(7) VALUE " Beta:". 10 SYS2-USERS PIC ZZ9. 10 FILLER PIC X(7) VALUE " Gamma:". 10 SYS3-USERS PIC ZZ9. 10 FILLER PIC X(7) VALUE " Delta:". 10 SYS4-USERS PIC ZZ9. 05 USER-LINE REDEFINES USER-DATA. 10 SYST OCCURS 4 TIMES. 15 FILLER PIC X(7). 15 NPERSYS-DISP PIC ZZ9. 01 WHO-TITLE-2. 05 FILLER PIC X(12) VALUE "Username". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(6) VALUE "Node". 05 FILLER PIC X(10) VALUE "Image". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(15) VALUE "Process". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(6) VALUE "Term". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(8) VALUE " PID". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(7) VALUE "Elapsed". 01 MISC-SCANUSER-VARIABLES. 05 RECNUM PIC 9(9) COMP. 05 MAX PIC S9(9) COMP. 05 NSWITCH PIC S9(9) COMP. 05 NDELTA PIC S9(9) COMP. 05 LL PIC S9(9) COMP. 05 K PIC S9(9) COMP. 05 TEMP PIC S9(9) COMP. 05 L PIC S9(9) COMP. 05 CURRTIM PIC S9(18) COMP. 05 CTIME PIC X(8). 05 CDATE PIC X(9). 05 SEARCH-NODE PIC S9(9) COMP. 05 LASTK PIC S9(9) COMP. 05 INTERVAL PIC S9(9) COMP. 05 SYSTEM PIC S9(9) COMP. 01 NODE-DATA. 05 FILLER PIC X(24) VALUE "Alpha Beta Gamma Delta". 05 FILLER PIC S9(9) VALUE 0. 05 FILLER PIC S9(9) VALUE 0. 05 FILLER PIC S9(9) VALUE 0. 05 FILLER PIC S9(9) VALUE 0. 01 NODE-TABLE REDEFINES NODE-DATA. 05 NODENAME OCCURS 4 TIMES PIC X(6). 05 NPERSYS OCCURS 4 TIMES PIC S9(9) COMP. 01 QUI-RELATED-VARIABLES. 05 I PIC S9(9) COMP. 05 ONE PIC S9(9) COMP VALUE 1. 05 QUI-SEARCH-NAME PIC X VALUE "*". 05 QUI-SEARCH-FLAGS PIC S9(9) COMP. 05 QUI-ENTRY-NUMBER PIC S9(9) COMP. 05 QUI-ENTRY-FLAG PIC 9. 88 ENTRY-FOUND VALUE 1. 05 QUI-QUEUE-STATUS PIC S9(9) COMP. 05 QUI-PRIORITY PIC S9(9) COMP. 05 QUI-PRIORITY-DISPLAY PIC ZZZZ9. 05 QUI-FILE-COPIES PIC S9(9) COMP. 05 QUI-AFTER-TIME PIC S9(18) COMP. 05 QUI-AFTER-TIME-DISPLAY PIC X(23). 05 QUI-QUEUE-NAME-L PIC S9(9) COMP. 05 QUI-JOB-STATUS PIC S9(9) COMP. 05 TEST-VALUE PIC S9(9) COMP. 88 STATUS-FOUND VALUE 1. 05 HOLD-ANSWER PIC X. 88 AFFIRM VALUE "Y". 01 TITLE-LINE-1. 05 FILLER PIC X(5) VALUE "Entry". 05 FILLER PIC XX VALUE SPACES. 05 FILLER PIC X(17) VALUE "Queue". 05 FILLER PIC XX VALUE SPACES. 05 FILLER PIC X(12) VALUE "Username". 05 FILLER PIC XX VALUE SPACES. 05 FILLER PIC X(12) VALUE "Job Name". 05 FILLER PIC XX VALUE SPACES. 05 FILLER PIC X(12) VALUE "Status". 01 QUI-JOB-DISPLAY-RECORD. 05 QUI-ENTRY-NUMBER-DISPLAY PIC ZZZZ9. 05 FILLER PIC XX VALUE SPACES. 05 QUI-QUEUE-NAME PIC X(17). 05 FILLER PIC XX VALUE SPACES. 05 QUI-USERNAME PIC X(12). 05 FILLER PIC XX VALUE SPACES. 05 QUI-JOB-NAME PIC X(12). 05 FILLER PIC XX VALUE SPACES. 05 QUI-JOB-STATUS-DECODED PIC X(12). 01 QUI-QUEUE-DISPLAY-RECORD. 05 FILLER PIC X(7) VALUE "---->". 05 QUI-QUEUE-NAME-AGAIN PIC X(17). 05 FILLER PIC X(30) VALUE SPACES. 05 QUI-QUEUE-STATUS-DECODED PIC X(20). 01 QUI-QUEUE-LIST. * 1 05 FILLER PIC S9(4) COMP VALUE 1. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_SEARCH_NAME. 05 FILLER POINTER VALUE REFERENCE QUI-SEARCH-NAME. 05 FILLER PIC S9(9) COMP VALUE 0. * 2 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_SEARCH_FLAGS. 05 FILLER POINTER VALUE REFERENCE QUI-SEARCH-FLAGS. 05 FILLER PIC S9(9) COMP VALUE 0. * 3 05 FILLER PIC S9(4) COMP VALUE 17. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_QUEUE_NAME. 05 FILLER POINTER VALUE REFERENCE QUI-QUEUE-NAME. 05 FILLER POINTER VALUE REFERENCE QUI-QUEUE-NAME-L. * 4 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_QUEUE_STATUS. 05 FILLER POINTER VALUE REFERENCE QUI-QUEUE-STATUS. 05 FILLER PIC S9(9) COMP VALUE 0. * 5 (final) 05 FILLER PIC S9(4) COMP VALUE 0. 05 FILLER PIC S9(4) COMP VALUE 0. 05 FILLER PIC S9(9) COMP VALUE 0. 05 FILLER PIC S9(9) COMP VALUE 0. C Initialize item list for the display job operation 01 QUI-JOB-LIST. * 1 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_SEARCH_FLAGS. 05 FILLER POINTER VALUE REFERENCE QUI-SEARCH-FLAGS. 05 FILLER PIC S9(9) COMP VALUE 0. * 2 05 FILLER PIC S9(4) COMP VALUE 12. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_JOB_NAME. 05 FILLER POINTER VALUE REFERENCE QUI-JOB-NAME. 05 FILLER PIC S9(9) COMP VALUE 0. * 3 05 FILLER PIC S9(4) COMP VALUE 12. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_USERNAME. 05 FILLER POINTER VALUE REFERENCE QUI-USERNAME. 05 FILLER PIC S9(9) COMP VALUE 0. * 4 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_JOB_STATUS. 05 FILLER POINTER VALUE REFERENCE QUI-JOB-STATUS. 05 FILLER PIC S9(9) COMP VALUE 0. * 5 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_ENTRY_NUMBER. 05 FILLER POINTER VALUE REFERENCE QUI-ENTRY-NUMBER. 05 FILLER PIC S9(9) COMP VALUE 0. * 6 05 FILLER PIC S9(4) COMP VALUE 8. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_AFTER_TIME. 05 FILLER POINTER VALUE REFERENCE QUI-AFTER-TIME. 05 FILLER PIC S9(9) COMP VALUE 0. * 7 05 FILLER PIC S9(4) COMP VALUE 4. 05 FILLER PIC S9(4) COMP VALUE EXTERNAL QUI$_PRIORITY. 05 FILLER POINTER VALUE REFERENCE QUI-PRIORITY. 05 FILLER PIC S9(9) COMP VALUE 0. * 8 (final) 05 FILLER PIC S9(4) COMP VALUE 0. 05 FILLER PIC S9(4) COMP VALUE 0. 05 FILLER PIC S9(9) COMP VALUE 0. 05 FILLER PIC S9(9) COMP VALUE 0. 01 SEARCH-RELATED-VARIABLES. 05 INITIAL-FILENAME PIC X(33) VALUE "DISK$USER:[SYSOPRLIB.PROD]*.COM;0". 05 WORKING-FILENAME PIC X(128). 05 DISPLAY-FILENAME PIC X(25). 05 DUMMY-STRING PIC X(80). 05 FIND-CONTEXT PIC 9(9) COMP. 05 FILE-STATUS PIC 9(9) COMP. 88 RMS$_NMF VALUE EXTERNAL RMS$_NMF. 05 EXECUTE-FILENAME. 10 FILLER PIC X(27) VALUE "@DISK$USER:[SYSOPRLIB.PROD]". 10 PROGRAM-TO-EXECUTE PIC X(25). 05 SCREEN-INDEX PIC 9(9) COMP. 01 SECURITY-LEVEL PIC S9(9) COMP EXTERNAL. 01 BATCH-SCREEN-DATA PIC X(250) EXTERNAL. 01 SCREEN-DATA. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE SPACES. 05 FILLER PIC X(25) VALUE "Exit to main ". 05 FILLER PIC X(25) VALUE "More choices ". ***************************************************************** run prod job 01 SCREEN-DATA-TABLE REDEFINES SCREEN-DATA. 05 SCREEN-ITEM OCCURS 10 TIMES PIC X(25). 01 CALL-STATUS. 05 QUAD-RETURN-STATUS PIC 9(18) COMP. 05 CHAR-QUAD-STATUS PIC X(16). 01 TERM-ARGUMENTS. 05 CHOICE PIC 99. 05 ENTRY-POINT PIC 99. 05 PASSING-STRING PIC X(80). 05 TO-USERNAME PIC X(12). 01 TEXT-N-MESSAGES. 05 TICS PIC X(4) VALUE "TICS". 05 SET-HOST PIC X(1) VALUE " ". 05 SYSOPR PIC X(12) VALUE "SYSOPR". 05 BATCH-QUEUE-NAME PIC X(18) VALUE "PROD_BATCH". 05 PROD-FILE-SPEC. 10 PFS-SPEC PIC X(26) VALUE "DISK$USER:[SYSOPRLIB.PROD]". 10 RUN-JOB-NAME PIC X(31). 05 CLOSING-MESSAGES. 10 LIB-FILE-SPEC PIC X(37) VALUE "DISK$USER:[SYSOPRLIB]LIBCLOSING.COM". 10 SU-FILE-SPEC PIC X(37) VALUE "DISK$USER:[SYSOPRLIB]SUCLOSING.COM". 10 FILE-SPEC PIC X(37). 05 MESSAGE-TXT. 10 MT-TXT PIC X(68). 10 MT-SIG PIC X(13) VALUE "...from SYSOP". 05 ALL-MSG PIC X(57) VALUE "Enter message at ? to be sent to all users (68 char. max)". 05 USERNAME-PROMPT PIC X(38) VALUE "Enter the username to send message to?". 05 USER-MSG PIC X(56) VALUE "Enter message at ? to be sent to the user (68 char. max)". 05 GENERIC-MESS-PROMPT PIC X(37) VALUE "Enter your message (68 character max)". 01 FLAGS. 05 TASK-COMPLETE PIC X. 88 FINISHED VALUE "Y". 01 SYSTEM-FUNCTIONS. 05 BRK$C_DEVICE PIC 9(9) COMP VALUE 1. 05 BRK$C_USERNAME PIC 9(9) COMP VALUE 2. 05 BRK$C_ALLUSERS PIC 9(9) COMP VALUE 3. 05 BRK$M_CLUSTER PIC 9(9) COMP VALUE 2048. 01 SJC$_ENTER_FILE PIC 9(9) COMP VALUE EXTERNAL SJC$_ENTER_FILE. 01 SS$_NORMAL PIC 9(9) COMP VALUE EXTERNAL SS$_NORMAL. 01 SS$_NOMOREPROC PIC 9(9) COMP VALUE EXTERNAL SS$_NOMOREPROC. 01 SNDJBCW-ITEMLIST. * 1 05 FILLER PIC 9(4) COMP VALUE 18. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_QUEUE. 05 FILLER POINTER VALUE REFERENCE BATCH-QUEUE-NAME. 05 FILLER PIC 9(9) COMP VALUE 0. * 2 05 FILLER PIC 9(4) COMP VALUE 37. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_FILE_SPECIFICATION. 05 FILLER POINTER VALUE REFERENCE FILE-SPEC. 05 FILLER PIC 9(9) COMP VALUE 0. * 3 05 FILLER PIC 9(4) COMP VALUE 12. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_USERNAME. 05 FILLER POINTER VALUE REFERENCE SYSOPR. 05 FILLER PIC 9(9) COMP VALUE 0. * 4 05 FILLER PIC 9(4) COMP VALUE 0. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_NO_LOG_SPECIFICATION. 05 FILLER PIC 9(9) COMP VALUE 0. 05 FILLER PIC 9(9) COMP VALUE 0. * 5 05 FILLER PIC 9(4) COMP VALUE 80. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_PARAMETER_1. 05 FILLER POINTER VALUE REFERENCE PASSING-STRING. 05 FILLER PIC 9(9) COMP VALUE 0. * 6 05 FILLER PIC 9(4) COMP VALUE 4. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL SJC$_ENTRY_NUMBER_OUTPUT. 05 FILLER POINTER VALUE REFERENCE ENTRY-NUMBER. 05 FILLER PIC 9(9) COMP VALUE 0. * 7 05 FILLER PIC 9(4) COMP VALUE 0. 05 FILLER PIC 9(4) COMP VALUE 0. 05 FILLER PIC 9(9) COMP VALUE 0. 05 FILLER PIC 9(9) COMP VALUE 0. 01 SNDJBCW-ITEMLIST-REDEF REDEFINES SNDJBCW-ITEMLIST. 05 ITEM-LIST OCCURS 7 TIMES. 10 BUFLEN PIC 9(4) COMP. 10 ITMCOD PIC 9(4) COMP. 10 BUFADR PIC 9(9) COMP. 10 RETADR PIC 9(9) COMP. 01 GETJPIW-ITEMLIST. * 1 05 FILLER PIC 9(4) COMP VALUE 80. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_IMAGNAME. 05 FILLER POINTER VALUE REFERENCE JPI-IMAGNAME. 05 FILLER POINTER VALUE REFERENCE JPI-IMAG-LEN. * 2 05 FILLER PIC 9(4) COMP VALUE 4. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_MODE. 05 FILLER POINTER VALUE REFERENCE JPI-MODE. 05 FILLER PIC 9(9) COMP VALUE 0. * 3 05 FILLER PIC 9(4) COMP VALUE 4. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_PID. 05 FILLER POINTER VALUE REFERENCE JPI-REAL-PID. 05 FILLER PIC 9(9) COMP VALUE 0. * 4 05 FILLER PIC 9(4) COMP VALUE 7. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_TERMINAL. 05 FILLER POINTER VALUE REFERENCE JPI-TERMINAL. 05 FILLER PIC 9(9) COMP VALUE 0. * 5 05 FILLER PIC 9(4) COMP VALUE 4. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_UIC. 05 FILLER POINTER VALUE REFERENCE JPI-UIC. 05 FILLER PIC 9(9) COMP VALUE 0. * 6 05 FILLER PIC 9(4) COMP VALUE 12. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL JPI$_USERNAME. 05 FILLER POINTER VALUE REFERENCE JPI-USERNAME. 05 FILLER PIC 9(9) COMP VALUE 0. * 7 05 FILLER PIC 9(4) COMP VALUE 0. 05 FILLER PIC 9(4) COMP VALUE 0. 05 FILLER PIC 9(9) COMP VALUE 0. 05 FILLER PIC 9(9) COMP VALUE 0. 01 GETJPIW-ITEMLIST-REDEF REDEFINES GETJPIW-ITEMLIST. 05 ITEM-LIST OCCURS 7 TIMES. 10 BUFLEN PIC 9(4) COMP. 10 ITMCOD PIC 9(4) COMP. 10 BUFADR PIC 9(9) COMP. 10 RETADR PIC 9(9) COMP. 01 JPI-INFO. 05 JPI-USERNAME PIC X(12). 05 FILLER PIC X VALUE SPACES. 05 JPI-TERMINAL PIC X(7). 05 FILLER PIC X VALUE SPACES. 05 JPI-IMAGNAME-SHRUNK PIC X(12). 05 FILLER PIC X VALUE SPACES. 05 JPI-MODE-TRANS PIC X(11). 01 JPI-ADDITIONAL-ITEMS. 05 JPI-IMAGNAME PIC X(80). 05 JPI-IMAG-LEN PIC S9(9) COMP. 05 JPI-MODE PIC S9(9) COMP. 05 JPI-PID PIC S9(9) COMP. 05 JPI-REAL-PID PIC S9(9) COMP. 05 JPI-UIC. 10 JPI-MEMBER PIC S9(4) COMP. 10 JPI-GROUP PIC S9(4) COMP. 01 JPI-MODES. 05 FILLER PIC X(11) VALUE "OTHER". 05 FILLER PIC X(11) VALUE "NETWORK". 05 FILLER PIC X(11) VALUE "BATCH". 05 FILLER PIC X(11) VALUE "INTERACTIVE". 01 JPI-MODES-REDEF REDEFINES JPI-MODES. 05 JPI-MODE-NAME OCCURS 4 TIMES PIC X(11). 01 FILESCAN-ITEMLIST. * 1 05 IMAG-LEN PIC 9(4) COMP. 05 FILLER PIC 9(4) COMP VALUE EXTERNAL FSCN$_NAME. 05 IMAG-START PIC 9(9) COMP. * 2 05 FILLER PIC 9(9) COMP VALUE 0. 01 IMAGNAME-POINTER POINTER VALUE REFERENCE JPI-IMAGNAME. 01 IMAG-LOCATION REDEFINES IMAGNAME-POINTER PIC S9(4) COMP. 01 IO-STATUS-BLOCK. 05 IO-STS PIC 9(9) COMP. 05 ZEROED PIC 9(9) COMP. 01 ENTRY-NUMBER PIC 9(9) COMP. 01 SYS-STATUS PIC 9(9) COMP. 01 TWELVE PIC 9(9) COMP VALUE 12. ******** 01 JBC$_NOMOREJOB PIC S9(9) COMP VALUE EXTERNAL JBC$_NOMOREJOB. 01 JBC$_NOMOREQUE PIC S9(9) COMP VALUE EXTERNAL JBC$_NOMOREQUE. 01 JBC$_NOSUCHJOB PIC S9(9) COMP VALUE EXTERNAL JBC$_NOSUCHJOB. 01 QUI$M_JOB_PENDING PIC S9(9) COMP VALUE 0. 01 QUI$M_SEARCH_ALL_JOBS PIC S9(9) COMP VALUE EXTERNAL QUI$M_SEARCH_ALL_JOBS. 01 QUI$M_SEARCH_BATCH PIC S9(9) COMP VALUE EXTERNAL QUI$M_SEARCH_BATCH. 01 QUI$M_SEARCH_WILDCARD PIC S9(9) COMP VALUE EXTERNAL QUI$M_SEARCH_WILDCARD. 01 QUI$_CANCEL_OPERATION PIC S9(9) COMP VALUE EXTERNAL QUI$_CANCEL_OPERATION. 01 QUI$_DISPLAY_JOB PIC S9(9) COMP VALUE EXTERNAL QUI$_DISPLAY_JOB. 01 QUI$_DISPLAY_QUEUE PIC S9(9) COMP VALUE EXTERNAL QUI$_DISPLAY_QUEUE. 01 QUEUE-BITS. 05 QUI$V_QUEUE_IDLE PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_IDLE. 05 QUI$V_QUEUE_ALIGNING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_ALIGNING. 05 QUI$V_QUEUE_PAUSED PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_PAUSED. 05 QUI$V_QUEUE_PAUSING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_PAUSING. 05 QUI$V_QUEUE_RESETTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_RESETTING. 05 QUI$V_QUEUE_RESUMING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_RESUMING. 05 QUI$V_QUEUE_STALLED PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_STALLED. 05 QUI$V_QUEUE_STARTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_STARTING. 05 QUI$V_QUEUE_STOPPED PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_STOPPED. 05 QUI$V_QUEUE_STOPPING PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_STOPPING. 05 QUI$V_QUEUE_UNAVAILABLE PIC S9(9) COMP VALUE EXTERNAL QUI$V_QUEUE_UNAVAILABLE. 01 QUEUE-BITS-REDEF REDEFINES QUEUE-BITS. 05 QUEUE-BIT OCCURS 11 TIMES PIC S9(9) COMP. 01 QUEUE-STATUS-DESCRIPTIONS. 05 FILLER PIC X(12) VALUE "Idle". 05 FILLER PIC X(12) VALUE "Aligning". 05 FILLER PIC X(12) VALUE "Paused". 05 FILLER PIC X(12) VALUE "Pausing". 05 FILLER PIC X(12) VALUE "Resetting". 05 FILLER PIC X(12) VALUE "Resuming". 05 FILLER PIC X(12) VALUE "Stalled". 05 FILLER PIC X(12) VALUE "Starting". 05 FILLER PIC X(12) VALUE "Stopped". 05 FILLER PIC X(12) VALUE "Stopping". 05 FILLER PIC X(12) VALUE "Unavailable". 01 Q-S-D REDEFINES QUEUE-STATUS-DESCRIPTIONS. 05 QUEUE-STAT OCCURS 11 TIMES PIC X(12). 01 JOB-BITS. 05 QUI$V_JOB_ABORTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_ABORTING. 05 QUI$V_JOB_EXECUTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_EXECUTING. 05 QUI$V_JOB_HOLDING PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_HOLDING. 05 QUI$V_JOB_INACCESSIBLE PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_INACCESSIBLE. 05 QUI$V_JOB_REFUSED PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_REFUSED. 05 QUI$V_JOB_RETAINED PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_RETAINED. 05 QUI$V_JOB_REQUEUE PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_REQUEUE. 05 QUI$V_JOB_RESTARTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_RESTARTING. 05 QUI$V_JOB_STARTING PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_STARTING. 05 QUI$V_JOB_TIMED PIC S9(9) COMP VALUE EXTERNAL QUI$V_JOB_TIMED. 01 JOB-BITS-REDEF REDEFINES JOB-BITS. 05 JOB-BIT OCCURS 10 TIMES PIC S9(9) COMP. 01 JOB-STATUS-DESCRIPTIONS. 05 FILLER PIC X(12) VALUE "Aborting". 05 FILLER PIC X(12) VALUE "Executing". 05 FILLER PIC X(12) VALUE "Holding". 05 FILLER PIC X(12) VALUE "Inaccessible". 05 FILLER PIC X(12) VALUE "Refused". 05 FILLER PIC X(12) VALUE "Retained". 05 FILLER PIC X(12) VALUE "Requeue". 05 FILLER PIC X(12) VALUE "Restarting". 05 FILLER PIC X(12) VALUE "Starting". 05 FILLER PIC X(12) VALUE "Timed". 01 J-S-D REDEFINES JOB-STATUS-DESCRIPTIONS. 05 JOB-STAT OCCURS 10 TIMES PIC X(12). PROCEDURE DIVISION. 000-MAINLINE. PERFORM 010-INITIALIZE THRU 010-EXIT. IF SECURITY-LEVEL LESS THAN 4 THEN MOVE 1 TO ENTRY-POINT MOVE 10 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING PERFORM 020-MENU-LOOP THRU 020-EXIT UNTIL CHOICE IS EQUAL TO 10. MOVE 99 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 000-EXIT. STOP RUN. 010-INITIALIZE. ******** Security MOVE 5 TO SECURITY-LEVEL. MOVE 0 TO JPI-PID. PERFORM 313-FIND-PID THRU 313-EXIT. IF JPI-GROUP IS LESS THAN 8184 THEN MOVE 4 TO SECURITY-LEVEL. IF JPI-GROUP IS EQUAL TO 112 OR JPI-GROUP IS EQUAL TO 113 THEN MOVE 5 TO SECURITY-LEVEL. IF JPI-GROUP IS EQUAL TO 11 THEN MOVE 3 TO SECURITY-LEVEL. IF JPI-GROUP IS EQUAL TO 9 THEN MOVE 2 TO SECURITY-LEVEL. IF JPI-GROUP IS EQUAL TO 2 OR 10 THEN MOVE 1 TO SECURITY-LEVEL. MOVE 0 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 010-EXIT. EXIT. 020-MENU-LOOP. EVALUATE CHOICE WHEN 1 PERFORM 100-COMMUNICATE THRU 100-EXIT UNTIL CHOICE IS EQUAL TO 10 WHEN 2 PERFORM 200-RUNPRODJOB THRU 200-EXIT WHEN 3 PERFORM 300-KILLEM THRU 300-EXIT UNTIL CHOICE IS EQUAL TO 10 WHEN 4 PERFORM 400-SHOWSTATUS THRU 400-EXIT UNTIL CHOICE IS EQUAL TO 10 WHEN 5 PERFORM 500-PRTQUEMGT THRU 500-EXIT WHEN 6 PERFORM 600-TICS THRU 600-EXIT END-EVALUATE. MOVE 1 TO ENTRY-POINT. MOVE 10 TO CHOICE. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 020-EXIT. EXIT. 100-COMMUNICATE. MOVE 1 TO ENTRY-POINT. MOVE 1 TO CHOICE. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF CHOICE IS EQUAL TO 10 THEN MOVE 98 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING ELSE PERFORM 110-COMMUNICATE THRU 110-EXIT. 100-EXIT. EXIT. 110-COMMUNICATE. EVALUATE CHOICE WHEN 1 PERFORM 111-LIB-CLOSE THRU 111-EXIT WHEN 2 PERFORM 112-MSG-TO-ALL THRU 112-EXIT WHEN 3 PERFORM 113-MSG-TO-USER THRU 113-EXIT WHEN 4 PERFORM 114-UNION-CLOSE THRU 114-EXIT END-EVALUATE. 110-EXIT. EXIT. ******** send a closing message to the library lab ******** submits DISK$USER:[SYSOPRLIB]LIBCLOSING.COM to batch queue PROD_BATCH 111-LIB-CLOSE. ******** GET THE MESSAGE TO SEND. MOVE 4 TO ENTRY-POINT. MOVE GENERIC-MESS-PROMPT TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 5 TO ENTRY-POINT. MOVE 0 TO CHOICE. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF PASSING-STRING IS NOT EQUAL TO SPACES THEN MOVE LIB-FILE-SPEC TO FILE-SPEC CALL "SYS$SNDJBCW" USING OMITTED BY VALUE SJC$_ENTER_FILE OMITTED BY REFERENCE SNDJBCW-ITEMLIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS IF SYS-STATUS IS NOT EQUAL TO SS$_NORMAL THEN CALL "LIB$SIGNAL" USING BY VALUE SYS-STATUS END-IF END-IF. PERFORM 8000-GET-ACK THRU 8000-EXIT. 111-EXIT. EXIT. ******** send a message to all users on all nodes ******** prompt for text of message on terminal 112-MSG-TO-ALL. MOVE 4 TO ENTRY-POINT. MOVE ALL-MSG TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 5 TO ENTRY-POINT. MOVE 0 TO CHOICE. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF PASSING-STRING IS NOT EQUAL TO SPACES THEN CALL "SYS$BRKTHRU" USING OMITTED BY DESCRIPTOR PASSING-STRING OMITTED BY VALUE BRK$C_ALLUSERS BY REFERENCE QUAD-RETURN-STATUS OMITTED BY VALUE BRK$M_CLUSTER OMITTED OMITTED OMITTED OMITTED PERFORM 8000-GET-ACK THRU 8000-EXIT ELSE MOVE SPACES TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 112-EXIT. EXIT. ******** send message to a user ******** prompt for the username to send the message to ******** prompt for the message text to send 113-MSG-TO-USER. MOVE 4 TO ENTRY-POINT. MOVE USERNAME-PROMPT TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 1 TO CHOICE. MOVE 5 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE PASSING-STRING TO TO-USERNAME. IF TO-USERNAME IS EQUAL TO SPACES THEN GO TO 113-EXIT. MOVE 4 TO ENTRY-POINT. MOVE USER-MSG TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 0 TO CHOICE. MOVE 5 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE PASSING-STRING TO MT-TXT. IF MT-TXT IS EQUAL TO SPACES THEN GO TO 113-EXIT. MOVE 4 TO ENTRY-POINT. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CALL "SYS$BRKTHRU" USING OMITTED BY DESCRIPTOR MESSAGE-TXT BY DESCRIPTOR TO-USERNAME BY VALUE BRK$C_USERNAME BY REFERENCE QUAD-RETURN-STATUS OMITTED BY VALUE BRK$M_CLUSTER OMITTED OMITTED OMITTED OMITTED. PERFORM 8000-GET-ACK THRU 8000-EXIT. 113-EXIT. EXIT. ******** send closing message to union lab ******** submits DISK$USER:[SYSOPRLIB]SUCLOSING.COM to queue PROD_BATCH 114-UNION-CLOSE. MOVE 4 TO ENTRY-POINT. MOVE GENERIC-MESS-PROMPT TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 5 TO ENTRY-POINT. MOVE 0 TO CHOICE. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF PASSING-STRING IS NOT EQUAL TO SPACES THEN MOVE SU-FILE-SPEC TO FILE-SPEC CALL "SYS$SNDJBCW" USING OMITTED BY VALUE SJC$_ENTER_FILE OMITTED BY REFERENCE SNDJBCW-ITEMLIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS IF SYS-STATUS IS NOT EQUAL TO SS$_NORMAL THEN CALL "LIB$SIGNAL" USING BY VALUE SYS-STATUS END-IF END-IF. PERFORM 8000-GET-ACK THRU 8000-EXIT. 114-EXIT. EXIT. 200-RUNPRODJOB. MOVE 0 TO FIND-CONTEXT. MOVE 0 TO CHOICE. MOVE INITIAL-FILENAME TO WORKING-FILENAME. PERFORM 210-MENUS THRU 210-EXIT UNTIL CHOICE IS EQUAL TO 9. 200-EXIT. EXIT. 210-MENUS. MOVE 0 TO FILE-STATUS. PERFORM 220-BUILD-MENU THRU 220-EXIT VARYING SCREEN-INDEX FROM 1 BY 1 UNTIL SCREEN-INDEX IS GREATER THAN 8. IF RMS$_NMF THEN MOVE 0 TO FIND-CONTEXT. MOVE SCREEN-DATA TO BATCH-SCREEN-DATA. MOVE 1 TO ENTRY-POINT. MOVE 2 TO CHOICE. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF CHOICE IS LESS THAN 9 THEN MOVE SCREEN-ITEM (CHOICE) TO PROGRAM-TO-EXECUTE MOVE 2 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING CALL "LIB$SPAWN" USING BY DESCRIPTOR EXECUTE-FILENAME GIVING FILE-STATUS MOVE 3 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING PERFORM 8000-GET-ACK THRU 8000-EXIT MOVE 0 TO FIND-CONTEXT MOVE INITIAL-FILENAME TO WORKING-FILENAME. 210-EXIT. EXIT. 220-BUILD-MENU. IF NOT RMS$_NMF THEN CALL "LIB$FIND_FILE" USING BY DESCRIPTOR INITIAL-FILENAME BY DESCRIPTOR WORKING-FILENAME BY REFERENCE FIND-CONTEXT GIVING FILE-STATUS. IF RMS$_NMF THEN MOVE SPACES TO SCREEN-ITEM (SCREEN-INDEX) ELSE UNSTRING WORKING-FILENAME DELIMITED BY "]" OR ";" INTO DUMMY-STRING, DISPLAY-FILENAME MOVE DISPLAY-FILENAME TO SCREEN-ITEM (SCREEN-INDEX). 220-EXIT. EXIT. 300-KILLEM. MOVE 1 TO ENTRY-POINT. MOVE 5 TO CHOICE. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF CHOICE IS EQUAL TO 10 THEN MOVE 98 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING ELSE PERFORM 310-KILLEM-PROCESS THRU 310-EXIT. 300-EXIT. EXIT. 310-KILLEM-PROCESS. EVALUATE CHOICE WHEN 1 PERFORM 311-KILL-BY-PID THRU 311-EXIT WHEN 3 PERFORM 312-KILL-BY-USERNAME THRU 312-EXIT END-EVALUATE. 310-EXIT. EXIT. 311-KILL-BY-PID. MOVE "PID to delete? [exit]" TO PASSING-STRING. MOVE 4 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 1 TO CHOICE. MOVE 5 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CALL "OTS$CVT_TZ_L" USING BY DESCRIPTOR PASSING-STRING (1:8) BY REFERENCE JPI-PID GIVING SYS-STATUS. PERFORM 313-FIND-PID THRU 313-EXIT. IF SYS-STATUS IS EQUAL TO SS$_NORMAL THEN IF JPI-GROUP IS LESS THAN 2 THEN MOVE "Cannot delete system jobs - press return" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 1 TO CHOICE MOVE 5 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE 4 TO ENTRY-POINT MOVE SPACES TO PASSING-STRING CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING ELSE ADD 1 TO JPI-MODE MOVE JPI-MODE-NAME (JPI-MODE) TO JPI-MODE-TRANS IF JPI-IMAG-LEN IS GREATER THAN 0 THEN CALL "SYS$FILESCAN" USING BY DESCRIPTOR JPI-IMAGNAME BY REFERENCE FILESCAN-ITEMLIST OMITTED GIVING SYS-STATUS SUBTRACT IMAG-LOCATION FROM IMAG-START GIVING IMAG-START ADD 1 TO IMAG-START MOVE JPI-IMAGNAME (IMAG-START:IMAG-LEN) TO JPI-IMAGNAME-SHRUNK ELSE MOVE "" TO JPI-IMAGNAME-SHRUNK END-IF MOVE JPI-INFO TO PASSING-STRING MOVE 6 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE "Is this the correct user? [No]" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 5 TO ENTRY-POINT MOVE 1 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE PASSING-STRING TO HOLD-ANSWER MOVE SPACES TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 6 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING IF AFFIRM THEN CALL "SYS$DELPRC" USING BY REFERENCE JPI-REAL-PID OMITTED GIVING SYS-STATUS PERFORM 8000-GET-ACK THRU 8000-EXIT ELSE NEXT SENTENCE ELSE MOVE "User not found! -- Press return" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 5 TO ENTRY-POINT MOVE 1 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 311-EXIT. EXIT. 312-KILL-BY-USERNAME. MOVE "User to delete? [exit]" TO PASSING-STRING. MOVE 4 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 1 TO CHOICE. MOVE 5 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CALL "STR$UPCASE" USING BY DESCRIPTOR PASSING-STRING BY DESCRIPTOR PASSING-STRING. IF PASSING-STRING IS EQUAL TO "SYSTEM" THEN MOVE "Cannot delete system jobs - press return" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 5 TO ENTRY-POINT MOVE 1 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE 4 TO ENTRY-POINT MOVE SPACES TO PASSING-STRING CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING GO TO 312-EXIT. MOVE -1 TO JPI-PID. MOVE SS$_NORMAL TO SYS-STATUS. 312-ALTERNATE-ENTRY. IF PASSING-STRING IS NOT EQUAL TO SPACES THEN MOVE SPACES TO JPI-USERNAME PERFORM 313-FIND-PID THRU 313-EXIT UNTIL JPI-USERNAME IS EQUAL TO PASSING-STRING OR SYS-STATUS IS EQUAL TO SS$_NOMOREPROC IF JPI-USERNAME IS EQUAL TO PASSING-STRING THEN ADD 1 TO JPI-MODE MOVE JPI-MODE-NAME (JPI-MODE) TO JPI-MODE-TRANS IF JPI-IMAG-LEN IS GREATER THAN 0 THEN CALL "SYS$FILESCAN" USING BY DESCRIPTOR JPI-IMAGNAME BY REFERENCE FILESCAN-ITEMLIST OMITTED GIVING SYS-STATUS SUBTRACT IMAG-LOCATION FROM IMAG-START GIVING IMAG-START ADD 1 TO IMAG-START MOVE JPI-IMAGNAME (IMAG-START:IMAG-LEN) TO JPI-IMAGNAME-SHRUNK ELSE MOVE "" TO JPI-IMAGNAME-SHRUNK END-IF MOVE JPI-INFO TO PASSING-STRING MOVE 6 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE "Is this the correct user? [No]" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 5 TO ENTRY-POINT MOVE 1 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE PASSING-STRING TO HOLD-ANSWER MOVE SPACES TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 6 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING IF AFFIRM THEN CALL "SYS$DELPRC" USING BY REFERENCE JPI-REAL-PID OMITTED GIVING SYS-STATUS PERFORM 8000-GET-ACK THRU 8000-EXIT ELSE MOVE JPI-USERNAME TO PASSING-STRING GO TO 312-ALTERNATE-ENTRY ELSE MOVE "User not found! -- Press return" TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 5 TO ENTRY-POINT MOVE 1 TO CHOICE CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING MOVE SPACES TO PASSING-STRING MOVE 4 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 312-EXIT. EXIT. 313-FIND-PID. CALL "SYS$GETJPIW" USING OMITTED BY REFERENCE JPI-PID OMITTED BY REFERENCE GETJPIW-ITEMLIST OMITTED OMITTED OMITTED GIVING SYS-STATUS. 313-EXIT. EXIT. 400-SHOWSTATUS. MOVE 1 TO ENTRY-POINT. MOVE 4 TO CHOICE. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. IF CHOICE IS EQUAL TO 10 THEN MOVE 98 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING ELSE PERFORM 410-STATUS-PROCESS THRU 410-EXIT. 400-EXIT. EXIT. 410-STATUS-PROCESS. EVALUATE CHOICE WHEN 1 PERFORM 411-ALL-USERS THRU 411-EXIT WHEN 2 PERFORM 412-BETA-PORTS THRU 412-EXIT WHEN 3 PERFORM 413-BATCH-QUES THRU 413-EXIT WHEN 4 PERFORM 414-GAMMA-PORTS THRU 414-EXIT WHEN 5 PERFORM 415-ALPHA-PORTS THRU 415-EXIT WHEN 6 PERFORM 416-DELTA-PORTS THRU 416-EXIT END-EVALUATE. 410-EXIT. EXIT. 411-ALL-USERS. MOVE 0 TO SEARCH-NODE. PERFORM 420-DO-WHO THRU 420-EXIT. 411-EXIT. EXIT. 412-BETA-PORTS. MOVE 2 TO SEARCH-NODE. PERFORM 420-DO-WHO THRU 420-EXIT. 412-EXIT. EXIT. 413-BATCH-QUES. ******** Request search of all jobs present in output queues; also force ******** wildcard mode to maintain the internal search context block after ******** the first call when a non-wild queue name is entered--this preserves ******** queue context for the subsequent display job operation MOVE 98 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 7 TO ENTRY-POINT. MOVE TITLE-LINE-1 TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 7 TO ENTRY-POINT. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. PERFORM 4131-QUEUE-SEARCH THRU 4131-EXIT. 413-EXIT. EXIT. 4131-QUEUE-SEARCH. ADD QUI$M_SEARCH_WILDCARD QUI$M_SEARCH_BATCH QUI$M_SEARCH_ALL_JOBS GIVING QUI-SEARCH-FLAGS. ******** Dissolve any internal search context block for the process CALL "SYS$GETQUIW" USING OMITTED BY VALUE QUI$_CANCEL_OPERATION OMITTED OMITTED OMITTED OMITTED OMITTED GIVING SYS-STATUS. ******** Locate next output queue; loop until an error status is returned CALL "SYS$GETQUIW" USING OMITTED BY VALUE QUI$_DISPLAY_QUEUE OMITTED BY REFERENCE QUI-QUEUE-LIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS. PERFORM 4132-SCAN-QUEUE THRU 4132-EXIT UNTIL (SYS-STATUS IS NOT EQUAL TO SS$_NORMAL) OR (IO-STS IS EQUAL TO JBC$_NOMOREQUE). MOVE 8 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 4131-EXIT. EXIT. 4132-SCAN-QUEUE. MOVE SPACES TO QUI-QUEUE-STATUS-DECODED. PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN 11 CALL "FOR$JIBITS" USING BY REFERENCE QUI-QUEUE-STATUS BY REFERENCE QUEUE-BIT (I) BY REFERENCE ONE GIVING TEST-VALUE IF STATUS-FOUND THEN MOVE QUEUE-STAT (I) TO QUI-QUEUE-STATUS-DECODED END-IF END-PERFORM. IF QUI-QUEUE-STATUS-DECODED IS EQUAL TO SPACES THEN MOVE "Active" TO QUI-QUEUE-STATUS-DECODED END-IF IF (QUI-QUEUE-STATUS-DECODED IS NOT EQUAL TO "Idle") AND (QUI-QUEUE-STATUS-DECODED IS NOT EQUAL TO "Active") THEN MOVE QUI-QUEUE-NAME (1:QUI-QUEUE-NAME-L) TO QUI-QUEUE-NAME-AGAIN MOVE 7 TO ENTRY-POINT MOVE QUI-QUEUE-DISPLAY-RECORD TO PASSING-STRING CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. ******** Get information on next job in queue; loop until error return CALL "SYS$GETQUIW" USING OMITTED BY VALUE QUI$_DISPLAY_JOB OMITTED BY REFERENCE QUI-JOB-LIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS. PERFORM 4133-GET-JOB-INFORMATION THRU 4133-EXIT UNTIL (IO-STS IS EQUAL TO JBC$_NOSUCHJOB) OR (IO-STS IS EQUAL TO JBC$_NOMOREJOB) OR (SYS-STATUS IS NOT EQUAL TO SS$_NORMAL). CALL "SYS$GETQUIW" USING OMITTED BY VALUE QUI$_DISPLAY_QUEUE OMITTED BY REFERENCE QUI-QUEUE-LIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS. 4132-EXIT. EXIT. 4133-GET-JOB-INFORMATION. MOVE SPACES TO QUI-JOB-STATUS-DECODED. PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN 10 CALL "FOR$JIBITS" USING BY REFERENCE QUI-JOB-STATUS BY REFERENCE JOB-BIT (I) BY REFERENCE ONE GIVING TEST-VALUE IF STATUS-FOUND THEN MOVE JOB-STAT (I) TO QUI-JOB-STATUS-DECODED END-IF END-PERFORM. IF QUI-JOB-STATUS IS EQUAL TO QUI$M_JOB_PENDING THEN MOVE "Pending" TO QUI-JOB-STATUS-DECODED. IF QUI-JOB-STATUS-DECODED IS EQUAL TO SPACES THEN MOVE "ERROR" TO QUI-JOB-STATUS-DECODED. MOVE QUI-ENTRY-NUMBER TO QUI-ENTRY-NUMBER-DISPLAY. INSPECT QUI-JOB-DISPLAY-RECORD REPLACING ALL X'00' BY SPACES. MOVE 7 TO ENTRY-POINT. MOVE QUI-JOB-DISPLAY-RECORD TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CALL "SYS$GETQUIW" USING OMITTED BY VALUE QUI$_DISPLAY_JOB OMITTED BY REFERENCE QUI-JOB-LIST BY REFERENCE IO-STATUS-BLOCK OMITTED OMITTED GIVING SYS-STATUS. 4133-EXIT. EXIT. 414-GAMMA-PORTS. MOVE 3 TO SEARCH-NODE. PERFORM 420-DO-WHO THRU 420-EXIT. 414-EXIT. EXIT. 415-ALPHA-PORTS. MOVE 1 TO SEARCH-NODE. PERFORM 420-DO-WHO THRU 420-EXIT. 415-EXIT. EXIT. 416-DELTA-PORTS. MOVE 4 TO SEARCH-NODE. PERFORM 420-DO-WHO THRU 420-EXIT. 416-EXIT. EXIT. 420-DO-WHO. MOVE 98 TO ENTRY-POINT. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. OPEN INPUT SCANUSER-FILE ALLOWING UPDATERS. CALL "SYS$GETTIM" USING BY REFERENCE CURRTIM GIVING SYS-STATUS. ********c put everyone in the table MOVE 1 TO RECNUM. MOVE 1 TO K. MOVE 1 TO SYSTEM. MOVE 1 TO LASTK. ********c loop to scan all users PERFORM UNTIL SYSTEM IS EQUAL TO 5 READ SCANUSER-FILE INVALID KEY DISPLAY "SOMETHING IS WRONG!" END-READ IF S-PID IS EQUAL TO ZERO THEN COMPUTE INTERVAL = (CURRTIM - S-LOGINT) / 600000000 IF INTERVAL IS LESS THAN 5 THEN COMPUTE NPERSYS (SYSTEM) = RECNUM - 100 * (SYSTEM - 1) - 1 MOVE K TO LASTK ELSE MOVE 0 TO NPERSYS (SYSTEM) MOVE LASTK TO K END-IF ADD 1 TO SYSTEM COMPUTE RECNUM = (SYSTEM - 1) * 100 + 1 ELSE MOVE K TO TAG (K) MOVE SCANUSER-TO-TAB TO SCANUSER-ENTRY (K) MOVE SYSTEM TO T-NODE (K) COMPUTE T-MINUTES (K) = (CURRTIM - S-LOGINT) / 600000000 ADD 1 TO RECNUM ADD 1 TO K END-IF END-PERFORM. ********c Enter here after reading all input SUBTRACT 1 FROM K. MOVE K TO TOTAL-USERS. PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN 4 MOVE NPERSYS (I) TO NPERSYS-DISP (I) END-PERFORM. MOVE WHO-TITLE-1 TO PASSING-STRING. MOVE 7 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE WHO-TITLE-2 TO PASSING-STRING. MOVE 7 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 7 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. ********c next select out records (if desired) and move to front IF SEARCH_NODE IS NOT EQUAL TO ZERO THEN MOVE 0 TO L PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN K IF T-NODE (I) IS EQUAL TO SEARCH_NODE THEN ADD 1 TO L MOVE SCANUSER-ENTRY (I) TO SCANUSER-ENTRY (L) END-IF END-PERFORM MOVE L TO K END-IF. ********c sort it by username MOVE K TO NDELTA. PERFORM UNTIL NDELTA IS LESS THAN 2 DIVIDE NDELTA BY 2 GIVING NDELTA REMAINDER MAX MOVE 1 TO NSWITCH PERFORM UNTIL NSWITCH IS EQUAL TO 0 MOVE 0 TO NSWITCH COMPUTE MAX = K - NDELTA PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN MAX IF (T-USERNAME (TAG (I)) IS GREATER THAN T-USERNAME (TAG (I + NDELTA))) OR ((T-USERNAME (TAG (I)) IS EQUAL TO T-USERNAME (TAG (I + NDELTA))) AND (T-NODE (TAG (I)) IS GREATER THAN T-NODE (TAG (I + NDELTA)))) THEN MOVE TAG (I) TO TEMP MOVE TAG (I + NDELTA) TO TAG (I) MOVE TEMP TO TAG (I + NDELTA) MOVE 1 TO NSWITCH END-IF END-PERFORM END-PERFORM END-PERFORM. ********c It's sorted! Now print it. PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN K MOVE TAG (I) TO L ********c SITE-SPECIFIC You can fudge image names here. EVALUATE T-IMAGE (L) WHEN "CSH" MOVE "" TO T-IMAGE (L) WHEN "RTPAD" MOVE "" TO T-IMAGE (L) WHEN "SA021" MOVE "" TO T-IMAGE (L) WHEN "SA022" MOVE "" TO T-IMAGE (L) END-EVALUATE MOVE T-USERNAME (L) TO W-USERNAME MOVE NODENAME (T-NODE (L)) TO W-NODENAME MOVE T-IMAGE (L) TO W-IMAGE MOVE T-PRCNAM (L) TO W-PRCNAM MOVE T-TERMINAL (L) TO W-TERMINAL MOVE T-MINUTES (L) TO W-MINUTES CALL "OTS$CVT_L_TZ" USING BY REFERENCE T-PID (L) BY DESCRIPTOR W-PID OMITTED OMITTED GIVING SYS-STATUS MOVE WHO-RECORD TO PASSING-STRING MOVE 7 TO ENTRY-POINT CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING END-PERFORM. MOVE SPACES TO PASSING-STRING. MOVE 8 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CLOSE SCANUSER-FILE. 420-EXIT. EXIT. 500-PRTQUEMGT. CALL "PRTMENU". 500-EXIT. EXIT. 600-TICS. ********** save screen before going to TICS MOVE 2 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. CALL "LIB$SPAWN" USING BY DESCRIPTOR TICS GIVING SYS-STATUS. *********** restore screen to what it was prior to going to TICS MOVE 3 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 600-EXIT. EXIT. 8000-GET-ACK. MOVE "Function completed" TO PASSING-STRING. MOVE 6 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE "Press RETURN to continue" TO PASSING-STRING. MOVE 4 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE 5 TO ENTRY-POINT. MOVE 1 TO CHOICE. MOVE SPACES TO PASSING-STRING. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 6 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. MOVE SPACES TO PASSING-STRING. MOVE 4 TO ENTRY-POINT. CALL "OPERSCREEN" USING ENTRY-POINT CHOICE PASSING-STRING. 8000-EXIT. EXIT.