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 +-------------------------+