Xref: utzoo alt.msdos.programmer:864 comp.sys.ibm.pc:39654 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!uunet!zephyr.ens.tek.com!tekcrl!tekgvs!toma From: toma@tekgvs.LABS.TEK.COM (Tom Almy) Newsgroups: alt.msdos.programmer,comp.sys.ibm.pc Subject: Re: i/o routines and non-standard video modes Message-ID: <6493@tekgvs.LABS.TEK.COM> Date: 9 Dec 89 16:25:56 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> <41644@srcsip.UUCP> Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy) Followup-To: alt.msdos.programmer Organization: Tektronix, Inc., Beaverton, OR. Lines: 53 In article <41644@srcsip.UUCP> rogers@src.honeywell.com (Brynn Rogers) writes: >In article <966@maytag.waterloo.edu> dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes: > >>Any program [...] >>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.) But DOS 4.0's MODE ,50 command to set 50 line mode doesn't work unless plain ANSI.SYS (which now works, BTW) is installed! >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. YEP. >40:84 Rows - 1 (probably a leftover EGA BIOS bug that keeps it 1 smaller) THIS ISN'T USED IN CGA/Mono/Herc, causing serious compatibility problems, which is why NNANSI.SYS is EGA/VGA only >40:85 Character Height. The number of pixels vertical in a character cell. ALSO NOT USED IN CGA/Mono/Herc I'd also add to the list: 40:4E Display start address. Programs that assume the value here won't work properly with NNANSI or Fansi-Console >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) Thank you! Since I am the author of the modifications that differentiate it from nansi.sys. Yes it will handle it "right". There are conditional compilation options for a number of different cards. My feeling is that the video BIOSes that leave the 40:49 value at "3" are the ones doing it correctly. That way obviously involves the least "damage". I'd feel differently if there was an industry wide standard for extended mode numbers. The new NNANSI.SYS should appear in comp.binaries.ibm.pc "real soon now" -- I submitted it about a month ago. Tom Almy toma@tekgvs.labs.tek.com Standard Disclaimers Apply