home *** CD-ROM | disk | FTP | other *** search
- title USCROLL.ASM: A LINKABLE ROUTINE TO SCROLL THE SCREEN UP.
- ;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 UP AND INSERT
- ;A BLANK LINE WITH NO ATTRIBUTES AT THE BOTTOM OF THE SCREEN. THE
- ;BOTTOM OF THE SCREEN IS THE LAST LINE BEING SCROLLED. WRITTEN BY
- ;BRUCE W. TONKIN ON 9-18-85 USING IBM'S MACRO-ASSEMBLER. COPYRIGHT,
- ;1986, BRUCE W. TONKIN. YOU MAY USE THIS ROUTINE 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 USCROLL
- USCROLL 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,6 ;BIOS FUNCTION CALL
- INT 010H ;INTERRUPT 10 HEX=16 DECIMAL
- POP BP ;RESTORE BASE POINTER
- RET 2 ;RETURN AND REMOVE ONE PARAMETER FROM STACK
- USCROLL ENDP
- CODE ENDS
- END