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

  1. ;/*------------------------------------------------------------*/
  2. ;/* filename -       ttprvlns.asm                              */
  3. ;/*                                                            */
  4. ;/* function(s)                                                */
  5. ;/*                  TTerminal prevLines 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  @TTerminal@prevLines$qusus
  24.  
  25. CODESEG
  26.  
  27. PROC    DecDI
  28.         CMP     DI,[WORD PTR SI+TTerminalBuffer]
  29.         JA      @@1
  30.         ADD     DI,[WORD PTR SI+TTerminalBufSize]
  31. @@1:    DEC     DI
  32.         RET
  33. ENDP
  34.  
  35.  
  36. PROC    IncDI
  37.         INC     DI
  38.         MOV     AX,[WORD PTR SI+TTerminalBuffer]
  39.         ADD     AX,[SI+TTerminalBufSize]
  40.         CMP     DI,AX
  41.         JB      @@1
  42.         MOV     DI,[WORD PTR SI+TTerminalBuffer]
  43. @@1:
  44.         RET
  45. ENDP
  46.  
  47.  
  48. PROC    @TTerminal@prevLines$qusus
  49.         ARG     thisPtr : FAR PTR, Pos : WORD, Lines : WORD
  50.         USES    DS,SI,DI
  51.  
  52. LineSeparator   EQU 10
  53.  
  54.         LDS     SI,[thisPtr]
  55.         LES     DI,[SI+TTerminalBuffer]
  56.         ADD     DI,[Pos]
  57. @@1:    MOV     CX,[Lines]
  58.         JCXZ    @@6
  59.         MOV     AX,[SI+TTerminalQueBack]
  60.         ADD     AX,[WORD PTR SI+TTerminalBuffer]
  61.         CMP     DI,AX
  62.         JE      @@7
  63.         CALL    DecDI
  64. @@2:    MOV     AX,[SI+TTerminalQueBack]
  65.         ADD     AX,[WORD PTR SI+TTerminalBuffer]
  66.         CMP     DI,AX
  67.         JA      @@3
  68.         MOV     CX,DI
  69.         SUB     CX,[WORD PTR SI+TTerminalBuffer]
  70.         JMP     @@4
  71. @@3:    MOV     CX,DI
  72.         SUB     CX,AX
  73. @@4:    MOV     AL,LineSeparator
  74.         INC     CX
  75.         STD
  76.         REPNE   SCASB
  77.         JE      @@5
  78.         MOV     AX,DI
  79.         SUB     AX,[WORD PTR SI+TTerminalBuffer]
  80.         INC     AX
  81.         CMP     AX,[SI+TTerminalQueBack]
  82.         JE      @@8
  83.         MOV     DI,[WORD PTR SI+TTerminalBuffer]
  84.         ADD     DI,[WORD PTR SI+TTerminalBufSize]
  85.         DEC     DI
  86.         JMP     @@2
  87. @@5:    DEC     [Lines]
  88.         JNZ     @@2
  89. @@6:    CALL    IncDI
  90.         CALL    IncDI
  91.         MOV     AX,DI
  92. @@7:    SUB     AX,[WORD PTR SI+TTerminalBuffer]
  93. @@8:
  94.         CLD
  95.         RET
  96.         ENDP
  97.         END
  98.