TITLE 'ICATS REJECT-THIS-COMMAND ROUTINE' REJ00010 *********************************************************************** REJ00020 * * REJ00030 * MODULE NAME = REJECT * REJ00040 * * REJ00050 * FUNCTION = FOR SOME REASON OR ANOTHER, A COMMAND MODULE WANTS * REJ00060 * TO REJECT THIS COMMAND. WE ARE TO SEND A MESSAGE * REJ00070 * TO THE SOURCE OF THIS COMMAND INFORMING HIM THAT * REJ00080 * THIS COMMAND IS INVALID. * REJ00090 * * REJ00100 * ENTRY POINTS = REJECT * REJ00110 * * REJ00120 * LINKAGE = BALR R14,R15 FROM ANYWHERE IN ICATS PROGRAM. * REJ00130 * THE ADDRESS OF THIS ROUTINE IS KEPT IN AN ADDRESS * REJ00140 * CONSTANT IN THE ICATS COMMON DATA AREA (ICDATA). * REJ00150 * FOR EXAMPLE, * REJ00160 * L R15,AREJECT * REJ00170 * BALR R14,R15 * REJ00180 * * REJ00190 * REGISTER CONTENTS UPON ENTRY = * REJ00200 * R2 = POINTS TO THE ICATS COMMON DATA AREA AS ALWAYS. * REJ00210 * R14 = RETURN ADDRESS BACK TO CALLER. * REJ00220 * R15 = ADDRESS OF THIS SUBROUTINE (USED FOR BASE REG). * REJ00230 * * REJ00240 * REGISTER USAGE: * REJ00250 * R0 = FREE * REJ00260 * RX = XXXX * REJ00270 * R11 = MY BASE REGISTER * REJ00280 * R14 = RETURN ADDRESS FOR WHEN I CALL SUBROUTINES * REJ00290 * R15 = SUBROUTINE ADDRESS * REJ00300 * * REJ00310 * MODULE LOGIC = * REJ00320 * I) IF A SMSG OR A CONSOLE COMMAND, GIVE THE REJECTION MESSAGE.* REJ00330 * 1) MOVE IN THE BAD COMMAND INTO THE MESSAGE. * REJ00340 * 2) GO GIVE IT TO THE REQUESTOR. * REJ00350 * I) ELSE IT'S A UTS REQUEST. GIVE THE REJECTION NOTICE. * REJ00360 * 1) GIVE A RETURN CODE = X'2000'. * REJ00370 * 2) SET THE NUMBER OF DATA BYTES FOLLOWING TO ZERO. * REJ00380 * 3) GIVE THE REPLY CONTROL BLOCK TO THE UTS. * REJ00390 * * REJ00400 * NORMAL EXIT = * REJ00410 * R15 = 0 * REJ00420 * * REJ00430 * EXTERNAL REFERENCES = * REJ00440 * * REJ00450 * CONTROL BLOCKS = ICDATA (ICATS COMMON DATA AREA) * REJ00460 * * REJ00470 * NON-STANDARD MACROS (FOUND IN ICATS MACLIB) * REJ00480 * ICDATA = ICATS COMMON DATA AREA DSECT. * REJ00490 * * REJ00500 * CHANGE ACTIVITY * REJ00510 * DATE NAME REASON FOR CHANGE * REJ00520 * 04/19/83 RICK JASPER BROKEN AWAY FROM ICATS MAINLINE INTO * REJ00530 * SEPARATE SUBROUTINE * REJ00540 * * REJ00550 *********************************************************************** REJ00560 EJECT REJ00570 PRINT GEN,NODATA REJ00580 REJECT CSECT REJ00590 USING ICDATA,R2 ADDRESS ICATS COMMON DATA AREA REJ00600 USING *,R15 USE R15 FOR NEXT INSTRUCTION ONLY REJ00610 STM R0,R14,REJREG SAVE ALL THE REGISTERS REJ00620 DROP R15 REJ00630 USING REJECT,R11 SWITCH BASE REGISTER TO R11 REJ00640 LR R11,R15 REJ00650 TM FLAGB,UTSCMD UTS COMMAND ?? REJ00660 BO REJCONA GO HANDLE UTS REJECTION NOTICE REJ00670 MVC REJNAME,PARM1 PUT THE INVALID COMMAND IN THE MESSAGE REJ00680 LA R1,REJMSG GET ADDRESS OF REJECTION MESSAGE REJ00690 L R15,AMESSAGE SAY "XXX IS AN INVALID ICATS COMMAND" REJ00700 BALR R14,R15 REJ00710 B REJBYE BYE BYE REJ00720 * REJ00730 REJCONA DS 0H REJ00740 * SET RETCODE = X'2000' AND DATA LENGTH = 0 REJ00750 MVC PARM15,=X'2000000000000000' REJ00760 LA R0,128 PREPARE FOR REPLY-TO-UTS ROUTINE REJ00770 LA R1,PARM0 REJ00780 L R15,AWRITUTS GIVE THE REPLY CONTROL BLOCK TO THE UTS REJ00790 BALR R14,R15 IGNORE ANY ERRORS. REJ00800 REJBYE DS 0H REJ00810 LM R0,R14,REJREG REJ00820 SR R15,R15 RETURN CODE = 0 REJ00830 BR R14 REJ00840 REJREG DS 15F REJ00850 REJMSG DC AL1(REJMSGE) REJ00860 REJNAME DS CL8 REJ00870 DC C' IS AN INVALID ICATS COMMAND' REJ00880 REJMSGE EQU *-REJMSG-1 REJ00890 LTORG REJ00900 ICDATA REJ00910 END REJ00920