What is Hercules?
IBM S/370 and ESA/390
|Hercules is a software implementation of International Business Machines System/370 and Extended System Architecture/390 mainframe hardware which runs under Linux on a personal computer.|
Hercules was created by Roger Bowler, an enthusiastic S/370 fan who envisioned himself, and other computing enthusiasts, exploring and learning mainframe computing techniques at home without spending fortunes for equipment. There are thousands of Hercules' supporters located around the world using, enhancing, and expanding Hercules' capabilities. Their numbers are constantly increasing as more people learn about the existence of Hercules.
|Hercules by itself only provides the implementation of the hardware instruction set of IBM mainframe architectures, S/370, ESA/390, and z/390. In order to utilize Hercules, it is necessary to acquire either an operating system or a stand-alone program that has been designed to run on IBM mainframe hardware. Like the hardware itself, the operating system software that runs mainframe computers is prohibitively expensive. However, there are older versions of several of IBM's popular operating systems that are now classified as Public Domain, meaning that they may be obtained and utilized freely.|
[Click for larger image/information]
|The Hercules community runs a variety of vintage
IBM mainframe operating systems which have been determined to be in the
public domain, including MVT release 21.8, MVS release 3.8, DOS/VS
release 34, and VM370 R6 (all from the 1970's time period). Linux/390 by its very
nature is publicly available. Under the disaster recovery provisions
of their licenses, some have successfully run more recent operating
systems on their
Hercules enabled systems.
Since January, 2001 I have personally devoted my time to MVS 3.8, as it is the environment that I have spent the majority of my career working in and with which I am the most familiar. However, there is still information on this site to benefit those who are running MVT 21.8f.
[Click for larger image/information]
My purpose in creating this web site is to share tips, code, job streams, and links to other Hercules web sites with the growing community of Hercules enthusiasts.
I have collected and organized a diverse amount of information on this site to help those who are just starting out with Hercules and/or one of the operating systems that run under Hercules' emulation. Some of the material is hosted elsewhere and I simply provide a link to the host site. Some material I provide a copy of that is directly downloadable from the server that hosts my web pages, in some cases in a slightly different format from that the original material. However, the most important content of this site is the documentation and tutorials that I have written to help people get up to speed using Hercules and MVS 3.8j on their own systems.
The information in this site is organized into specific topic categories. The links below may be used to navigate to the beginning page of a particular topic area. Some topics include quite a bit of information and have additional levels of pages accessible from the main page. A brief summary of some of the topics follows.
|Getting Started||If you have just discovered Hercules, follow this link to view suggestions and links to get you started with installing Hercules and operating system software on your own computer.|
|Installing MVS 3.8||These pages have evolved over time, and although the very first version focused mainly on the MVT operating system, my own professional experience began with MVS 3.8. Therefore, the main focus of my site has now shifted to focus on the installation and use of MVS 3.8j. At this link you will find a step-by-step guide to installing MVS 3.8j using the distribution tapes obtained from IBM.|
|Assembling/Compiling||If you need help assembling, compiling, and link-editing your own programs under MVS or MVT, at this link you will find instructions, job streams, and examples of how to prepare source programs in a variety of various programming languages for execution.|
|Compilers for MVS||Since MVS 3.8 only includes the Assembler, you will need to install compilers if you are interested in ALGOL, COBOL, FORTRAN, PL/1, etc. This navigation link will take you to a guide to installing these compilers under MVS. You will also find the MVT Sort/Merge program at this link. Here is where you will also find the consolidated compilers/tools SYSCPK DASD volume and installation instructions.|
|RPG Tutorial||In the feedback I received from people who had visited early versions of this site, I was made aware of the fact that there was interest in learning some beginning information about RPG programming. Conceding that there is indeed little information available for the casual inquiring mind (ie, without spending $50 or more on a book that will mostly contain information about RPG II, RPG III or RPG IV), I set out to produce an introductory tutorial to RPG I. This is definitely an introductory tutorial and is limited strictly to the version of RPG that we have available to run under MVT/MVS, but it will get you started if you want to try writing some RPG programs.|
|CBT Software||There is a wealth of software available for MVT, MVS, and OS/390 on the CBT tape. However, it is frequently necessary to modify some of the programs in order to run properly on the vintage version MVS we have available. Whenever I find something on the CBT tape that is useful to me under MVS 3.8j, I simplify the installation, to a single jobstream if possible, and add it to this page with a brief introduction. At times I will also add some additional material, such as execution jobstreams and TSO Help text. As a learning experience, you might get the original material from the CBT tape site (I always document exactly which file(s) the material came from) and follow my changes to see what it takes to retrograde some of this software to MVS 3.8j level.|
|ABEND Codes||File #134 of the CBT tape contains a TSO HELP member which documents frequently encountered System (and even a few commonly seen User) Abend Codes. All I have done is to remove the TSO HELP control information yielding plain text, but it could be useful to print out a copy and keep near your system.|
|OS (MVT/MVS) Utilities||In 2000/2001, while researching some holes in my memory on RPG at a nearby university library, I found a textbook on OS Utilities from 1975. I was able to get these great Utility summary guides from the appendix that I know some of you will be as glad to have available as I am. Over the last few years, I have added information about a couple of new utilities and there are now ten utility programs documented here. Chris Cheney sent along a number of tips about MVT specific information and caught bunches of typographical errors. At the moment, I consider this page is pretty much complete and a PDF version of the information is available for download from the page.|
|ISAM/VSAM Interface Utility||Another byproduct of my efforts to write the RPG tutorial was this section on the ISAM interface, which allows programs written to access ISAM files to instead process datasets defined in VSAM Key-Sequenced clusters. Even though I maintained programs using the ISAM interface in a production system for several years, it took several hours of dump reading followed by several more hours of research to reacquaint myself with the finer points of this feature. You can read the summary of what I extracted from the available IBM documentation at this link. If you want to access VSAM datasets from COBOL or PL/1 programs (compiled with the MVT compilers), you might want to look at the routines I wrote to let you do just that. Instructions for using them and the downloads are at the VSAM for COBOL and VSAM for PL/I navigation links.|
|Make/View AWS Tape Utility||I have a lot of source code (COBOL and ALC mostly) on CD-ROM and ZIP cartridge archives that I created on my personal computer. I finally got tired of manipulating these ASCII files to create individual job streams using IEBUPDTE to load them over to source libraries under MVS. So, I wrote a small program that can build AWSTAPE files on MS/PC-DOS, Windows/??, or even OS/2 (the OS I was running when I wrote it). I have also made a version that will run on Linux. I know that some people have even customized the utility (using the supplied source code) to load datasets that have records that are not card image, which was my original goal.|
|IEFACTRT Exits||I have begun adding some IEFACTRT (SMF step/job accounting) exits that I have collected at this link. I keep hoping I will get back to this project, but so far other things have taken priority.|
|FORTRAN Mini-Reference||This link contains a mini-reference manual for the FORTRAN IV language. Although not as extensive as my RPG tutorial, it will help beginners get started using the FORTRAN compiler from the MVT system. I will try to add more to it in the future.|
|VSAM for COBOL||I had been frustrated for more than a year because the MVT COBOL compiler wouldn't handle VSAM files. I valiantly tried to make the ISAM Interface Program suffice, but it just didn't cut it for some of the things I wanted to do. So, I wrote an assembler routine that could be called from COBOL that implements almost all of the VSAM file handling available in the later COBOL compilers we don't have access to. Documentation on how to download, install and use the program can be found at this navigation link.|
|VSAM for PL/I||And as I finally began looking at learning some PL/I, I decided it would be nice to have access to native VSAM from PL/I programs, so I wrote a wrapper routine to call the routine I wrote for COBOL (above) from PL/I programs. The installation and sample PL/I programs can be found at this navigation link.|
|VSAM Tutorial||I put together a general VSAM overview and what I hope is a thorough coverage of the IDCAMS utility at this link. There are lots of sample job streams that can get you started building a library of jobs to handle lots of common tasks.|
|Miscellaneous Programs||These are a handful of programs that I have had around for some time. Some are subroutines I wrote that have been migrated from operating system to operating system with me, such as the date routines and field formatting routines. Some of code in the date routines originated back in the late 1970s when I was working on a Burroughs medium system (anyone remember MCPV?).|
|MVS PTFs||When the bugs were being worked out in order to get MVS 3.8j running under Hercules, an effort was made to collect as many PTFs that might apply to MVS 3.8j as possible. I put this page together to collect all of them that were mentioned on the discussion groups.|
|Frequently Asked Questions||This is exactly what it says it is. The questions are divided into categories - General MVS, General Hercules, Console Operations, JES2, System Generation, Application/User Tasks. When I receive questions or see questions posted on the discussions that are asked more than once, I put the question and at least one solution here.|
|IEFU29 Exit||This user exit may be installed under MVS 3.8j to automatically dump and clear SMF datasets when they become filled. Even if you don't want to install the automatic exit, this page includes instructions for setting up a Generation Data Group to hold archived SMF datasets plus the JCL to copy the SMF data from the collection datasets into the Generation datasets and clear the collection datasets when they get full.|
|IMASPZAP Utility||Instructions and job streams for using the ZAP utility to dump and/or patch load modules.|
|TSO Tutorial||This is an extensive tutorial on using basic TSO - it includes an overview of the TSO environment and command syntax for most of the commands. At least half of this page is devoted to writing TSO Command Lists. We may not have REXX available for MVS 3.8j (yet!), but there is an tremendous amount you can do with a CLIST.|
|VSCOPY for MVT
IFOX for MVT
These pages are devoted to helping install a couple of useful additions to MVT.
VSCopy is a version if IEBCOPY that may be used to restore datasets under MVT that were unloaded using the version of IEBCOPY from MVS - the versions of IEBCOPY included with MVT is very limited and is not compatible with the version included with MVS.
IFOX00 is the assembler that is included with MVS and is much more capable than the assembler included with MVT. However, there is nothing that prevents the IFOX assembler from executing under MVT and this page will help you install it - an archive included on the page has everything you need. In addition, this page includes a set if revised assembler procedures that allow you to easily use both versions of assembler on a single system. There is also a detailed comparison of the options effective for each assembler.
|Recommended Book List||A short list of books I recommend for the serious MVS user.|
|Additions/Updates||Even I was having trouble keeping up with what changed on these pages when, so I added this page to annotate the date and what changed whenever I make a change here.|
If you are using Hercules and one or more of the operating systems that function under it, you probably should consider joining one of the discussion groups so you can stay current with developments of interest to you. Here are the links to the groups:
Main Hercules' Group DOS/VSE Documentation DOS/VS & DOS/VSE Advocacy Linux Porting Hercules to OS/2 TSS MVS MUSIC/SP MVT Learning 370 Assembler OS/VS1 Tur(n)key MVS VM
This page was last updated on January 17, 2015.