Post Reply 
4K HP 67 Games rom attached for testing
10-31-2016, 07:36 AM
Post: #36
RE: 4K HP 67 Games rom attached for testing
(10-30-2016 11:33 PM)Jim Horn Wrote:  The program was terribly useless as it was really, terribly slow. Of course, a '41CL would be lightning fast, eliminating that problem.

A standard '41 already runs 3x as fast as the 67/97, and there are several things that can be done shorter and faster. But still...

(10-30-2016 11:33 PM)Jim Horn Wrote:  Some of the oddities (why EEX 1 instead of 10, etc.) were due to tricks in the '67's timing. They were done as they were faster, not more readable(!).

I wonder if 1/10 s or less makes a difference when a routine runs for about 10 seconds.
But you can also find "E" instead of "1" in some HP41 programs. #-)

(10-30-2016 11:33 PM)Jim Horn Wrote:  Since the '67 had a fixed number of registers, I put the index registers at the (known) top worked a stack down from there. The '41's reconfigurable memory would allow a stack to work up with the SIZE value being the only limit.

Yes, that's an obvious choice which I have been thinking about. But this requires a better understanding of the program. ;-)

(10-30-2016 11:33 PM)Jim Horn Wrote:  As I recall, each function was encoded into a function stack as a two digit number. The INT(value/10) was the function value (each function had a distinct value to allow branching later); the units digit was a priority level - the higher the value, the higher priority which took precedence over the lower values.

Ah, good, that's how I thought it would work. This priority check is done in step 064...064. The lowest level is 0, assigned to the "(" function.

(10-30-2016 11:33 PM)Jim Horn Wrote:  Dedicating an entire register to hold an operator stack value is terribly inefficient but that's all I was able to squeeze into 224 steps. A '41 ROM that has more room for code could consider doing binary packing a whole lot more efficiency.

I think this would get way too slow.

(10-30-2016 11:33 PM)Jim Horn Wrote:  Ah, the days of spending hours and hours to save a millisecond or byte. It wasn't practical but was terrific mental exercise! Best wishes to all who wish to dig into such paleosoftware! Since my rather modified '67 went to a good home decades ago, I have nothing to run this on. Will have to check out the various simulations out there.

A really good one was recently developed in this forum by "Panamatic".

But now let me ask a few questions about your program:

As already posted, I think that the (second) label B near the end of the program is the point where all routines stop and the result is displayed. Pressing [R/S] at this point will set flag 3 and thus simulate a new data entry, as mentioned in the instructions. Is this correct?

As far as I can tell the CHS function requires this additional [R/S]. A simple [f][c] after a calculation does not change the sign of the result. At least it does not in my translated '41 program, only another [f][c] does it. Is this the intended behaviour?

BTW, why did you use label A and B twice? There are other unused labels available, e.g. 8 and 9.

Finally, could you say something about the use of flags 1 and 2? What are they used for?

Dieter
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
HP-67 AOS program to debug - Gene - 10-30-2016, 02:11 AM
RE: 4K HP 67 Games rom attached for testing - Dieter - 10-31-2016 07:36 AM



User(s) browsing this thread: 2 Guest(s)