Commit Graph

26 Commits

Author SHA1 Message Date
jmmv 92f81ea7d3 Implement support to dynamically change wscons console and kernel colors.
Two new ioctls are added to the wsdisplay device, named WSDISPLAY_GMSGATTRS
and WSDISPLAY_SMSGATTRS, used to retrieve the actual values and set them,
respectively (the name, if you are wondering, comes from "message attributes").

A new emulop is added to the underlying display driver (only vga, for now)
which sets the new attribute for the whole screen, without having to clear
it.  This is optional, which means that this also works with other drivers
that don't have this new operation.

Five new kernel options have been added, although only documented in
i386 kernels (for now):
- WSDISPLAY_CUSTOM_OUTPUT, which enables the ioctls described above to
  change the colors dynamically from userland.  This is enabled by default
  in the GENERIC kernel (as well as others) but disabled on all INSTALL*
  kernels (as this feature is useless there).
- WS_DEFAULT_COLATTR, WS_DEFAULT_MONOATTR, WS_DEFAULT_BG and WS_DEFAULT_FG,
  which specify the default colors for the console at boot time.  These have
  the same meaning as the (already existing) WS_KERNEL_* variables.

wsconsctl is modified to add msg.default.{attrs,bg,fg} and
msg.kernel.{attrs,bg,fg} to the display part, so that colors can be changed
after boot.

Tested on NetBSD/i386 with vga (and vga in mono mode), and on NetBSD/mac68k.
No objections in tech-kern@.
2004-07-28 12:34:02 +00:00
drochner ef369e0ed6 remove license clauses 3 and 4 from my cpoyright notices 2004-03-24 17:26:53 +00:00
christos 52be04c4cc PR/17738: Matthias Drochner, PR/21230: Onno van der Linden: vt100 wscons
crashes restoring cursor. Fixed by adding a flag as suggested.
2003-04-19 23:28:46 +00:00
drochner 05faaa969d stylistic change: put variable declarations to the top of a function 2003-02-11 10:45:28 +00:00
sommerfeld df5660c9f3 Fix build glitch. 2003-01-05 23:23:43 +00:00
sommerfeld 7b74535513 When moving the cursor down, only scroll up if cursor is exactly at
bottom of scroll region; don't scroll if below scroll region.
Should fix kern/11827
2003-01-05 23:20:00 +00:00
provos 0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
junyoung 2009b23147 switch/case KNF. 2002-07-09 07:15:21 +00:00
junyoung 3d826105dc alloc_attr -> allocattr
Approved by Matthias Drochner.
2002-07-04 14:37:10 +00:00
tsutsui c12b5c180d Call malloc(9) with M_ZERO flag instead of memset() after malloc(). 2002-01-12 16:41:02 +00:00
lukem 139747fb15 add/cleanup RCSIDs 2001-11-13 06:17:46 +00:00
augustss 82e5e6ab85 ANSIfy. 2001-10-13 15:56:15 +00:00
jdolecek aceb9e23c9 don't panic if there is ESC in kernel output, just print a warning and
ignore the ESC; also remove the #ifdef DIAGNOSTIC
2001-02-21 23:12:58 +00:00
mycroft 73ac8c709b Add a concept of the `background attribute'. This is the same as the
current attribute, but has all non-color flags turned off.  Use this when
doing erasure, as this allows us to optimize repainting in curses.

XXX The way the default attribute is handled is totally bogus and needs to
be fixed.
2000-04-28 21:56:16 +00:00
mycroft d2b362b685 Only update the cursor state if it's enabled. 1999-11-03 15:55:27 +00:00
drochner b241f995f0 don't erase the characters moved over on a <TAB>, a real VT100 doesn't
do this - thanks Bill Sommerfeld (PR kern/7124)
1999-03-10 19:54:52 +00:00
drochner b69b2fd8f4 define a "clear screen" command to the emulator and complete the
emulation's "reset" implementations as far as useful
1999-01-17 15:44:57 +00:00
drochner b50830062b export functions to reset the emulator and the character mappings 1999-01-13 15:38:30 +00:00
augustss b2acf0b9f2 Change from bcopy/bzero to memxxx. From PR 6778 by
Erik Bertelsen <erik@q610.ebe.uni-c.dk>.
1999-01-10 00:28:21 +00:00
drochner 3292aee22b Separate special character handling from normal output so that they
are obeyed even during an escape sequence.
This is how the original VT100 behaves.
1998-08-12 20:09:47 +00:00
drochner 406be71827 don't set a tabstop in column 1 1998-06-29 21:10:53 +00:00
drochner bcb927f8e9 fix gcc unused variable warning
From Matthias Scheler <tron@lyssa.owl.de>.
1998-06-29 14:04:27 +00:00
drochner 158d2cdd40 Fix initialization in console case: use the paramerters which were passed
in the cninit() call - the new ones are not useful.
1998-06-26 22:35:27 +00:00
drochner bbb4f765cc Improvements to the VT100 emulation:
-display DEC special graphics and DEC technical characters as far as
  possible
-implement the font switching controls (need documentation!)
-behave well if double-width characters are requested
-simplify the state machine: store CSI command modifiers in variables
  instead of dedicating own states to each of them
1998-06-26 21:20:34 +00:00
drochner d3e8687b47 Change the calling interface for text output (to the graphics driver)
to take a single character at a time, where the character is an "int" now.
The old interface (took a string) was never called with more than 1
char to print, and the "int" allows us to handle charsets cleanly.
1998-06-20 21:52:49 +00:00
drochner 68aabb6d21 First cut on a VT100 emulation.
It should be able to parse escape sequences up to VT300, but not everything
is implemented. Most notably, there is no font handling - all displayable
characters are handed to the graphics driver. To solve this, a serious
interface change to the graphics driver is needed (Unicode?).
1998-06-20 19:17:47 +00:00