Subject: How to reboot most Amigas, addendum
To: None <port-amiga@NetBSD.ORG>
From: Bruce Drake <bruce@synxcti.com>
List: port-amiga
Date: 01/23/1997 15:03:47
Last year late, there was a thread that concerned itself with properly
rebooting an Amiga. Originally, there was a complaint that certain Amigas
would not reboot properly from NetBSD because they reach a yellow screen
or some such.
But Ignatios is using the published C= way to reboot the Amiga. You'd
think that would have worked fine, but no. At least, not always.
Well, there is an UNDOCUMENTED way to do it that is more reliable.
It turns out that the Amiga ROMS inspect the status of a bit in the RAMSEY
chip at an address that the purpose of which seems to be just a byte of
memory that is guaranteed to be unset on a power-on.
In any case, the following assembler code will twiddle a bit in this
RAMSEY register, which causes the Amiga's IPL to decide to perform a cold
boot sequence, wiping out any romtags that may or may not be there.
section code
bset #1, $de002
jmp $fc00d2
end
If you have SAS/C, all you have to do to compile this is:
a) asm boot.asm (what I call the code above)
b) slink boot.o boot
That's it.
GRAND ASSUMPTIONS:
1) The MMU is off, and the Amiga's memory map of the ROMS is showing
the ROMs in their proper place in the memory map. This should be
obvious to the experienced given the address of the jmp instruction
above :-)
2) The code to accomplish all other shutdown tasks, including the MMU
management has been done before the above assembler code above is
executed.
3) There is some debate as to whether it is bit 1 or bit 7 that needs to
be twiddled. Bit 1 was selected above because it is known to work
to reboot the A3000 to the point it asks for the superkickstart. I
suspect that bit 7 will work the same way. This implies that there is
only one bit in that byte that is valid, but the one bit could be
mapped to all the other bits. Try bit 7 if you want, it can't hurt.
Try it, let me know how it works. My NetBSD machine is out of commission
at this point (temporarily).
-----------------------------------------------------
Bruce Drake, Software Engineer
Synectics, Inc., 3211 Bramer Dr. Raleigh, NC 27604
(919) 872-1275 USA