Ruud
Veteran Member
The various IBM PC/XT BIOSes use quite some fixed addresses for certain routines. The most well known one is the address 0E5Bh, the first address where the CPU far jumps to after an hard reset or a power-up. I noticed that most BIOSes I ran into use this address as well. Sergey Kiselev's BIOS, one of the newest I know of, is using this address and many others as well. The most well known (more or less) IBM compatible PC that doesn't use this address is the IBM PCjr.
But I have seen BIOSes that used only some of the fixed addresses and the PC performed w/o any problem AFAIK. So my first question is: why these fixed address? My own answer would be: because some programs need them. Which raises the questions: what programs needed those addresses? I have written various programs in ML but never had any need to use those addresses and thus: why would these programs need them?
I have an idea for my Mini-V20: http://baltissen.org/newhtm/mini-v20.htm which doesn't involve video, drives or an keyboard. It still needs to load data in one or another way and as I still want to be able to run MS-DOS on it, it will mean I have to rewrite INT 10h, INT 13h and other routines completely. After erasing my own standard BIOS with everything I'm sure of that I don't need, I'm stuck with a BIOS with several fixed address but no code at all. And that lead to this post.
I decided to simply ignore all these fixed address. There is a risk: if something goes wrong, is it because of a faulty BIOS or because a fixed address is missing? So I decided to run a parallel project as well: I take Sergey's BIOS and remove all fixed addresses. And then run my XI-8088 and see where it goes wrong (or not).
I'm looking forward to any comment!
But I have seen BIOSes that used only some of the fixed addresses and the PC performed w/o any problem AFAIK. So my first question is: why these fixed address? My own answer would be: because some programs need them. Which raises the questions: what programs needed those addresses? I have written various programs in ML but never had any need to use those addresses and thus: why would these programs need them?
I have an idea for my Mini-V20: http://baltissen.org/newhtm/mini-v20.htm which doesn't involve video, drives or an keyboard. It still needs to load data in one or another way and as I still want to be able to run MS-DOS on it, it will mean I have to rewrite INT 10h, INT 13h and other routines completely. After erasing my own standard BIOS with everything I'm sure of that I don't need, I'm stuck with a BIOS with several fixed address but no code at all. And that lead to this post.
I decided to simply ignore all these fixed address. There is a risk: if something goes wrong, is it because of a faulty BIOS or because a fixed address is missing? So I decided to run a parallel project as well: I take Sergey's BIOS and remove all fixed addresses. And then run my XI-8088 and see where it goes wrong (or not).
I'm looking forward to any comment!