rsfinn@athena.mit.edu (Russell S. Finn) (03/15/90)
Using TMON and about half an hour when I should have been working on a problem set, I was able to determine why _Launch 2.5 freezes the mouse on a Macintosh Plus. To fix this problem, use ResEdit on a copy of _Launch 2.5; open the CODE 3 resource; at offset $15D2, replace $4879 0080 0000 with $4878 0A7C 4E71. (Obviously, you could also do this with a file editor.) I have not tried this patch on any other version. The bug is that MaxMem is being called with an argument of $00800000, instead of the address of a longword (IM II-38); so when the glue tries to store the "grow" value at that address, it accesses something in the I/O space which (presumably) resets the SCC and freezes the mouse. (I didn't actually look it up in the Hardware Manual, but that's my best guess.) The patch substitutes the address of the longword at ApplScratch+4, which ought to be fairly safe until the author revises the program. Apparently, the problem is harmless on ADB-equipped machines, but you could apple the patch anyway to be safe. (Note: It's not my intention to embarass Lunarmobiscuit by hanging his dirty laundry out in public; my intentions were (a) to provide a potentially instructive lesson to a technically oriented audience, and (b) to let Luni know what the problem was, since I couldn't find his E-mail address anywhere in the documention.) -- Russell S. Finn rsfinn@athena.mit.edu
freek@fwi.uva.nl (Freek Wiedijk) (03/15/90)
In article <1990Mar15.052046.20348@athena.mit.edu> rsfinn@athena.mit.edu (Russell S. Finn) writes: > >Using TMON and about half an hour when I should have been working on a >problem set, I was able to determine why _Launch 2.5 freezes the mouse >on a Macintosh Plus. > >The bug is that MaxMem is being called with an argument of $00800000, >instead of the address of a longword (IM II-38); This should be a lesson to all: NEVER program in C! :-) :-) :-) -- Freek "the Pistol Major" Wiedijk Path: uunet!fwi.uva.nl!freek #P:+/ = #+/P?*+/ = i<<*+/P?*+/ = +/i<<**P?*+/ = +/(i<<*P?)*+/ = +/+/(i<<*P?)**