Workaround for 33S ->HMS bug



#14

If you are using the 33S on an NCEES civil engineering or surveying exam, then you may be concerned about the ->HMS bug described here

Basically, the 33S ->HMS function works incorrectly for certain negative values. So far as is known, it works correctly for all positive values.

A simple workaround for this bug is to load the following program:

LBL U

CF 4

x<0?

SF 4

FS? 4

+/-

-> HMS

FS? 4

+/-

CF 4

RTN

To use: Key in XEQ 5 for the ->HMS function, instead of [Right-Shift] 5

This program simply converts negative input values to positive values, because the ->HMS function appears to work correctly for positive values. If the input value was originally negative, then the output value is changed back to negative. If the input value was originally positive, then neither the input nor the output values are affected.

The program uses Label U and Flag 4. You can omit the last CF 4 statement if you don't mind seeing the "4" annunciator in the display.

For PE and PLS candidates in California, note that the NCEES calculator rules are not enforced on the state-specific land surveying and civil surveying exams. For California-specific engineering and surveying exams, the ideal workaround is to use an HP48.

Edited: 5 Sept 2004, 3:08 p.m.


#15

Thanks for the code, but:

HP should be fixing this (and other) bug(s).

Surely the product is not up to the specification that HP claim so HP should fix it?


#16

There is no easy way to fix the bugs in my 33S. In practice, they will not be corrected unless (1) HP redesigns the 33S, and (2) offers to swap old buggy units for new improved ones.

In my opinion, yes, HP should do this. Unfortunately, there's no guarantee that they actually will. So for now, I'm stuck with my 33S in its present condition, and I have to make the best of it. I can't put my exam on hold pending an HP decision that may never come.

For my purposes, the only bug that I am concerned about is the ->HMS bug, and I can avoid it by pressing XEQ U instead of [Right-Shift] U.


#17

Agreed (and aggrieved!)

I use the XEQ U for a very simple HMS+ function that I use quite often on my HP32Sii (which I miss from my HP67):

LBL U

-> HR

x<>y

-> HR

+

-> HMS

RTN

Having to use one of the valuable 26 program tags to correct a bug is not ideal (but is understandable in your circumstances). I'm probably one of those holding off buying this RPN (rather than a RPL) calculator until HP sort out the bugs on the HP33S - or bring out the HP43S! (Cue wish list 'calculator HP never made').

Perhaps if HP had a bit of competition in the programmable / RPN / exam market they would sort out (and reduce the UK price of) this calc. Or perhaps they would just withdraw from the market because HP don't seem to want to compete at this level of the calc market anymore?

#18

Norris,

Clever work!

The good thing about the 33s being buggy is that we get to see clever programming posted.


Best regards,

Bill


Now, for a tougher challenge, write a program which works around the "-0" problem-----


#19

As far as I know (please correct me if I am wrong), the only way to generate the -0 bug is to deliberately enter 0, followed by +/-.

NOTE: I was wrong and was corrected. Therefore, the workarounds discussed below do not, in fact, work. But I am leaving this post up for continuity

My recommended workaround for this bug is as follows:

** Don't enter 0, followed by +/- **

This workaround is simple and causes me minimal inconvenience, yet it seems to be working well in practice.

**********

If it was really necessary, I suppose you could "fix" the ->theta,r function with the following:

LBL T

x=0?

ABS

y,x->theta,r

RTN

And a similar program would address the COMPLXLN function; just change the first line to LBL B and the fourth line to CMPLXLN.

However, I prefer my original suggested workaround, and that's what I'm using, at least for now.

Edited: 7 Sept 2004, 8:40 p.m. after one or more responses were posted


#20

Hi Norris,

I am not so sure it is so simple as you state-----

take a look at this:

http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv014.cgi?read=61093


http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv014.cgi?read=61086


I have not re-read the whole business---I just recalled that Karl's analysis existed and I thought you aught to see it!

Best regards,

Bill

Edited: 7 Sept 2004, 1:53 p.m.


#21

Yes, I think you may be right. I'll give it some more thought.

#22

OK, here is a new & improved workaround for the 33S polar conversion bug. I think this one does work, but try it out for yourself.

LBL T

CF 4

x=0?

SF 4

FS? 4

Rv (roll down)

FS? 4

0

CF 4

x<>y (swap)

x=0?

SF 4

FS? 4

Rv (roll down)

FS? 4

0

CF 4

x<>y (swap)

y,x->theta,r

RTN

To use: key in XEQ 4 for conversion to polar coordinates, instead of [left-shift] 4.

Program uses Label T and Flag 4. It simply checks the x- and y-registers for zeros. If any are found, they are overwritten with nice fresh zeros before the conversion is performed. Nonzero values are unaffected.

For whatever reason, this routine seems to eliminate the silly "rotating sequence of answers" previously described by Karl Schneider here.

For example, start with (0,3). Convert to polar coordinates with [left-shift] 4, then back to rectangular coordinates with [right-shift] 4. You can repeat several times and watch the values change. But this will not happen if you load the program above, and substitute XEQ 4 for [left-shift] 4.

It's not entirely clear to me why this should work, but it seems like maybe it does.

Edited: 7 Sept 2004, 9:06 p.m.


#23

This version is better. It overwrites the zeroes more elegantly, without the need for a flag. Still seems to work, as far as I can tell.

LBL T

x=0?

CLx

x<>y (swap)

x=0?

CLx

x<>y (swap)

y,x->theta,r

RTN


#24

Norris --

Good work on the elegant and robust workaround for the HP-33S polar-conversion bug. Also, my thanks to you and others for crediting my earlier posts on the "bug" topics.

If you have any idea about the HMS bug I analyzed earlier, you are welcome to attempt a "fix". Quite frankly, I'm not sure what that problem is.

-- KS


#25

As far as I can tell, the crude workaround posted
here effectively handles the HMS bug. It is based on your previous posting, which indicates that the bug only affects negative values. The workaround simply changes negative values to positive, runs the conversion on the positive value, then changes the result back to negative.

I am relying on this workaround, so please let me know if there are any problems with it.

#26

Norris,

Congratulations!

This is quite interesting indeed! Yes, the "rotating answers" which are produced by the built-in function are indeed "cured" by your boolean test/replace.

In fact, you have solved both the "-0" problem and the rotating answers in the case of y=y, x=0 Rect-->Polar


Apparently, the built-in function of Polar-->rectangular (denoted "-->y,x") functions correctly.


(I only checked your second, more elegant solution--the one without resorting to flags)

Best regards,

Bill


Possibly Related Threads…
Thread Author Replies Views Last Post
  Programming workaround for "prepend" HP PRIME Marek Russ 4 2,046 11-29-2013, 05:46 AM
Last Post: Marek Russ
  HMS commands Geoff Quickfall 6 2,308 10-14-2013, 06:27 PM
Last Post: Tim Wessman
  A workaround for the inefficient SUBST command peacecalc 3 1,411 07-03-2013, 05:17 PM
Last Post: Gilles Carpentier
  8/60 -> HMS PGILLET 47 11,561 05-04-2013, 11:38 AM
Last Post: Thomas Klemm
  Bad News for 33S: a bug shared with 35s bill platt 20 5,493 03-25-2012, 03:57 AM
Last Post: Paul Dale
  Re: more HMS, aTIME, 34s display, 41c bugs? Christopher Johnson 0 902 03-05-2012, 11:20 AM
Last Post: Christopher Johnson
  more HMS, aTIME, 34s display, 41c bugs? Christopher Johnson 2 1,203 02-25-2012, 10:06 PM
Last Post: Luiz C. Vieira (Brazil)
  wp 34s vs 41c hms+ Christopher Johnson 9 2,708 02-23-2012, 10:04 AM
Last Post: Christopher Johnson
  HP-15C LE : Workaround for the high current spike Lyuka 14 3,943 01-12-2012, 04:43 AM
Last Post: Lyuka
  H to HMS Bug in HP 15C LE? Eddie W. Shore 2 1,082 09-26-2011, 11:22 AM
Last Post: Eddie W. Shore

Forum Jump: