|Re: HP-IL/RS-232 Interface 82164A - IDEAS? What it is & what it can be used for? Value?|
Message #2 Posted by the phantom on 26 Nov 2001, 12:21 a.m.,
in response to message #1 by doug
As a way of pointing out what you can get by searching around the archives of this very forum, I'll show you the first few posts beginning May 30 of this year, regarding the unit (participants: Alex, Mike T, Tony D)
I want to use the 82164A RS232C interface to connect my 41CX to my PC and up/download programs. The idea is to edit them on the PC and then Download into the 41.
I am interested if any one knows if there is software (both ends) and/or other useful instructions on how to do this.
Yes, it's possible. I've done it, using an HP41CV, and I see no reason why a CX wouldn't work. You need an Extended I/O ROM in the 41 -- the necessary functions are not in the HPIL Development (DEVIL) or XIL ROMs as far as I know. The Extended I/O ROM has 2 functions OUTP and INP that will transfer a program in hexadecimal format (using printable ASCII characters) to any HPIL device, such as the 82164. I don't know what OS you're running on the PC, but the software I've written for the PC end runs under linux. You can get it (as C source) from the hpcc web site, it's part of the LIF utilities for linux distribution. It's released under the GPL, so you're welcome to try porting it to other operating systems (the 2 programs in question won't be that hard to port). These programs turn the HP41 hex transfer into a binary program file (essentially the bytes that would be stored in user memory for that program), but there's also a program in the distribution to produce a printable listing of an HP41 binary program. I've not written the reverse of that program (a 'user code compiler') because I've never needed it, but I am told that my binary format is the same as the .raw format used by MS-DOS HP41 tools, so you might try that program. Alternatively, if you want to try writing your own software, then my C source contains a description of the HP41 hex format, something that's missed out of the user manuals
For your instructions on this site, did you make the "signal adapter" external to the 82164, or did you open it up, remove the jumper block, and make the connections there?
I use WindowsME (though I LIKE linux). Isn't it true that I ought to be able to use a terminal emulation program that has text capture to get the transfer if the inp and outp commands send PRINTABLE ASCII?
Have you ever tried transferring files with just a simple 3-wire cable and software handshake (XON,XOFF)?
I'll try finding a BASIC compiler (I wonder if there's a GNU one out there), and compile your inp41 and outp41 programs and try them on WindowsME.
Thanks for your help!
To answer your questions in order : I made an external adapter for the 82164. I used one of those little boxes that take a DB connector at each end (the sort of thing that's used for null-modem adapters, etc). The jumper plug inside the 82164 is left in the DTE position. I find the only sane way to use the 82164 is to leave that jumper in the DTE position and make a cable up for each application I have for the interface. It's easier than having to open up the unit, set the jumper and find a cable with the right connectors. INP and OUTP do, indeed, just use printable ASCII characters. 0-9 and A-F only. They never send CR or LF, for example. And INP will complain (and abort the transfer) if you put spaces, or CRs or LFs or anything else in the data stream. This is one thing I don't like about these functions. I have never tried to use a terminal emulator to do the transfer, but it should work. I have also never tried to use a 3 wire cable and software handshaking. I use the same hardware to transfer files to/from the HP71, and that machine sends 'binary', not printable ascii, so I can't use software handshaking there. But for the HP41 it should work if the 82164 is configured for it. And I am not sure what you want a BASIC compiler for. I wrote the PC (linux) programs in C, and GNU C will, indeed, compile them. You will have to fiddle the I/O side for other OSes, of course.
See? Getting neat info is often just a matter of searching the archives... lots of cool stuff is here. I think the answers to your other questions are around too, if you'll dig in.