.MCALL .MODULE .MODULE VTCAL2,VERSION=02,COMMENT= ; Copyright (c) 1998 by Mentec, Inc., Nashua, NH. ; All rights reserved ; ; This software is furnished under a license for use only on a ; single computer system and may be copied only with the ; inclusion 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 Mentec, Inc. ; ; The information in this document is subject to change without ; notice and should not be construed as a commitment by Digital ; Equipment Corporation, or Mentec, Inc. ; ; Digital and Mentec assume no responsibility for the use or ; reliability of its software on equipment which is not supplied ; by Digital or Mentec, and listed in the Software Product ; Description. .ENABL GBL .IF NDF NOTAG .SBTTL BLANK A FILE ROUTINE ; THIS ROUTINE BYPASSES THE CALL TO A USER DISPLAY FILE BUT DOES NOT REMOVE ; THE FILE ADDRESS. THE FILE CAN LATER BE UNBLANKED BY A CALL TO RESTR. DJMP=160000 .PSECT $GT2 $VBLNK::MOV R1,-(SP) .IF DF NOUSER MOV #$CUSER,R1 ;POINT TO FILE .IFF JSR PC,$VSRCH ;SEARCH FOR CALL TO FILE TST R1 ;R1 WILL BE ZERO IF IT BEQ REXIT ;WAS NOT FOUND. .ENDC JSR PC,$VSTP ;STOP DISPLAY MOV #DJMP,(R1) ;BYPASS THE FILE MOV (SP)+,R1 JMP $VSTIN ;RESTART DSIPLAY .ENDC .IF NDF NOTAG .SBTTL RESTORE A FILE ROUTINE ; $VRSTR -- SERVICES THE .RESTR USER REQUEST. ; THIS ROUTINE RESTORES THE CALL TO A USER DISPLAY FILE THAT ; WAS PREVIOUSLY BLANKED. DJSR=173400 $VRSTR::MOV R1,-(SP) .IF DF NOUSER MOV #$CUSER,R1 ;POINT TO FILE .IFF JSR PC,$VSRCH ;LOOK FOR FILE. TST R1 ;R1 WILL BE ZERO IF BEQ REXIT ;FILE NOT FOUND. .ENDC MOV #DJSR,(R1) ;INSERT A CALL TO FILE REXIT: MOV (SP)+,R1 RTS PC .ENDC .IF NDF NOUSER .SBTTL SEARCH FOR FILE SUBROUTINE ; $VSRCH -- UTILITY SUBROUTINE FOR INTERNAL USE. ; IT SEARCHES THE ROOT FILE FOR THE CALL TO A USER ; FILE WHOSE ADDRESS IS PASSED IN R0. THE ADDRESS OF THE CALL ; IS RETURNED IN R1 IF FOUND, OTHERWISE R1 IS ZEROED. $VSRCH::MOV #$CUSER,R1 ;GET START OF USER CALL AREA .IF NDF NOTAG 1$: CMP R0,4(R1) ;COMPARE ADDRESSES. .IFF 1$: CMP R0,2(R1) ;COMPARE ADDRESSES .ENDC BEQ 2$ ;ARE THEY THE SAME? .IF NDF NOTAG ADD #6,R1 ;GO TO NEXT CALL .IFF CMPB (R1)+,(R1)+ .ENDC CMP #$NULL,R1 ;PAST THE END? BHI 1$ ;NO, CONTINUE SEARCH. CLR R1 ;YES, CLEAR R1 2$: RTS PC .ENDC .END