[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]

    {
    ´ You mean there is a way to have just a PART of the screen scroll with
    ´ registers?!?!?

    All this routines is importet from Myown ASM-lib. And works fine i
    Turbo Pascal. v7

    Use this routine to "scroll" the screen :-))
    My English is not good enough to explain Exactly that it does!
    }

    Procedure ScreenPos(Plass:word); assembler;
    asm
        mov bx,plass
        mov dx,3d4h
        mov al,0ch
        mov ah,bh
        out dx,ax
        mov al,0dh
        mov ah,bl
        out dx,ax
    end;

    {
    Thos routine will tell you there the "screen" should start Writing the
    screen one more time...
    It's just called a Split, screen Routine...:)
    }

    procedure Split_screen(Linje:word); assember;
    label crt_ok, Vga_split;
    asm
            mov     dx,3d4h
    crt_ok:
            mov     al,18h
            out     dx,al
            inc     dx

            MOV     AX,linje
            out     dx,al
            dec     dx
    VGA_split:
            mov     al,7
            out     dx,al
            inc     dx
            in      al,dx
            mov     bl,AH
            and     bl,1
            mov     cl,4
            shl     bl,cl
            and     al,not 10h
            or      al,bl
            out     dx,al
            dec     dx
            mov     al,9
            out     dx,al
            inc     dx
            in      al,dx
            and     al,not 40h
            out     dx,al
    end;

    { This routine will wait for the vertical Retrace! }

    Procedure WaitBorder; assembler;
    label wb1,wb2;
    asm
            MOV DX,3dah
    wb1:    in al,dx
            test al,8
            jnz wb1
    wb2:    in al,dx
            test al,8
            jz wb2
    end;

    {
    This was all!

    Everytime you change some om the Split_Screens, and ScreenPos, Do wait
    for the Vertical Retrace, if you don't want a flicking screen! :-)

    And remember by using these registers in Text-modus, will show you
    "two" pages, and might give you some errors.

    The best place to use these routines is if you find a VGA, MODEX-
    library!
    But I will work half the way it should in standard VGA, 320x200. Mode.
    But I know you will get it work :-))
    }

[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]