TITLE 'ICATS TRACE COMMAND ROUTINE' TRA00010 *********************************************************************** TRA00020 * * TRA00030 * MODULE NAME = TRACE * TRA00040 * * TRA00050 * FUNCTION = SET OR QUERY THE ICATS TRACE FLAG IN FLAGA IN THE * TRA00060 * ICATS COMMON DATA AREA. TRACE MODE = ON MEANS * TRA00070 * WE ARE RECORDING ENTRIES IN OUR INTERNAL TRACE * TRA00080 * TABLE WHEN WE DO ETTE CALLS. COMMAND FORMAT IS * TRA00090 * TRACE <?|ON|OFF> DEFAULTS TO ? * TRA00100 * * TRA00110 * ENTRY POINTS = TRACE * TRA00120 * * TRA00130 * LINKAGE = BALR R14,R15 FROM ICATS MAINLINE. * TRA00140 * * TRA00150 * REGISTER CONTENTS UPON ENTRY = * TRA00160 * R2 = POINTS TO THE ICATS COMMON DATA AREA, AS ALWAYS. * TRA00170 * R14 = RETURN ADDRESS BACK TO ICATS MAINLINE * TRA00180 * R15 = ENTRY POINT TO THIS MODULE * TRA00190 * * TRA00200 * REGISTER USAGE = * TRA00210 * R0-R1 = USED TO PASS PARAMETERS TO SUBROUTINES. * TRA00220 * R2 = USED TO ADDRESS THE ICATS COMMON DATA AREA. * TRA00230 * R3 = USED TO HOLD THE ADDRESS OF THE EDITED LINE TO OUTPUT. * TRA00240 * R4-R10 = FREE * TRA00250 * R11 = MY BASE REGISTER * TRA00260 * R14 = MY RETURN ADDRESS WHEN I CALL SOMEBODY * TRA00270 * R15 = SUBROUTINE ADDRESS * TRA00280 * * TRA00290 * * TRA00300 * MODULE LOGIC: * TRA00310 * 1) SEE WHERE THIS COMMAND CAME FROM. REJECT THIS * TRA00320 * COMMAND IF IT CAME FROM A UTS MACHINE. * TRA00330 * 2) ELSE GO AHEAD AND PROCESS THE COMMAND. * TRA00340 * A) SEE IF WE'RE SUPPOSE TO CHANGE THE TRACE BIT. * TRA00350 * 1) TRACE ON = SET THE TRACE BIT IN FLAGA ON. * TRA00360 * 2) TRACE OFF = SET THE TRACE BIT IN FLAGA OFF. * TRA00370 * 3) TRACE ? = DON'T CHANGE THE TRACE BIT. * TRA00380 * 4) TRACE BLANK = DON'T CHANGE THE TRACE BIT. * TRA00390 * 5) ANYTHING ELSE IS INVALID. GIVE HIM A NASTY MSG. * TRA00400 * B) IF IT WAS A VALID TRACE COMMAND, TELL HIM THE * TRA00410 * CURRENT STATUS OF THE TRACE BIT, EITHER ON OR OFF. * TRA00420 * B) IF IT WAS TRACE ?, TELL HIM WHERE THE TRACE TABLE * TRA00430 * IS. FIRST ENTRY, CURRENT ENTRY, AND LAST ENTRY. * TRA00440 * * TRA00450 * NORMAL EXIT = * TRA00460 * R15 = 0 * TRA00470 * * TRA00480 * EXTERNAL REFERENCES = NONE * TRA00490 * * TRA00500 * MACROS = ICDATA = ICATS COMMON DATA AREA * TRA00510 * ETTE = ENTER TRACE TABLE ENTRY SUBROUTINE * TRA00520 * * TRA00530 * CHANGE ACTIVITY * TRA00540 * DATE NAME REASON FOR CHANGE * TRA00550 * 04/19/83 RICK JASPER BROKEN AWAY FROM ICATS MAINLINE INTO * TRA00560 * SEPARATE SUBROUTINE * TRA00570 * * TRA00580 *********************************************************************** TRA00590 * TRA00600 PRINT GEN,NODATA TRA00610 TRACE CSECT TRA00620 USING ICDATA,R2 ADDRESS ICATS COMMON DATA AREA TRA00630 USING *,R15 USE R15 FOR NEXT INSTRUCTION ONLY TRA00640 STM R0,R14,TRACEREG SAVE ALL THE REGISTERS TRA00650 DROP R15 TRA00660 USING TRACE,R11 SWITCH BASE REGISTER TO R11 TRA00670 LR R11,R15 TRA00680 TM FLAGB,UTSCMD DID THIS COMMAND COME FROM A UTS ?? TRA00690 BNO TRACONTA DON'T REJECT IT IF NOT. TRA00700 L R15,AREJECT GO TO REJECT-THIS-COMMAND ROUTINE TRA00710 BALR R14,R15 TRA00720 B TRACBYE TRA00730 TRACONTA CLC PARM2,=CL8'ON' DID HE SAY TRACE ON ?? TRA00740 BE TRACONTC YEP, GO TURN IT ON. TRA00750 CLC PARM2,=CL8'OFF' WELL, IS IT OFF THEN ?? TRA00760 BE TRACONTE THEN GO SHUT IT OFF. TRA00770 CLC PARM2,=CL8' ' DID HE SAY TRACE ? BY DEFAULT ?? TRA00780 BE TRACONTD YEP, GO TELL HIM WHAT IT IS. TRA00790 CLC PARM2,=CL8'?' LAST CHANCE. IS IT A QUERY ?? TRA00800 BE TRACONTD GOOD. GO TELL HIM WHAT IT IS. TRA00810 * INVALID SECOND PARAMETER. GIVE HIM A NASTY MESSAGE TRA00820 LINEDIT TEXT='SAY WHAT ?? WHAT DOES TRACE ........ MEAN ??',-TRA00830 SUB=(CHARA,PARM2),RENT=NO,DOT=NO,DISP=NONE,BUFFA=MYBUFR TRA00840 LA R1,MYBUFR TRA00850 B TRACONTF TRA00860 TRACONTC DS 0H TRA00870 OI FLAGC,TRACEMOD TURN ON TRACE MODE TRA00880 LA R1,ONMSG GET TRACE MODE = ON MESSAGE TRA00890 B TRACONTF TRA00900 TRACONTD DS 0H TRA00910 TM FLAGC,TRACEMOD IS TRACE MODE ON ?? TRA00920 BO TRACONTC THEN TELL HIM SO. TRA00930 * ELSE IT'S OFF. TELL HIM SO. TRA00940 TRACONTE DS 0H TRA00950 NI FLAGC,ALL-TRACEMOD TURN OFF TRACE MODE TRA00960 LA R1,OFFMSG GET TRACE MODE = OFF MESSAGE TRA00970 * GIVE HIM THE MESSAGE WHOSE ADDRESS IS IN R1. TRA00980 TRACONTF DS 0H TRA00990 L R15,AMESSAGE TRA01000 BALR R14,R15 TRA01010 * LAST THING - IF TRACE ?, GIVE TRACE TABLE ADDRESS SO HE CAN TRA01020 * FIND IT IN MAIN STORAGE. TRA01030 CLC PARM2,=CL8'?' TRA01040 BE TRACONTG TRA01050 CLC PARM2,=CL8' ' TRA01060 BNE TRACONTH TRA01070 TRACONTG DS 0H TRA01080 TM FLAGB,CONSCMD ONLY GIVE ADDRESSES IF A CONSOLE CMD TRA01090 BNO TRACONTH TRA01100 LINEDIT TEXT='TRACE TABLE ADDRESS - BEGIN/NEXT/END = ....../..-TRA01110 ..../......',SUB=(HEXA,FIRSTTTE,HEXA,NEXTTTE,HEXA,LASTTT-TRA01120 E),RENT=NO,DOT=NO,DISP=NONE,BUFFA=MYBUFR TRA01130 LA R1,MYBUFR TRA01140 L R15,AMESSAGE TRA01150 BALR R14,R15 TRA01160 TRACONTH DS 0H TRA01170 TRACBYE DS 0H TRA01180 LM R0,R14,TRACEREG TRA01190 SR R15,R15 RETURN CODE = 0 TRA01200 BR R14 TRA01210 TRACEREG DS 15F TRA01220 * TRA01230 ONMSG DC AL1(ONMSGE) TRA01240 DC C'ICATS TRACE MODE IS NOW ON' TRA01250 ONMSGE EQU *-ONMSG-1 TRA01260 * TRA01270 OFFMSG DC AL1(OFFMSGE) TRA01280 DC C'ICATS TRACE MODE IS NOW OFF' TRA01290 OFFMSGE EQU *-OFFMSG-1 TRA01300 MYBUFR DS CL80 TRA01310 LTORG TRA01320 ICDATA TRA01330 END TRA01340