Post Reply 
HP-25 Emulators suggestion
02-06-2024, 04:51 PM (This post was last modified: 02-06-2024 04:52 PM by Namir.)
Post: #1
HP-25 Emulators suggestion
For anyone out there who has and will implement HP-25 emulators, how about ading GSB and RTN commands using line numbers at least? There are aviable shift keys for these two commands on the HP-25 keyboard.

Namir
Find all posts by this user
Quote this message in a reply
02-06-2024, 06:07 PM
Post: #2
RE: HP-25 Emulators suggestion
RPN-25 from CuVee Software appears to do precisely that:

http://www.cuveesoft.ch/rpn25/

In addition to a whole bunch of other added features, such as labels.
Visit this user's website Find all posts by this user
Quote this message in a reply
02-06-2024, 09:59 PM
Post: #3
RE: HP-25 Emulators suggestion
For an implementation using original program tokens, there are only 16 free, so that would limit the GSB line numbers.
Find all posts by this user
Quote this message in a reply
02-06-2024, 11:21 PM (This post was last modified: 02-06-2024 11:24 PM by Valentin Albillo.)
Post: #4
RE: HP-25 Emulators suggestion
.
Hi, Namir,

(02-06-2024 04:51 PM)Namir Wrote:  For anyone out there who has and will implement HP-25 emulators, how about ading GSB and RTN commands using line numbers at least? There are aviable shift keys for these two commands on the HP-25 keyboard.

You asked the very same question about the HP-12C in another thread. It's not a question of available locations on the keyboard, Namir, it's a question of available keycodes.

In both the HP-12C and the HP-25, each programmable instruction occupies one byte, i.e. one keycode of the 256 available. If you were to add GSB to any of those machines you'd need 50 keycodes for GSB 01 to GSB 49 (HP-25) plus RTN, and you simply do not have that many available, only 16 are unused as Teenix just said.

This is also the reason why on the HP-12C, even though there are 20 data registers available (R0 to R9 and R.0 to R.9) (Owner's Handbook p.24) Storage register arithmetic (STO+, STO-, STOx, STO/) is possible with only registers R0 to R4.

Why ? Because there aren't enough keycodes available for R5 and beyond, let alone for GSB 01 to GSB 99. On the other hand, the HP-15C programmable instructions (700 in all) can use one or two bytes of program memory and this solves the problem of keycode availability.

Regards.
V.

  
All My Articles & other Materials here:  Valentin Albillo's HP Collection
 
Visit this user's website Find all posts by this user
Quote this message in a reply
02-06-2024, 11:55 PM (This post was last modified: 02-06-2024 11:56 PM by brouhaha.)
Post: #5
RE: HP-25 Emulators suggestion
(02-06-2024 04:51 PM)Namir Wrote:  For anyone out there who has and will implement HP-25 emulators, how about ading GSB and RTN commands using line numbers at least? There are aviable shift keys for these two commands on the HP-25 keyboard.

Is there a drawback to using an HP-29C emulato? The HP-29C is for the most part a superset of the HP-25, and has LBL and GSB.
Find all posts by this user
Quote this message in a reply
02-07-2024, 12:45 AM
Post: #6
RE: HP-25 Emulators suggestion
(02-06-2024 09:59 PM)teenix Wrote:  For an implementation using original program tokens, there are only 16 free, so that would limit the GSB line numbers.

How does the HP-33E/C handle this?
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 01:00 AM (This post was last modified: 02-07-2024 01:07 AM by teenix.)
Post: #7
RE: HP-25 Emulators suggestion
(02-07-2024 12:45 AM)Thomas Okken Wrote:  How does the HP-33E/C handle this?

They have GSB 01 -> GSB 49 in the program token set.

The 25 wastes a lot of tokens with X Y comparisons being hard coded like if X = Y GTO 00, if X <= Y GTO 01 etc, whereas the 33C skips a following GTO N token depending on the comparison result.

If the 25 had similar tokens, then there would be a lot more for GSB's. I guess though that the designers thought why bother with such a limited 49 step program space and there might not have been the ROM space to implement it.

cheers

Tony
Find all posts by this user
Quote this message in a reply
02-07-2024, 01:41 AM
Post: #8
RE: HP-25 Emulators suggestion
Well, if there's 16 free opcodes, that would be enough to add a few:

GSB 30
GSB 40
RTN

i.e. only support GSB to a few specific line numbers. Then you could have one or two small subroutines, which can occasionally make sense with a 49-step program memory.
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 08:59 AM (This post was last modified: 02-07-2024 09:02 AM by J-F Garnier.)
Post: #9
RE: HP-25 Emulators suggestion
(02-06-2024 11:55 PM)brouhaha Wrote:  
(02-06-2024 04:51 PM)Namir Wrote:  For anyone out there who has and will implement HP-25 emulators, how about ading GSB and RTN commands using line numbers at least? There are aviable shift keys for these two commands on the HP-25 keyboard.

Is there a drawback to using an HP-29C emulato? The HP-29C is for the most part a superset of the HP-25, and has LBL and GSB.

This was my thought too. However, the conditional test set is different, as discussed for instance here.

If for some reason a 25C+ with GSB/RTN is desired, it may be easier to start from the 29C and change the conditionals to the 25C set.
Also, the SST/BST placement should be aligned to the 25C. So updating a physical 25C to a 25C+ (or could we name it 26C ? a never-used model number) would just involve putting a few labels for the new g-functions.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 10:16 AM
Post: #10
RE: HP-25 Emulators suggestion
(02-07-2024 01:00 AM)teenix Wrote:  The 25 wastes a lot of tokens with X Y comparisons being hard coded like if X = Y GTO 00, if X <= Y GTO 01 etc, whereas the 33C skips a following GTO N token depending on the comparison result.

No. On the HP-25, comparisons and GTO are separate instructions, taking up 8 and 50 opcodes, respectively.
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 11:04 AM
Post: #11
RE: HP-25 Emulators suggestion
(02-07-2024 10:16 AM)Thomas Okken Wrote:  No. On the HP-25, comparisons and GTO are separate instructions, taking up 8 and 50 opcodes, respectively.

Sorry, I had the wrong data file open, it was for the HP-55

The 25 has 63 spare program codes according to my info. That would mean you could implement GSB 01 -> 49 and have RTN as well.
Find all posts by this user
Quote this message in a reply
02-07-2024, 01:51 PM
Post: #12
RE: HP-25 Emulators suggestion
(02-07-2024 11:04 AM)teenix Wrote:  
(02-07-2024 10:16 AM)Thomas Okken Wrote:  No. On the HP-25, comparisons and GTO are separate instructions, taking up 8 and 50 opcodes, respectively.

Sorry, I had the wrong data file open, it was for the HP-55

That doesn't sound quite right either. On my 55, GTO takes up a single step (displayed as the line number to branch to, but negative). The comparisons are simply f GTO or g GTO, and appear as such, so x<=y? GTO 20 is two steps: 31, -20 (f GTO 20).

Is there a document that has all the opcode tables for the keystroke-programmable models? I'm kind of curious how some of the other models have allocated things.
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 04:18 PM
Post: #13
RE: HP-25 Emulators suggestion
(02-07-2024 01:51 PM)Dave Britten Wrote:  Is there a document that has all the opcode tables for the keystroke-programmable models?

There is: Obscure internal details of HP calculators
  • Hex tables of internal byte codes for user program steps
Unfortunately, the HP-25 is missing.
Find all posts by this user
Quote this message in a reply
02-07-2024, 05:17 PM (This post was last modified: 02-07-2024 06:05 PM by Thomas Okken.)
Post: #14
RE: HP-25 Emulators suggestion
Everything old is new again:

https://www.hpmuseum.org/forum/thread-8536.html
http://www.panamatik.de/ProgramCodes.pdf

:-)
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 06:32 PM (This post was last modified: 02-07-2024 10:09 PM by Namir.)
Post: #15
RE: HP-25 Emulators suggestion
I owe a lot of you a big apology! I used the word emulator when I really meant simulator, since the last is not tied to the calculator's origiinal byte/key code. Using simulators give developers much freedom to add features and functions. Cuveesoft is a good example of a developer who implements interesting simulators with added features.

Again, oooops!

Namir
Find all posts by this user
Quote this message in a reply
02-07-2024, 06:54 PM
Post: #16
RE: HP-25 Emulators suggestion
(02-07-2024 04:18 PM)Thomas Klemm Wrote:  
(02-07-2024 01:51 PM)Dave Britten Wrote:  Is there a document that has all the opcode tables for the keystroke-programmable models?

There is: Obscure internal details of HP calculators
  • Hex tables of internal byte codes for user program steps
Unfortunately, the HP-25 is missing.

Thanks, the 11C looks about like I was expecting, i.e. packed to the gills. Smile

The 25 presumably had so many unused opcodes because every last byte of the ROM was filled, and there simply wasn't room to implement any more instructions!
Visit this user's website Find all posts by this user
Quote this message in a reply
02-07-2024, 10:30 PM (This post was last modified: 02-07-2024 10:32 PM by teenix.)
Post: #17
RE: HP-25 Emulators suggestion
(02-07-2024 01:51 PM)Dave Britten Wrote:  That doesn't sound quite right either. On my 55, GTO takes up a single step (displayed as the line number to branch to, but negative). The comparisons are simply f GTO or g GTO, and appear as such, so x<=y? GTO 20 is two steps: 31, -20 (f GTO 20).

Apologies, I was trying to refer to the program tokens used for the comparison functions

55
Code:

49 x GTO                -   GTOnn
49 x if X<=Y then GTO   -   [f][GTO]nn
49 x if X=Y  then GTO   -   [g][GTO]nn

The 33 was better in that comparisons used 1 token each, then they can use any of the GTO codes as a branch if TRUE.

33
Code:

49 x GTO                -   GTOnn

f X<=Y
f X>Y
f X!=Y
f X=Y
g X<=0
g X>0
g X!=0
g X=0

So, there is a big token saving, 147 vs 57 (plus there are 6 extra comparisons) The [f] and [g] keys also used one extra in the 55 and not in the merged keycode 33.
Find all posts by this user
Quote this message in a reply
02-08-2024, 12:52 PM
Post: #18
RE: HP-25 Emulators suggestion
I think I would need to see the 55 opcode table to fully grasp your meaning. As far as I'm aware, there are simply 49 different GTO opcodes, and an f or g prefix in the previous step is what changes its meaning from an unconditional to a conditional branch.
Visit this user's website Find all posts by this user
Quote this message in a reply
02-08-2024, 09:53 PM
Post: #19
RE: HP-25 Emulators suggestion
You are correct. Somehow, back when I first started fiddling with a 55 emulator, I have a program token map that is incorrect. Unlikely now that I'll find out why, but I will amend it. Thankyou.

cheers

Tony
Find all posts by this user
Quote this message in a reply
02-09-2024, 01:11 AM
Post: #20
RE: HP-25 Emulators suggestion
No problem! Took me a bit to wrap my head around what the hell the 55 was doing with conditionals when I first got it. Smile
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




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