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
How does the BIOS initialize the screen?
679 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in ASSEMBLY
- (x64 Nasm) Writeline function on Linux
- Is the compiler Xcode uses to produce Assembly code a bad compiler?
- Why do we need AX instead of MOV DS, data directly with a segment?
- Bootloader in Assembly with Linux kernel
- How should the byte sequence 0x40 0x55 be interpreted by an x86-64 emulator?
- C++ code into assembly
- Drawing circles of increasing radius
- Assembly print on screen using pop ecx
- Equivalent to asm volatile in Gfortran?
- Show 640x480 BMP image with inline ASM c++
- Keep track of numbers entered in by a user in assembly
- 8086 Assembly Arrays with I/O
- DB ASM variable in Inline ASM C++
- What does Jump to means in callgrind?
- How to convert binary into decimal in assembly x8086?
Related Questions in BIOS
- How to use real mode BIOS / VESA calls from GRUB?
- board firmware update through uefi capsule feature from Linux
- Assembly equivalent of array of function pointers?
- an issue when trying to enable virtualization
- How to write a BIOS program that runs before the OS?
- int 10h 13h bios string output not working
- Access BIOS-ROM in Assembly language (NASM)
- How read/write data on my laptop BIOS?
- Using BIOS functions through C++
- How to enable virtualization in bios windows 8 using AMD E1-2100 APU G505?
- How to jump if there is no keyboard key pressed
- GRUB2 + VESA BIOS Extensions / VBE broken?
- How to check the BIOS version or name in Linux through a command prompt?
- Why is the memory size returned by E801h BIOS interrupt 15h ignored on linux?
- grub2, grub-mkrescue, bios, vbe framebuffer, custom kernel
Related Questions in FIRMWARE
- Purpose and usage of firmware packages on Linux
- Embedded C compile size is bigger with int16's than with int32's. Why?
- intel reset vector and documentation pedantics. Bits vs bytes
- What to pad flashable images with?
- Debian 8. Failed to load iwlwifi
- Xbee S2B firmware upgrade over wired or Over The Air without XCTU
- u-boot hangs after successful (uboot,kernel,filesystem) upgrade in an embedded product
- Adding Own Controller to arduino platform
- Embedded C programming style
- Device firmware update and libusbx API in Windows CE
- Suggestion for makefile structure for multiple firmware images and lots of conditional compilation
- implicit declaration of function 'ITM_SenderChar' is invalid in C99 issue in KEIL
- considerations that should be observed for writing firmware for big projects
- ESP8266 Linux: Programming and Flashing
- Reading JEDEC ID from user space
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
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:0htoD000h:FFFFh(this is the linear address rangeC0000htoDFFFFh) was intended for the firmware (BIOS) of add-on cards which were not supported by the "on-board" BIOS.The first 32K (
C0000htoC7FFFh) 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).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.