Mail Archives: djgpp/1996/05/09/19:44:00
This one is strange.
I'm learning how to use the svga card on my box. I wrote the
attached program to get the characteristics of the card. This is a
standard VESA 1.2 call (0x00).
I also wanted to see the location of the transfer buffer __tb. I
wanted to compare what I saw after with what was there (using debug)
The strange part is with this line in svga.c :
printf("TB Address %lx %lx\n",__tb, (__tb/16)&0xffff);
If it is commented out, everything seems to work fine with the
following output:
VGAInfoBlock size 256
VESASignature VESA
VESA Version 1.258
VESA Capabilities 0
# of 64k Blocks 8
OEMString Address: 4b860 c0001d11
SEGMENT c000 OFFSET 1d11
Cirrus Logic GD-54xx VGA
VideoModePointer Address: 4b65c 24110014
SEGMENT 2411 OFFSET 14
If I try to use the line I get the following:
TB Address 24110 2411
VGAInfoBlock size 256
VESASignature TB A
VESA Version 100.25700
VESA Capabilities 0
# of 64k Blocks 12596
OEMString Address: 4b860 73736572
SEGMENT 7373 OFFSET 6572
VideoModePointer Address: 4b65c 32203031
SEGMENT 3220 OFFSET 3031
The even stranger part, to me anyway, is that if I send the output to
a file instead of the screen, OR if I send it to con:, the output is
correct.
Any ideas?? I hope it is something I am doing.
TIA
John E. Fortin
fortin44 AT eelab DOT newpaltz DOT edu
- Raw text -