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);