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

    >Actually James you are in correct.  Here is some code that will change the
    >blinking characters to a enhanced back ground...
    >
    >Procedure HighBackGround;
    >VAR
    >  R: Registers;  {You must use the Dos Unit.}
    >BEGIN
    >  WITH R DO
    >  BEGIN
    >    R.AH:=$10;
    >    R.AL:=$03;
    >    BL:=0;
    >     {0 for intense back ground}
    >     {1 for blink}
    >  END;
    >  Intr($10,R);
    >END;
    >
    >Hope this helps,
    >

      This solution is correct, but only for EGA or higher monitors.

      To get high intensity background colors on a CGA card, you need to
      access the Color Graphics Mode Control Register, port $3d8.

      The bit meanings are as follows:

      bit

      7,6   unused
      5     blink mode 0 = disable blink 1 = enable blink
      4     graphics resolution 0 = 320x200 1 = 640x200
      3     video enable 0 = disable 1 = enable
      2     color mode 0 = color 1 = bw
      1     monitor mode 0 = alphanumeric 1 = graphics
      0     char. size 0 = 40x25 1 = 80x25

      The simplist answer to your problem is, in TP,

        port[$3d8] := $9

      This sets 80x25 color alphanumeric mode with high intensity
      background colors.  If you need other modes, set the bits
      accordingly.

      One word of caution:  register $3d8 is write only, so you can't
      use the read-or-write method of bit setting.  You'll need to look
      into the BIOS data area to find out the current video mode if
      necessary.

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