[comp.sys.ibm.pc] i/o routines and non-standard v

mcdonald@uxe.cso.uiuc.edu (11/18/89)

>The problem is that while Turbo's own screen package will take advantage of
>whatever size screen you are using, DOS (not necessarily BIOS) is hard-coded
>to work with only the first 25 lines of the screen.  The problem here is that
>to do anything else, DOS would have to automagically sense the current screen
>size, which, since it uses BIOS calls, would tremendously slow down screen
>I/O.  OS/2 can solve this problem easily, because it *always* knows what size
>the screen is.

Why then, pray tell, if I execute the following program:


cseg	segment para public 'code'
	org	100h
SETMOD	proc far
	assume cs:cseg,ds:cseg	
        mov     ax,3
        int     16
        mov     ah, 17
        mov     al, 18
        mov     bl, 0
        int     16
        mov     ah, 18
        mov     al, 0
        mov     bl, 32
        int     16
        mov     ah, 1
        mov     cx, 0407h
        int     16
	int	020h
SETMOD	endp
cseg	ends
end	SETMOD

does DOS then use 50 lines? If I do a "dir" I get 50 lines. IF I
do a print screen, it prints all 50 lines. If I execute WordPerfect 
v5 it uses 50 lines. IF I use a broken program that expects 25
lines only, when I get out of it, DOS gets back to work in 50 lines
properly?

This is DOS 3.3 on a Model 80 or a Dell 310.

Are you perhaps saying that command.com does not use DOS calls?
Doug McDonald

toma@tekgvs.LABS.TEK.COM (Tom Almy) (11/22/89)

In article <110200032@uxe.cso.uiuc.edu> mcdonald@uxe.cso.uiuc.edu writes:
>
>>The problem is that while Turbo's own screen package will take advantage of
>>whatever size screen you are using, DOS (not necessarily BIOS) is hard-coded
>>to work with only the first 25 lines of the screen.  The problem here is that
>>to do anything else, DOS would have to automagically sense the current screen
>>size [...]

[sample program that puts VGA display in 50 line mode]

>does DOS then use 50 lines? If I do a "dir" I get 50 lines. IF I
>do a print screen, it prints all 50 lines. [...]

DOS handles the extra screen size just fine since it has the BIOS do it.
On the other hand ANSI.SYS, which comes with DOS, prior to DOS 4.0 would
not handle these extended modes. I'm not sure (haven't tested) if ANSI.SYS
will handle 132 column modes even with DOS 4.0.

"Automagically sensing screen size" is real easy since the number of
columns is in a known RAM location, and the number of rows for all but
CGA and Monochrome is in another known RAM location.

Tom Almy
toma@tekgvs.labs.tek.com
Standard Disclaimers Apply