Page 1 of 1

Problems on VBE

Posted: Fri Aug 09, 2024 1:02 am
by wishedtobe
CRTC information block is defined below:
00h WORD total number of pixels horizontally
02h WORD horizontal sync start (in pixels)
04h WORD horizontal sync end (in pixels)
06h WORD total number of scan lines
08h WORD vertical sync start (in scan lines)
0Ah WORD vertical sync end (in scan lines)
0Ch BYTE flags
0Dh DWORD pixel clock, in Hz
11h WORD refresh rate, in 0.01 Hz units
13h 40 BYTEs reserved
Is Horizontal_total always Horizontal_end-Horizontal_start? How does it work? I was trying to get the refresh rate by invoking ax=0x4f0b, then I got ax=0x14f(the VBE version number on my PC is 0x300). Is it possible that it supports all Vesa defined functionalities? I think I should seek answers from EDID.

Re: Problems on VBE

Posted: Fri Aug 09, 2024 6:49 pm
by Octocontrabass
wishedtobe wrote: Fri Aug 09, 2024 1:02 amIs Horizontal_total always Horizontal_end-Horizontal_start?
No.
wishedtobe wrote: Fri Aug 09, 2024 1:02 amHow does it work?
HorizontalTotal is the total amount of time it takes to display each line on the screen, including the non-display time between lines, measured in pixels. HorizontalSyncStart is the pixel at which the horizontal sync signal is asserted. HorizontalSyncEnd is the pixel at which the horizontal sync signal is negated. HorizontalSyncStart should be close to HorizontalTotal. HorizontalSyncEnd should be close to 0.

VESA has timing formulas you can use to calculate these numbers.
wishedtobe wrote: Fri Aug 09, 2024 1:02 amI was trying to get the refresh rate by invoking ax=0x4f0b, then I got ax=0x14f(the VBE version number on my PC is 0x300). Is it possible that it supports all Vesa defined functionalities?
Most VBE ROMs only support the minimum necessary to boot Windows. It might not support function 0x4F0B. Or, if it does support function 0x4F0B, it might not like the parameters you're using.
wishedtobe wrote: Fri Aug 09, 2024 1:02 amI think I should seek answers from EDID.
EDID gives you information about the display attached to the display adapter. It won't tell you anything about the display adapter.