Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!nfsun!eklektik!danbabcock From: danbabcock@eklektik.UUCP (/dev/ph1) Newsgroups: comp.sys.amiga.tech Subject: Two bug reports Message-ID: <5177@eklektik.UUCP> Date: 15 Aug 90 03:42:14 GMT Reply-To: danbabcock@eklektik.UUCP (/dev/ph1) Organization: Computers, Gerbils, and Games in the Basement, Pgh, PA Lines: 43 The following are two bug/feature reports that I emailed to Commodore. I'm posting them because I'm sure some other people are interested, and I'm not sure if Commodore received my email (no response as of this writing). I noticed a problem with task exceptions while writing a program that uses them (a serial.device compatible driver for a super-cheap multiserial, multiparallel board that works with any Amiga - I use a task exception to handle non-queued breaks). I hear you groaning already. Yes, I *have* read the warnings about using task exceptions, but this code only uses Exec - and Exec supports exceptions internally, right? Well, I found a case where it (Exec) doesn't. Exceptions fail to work when the task is (at the time of the exception) in Wait() and the exception routine itself uses Wait(). The problem is that Wait() writes over tc_SigWait. The solution is very simple: the exception code should save tc_SigWait before calling Wait(), and restore it afterwards. ---------------------------------------------------------------------------- I found a bug in the skeleton device driver. The bug appears in both the printed 1.3 RKM and the latest (to the outside world, at least) electronicly distributed version (as well as the earlier versions). The problem is in the flush routine. In the following code (the tail end of the flush routine)... tst.b d0 beq.s 1$ bsr InternalStart 1$: bra TermIO ...the BEQ should be a BNE. I could explain the "why", but you probably won't understand (or trust me :-)) until you look at the code for yourself anyway. I'm surprised that no one reported this one before, although I assume many people noticed it and fixed it in their own drivers. -- Dan Babcock People/Link: DANBABCOCK Internet: danbabcock@eklektik.pgh.pa.us <-- Note: Invalid on August 17+ Voice: (412)-373-1753 <-- up to and including August 17 New Voice: (814)-862-2931 <-- August 19+ (I'm going off to college...)