0 Members and 1 Guest are viewing this topic.
Short: Workaround for CSPPC/233 hardware bugAuthor: lesueur@club-internet.fr, frank@phoenix.owl.de (Frank Wille & Emmanuel Lesueur)Uploader: frank@phoenix.owl.deType: hard/miscRequires: powerpc.library or ppc.librarySome CyberStormPPC 604e/233MHz boards seem to suffer from annoyingrandom crashes under WarpOS as well as under PowerUp. They might becaused by some kind of hardware bug, which sets bit 0 or bit 2 of thePowerPC's LR register in certain situations. This will result into aninstruction access fault, when a program returns from a sub routine.If you ever got an instruction access exception where the first digitof 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 affectsCSPPCs 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 resetthose 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 isprovided to rebuild them with vbcc. The PowerUp version can also becompiled with SAS/C and gcc. The WarpOS version with StormC (gcc-WarpOSis not recommended for an exception handler, because of different ABIs).