1

Recently , I began using vbe for graphics in my OS. When in real mode, the vbe info block structure returns a pointer to the video mode list. When i view this pointer's hex value, it looks like this: It is a douleword value

0x7bb24220

I am wondering how the data at this address can be gotten in real mode , since I can't access that address. Does any one have an idea how this can be done?

preciousbetine
  • 2,959
  • 3
  • 13
  • 29
  • Please read tag descriptions before adding them. The [tag:vbe] tag is for the Visual Basic Editor, which has nothing to do with the question you've asked here. – Ken White Jul 05 '19 at 17:31
  • @KenWhite, I meant vesa BIOS extensions, actually. Anyway , changed it to 'vesa'. – preciousbetine Jul 05 '19 at 17:33
  • Thanks. Reading the tag description would have let you know it wasn't the proper tag. :-) – Ken White Jul 05 '19 at 17:34
  • `0x7BB24220` (bytes 0x20, 0x42, 0xB2, 0x7B) would be "offset 0x4220 in real mode segment 0x7BB2", which would be the 32-bit physical address `0x7BB2<<4 + 0x4220 = 0x0007FD40`. – Brendan Jul 06 '19 at 00:34

1 Answers1

1

This is actually not a usual pointer but a so called vbeFarPtr which has an segment:offset format. For more information see the VBE Specification (page 20).

r3mus n0x
  • 5,954
  • 1
  • 13
  • 34