Text files import/export on HP-41CX, HP-IL, Mac OS
07-14-2016, 02:05 PM
Post: #1
 dayd Junior Member Posts: 48 Joined: Mar 2016
Text files import/export on HP-41CX, HP-IL, Mac OS
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:

Code:
 01◆LBL "PRFLAS"  02 STO L  03 ADV  04 INT  05 SEEKPTA  06 LASTX  07 FRC  08 SF 25  09◆LBL 01  10 GETREC  11 FC? 25  12 RTN  13 ACA  14 FS? 17  15 GTO 01  16 PRBUF  17 X=0?  18 GTO 01  19 ISG L  20 GTO 01  21 CLA  22 END

Use:
- 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!
Thanks
André
07-14-2016, 04:14 PM
Post: #2
 dayd Junior Member Posts: 48 Joined: Mar 2016
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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.

Code:
  01◆LBL "PRFLAS"  02 STO L  03 ADV  04 INT  05 SEEKPTA  06 LASTX  07 FRC  08 SF 25  09◆LBL 11  10 GETREC  11 FC? 25  12 GTO 12  13 ACA  14 FS? 17  15 GTO 11  16 PRBUF  17 X≠0?  18 ISG L  19 GTO 11  20◆LBL 12  21 CLA  22 END

A.
08-29-2016, 06:03 AM
Post: #3
 jsi Member Posts: 93 Joined: Jun 2015
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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.

Regards,
Joachim
08-29-2016, 02:54 PM
Post: #4
 J-F Garnier Senior Member Posts: 372 Joined: Dec 2013
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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.

Code:
  LBL "INFLAS"   0  SEEKPTA   "DOSLINK"  FINDID  SELECT   CLRDEV LBL 01   INACL  ATOX   ALENG  X=0?  GTO 09   APPREC   GTO 03 LBL 02   INACL  ATOX   APPCHR LBL 03   FS? 17  GTO 02   GTO 01 LBL 09   CLA    END
09-01-2016, 01:21 PM (This post was last modified: 09-01-2016 01:34 PM by dayd.)
Post: #5
 dayd Junior Member Posts: 48 Joined: Mar 2016
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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,
André
09-01-2016, 09:45 PM (This post was last modified: 09-01-2016 09:46 PM by dayd.)
Post: #6
 dayd Junior Member Posts: 48 Joined: Mar 2016
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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:

Code:
 ******* _/ ********** ****    _/         **** ***    _/           *** **    _/_/_/ _/_/_/  ** **   _/  _/ _/  _/   ** **  _/  _/ _/_/_/    ** ***       _/        *** ****     _/        ****  ****** _/ ***********    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.

Code:
cd ~/pyILPER/Projects/Design

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

Code:
cat logo.txt | textlif LOGO > logo.t41

And put that file in the file disk:

Code:
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).

André

09-01-2016, 10:16 PM (This post was last modified: 09-07-2016 01:29 AM by dayd.)
Post: #7
 dayd Junior Member Posts: 48 Joined: Mar 2016
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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.

Usage:

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).

Code:
01◆LBL "PKFLAS"  02 EMROOM  03 PSE  04 FLSIZE  05 PSE  06 ASROOM  07 7  08 /  09 INT  10 -  11 STOP  12 RESZFL  13 END

André
02-05-2020, 01:39 AM (This post was last modified: 02-05-2020 04:23 AM by dayd.)
Post: #8
 dayd Junior Member Posts: 48 Joined: Mar 2016
RE: Text files import/export on HP-41CX, HP-IL, Mac OS
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...
 01◆LBL "PKFLAS"  02 EMROOM  03 PSE  04 FLSIZE  05 PSE  06 ST+ Y  07 ASROOM  08 7  09 /  10 INT  11 -  12 STOP  13 RESZFL  14 END