The interface provided by the video screen

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
sunnysideup
Member
Member
Posts: 106
Joined: Sat Feb 08, 2020 11:11 am
Libera.chat IRC: sunnysideup

The interface provided by the video screen

Post by sunnysideup »

Looking at the core of the Computer System (x86), all I/O accesses are done via port I/O and memory-mapped I/O. A computer monitor is also an output device, therefore I'm looking to learn about the hardware and software interfaces that make this device run.

I've been doing a bit of Operating systems development, and want to know more about graphics cards, video controllers, etc.

I would like to know what controllers are present a typical monitor, and our chipset (motherboard).

Where does a graphics card come into the picture? Is the graphics card directly connected to the monitor?

Often when starting with OsDev, 0xb8000 is our best friend, and I often just keep it as an abstraction to deal with other things in the kernel. Is writing to 0xA0000 - 0xBF000 memory-mapped I/O? If so, which device is it mapped to?

Where does a VGA controller come into the picture? Is it present in the graphics card? What about VESA, etc. ? If the VGA controller is present on the chipset, what is its port number? (If port I/O)

Where does Video BIOS come into the picture?? I'm guessing it's located in some sort of ROM in a graphics card.

These are just a few questions that I have of the top of my head. I might follow up with a bit more.
User avatar
iansjack
Member
Member
Posts: 4703
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: The interface provided by the video screen

Post by iansjack »

Have you done any research on Google, or even in this wiki? There's a wealth of information there. There are also books about PC hardware that are worth a look.
sunnysideup
Member
Member
Posts: 106
Joined: Sat Feb 08, 2020 11:11 am
Libera.chat IRC: sunnysideup

Re: The interface provided by the video screen

Post by sunnysideup »

Yes, I have :)

I mostly want this topic to be something I can use to explore how an experienced low level programmer sees the video system. Perhaps some insights and tips...

I wouldn't mind book suggestions / resource suggestions either.
User avatar
iansjack
Member
Member
Posts: 4703
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: The interface provided by the video screen

Post by iansjack »

There's a thread in this forum that consists of Book Recommendations. The latest post in it looks like it answers many of your questions.
nullplan
Member
Member
Posts: 1792
Joined: Wed Aug 30, 2017 8:24 am

Re: The interface provided by the video screen

Post by nullplan »

sunnysideup wrote:I mostly want this topic to be something I can use to explore how an experienced low level programmer sees the video system.
Framebuffers. You write into them, and somehow stuff appears on the screen. That is all there is to it. Whether that is the graphics card doing that or the Easter Bunny, I don't rightly care. I have no reason to care. I only care about frame buffer base address, width, height, and pitch. And structure, but that is mostly uniform these days.
Carpe diem!
Post Reply