[comp.sys.amiga.tech] A3000 & changing the Kickstart: SOLUTION

stefanb@cip-s02.informatik.rwth-aachen.de (Stefan Becker) (07/20/90)

Hi!
Two days ago I posted a question about how to change the Kickstart in the A3000 at runtime. 
Today I have done some hacking and found a solution (the program below).

To change the Kickstart, you start the program and reset the computer. After this, the reset 
code calculates the ROM checksum and thinks that the Kickstart image is invalid. Therefore it
will load a new one. Now you can use the Kickstart selection menu to switch to the new system
software.

BEWARE: No safety checks are done! Use at own risk.

Compilation with Aztec-C V5.0a: cc -sa RemoveKS; ln RemoveKS -lc

--- cut here ----------------------------------------------------------------------
/*** RemoveKS.c ***/
main()
{
 printf("Removing Kickstart...\n");

#asm
         machine  mc68020
         mc68851
         xref     _LVODisable
         xref     _LVOSuperState

Start:
         move.l   $4,a6                ; get ExecBase
         jsr      _LVODisable(a6)      ; disable interrupts
         jsr      _LVOSuperState(a6)   ; go to supervisor mode
         clr.l    -(sp)                ; clear top of stack
         pmove    (sp),tc              ; disable MMU
         move.l   #$0,$7FFFFFC         ; change Kickstart
loop     bra      loop                 ; infinite loop
#endasm
}
--- cut here ----------------------------------------------------------------------

Have a nice day

	Stefan

Mail	: Stefan Becker, Holsteinstrasse 9, 5100 Aachen, West Germany +-------+
Phone	: +49-241-505705	FIDO: 2:242/7.6	    +-----------------+	  Call|
InterNet: stefanb@cip-s02.informatik.rwth-aachen.de |Place free for ad's  now!|
UUCP	: ..mcvax!unido!rwthinf!cip-s02!stefanb	    +-------------------------+