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

    { Display EGA palette (works only on VGA), Arne de Bruijn, Public Domain }
    function EgaPal(I:byte):byte; assembler;
    asm
     mov dx,3dah
     in al,dx         { Clear 3c0h flipflop }
     mov dl,0c0h      { Set port no to 3c0h }
     mov al,I
     out dx,al        { Write palette no to read, turns off screen }
     inc dx           { Port 3c1h }
     in al,dx         { Read color }
     push ax          { Save }
     mov dl,0dah      { Again clear flipflop }
     in al,dx
     mov dl,0c0h
     mov al,32        { And turn on screen }
     out dx,al
     pop ax           { Restore color }
    end;

    var
     I:byte;
    begin
     for I:=0 to 15 do
      WriteLn(I:2,'. ',EgaPal(I));
    end.

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