TITLE 'ICATS RESTART COMMAND ROUTINE' RES00010
*********************************************************************** RES00020
* * RES00030
* MODULE NAME = RESTART * RES00040
* * RES00050
* FUNCTION = PROCESS THE RESTART COMMAND. CALLS ATTACH TO TRY * RES00060
* TO VARY ON AND ATTACH THOSE UTS MACHINES THAT ARE * RES00070
* NOW OFFLINE. * RES00080
* * RES00090
* ENTRY POINTS = RESTART * RES00100
* * RES00110
* LINKAGE = BALR R14,R15 FROM ICATS MAINLINE. * RES00120
* * RES00130
* REGISTER CONTENTS UPON ENTRY = * RES00140
* R2 = POINTS TO THE ICATS COMMON DATA AREA, AS ALWAYS. * RES00150
* R14 = RETURN ADDRESS BACK TO ICATS MAINLINE * RES00160
* R15 = ENTRY POINT TO THIS MODULE * RES00170
* * RES00180
* REGISTER USAGE = * RES00190
* R0-R1 = USED TO PASS PARAMETERS TO SUBROUTINES. * RES00200
* R2 = USED TO ADDRESS THE ICATS COMMON DATA AREA. * RES00210
* R3-R10 = FREE * RES00220
* R11 = MY BASE REGISTER * RES00230
* R14 = MY RETURN ADDRESS WHEN I CALL SOMEBODY * RES00240
* R15 = SUBROUTINE ADDRESS * RES00250
* * RES00260
* MODULE LOGIC: * RES00270
* 1) CALL THE ATTACH ROUTINE. * RES00280
* 2) IF THIS IS A UTS COMMAND, THEN GIVE A REPLY CONTROL * RES00290
* BLOCK TO THE UTS. ELSE THE CONSOLE OR THE SMSG'ER * RES00300
* HAS ALREADY GOTTEN A REPLY FROM THE ATTACH ROUTINE. * RES00310
* 3) RETURN TO ICATS MAINLINE. * RES00320
* * RES00330
* NORMAL EXIT = * RES00340
* R15 = 0 * RES00350
* * RES00360
* EXTERNAL REFERENCES = ATTACH * RES00370
* * RES00380
* MACROS = ICDATA = ICATS COMMON DATA AREA * RES00390
* ETTE = ENTER TRACE TABLE ENTRY SUBROUTINE * RES00400
* * RES00410
* CHANGE ACTIVITY * RES00420
* DATE NAME REASON FOR CHANGE * RES00430
* 04/25/83 RICK JASPER INITIAL PROGRAM CREATION * RES00440
* 09/16/83 RICK JASPER CHANGED TO CALL ATTACH RIGHT NOW INSTEAD * RES00450
* OF SETTING A BIT TO HAVE THE DISPATCHER * RES00460
* CALL HIM (THAT WAS A STUPID WAY OF DOING * RES00470
* IT). * RES00480
* * RES00490
*********************************************************************** RES00500
PRINT GEN,NODATA RES00510
RESTART CSECT RES00520
USING ICDATA,R2 ADDRESS ICATS COMMON DATA AREA RES00530
USING *,R15 USE R15 FOR NEXT INSTRUCTION ONLY RES00540
STM R0,R14,SAVEREGS SAVE ALL THE REGISTERS RES00550
DROP R15 RES00560
USING RESTART,R11 RES00570
LR R11,R15 SWITCH BASE REGISTER TO R11 RES00580
* RES00590
L R15,=V(ATTACH) RES00600
BALR R14,R15 GO GET OFFLINE UTS'S ONLINE RES00610
TM FLAGB,UTSCMD IF NOT FROM A UTS, THEN WE'RE DONE RES00620
BNO CONTB RES00630
*********************************************************************** RES00640
* WHETHER THINGS WORKED OK OR NOT, ATTACH ALWAYS RETURNS A RETURN * RES00650
* CODE OF 0. SINCE THERE'S NO ERROR INDICATION IF THERE WAS AN * RES00660
* ERROR, THEN GIVE THE UTS MACHINE A ZERO RETURN CODE IN HIS REPLY * RES00670
* CONTROL BLOCK. ALSO, THERE'S NO DATA FOLLOWING THIS REPLY CB. * RES00680
*********************************************************************** RES00690
MVC PARM15,=X'0000000000000000' RETURN CODE = LENGTH = 0 RES00700
LA R0,128 REPLY CONTROL BLOCK = 128 BYTES BIG RES00710
LA R1,PARM0 STARTING AT PARM0 RES00720
L R15,AWRITUTS GO GIVE THE REPLY TO THE UTS MACHINE RES00730
BALR R14,R15 IGNORE ANY ERRORS RES00740
CONTB SR R15,R15 RETURN CODE = 0 RES00750
LM R0,R14,SAVEREGS RESTORE ALL THE REGISTERS RES00760
BR R14 BYE BYE RES00770
SAVEREGS DS 15F RES00780
LTORG RES00790
ICDATA RES00800
END RES00810