Post Reply 
Syncing iOS iHP48 and HP50g
04-19-2024, 07:23 AM
Post: #1
Syncing iOS iHP48 and HP50g
Hi,

I've recently acquired a new HP50g (thank you again rncgray!) and I'm loving it -- the speed increase from my HP48GX is amazing.

I'd like to be able to keep my physical HP50g and the HP50G in the iHP48 iOS app in sync, so that I have the same programs on my phone when I don't have the physical calculator with me.

I thought I would be able to do something like

* Create an archive on the phone with :1:PhoneBackup ARCHIVE
* Put that PhoneBackup object on the stack
* Click the calculator screen on the phone and Save Object As...
* Copy that .obj file to a SD card
* Load the SD card on the physical calculator and use RESTORE to load the backup archive

but you can probably guess that I haven't been able to get that to work, in either direction (iHP48->HP50G or HP50G -> iHP48).

I'm wondering if iHP48 is storing objects in an HP48 object format, even if it is coming out of the HP50G emulator.

Has anyone else been able to accomplish this kind of syncing/round-tripping?

Thanks!
Find all posts by this user
Quote this message in a reply
04-19-2024, 10:07 AM (This post was last modified: 04-19-2024 12:08 PM by Steve Simpkin.)
Post: #2
RE: Syncing iOS iHP48 and HP50g
I use the following HP 48/49/50 INOUT Program to help exchange programs from iHP48 to/from emulators on other platforms. See the following forum post.
https://www.hpmuseum.org/forum/thread-13...#pid123629

The HP-48/49/50 INOUT Utility program is used to convert an object to a string (and vice versa) for Import/Export to other HP RPL emulators. Place the object to convert on level 1 of the stack and run 'INOUT'. If the object was a string then it'll convert it to an RPL object. If not, then it'll convert it to a string.

Edit: To expand on how I use the INOUT program to export an object from a source HP-48/49/50 emulator program (such as iHP48) to another HP-48/49/50 emulator program:
1. Recall the object to be copied onto Level 1 of the stack in the source emulator. This can be any object, even a DIR.
2. Run INOUT. This will convert the object on level 1 to a string.
3. Take a copy of the string on Level 1. For example on iHP48, tap the display to bring up the iHP48 menu and choose "Copy from iHP Stack".
4. Paste the string into an email and send it to myself.
5. Open the email on the target device that has a HP-48/49/50 emulator program.
6. Copy the string and paste it to Level 1 on the Stack of the target emulator. For example on iHP48, tap the display to bring up the iHP48 menu and choose "Paste into iHP Stack".
7. Run INOUT. This will convert the string on level 1 to an object again.
8. Store the object with its original name.


You can enter the INOUT program by hand on the source and target emulators. For a quicker method, I was able to take a copy of the INOUT program (see below) and paste it into the stack of the emulator. This resulted in a String object on level 1 that I then manually edited to delete the \<<, \>> and \-> sequences and replace them appropriate program delimiters and right arrow characters. It didn't take too long as there were not that many of them. I also had to delete the string delimiters. This left the correct program on the stack.

\<< RCWS RCLF \-> ws f
\<< 3 TRANSIO DUP TYPE 2 IF == THEN
\->STR f SIZE 3 > #2F34Dh #3016Bh IFTE SYSEVAL + STR\->
ELSE
STD 64 STWS \->STR f SIZE 3 > #2F34Fh #2FEC9h IFTE SYSEVAL
END
ws STWS f STOF
\>>
\>>
Visit this user's website Find all posts by this user
Quote this message in a reply
04-28-2024, 05:25 PM
Post: #3
RE: Syncing iOS iHP48 and HP50g
I think I figured it out.

When I use Load Object… in iHP48 to load an object I created on my physical HP 50g, I usually get a string that starts with “HPHP49-………”.

In another thread there was the suggestion to use the Development Library described on page 6-1 of the AUR.

So for me what works is

256 ATTACH (to attach the development library, only needed once until a warm restart)

And then with the “HPHP49-….” String object on the stack,

->A 26 + A->

To turn it back into the library or backup object or whatever it was originally. The same thing seems to work in the opposite direction (iHP48 to physical HP 50g).
Find all posts by this user
Quote this message in a reply
Post Reply 




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