MVS HFS sample code
reads and writes files and walks directories

This page contains sample code designed to run under IBM's MVS system. It is written in S390 Assembler language and provides examples on manipulating HFS files via assembler calls. The HFS files are part of IBM's Hierarchical File System which is a Unix type file system on and MVS system. The sample code does a crude Xcopy function to copy the /etc directory structure to /tmp/etc and includes reading a directory, copying files, deciding if a file is a directory or a soft link or a regular file.

Each HFS file system is an MVS OS dataset of type HFS. Within the Unix System Services, the file system must be mounted. This sample code assumes the file systems are already mounted and the files can be accessed via the path names.

Note that the Automounter is supported and can be configured to mount both HFS and NFS file systems. That is, you could configure automounter to mount files on a Unix NFS file server and then use the assembler callable services to access the UNIX files.

Note also that most of this sample code was originally in PL/I which can call these modules with "OPTIONS(ASSEMBLER)" just fine.

There are four gzip'ed files linked to on this page:

  1. The assembler listings as an ASCII file
  2. An IEBUPDTE job stored as EBCDIC card images containing the source PDS
  3. An IEBUPDTE job stored as ASCII text containing the source PDS
  4. The source PDS stored in XMI (TSO XMIT/RECEIVE format

If your card reader is assumes ASCII, you can use the ASCII JCL and tweek the JOB card and dataset names.

This page maintained by Bob S.
Last Maintained, 09/01/2006 (mm/dd/yyyy)
Up to Bob's home page