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