0

I am building an operating system for the x86_64 ISA. I am to the point in my development where I want to begin to display things graphically for the user, and therefore wish to retrieve the monitor/video output's native resolution instead of the preset BIOS video modes. I understand that this may be able to be done via VESA VBE and EDID functions, but documentation--especially on the latter--is sparse.

How should I go about finding the preferred video mode? Am I looking in the entirely wrong direction for my answer?

New contributor
Sermir is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
1
  • 1
    Real mode only exists in legacy mode, so [x86-64] isn't really relevant. 16-bit code should be tagged [x86-16], even if running on modern hardware. Commented 2 hours ago

1 Answer 1

0

Use VBE’s EDID call:

• In real-mode/int10h set AX=4F15h, BH=00h, ES:DI→128-byte buffer

• BIOS returns the EDID block; parse the detailed timing descriptor at offset 54 for the preferred (native) resolution.

Sign up to request clarification or add additional context in comments.

3 Comments

BL=0 should be check if support AH=4Fh service !?? Ref: mirror.math.princeton.edu/pub/oldlinux/Linux.old/docs/…
wiki.osdev.org/EDID mov bl, 0x01

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.