The Museum of HP Calculators

HP Forum Archive 09

[ Return to Index | Top of Index ]

Timer-Problems with virtual 41CX (Stopwatch)
Message #1 Posted by Simon Strach on 8 Jan 2003, 7:49 p.m.

(Does anyone in this forum has an idea to fix this problem) ----------------------------------------------------------

Quoting an email to Warren Furlow:

Dear Warren,

the VR7 ist the best emulation of the 41 yet, I tried several different too.

But there seems to be a problem with the Time-Module (all of them, I tried several combinations).

I need to build a countdown-timer for last second bids in EBAY, e.g.

-5 SETSW RUNSW SW

Result on my Real 41CX:

-04:59:59.9 and counting UP

Result on Virtual 41CX:

00:00:00.00 and counting UP

So the timer on the VR7 doesn't seem to carry the negative sign, instead immediatly zeroes the SW and counts up.

You might like to try Yourself.

Is there a fix or a workaround for this?

I'd be looking forward to hear from you soon,

Yours, Simon Strach, Koeln, Germany

P.S: Here is the listing I had to do on the VR7 to circumvent this problem, which of course is not as elegant:

01 LBL "EBAY" 02 CLRALMS 03 FIX 04 04 "TIME ENDING?" 05 PROMPT 06 STO 00 07 "DAY ENDING?" 08 PROMPT 09 DATE 10 INT 11 - 12 24 13 * 14 ST+ 00 15 RCL 00 16 .05 17 HMS- 18 STO 99 19 CLST 20 RCL 99 21 "^^" 22 XYZALM 23 "WAIT" 24 AVIEW 25 STOP 26 9 27 STO 70 28 LBL 70 29 TONE IND 70 30 DSE 70 31 GTO 70 32 LBL 01 33 RCL 00 34 TIME 35 HMS- 36 X<0? 37 GTO 10 38 VIEW X 39 GTO 01 40 LBL 10 41 CLX 42 FIX 02 43 " END" 44 AVIEW 45 END

      
Re: Timer-Problems with virtual 41CX (Stopwatch)
Message #2 Posted by Christoph Giesselink on 9 Jan 2003, 1:40 p.m.,
in response to message #1 by Simon Strach

That

-5 SETSW RUNSW SW

fails is a bug in the V41 rev. 7A/8BETA1 sources.

The bug is in modul HP41Kernel.cpp.

In function A_TimerProc() the line

if (pThis->a_time>9999999999999)

must be replaced with

if (pThis->a_time>99999999999999)

and in function B_TimerProc() the line

if (pThis->b_time>9999999999999)

must be replaced with

if (pThis->b_time>99999999999999)

. After the changes the program above works like expected.

Patching the V41.EXE Release 7A file with a HEX editor:

Addr  old   new
A6E3: 18 -> F3
A6E4: 09 -> 5A
A6EE: 9F -> 3F
A6EF: 72 -> 7A
A6F0: 4E -> 10
A873: 18 -> F3
A874: 09 -> 5A
A87E: 9F -> 3F
A87F: 72 -> 7A
A870: 4E -> 10

Greetings from the Champion/Lewis/Clarke/Yorke chip emulation specialist ;-)

Christoph


[ Return to Index | Top of Index ]

Go back to the main exhibit hall