I had a look around to see if there were any 'how to' pages available for using IND$FILE and found that most of what is out there is a bit of background about the transfer protocol and the implementations of it, but not so much how to use it. I have received a few questions about how to install and/or use IND$FILE in the past, and just answered those questions briefly and directly. However as I began writing a tutorial on another application in which I wanted to include IND$FILE transfer as a step, I realized that I needed to write at least a brief tutorial on using IND$FILE. So that is what this is, a very brief tutorial on using IND$FILE to transfer files (datasets) to MVS running under Hercules from the host Operating System and from MVS running under Hercules to the host Operating System.
You can find background on IND$FILE at Wikipedia, so all I will say here is:
- it has been around since 1983,
- it was originated by IBM to enable file transfer between IBM PC's and MVS, VM, and VSE,
- and it is now supported by most terminal emulator programs (x3270, tn3270).
If the terminal emulator program you use supports IND$FILE, then the part of the software that runs in the terminal emulator program is already there. You don't have to do anything to install or activate it. Tom Brennan's Vista TN3270 and x3270 are two tn3270 emulator programs with which I have experience and they handle IND$FILE transfers perfectly.
The other side of the software runs under TSO and must be installed in your MVS system, if it is not already present there. You can get the IND$FILE software several places, but two that I will give you links for are:
- ../downloads/archives/ind$file.zip (from my site) [96 kb MD5: fb8299c89d533d32cae983b7dbe13878]
Both of these archives contain software written by Mike Rayborn and each contain a version of IND$FILE which can legally be run on Hercules or on any other MVS system. This version does not belong to IBM or to a vendor. This software was originally uploaded to the Hercules forum(s) on Yahoo, which are no longer around. The version at CBT appears to be 1.0.5 and the version on my site is version 1.0.6. From the README (dated 4 January 2003) in the archive available from my site:
This zip includes the IND$FILE free (use at your own risk) software. Submit the ind$file.jcl and load the ind$file.het on the tape drive. The jcl will install a the following load modules to SYS2.CMDLIB: IND$FILE CUT mode file transfer program CDPG1047 IBM code page 1047 to ISO-Latin-1 (aka 8859-1) CDPG037 IBM code page 037 to ISO-Latin-1 (aka 8859-1) CODEPAGE This is a copy of the CDPG1047 module. Then it will execute the DBSTOP and DBSTART procedures to refresh the linklist bldl's. This software was constructed using the Dignus Systems/C software, http://www.dignus.com/. Currently IND$FILE only supports CUT mode file transfers which limits the buffer size to that of the screen (24x80=~1900). Please see the codepage.txt file if you need additional codepage support or simply wish to alter the default code page supplied for use with ind$file. Tested emulators Upload Download Notes TN3270 Plus Yes Yes QWS3270 No Yes Downloads only QWS3270 Plus Yes Yes Attachmate Extra 6.4 Yes Yes IBM PCOMM 5.0 No No No CUT support x3270 Yes Yes -- Mike
The archive contains some files that may be used to modify the CODEPAGE modules, but all that is necessary to use IND$FILE is to extract the ind$file.jcl and ind$file.het (emulated tape image). Ensure the ind$file.jcl conforms to your MVS standards and submit it to install the files on ind$file.het tape into SYS2.CMDLIB, and you are ready to use IND$FILE. Note: The DBSTOP and DBSTART procedures are installed on the Turnkey systems, so those steps will not execute on other MVS installations; those steps may be removed from the JCL or the errors generated when the job executes may be ignored.
IND$FILE may only be used at the TSO READY prompt, however it may also be invoked on RPF and RFE option 6 panels (for entering TSO commands). If you enter the command IND$FILE at the TSO prompt, you will see a verification that IND$FILE is properly installed and the version:
All of my screen captures below are using x3270.
To initiate a file transfer, select the dropdown menu from File (on the menu bar) and select File Transfer...
If you are using Tom Brennan's Vista TN3270, the transfer options are under the dropdown menu labeled Transfer.
The file transfer options panel will be displayed:
To upload a file from the host Operating System to MVS running under Hercules, enter
- Local File Name - you need to supply the complete path and case is important, at least under Linux
- Host File Name - this is the dataset name on MVS
- you must enclose the entire dataset name in single quotes
- if you are uploading to a member of a partitioned dataset, include the member name in parentheses, just as you would if specifying the dataset(member) at a TSO prompt
- IND$FILE will allocate a sequential dataset for you if it does not exist, but if you are uploading to a partitioned dataset it must already be allocated
- Send to host must be selected
- Host is TSO will default correctly
- Select Transfer ASCII file for source code, JCL, and plain text data /or/ select Transfer binary file for XMIT data
- Record Format of Default will work in most cases, but if you are transferring an XMIT data file, select Fixed and also specify LRECL of 80; BLKSIZE can be a multiple of 80, but I always just specify 80 for BLKSIZE because I have encountered some XMIT datasets that become difficult to extract with blocked records
- Space Allocation Units will work in most cases if left as Default
- DFT Buffer Size will work if left at the default 4096
- Select Transfer File to initiate the upload
Here is an example of uploading an XMIT file:
Here is an example of uploading an assembler source file into a Partitioned Dataset:
Selection of Transfer ASCII file automatically selects Add/remove CR at end of line and Remap ASCII Characters. Selecting Default under Record Format and Space Allocation Units makes the other fields under these selection areas inoperative (and they become 'grayed out').
At the completion of a transfer, you will see a summary panel:
Here is an example of downloading an assembler source file from a Partitioned Dataset on MVS to a file on the PC:
As the transfer is in progress, you will see a panel showing the progress of the transfer:
I hope that you have found my instructions useful. If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:
Return to Site Home Page Frequently Asked Questions
This page was last updated on September 06, 2020 .