[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: U2 update



Reply to note from "Wengier W"  (Redacted
sender "wengierwu" for DMARC) Sun, 23 Oct 2016 23:56:36 +0000 (UTC)

> It will be much easier to figure out out what VPT is trying to do
> if its source code is available. As I am very busy today, I might
> be able to look at it at a later time.

No pressure at all about this, Wengier! Low priority, for sure.

I've searched, and I don't think the VPT source code is available. Here
is the technical discussion from the manual (VPT.MAN):

-- Quote --
* GENERAL

VPT works by making BIOS calls that manipulate the DAC (digital
to analog converter) color registers; each register (there are
256, to allow for the 300x200x256 mode) contains 18 bits, 6 each
for Red, Green, and Blue. Each RGB value can go from 0 to 63,
all the combinations makes for 262,144 possible colors. You can
show up to sixteen of these at a time in the text modes, each of
the sixteen "attributes" can be any color (or all the same color)
out of the quarter-million.

* MODE SETS

Normally BIOS resets the EGA and DAC color registers whenever a
mode set is done. VPT makes its colors stick across a mode
change by using the "Default Palette Loading During Mode Set"
BIOS call to disable this action. If, for some reason, you
desire to return this to its default, boot-up condition, use VPT
/X. Then a subsequent mode change, like MODE CO80, will cause
the default conditions to prevail.

* REGISTERS, REGISTERS EVERYWHERE

The DAC color registers are mapped through the EGA palette
registers, so, for instance, the attribute "Brown" (6) maps to
the color $14 on an EGA (out of its 64 possible colors); on the
VGA, DAC color register $14 contains $2A,$15,$00 for the R, G,
and B values (these are all default values).

In order to not to be foiled by EGA-aware programs, VPT resets
the EGA palette registers to their default values each time it is
run. If a program remaps the EGA registers, and then counts on a
mode set to return them to normal when it exits, the registers
will* stay* remapped because of the disabling of the "palette
load on mode set". Simply type VPT /C (for instance) and it will
remap the EGA registers to their default values.

Note that EGA-aware programs will still use their own colors
while the program is running, VPT doesn't prevent that.
-- Unquote --

--
Carl Distefano
cld@xxxxxxxx