Commit b36701cc authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(bright_bg): Save the original state of video blink bit.

(maybe_enable_blinking): New function, restores the original state
of the blink bit.
(IT_reset_terminal_modes): Restore the original state of the blink
bit when suspending/exiting.
(run_msdos_command): Make sure bright background colors are again
enabled after subsidiary program returns.
parent ac707ebc
......@@ -62,6 +62,10 @@ Boston, MA 02111-1307, USA. */
#define _USE_LFN 0
#ifndef _dos_ds
#define _dos_ds _go32_info_block.selector_for_linear_memory
#if __DJGPP__ > 1
#include <signal.h>
......@@ -370,17 +374,39 @@ ScreenVisualBell (void)
static int blink_bit = -1; /* the state of the blink bit at startup */
/* Enable bright background colors. */
static void
bright_bg (void)
union REGS regs;
/* Remember the original state of the blink/bright-background bit.
It is stored at 0040:0065h in the BIOS data area. */
if (blink_bit == -1)
blink_bit = (_farpeekb (_dos_ds, 0x465) & 0x20) == 0x20; = 0; = 0x1003;
int86 (0x10, &regs, &regs);
/* Disable bright background colors (and enable blinking) if we found
the video system in that state at startup. */
static void
maybe_enable_blinking (void)
if (blink_bit == 1)
union REGS regs; = 1; = 0x1003;
int86 (0x10, &regs, &regs);
/* Set the screen dimensions so that it can show no less than
ROWS x COLS frame. */
......@@ -869,6 +895,10 @@ IT_reset_terminal_modes (void)
mouse_off ();
/* Leave the video system in the same state as we found it,
as far as the blink/bright-background bit is concerned. */
maybe_enable_blinking ();
/* We have a situation here.
We cannot just do ScreenUpdate(startup_screen_buffer) because
......@@ -3010,6 +3040,11 @@ run_msdos_command (argv, dir, tempin, tempout, temperr)
mouse_init ();
mouse_moveto (x, y);
/* Some programs might change the meaning of the highest bit of the
text attribute byte, so we get blinking characters instead of the
bright background colors. Restore that. */
bright_bg ();
chdir (oldwd);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment