home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_144 / 9.ddi / TVSRC.ZIP / TVCURSOR.ASM < prev    next >
Encoding:
Assembly Source File  |  1992-06-10  |  3.2 KB  |  111 lines

  1. ;/*------------------------------------------------------------*/
  2. ;/* filename -       tvcursor.asm                              */
  3. ;/*                                                            */
  4. ;/* function(s)                                                */
  5. ;/*                  TView resetCursor member function         */
  6. ;/*------------------------------------------------------------*/
  7.  
  8. ;/*------------------------------------------------------------*/
  9. ;/*                                                            */
  10. ;/*    Turbo Vision -  Version 1.0                             */
  11. ;/*                                                            */
  12. ;/*                                                            */
  13. ;/*    Copyright (c) 1991 by Borland International             */
  14. ;/*    All Rights Reserved.                                    */
  15. ;/*                                                            */
  16. ;/*------------------------------------------------------------*/
  17.  
  18.         IDEAL
  19.         MODEL  LARGE, PROLOG
  20.  
  21.         INCLUDE "TVWRITE.INC"
  22.  
  23.         PUBLIC  @TView@resetCursor$qv
  24.  
  25.         EXTRN   @TScreen@cursorLines : WORD
  26.  
  27. CODESEG
  28.  
  29. PROC    @TView@resetCursor$qv
  30.         ARG     thisPtr : FAR PTR
  31.         USES    SI,DI
  32.  
  33.         LES     DI,[thisPtr]
  34.         
  35.         MOV     AX,[ES:DI+TViewState]
  36.         NOT     AX
  37.         TEST    AX,sfVisible+sfCursorVis+sfFocused
  38.         JNE     @@4
  39.         MOV     AX,[ES:DI+TViewCursorY]
  40.         MOV     DX,[ES:DI+TViewCursorX]
  41. @@1:
  42.         OR      AX,AX
  43.         JL      @@4
  44.         CMP     AX,[ES:DI+TViewSizeY]
  45.         JGE     @@4
  46.         OR      DX,DX
  47.         JL      @@4
  48.         CMP     DX,[ES:DI+TViewSizeX]
  49.         JGE     @@4
  50.         ADD     AX,[ES:DI+TViewOriginY]
  51.         ADD     DX,[ES:DI+TViewOriginX]
  52.         MOV     CX,DI
  53.         MOV     BX,ES
  54.         LES     DI,[ES:DI+TViewOwner]
  55.         MOV     SI,ES
  56.         OR      SI,DI
  57.         JE      @@5
  58.         TEST    [WORD PTR ES:DI+TViewState],sfVisible
  59.         JE      @@4
  60.         LES     DI,[ES:DI+TGroupLast]
  61. @@2:
  62.         LES     DI,[ES:DI+TViewNext]
  63.         CMP     CX,DI
  64.         JNE     @@3
  65.         MOV     SI,ES
  66.         CMP     BX,SI
  67.         JNE     @@3
  68.         LES     DI,[ES:DI+TViewOwner]
  69.         JMP     @@1
  70. @@3:
  71.         TEST    [WORD PTR ES:DI+TViewState],sfVisible
  72.         JE      @@2
  73.         MOV     SI,[ES:DI+TViewOriginY]
  74.         CMP     AX,SI
  75.         JL      @@2
  76.         ADD     SI,[ES:DI+TViewSizeY]
  77.         CMP     AX,SI
  78.         JGE     @@2
  79.         MOV     SI,[ES:DI+TViewOriginX]
  80.         CMP     DX,SI
  81.         JL      @@2
  82.         ADD     SI,[ES:DI+TViewSizeX]
  83.         CMP     DX,SI
  84.         JGE     @@2
  85. @@4:
  86.         MOV     CX,2000H
  87.         JMP     @@6
  88. @@5:
  89.         MOV     DH,AL
  90.         XOR     BH,BH
  91.         MOV     AH,2
  92.         INT     10H
  93.         MOV     CX,[WORD PTR @TScreen@cursorLines]
  94.         MOV     DI,DS
  95.         MOV     ES,DI
  96.         LES     DI,[thisPtr]
  97.         TEST    [WORD PTR ES:DI+TViewState],sfCursorIns
  98.         JE      @@6
  99.         MOV     CH,0
  100.         OR      CL,CL
  101.         JNE     @@6
  102.         MOV     CL,7
  103. @@6:
  104.         MOV     AH,1
  105.         INT     10H
  106.         RET
  107.  
  108. ENDP    @TView@resetCursor$qv
  109.  
  110. END
  111.