Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jun 1998 19:51:23 +0200 (CEST)
From:      hm@kts.org
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   i386/7100: pcvt: better integration into FreeBSD
Message-ID:  <m0yqLbn-000020C@bert.kts.org>

next in thread | raw e-mail | index | archive | help

>Number:         7100
>Category:       i386
>Synopsis:       integrate pcvt configuration into the /etc/rc.XXX FreeBSD startup system
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 28 11:10:00 PDT 1998
>Last-Modified:
>Originator:     Hellmuth Michaelis
>Organization:
Kitchen Table Systems
>Release:        FreeBSD 2.2.6-RELEASE i386
>Environment:

	In the kernel config(8) file, disable

		device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr

	and enable

		device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint

>Description:

	In case pcvt is configured instead of syscons, the syscons-specific
	section in rc.conf and rc.i386 no longer applies and no replacement
	is currently available to set the necessary options for the pcvt
	console driver.

>How-To-Repeat:

	Configure a kernel with pcvt enabled instead of syscons.

>Fix:

	What follows is three enhancments to files /etc/rc.conf, /etc/rc.i386
	and the rc.conf manual page rc.conf.5 to integrate pcvt support into
	the standard FreeBSD startup procedure:

	1. addon to /etc/rc.conf
	------------------------

	##############################################################
	###  pcvt console options (VT100/VT220 emulation) ############
	##############################################################
	
	pcvt_keymap="NO"	# keyboard map in /usr/share/misc/keycap.pcvt (or NO).
	pcvt_keydel="NO"	# key repeat delay, 0-3 (250,500,750,1000 msec) (or NO).
	pcvt_keyrate="NO"	# keyboard repetition rate 31-0 (2-30 char/sec) (or NO).
	pcvt_keyrepeat="NO"	# keyboard repeat ON or OFF (or NO).
	pcvt_force24="NO"	# force a 24 line display (when 25 possible) (or NO).
	pcvt_hpext="NO"		# use HP extensions (function keys labels) (or NO).
	pcvt_lines="NO"		# lines (25, 28, 40, 50 or NO).
	pcvt_blanktime="NO"	# blank time (in seconds) (or NO).
	pcvt_cursorh="NO"	# cursor top scanline (topmost line is 0) (or NO).
	pcvt_cursorl="NO"	# cursor low scanline (bottom line is 16) (or NO).
	pcvt_monohigh="NO"	# set intensity to high on monochrome monitors (or NO).
	
	
	2. addon to /etc/rc.i386
	------------------------

	##########################################################################
	####### pcvt VT100/VT220 terminal emulator section                ########
	##########################################################################
	
	# path for pcvt's EGA/VGA download fonts
	FONTP=/usr/share/misc/pcvtfonts
	
	# check for correct driver and driver version matching
	
	if ispcvt -d /dev/ttyv0 ; then
		echo "rc.i386 configuring pcvt:"
	
	# get video adaptor type 
	
		adaptor=`scon -d /dev/ttyv0 -a`
		echo "	video adaptor type is $adaptor"	
	
	# load fonts into vga
	
		if [ $adaptor = VGA ] ; then
			echo -n '	loading fonts: 8x16:0,'
			loadfont -d /dev/ttyv0 -c0 -f $FONTP/vt220l.816
			echo -n '1 '
			loadfont -d /dev/ttyv0 -c1 -f $FONTP/vt220h.816
			echo -n ' 8x14:0,'
			loadfont -d /dev/ttyv0 -c2 -f $FONTP/vt220l.814
			echo -n '1 '
			loadfont -d /dev/ttyv0 -c3 -f $FONTP/vt220h.814
			echo -n ' 8x10:0,'
			loadfont -d /dev/ttyv0 -c4 -f $FONTP/vt220l.810
			echo -n '1 '
			loadfont -d /dev/ttyv0 -c5 -f $FONTP/vt220h.810
			echo -n ' 8x8:0,'
			loadfont -d /dev/ttyv0 -c6 -f $FONTP/vt220l.808
			echo '1 '
			loadfont -d /dev/ttyv0 -c7 -f $FONTP/vt220h.808
	
	# setting screen sizes
	
			if [ "X${pcvt_lines}" = X"28" ]; then
				size=-s28
				echo '	switching to 28 lines'
			elif [ "X${pcvt_lines}" = X"40" ]; then
				size=-s40
				echo '	switching to 40 lines'
			elif [ "X${pcvt_lines}" = X"50" ]; then
				size=-s50
				echo '	switching to 50 lines'
			else
				size=-s25
				echo '	switching to 25 lines'
			fi
		fi
	
	# get monitor type (mono/color)
	
		monitor=`scon -d /dev/ttyv0 -m`
		echo "	monitor type is $monitor"
	
	# use HP extensions to VT220 emulation ?
			
		if [ "X${pcvt_hpext}" != X"NO" ] ; then
			emulation=-H
			echo "	setting emulation to VT220"
		else
			emulation=-V
			echo "	setting emulation to VT220 with HP extensions"
		fi
	
	# for all screens do
	
		for device in /dev/ttyv*
		do
			scon -d$device $size $emulation
	
			if [ X${pcvt_cursorh} != X"NO" -a X${pcvt_cursorl} != X"NO" ] ; then
				cursor -d$device -s$pcvt_cursorh -e$pcvt_cursorl
			fi
	
	# if monochrome monitor, set color palette to use a higher intensity
	
			if [ X${pcvt_monohigh} != X"NO" -a $monitor = MONO -a $adaptor = VGA ] ; then
				scon -d$device -p8,60,60,60
			fi
		done
	
	# switch to screen 0
	
		echo "	switching to screen 0"
		scon -d /dev/ttyv0
	
	# set screensaver timeout
	
		if [ "X${pcvt_blanktime}" != X"NO" ]; then
			echo "	setting screensaver timeout to $pcvt_blanktime seconds"
			scon -d /dev/ttyv0 -t$pcvt_blanktime
		fi
	
	# setup keyboard for national keyboard layout
	
		if [ "X${pcvt_keymap}" != X"NO" ]; then
			echo "	switching national keyboard layout to $pcvt_keymap"
			kcon -m $pcvt_keymap
		fi
	
	# setup keyboard repeat delay value
	
		if [ "X${pcvt_keydel}" != X"NO" ]; then
			echo "	setting keyboard delay to $pcvt_keydel"
			kcon -d$pcvt_keydel
		fi
	
	# setup keyboard repeat rate value
	
		if [ "X${pcvt_keyrate}" != X"NO" ]; then
			echo "	setting keyboard repeat rate to $pcvt_keyrate"
			kcon -r$pcvt_keyrate
		fi
	
		echo "rc.i386 configuring pcvt finished."
	fi
	

	3. addon to manual page rc.conf.5
	---------------------------------

	.It Ar pcvt_keymap
	(str) If set to
	.Ar NO
	then no national keyboard map is installed, otherwise the value is used 
	to install the keyboard map from 
	.Pa /usr/share/misc/keycap.pcvt
	This file is a simple termcap-like keymap description file, for a description
	see
	.Xr keycap 5
	and
	.Xr keycap 3 .
	.It Ar pcvt_keydel
	(int) The keyboard repeat delay.  Set to
	.Bl -tag -width 123 -compact -offset
	.It Ar 0
	for 250 ms delay
	.It Ar 1
	for 500 ms delay
	.It Ar 2
	for 750 ms delay
	.It Ar 3
	for 1000 ms delay or
	.It Ar NO
	for the default behaviour. See also
	.Xr kcon 1 .
	.El
	.It Ar pcvt_keyrate
	(int) The keyboard repetition rate. It may be set to values from 0 to 31
	corresponding to rates of 30 charcters per second to 2 characters per second
	or to
	.Ar NO
	if the default behavior is desired. See also
	.Xr kcon 1 .
	.It Ar pcvt_keyrepeat
	(bool) If set to
	.Ar OFF ,
	keyboard key repeat will be disabled, setting it to
	.Ar ON
	will enable keyboard key repeat.
	.Ar NO
	gives the default behaviour. See also
	.Xr kcon 1 .
	.It Ar pcvt_force24
	(bool) If set to any other value than
	.Ar NO
	will force a 24 line display in case a 25 lines display is selected. This
	will resolve some problems with applications depending on the real VT100/VT220
	screen size of 24 lines. See also
	.Xr scon 1 .
	.It Ar pcvt_hpext
	(bool) If this is not set to
	.Ar NO ,
	the Hewlett-Packard Function Key Label emulation extension will be enabled. 
	Eight programmable Function Key Labels will be displayed which are
	available in the HP239x and HP7009x terminals in VT100/VT220 emulation mode.
	See also
	.Xr scon 1 .
	.It Ar pcvt_lines
	(int) Sets the number of lines on display. The available values for VGA
	adaptors are
	.Ar 25 ,
	.Ar 28 ,
	.Ar 40 
	and
	.Ar 50 .
	Setting this to
	.Ar NO
	gives 25 lines. See also
	.Xr scon 1 .
	.It Ar pcvt_blanktime
	(int) If set to
	.Ar NO
	then the default screensave blanking timeout is used, otherwise it is set
	to 
	.Ar value 
	seconds. See also 
	.Xr scon 1 .
	.It Ar pcvt_cursorh
	(int) If not set to
	.Ar NO ,
	it sets the top scanline on which the cursor starts. Scanlines are numbered
	from top (value 0) to bottom (value 16 for 16 scanline fonts on 80x25 display).
	See also
	.Xr cursor 1 .
	.It Ar pcvt_cursorl
	(int) If not set to
	.Ar NO ,
	it sets the bottom scanline on which the cursor ends.
	.It Ar pcvt_monohigh
	(bool) If not set to
	.Ar NO ,
	on monochrome VGA displays the intensity is set to high. See also
	.Xr scon 1 .
	
	

>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0yqLbn-000020C>