Re: Guru Meditation Exact Visual Specs

From: Ethan Dicks <>
Date: Wed, 10 Aug 2016 17:41:14 -0400
Message-ID: <>
On Wed, Aug 10, 2016 at 3:44 PM,  <> wrote:
> Do we know the exact visual specs of the Guru (and the "recoverable" counterpart)?
> Especially:
> - exact flash timings
> - exact colour values
> - exact dimensions
> In the worst case, I guess it should be possible to analyse those if not from ROM disassembly (which would be the best option) then at least from some uae screen dumps/recordings. But maybe somebody has already analysed those in details?

Starting from here...

Exec/Alert() starts at FC2FD6

... a bit into things, after all the checking for ROMWack, etc., is
done, there's this snippet...

FC315A  clr.l     D0                    Tell intuition that the alert # is 0.
FC315C  lea       (SP),A0               Point to the alert string.
FC315E  moveq     #$28,D1               Alert should be 40 video lines high.
FC3160  jsr       -$5A(A6)              DisplayAlert()

And Intuition/DisplayAlert() is going to make a new bitplane 640
pixels by D1, or 40 pixels tall.

From here... one would need to dig into DisplayAlert() for details.
The string pointed to by A0 is built in Alert() and uses some nearby
string constants...

        ; Strings used for the guru message.

FC3194  "&", 0F, "Not enough memory. ", 00
FC31AA  "&", 0F, "Software Failure. ", 00
FC31BF  "&", 0F, "Recoverable Alert. ", 00
FC31D5  EA, 0F, "Press left mouse button to continue.", 00
FC31FC  8E, 1E, "Guru Meditation #%08lx.%08lx", 00

The formatting bytes are X and Y coordinates of the string within the
Alert bitplane, units are pixels.  Y coord is the baseline value.

Bouncing over to

Within there is
intuition/requesters_alerts/displayalert.c which is an example program
to call DisplayAlert().

If anyone happens to have any version of source for intuition.library,
start reading at DisplayAlert(), but at least there's some stuff from
exec/Alert() to show what gets fed into it.


I remember knowing that stuff off the top of my head 25 years ago, but
ISTR there's some details in the RKMs based on specific symbol names
used by the ROM code.  From ancient memories, once you know you are
going to be throwing up a guru meditation, the code instantiates a
640x40 (non-interlaced) 1-bit bitplane and sets the colors to red and
black and drops all front Intuition screens down "the right amount" (a
named constant in the RKMs, I'm pretty sure), but I don't recall the
precise thickness of the framing box.  The blink is somewhere around
1Hz or 0.5Hz, but I couldn't say if it's some precise divide of the
video clock that's approx 1Hz or so (I've never run a PAL Amiga, for
example, and I don't know how they are measuring time - with VBIs or
with a CIA timer or what).


       Message was sent through the cbm-hackers mailing list
Received on 2016-08-10 21:41:14

Archive generated by hypermail 2.2.0.