Old, non-standardized, limited API that allows you to do quick and dirty IO.
If you are making a serious OS, use it as little as possible.
https://en.wikipedia.org/wiki/BIOS
Can only be used in real mode.
Does any documentation or portability exist??
http://www.ctyme.com/intr/int.htm Ralf Brown's Interrupt List. Everyone says that this is the ultimate unofficial compilation.
https://en.wikipedia.org/wiki/INT_10H good quick summary
http://www.scs.stanford.edu/nyu/04fa/lab/specsbbs101.pdf says little about interrupts, I don't understand it's scope.
There are several video modes.
Modes determine what interrupt functions can be used.
There are 2 main types of modes:
- text, where we operate character-wise
- video, operate byte-wise
Modes can be set with int 0x10
and AH = 0x00
, and get with AH = 0x0F
The most common modes seem to be:
- 0x01: 40x25 Text, 16 colors, 8 pages
- 0x03: 80x25 Text, 16 colors, 8 pages
- 0x13: 320x200 Graphics, 256 colors, 1 page
You can add 128 to the modes to prevent them from clearing the screen.
Taken from: https://courses.engr.illinois.edu/ece390/books/labmanual/graphics-int10h.html
A larger list: http://www.columbia.edu/~em36/wpdos/videomodes.txt
https://en.wikipedia.org/wiki/VESA_BIOS_Extensions
TODO use it.
https://en.wikipedia.org/wiki/BIOS_color_attributes
https://en.wikipedia.org/wiki/System_Management_BIOS
Standardized by: https://en.wikipedia.org/wiki/Distributed_Management_Task_Force
TODO: how is it obtained at the low level?
http://www.seabios.org/SeaBIOS
Open source x86 BIOS implementation.
Default BIOS for QEMU and KVM.