Subject: | |
From: | |
Reply To: | |
Date: | Tue, 18 Nov 1997 16:12:10 -0800 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Jon writes:
> move "00120" to secs
> call intrinsic "HPEXTIN" using secs, ... realsecs
There's an important item missing here... it should be:
call intrinsic "HPEXTIN" using secs, ..., realsecs, error
if error ...
> call intrinsic "PAUSE" using realsecs
>
> ...but from debug we can see that in today's run the PAUSE intrinsic is
> behaving as if it was passsed -1, meaning pause for eternity. Could this be
Actually, all we know is that proc_pause's parameter value is now -1.
That doesn't mean it was passed in a -1. There's nothing to stop
proc_pause from changing the value for some reason. Also, there's nothing
to stop PAUSE from changing the floating-point-by-reference into a -1
prior to calling proc_pause. Finally, recall that the value of
the PAUSE parameter could be changed by a control-Y (or other
interrupt) handler, if desired. (e.g., a control-Y handler could
choose to do: realsecs := 0.0 to prematurely terminate the
PAUSE) Note: I'm not suggesting any of the above happened...just
pointing out that the verdict on "-1" isn't in it.
I'd suggest back-tracking and looking to see what value was passed into
PAUSE. (Remember: it's an IEEE real by reference)
> PC=a.0017470c enable_int+$2c
> NM* 0) SP=41846ef0 RP=a.002a8a0c notify_dispatcher.block_current_process+$31c
> NM 1) SP=41846ef0 RP=a.002aae88 notify_dispatcher+$264
> NM 2) SP=41846e70 RP=a.001a4c20 wait_for_active_port+$ec
> NM 3) SP=41846d70 RP=a.001a58a0 receive_from_port+$534
> NM 4) SP=41846cf0 RP=a.00348efc extend_receive+$494
> NM 5) SP=41846af0 RP=a.001bb2d0 proc_pause+$45c
> NM 6) SP=41846970 RP=a.001bbccc PAUSE+$584
> NM 7) SP=418467b0 RP=a.001bb714 ?PAUSE+$8
> export stub: ac1.0006ce54
> NM 8) SP=418464f0 RP=ac1.00000000
Try:
lev 7
dc pc /* should say "PAUSE+$584" ... if not, wrong lev # */
dv psp-#32 /* should show address of realsecs (in hex, probably $4xxxxxxx) */
dv [psp-#32] /* should show value of realsecs (in hex, probably $4xxxxxxx) */
dv sp-#516,1,# /* may be # milliseconds to pause */
/* (the copy within PAUSE, not the copy within */
/* proc_pause) */
--
Stan Sieler [log in to unmask]
http://www.allegro.com/sieler.html
|
|
|