My BSOD

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Post by Candy »

oscoder wrote:
pcmattman wrote:No, that's something only the pig-headed freaks over at Apple would try, and even then they might have the common sense ( :shock: ) to not do it...
Shouldn't that be 'pig-headed phreaks'?
Not unless they abuse the phone system while displaying a red screen of death...
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post by Brynet-Inc »

Candy wrote:
oscoder wrote:
pcmattman wrote:No, that's something only the pig-headed freaks over at Apple would try, and even then they might have the common sense ( :shock: ) to not do it...
Shouldn't that be 'pig-headed phreaks'?
Not unless they abuse the phone system while displaying a red screen of death...
I'm going guess he might of been joking about the two Apple founders history in phone phreaking.

Learn your history Candy. :roll:
The Web! wrote:Steve Wozniak - a.k.a. "Woz". One of the "Two Steve's" who founded Apple Computer and sold Blue Boxes at University. Claims he grew out of phreaking and hacking (true hacking) when he started Apple with Steve Jobs. He no longer works at Apple..
Steve Wozniak & Steve Jobs were both best friends.. I'm guessing Steve also dabbled in the dark arts.. or was probably hanging out with "Woz" while he sold them.. (Or built them..)..

http://www.woz.org/ --A picture of Steve Wozniak & Jobs building a Blue Box is on the front page of Steve Wozniak's site..
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

Old Topic reincarnation:

Do you see how my brand new floppy driver works? :lol:

Image

(At least everything listed in the SoD is correct, except the EFLAGS, which should be 0x202 :))

- The SoD can be blue, green, magenta, red, dark gray :D,... etc. - it is configurable, at least, in the source code by changing one variable.

For now, this halts the system completely, even if it is only a little error like divide by zero or unhandled INT. And, a little stack listing will be displayed too.

inflater
Last edited by inflater on Mon Jun 25, 2007 8:09 am, edited 1 time in total.
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Post by AJ »

You should put that Mr Bean pic as the backdrop :)
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

AJ wrote:You should put that Mr Bean pic as the backdrop :)
Hehe, that may be possible :D

inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Post by Speewave »

an idea i had was find the Vista Logo as a background and say " This Operating System has taken a dump:"

(Hex Dumps here)

i callit VSOD (the Vista Screen Of Death!)
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

I've updated my BSOD.
Note: If the exception is GPF (INT 0x0D), ALL registers, except SS:ESP and ES, FS, GS and DS, are having wrong values, which is really weird :-s 8-[ unlike the "unhandled int" and other exceptions. Weird. :D So, take a look:

Image

For example, CS should be 0x10, EFLAGS 0x202, notice the weird GDT and IDT... :lol:

//EDIT: Sorry AJ, no Mr. Bean now... :mrgreen:
This is my 300th post, hurray! :D

inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
frank
Member
Member
Posts: 729
Joined: Sat Dec 30, 2006 2:31 pm
Location: East Coast, USA

Post by frank »

@inflater

Have you accounted for the error code that a gpf pushes on the stack?
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

frank wrote:@inflater

Have you accounted for the error code that a gpf pushes on the stack?
Of course, I absolutely do not use something like

mov ax,cs

for the three values pushed on the stack (EIP,CS,EFLAGS - downwards) because I don't want to get CS:EIP of the BSOD code, but CS:EIP where exactly the error was ;)

I use them like this:

I will save the original values of EAX, BX and ECX to some variables declared in code. Then, I will

Code: Select all

pop eax ;get the EIP (32bit no.)
pop bx ;get the CS (16bit no.)
pop ecx ;get eflags (32bit no.)
, store EAX to the [EIPValue] variable, the same with BX to the [CSValue] variable, etc. and then, I will restore the original values of these registers (they are not pushed on the stack but saved on the variables EIPValue etc.) and I will push them back to stack, like this:

Code: Select all

push ecx
push bx
push eax
because I want sometime to resume execution of the OS (if it was only a little error, like, e.g. unhandled int, or divide by zero).

This technique works with the unhandled int exception, like show'd in the screen above (except eflags). But I wonder why this doesn't work with GPF fault handler (they are all the same...)

Regards,
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
User avatar
JAAman
Member
Member
Posts: 879
Joined: Wed Oct 27, 2004 11:00 pm
Location: WA

Post by JAAman »

inflater wrote: But I wonder why this doesn't work with GPF fault handler
because you are not accounting for the error code (at least your last post gave nothing to indicate that you did)

when a #GP is triggered, the CPU pushes a special code to the top of the stack -- this code helps you to discover why the GPF occured

before removing any of the other values from the stack (like CS:EIP, SS:ESP, or EFLAGS) you must first remove this code (reference: 3A:5.13 and 3A:fig.5-4)
Aali
Member
Member
Posts: 58
Joined: Sat Apr 14, 2007 12:13 pm

Post by Aali »

if i remember correctly, CS is 32 bits in an interrupt stack frame
and i dont see why in the world it would be 16 bits
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

@JAAman:
Thank you for your response, I will look into the intel manuals for help. (I just entered the "world of pmode" so excuse me for any old realmode mistakes in protected mode.)

//EDIT: Sorry JAAman, when reading other post, I confused the words "GPF code" with other things...

@Aali:
CS is 32-bits, you are right, but I never seen it's value above 0xFFFF, so I'm treating CS's value as a 16-bit number. (Trying to not confuse real mode segmentation again...)

Regards
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
Aali
Member
Member
Posts: 58
Joined: Sat Apr 14, 2007 12:13 pm

Post by Aali »

of course, the CS selector itself is only 16 bits, but its still 32 bits in the stack frame, which means you cant do this:

Code: Select all

pop eax ;get the EIP (32bit no.)
pop bx ;get the CS (16bit no.)
pop ecx ;get eflags (32bit no.)
actually, you should never, ever use 16bit stack operations (push/pop) on a 32bit stack, since it will screw up alignment
Edwin
Posts: 12
Joined: Thu Dec 21, 2006 5:19 pm

Post by Edwin »

??
As far as I know, any push or pop in 32-bit execution mode will decrement or increment esp by 4..
Aali
Member
Member
Posts: 58
Joined: Sat Apr 14, 2007 12:13 pm

Post by Aali »

Edwin wrote:??
As far as I know, any push or pop in 32-bit execution mode will decrement or increment esp by 4..
well, we ARE talking about x86 here
its been proven over and over that there is just no limit to how much braindamage you can cram into one architecture
Post Reply