Article View: alt.msdos.programmer
Article #423Re: i/o routines and non-standard video modes
From: Brynn Rogers
Date: Wed, 06 Dec 1989 05:35
Date: Wed, 06 Dec 1989 05:35
56 lines
3297 bytes
3297 bytes
In article <966@maytag.waterloo.edu> dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:
>Any program that changed the screen size without updating the screen size
>bytes in the BIOS data area (40:4A = number of columns, 40:4C = number
>of bytes in the full screen) is buggy and should be thrown out. If DOS
>can't read those values and use them, then it's buggy and should be thrown
>out. (This is the recommended action for ANSI.SYS, by the way. It contains
>the hard coded screen length in earlier versions of DOS. Plain DOS can
>handle a 50 line screen with no trouble.)
>Duncan Murdoch
>P.S. If there are any errors in the information above, then please
>throw it out.
The Bytes relevant to changing screen sizes are: (as far as I know)
40:49 Video mode (notes below)
40:4A number of columns
40:4C first time I heard of this one.
Must be a word giving number of bytes in the screen if Duncan is right.
40:84 Rows - 1 (probably a leftover EGA BIOS bug that keeps it 1 smaller)
40:85 Character Height. The number of pixels vertical in a character cell.
Notes:
Ansi.sys and most of the nansi,fansi,zansi,nnansi drivers expect to see a
3 in 40:49. If they don't, you get flashing underbars at the begining and
end of each line. Most Video BIOSes (some anyway) put the actual video mode
number in 40:49 when you change to an extended text mode (like 640x480 or
800x600). Unless you pump a '3' back into 40:49 after changing to one of
these modes, the various ansi drivers will think you are in graphics mode.
nnansi.sys will soon be able to handle the 40:49 byte right, if what I heard
is right. (I recommend it. It is the best ansi driver I have seen)
I agree that any program that doesn't read those values (especially
rows and columns) or handle arbitrary ones should be thrown out.
I have written a font loader that will load any font into any EGA or better
video board, and it knows about the extended modes that various super VGAs
offer. Right now I am using an 800x600 text mode with a 8x12 character cell.
This gives me 50x100 screens. I am using a font that I adapted from Xwindows.
Fortunatly Kermit, Epsilon and the more program I use (browse.com from
PC magazine) all can handle any size you throw at it.
(I do believe kermit may screw up with more than 60 lines of 100, though).
The program is in the beta testing stage right now, and will be posted to
c.b.i.p. when finished.
Brynn
Brynn Rogers Honeywell S&RC rogers@src.honeywell.com
home 612 874-7737
Technical Details
Message-ID:
<41644@srcsip.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!uwm.edu!srcsip!eagle!rogersReferences:
<2090@calvin.EE.CORNELL.EDU> <2980@einstein.ptolemy.arc.nasa.gov> <2092@calvin.EE.CORNELL.EDU> <2544@alva.tut.fi> <89320 <1494@cc.helsinki.fi> <89338.051609CMH117@PSUVM.BITNET> <966@maytag.waterloo.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!uwm.edu!srcsip!eagle!rogers From: rogers@SRC.Honeywell.COM (Brynn Rogers) Newsgroups: alt.msdos.programmer,comp.sys.ibm.pc Subject: Re: i/o routines and non-standard video modes Message-ID: <41644@srcsip.UUCP> Date: 6 Dec 89 05:35:39 GMT References: <2090@calvin.EE.CORNELL.EDU> <2980@einstein.ptolemy.arc.nasa.gov> <2092@calvin.EE.CORNELL.EDU> <2544@alva.tut.fi> <89320 <1494@cc.helsinki.fi> <89338.051609CMH117@PSUVM.BITNET> <966@maytag.waterloo.edu> Sender: news@src.honeywell.COM Reply-To: rogers@src.honeywell.com (Brynn Rogers) Organization: Honeywell Systems & Research Center Lines: 56