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

  1. ;/*------------------------------------------------------------*/
  2. ;/* filename -       tvexposd.asm                              */
  3. ;/*                                                            */
  4. ;/* function(s)                                                */
  5. ;/*                  TView exposed 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@exposed$qv
  24.  
  25. STRUC   Fptr
  26.         offs    DW      ?
  27.         segm    DW      ?
  28. ENDS
  29.  
  30. CODESEG
  31.  
  32. PROC    @TView@exposed$qv
  33.         ARG     thisPtr : DWORD
  34.         LOCAL   Target  : Fptr
  35.         USES    SI,DI
  36.  
  37.         LES     DI,[thisPtr]
  38.         TEST    [WORD PTR ES:DI+TViewState],sfExposed
  39.         JE      @@2
  40.         XOR     AX,AX
  41.         CMP     AX,[ES:DI+TViewSizeX]
  42.         JGE     @@2
  43.         CMP     AX,[ES:DI+TViewSizeY]
  44.         JGE     @@2
  45. @@1:    
  46.         XOR     BX,BX
  47.         MOV     CX,[ES:DI+TViewSizeX]
  48.         PUSH    AX
  49.         CALL    @@11
  50.         POP     AX
  51.         JNC     @@3
  52.         LES     DI,[thisPtr]
  53.         INC     AX
  54.         CMP     AX,[ES:DI+TViewSizeY]
  55.         JL      @@1
  56. @@2:    
  57.         MOV     AL,0
  58.         JMP     @@30
  59. @@3:    
  60.         MOV     AL,1
  61.         JMP     @@30
  62. @@8:    
  63.         STC
  64. @@9:    
  65.         RETN
  66. @@10:   
  67.         LES     DI,[DWORD PTR ES:DI+TViewOwner]
  68.         CMP     [WORD PTR ES:DI+TGroupBuffer+2],0
  69.         JNE     @@9
  70. @@11:   MOV     [Target.offs],DI
  71.         MOV     [Target.segm],ES
  72.         ADD     AX,[ES:DI+TViewOriginY]
  73.         MOV     SI,[ES:DI+TViewOriginX]
  74.         ADD     BX,SI
  75.         ADD     CX,SI
  76.         LES     DI,[ES:DI+TViewOwner]
  77.         MOV     SI,ES
  78.         OR      SI,DI
  79.         JE      @@9
  80.         CMP     AX,[ES:DI+TGroupClipAY]
  81.         JL      @@8
  82.         CMP     AX,[ES:DI+TGroupClipBY]
  83.         JGE     @@8
  84.         CMP     BX,[ES:DI+TGroupClipAX]
  85.         JGE     @@12
  86.         MOV     BX,[ES:DI+TGroupClipAX]
  87. @@12:   
  88.         CMP     CX,[ES:DI+TGroupClipBX]
  89.         JLE     @@13
  90.         MOV     CX,[ES:DI+TGroupClipBX]
  91. @@13:   
  92.         CMP     BX,CX
  93.         JGE     @@8
  94.         LES     DI,[ES:DI+TGroupLast]
  95. @@20:   
  96.         LES     DI,[ES:DI+TViewNext]
  97.         CMP     DI,[Target.offs]
  98.         JNE     @@21
  99.         MOV     SI,ES
  100.         CMP     SI,[Target.segm]
  101.         JE      @@10
  102. @@21:   
  103.         TEST    [WORD PTR ES:DI+TViewState],sfVisible
  104.         JE      @@20
  105.         MOV     SI,[ES:DI+TViewOriginY]
  106.         CMP     AX,SI
  107.         JL      @@20
  108.         ADD     SI,[ES:DI+TViewSizeY]
  109.         CMP     AX,SI
  110.         JGE     @@20
  111.         MOV     SI,[ES:DI+TViewOriginX]
  112.         CMP     BX,SI
  113.         JL      @@22
  114.         ADD     SI,[ES:DI+TViewSizeX]
  115.         CMP     BX,SI
  116.         JGE     @@20
  117.         MOV     BX,SI
  118.         CMP     BX,CX
  119.         JL      @@20
  120.         STC
  121.         RETN
  122. @@22:   
  123.         CMP     CX,SI
  124.         JLE     @@20
  125.         ADD     SI,[ES:DI+TViewSizeX]
  126.         CMP     CX,SI
  127.         JG      @@23
  128.         MOV     CX,[ES:DI+TViewOriginX]
  129.         JMP     @@20
  130. @@23:   
  131.         PUSH    [Target.segm]
  132.         PUSH    [Target.offs]
  133.         PUSH    ES
  134.         PUSH    DI
  135.         PUSH    SI
  136.         PUSH    CX
  137.         PUSH    AX
  138.         MOV     CX,[ES:DI+TViewOriginX]
  139.         CALL    @@20
  140.         POP     AX
  141.         POP     CX
  142.         POP     BX
  143.         POP     DI
  144.         POP     ES
  145.         POP     [Target.offs]
  146.         POP     [Target.segm]
  147.         JC      @@20
  148.         RETN
  149. @@30:
  150.         RET
  151. ENDP
  152.  
  153. END
  154.