[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]