Bochs help

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
beyondsociety

Bochs help

Post by beyondsociety »

[attachment deleted by admin]
Tom

Re:Bochs help

Post by Tom »

I'm looking at the code...but in the mean time...FritzOS pk0.7.1 ( new ) has BOCHS support...try that code untill I can fix yours...( you Need Bochs 2.0.pre2! ).
Tom

Re:Bochs help

Post by Tom »

Well...bochs says

00000338356e[CPU ] load_seg_reg(): not writable data segment
00000338356p[CPU ] >>PANIC<< exception(): 3rd exception with no resolution

That is the classic tripple fault. My code doesn't triple fault....but since I don't have time to fix your code tonight....download Pk0.7.1 with BOCHS 2.0.pre2....
PlayOS

Re:Bochs help

Post by PlayOS »

hmm.... Compiled, Executed and Closed without a hitch, I don't understand why, but I simply unzipped, ran compile.bat and everything went ok.

Tom: Did you try and run his code or did you just read his bochsout.txt?

In your bochsout.txt why is all this stuff set:

00000000000i[DMA ] channel 4 used by cascade
00000000000i[HD ] Boot device will be 'a'
00000000000i[HD ] Floppy boot signature check is enabled
00000000000i[DMA ] channel 2 used by Floppy Drive
00000000000i[VGA ] VBE Bochs Display Extension Enabled
00000000000i[KBD ] will paste characters every 1000 keyboard ticks


none of this is done in my bochs, are you setting extra parameters for bochs?

If so what are they, so I can replicate your situation. :)

Also, I have this in my bochsout.txt that is not normally there when my OS runs

00000212738i[CPU ] WARNING: HLT instruction with IF=0!

Maybe this is causing a problem, try not using the HLT, I would still like to know how you setup bochs, and what version of it you have.
beyondsociety

Re:Bochs help

Post by beyondsociety »

I never knew that. I am using a compiled version that is a beta from the Download section of Bonde OS Development website. Its version 1.5 binary for windows.

Do you have the newest version or are you still using bochs-1.4.1. Also, are you using Windows or Linux as your primary os?

I will get back to you on every feature that was compiled. I was wondering why the bochsout.txt looked weird. I will try removing the 'Hlt' from my code and try running it again.

Thanks for the help PlayOS!
beyondsociety

Re:Bochs help

Post by beyondsociety »

Removing the 'Hlt' didn't help. I get the same error. I guess I will either update my bochs to 2.0 or contact K.J on Bonde OS Development. Oh well.
PlayOS

Re:Bochs help

Post by PlayOS »

I am still using 1.3, and I use windows as my dev environment. Sorry I couldn't help.
Curufir

Re:Bochs help

Post by Curufir »

Actually Bochs.2.0pre2 is out if you look at their site (I keep checking regularily waiting for the full v2.0. 1 month overdue and counting :)).

http://bochs.sourceforge.net/

Curufir
Tom

Re:Bochs help

Post by Tom »

Haven't I been saying that all the time?
Curufir

Re:Bochs help

Post by Curufir »

Yeah, but I figured seeing as the guy mentioned he was using a binary from K.J.'s site a link to the bochs page would be handy.

Curufir
beyondsociety

Re:Bochs help

Post by beyondsociety »

Okay, I have updated to bochs-2.0.pre2 and ran my same code. I got the same error in the bochsout.txt file but it shows more of a detail. I was trying to look at it and I can't figure out what that means. Could someone help me out.

Heres the error I got:

Code: Select all

00000357380p[CPU  ] >>PANIC<< exception(): 3rd (13) exception with no resolution
00000357380i[SYS  ] Last time is 1038592345
00000357380i[CPU  ] protected mode
00000357380i[CPU  ] CS.d_b = 32 bit
00000357380i[CPU  ] SS.d_b = 32 bit
00000357380i[CPU  ] | EAX=60000010  EBX=00001000  ECX=000a0002  EDX=00000000
00000357380i[CPU  ] | ESP=00001046  EBP=00000000  ESI=00000000  EDI=0000ffe4
00000357380i[CPU  ] | IOPL=0 NV UP DI PL NZ NA PE NC
00000357380i[CPU  ] | SEG selector     base    limit G D
00000357380i[CPU  ] | SEG sltr(index|ti|rpl)     base    limit G D
00000357380i[CPU  ] |  DS:0010( 0002| 0|  0) ffffffff 000fffff 1 1
00000357380i[CPU  ] |  ES:0010( 0002| 0|  0) ffffffff 000fffff 1 1
00000357380i[CPU  ] |  FS:0010( 0002| 0|  0) 00000000 000fffff 1 1
00000357380i[CPU  ] |  GS:0010( 0002| 0|  0) 00000000 000fffff 1 1
00000357380i[CPU  ] |  SS:0010( 0002| 0|  0) 00000000 000fffff 1 1
00000357380i[CPU  ] |  CS:0008( 0001| 0|  0) 00000000 000fffff 1 1
00000357380i[CPU  ] | EIP=00001011 (00001011)
00000357380i[CPU  ] | CR0=0x60000011 CR1=0x00000000 CR2=0x00000000
00000357380i[CPU  ] | CR3=0x00000000 CR4=0x00000000
00000357380i[     ] restoring default signal behavior
00000357380i[CTRL ] quit_sim called
By the way does anybody know how to set up and use the bochs debugger.
PlayOS

Re:Bochs help

Post by PlayOS »

Well, it looks as thought you are getting a GPF (General Protection Fault), I am assuming this is what this line means,

00000357380p[CPU ] >>PANIC<< exception(): 3rd (13) exception with no resolution

see that (13), this is the exception number (I assume), its about time they added the exception number to this error.

You need to check out the Intel manuals where it explains exceptions, find the info on GPF and see what the possible causes are, then search your code for the offending code.

Good Luck! :)
beyondsociety

Re:Bochs help

Post by beyondsociety »

I looked at the intel manuals and figured out what the error was. Heres the line from the manual:

Code: Select all

General Protection Fault:

13. Loading CR0 with PG=1 and PE=0.
I checked my bochs error file and I noticed that Cr1-Cr4 are all zero. But Cr0 looks like this:

Code: Select all

CR0=0x60000011 CR1=0x00000000 CR2=0x00000000
CR3=0x00000000 CR4=0x00000000
Can anybody tell me why. Or at least if this is supposed to happen. Thanks in advance!
Post Reply