[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]
Unit Graphic;
Interface
Var ScrBase : Word;
Procedure VideoMode ( Mode : Byte );
Procedure SetColor ( Color, Red, Green, Blue : Byte );
Procedure Pset(X,Y,C : Word);
Procedure SetRGBDAC(Color,R,G,B : Byte);
Procedure WaitRetrace;
Function Rad (theta : real) : real;
Procedure PutPix(x, y : Word; Color : Byte);
Procedure ScrPan(ScrOfs : Word);
Procedure SetModeX;
implementation
Procedure WaitRetrace; Assembler;
Asm
mov dx,3dah
@L1:
in al,dx
test al,08h
jne @L1
@L2:
in al,dx
test al,08h
je @L2
End;
Procedure SetModeX; Assembler;
Asm
mov ax,0012h
int 10h
mov ax,0013h
int 10h
mov dx,3c4h
mov ax,0604h
out dx,ax
mov dx,3d4h
mov ax,0014h
out dx,ax
mov ax,0e317h
out dx,ax
End;
Procedure ScrPan(ScrOfs : Word); Assembler;
Asm
mov bx,ScrOfs
mov dx,3d4h
mov ah,bh
mov al,0ch
out dx,ax
mov ah,bl
inc al
out dx,ax
End;
Procedure PutPix(x, y : Word; Color : Byte); Assembler;
Asm
mov ax,0a000h
mov es,ax
mov bx,x
mov dx,3c4h
mov ax,0102h
mov cl,bl
and cl,3
shl ah,cl
out dx,ax
mov ax,y
shl ax,4
mov di,ax
shl ax,2
add di,ax
shr bx,2
add di,bx
add di,ScrBase
mov al,Color
mov es:[di],al
End;
Procedure VideoMode ( Mode : Byte );
Begin { VideoMode }
Asm
Mov AH,00
Mov AL,Mode
Int 10h
End;
End; { VideoMode }
Procedure SetRGBDAC(Color,R,G,B : Byte);
Begin
Asm
Mov AH,$10;
Mov AL,$10;
mov BL,Color;
Mov CH,G;
Mov CL,B;
Mov DH,R;
Int $10;
End;
End;
Procedure SetColor ( Color, Red, Green, Blue : Byte );
Begin { SetColor }
Port[$3C8] := Color;
Port[$3C9] := Red;
Port[$3C9] := Green;
Port[$3C9] := Blue;
End; { SetColor }
procedure Pset(X,Y,C : Word);
begin
Mem[$0A000:Y*320+X] := C;
end;
Function rad (theta : real) : real;
{ This calculates the degrees of an angle }
BEGIN
rad := theta * pi / 180
END;
End.
Try that I'm sure you can figure it out ..:) .. B4 you use SCRPAN you
have to do SETMODEX ... I think PutPix is faster then PSET not srue ..
you could benchmark it ... VIDEOMODE($13); gets you into 320x200x256 grf
mode ... Tell me what ya think .. this is COMPLETELY free but you might
want to tell me what ya think?
Thanks!
Cya!
ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
Û Chris Austin - CEO IdeaSoft Û±
Û SysOp IdeaSoft/2 Û±
Û (609) 884-2717 Û±
Û FidoNet 1:2623/56 : CD-ROM : Doors! Û±
ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]