Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

How to reboot most Amigas, addendum



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




Home | Main Index | Thread Index | Old Index