Why can't my OS run off of my computer?

Only for programmers and BIOS gurus with technical questions.
Post Reply
Garfield
New visitors - please read the rules.
Posts: 5
Joined: Thu Jun 27, 2002 4:18 am

I really hope this is the right spot to ask this question...

I'm writing my own operating system. And, I use a BIOS interrupt (0x13) that reads a sector off of a disk (in my case, a floppy) and loads that sector at a given address. Anyway, this works on all computers, except my one computer. And what I'm thinking is that this BIOS interrupt (0x13) isn't "known" or something to my BIOS. So, the computer just doesn't continue with execution on the code. I don't understand what is wrong. What is the problem? How can I fix it?

Thanks!
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

If the BIOS does not support Int 13h at all, it should not boot a floppy disk. Take a look at the sample (hard drive) MBR code at this location for an example; the MBR requires the Int 13h code to exist. There must be some other factor involved.
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Garfield
New visitors - please read the rules.
Posts: 5
Joined: Thu Jun 27, 2002 4:18 am

So what do you think could be causing my problem?

Thanks!
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

Look for bugs in your code.
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
Garfield
New visitors - please read the rules.
Posts: 5
Joined: Thu Jun 27, 2002 4:18 am

If it was my code, then it wouldn't work on ANY computer. It just doesn't work on my one computer...
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

Garfield wrote:If it was my code, then it wouldn't work on ANY computer. It just doesn't work on my one computer...
I would write some code specifically to check Int 13h operation on that computer. Do all subfunctions fail ? Take a look at the sample at the link I posted. If the machine can boot a diskette, I would boot a DOS diskette with debug and hand-assemble some code into RAM to do this.

(It was so much easier on the PDP-11/05. Well, OK, it wasn't. but at least you had flashing lights and the switches were such pretty colours.)
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Garfield
New visitors - please read the rules.
Posts: 5
Joined: Thu Jun 27, 2002 4:18 am

I just pin-pointed what exactly is causing the problem, and it's not INT 13h. It's a simple divide! The line of code is:

div WORD [SectorsPerTrack]

Anyways, I don't know how much that means to you (I don't know if you know Assembly). I don't know why my one computer can't handle this divide...
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

Garfield wrote:I just pin-pointed what exactly is causing the problem, and it's not INT 13h. It's a simple divide! The line of code is:

div WORD [SectorsPerTrack]

Anyways, I don't know how much that means to you (I don't know if you know Assembly). I don't know why my one computer can't handle this divide...
Pants-ium CPU on this one ? :wink:
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

Early Pentium had bug in FDIV. I think that there's a divide overflow - just like in Award BIOSes - 32GB and 64GB bugs.
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
Garfield
New visitors - please read the rules.
Posts: 5
Joined: Thu Jun 27, 2002 4:18 am

Nope, AMD...
Post Reply