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

    program Demo_4_SWAG;
    var
      old_border : integer; { used in main body of program }
      Rnd_border : integer;

    (****************************************************************************)
    procedure Set_Border(color:byte); { Written by Pat Roberts 1994 }
    begin
     asm
      mov ah,10h     { This subroutine sets the color value stored in the }
      mov al,01h     { overscan register of the current palette from the }
      mov BH,Color   { Bios thru int 10h . Assumes EGA\VGA }
      int 10h
     end;
    end;

    (****************************************************************************)
    function Get_Border:byte; { Written by Pat Roberts 1994 }
    begin
     asm
      mov ah,10h      { This subroutine reads the color value stored in the }
      mov al,08h      { overscan register of the current palette from the }
      int 10h         { Bios thru int 10h. Assumes EGA\VGA }
      mov @result,bH  { result is byte(BL) not a integer(BX) }
     end;
    end;

    (******************************Main******************************************)
    begin
     Randomize;
     old_border := get_border;
     writeln(' Old border color was ',old_border);
     Rnd_border := ((random(7)+1));
     set_border(rnd_border);
     writeln(' Get_Border reports color ',get_border); readln; end.
    end.

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