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

  1. ;/*------------------------------------------------------------*/
  2. ;/* filename -       framelin.asm                              */
  3. ;/*                                                            */
  4. ;/* function(s)                                                */
  5. ;/*                  TFrame frameLine 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  @TFrame@frameLine$qm11TDrawBufferssuc
  24.         EXTRN   @TFrame@initFrame : WORD
  25.         EXTRN   @TFrame@frameChars : WORD
  26.  
  27.         MaxViewWidth    equ     132
  28.  
  29. DATASEG
  30.  
  31. FrameMask       DB      MaxViewWidth dup(?)
  32.  
  33. CODESEG
  34.  
  35. PROC    @TFrame@frameLine$qm11TDrawBufferssuc
  36.         ARG     thisPtr : FAR PTR, FrameBuf : FAR PTR, Y : WORD, N : WORD, Color : BYTE
  37.         USES    SI,DI
  38.  
  39.         LES     BX,[thisPtr]
  40.         MOV     DX,[ES:BX+TFrameSizeX]
  41.         MOV     CX,DX
  42.         DEC     CX
  43.         DEC     CX
  44.         MOV     SI,OFFSET @TFrame@initFrame
  45.         ADD     SI,[N]
  46.         LEA     DI,[FrameMask]
  47.         PUSH    DS
  48.         POP     ES
  49.         CLD
  50.         MOVSB
  51.         LODSB
  52.         REP     STOSB
  53.         MOVSB
  54.         LES     BX,[thisPtr]
  55.         LES     BX,[ES:BX+TFrameOwner]
  56.         LES     BX,[ES:BX+TGroupLast]
  57.         DEC     DX
  58. @1:     LES     BX,[ES:BX+TViewNext]
  59.         CMP     BX,[WORD PTR thisPtr]
  60.         JNE     @2
  61.         MOV     AX,ES
  62.         CMP     AX,[WORD PTR thisPtr+2]
  63.         JE      @10
  64. @2:     TEST    [WORD PTR ES:BX+TViewOptions],ofFramed
  65.         JE      @1
  66.         TEST    [WORD PTR ES:BX+TViewState],sfVisible
  67.         JE      @1
  68.         MOV     AX,[Y]
  69.         SUB     AX,[ES:BX+TViewOriginY]
  70.         JL      @3
  71.         CMP     AX,[ES:BX+TViewSizeY]
  72.         JG      @1
  73.         MOV     AX,0005H
  74.         JL      @4
  75.         MOV     AX,0A03H
  76.         JMP     @4
  77. @3:     INC     AX
  78.         JNE     @1
  79.         MOV     AX,0A06H
  80. @4:     MOV     SI,[ES:BX+TViewOriginX]
  81.         MOV     DI,[ES:BX+TViewSizeX]
  82.         ADD     DI,SI
  83.         CMP     SI,1
  84.         JG      @5
  85.         MOV     SI,1
  86. @5:     CMP     DI,DX
  87.         JL      @6
  88.         MOV     DI,DX
  89. @6:     CMP     SI,DI
  90.         JGE     @1
  91.         OR      [BYTE PTR FrameMask+SI-1],AL
  92.         XOR     AL,AH
  93.         OR      [BYTE PTR FrameMask+DI],AL
  94.         OR      AH,AH
  95.         JE      @1
  96.         MOV     CX,DI
  97.         SUB     CX,SI
  98. @8:     OR      [BYTE PTR FrameMask+SI],AH
  99.         INC     SI
  100.         LOOP    @8
  101.         JMP     @1
  102. @10:    INC     DX
  103.         MOV     AH,[Color]
  104.         MOV     BX,OFFSET @TFrame@frameChars
  105.         MOV     CX,DX
  106.         LEA     SI,[FrameMask]
  107.         LES     DI,[FrameBuf]
  108.         ADD     DI,TDrawBufferData
  109. @11:    LODSB
  110.         XLAT
  111.         STOSW
  112.         LOOP    @11
  113.         RET
  114. ENDP
  115. END
  116.