home *** CD-ROM | disk | FTP | other *** search
- title DSCROLL.ASM: A LINKABLE ROUTINE TO SCROLL THE SCREEN DOWN.
- ;THIS ROUTINE IS PASSED THE UPPER LEFT CORNER TO SCROLL. THE LOWER
- ;RIGHT CORNER IS PERMANENTLY SET TO ROW 22, COLUMN 79. THE ROUTINE
- ;WILL USE A BIOS CALL TO SCROLL ALL LINES IN THAT PAGE DOWN AND INSERT
- ;A BLANK LINE WITH NO ATTRIBUTES AT THE TOP OF THE SCREEN. THE TOP OF
- ;THE SCREEN WILL BE THE TOP LINE INVOLVED IN THE SCROLL. TO SCROLL
- ;THE WHOLE SCREEN, SET THE TOP LINE TO ZERO (0). WRITTEN BY BRUCE W.
- ;TONKIN ON 9-18-85 USING IBM'S MACRO-ASSEMBLER.
- ;COPYRIGHT (C) 1986, BRUCE W. TONKIN. YOU MAY USE
- ;THIS ROUTINE IN ANY WORK WITH OR WITHOUT ATTRIBUTION.
-
- DATA SEGMENT WORD PUBLIC 'DATA'
- STORAGE DW 16
- DATA ENDS
- DGROUP GROUP DATA
- CODE SEGMENT BYTE PUBLIC 'CODE'
- ASSUME CS:CODE, DS:DGROUP
- PUBLIC DSCROLL
- DSCROLL PROC FAR
- PUSH BP ;SAVE BASE POINTER
- MOV BP,SP ;SET UP TO ADDRESS OFF OF BP
- MOV BX,[BP]+6 ;GET THE ADDRESS OF THE PARAMETER
- MOV CX,0 ;ZERO CX REGISTER
- ADD CX,[BX] ;PUT ROW ADDRESS INTO CX
- MOV CH,CL ;MOVE ROW TO CH
- MOV CL,0 ;SET COLUMN NUMBER TO ZERO FOR UPPER LEFT
- MOV DH,22 ;BOTTOM ROW NUMBER
- MOV DL,79 ;BOTTOM COLUMN NUMBER
- MOV BX,112 ;SET ATTRIBUTE TO USE INTO BH
- MOV AL,1 ;NUMBER OF LINES TO SCROLL, 0 MEANS ALL LINES.
- MOV AH,7 ;BIOS FUNCTION CALL
- INT 010H ;INTERRUPT 10 HEX=16 DECIMAL
- POP BP ;RESTORE BASE POINTER
- RET 2 ;RETURN AND REMOVE ONE PARAMETER FROM STACK
- DSCROLL ENDP
- CODE ENDS
- END