home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-ASM_VI.ARJ / PROGASM.ZIP / PROG046.ASM < prev    next >
Assembly Source File  |  1988-04-10  |  2KB  |  39 lines

  1.  
  2. ;************************************************************************
  3. ; Using BIOS to scroll section of a text screen                         *
  4. ; Entry:        Up, Left        - Upper left row and column             *
  5. ;               Down, Right     - Lower right row and column            *
  6. ;               Count           - Number of lines to scroll             *
  7. ;************************************************************************
  8.  
  9. Up      EQU     BYTE PTR [BP+4]
  10. Left    EQU     BYTE PTR [BP+6]
  11. Down    EQU     BYTE PTR [BP+8]
  12. Right   EQU     BYTE PTR [BP+10]
  13. Count   EQU     BYTE PTR [BP+12]
  14.  
  15.         PUBLIC  _BIOS_Scroll_Text
  16.  
  17. _BIOS_Scroll_Text PROC NEAR
  18.         PUSH    BP
  19.         MOV     BP,SP
  20.         MOV     BH,07           ;Attribute for 'blank' lines
  21.         MOV     AL,Count        ;Number of lines to scroll
  22.         MOV     CH,Up           ;Upper left corner into CX
  23.         MOV     CL,Left
  24.         MOV     DH,Down         ;Lower right corner into DX
  25.         MOV     DL,Right
  26.         CMP     Count,0         ;Is scroll up?
  27.         JL      BIOS_Set_Down   ;...No, go scroll down
  28. BIOS_Set_Up:                    ;...Yes, load scroll down fn
  29.         MOV     AH,06H          ;Load service number
  30.         JMP     BIOS_Do_Scroll
  31. BIOS_Set_Down:
  32.         MOV     AH,07H          ;Load service number
  33.         NEG     AL              ;Make scroll value positive
  34. BIOS_Do_Scroll:
  35.         INT     10H                     ;Call BIOS to do the scroll
  36.         POP     BP
  37.         RET
  38. _BIOS_Scroll_Text ENDP
  39.