.TITLE $$$002 - EXIT .IDENT /791112/ .MCALL .SETTOP,.EXIT,.CHAIN,.GVAL,.RCTRLO .GLOBL PR.TRM,V.AREA ; EXIT - RETURN TO MONITOR ; PARMS ; R5 -> GLOBALS ; REGISTER USAGE ; R0,R1,R2,R3,R4 - NOT USED ; .PSECT $$$002:: TST (SP)+ ;DON'T NEED RETURN ADDRESS TST PR.TRM BEQ EXIT JSR PC,@PR.TRM ; EXIT: TST V.XFLG ;CHECK WHAT ACTION TO TAKE BEQ FIN ;NONE ; CLR R1 ;COUNT NUMBER OF CHARS MOV #512,R0 1$: INC R1 ;INCLUDE NULL IN COUNT TSTB (R0)+ BNE 1$ MOV R1,@#510 ;STORE COUNT ; TST V.XFLG BMI CHN ;CHAIN REQUEST ; SUB R1,R0 ;KMON COMMAND REQUEST, POINT TO STRING 2$: CMPB (R0)+,V.XFLG ;REPLACE DELIMITER WITH NULL BNE 3$ CLRB -1(R0) 3$: SOB R1,2$ ; MOV #4000,R1 ;ASSUME NOT RUNNING FROM COMMAND FILE .GVAL #V.AREA,#366 ;RETRIEVE COMMAND FILE STATUS TST R0 ;SEE IF RUNNING IN COMMAND FILE BPL 4$ ;NO, DON'T BOTHER SAVING STATUS MOV #40,R1 ;SAVE STATE OF COMMAND FILE ; 4$: BIS R1,@#44 ;SET JSW .RCTRLO ;TELL MONITOR ABOUT JSW STATE ; FIN: .SETTOP #0 CLR R0 ;FORCE A HARD EXIT .EXIT ; CHN: .CHAIN ; .PSECT $VARBL V.XFLG::.WORD 0 .END