Return to BSD News archive
Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!usenet.ins.cwru.edu!news.uakron.edu!news.csuohio.edu!stever
From: stever@csuohio.edu (Steve Ratliff)
Subject: Re: Hacking boot block assm for 50 display lines. (netbsd)
Message-ID: <1993Dec29.221502.612@news.csuohio.edu>
Sender: news@news.csuohio.edu (USENET News System)
Organization: Cleveland State University
X-Newsreader: Tin 1.1 PL5
References: <CIoD8p.4Fp@cnsnews.Colorado.EDU>
Date: Wed, 29 Dec 1993 22:15:02 GMT
Lines: 54
[deleted]
: I'm trying to do two things upon boot.
: 1. Set the display to 50 lines or what is known as "Extended VGA mode 80x50"
: 2. set the repeat rate as high as it'll go (32 chars a sec I believe)
[deleted]
The fairly recently posted (four or five weeks) Syscons (
(ver. 1.2 ) supports 50 line VGA and has a user level util also named
syscons that allows changing back and forth between 25 and 50 lines and
also changing the repeat rate to slow | medium | fast |(user supplied).
It also allows up to 12 virtual consoles and came with patches for use
with NetBSD.
If you do not want to switch to a different console driver, I
believe that you will find it easier to make your changes by hacking
them into the existing console driver pccons.c instead of doing it
through the bootblocks. I have included a relevant code fragment that
was hacked/slashed and otherwise munged out of syscons.c. It is taken
out of context and has been slightly modified and many non-contiguous
lines have been deleted. Use it for reference only, see original source
for details, UAYOR, no money back ;).
/* From isa.h
#define IO_VGA 0x3C0
E/VGA Ports */
/* misc defines */
#define TEXT80x25 1
#define TEXT80x50 2
/* defines related to hardware addresses */
#define COLOR_BASE 0x3D4 /* crt controller base color */
#define TSIDX IO_VGA+0x04 /* timing sequencer idx */
#define TSREG IO_VGA+0x05 /* timing sequencer data */
static u_int crtc_addr = COLOR_BASE;
static u_char byte;
/* setup video hardware for the given mode */
s = splhigh();
switch(scp->mode) {
case TEXT80x25:
outb(crtc_addr, 9); byte = inb(crtc_addr+1);
outb(crtc_addr, 9); outb(crtc_addr+1, byte | 0x0F);
outb(TSIDX, 0x03); outb(TSREG, 0x00); /* select font 0 */
break;
case TEXT80x50:
outb(crtc_addr, 9); byte = inb(crtc_addr+1);
outb(crtc_addr, 9); outb(crtc_addr+1, (byte & 0xF0) | 0x07);
outb(TSIDX, 0x03); outb(TSREG, 0x05); /* select font 1 */
break;
default:
break;
}
splx(s);