Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!sdd.hp.com!col.hp.com!csn!copper!aspen.craycos.com!scott From: scott@craycos.com (Scott Bolte) Newsgroups: comp.os.386bsd.bugs Subject: Re: Problem with pk 0.2.4 with a "mono VGA" monitor Summary: needs new termcap entry for monchrome Keywords: mono VGA termcap Message-ID: <1993Jul24.024908.27448@craycos.com> Date: 24 Jul 93 02:49:08 GMT References: <CAIIK8.n4v@sugar.NeoSoft.COM> Organization: Cray Computer Corporation Lines: 66 I spent an embarrassing long time working on the white on white standout mode problem. There was a hint a week and a half ago that changing DEF_SO_M_AT in codvr/co_hdr.h would address a similar (or identical) problem. It was only after that approached failed to produce any results that I started to think. On looking at the code it became clear that DEF_SO_M_AT was a dead end. It is not used at all in the related code. In codvr/co_pc3.c there is a case statement for terminal escape codes. The standout mode in the new pc3 termcap entry sets "vp->so_at" using parameters from the escape sequence, not from a constant. The stock termcap entry ended up setting "vp->so_at" to 0x17. I did not dig further to see how 0x17 would be used. Or what it means. (Beyond white on white of course :-) But I did find a more reasonable setting (0x10) given a monochrome monitor. Working backwards I came up with the sequence found in the termcap entry below. pc3mono|IBM PC 386BSD Console with monochrome monitor:\ :so=\E[0;1r\E[1m:tc=pc3: Scott P.S. Here is a perl script that will show different highlight modes on a monochrome monitor. #!/usr/bin/perl $seqs{'restore'} = "\033[m"; $seqs{' black on light'} = "\033[0;1r\033[1m"; $seqs{' light on black'} = "\033[0;0r\033[0m"; $seqs{'blinking black on light'} = "\033[0;9r\033[1m"; $seqs{' underline light on black'} = "\033[1;0r\033[1m"; $seqs{' light on light'} = "\033[1;7r\033[1m"; $seqs{'blinking underline light on black'} = "\033[1;8r\033[1m"; $seqs{' light on black'} = "\033[2;0r\033[0m"; $seqs{' underline bright on black'} = "\033[9;0r\033[1m"; $seqs{' bright on light'} = "\033[9;7r\033[1m"; $seqs{'blinking underline bright on black'} = "\033[9;8r\033[1m"; $seqs{'blinking bright on light'} = "\033[9;9r\033[1m"; $seqs{' bright on black'} = "\033[10;0r\033[2m"; $seqs{'blinking bright on black'} = "\033[10;8r\033[2m"; $seqs{'termcap defined standout mode '} = "\033[7;1r\033[7m"; foreach $key (sort(keys(%seqs))) { next if $key eq 'restore'; $s = $seqs{$key}; $_ = $s; $pos1 = 511; $pos2 = 511; $pos3 = 511; ($pos1, $pos2, $pos3) = /.\[(\d+);(\d+)r.\[(\d+)m/; printf("%-40s ${s}this is a test$seqs{'restore'} %03o %03o %03o.\n", $key, $pos1, $pos2, $pos3); } exit(0); -- ___________________________________________________________________________ Scott Bolte scott@craycos.com +1 719 540 4186 Cray Computer Corporation, 1110 Bayfield Drive, Colorado Springs, CO 80906 As anyone here will tell you: I speak for myself.