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

{
   The solutions proposed so far to this problem have ignored
   the fact that there was a way to use high intensity back-
   ground in CGA screens by direct addressing the video port.
   The following procedure works with EGA/VGA as well as CGA
   (and possibly MDA?) videos:

   (I skipped function GetAdapterType that should return the
   AdapterType as indicated).

   -Jose-
 }
   procedure ToggleBlink(Blink: Boolean);
   var
     Adapter : AdapterType;
     regs    : registers;
     port_   : word;
   begin
     Adapter:= GetAdapterType;
     if Adapter in [CGA,MDA] then begin
       if Adapter = CGA then port_:= $03D8
                        else port_:= $03B8;
       if not Blink then PortW[port_]:= MemW[$0040:$0065] and $00DF
                    else PortW[port_]:= MemW[$0040:$0065]  or $0020;
     end else
     if (Adapter in [VGAColor,EGAColor,VGAMono,EGAMono]) then begin
       if not Blink then regs.bl:= $00
                    else regs.bl:= $01;
       regs.ah:= $10;
       regs.al:= $03;
       intr($10,regs);
     end;
   end;

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