how do i add a bsod?
Posted: Fri Mar 13, 2020 3:08 pm
how do i implement a crash screen?
The Place to Start for Operating System Developers
https://f.osdev.org/
There is a small detail that's wrong. I don't know how to edit the wiki. So I write it here.bzt wrote:Added BSOD to our wiki. Crash screen seems to be very popular topic, and I put some pointers how to implement it.
Cheers,
bzt
I only used an Amiga 500 a handful of times - I was working in a WaldenSoft store (a short-lived Waldenbooks offshoot) in 1989, and for some reason they were selling A500s (even though they generally didn't carry hardware, and mostly stocked books and software for PCs) so we had one as a display model - but I can assure you that 'Guru Meditation' was the crash screen for AmigaOS at that time. The Wicked-Pedo page for 'Guru Meditation' backs my faulty memory up on this, and even has a GIF of the original error screen:PeterX wrote:There is a small detail that's wrong. I don't know how to edit the wiki. So I write it here.
The "Guru meditation" was for another computer connected (via serial line? don't know) to the Amiga and taking over the control of the Amiga.
on a bugcheck, Windows takes a dump, what a more useful form could be?!!it provides information in a far more useful form than Windows does.
For a Legacy BIOS or early EFI machines, where the video hardware still supports VGA access via memory address 0xB8000, a BSOD is fairly easy. Gather the information you wish to display and simply write 16-bit words to the video screen memory.bzt wrote:This function must be dependency-free, and must not rely on other parts of your kernel. It must be self-contained, so that it can display the screen regardless which parts of your OS failed.
This touches on an assertion that I've always found suspect: Hardcore Amiga fans seem to like to make a point of the fact that the OS was pre-emptively multitasked before any other microcomputer OS was. While technically, yes, any program could be preempted by the timer interrupt, in my book, you don't get to call yourself preemptively multitasked if anybody who wants to can scribble on the timer interrupt vectorSchol-R-LEA wrote: Since most Amiga models had no hardware memory protection (and the OS didn't support it at first when it did come around with the 68030 and 68040 models), process protection was entirely in software - a buggy process could scribble on any part of memory, and more than a few would.
Which isn't really true, of course; it was simply one of the first to be the primary OS for such a system, and the first to really gain widespread recognition, I suppose.linguofreak wrote:This touches on an assertion that I've always found suspect: Hardcore Amiga fans seem to like to make a point of the fact that the OS was pre-emptively multitasked before any other microcomputer OS was.Schol-R-LEA wrote: Since most Amiga models had no hardware memory protection (and the OS didn't support it at first when it did come around with the 68030 and 68040 models), process protection was entirely in software - a buggy process could scribble on any part of memory, and more than a few would.
Well, keep in mind that this applied to almost every small computer - including several minis - prior to 1990 or so, and still applies to many modern microcontrollers as well - a number of RTOSes don't assume the presence of an MMU, and some don't use it even when present. I know that the original QNX could run on an 8088 with no MMU, for example. I imagine some of the embedded developers here could say more on this.linguofreak wrote:While technically, yes, any program could be preempted by the timer interrupt, in my book, you don't get to call yourself preemptively multitasked if anybody who wants to can scribble on the timer interrupt vector
Just what I said Or I didn't express clearly. Anyway that's what I was trying to say.bzt wrote:@PeterX: when Guru Meditation was shown, you had two choices: left click - reboot computer. Right click - start remote debugger interface on serial line (required a full debugger on another machine to connect to). This debugger interface (very similar to gdb-server these days) was built in a ROM not the debugger, just as Schol-R-LEA said.