HP3000-L Archives

November 1997, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Stan Sieler <[log in to unmask]>
Reply To:
Stan Sieler <[log in to unmask]>
Date:
Tue, 18 Nov 1997 16:12:10 -0800
Content-Type:
text/plain
Parts/Attachments:
text/plain (58 lines)
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

ATOM RSS1 RSS2