Mail Archives: djgpp/1998/03/23/09:41:55
Message-ID: | <D1FB30BBA491D1118E6D006097BCAE391A0A9D@Probe-nt-2a.Probe.co.uk>
|
From: | Shawn Hargreaves <ShawnH AT Probe DOT co DOT uk>
|
To: | djgpp AT delorie DOT com
|
Subject: | Re: Resolve a bet : Simple hello world sample at 640x480?
|
Date: | Mon, 23 Mar 1998 10:34:33 -0000
|
MIME-Version: | 1.0
|
Nate Eldredge:
> There's nothing magic about Allegro.
No, of course not :-) But in this case you have slightly
oversimplified your code, to the point that it will only
work correctly on some machines!
> void put_char(int ch, int color)
> {
> __dpmi_regs r;
> r.h.ah = 0x0e;
> r.h.al = ch;
> r.h.bh = 0;
> r.h.bl = color;
> __dpmi_int(0x10, &r);
> }
VESA doesn't require the BIOS character output functions to be
supported in SVGA modes, and this call will fail on a significant
number of machines. This can be determined by checking bit 2 of
the ModeAttributes flag, but that means you have to examine the
mode information structure (using a conventional memory buffer),
and then have some alternative method for drawing the message
(which means providing a font of your own, or routines to get
a copy of the BIOS one).
Of course this is all perfectly doable, but it requires quite
a bit of code to make it work correctly. My understanding from
the original post was that the bet is whether this can be done
just a screen or so of code, and for that I think the answer
must be no...
Shawn Hargreaves.
- Raw text -