This sample of a direct write video page scroll routine for standard text

mode screens was taken from ANSI.SYS

; DATA

Attribute db 7

VideoMemSeg dw b800

VideoPageSegOff db 0

; SET UP FOR BLANKING LAST LINE

mov bh,Attribute ; Current Video attribute

mov bl,20h ; ASCII space character

mov bp,50h ; 80 words per line

; POINT TO VIDEO MEMORY AT THE CORRECT PAGE

mov ax,VideoMemSeg ; Segment address of video memory (B800)

add ax,VideoPageSegOff ; Video page number * Page byte length / 16

mov es,ax

mov ds,ax

xor di,di ; Move to first line

mov si,0A0h ; from second line (160 bytes per line)

mov cx,780h ; Page word length

; DO IT

cld

rep movsw ; Scroll the page

mov ax,bx

mov cx,bp

rep stosw ; Blank the last line