Page 1 of 1

problem loading files from floppy

Posted: Sat Jan 19, 2008 4:39 pm
by gzaloprgm
Hello, I'm having problems while using the 2 stage bootloader from http://www.brokenthorn.com/Resources/Demos/Demo4.zip

The problem is that it works perfectly on bochs, qemu and my new pc, but when I try it on my old pc, it just reboot after jumping to the kernel.

I'm sure the processor executed garbage instructions and made a triple fault and didn't load the 3rd stage.

The second stage gets loaded perfectly. In it I install the gdt, enable a20 line, load root directory table from floppy, load kernel in memory, using bios interruptions, and then I switch to pmode and jump to my kernel.

By the way, these are the specifications:
Processor: Pentium MMX 233mhz
Ram: 64MiB
Bios: Award Modular Bios PCI/PNP 586 4.51PG
Floppy Drive: NEC FD1231H
Chipset: 08/14/97-vXPro+-USB-Ultr-2A5ldh09c-00

If anyone had experienced this error, I'd like to know how you solved it.

Thanks,
Gonzalo

Posted: Sun Jan 20, 2008 10:48 am
by Combuster
The link is dead. :(

Are you sure you don't use processor features that aren't available, or some other incorrect assumption? Try manually compiling a bochs version that pretends to be a 386 or 486 and see if the problem appears there as well.

Posted: Sun Jan 20, 2008 3:08 pm
by neon
Linky

This is a *.zip file.

Posted: Mon Jan 21, 2008 8:55 pm
by gzaloprgm
Combuster wrote:The link is dead. :(

Are you sure you don't use processor features that aren't available, or some other incorrect assumption? Try manually compiling a bochs version that pretends to be a 386 or 486 and see if the problem appears there as well.
Thanks combuster but it's not that problem.

I'm using a Pentium MMX so I guess the problem is from the bios/chipset rather than an invalid instruction.

Now I fixed the link.

The second stage sets the stack, installs the gdt, enables a20 gate using keyboard controller, loads the root directory table from a floppy using bios interruptions, then it looks for the kernel file and loads it in memory, and then it goes to pmode, set the stack and jumpes into the kernel.