Assembler insert strange instructions [At end of topic new question VESA BIOS]

Started by kyoto008, December 13, 2013, 09:34:32 PM

Previous topic - Next topic

nidud


dedndave

VESA Super VGA Informatione Block

Sinature        VESA
Version         3.0
Total Memmory   -16384 kb
OEM - String    Intel(r)915G/915GV/910GL Graphics Chip Accelerated VGA BIOS
Capabilities    01 00 00 00

Supported Super VGA modes

316 (013C)      333 (014D)      348 (015C)      314 (013A)      331 (014B)
346 (015A)      263 (0107)      282 (011A)      283 (011B)      261 (0105)
279 (0117)      280 (0118)      274 (0112)      276 (0114)      277 (0115)
257 (0101)      259 (0103)      273 (0111)


i have negative memory - you don't know how accurate that is - lol

FORTRANS

Hi,

   Since Dave pointed out a faux pas, I redid the VESA Flat Panel
Extensions program to pause before exiting.  Very lightly tested.

   Also added a pause to my basic VESA information program.
Main idea was to display as much information as possible without
scrolling off the CGA mode 3 test display.


VESA version number  2.0  OEM String:  Matrox Graphics Inc.
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 1
Number of 64kb memory blocks on board 512

Supported VESA video modes.
0100 0101 0102 0103 0110 0111 0112 0113 0114 0115 010A

Information for VESA video mode 0100
Mode attributes         009B               LFBWnVGAGr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer C000:7153
Bytes per scan line     640
APA Resolution          640 x 400  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  63
Paused, hit a key to exit.


Enjoy,

Steve N.

Gunther

Steve,

Quote from: FORTRANS on January 06, 2014, 12:40:42 AM
   Also added a pause to my basic VESA information program.
Main idea was to display as much information as possible without
scrolling off the CGA mode 3 test display.

But why not split the information into 2 screens?

Gunther
You have to know the facts before you can distort them.

dedndave

i don't think my version supports the 4F11h function
even though it reports Vesa version 3, the returned values are all 0's   :(

but, let me try your new programs to see what happens

dedndave

ok - VesaInf works - but the last pause does not for some reason
still, i was able to make it work by running it from the command prompt, then using Alt-Enter to exit full-screen
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

VESA version number  3.0  OEM String:  Intel(r)915G/915GV/910GL Graphics Chip Accelerated VGA BIOS
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 1
Number of 64kb memory blocks on board 3840

Supported VESA video modes.
013C 014D 015C 013A 014B 015A 0107 011A 011B 0105 0117 0118
0112 0114 0115 0101 0103 0111

Information for VESA video mode 013C
Mode attributes         009B               LFBWnVGAGr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer C000:55AE
Bytes per scan line     1920
APA Resolution          1920 x 1440  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  90
Paused, hit a key to exit.                                          (no key was pressed)


it says i have 1 bank at 0 KB   :P

FORTRANS

Quote from: Gunther on January 06, 2014, 03:32:08 AM
Steve,

Quote from: FORTRANS on January 06, 2014, 12:40:42 AM
   Also added a pause to my basic VESA information program.
Main idea was to display as much information as possible without
scrolling off the CGA mode 3 test display.

But why not split the information into 2 screens?

Hi Gunther,

   Well, then you need to change from one screen to the other.
So if it all fit into one screen, it would be easier and perhaps
more usable.

Regards,

Steve N.

dedndave

for VbeFp, all pauses do work
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Dave\Desktop\FortransVBEFP2 => vbefp
VESA BIOS Extension/Flat Panel Interface (VBE/FP) Function Test Program.
Paused, hit a key.
VESA BIOS Extension/Flat Panel Interface Function 0 is not supported.
Paused, hit a key to exit.
C:\DOCUME~1\Dave\Desktop\FORTRA~1 =>

FORTRANS

Quote from: dedndave on January 06, 2014, 03:44:36 AM
i don't think my version supports the 4F11h function
even though it reports Vesa version 3, the returned values are all 0's   :(

but, let me try your new programs to see what happens

Hi Dave,

   Of all the computers I have tried, only laptops support 4F11H
VESA function calls.  Of course, a display manufacturer could make
a TSR to support their displays.  But the idea seems that they want
to "play" around with the hardware settings, and unless you build
the display into your computer, you can't know how to change
anything.

Regards,

Steve N.

FORTRANS

Quote from: dedndave on January 06, 2014, 03:50:46 AM
ok - VesaInf works - but the last pause does not for some reason
still, i was able to make it work by running it from the command prompt, then using Alt-Enter to exit full-screen

   Rats, will fix it.  Until then run it inside a BATch file.


@ECHO OFF
VESAINF %1
PAUSE


Quoteit says i have 1 bank at 0 KB   :P

   Yeah, so does mine with Windows 2000.  Looks like something
else to fix.  Oops.  Thanks for pointing that out.

Regards,

Steve N.

FORTRANS

Hi,

   Here is a (hopefully) fixed VESAINF.

   Bank size (and number of banks) is weird.

Quote
The BankSize field specifies the size of a bank (group of scan
lines) in units of 1 KB. For CGA and Hercules graphics modes
this is 8, as each bank is 8192 bytes in length. For modes that
do not have scanline banks (such as VGA modes 0Dh-13h), this
field should be set to 0.

   So, if I take Gunther's advice, and rewrite it to display more
information, I will delete reporting that information if BankSize
is zero.  And since I now have the pause in the program, I
probably don't have an excuse not to do it.

Regards,

Steve N.

Edit Updated ZIP.

dedndave

another approach might be to...
if the number of banks is non-zero and the bank size is 0,
calculate the correct number of KB, based on the other parameters

(essentially what we might do in a program)

dedndave

now, no pause at all - lol
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Dave\Desktop\FortransVESAINF\VESAINFupdated => vesainf

VESA version number  3.0  OEM String:  Intel(r)915G/915GV/910GL Graphics Chip A
ccelerated VGA BIOS
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 1
Number of 64kb memory blocks on board 3840

Supported VESA video modes.
013C 014D 015C 013A 014B 015A 0107 011A 011B 0105 0117 0118
0112 0114 0115 0101 0103 0111

Information for VESA video mode 013C
Mode attributes         009B               LFBWnVGAGr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer C000:55AE
Bytes per scan line     1920
APA Resolution          1920 x 1440  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  90
C:\DOCUME~1\Dave\Desktop\FORTRA~2\VESAIN~1 =>

Gunther

Steve,

I've tested the program. Works fine, here are the results:

DosBox

VESA version number  2.0  OEM String:  S3 Incorporated. Trio64
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 0
Number of 64kb memory blocks on board 32

Supported VESA video modes.
0100 0101 0102 0103 0104 0105 0106 0107 010D 010E 010F 0110
0111 0112 0113 0114 0115 0116 0117 0150 0151 0152 0153 0160
0161 0162 0165 0170 0171 0172 0175 0190 0191 0192 0207 0209
020A 0213 0222 0223 0224 0225

Information for VESA video mode 0100
Mode attributes         009B               LFBWnVGAGr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer F000:1320
Bytes per scan line     640
APA Resolution          640 x 400  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  7


VirtualBox

VESA version number  2.0  OEM String:  VirtualBox VESA BIOS
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 1
Number of 64kb memory blocks on board 144

Supported VESA video modes.
0100 0101 0102 0103 0104 0105 0106 0107 010D 010E 010F 0110
0111 0112 0113 0114 0115 0116 0117 0118 0119 011A 011B 0140
0141 0142 0143 0144 0145 0146 0147 0148 0149 014A 014B 014C


Information for VESA video mode 0100
Mode attributes         009B               LFBWnVGAGr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer C000:0605
Bytes per scan line     640
APA Resolution          640 x 400  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  35


Native DOS 7

VESA version number  3.0  OEM String:  AMD ATOMBIOS
Capabilities of the video environment;
0 = DAC is fixed width, 1 = DAC width is switchable. 1
Number of 64kb memory blocks on board 256

Supported VESA video modes.
0100 0101 0103 0105 0107 0110 0111 0113 0114 0116 0117 0119
011A 010D 010E 0120 0193 0195 0196 01B3 01B5 01B6 01C3 01C5
01C6 0133 0135 0136 0153 0155 0156 0163 0165 0166 0121 0122
0123 0124 0143 0145 0146 0173 0175 0176 0183 0185 0186 01D3
01D5 01D6 01E3 01E5 01E6

Information for VESA video mode 0100
Mode attributes         00BB               LFBWn-  Gr Co    1 Hw
  Window A attributes    07        Window B attributes     00
Window granularity      64 KB     Window size             64 KB
  Window A start segment A000      Window B start segment  0000
Window function pointer C000:5317
Bytes per scan line     640
APA Resolution          640 x 400  Character Cell   8 x 16
Number of planes        1         Bits per pixel   8
Memory model type       4 Packed pixel
Number of banks         1         Bank size 0 KB
Additional image pages  63


It's always the same machine but other environments.

Gunther
You have to know the facts before you can distort them.

FORTRANS

Hi,

   Sigh. Updated in Reply #55.

   @Gunther

   Interesting that the virtual environments are not the same
as the native one.  Are there noticeable speed differences as
well?

Regards,

Steve