Search code examples
assemblybiosfirmware

How does the BIOS initialize the screen?


how does the BIOS Initialize the Screen? I'm looking for an answer I've been searching through the web but, can't find something... but, I've found a website! but, it says here that the is initialized to address C000h. is the video card really hard wired to the memory address C000h? please enlighten me and TY in advance... :D


Solution

  • is the video card really hard wired to the memory address C000h?

    You are talking about the video BIOS, not about the screen memory?

    In early IBM computers (like the "PC", the "XT" or the "AT"), the 128K addresses range from C000h:0h to D000h:FFFFh (this is the linear address range C0000h to DFFFFh) was intended for the firmware (BIOS) of add-on cards which were not supported by the "on-board" BIOS.

    The first 32K (C0000h to C7FFFh) of this address range were reserved for video cards that were not supported by the on-board BIOS; the remaining 96K could be used by other types of cards (such as SCSI hard-disk controllers or network cards supporting booting from the network).

    How does the BIOS Initialize the Screen?

    For computers with an on-board video card, this is done by the BIOS itself. In the technical reference manual of the "IBM PCjr" (a computer sold in 1983), you'll find the source code of such a BIOS.

    When the BIOS starts up the computer, it is searching for add-on cards which have a firmware in the 128K address range mentioned above.

    It detects the firmware of the video card and runs this firmware.

    The reason why a video card has an own firmware is simple:

    Especially for video cards providing more than VGA (16 colors at 640x480 pixels and 256 colors at 320x200 pixels) the initialization sequence is depending from manufacturer to manufacturer.

    So for modern computers you cannot answer the "generic" question: "How does the BIOS initialize the screen?", but you could only answer the question how this is done for a certain manufacturer.

    However, I suspect that most video cards' firmwares would put the card into a state where the card behaves like a VGA card, put the card into BIOS video mode 3 (80x25 text), fill the video memory with space characters (so the screen is empty) and put the text cursor to the top left corner.