Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!unido!rwthinf!cip-s02!stefanb From: stefanb@cip-s02.informatik.rwth-aachen.de (Stefan Becker) Newsgroups: comp.sys.amiga.tech Subject: A3000 & changing the Kickstart: SOLUTION Keywords: a3000 mmu kickstart Message-ID: <3122@rwthinf.UUCP> Date: 19 Jul 90 18:46:57 GMT Sender: news@rwthinf.UUCP Distribution: comp Lines: 45 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 +-------------------------+