Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2001 00:30:33 -0700
From:      John Merryweather Cooper <jmcoopr@webmail.bmi.net>
To:        Charles Burns <burnscharlesn@hotmail.com>
Cc:        freebsd-questions@FreeBSD.org
Subject:   Re: Win98+Linux+FreeBSD?
Message-ID:  <3AE7CE99.8BB27D15@webmail.bmi.net>
References:  <F2637ZZoudFwpsHgu1B0000a99c@hotmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Charles Burns wrote:
> 
> > > The commercial product "System Commander" allows a system to use an
> > > unreasonably large number of OS's by pulling some evil tricks. It works
> > > well, too.
> > > Unfortunately it REQUIRES a FAT or FAT32 drive to run off of.
> > > The guys that made it are good--They make ASM debugging tools and have
> > > created a custom font in BIOS for the program to make it look snazzy yet
> > > still be in text mode. (If anyone knows how to do this let me know)
> > >
> >Actually, it's very simple.  All video adapters since EGA (those
> >claiming at least marginal VGA compatibility) have a software character
> >generator.  All the BIOS does is supply the masters which are loaded up
> >into memory.  There's an INT 10 interface to do this.  The hard part is
> >actually mastering (re:  designing the font) so it looks good.  A long
> >time ago, in a place far, far away I wrote a CRT unit for Quick Pascal
> >that supported 80x50 mode on a Tandy 2000 (which has a different, but
> >functionally similar character generator to a VGA-compatible adapter).
> >I supplied my own custom 8x8 font and loaded it up to the character
> >generator.  It's probably still rattling around in what's left of
> >CompuServe . . . :)
> 
> Would you know of a place where I could get info on this? I was thinking of
> making a text-mode MPEG player that generates its own font once per frame to
> make the picture look less terrible than, say, an ASCII movie player if such
> a beast existed. (Am I a masochist or what?)
> The only ASM docs that I have are from Microsoft QuickC, back when Microsoft
> knew how to make useful documentation (read: not MSDN)
> I guess i'll need to write a completely different one for FreeBSD (being
> protected mode and all), but I am sure docs for doing so won't be anywhere
> near as much of a PITA to come across. Thanks!

Actually, you're in for more pain than you know.  In protected mode,
video adapter programming divides itself up into the following
categories:  non-VESA compliant, VESA 1.2 compliant, VESA 2.0 compliant,
VESA 3.0 compliant.  Of these, only VESA 3.0 has a very complete
protected mode interface.  Upwards of 95% of the cards your program is
likely to run on are going to be VESA 1.2 or VESA 2.0.  non-VESA and
VESA 1.2 have real-mode only interfaces--so you'll need a complete
context switcher, a mini-DOS emulator to make the INT 10 calls, and
plenty of hacks for the weird cases.  VESA 2.0 has a protected mode
interface, but you usually need to be in real mode, call a special INT
10 call to get an entry point, and then switch back to protected mode. 
But it can be done . . .  You'll need the VESA 1.2 and 2.0 docs from
VESA (they cost).  It was possible to download the VESA 3.0 standard for
free from there site about two years ago--don't know if that's still the
case.  And you'll need the technical docs for each and every "weird"
adapter you're willing to support--(you'll find that there are more of
those than you think . . .  :)  )

You might find it easier to just punt, go into a graphics mode, cobble
up your own character generator, and roll-your-own characters, etc.

Regardless, in real mode, the INT 10 all you're interested is 0x11,
subfunctions 0x00 and 0x10.  It stores the character table you provide
in a memory locationg that turns out to be pointed to by the address of
the INT 43 entry in the DOS interrupt table.

For more ideas, you might want to take a look at:  1) the source code
for the X video system (does alot of what I described above); and 2) the
MGL 5.0 Beta 2 code at ftp.scitechsoft.com.  If you install perforce,
you can set up to get updates (MGL is being actively developed--mostly
in OS/2 and Win32 right now because that's where the money is--but with
plans to do work on Linux (first) and FreeBSD and some others later.

jmc
> 
> _________________________________________________________________
> Get your FREE download of MSN Explorer at http://explorer.msn.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AE7CE99.8BB27D15>