HP Forums

Full Version: Screen Blank on HP-67?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I found yet another strange program in my recently added Games Pac. It is a home made card without a label, But since it was lose in the box when I got it, I ran it through the reader to see if it worked. It contains a short program, which makes no sense at all to me, and when I ran it, my screen blanked. Afraid I had somehow loaded a lethal virus or somthing into my HP-67, I by reflex, hit the R/S key. The screen returned, and all registers and their data remained intact. Do you think it is possible to create a "standby mode" for a HP-67? Since the display uses most of the power you could probably keep you're calculator on a long time this way. I am only a novice programmer and when I attempted to fiqure out this program I was at a loss. I did notice that the cosine function on the keyboard blanks the display for about 1 second. Anyone have any clue what I have here?

Hello;

as a so-called novice (and this condition rests for a bit of time only), have you read on how to 'decipher' the keycodes stored as programs? It's an amazing code that is available in many calculators (not only HP) and allows programs to be read back by anyone else.

The HP41 can 'lock' the programs in a way they cannot be read: they can be PRIVATEd by the programmer anytime. Anyway, the HP41 does not use keycodes as the HP67/97 do. I am not aware of this feature existing in these calculators.

Anyway, my question is: can you load the program in this card to the calculator, switch the calculator to PRGM mode and EITHER write down the keycodes OR the instructions in a post so we can have a look at them? This way some of us will be able to guess what does this game program do. I believe others will agree with this.

Thanks.

Yeah sure I can read keycodes, somtimes I have to refer to the manual, but rarely. Sorry should have posted program in the first place, not much you can tell me without that. Anyways I have been less cautious with this program and discovered it only runs for about 30 seconds, then returns to the standard 0.00 with a couple of flashes, probably pause commands. So it doesn't last forever like I thought.

NOTE: You must have a 2 stored in register 9 for it to work or it will display "Error".

Here is the program listing using the HP-67 keypad.

001: F/LBL/A

002: 2

003: 5

004: H/STI

005: F/LBL/0

006: F/DSZ

007: GTO/0

008: H/ABS

009: 9

010: RCL/9

011: DEVIDE (for lack of a symbol on the keyboard)

012: 6

013: H/X-EXCHANGE-I

014: F/LBL/1

015: RCL/I

016: F/-X-

017: F/DSZ

018: GTO/1

019: 0

020: R/S

021: R/S

022: F/CL REG

023: CLX

024: ENTER

025: ENTER

026: ENTER

027: R/S

028: P-Exchange-S

029: H/X-EXCHANGE-I

030: STO/I

031: R/S

032: RCL I

033: F/LBL/D

034: F/LBL/E

035: RCL/I

036: F/LBL/C

037: GTO I

038: 9

039: 8

040: CLX

041: R-DOWN (STACK SHIFT DOWN)

042: 4

043: EEX

044: R-UP (STACK SHIFT UP)

045: H/STI

046: H/Yx

047: G/ARROW P (or the 1 key)

048: F/COS

049: F/TAN

050: RCL/8

051: F/X-EXCANGE-Y

052: GTO/4

053: E+

054: F/SIN

055: F/X<0

056: G/X<Y

057: 1/x

058: H/E-

059: H/X-EXCHANGE-I

060: CLX

061: 5

062: CLX

063: CHS

064: H/ABS

065: R-UP (STACK SHIFT UP)

066: R-DOWN (STACK SHIFT DOWN)

067: H/Yx

068: H/ENG

069: F/SIN

070: F/-X-

071: F/X>0

072: F/ISZ

073: F/FIX

074: H/ENG

075: H/X-EXCHANGE-I

076: H/E-

077: F/P-EXCHANGE-S

078: F/H-ARROW (or the 3 key)

079: H/PIE

080: F/COS

081: H/1/x


082: H/X-EXCHANGE-Y

083: STO/8

084: R/S

085: RCL/I

086: 6

087: 5

088: EEX

089: CHS

090: 4

091: EEX

092: R/S

093: H/SPACE

094: F/-X-

095: F/SQUARE ROOT

096: R-DOWN (STACK SHIFT DOWN)

097: R-DOWN (STACK SHIFT DOWN)

098: F/LOG

099: F/LN

100: F/X=O

101: H/SF/0

102: H/CF/0

103: H/F?/0

104: H/RAD

105: H/X-EXCHANGE-I

106: G/FRAC

107: H/H.MS+

108: F/INT

109: H/1/x

110: G/X=Y

111: GTO/5

112: DSP/2

Sorry, Not such a good listing, hope it helps.

> Yeah sure I can read keycodes, somtimes I have to refer to the manual, but rarely.

Yes, but can you read hp67 programs? This listing is just
gibberish, not to mention that it has mistakes:

e.g.

051: F/X-EXCANGE-Y

056: G/X<Y

How about typing in the command codes. Then I can
convert it to an hp67 listing automatically.

Sorry, I never have actualy interchanged software with others, (and 112 steps is alot to type) So I've kind of developed my own, "Language" which it seems I am the only one capable of reading, Sorry should have thought ahead. I can see why it must be hard to fiqure out, I somtimes end up typing so fast I skip letters, I'm sure that's annoying. Anyway's I have a freind of mine looking at the card right now so the best I can do is give you a overview of what that listing means. EXCHANGE, means exactly what it say's, although I may have misspelled it a few times, I use it as a substitute for the exchange symbol on the keyboard, like exchaning X-Y stack positions would be X-EXCHANGE-Y. Slashes are a bad habbit from my own language, treat them like spaces. Shift key's are shown first. And R-DOWN means stack shift down or H-8. The X<Y is a conditional test. Sorry, I may be ok at writing programs, but I can't come close to writing them on paper! Gota practice that more, with a card reader it's kind of inconveinent. If you can't fiqure out my listing, don't worry, my freind is pretty good at these things and well probably fiqure it out.

Hello, Ray;

sorry, I did not lit my computer for these two days.

I'm gonna have a look at the listing and I'm posting you any information I can get from it.

Cheers.

One more thing, I may have understated my abillity with the term "novice", I am more of a "average programmer". I can write pretty complex programs, mostly games, my most recent game was Tic-Tac-Toe. I can also read programs and keycodes. The reason I called myself a "novice" is because I can't do synthetic programming or some of those other expert tricks mentioned here. I also recently discovered that I am no good at writing listings! Hope this gives you a better idea where I'm at.

Ray wrote on 2 Nov 2001, 11:30 p.m.:

> The X<Y is a conditional test.

No it isn't, there is no X<Y on the hp67, there is a X<=Y? and a X>Y?

By gibberish I meant that

a) some instructions were not hp67 instructions, and

b) some parts of the program did not make sense, e.g.

X=0?

SF 0

CF 0

It doesn't matter whether X is 0 or not since F0 will be cleared anyway.

**vp

Sorry, I myself was not aware of how I printed the conditional, the command X=<Y is what I meant. I know some commands don't make sense. That's why I wanted you to look at it, makes no sense to me, that example you showed is correct. (strange huh?) Anyway's, I can't seem to find any non HP-67 commands. Yes there is a space command, I assume it was written on 97. That's all I can say. If you can't fiqure my listing out, don't worry, I will find out how it works someday. Thanks for trying.

Hello;

In a first look the program has many confusing lines, like the sequence (step 086) 6, 5, EEX, CHS, 4, EEX, R/S, and others like (step 101) SF 0, CF 0, F? 0, RAD and (step 059) x<>I, CLx, 5, CLx, CHS (changing sign of a zero?). I do not really understand. Well, what calls my attention is step 037: GTO I. If I contents is a negative number, so the next step can be any of the next ones. The program pointer can land anywhere. And that leaves us with a question: which of the next steps perform a valid operation when the correct number is stored in I?

That what makes difficult understanding some programs if at least one example for each available calculation is furnished. As mentioned before, the program is probably a game, and games are much difficult writing and debugging.

Well, I did not give up at all. I just decided to post a first impression. And there are some codes that can be shorten, if you want to post listings with a better, easier-to-read look. I'll find a bit of time to rewrite your listing, if you allow me to. Right?

Cheers.

(In a way or another, each of us is a novice, an average-user, an expert, a guru... I'm considered by some as above average; I consider myself between novice and average; some do not even consider me enough to be considered... and I do not even write correctly. Well, keep writing and people will read and answer. If no answer appears, you may be a guru with an `answerless` question... or a novice with a question so bellow the average that does not deserve an answer... or one did not read it yet. Regards)

Hello;

I have rewriten the listing in a way I believe easies the reading.

Thanks.

001: LBL A
002: 2
003: 5
004: STI (STO I)
005: LBL 0
006: DSZ
007: GTO 0
008: ABS
009: 9
010: RCL 9
011: ÷
012: 6
013: x<> I
014: LBL 1
015: RC I (RCL I)
016: -X-
017: DSZ
018: GTO 1
019: 0
020: R/S
021: R/S
022: CL REG
023: CLx
024: ENTER
025: ENTER
026: ENTER
027: R/S
028: P<>S
029: x<> I
030: ST I (STO I)
031: R/S
032: RC I (RCL I)
033: LBL D
034: LBL E
035: RCL I
036: LBL C
037: GTO I
038: 9
039: 8
040: CLx
041: Rv (roll-down)
042: 4
043: EEX
044: R^ (roll-up)
045: STI (STO I)
046: y^x
047: R->P (TO POLAR)
048: COS
049: TAN
050: RCL 8
051: x<>y
052: GTO 4
053: SIGMA+ (E+)
054: SIN
055: x<0
056: x<=y (instead of x<y)
057: 1/x
058: SIGMA- (E-)
059: x<> I
060: CLx
061: 5
062: CLX
063: CHS
064: ABS
065: R^
066: Rv
067: y^x
068: ENG
069: SIN
070: -X-
071: x>0
072: ISZ
073: FIX
074: ENG
075: x<> I
076: SIGMA- (E-)
077: P<>S
078: H<-HMS (to decimal degrees)
079: PI
080: COS
081: 1/x
082: x<>y
083: STO 8
084: R/S
085: RC I (RCL I)
086: 6
087: 5
088: EEX
089: CHS
090: 4
091: EEX
092: R/S
093: SPACE
094: -X-
095: SQRT
096: Rv
097: Rv
098: LOG
099: LN
100: x=O
101: SF 0
102: CF 0
103: F? 0
104: RAD
105: x<> I
106: FRAC
107: H.MS+
108: INT
109: 1/x
110: x=y
111: GTO 5
112: DSP 2

I still cannot see a reasonable meaning for some sequences...

Regards.

Let’s have a look at the program.

001: LBL A 
002: 2
003: 5
004: STI
005: LBL 0
006: DSZ
007: GTO 0
A single loop that seems to be for timing purposes.
008: ABS 
009: 9
010: RCL 9
011: ÷
Here comes the need for anything but zero in register 9.
012: 6 
013: x<> I
Whatever was in register I is now in X; I=6.
014: LBL 1 
015: RC I (RCL I)
016: -X-
017: DSZ
018: GTO 1
This seems to be a countdown engine. It counts from 6 to 1. When I reaches zero, it goes out of the loop.
019: 0 
020: R/S
0.00 will be shown when I-register reaches zero. The program stops. I don’t think it is for input purposes, cause nothing is stored in here and stack, numbered registers will be cleared, as seen in next steps.
021: R/S 
If R/S is pressed, the program stops again.
022: CL REG 
023: CLx
024: ENTER
025: ENTER
026: ENTER
027: R/S
If R/S is pressed again, all primary registers (will secondary be cleared too? I don’t remember) and stack registers will be cleared. If a number is entered here, it will be first stored in I and then it will be lost (see next steps)
028: P<>S 
Changes all primary registers (cleared in previous steps) to secondary.
029: x<> I 
030: ST I
For me, this sequence is the same as RC I or CLx RC I. I didn’t delve into the rest of the program, but it seems a bit confused in a first look.
Please, forgive-me if there is anything wrong. I don’t have neither an HP67 in hands (I do not own one), nor its Owner’s Handbook (I have one at home). All I wrote in here was by heart, based in my knowledge about stack manipulations.
031: R/S 
032: RC I
033: LBL D
034: LBL E
035: RCL I
036: LBL C
037: GTO I
038: 9
039: 8
040: CLx
041: Rv (roll-down)
042: 4
043: EEX
044: R^ (roll-up)
045: STI (STO I)
046: y^x
047: R->P (TO POLAR)
048: COS
049: TAN
050: RCL 8
051: x<>y
052: GTO 4
053: SIGMA+ (E+)
054: SIN
055: x<0
056: x<=y (instead of x<y)
057: 1/x
058: SIGMA- (E-)
059: x<> I
060: CLx
061: 5
062: CLX
063: CHS
064: ABS
065: R^
066: Rv
067: y^x
068: ENG
069: SIN
070: -X-
071: x>0
072: ISZ
073: FIX
074: ENG
075: x<> I
076: SIGMA- (E-)
077: P<>S
078: H<-HMS (to decimal degrees)
079: PI
080: COS
081: 1/x
082: x<>y
083: STO 8
084: R/S
085: RC I (RCL I)
086: 6
087: 5
088: EEX
089: CHS
090: 4
091: EEX
092: R/S
093: SPACE
094: -X-
095: SQRT
096: Rv
097: Rv
098: LOG
099: LN
100: x=O
101: SF 0
102: CF 0
103: F? 0
104: RAD
105: x<> I
106: FRAC
107: H.MS+
108: INT
109: 1/x
110: x=y
111: GTO 5
112: DSP 2

Hope it helps a bit for now. And yes, I did not give up yet; my time is somewhat short and I took about 20 minutes to write this down. (This spare time was taken from a between-classes interval). In fact, it’s almost relaxing time...

Cheers.