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

{
 JA> Does anyone know how to set the palette in 640x480x16 mode?  I am
 JA> working on a bmp reader for C/S class and it needs to be compatible
 JA> with the BGI drivers :(  Thanks.

I thnik this one will work :)))) }

uses Dos;

type paltype=array [0..255,0..2] of Byte;

var
  i,j:Integer;
  r,g,b,k:Byte;
  kuku,sv:paltype;
  palup:shortint;



procedure SetPalette (paletka:paltype);
var reg:registers;
begin
  reg.ax:=$1012;
  reg.bx:=0;
  reg.cx:=255;
  reg.es:=Seg(paletka);
  reg.dx:=Ofs(paletka);
  intr ($10,reg);
end;

procedure GetPalette (var paletka:paltype);
var reg:registers;
begin
  reg.ax:=$1017;
  reg.bx:=0;
  reg.cx:=255;
  reg.es:=Seg(paletka);
  reg.dx:=Ofs(paletka);
  intr ($10,reg);
end;

procedure setrgb(n:integer;r,g,b:byte);
begin
asm
  mov ax,1010h
  mov bx,n
  mov ch,g
  mov cl,b
  mov dh,r
  int 10h
end
end;

procedure getrgb(n:integer; var r,g,b:byte);
begin
asm
  mov ax,1015h
  mov bx,n
  int 10h
  les di,g
  mov [es:di],ch
  les di,b
  mov [es:di],cl
  les di,r
  mov [es:di],dh
end
end;

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