; ITESTF - TEST VAL ASSIGNED GLOBAL EVENT FLAG ; LAST EDIT: 16-JAN-80 ; ;- .LIST TTM .NLIST BEX .TITLE ITESTF ; ; ;+ ; ; THIS FUNCTION TESTS AND MODIFIES THE GLOBAL EVENT FLAG ; WHICH IS ASSIGNED UNIQUELY BY VAL TO EACH TERMINAL. THE ; FUNCTION RESULT IN THE STATE OF THE FLAG ON RETURN ; ; I=ITESTF([IF][,IGEFN]) ; ; THE FIRST ARGUMENT IF PRESENT IS WRITTEN AS THE STATE OF THE FLAG ; 0=CLEAR <>0 =SET ; THE SECOND ARGUMENT IF PRESENT RECEIVES THE GEF NUMBER ; THE FUNCTION RESULT REFLECTS THE STATE OF THE FLAG ; ON EXIT FROM THE ROUTINE. ; ; ;- ; ; THIS MODULE MUST BE ASSEMBLED PRECEDED BY 'VALMFD' ; .PSECT VALCTL ; .MCALL CLEF$S,SETF$S ; ; ITESTF::CALL VMAP ;MAP VAL COMMON MOV VC.GEF(R1),R2 ;GET EVENT-FLAG CALL VRSCTX ;AND RESTORE MAPPING CONTEXT TSTB (R5) ;ANY ARG ? BEQ 10$ CMP P1(R5),#-1 BEQ 10$ TST @P1(R5) ;SET OR CLEAR BNE 1$ CLEF$S R2 ;CLEAR BR 10$ 1$: SETF$S R2 ; 10$: CLR R0 ;INIT RESULT CLEF$S R2 CMP $DSW,#IS.CLR ;WAS FLAG CLEAR ALREADY BEQ 20$ ;IF SO RETURN SETF$S R2 ;ELSE SET IT AGAIN INC R0 20$: CMPB (R5),#2 ;RETURN GEF # ? BLT 30$ MOV R2,@P2(R5) 30$: RETURN ; ; .END