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

{
> I once saw a Procedure that set the palette With RGB inputs, like the
> 256- colour palette setter (RGBSetPalette).  It used some SHLs
> and SHRs to reduce the inputted values For red, green, and
> blue to 2-bit values (or somewhere around there).
}

Procedure EGAPalette(c_index, red, green, blue : Byte);
Var
  i    : Integer;
  regs : Registers;
begin
  red   := red SHR 6;
  green := green SHR 6;
  blue  := blue SHR 6;
  i     := (red SHL 4) + (green SHL 2) + blue;
  regs.AH := $10;
  regs.AL := 0;
  regs.BH := i;
  regs.BL := c_index;  { the colour index to change }
  Intr($10, regs);
end;


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