.TITLE EXIT - PROGRAM EXIT FOR TECOIO .IDENT "X0210" ; ; COPYRIGHT (C) 1976 BY DIGITAL EQUIPMENT CORPORATION, ; MAYNARD, MASSACHUSETTS ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE IN- ; CLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE ; MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH ; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE ; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN ; IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITH- ; OUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ; DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR ; THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS ; NOT SUPPLIED BY DIGITAL. ; ; ANDREW C. GOLDSTEIN 3-JAN-78 11:58 .MCALL EXIT$S,DIR$ EX$ERR = 2 ; EXIT WITH ERROR STATUS EX$SUC = 1 ; EXIT WITH SUCCESS STATUS .SBTTL EXIT ROUTINES ;+ ; ; *** - EXERR EXIT WITH ERROR STATUS ; ; THIS ENTRY IS CALLED BY TECO WHEN IT IS EXITING DUE TO AN ERROR AND ; THE EXIT-ON-ERROR BIT IN ETYPE IS SET. ; ; *** - GEXIT EXIT AND GO ; ; *** - TEXIT EXIT ; ; THESE TWO ENTRIES ARE CALLED BY TECO TO EXIT. "TEXIT" SIMPLY EXITS ; TO THE MONITOR; "GEXIT" IS AN EXIT AND GO. SINCE ITS FUNCTION IS ; NOT CLEARLY DEFINED IN RSX-11, IT ALSO JUST EXITS TO THE MONITOR. ; ; NO INPUTS, NO OUTPUTS, NO RETURN. ; ;- .PSECT CODE,RO .ENABL LSB EXERR:: MOV #EX$ERR,-(SP) ; SET FOR EXIT WITH ERROR STATUS BR 10$ GEXIT:: TEXIT:: MOV #EX$SUC,-(SP) ; SET FOR EXIT WITH SUCCESS STATUS 10$: TST OUTFDB+F.BDB ; SEE IF THERE IS AN OUTPUT FILE OPEN BEQ 20$ ; BRANCH IF NOT CALL KILFIL ; IF SO, DELETE IT 20$: CALL CLOSIF ; CLOSE THE INPUT FILE IF NECESSARY CALL INDCLS ; CLOSE THE INDIRECT FILE IF OPEN CALL TDRDEL ; DELETE TEMP DIRECTORY, IF ANY CALL TTDET ; DETACH THE TERMINAL MOV #<2*256.>+29.,-(SP) ; EXIT WITH STATUS DIC DIR$ ; TRY EXIT WITH STATUS EXIT$S ; ELSE DO NORMAL EXIT .DSABL LSB .SBTTL MAINTAIN VT52 DISPLAY ;+ ; ; *** - WATCH MAINTAIN DISPLAY ; ; THIS ROUTINE APPEARS HERE AS A NULL ROUTINE TO MAINTAIN THE TEXT DISPLAY. ; IT OCCUPIES THE OVERLAYABLE PSECT "SCREEN" AND MAY BE OVERLAID WITH A REAL ; ROUTINE TO MAINTAIN THE DISPLAY (SUCH AS THE VT52 SCREEN MODULE). ; ; INPUTS: NONE ; ; OUTPUTS: NONE ; ; ALL REGISTARE PRESERVED ; ;- .CSECT SCREEN SCREEN::.WORD 0 ; AMOUNT OF IMPURE AREA NEEDED BY DISPLAY WATCH:: CLC RETURN ; DUMMY ROUTINE .SBTTL FLAG READ/WRITE INTERCEPT ;+ ; ; *** - FLAGRW INTERCEPT FLAG MODIFICATIONS ; ; THIS ROUTINE IS CALLED BY ALL TECO COMMANDS READING OR WRITING THE VARIOUS ; FLAGS. THE ONLY ONE OF CONCERN IS THE SETTING AND CLEARING OF THE ; DETACH FLAG. ; ; INPUTS: ; ; R0 = NEW FLAG VALUE (IF R3 = -1) ; R2 = OFFSET TO FLAG CELL FROM R5 ; R3 = -1 IF FLAG IS BEING WRITTEN ; >< -1 IF FLAG IS BEING READ ; ; OUTPUTS: ; ; NONE ; ; ALL REGISTERS PRESERVED ; ;- .PSECT CODE,RO FLAGRW:: SAVE CMP R2,#ETYPE ; SEE IF WE ARE MODIFYING THE ET FLAG BNE 20$ ; BRANCH IF NOT INC R3 ; SEE IF WE ARE WRITING IT BNE 20$ ; BRANCH IF NOT MOV ETYPE(R5),R1 ; GET OLD VALUE MOV R0,R2 ; COPY NEW VALUE BIC R1,R2 ; COMPUTE XOR OF VALUES BIC R0,R1 ; IN R1 BIS R2,R1 ; BIT #ET.DET,R1 ; SEE IF THE DETACH FLAG IS CHANGING BEQ 20$ ; BRANCH IF NOT BIT #ET.DET,R0 ; IF IT IS BEING SET BEQ 10$ CALL TTDET ; DETACH THE TERMINAL AS REQUESTED BR 20$ 10$: CALL TTATT ; OR ATTACH IF IT IS BEING CLEARED 20$: RETURN .SBTTL NO CONTROL/O ;+ ; ; *** - NOCTLO NO CONTROL/O ; ; THIS ROUTINE DISABLES THE AFFECT OF A PREVIOUSLY TYPED CONTROL O ; ; INPUTS: NONE ; ; OUTPUTS: NONE ; ; ALL REGISTERS ARE PRESERVED ; ;- NOCTLO:: BIT #ET.DET,ETYPE(R5) ; IF RUNNING DETACHED BNE 10$ ; CTRL O IS UP TO THE TERMINAL DRIVER CALL TTDET ; DETACH THE TERMINAL CALL TTATT ; AND REATTACH IT 10$: RETURN .END