On Wed, Jul 08, 2020 at 12:37:11PM +1000, Jonathan Gray wrote: > Thanks for the explanation. The proposal makes more sense from the > point of view of the existing colours being darker for openboot black > on white. > > #if WS_DEFAULT_BG == WSCOL_WHITE > > old > > #else > > new > > #endif > > would have made that a bit more readable.
Yes, this is indeed better, thanks for the suggestion. > It is interesting that the choice of blue comes up as being problematic > in xterm as well when reading XTerm-col.ad > > For us though it really comes down to white on black (!sparc64), black > on white (sparc64) and white on blue for the kernel. I understand the concern is about the contrast for printed kernel messages. Currently, output originating from the kernel is displayed using WSCOL_WHITE on WSCOL_BLUE, which translates to NORMAL_WHITE on NORMAL_BLUE, and I agree that 0xaaaaaa as foreground on a blue background is not optimal, I think I raised the issue a few years ago as it's what we currently get when booting in BIOS mode. But it doesn't have to be this way, it could be changed. > I agree with the sentiment that people should be using X and leave > rasops/wscons as simple as possible. I understand some developers share this position, however we do have supported platforms (loongson being one, for example), on which X is not realistically usable. So here is a new iteration taking feedback into account, using the #if WS_DEFAULT_BG == WSCOL_WHITE check for clarity, and also switching the foreground color of printed kernel messages to light cyan to improve contrast and readability. Does this proposal look reasonable? Index: sys/dev/rasops/rasops.c =================================================================== RCS file: /cvs/src/sys/dev/rasops/rasops.c,v retrieving revision 1.63 diff -u -p -r1.63 rasops.c --- sys/dev/rasops/rasops.c 11 Jul 2020 15:02:52 -0000 1.63 +++ sys/dev/rasops/rasops.c 15 Jul 2020 14:55:45 -0000 @@ -47,7 +47,8 @@ /* ANSI colormap (R,G,B) */ -#define NORMAL_BLACK 0x000000 +#if WS_DEFAULT_BG == WSCOL_WHITE +#define NORMAL_BLACK 0x000000 /* Rasops palette */ #define NORMAL_RED 0x7f0000 #define NORMAL_GREEN 0x007f00 #define NORMAL_BROWN 0x7f7f00 @@ -64,6 +65,25 @@ #define HILITE_MAGENTA 0xff00ff #define HILITE_CYAN 0x00ffff #define HILITE_WHITE 0xffffff +#else +#define NORMAL_BLACK 0x000000 /* VGA text mode palette */ +#define NORMAL_RED 0xaa0000 +#define NORMAL_GREEN 0x00aa00 +#define NORMAL_BROWN 0xaa5500 +#define NORMAL_BLUE 0x0000aa +#define NORMAL_MAGENTA 0xaa00aa +#define NORMAL_CYAN 0x00aaaa +#define NORMAL_WHITE 0xaaaaaa + +#define HILITE_BLACK 0x555555 +#define HILITE_RED 0xff5555 +#define HILITE_GREEN 0x55ff55 +#define HILITE_BROWN 0xffff55 +#define HILITE_BLUE 0x5555ff +#define HILITE_MAGENTA 0xff55ff +#define HILITE_CYAN 0x55ffff +#define HILITE_WHITE 0xffffff +#endif const u_char rasops_cmap[256 * 3] = { #define _C(x) ((x) & 0xff0000) >> 16, ((x) & 0x00ff00) >> 8, ((x) & 0x0000ff) Index: sys/dev/wscons/wsemul_vt100.c =================================================================== RCS file: /cvs/src/sys/dev/wscons/wsemul_vt100.c,v retrieving revision 1.39 diff -u -p -r1.39 wsemul_vt100.c --- sys/dev/wscons/wsemul_vt100.c 25 May 2020 09:55:49 -0000 1.39 +++ sys/dev/wscons/wsemul_vt100.c 15 Jul 2020 14:55:45 -0000 @@ -165,13 +165,13 @@ wsemul_vt100_cnattach(const struct wsscr edp->cbcookie = NULL; #ifndef WS_KERNEL_FG -#define WS_KERNEL_FG WSCOL_WHITE +#define WS_KERNEL_FG WSCOL_CYAN #endif #ifndef WS_KERNEL_BG #define WS_KERNEL_BG WSCOL_BLUE #endif #ifndef WS_KERNEL_COLATTR -#define WS_KERNEL_COLATTR 0 +#define WS_KERNEL_COLATTR WSATTR_HILIT #endif #ifndef WS_KERNEL_MONOATTR #define WS_KERNEL_MONOATTR 0