TITLE 'ICATS STATUS COMMAND ROUTINE' STA00010
*********************************************************************** STA00020
* * STA00030
* MODULE NAME = STATUS * STA00040
* * STA00050
* FUNCTION = RETURNS TO THE REQUESTER, THE STATUS OF THE ICATS * STA00060
* VIRTUAL MACHINE. SHOWS ACTIVE TERMINALS, AND * STA00070
* THE LAST TIME AN INTERRUPT CAME FROM ANY UTS. * STA00080
* THIS IS HANDY SO THAT YOU CAN SEE IF ANYTHING IS * STA00090
* GOING ON IN THE ICATS VIRTUAL MACHINE BEFORE YOU * STA00100
* SHUT IT DOWN. * STA00110
* * STA00120
* ENTRY POINTS = STATUS * STA00130
* * STA00140
* LINKAGE = BALR R14,R15 FROM ICATS MAINLINE. * STA00150
* * STA00160
* REGISTER CONTENTS UPON ENTRY = * STA00170
* R2 = POINTS TO THE ICATS COMMON DATA AREA, AS ALWAYS. * STA00180
* R14 = RETURN ADDRESS BACK TO ICATS MAINLINE * STA00190
* R15 = ENTRY POINT TO THIS MODULE * STA00200
* * STA00210
* REGISTER USAGE = * STA00220
* R0-R1 = USED TO PASS PARAMETERS TO SUBROUTINES. * STA00230
* R2 = USED TO ADDRESS THE ICATS COMMON DATA AREA. * STA00240
* R3 = USED TO HOLD THE ADDRESS OF THE EDITED LINE TO OUTPUT. * STA00250
* R4-R10 = FREE * STA00260
* R11 = MY BASE REGISTER * STA00270
* R14 = MY RETURN ADDRESS WHEN I CALL SOMEBODY * STA00280
* R15 = SUBROUTINE ADDRESS * STA00290
* * STA00300
* * STA00310
* MODULE LOGIC: * STA00320
* I) SEE WHERE THIS COMMAND CAME FROM. REJECT THIS * STA00330
* COMMAND IF IT CAME FROM A UTS. * STA00340
* II) ELSE GO AHEAD AND PROCESS THE COMMAND. * STA00350
* A) SHOW ANY ACTIVE TERMINALS. * STA00360
* B) TELL HIM THE LAST TIME SOMETHING HAPPENED. * STA00370
* * STA00380
* * STA00390
* NORMAL EXIT = * STA00400
* R15 = 0 * STA00410
* * STA00420
* EXTERNAL REFERENCES = NONE * STA00430
* * STA00440
* MACROS = ICDATA = ICATS COMMON DATA AREA * STA00450
* ETTE = ENTER TRACE TABLE ENTRY SUBROUTINE * STA00460
* * STA00470
* CHANGE ACTIVITY * STA00480
* DATE NAME REASON FOR CHANGE * STA00490
* 08/22/83 RICK JASPER INITIAL PROGRAM CREATION * STA00500
* * STA00510
*********************************************************************** STA00520
* STA00530
PRINT GEN,NODATA STA00540
STATUS CSECT STA00550
USING ICDATA,R2 USE R2 TO ADDRESS ICATS COMMON DATA AREA STA00560
USING CBTERM,R3 USE R3 TO ADDRESS TERMINAL CONTROL BLOCK STA00570
USING CBUTS,R4 USE R4 TO ADDRESS UTS CONTROL BLOCK STA00580
USING *,R15 USE R15 FOR NEXT INSTRUCTION ONLY STA00590
STM R0,R14,STATREGS SAVE ALL THE REGISTERS STA00600
DROP R15 STA00610
USING STATUS,R11 SWITCH BASE REGISTER TO R11 STA00620
LR R11,R15 STA00630
TM FLAGB,UTSCMD DID THIS COMMAND COME FROM A UTS ?? STA00640
BNO STATCONA REJECT IT IF SO. STA00650
L R15,AREJECT GO TO REJECT-THIS-COMMAND ROUTINE STA00660
BALR R14,R15 STA00670
B STATBYE STA00680
STATCONA EQU * STA00690
L R3,TERM1ST STA00700
LOOPA LTR R3,R3 ARE PAST THE END OF THE CHAIN ?? STA00710
BZ STATCONE IF SO, WE'RE DONE CHECKING. STA00720
TM CBTERMFA,PLUGGED IS THIS GUY PLUGGED IN ?? STA00730
BNO STATCONB NOPE, BRANCH STA00740
MVC PLUGDSTA,=C'IS PLUGGED IN' STA00750
B STATCONC GO T STA00760
STATCONB EQU * STA00770
TM CBTERMFA,MENUUP STA00780
BNO STATCOND STA00790
MVC PLUGDSTA,=C'HAS A MENU UP' STA00800
STATCONC EQU * STA00810
MVC PLUGD@,CBTERMEA STA00820
MVC PLUGDDAT,CBTERMDA STA00830
MVC PLUGDTIM,CBTERMTI STA00840
LA R1,PLUGDMSG SAY "XXX IS PLUGGED IN" OR "HAS A MENU UP" STA00850
L R15,AMESSAGE "LAST INTERRUPT WAS ON DATE AT TIME" STA00860
BALR R14,R15 STA00870
STATCOND EQU * STA00880
L R3,CBTERMFP STA00890
B LOOPA STA00900
STATCONE EQU * STA00910
*********************************************************************** STA00920
* NOW, CHECK EACH UTS AND REPORT THE DATE AND TIME OF THE LAST * STA00930
* INTERRUPT THAT CAME FROM THAT UTS. * STA00940
*********************************************************************** STA00950
* STA00960
L R4,CBFIRST STA00970
LOOPB DS 0H STA00980
LTR R4,R4 STA00990
BZ STATBYE STA01000
TM CBUTSFGA,ONLINE STA01010
BO STATCONF STA01020
MVC UTS2ID,CBUTSUID STA01030
LA R1,UTSMSG2 SAY "UTSX IS OFFLINE" STA01040
L R15,AMESSAGE STA01050
BALR R14,R15 STA01060
B STATCONG STA01070
STATCONF EQU * THIS UTS IS ONLINE STA01080
MVC UTS1ID,CBUTSUID STA01090
MVC UTSDATE,CBUTSDAT STA01100
MVC UTSTIME,CBUTSTIM STA01110
LA R1,UTSMSG1 SAY "UTSX IS OFFLINE" STA01120
L R15,AMESSAGE STA01130
BALR R14,R15 STA01140
STATCONG EQU * STA01150
L R4,CBUTSFP STA01160
B LOOPB STA01170
* STA01180
STATBYE DS 0H STA01190
LM R0,R14,STATREGS STA01200
SR R15,R15 STA01210
BR R14 STA01220
* STA01230
STATREGS DS 15F STA01240
* STA01250
PLUGDMSG DC AL1(PLUGDE) STA01260
PLUGD@ DS CL3 STA01270
DC C' ' STA01280
PLUGDSTA DS CL13 STA01290
DC C' - LAST INTERRUPT WAS ON ' STA01300
PLUGDDAT DS CL8 STA01310
DC C' AT ' STA01320
PLUGDTIM DS CL8 STA01330
PLUGDE EQU *-PLUGDMSG-1 STA01340
* STA01350
UTSMSG1 DC AL1(UTSMSG1E) STA01360
DC C'THE LAST INTERRUPT FROM ' STA01370
UTS1ID DS CL8 STA01380
DC C' WAS ON ' STA01390
UTSDATE DS CL8 STA01400
DC C' AT ' STA01410
UTSTIME DS CL8 STA01420
UTSMSG1E EQU *-UTSMSG1-1 STA01430
* STA01440
UTSMSG2 DC AL1(UTSMSG2E) STA01450
UTS2ID DS CL8 STA01460
DC C' IS OFFLINE' STA01470
UTSMSG2E EQU *-UTSMSG2-1 STA01480
LTORG STA01490
ICDATA STA01500
END STA01510