Guru meditation/ROM Wack/SAD…

Almost everyone who has used an Amiga has seen the flashing red box on a black background, with some cryptic text, and known that whatever they were doing is now gone.

This was shown when the computer experienced an error that it could not recover from (crashed to use the more common terminology), and the cryptic text gave an idea of what had gone wrong.  Most people just pressed the left mouse button, which would then restart the machine, and go back to whatever they were doing, often cursing the guru.

In many ways this was like the ‘blue screen of death’ on Microsoft Windows.  It was usually caused by an error in a program running on the Amiga, which could make tracing the culprit difficult if you were taking advantage of the multi-tasking the system offered and running more than one program at once.

What most people didn’t know, and many still don’t know, is that if you press the RIGHT mouse button when you see this, it starts the Amiga ROMWack debugger.  Or it can also be started if it receives the DEL character over the serial port.

What is ROMWack, and how is it used?
ROMWack stops execution of all processes on the Amiga and effectively freezes the machine in the state that it’s in.  It then expects to communicate with the outside world over the serial port, at a speed of 9600 bits per second, using 8 data bits, no parity bits, and one stop bit (often referred to as 9600bps 8n1).  This was a common method of communication between computers of the day, and in fact this is how many people in the early days of the internet accessed the internet – by using a modem connected to a serial port, at speeds up to 56kbps.  Anyway, to use ROMWack, you connect a second computer to the Amiga via a null-modem cable, and start terminal software with those settings (9600bps 8n1).

Once ROMWack has stopped the machine, it sends text to the terminal, and received input you give from the terminal.

How do you use ROMWack?
When ROMWack first starts, it will send the words rom wack, followed by information on the Amigas internal state, as shown in the picture below (everything below “rom wack” may be different):

ROMWack initial output, click to view in a new tab

ROMWack initial output, click to view in a new tab

If this looks like a load of gibberish to you, than ROMWack isn’t going to be much use to you I’m afraid, but to those who understand it, it gives them a chance to explore what was happening inside the machine.

Here is a list of known commands that work with ROMWack:

TAB – Lists registers
Return key- Display current address and registers values
> – Forward 16 bytes
< – Back 16 bytes
Backspace – Back 2 bytes
CTRL D – Quit Rom Wack
CTRL I – Step through commands at current address
CTRL + – Change value at current address and display them

Type these commands!

REGS – List registers
ALTER – Alters current location

If you enter a number it will think it is an address and set that as the current address.

All this works with versions of Kickstart from the very earliest versions, up until Kickstart 3.0 (v39).  With the extra space needed in the Kickstart ROM as more and more was added, there was apparently no longer room in the 512K Kickstart for all the features of Kickstart 3.0 and ROMWack in EXEC.  So ROMWack was replaced with the Simple Amiga Debugging Kernel (SAD), which works differently to ROMWack.

Here is more information regarding SAD from the Amiga Developers CD 2.1.