home *** CD-ROM | disk | FTP | other *** search
- ;/*------------------------------------------------------------*/
- ;/* filename - tvcursor.asm */
- ;/* */
- ;/* function(s) */
- ;/* TView resetCursor member function */
- ;/*------------------------------------------------------------*/
-
- ;/*------------------------------------------------------------*/
- ;/* */
- ;/* Turbo Vision - Version 1.0 */
- ;/* */
- ;/* */
- ;/* Copyright (c) 1991 by Borland International */
- ;/* All Rights Reserved. */
- ;/* */
- ;/*------------------------------------------------------------*/
-
- IDEAL
- MODEL LARGE, PROLOG
-
- INCLUDE "TVWRITE.INC"
-
- PUBLIC @TView@resetCursor$qv
-
- EXTRN @TScreen@cursorLines : WORD
-
- CODESEG
-
- PROC @TView@resetCursor$qv
- ARG thisPtr : FAR PTR
- USES SI,DI
-
- LES DI,[thisPtr]
-
- MOV AX,[ES:DI+TViewState]
- NOT AX
- TEST AX,sfVisible+sfCursorVis+sfFocused
- JNE @@4
- MOV AX,[ES:DI+TViewCursorY]
- MOV DX,[ES:DI+TViewCursorX]
- @@1:
- OR AX,AX
- JL @@4
- CMP AX,[ES:DI+TViewSizeY]
- JGE @@4
- OR DX,DX
- JL @@4
- CMP DX,[ES:DI+TViewSizeX]
- JGE @@4
- ADD AX,[ES:DI+TViewOriginY]
- ADD DX,[ES:DI+TViewOriginX]
- MOV CX,DI
- MOV BX,ES
- LES DI,[ES:DI+TViewOwner]
- MOV SI,ES
- OR SI,DI
- JE @@5
- TEST [WORD PTR ES:DI+TViewState],sfVisible
- JE @@4
- LES DI,[ES:DI+TGroupLast]
- @@2:
- LES DI,[ES:DI+TViewNext]
- CMP CX,DI
- JNE @@3
- MOV SI,ES
- CMP BX,SI
- JNE @@3
- LES DI,[ES:DI+TViewOwner]
- JMP @@1
- @@3:
- TEST [WORD PTR ES:DI+TViewState],sfVisible
- JE @@2
- MOV SI,[ES:DI+TViewOriginY]
- CMP AX,SI
- JL @@2
- ADD SI,[ES:DI+TViewSizeY]
- CMP AX,SI
- JGE @@2
- MOV SI,[ES:DI+TViewOriginX]
- CMP DX,SI
- JL @@2
- ADD SI,[ES:DI+TViewSizeX]
- CMP DX,SI
- JGE @@2
- @@4:
- MOV CX,2000H
- JMP @@6
- @@5:
- MOV DH,AL
- XOR BH,BH
- MOV AH,2
- INT 10H
- MOV CX,[WORD PTR @TScreen@cursorLines]
- MOV DI,DS
- MOV ES,DI
- LES DI,[thisPtr]
- TEST [WORD PTR ES:DI+TViewState],sfCursorIns
- JE @@6
- MOV CH,0
- OR CL,CL
- JNE @@6
- MOV CL,7
- @@6:
- MOV AH,1
- INT 10H
- RET
-
- ENDP @TView@resetCursor$qv
-
- END
-