Hi all,

TL;DR: is there a modern open source equivalent of SVGATextMode that works
on FreeDOS, supports recent graphics cards and PC emulators, and is not
limited to the few (if any) text modes provided by a typical VESA BIOS?

For context: x86 emulators (QEMU, DOSBox, Bochs...) happily allow high-res
text modes with as many columns/lines as you want.

The closest thing that I'm aware of is an old port of SVGATextMode to DOS,
but that's not targeted to emulators and modern cards (nearly all code is
from the 90's) and it cannot generate arbitrary modes on the fly:
https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/user/svgatextmode/

There are also utilities like FreeDOS "mode.com" or a closed-source
tm.com/tm.exe tool but they are limited to a max of 90 columns or require
VESA BIOS support for each mode.

What I want instead is allowing users to just set any number of
columns/lines they need. E.g. in emulators manipulating VGA registers to
set 160 columns by 50 lines using a normal 9x16 VGA font works great. Its
aspect ratio is close to 16:9 when using square pixels and having 160
columns allows editing two files side by side. Note that this is a real
text mode, not text output in a graphics mode.

Once the 160x50 mode is set lots of stuff "just works": it's supported by
the BIOS int 10h output routines (at least in whatever BIOS comes with
emulators), by FreeDOS int 21h text output and by a bunch of programs that
come in the FreeDOS distribution. E.g. "edit", nansi.sys, the "vi" editor
in Open Watcom and most CLI programs work fine.

On the other end of the spectrum, lower-resolution modes can be useful when
running FreeDOS on very small screens, e.g. 60 columns as a compromise on a
phone. Custom text modes with lots of lines can be great for screens
rotated by 90 degrees, in portrait mode; e.g. 80 columns by 64 lines with a
9x16 font is taller than it is wide: having so many lines is useful when
editing code, looking at compiler errors or writing long texts with
WordPerfect.

Despite some limitations the nice thing about setting high-res text modes
using only generic VGA registers (as opposed to card-specific SuperVGA) is
that the same code works ~everywhere and doesn't need a VBE BIOS; the
downside is that the VGA pixel clock frequency is too low for high
resolution, so traditional graphics cards and CRT screens will not work
correctly, but emulators and some laptop graphics cards seem fine.

I'm considering adding support for these modes to FreeDOS mode.com but
before I propose a patch I wanted to check if there's something similar and
open source out there.
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to