[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]