.MODEL SMALL
.STACK
.386

.DATA
PVirt1  DB      0
hFont   DB      0
Msg1    DB      'Esto es una prueba de scroll',0

.CODE
INCLUDE GRFLIB.INC

Inicio          PROC
                CALL    LiberaMEM       ;  Se libera la memoria.
                MOV     BX, 1
                MOV     EAX, 010b
                InicGRAPH               ;  Encendemos GRAPH.
                MOV     AX, @DATA
                MOV     DS, AX

                CreaVirtual             ;  Pedimos una PV.
                MOV     [PVirt1], AL
                MOV     AL, 8
                CambiaTipo              ;  Cambiamos el tipo de fuente.
                CogeFuenteDOS           ;  Cogemos las fuentes del DOS.
                MOV     [hFont], AL

                MOV     DX, 205
          @@Bucle:
                PUSH    DX
                MOV     BX, 40
                SetCursor               ;  Colocamos el cursor.
                MOV     AL, [PVirt1]
                MOV     CL, 0
                BorraPantalla
                MOV     BH, DL
                MOV     SI, Offset Msg1
                MOV     BL, [PVirt1]
                MOV     AL, [hFont]
                MOV     CL, 9
                MOV     DL, 10
                Escribe                 ;  Escribimos
                WaitVR
                MOV     AL, [PVirt1]
                MOV     AH, 0           ;  La VGA
                CopiaPantalla           ;  Dibujamos en la VGA.
                POP     DX
                DEC     DX
                JNZ   @@Bucle           ;  Volvemos a repetir hasta 0.

                VaciaMEM
                EndGRAPH
                MOV     AX, 4C00h
                INT     21h             ;  Salimos al DOS.
Inicio          ENDP
                END     Inicio
