#: 14606 S12/OS9/68000 (OSK)
15-Mar-92 06:50:50
Sb: #14600-#MM/1 help
Fm: Kevin Darling 76703,4227
To: Steve Wegert 76703,4255 (X)
Steve,
Ooops and thanks! :-)
Turns out there was a piece of code in the vertical interrupt routine left over
from a super old statcall which was meant to wait for screen swaps.
All it's doing (in this case) is waking up the idle shell waiting on keyboard
input in the visible window, and then putting him right back to sleep again...
nothing serious... but that's definitely what's causing the creeping cpu time
reports. Dunno if it would cause tsmon problems, but might. Let's fix it and
see.
Using debug or ded, search for the sequence 2F0A4AAD in windio. You should
find it around offset $2118 in ver 30; the entire sequence we want is: 2F0A
4AAD0008 6716. That code means "move.l a2,-(sp)"... "tst.l 8(a5)"... "beq.s
NoWake". Just change the 67 to 60 (branch if equal -> branch always). Then
save the changed module, reverify it, and make a new bootfile.
BTW, to do this in debug, just call up the command (type "debug"). Then,
dbg: l windio (link to windio)
dbg: msl .r7 .r7+5000 2f0a4aad (mem search from start to start+$5000)
That'll bring up a line something like:
0x00002118+r7 - 2F0A4AAD 00086716 246D0008 302A0008
The address on the left is close to the one we want... we can see the 67 up in
the data shown on the right. So then we change it:
dbg: c 2118+.r7
Debug will then show the first byte (2F), and we can hit ENTER until we're over
the 67, at which time you enter 60 to change that byte. On the next one we
enter "." to get out of the change mode, then enter "q" to quit.
It's really kinda like 6809 debug, except that the fake .r7 register points by
default to the module we've last linked to. best - kevin
There is 1 Reply.
|