Short: Workaround for CSPPC/233 hardware bug Author: lesueur@club-internet.fr, frank@phoenix.owl.de (Frank Wille & Emmanuel Lesueur) Uploader: frank phoenix owl de Type: driver/other Requires: powerpc.library or ppc.library Architecture: m68k-amigaos Some CyberStormPPC 604e/233MHz boards seem to suffer from annoying random crashes under WarpOS as well as under PowerUp. They might be caused by some kind of hardware bug, which sets bit 0 or bit 2 of the PowerPC's LR register in certain situations. This will result into an instruction access fault, when a program returns from a sub routine. If you ever got an instruction access exception where the first digit of LR is not '0', then this program might solve most of your troubles. Whether this problem comes from a defective board, or a bad power supply, or from too much heat is unknown. But surprisingly it only affects CSPPCs with a 233 MHz CPU. 200 MHz is fine, I have one for comparison! This archive contains two exception handlers, one for PowerUp (CSPPC233Fix_ppc) and one for WarpOS (CSPPC233Fix_wos), which reset those trashed bits in case of an exception which is recognized as the "LR-Bug problem". The PPC program is able to continue after LR was fixed. USAGE: CSPPC233Fix_ppc (PowerUp version): ---------------------------------- Can be started from CLI and from Workbench. CLI Usage: LRBug NOREQ/S,QUIET/S,NOWAIT/S NOREQ: don't ask before attempting to restart a task. QUIET: don't write messages with kprinf() when restarting a task. NOWAIT: don't install a handler, just restart crashed tasks and quit. WB Usage: Tooltypes NOREQ, QUIET, and NOWAIT, with the same meaning. To remove the handler, send a CTRL-C. CSPPC233Fix_wos (WarpOS version): --------------------------------- Just start from CLI. No options. To remove the handler, press CTRL-C. Whenever an LR-Bug occurs, the hit will be printed to stdout. If you don't want that, redirect output to NIL:. All other exceptions will be invoke the WarpOS exception window, as usual. REBUILD: The full source text of both programs is included and a makefile is provided to rebuild them with vbcc. The PowerUp version can also be compiled with SAS/C and gcc. The WarpOS version with StormC (gcc-WarpOS is not recommended for an exception handler, because of different ABIs).