Xref: utzoo alt.msdos.programmer:699 comp.sys.ibm.pc:38289 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uunet!mcsun!sunic!tut!nn86302 From: nn86302@tut.fi (Neuvo Niilo Anselmi) Newsgroups: alt.msdos.programmer,comp.sys.ibm.pc Subject: Re: i/o routines and non-standard video modes Message-ID: <2544@alva.tut.fi> Date: 16 Nov 89 14:49:19 GMT References: <2090@calvin.EE.CORNELL.EDU> <2980@einstein.ptolemy.arc.nasa.gov> <2092@calvin.EE.CORNELL.EDU> Reply-To: nn86302@alva.UUCP (Neuvo Niilo Anselmi) Organization: Tampere University of Technology, Finland Lines: 41 In article <2092@calvin.EE.CORNELL.EDU> richard@calvin.spp.cornell.edu.UUCP (Richard Brittain) writes: > >Well, I hate it when people post replies that are not true, but working from >my manual (like I said, I don't have the hardware to actually test this) >BIOS data area: >0040:004a # characters per line 16 bit int >0040:004c # bytes required for 1 screenful of data - 16 bit int >0040:0084 # rows-1 - 1 byte >0040:0085 # scan lines per character (i.e. height of cell) - 16 bit int >If these are set correctly (The last two only for EGA/VGA/MCGA) then that >should be all you need. >Alternatively: >BIOS INT 10H >function AH=0F Get mode - should return characters/line as well as mode. >Hopefully the 'non-standard' modes also return this correctly >function AX=1130 Get character generator info (EGA/VGA/MCGA) returns #rows-1 >and bytes/character in the 'alternate' font table. > Well I've got the hardware (IBM PS/60, normal colorVGA). After some inetnsive hacking I was able to come up with a 80*50 color mode (with Turbo Pascal 4.0). I set the bios data area, got the correct font, used function AX=1130 to crosscheck that I had done everything correctly, and changed the required VGA ports (not in that order). The screen looked fine and bios *knew* that I used 80*50, but bios won't use the bottom half (ie lines 26-50) of the screen. So here I am with a fifty line screen, but the bios is so stupid that it won't scroll more than 25 lines. If I set the number of chars per line (0040:004a) to 160, bios writes to every other line (as it should) allowing me to write on the bottom half of the screen, but it won't scroll the bottom half. I tested this with bios commands not Turbo's own write commands. Can someone help me with this? I don't want to rewrite the bios. I sort of like the idea of having DOS and 50 lines (now it's 50 lines, but dos uses only the first 25). -- NN NN NN NN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNN N NN N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNN N NN N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNN NN NN NN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN