HP Forums
Text files import/export on HP-41CX, HP-IL, Mac OS - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: Text files import/export on HP-41CX, HP-IL, Mac OS (/thread-6552.html)

Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 07-14-2016 02:05 PM

I'm having hard times figuring out how to import CX text files, made on my mac, to the 41CX. My setup is HP-41CX with 2 extended memory modules, HP-IL module, PIL-Box, pyILPER on Mac OS Yosemite. I use those text files as databases and printout, on the field, with the 41.
For export I use this tiny program inspired from ‘Extended Functions Made Easy’ by Keith Jarett and then copy the content from the printer’s log of the Pyilper program:


 02 STO L
 03 ADV
 04 INT
 07 FRC
 08 SF 25
 09◆LBL 01
 11 FC? 25
 12 RTN
 13 ACA
 14 FS? 17
 15 GTO 01
 17 X=0?
 18 GTO 01
 19 ISG L
 20 GTO 01
 21 CLA
 22 END

- Put the name file on the Alpha register or erase it to work on the current selected text file.
- Put 0 on the X register to print the entire file or use ISG format iii.fff where i is the initial record (or line) to be printed and f the final one.
The stack is lost, L is used as index, no other register is used.

Be my saver!

RE: Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 07-14-2016 04:14 PM

As it was out there, I realized that PRFLAS could benefit from some minor changes. Also, if you want to use this (we never know…) on 41c be aware of the possibility of the PURFL bug or add ALENG 1/X RDN after the program label.
Use remains the same as above.


 02 STO L
 03 ADV
 04 INT
 07 FRC
 08 SF 25
 09◆LBL 11
 11 FC? 25
 12 GTO 12
 13 ACA
 14 FS? 17
 15 GTO 11
 17 X≠0?
 18 ISG L
 19 GTO 11
 20◆LBL 12
 21 CLA
 22 END


RE: Text files import/export on HP-41CX, HP-IL, Mac OS - jsi - 08-29-2016 06:03 AM

Hello André,

transfer the text file(s) from the HP-41CX to the virtual disk. Then you can import / export HP LIF text files to or from the file system. You need to install a recent version of the LIF-Utilities to get the file management controls enabled in pyILPER.


RE: Text files import/export on HP-41CX, HP-IL, Mac OS - J-F Garnier - 08-29-2016 02:54 PM

Here is an alternative to import text files using the DOSLINK device.
Importing text data from an external device is easy when the text strings are less than 24 characters (such as a list of numbers) but for managing text strings larger than 24 characters, you need the Extended I/O ROM and the INACL function that uses the flag 17 as a end-of-line indication as is doing GETREC.

Here is a small piece of code that may be a good starting point for you (== not extensively tested).
To use it (in AUTOIO), set DOSLINK to point to your text file. Use an empty line as a end-of-file indication in your file.
The ASCII file in the 41C X-M must be existing.


LBL 01
  ALENG  X=0?  GTO 09
  GTO 03
LBL 02
LBL 03
  FS? 17  GTO 02
  GTO 01
LBL 09

RE: Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 09-01-2016 01:21 PM

Thank you very much Joachim and Jean-François for your replies,

I finally have now a solution to to transfer text files back and forward, sometimes what a man need is just… a little push!
I do have explored the LIF-Utilities (for an amount of time that will stay confidential), but I don’t really know why, files didn’t compile correctly. At the time I thought maybe it wasn’t fit for the 41cx but only for the 71b, I was wrong. After Joachim response, I give it another try and get things done in the first attempt.
The alternative J-F solution is indeed very interesting. If I understand correctly, ASCII data served by a device will be be compiled by the HP41 into a text file. I look forward to test it later on my development process as for now I do not have access (yet) to the Extended I/O ROM. I guess DOSLINK can run on small connected devices which can lead to original applications in the 41.
For those who may be interested I will, in a later post, show step by step how text files can be imported to the HP-41 using Joachim multiplatform version of ILPER (pyILPER) and lifutils that you can found here https://github.com/bug400

Best regards,

RE: Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 09-01-2016 09:45 PM

I’ll be using my text files more for database purposes, but here for sharing this little process here’s a different exercise; printing from the 41 the content of code frame bellow:

 ******* _/ **********
****    _/         ****
***    _/           ***
**    _/_/_/ _/_/_/  **
**   _/  _/ _/  _/   **
**  _/  _/ _/_/_/    **
***       _/        ***
****     _/        ****
 ****** _/ ***********
 i   n   v   e   n   t

At this point, I assume you have a 41C/CV with Extended Functions module or a 41CX, the great PIL-Box, and pyILPER and LIF-Utilities already installed from the like above (If not you can found the PIL-Box here http://www.jeffcalc.hp41.eu/hpil/index.html ).
Some details may vary if you’re not on Mac OS.

- Copy the text and paste it in your usual text editor (like TextMate, Total Commander, etc…) and save it as logo.txt (I almost always use UTF-8 LF encoding norm) in your working folder; now we have our text file.
- Use a Lif disk file in that same folder or change the code accordingly, I provide one here, that contains PRFLAS and PKFLAS for printing and packing text files.
- Open a Terminal window and point to your working folder.

cd ~/pyILPER/Projects/Design

Non we can compile the text in a new file and compatible format with:

cat logo.txt | textlif LOGO > logo.t41

And put that file in the file disk:

lifput disk.lif logo.t41

At this point we are pretty much done on the computer side, just, as we have to create the file in Extended memory, is better to know his size, so, with all the text selected in the original logo.txt file, in Texmate I do [MAJ CTRL N] which gives me the total number of characters (and linefeed).
238 + 1 (last line without linefeed) + 1 = 240 bytes
240 / 7 = 34,286
so 35 registers are needed (otherwise you can still use more registers and pack later).

Fire up the hardware, create the file LOGO in EM, load the LOGO file in it from disk.lif with pyILPER’s help, and then send it to the printer with PRFLAS.

In my own files, I also have the boring step of transposing incompatibles characters, like removing accents and so on. At some point I will have to create or find a script to do so. If you’re already have one that works well don’t hesitate do share it here…

Images are the output of the text on the HP-IL printer 82162A and Infrared printer 82240B from the 41CX. Interesting to see how spacing is different one from another. The IR one seams better suited for graphics and the HP-IL for readability. Don’t know if the 82143A is also different. I do have an HP-IL 2225 but it doesn’t print (cartridge contacts corroded).



RE: Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 09-01-2016 10:16 PM

Here’s the code and usage of the mentioned program PKFLAS

It works only with the 41CX/CL (as it uses special functions from the CX) and text files.
I find it useful for managing memory and file sizes.


Put the file name in alpha register or clear it to work on the selected file and execute PKFLAS

It will display:
the amount of Extended Memory available (max size for the file),
the actual file size,
and the minimum size the file can be (with the actual content).

From there you can:
Press R/S to pack the file to its minimum or
Put your specific amount (between min and max) and press R/S or
Press RDN and R/S to use all available registers
(or don’t hit R/S and the file remains intact and selected).

 03 PSE
 05 PSE
 07 7
 08 /
 09 INT
 10 -
 11 STOP
 13 END


RE: Text files import/export on HP-41CX, HP-IL, Mac OS - dayd - 02-05-2020 01:39 AM

As the program PKFLAS, was brought to my attention, today, I noticed a stupid mistake I did years ago in the post above and make a change to reflect more the behaviour I wanted. I hope I’ll get it completely right this time...
To make it simple: the registers available are not the max size possible for the file. So the new version display the same thing, Available free registers in XM / Actual file size / Minimum file size, except that when it stops the actual max size possible for the file is in Y so you can toggle between min and max with X<>Y and hit R/S to validate. Ouf...sorry...
Added just line 6 Wink

 03 PSE
 05 PSE
 06 ST+ Y
 08 7
 09 /
 10 INT
 11 -
 12 STOP
 14 END