Hello,
I made a quick list of what BIOS Calls bootloader developers often use:
This list is entirely based on my opinion YMMV.
1. BIOS Set VGA Mode (Most of the people will use VBE, but many will set the video mode 80x25, just to make sure they are in a known video mode)
2. BIOS Output Character (Again not much needed, Writing to Video memory is faster, however this BIOS call does a lot of things like sets the hardware cursor, Checks for the video mode before printing etc.)
3. VBE get Mode Information
4. VBE set video mode
5. BIOS get total memory.
6. BIOS Get memory map.
7. BIOS Keyboard Services
8. Reboot (0x19)
9. Disk Absolute Read
10. Disk Absolute Write (Would this be needed? Why would a boot loader write to disk? Mostly for some error log if so.)
11. PCI BIOS (Mostly for PCI Installation Check)
12. BIOS Enable A20.
For an OS that runs in Protected Mode or Long Mode I think these calls should be enough for its Boot loader.
EDIT: Voltek's point was valid.
-Bender
OSDev's Interrupt List
- Bender
- Member
- Posts: 449
- Joined: Wed Aug 21, 2013 3:53 am
- Libera.chat IRC: bender|
- Location: Asia, Singapore
Re: OSDev's Interrupt List
Last edited by Bender on Sun Mar 02, 2014 11:22 pm, edited 3 times in total.
"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
(R3X Runtime VM)(CHIP8 Interpreter OS)
(R3X Runtime VM)(CHIP8 Interpreter OS)
Re: OSDev's Interrupt List
I use <Systems Programming Project> because it may be something other than an OS Project.Bender wrote:I made a quick list of what BIOS Calls System programmers will require
That is, and will always be, an Opinion. If i wanted a list of the tools id need for making my <Systems Programming Project>, id also ask for the experience of the list maker. What <Systems Programming Project> has he/she made? Why should my <Systems Programming Project> use his/her list, and what if what i want, isn't in that list? Maybe my <Systems Programming Project> will be better than his/hers, and his/her list is limiting my design. Why have a list at all? Why not just read one containing every interrupt, and follow the steps in the wiki. Look up based on what you feel you need. Not from a set list. What if what you need is not in the list? This will fool beginners into thinking they will only ever need what is on that list.
I'm also getting at the fact that, the list is an Opinion of what it should be based on the common experience of <Systems Programming Project> developers of the forum. There is no Set List.
- Bender
- Member
- Posts: 449
- Joined: Wed Aug 21, 2013 3:53 am
- Libera.chat IRC: bender|
- Location: Asia, Singapore
Re: OSDev's Interrupt List
@VolTek:
I agree. The list isn't accurate, and system programming can involve a lot of different things like firmware and SMM code,
however it covers the calls that are often used in Boot Loaders, others may have different needs like
they may be writing real mode OSes, which will use possibly more BIOS calls (including but not limited to Serial Communication, Pixel Routines and miscellaneous services),
I think I should've made it more clear by saying "BIOS calls what Boot Loader developers often require."
Post edited.
-Bender
I agree. The list isn't accurate, and system programming can involve a lot of different things like firmware and SMM code,
however it covers the calls that are often used in Boot Loaders, others may have different needs like
they may be writing real mode OSes, which will use possibly more BIOS calls (including but not limited to Serial Communication, Pixel Routines and miscellaneous services),
I think I should've made it more clear by saying "BIOS calls what Boot Loader developers often require."
Post edited.
-Bender
"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
(R3X Runtime VM)(CHIP8 Interpreter OS)
(R3X Runtime VM)(CHIP8 Interpreter OS)
Re: OSDev's Interrupt List
It is sad if Ralf read the message and really wanted to ignore the whole thing. I freeze this project for now and get back to this later. Although I am not actively advancing this project, I think this might be a good idea.
-
- Member
- Posts: 92
- Joined: Tue Aug 14, 2012 8:51 am
Re: OSDev's Interrupt List
Essentially, it seems like all we want is to list in the wiki a small list of BIOS interrupts that are useful to bootloader development (real mode OS' are a dying specie nowadays). I'm no legal expert, but I'm pretty sure that M. Ralph Brown has not become the owner of the "which numbers to put in which registers in order to do which things". To my poor legal knowledge, all he owns is "the text he has written", I don't think there is any legal owner of the information condensed in this text.
As an alternative, M. Brown had to get that information from somewhere, and we could very well find the same information from other sources. I first thought of Wikipedia, which has some information on some very common interrupts, although very generic, but is Creative-Commons-licensed.
To find more, I had a fun time playing the n00b guy and typing very simple questions (like "How to read sectors using BIOS") on Google. Apart from a few BIOS modding tutorials (yes, I'd never thought of doing that), I found two potential sources that id NOT Ralph Brown's:
As an alternative, M. Brown had to get that information from somewhere, and we could very well find the same information from other sources. I first thought of Wikipedia, which has some information on some very common interrupts, although very generic, but is Creative-Commons-licensed.
To find more, I had a fun time playing the n00b guy and typing very simple questions (like "How to read sectors using BIOS") on Google. Apart from a few BIOS modding tutorials (yes, I'd never thought of doing that), I found two potential sources that id NOT Ralph Brown's:
- http://www.htl-steyr.ac.at/~morg/pcinfo ... te1at0.htm Dates back to 1998 but seems to document the oldest interrupts very well. Doesn't seem good for the latest E820 details, though.
- http://www.osdever.net seems to have a bit of information too, although I think we already have most of it.
Re: OSDev's Interrupt List
IBM Technical Reference (1984)AbstractYouShudNow wrote:At the very least, maybe we could get a list of common interrupts from famous BIOS manufacturers like Phoenix, although I somehow doubt it.
PS2 and PC BIOS Interface Technical Reference (1987)
System BIOS for IBM PC/XT/AT Computers and Compatibles.pdf (1989)
AT BIOS Kit (1989)
PhoenixBIOS 4.0 User's Manual (2000)
PhoenixBIOS 4.0 Programmer’s Guide (2000)
Embedded BIOS 4.3 (2000)
Re: OSDev's Interrupt List
I don't know if the following applies to everything in all zip files (but it really seems like it should). In the first zip file Ralf Brown provides (inter61a.zip), there is a text file named RBROWN.TXT. In said file it says at the top "Public Domain/Freeware/Shareware by Ralf Brown:" and then goes on to list inter61a through inter61f.Antti wrote:There might be copyright issues or is the Ralf Brown's list public domain?
Seems public domain to me. People also make reference to it elsewhere and it has not caused problems as far as I can see.
Sorry if I am wrong.