Hercules Installation Guide v4.0
Hercules Installation Guide v4.0
HEIG040000-00
NOTE: It is YOUR responsibility to comply with the terms of the license for the operating system
you intend to run on the Hercules Emulator.
1.9 Trademarks
The following is a list of trademark acknowledgments and copyright notices for product and company
names mentioned in this book. Other product and company names in this book that are not listed below
may be the trademarks or registered trademarks of their respective owners.
• IBM, System/370, ESA/390, z/Architecture, MVS, OS/390, z/OS, VM, VM/ESA, z/VM, VSE,
VSE/ESA, z/VSE are trademarks or registered trademarks of International Business Machines
Corporation (IBM).
• Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008, Visual
C++ Toolkit, Visual C++ Express are trademarks of Microsoft Corporation.
• Linux is a trademark owned by Linus Torvalds. The Linux Mark Institute is the exclusive licensor
of the Linux trademark on behalf of its owner Linus Torvalds.
• WinPcap is copyrighted by NetGroup, Politecnico di Torino (Italy).
• Cygwin is copyrighted by Red Hat, Inc.
• Vista tn3270 is copyrighted by Tom Brennan Software.
• Pentium, XEON are trademarks or registered trademarks of Intel Corporation.
• Athlon, Opteron are trademarks or registered trademarks of Advanced Micro Devices (AMD), Inc.
• Xmit Manager is copyrighted by Neal Johnston-Ward.
• FLEX-ES is a registered trademark of Fundamental Software, Inc.
If anyone feels they have been forgotten on this list please let me know.
Peter Glanzmann
• Chapter 2 (Related Publications): New manual “Operations and Utilities Guide” added.
• Chapter 3 (Summary of changes) added.
• Chapter 7 (Component Compatibility Tables): Section “Hercules V 4.00.0 (Release date: not yet
released)” added.
• Chapter 10 (Upgrading the Hercules Emulator) added.
• Chapter 12 (Installation of HercPrt) added.
• Chapter 17 (Hercules “MSVC” Build Instructions): Section “Setting up REXX support (Regina
REXX)” added.
• Part III: Linux Installation: Chapters 18 - 22 added.
• Part IV: Mac OS X Installation added.
• Various installation figures replaced.
• Appendix A. HQA – Hercules Build Configuration Quality Assurance added.
• Appendix B. Links: List of links updated.
4.1 PC Hardware
The following section lists the requirements for various hardware components within the context of the
following categories:
• Minimal (minimum required equipment)
• Moderate (average older PC equipment)
• Average (typical current PC equipment)
• Good (fast, newer PC environment)
• Optimal (recommended server equipment for best performance)
It is possible to run Hercules with less than the minimal recommended hardware but performance of any
operating system executing under the emulator will be severely constrained. For acceptable performance
you will need a configuration categorized as “average” or better. If you have access to PC hardware
categorized as “optimal” the performance of installed OS’s will be adequate for most practical purposes.
Most modern PC systems are delivered with adequate RAM, Processor and Disk for Hercules use. It has
been stated in previous Hercules documentation that a Pentium 200 MHz with 32 MB of RAM would be
sufficient for the emulator, however today such a system is no longer practical.
4.1.1 Processor
Hercules does not necessarily depend on the Intel Pentium architecture. It also has been built, installed
and run successfully on an Alpha 21164, SPARC and on z/Architecture Linux/390 systems. One of the
most extravagant implementations for testing purposes has run OS/360 under Hercules under Linux/390
under Hercules under Linux/390 under VM/ESA. This is of course an extreme example of emulation
layers. This document however only describes the implementation of the Hercules Emulator on an Intel
based or compatible PC system.
Hercules will benefit greatly from a fast processor, the faster the processor the better Hercules will run. If
you can employ a multiprocessor or dual-core system, so much the better. The Hercules Emulator makes
extensive use of multithreading to overlap I/O with CPU activity. A multiprocessor board with two slower
processors will in most cases outperform a uniprocessor board with a faster processor.
• Pentium with 500 MHz or equivalent processor (minimal)
• Pentium with 1 GHz or equivalent processor (moderate)
• Pentium with 2 GHz or equivalent processor (average)
• Pentium with 3 GHz (Dual or Quad Core) or equivalent processor (good)
• 2 or more Pentium Quad Core processors with 2.66 GHz or equivalent processors (optimal)
4.1.2 RAM
The more RAM installed in the system the better Hercules will perform. For maximum throughput you
should set your main and expanded storage sizes in the Hercules configuration file high enough to elimi-
nate installed operating system paging operations as much as possible. The S/390 guest system storage
is allocated out of the Linux or Windows host operating system storage so try to provide enough RAM to
your system to eliminate Linux or Windows paging as well.
There is a limit to the memory that the 32-bit version of Hercules can allocate under Windows (usually
around 1 GB), therefore normally 2 GB of installed RAM in the machine should be sufficient to allow for
both Hercules and the host OS. If however you plan to run more than one instance of Hercules on the
same machine, each instance can allocate 1 GB of RAM for its own use. In this case it makes sense to
install more than 2 GB RAM. This limitation does not apply when using the 64-bit version of Hercules.
Please note that you still can allocate more RAM than is physically available on the PC to the Hercules
emulator for use of the installed operating system(s). But in this case the Linux or Windows host opera-
ting system has to page out the missing physical RAM to its own swap files which will seriously degrade
Hercules performance.
5.1 MIPS
MIPS is an abbreviation of “Million Instructions Per Second” and presents a measure of the number of
instructions the CPU is executing in one second. MIPS is a measure of a computer's processor speed.
However this measure is useful only among processors with the same instruction set as different instruc-
tion sets take different numbers of instructions to do the same job. Many of the reported MIPS values
represent 'Peak' execution rates on artificial instruction sequences with few branches, whereas realistic
workloads consist of a mix of instructions some of which take longer to execute than others.
The performance of the memory hierarchy greatly affects processor performance, an issue also not con-
sidered in simple MIPS comparisons. In an attempt to address these issues researchers have created
standardized tests such as "SpecInt" to measure the real effective performance in commonly used
applications. The use of raw MIPS as a measure of overall system performance has fallen into disuse.
MIPS is sometimes pejoratively referred to as "Meaningless Indicator of Processor Speed" or "Meaning-
less Information Provided by Salespeople".
The Hercules console reports the MIPS rate for the emulated S/370, ESA/390 or z/Architecture instruc-
tions, not the underlying executed instructions of the hardware. As implied previously the MIPS rate can
vary significantly depending on the executed instruction and whether the instructions can be processed
entirely in cache, as can happen in a tight loop.
It is difficult to determine how the speed of the Hercules emulation corresponds to a real mainframe. This
is due to difficulties in comparing real mainframe hardware to PCs (or servers) as well as the actual per-
formance measurement itself. Hercules shows its processing speed in MIPS. Compared to the earlier
IBM System/360 and System/370 hardware, it is safe to say that Hercules will outperform them when it is
running on moderately powerful hardware, whereas newer IBM System/390 and z/Series hardware still is
much faster than the emulation.
On a Celeron 300 you should see an execution speed of 1 to 2 MIPS, which is enough to run OS/360
(MFT or MVT) or MVS 3.8 with a response time better than that of a 3033 from the 1970's. It's also fast
enough to run VSE/ESA with an acceptable response time. On a more recent system with a 2 GHz
Pentium processor, you may see the system peak at around 30 MIPS which is enough to run Linux/390
or z/OS with a light workload.
Performance on server class machines is now fairly respectable. For example, on a dual-core Intel Xeon
with "Hyperthreading" (4 CPUs) running at 3.46 GHz, you might expect to see a sustained MIPS rate of
40 to 60 MIPS. A dual-processor quad-core Mac Pro (8 cores, 3 GHz) will sustain over 150 MIPS. For
anyone who is prepared to spend a considerable amount of money on their Hercules system, there are
reports that a sustained 300+ MIPS rate has been achieved on an Intel Core i7 processor running at 3.75
GHz using all four cores plus "Hyperthreading" (8 CPUs).
The speed however depends greatly on the executed instructions. Instructions that are very expensive to
emulate can even on fast systems still be around 1 - 2 MIPS, see the tables further below for details.
Although there have been massive performance improvements in the Hercules Emulator software in re-
cent releases, the current rate of improvement cannot be expected to continue. On one hand, the maxi-
mum performance improvements available via software improvements will be reached, on the other hand
the developers of Hercules have architectural frameworks that impose certain limitations, as explained
below.
Firstly the Hercules software should be portable and is therefore written entirely in "C". The use of assem-
bler to give additional performance is not exploited. Secondly the developers try to emulate real hardware
as exactly as possible in accordance with IBM's "Principles of Operations" documentation. This leads to
code that may be not optimal for the underlying hardware, but provides perfect emulation of real main-
frame hardware, avoiding problems when running mainframe operating systems.
The performance of the Hercules Emulator software depends heavily on the set of executed (mainframe)
instructions as detailed in below ("Emulated Instruction Performance").
Both tests were performed on the same machine (2 x Opteron 280, 2.4 GHz with a Software RAID-0 hard
disk configuration). The measured performance degradation using CCKD emulation over CKD is only
approximately 7.0 percent.
The figures shown above are influenced by the I/O configuration used. As mainframe operating systems
running under Hercules are often heavily I/O based, bare CPU speed is not the only relevant performance
factor. An additional performance boost is achieved using RAID-0 striping and / or using several physical
disks in the host system under which the emulator is running, as discussed in the following section.
RAID
none RAID-0 none RAID-0
Configuration
These configurations reached the transfer rates as shown in the following figure.
While these measurements only show the “raw speed” of the disks without direct relationship to Hercules,
the next diagram shows the impact on the IPL time depending on the used disk configuration. Both tests
have been run using the same hardware (2 x AMD Opteron 280, 2.4 GHz), the only change being the
type of disk employed.
These tests demonstrate that fast disks and RAID-0 configurations provide a performance boost from
which Hercules will benefit.
PC Model
08/2003 09/2006 06/2008
(month/year)
Number of
1 2 2
physical CPUs
Number of CPU
2 4 8
Cores
RAM 2 GB 8 GB 8 GB
Operating System Windows XP Pro Windows XP Pro x64 Windows XP Pro x64
The first table of performance results shows the reachable MIPS rates of various single instructions. The
test is based on a modified INSTRATE program, originally written by Gary Brabiner.
Move 256 Bytes by MVC 0.31 MIPS 1.16 MIPS 15.84 MIPS
Move 256 Bytes by MVCL 3.25 MIPS 4.84 MIPS 11.48 MIPS
Clear 256 Bytes by MVC 0.93 MIPS 1.32 MIPS 15.23 MIPS
Clear 256 Bytes by MVCL 3.63 MIPS 6.11 MIPS 16.54 MIPS
The next table shows some performance data from the "CPU Speed Rating Monitor" of IMON (Interactive
Monitor IMON/370 and IMON for OS/390 and z/OS, see http://www.prycroft6.com.au).
For the RR instructions tests, the operation codes listed form 10% of the instruction mix. The main
slowing factors of test 2 compared to test 1 are the presence of the Divide instruction (DR) and the
Multiply instruction (MR). Something similar holds true when looking at the differences between tests 3
and test 4. In tests 5 and 6 again, Divide and Multiply are used to slow test 6 as well as increasing the
length of data processed by the MVC, ED, UNPK, CLC and TR instructions (one byte in test 5, maximum
length in test 6).
According to IMONs help text, the "official" MIPS rating of a CPU model is usually about 20% faster than
the results of test 2 (RR Slow).
The last table shows the results of tests consisting of a tight loop. These tests show the influence on raw
processor speed (only one job running) as well as the influence of having a multi-processor system and
running several jobs in parallel.
These tests show that, although the raw instruction speed of the four processor machine of scenario 2
compared to the two processor machine of scenario 1 is somewhat slower as shown in table 2 above, the
system greatly benefits from the four processors when doing real work, because it can handle more tasks
in parallel.
6.1.2 Stability
As Hercules appears to Windows as just another application program, it is possible to run other applica-
tions simultaneously with Hercules, however this is not recommended. While the Hercules Emulator is
extremely stable software it is impossible to guarantee that other applications will not degrade Hercules
performance or even crash the Windows system. The less software you have installed on your system
the more stable your emulated mainframe will be.
Intensive tests have proven the stability of Hercules, one of the test suites is repeated with every new
Hercules release. The tests run a mixed online and batch workload continuously and at high volumes.
The base system consists of a MVS 3.8J operating system with additional components. During the test
the system is loaded with between four and eight self-submitting (therefore continuous) batch jobs exe-
cuting in parallel. These jobs consist of a mix of large sorts, assemblies, compilation and link jobs.
Additionally there are some TSO sessions active (up to ten sessions) on which a simulated user presses
enter once a second in a performance monitor application.
This workload keeps the system (emulated mainframe as well as Hercules and the base operating sys-
tem) busy at nearly 100% CPU and a produces a continuous I/O rate of more than 750 SIOs. In this state
the machine runs 7x24 hours during several days. One of these tests was stopped after more than 12
weeks with the system still running perfectly.
In general though the less software is installed the better the emulated mainframe will run.
6.2 Drivers
This Chapter describes the device drivers that are necessary specifically for the Hercules Emulator. A de-
vice driver is a routine or a set of routines that implement the device-specific aspects of generic I/O ope-
rations. Generally the Hercules Emulator does not need any special device drivers other than those provi-
ded by the operating system. An exception is WinPcap, which is required under the Microsoft Windows
operating systems to enhance networking capabilities of the native operating system.
Beginning with Release 3.03.0 the Hercules Emulator no longer requires Cygwin in order to run under
Windows. It is highly recommended that Windows users of Hercules begin using this new MSVC Win-32
version instead of the Cygwin versions.
6.4.1 Hercules
The Hercules executables are the heart of the emulator and a mandatory component. This is the software
implementation of the System/370, ESA/390 and z/Architecture mainframe hardware and processor
machine code instruction set.
Hercules runs as a DOS program and comes with a semi-graphical display in a DOS window (the Her-
cules Hardware Console - HMC) consisting of two screens, switched between using the ESC key. When
the Hercules HTTP server is running then Hercules can also be operated via a web browser interface.
Using the GUI all of the Hercules DOS utilities are available, it is no longer necessary to know the exact
syntax of each utility. Instead of having to issue cryptic command lines in native DOS such as
HETUPD -2 -b D:/MVS/TAPE/TLEV009.HET D:/MVS/TAPE/TLEV002.HET
a standard Windows dialog box can be used to call the utility. The following figure shows the pop-up
window, used to provide information to one of the Hercules utility programs (HETUPD).
The WinGUI has been developed by David B. Trout (Fish). More detail about the functionality provided by
the WinGUI can be found in the "User Reference Guide" and in Chapter 10 – Installing the Hercules
WinGUI.
6.4.3 CTCI-WIN
Since Hercules runs as a user process under the control of the host Windows system it does not normally
have direct access to the driving system's network adapter. Until recently this presented a problem in
establishing connectivity between the network and the TCP/IP stack of an operating system running un-
der Hercules.
Since the development of device drivers by Fish, employing of the WinPcap's device driver, it is now
possible to establish a virtual point-to-point link between the TCP/IP stack running under Hercules and
Window's TCP/IP stack. This allows you to use Windows as a router to pass Ethernet frames between the
Hercules TCP/IP stack and the rest of the network.
Component Release
WinPcap V 4.1.3
HercGUI V 1.12.6
CTCI-WIN V 3.3.3
HercPrt V 1.4.0
Component Release
WinPcap V 4.1.3
HercGUI V 1.12.6
CTCI-WIN V 3.3.3
HercPrt V 1.4.0
Component Release
WinPcap V 4.1.3
HercGUI V 1.12.6
CTCI-WIN V 3.3.3
HercPrt V 1.4.0
Component Release
WinPcap V 4.1.2
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
HercPrt V 1.1.0
Component Release
WinPcap V 4.1.2
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
HercPrt V 1.1.0
Component Release
WinPcap V 4.1.2
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
HercPrt V 1.1.0
Table 12: Hercules Release V 3.08.0 Component Compatibility Table
Component Release
WinPcap V 4.1.1
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
HercPrt V 1.1.0
Component Release
WinPcap V 4.0.2
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
Component Release
WinPcap V 4.0.1
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V 2.7.1
Component Release
WinPcap V 4.0
HercGUI V 1.11.1
CTCI-WIN V 3.2.1
FishLib V2.7.1
Component Release
WinPcap V 3.0
HercGUI V 1.9.5
FishPack V 1.3.0
TunTap32 V 2.1.0
tt32info V 1.0.2
Component Release
WinPcap V 3.0
HercGUI V 1.9.5
FishPack V 1.3.0
TunTap32 V 2.1.0
tt32info V 1.0.2
Component Release
Cygwin V 1.5.12
WinPcap V 3.0
HercGUI V 1.8.8
FishPack V 1.3.0
TunTap32 V 2.0.3
tt32info V 1.0.2
Component Release
Cygwin V 1.5.5
WinPcap V 3.0
HercGUI V 1.6.8
FishPack V 1.3.0
TunTap32 V 2.0.3
tt32info V 1.0.2
Component Release
Cygwin V 1.5.5
WinPcap V 3.0
HercGUI V 1.6.8
FishPack V 1.3.0
TunTap32 V 2.0.3
tt32info V 1.0.2
This screen gives you an informational about WinPcap. Click on “Next >” to continue with the installation.
This screen gives you the usual information presented when starting installation programs under
Windows. Click on “Next >” to continue with the installation.
After reading the license agreement, accept it by clicking on the “I Agree" button to continue the
installation process.
As soon as all files are copied to their default destination and the installation process is complete the final
screen shown below is displayed.
If an older version of WinPcap was installed on the machine it is strongly recommended that you reboot
the system. Click on "Finish" to complete the installation process, then continue with the customization
steps.
Where ‘v.rr’ in the filename specifies the version and release of the Hercules Emulator contained in the
package.
The difference between these packages and how each is installed are described in the following sections.
If you plan to run different Hercules versions in parallel then the default naming convention which con-
tains the version and release levels in the directory name is useful. If your intention is to run one Hercules
version at a time then you may prefer to shorten the directory name to simply "Hercules" as in the
example above.
When you are satisfied with the installation options, click on "OK".
If you do not want to change any of your choices, click on "Next >" to start the actual installation process.
Click on "Close" to terminate the installation dialog and proceed to customise your installation as de-
scribed in the following sections.
/l[i | w | e | a | r | u | c | m | o | p | v | x | + | ! | *] <LogFile>
/log <LogFile>
/update <Update1.msp>[;Update2.msp]
/uninstall <PatchCodGuid>[;Update2.msp] /package <Product.msi | ProductCode>
These manual customization steps are explained in detail over the following sections.
@ECHO OFF
REM
REM ***********************************************************************
REM CHECK / SET HERCULES PATH (1)
REM ***********************************************************************
REM
IF %SETHERC%.==1. GOTO RUNIT
SET SETHERC=1
PATH D:\Hercules;%PATH%
SET HERCULES_RC=D:\MVS\CONF\HERCULES.RC
:RUNIT
REM
REM ***********************************************************************
REM START HERCULES EMULATOR (2)
REM ***********************************************************************
REM
START D:\Hercules\Hercules -f D:/MVS/CONF/MVS38J.CONF >D:\MVS\LOG\Hercules_Log.txt
EXIT
@ECHO OFF
REM
REM ***********************************************************************
REM CHECK / SET HERCULES PATH (1)
REM ***********************************************************************
REM
IF %SETHERC%.==1. GOTO RUNIT
SET SETHERC=1
PATH D:\Hercules;%PATH%
SET HERCULES_RC=D:\MVS\CONF\HERCULES.RC
:RUNIT
REM
REM ***********************************************************************
REM START HERCULES WIN GUI AND HERCULES EMULATOR (2)
REM ***********************************************************************
REM
START D:\Hercules\HercGui -f D:/MVS/CONF/MVS38J.CONF
EXIT
If the "sh" (shell) command is used in the run-commands file, then the "startgui" keyword should also be
used when starting external applications if one of the following is true:
a) If starting Windows GUI applications (as opposed to command-line programs),
regardless whether or not the Hercules Windows GUI is being used.
b) If starting any program, Windows GUI programs or command-line programs (either via
the Hercules panel command-line or via the run-commands file), when running Hercules
via the Hercules Windows GUI.*
* If you wish to capture the output of a shell command however (e.g. "sh dir"), then you should not use
startgui since it prevents the output from being captured / piped back to Hercules or the Hercules
Windows GUI.
Creative use of the run-commands file can completely automate Hercules startup and initiate the IPL of
the mainframe operating system. For details about the usage of the run-commands file see the "Hercules
User Reference Guide".
Generally these three sections are identical except for the session profile used. The number of terminals
to be started depends on your needs although it is recommended that at least three terminal sessions
(master console, alternate console and TSO terminal) be started.
While there are certainly many other upgrading scenarios (especially combinations of the four above
mentioned scenarios) not all possible variants can be described in this manual.
Where ‘v.rr’ in the filename specifies the version and release of the Hercules Emulator contained in the
package.
The difference between these packages is described in chapter 9.2 (“Choosing a Package”). The fol-
lowing sections describe how to upgrade an existing Hercules installation with each of these packages.
After clicking to the “Finish” button the next window appears which shows a progress bar while Hercules
is being removed from the system.
When the installer has finished its work the last window is shown which is confirming that Hercules has
been successfully removed from the system.
To install the new Hercules version just follow now the instructions in section 9.3 “Installation Steps
(MSVC Windows Installer Package)”. After installing the new version please make sure to change the
pathname to the new installation path in any batch file or script you are running.
If you gave the installation directory a “neutral” name (like “drive:\Hercules\”) that is still the same name
as the one in the old installation then no changes in your batch files or scripts are necessary at all.
Since version 1.9.5 the Hercules Windows GUI allows you to specify the target directory that the 'sh'
(shell) command will use. Simply browse to and select the desired directory using the GUI.
Once this is set any shell command entered will be processed using the defined directory as its current
working directory. This provides a workaround for the fact that the Windows GUI's current directory
changes depending on the dialog in use. This also compensates for the fact that prior to version 3.03
Hercules's current directory normally never changes.
11.5.1 Directories
The Directories tab allows you to specify the preferred directories for each file type.
The path for executable files, configuration files and log files are all required, all others are optional and
provided for convenience. If specified, they are used as default directories by the various device configu-
ration dialogs.
This feature allows each user to have different naming conventions for their reader, punch and disk files
etc.
The 'At Startup' option requests the filename of the console log file when the GUI is started. The 'At
Shutdown' option asks if the console log file should be saved or not when the GUI is about to be closed.
The 'Automatic' option does not ask for a filename at all and instead generates a filename automatically
based on the parameters provided. For example, if the base filename is "Hercules Logfile.txt" the gene-
rated log filename will be "Hercules Logfile.000.txt" the first time the GUI is started, then "Hercules Log-
file.001.txt" for the next start of the GUI, etc.
Starting with version 1.4.0, once log files are created by whichever method, they are written to con-
tinuously as new messages arrive. This removes the need to do a periodic "Save Messages".
As new messages are now automatically written to the log file during Hercules execution, it is recom-
mended to use the "Advanced Logging Options" dialog to specify the maximum log file size in number of
lines. This is meant to prevent the log file from filling up your hard drive. Use the ‘Advanced’ button on
the main Logging preferences tab to access these settings.
The log file is a wrap-around file, where the oldest messages will be overwritten by newer messages
when the specified size limit has been reached. Once the specified maximum number of lines has been
written to the log file, the GUI will reset its file position pointer back to the beginning of the file and begin
writing new log file messages over the top of older ones.
The file is not recreated when full. When it wraps around and begins to overlay older messages, the mes-
sages near the end of the log file are still present until eventually overwritten.
Note too that the Advanced Logging Options dialog lets you specify the maximum number of messages to
be retained in memory. A limit is required to prevent run-away memory consumption. This memory limit is
a separate value from the disk log file limit and essentially controls how far back you can scroll the con-
sole to see older messages.
11.5.4 Console
The Console Tab allows it to specify the preferred console font, font colour and background colour for the
Hercules console message area.
11.5.5 Misc
The Misc Tab allows you to specify various miscellaneous preferences, such as how the GUI should react
to your pressing the "Power Off" button.
When shell command support was added to Hercules for the Windows environment a bug was revealed
in the manner that Cygwin processed the 'fork' command. Although a workaround was developed the
GUI was also modified to be able to issue the shell commands directly instead.
In order for the GUI to be able to issue shell commands instead of Hercules itself a new program called
'conspawn.exe' was developed. The GUI passes the shell command to conspawn for execution. The
conspawn program is included as part of the GUI package and must reside in the same directory as the
other Hercules executables.
The Ignore Parse Errors option was created to allow you to open and use a Hercules control file that the
GUI would otherwise fail to parse properly for whatever reason.
When a control file is opened the GUI parses the statements and saves the information in an internal con-
trol area. This information is used later to complete various fields in the dialogs such as the device con-
figuration dialog. If the GUI cannot properly parse a given control file statement it throws a parse error
and prevents you from opening or using what it considers to be a bad control file. This option can be used
to bypass this error, for example when using a device statement containing a new parameter that Her-
cules understands but the GUI may not yet support.
The "Ignore Parse Errors" option instructs the GUI to ignore the parse error and open and use the control
file anyway. When this option is set the GUI ignores all parse errors and will always successfully open
whatever control file you instruct it to. As the GUI can update the Hercules control file, it is highly recom-
If you do need to enable this option, remember to disable it when no longer needed as once enabled it
will stay that way until you purposely disable it. Like all preference options it is persistent across
executions of the GUI.
11.5.6 Misc2
The Misc2 Tab provides additional options that would not fit on the original Misc options tab.
Since version 3.0 of Hercules support has been added for command-line options beyond the existing -f
(control file) option. Here you can enter any of the new command-line options you may wish to have
issued whenever the GUI starts up ("Powers On") the Hercules emulator.
Note that you must not specify the -f option here. The GUI constructs the -f option automatically based on
the configuration file previously defined in the Preferences dialog. You may enter any other command-line
options in addition to the required ones - see the important note immediately below.
This is an advanced option and should not be modified by end users. Please only change this if instructed
to by Hercules Technical Support or Hercules developers.
Since HercGUI version 1.9.5 the System Configuration dialog information is displayed in three separate
property pages: the Architecture page, the O/S Tailor settings page and the Other / Misc page.
The Identification section simply displays the full pathname of the configuration file that was opened and
provides an input field for a text description to be associated with this particular configuration file. This is
in case you have multiple system configurations where it is useful to have some indication that you are
modifying the correct one. The description you enter here is saved as a comment at the beginning of the
configuration file.
In the main System Configuration dialog, if the GUI finds a specially formatted file called "cpu-types.txt" in
your preferred configuration files directory, a small '>' button will appear next to the "CPU Model number"
edit-box. This file may contain a list of the various CPU model numbers, their names and their correspon-
ding STIDP (Store CPU ID instruction) values.
When the System Configuration dialog is initialized, if the GUI finds this file, it will parse the entries and
use them to construct a drop-down box that will be displayed when you click the '>' button. This allows
you to easily select the desired CPU Model you wish your virtual mainframe to be reported as.
Neither the GUI nor the Hercules Emulator itself makes any attempt to try and emulate all aspects or fea-
tures of a given CPU model. This CPU model number simply specifies what value to use in the STIDP
(Store CPU ID) instruction.
When your CPU Model is selected in this way the GUI automatically fills in the "CPU Model number" edit-
box field with the corresponding value it finds in the "cpu-types" file. You have the option of manually
overriding this value. A sample "cpu-types" text file is included with the distribution of the Hercules GUI.
When the "Enable licensed program product O/S" option is specified for a given control file any attempt to
power on Hercules using that control file will result in a dialog box being displayed that asks you to verify
your true intentions.
As soon as this dialog is displayed a 10-minute timer is started. If you respond before the timer expires
your response is accepted as-is. If your response is "No, I do NOT honestly wish to run in unrestricted
mode" then your virtual mainframe will not be powered on. If your response is "Yes" - whether explicit or
presumed (see next paragraph) - then Hercules will be powered on.
Please note that if you fail to respond within the 10-minute time limit your response is presumed to be
"Yes, I honestly DO wish to run in unrestricted mode". If you do not wish to wait the entire 10 minutes
then you will have to respond to the dialog manually yourself. There is no way to disable or override this
feature.
This dialog is displayed each time you attempt to power on Hercules during a given Hercules GUI session
when using a configuration file with the "Enable licensed program product O/S" option checked. Although
you only have to respond to this message once during a single session if you continue to use the same
configuration file. If you switch to a different configuration file and then return later to the first one (or exit
the GUI entirely and start it again), you will be asked once again to confirm your intent.
Within this tab several other settings can be specified. If the "Enable shared devices support" checkbox is
marked, then the settings window can be opened which allows to specify the port for the Shared Devices
Server.
Enter the port number for Hercules's HTTP Server to listen on and if desired specify the authentication
criteria needed to connect to the server. You can also enter the root directory from which the web pages
will be served.
If you enter a userid for authentication then you must also enter a password. If no userid and password
are entered then anyone with a browser that is able to connect to your Windows host system will be able
to control your Hercules system via the HTTP Server interface. The password you enter is not encrypted
in any way and is stored in your Hercules control file, as well as passed through the network, in unencryp-
ted plain text format. You should therefore take whatever steps are required to secure Hercules control
file(s) that contain HTTP Server passwords.
Since Hercules version 2.17 the behavior Compressed CKD DASD (CCKD) functionality is controlled via
the setting of certain global parameters. CCKD functionality is no longer adjustable on an individual
device-by-device basis.
The "Maximum shutdown wait time expected for this configuration" setting defines a time limit to the
Hercules GUI. This limit is the amount of time the GUI is to expect between when the 'quit' command is
issued (or the "Power Off" button is pressed) and when Hercules finally finishes exiting after completing
its shutdown sequence.
When you use compressed disks (CCKD) Hercules needs time to write-back cached copies of track ima-
ges and adjust the free space for each disk before it can safely exit. If the expected wait time is exceeded
the GUI issues a warning asking whether to continue waiting or forcibly terminate the Hercules Emulator
process. If many compressed disks are frequently updated it can take over a minute to write all cached
data to disk.
It is safe to specify a value for this setting that is high enough for all likely cases in your environment. The
Hercules GUI will terminate as soon as Hercules itself ends regardless of the wait time setting.
Right clicking on a device statement presents a context menu from which you can select 'Edit' or 'Proper-
ties'. Selecting 'Properties' presents the "Reinitialize Device" dialog, also displayed by double-clicking the
device statement.
When 'Edit' is selected from the right-click context menu you are presented with a simple device state-
ment edit dialog. From here you can directly modify raw device statements.
To delete a device select the desired device first to highlight it and then click on the 'Remove' button. To
modify (reinitialize) an existing device, double-click on the entry for the desired device:
Note: If you used any of the new CCKD parameters on the main System Configuration dialog, some
controls in the above dialog will not be displayed. This occurs because the new System Configuration
CCKD parameters modify CCKD functionality on a system-wide basis and remove the ability to specify
these parameters on per-device basis.
If you need to modify real or virtual storage it is highly recommended that you use the Hercules Emulator
'r' and 'v' panel commands. These ensure that the hardware emulator is aware of any changes.
The "input data is from socket" option is found to the right of the device type field. It allows you to tell
Hercules to obtain card reader input from a specified socket instead of a disk file as by default. This
allows you to submit card decks remotely using a simple utility that connects to the specified socket and
writes card images directly to Hercules. Recent releases of the GUI provide a DOS program "HercRdr" to
support this capability. For more information on the HercRdr utility and the 'sockdev' option refer to the
Hercules User Reference Guide.
A grey diode indicates that the device is offline and not open. A green diode indicates it is online or open.
The green diode changes to yellow whenever the device is busy and changes to red when there is an
interrupt pending for the device.
As the hosted system runs and performs I/O to the devices in your configuration you will see the diodes
change between yellow, red and green. This shows that there is I/O activity taking place on the device.
Devices are displayed in a tree-list with a branch for each class of device. Right-clicking the Devices with-
in a branch presents a context sensitive menu. You can also right-click each branch.
To add a new disk drive to your configuration right-click on the "DASD Devices" branch and select 'Add
device' from the menu that appears. To delete ("detach"), rename ("define"), reinitialize ("devinit") or pre-
sent an attention interrupt ("i") for a particular device, right-click the device and select the appropriate
option from the context menu presented.
MaxPacketBuffsize 1024 Maximum allowable TunTap32 DLL I/O buffer size (KB)
Scroll through the license agreement and read it carefully. Next, click on the “I Agree” button to continue
with the next step.
If you have read the instructions, then click on the “Next” button to proceed.
Click again on the “Next” button to continue with the installation dialog.
When you are satisfied with your choice of the destination folder then click on the “Next” button to
continue with the next step.
Click on the “Next” button to proceed with the last step of the installation.
After clicking on the “Finish” button the installation dialog is terminated. The HercPrt utility is now installed
successfully on your computer. To start the utility look in the Windows start menu under the menu point
you just selected some steps before. If you installed the 32-bit version of HercPrt you will find only an
entry to “HercPrt32”, if you however installed the 64-bit version you will see an entry to “HercPrt64” as
well as an entry to “HercPrt32”.
Example:
Example:
The value ‘ipaddress:port’ is the TCP/IP address and the port number at which the Hercules socket
printer will listen for incoming connections. The IP address is typically the IP address of the Windows
system where HercPrt is running on and the port number can be any value from 1024 to 65535.
Note that Hercules socket printers do not support any other options besides “SOCKDEV”, the “clrf” and
“noclear” options for example are invalid when defining a socket printer. For details on how to define
printers in a Hercules configuration file please see the Hercules “User Reference” manual.
Printer ID This field is used to enter a descriptive name for the Hercules printer you are defi-
ning. The value can be anything that uniquely identifies the printer being defined. If
you already have some printers defined you can select one of these previously de-
fined printers from the dropdown list to automatically populate the remaining con-
trols with the values for the chosen printer.
IP Address This must be the IP address where your Hercules printer is listening for incoming
connections.
Port Number This must be the port number where your Hercules printer is listening for incoming
connections.
Control File This is the filename of the “Job Separator Control File” for the printer. The job sepa-
rator control file defines what your Hercules guest operating system’s job separator
pages look like and allows HercPrt to detect where one print job ends and the next
Spooler Dir Enter here the name of the directory where you want the print files to be placed.
Click on the arrow to display a standard Windows file open dialog where you can
select the directory for the print files of this printer.
For details on how CTCI-WIN works internally see the Hercules "General Information" manual.
Make sure you have entered a valid IP address, subnet mask and default gateway. This is all that is
necessary on the Windows system side, the remaining configuration of the CTCI-WIN functionality is
controlled via Hercules device statements.
13.3.1.1 IP Forwarding
You may or may not need to have "IP Forwarding" enabled on your Windows system. Whether this is
required or not depends on your use of a router within your network. If you are using a router to define
routes to hosts on your LAN, then you should not need "IP Forwarding" enabled on your Windows sys-
tem. If however you are not using a physical hardware router then you will likely need to enable IP For-
warding.
To allow your Hercules guest operating system to communicate with hosts on the LAN apart from the
host machine itself (where Hercules is running), TCP/IP requires routes to and from the Hercules hosted
operating system. This is necessary so that the Hercules virtual guest OS's packets can be properly
routed to their final destination. This is typically the role performed by a hardware router. If you do not use
a hardware router then Windows "IP Forwarding", together with appropriate ROUTE statements, will per-
form this role.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"="1"
If the "IPEnableRouter" (or "EnableRouting") registry value does not yet exist under the mentioned re-
gistry key then you will have to add it manually. Select 'New' from the 'Edit' menu and add a new DWORD
value with the indicated name.
Note that the format of the Hercules configuration file statements for networking emulation has changed
from previous releases of Hercules. The older 'CTCI-WIN' format has been deprecated. Please ensure
your CTC device statements are updated to use the newer 'CTCI' or 'LCS' format in order to remain com-
patible with current and future releases of Hercules. For example:
The first IP address (192.168.0.4) is the IP address of your Hercules system, i.e. the guest operating sys-
tem running under Hercules. The second IP address (192.168.0.2) identifies the CTCI-WIN logic, i.e. the
network adapter that CTCI-WIN is to use in order to reach the Windows TCP/IP stack.
It is recommended that the IP address you choose for your virtual guest (like 192.168.0.4 in the above
example) is in the same subnet as your Windows host in order for CTCI-WIN to work properly. The
simplest way to approach things is to configure your guest as if it were a real system connected to your
network. Thus it would normally be assigned an IP address within the same subnet as all the other work-
stations on your LAN.
Note that it is possible to place the guest OS in a separate subnet to your Windows host if you are pre-
pared to define the proper routing entries. However it is usually a lot simpler and less problematic to de-
fine all hosts in the one IP subnet.
If your network adapter does not have a static IP address then instead of specifying an IP address as the
second parameter in the Hercules device statement, you must specify the MAC address of the adapter
you wish to use:
Note that the format of the CTCI definition statement is slightly different in this case. The ‘-n’ parameter
informs Hercules that this is a MAC address, however the parser still expects to see two IP addresses,
hence the second address is specified as a ‘dummy’ address, i.e. all zeroes. The first IP address is still
the address you have assigned to the OS hosted by Hercules.
The first entry in the TCP profile is the DEVICE entry. This is the Para-
meter that defines the UCB address assigned to the interface within the MVS
environment. It is related to the LINK statement to build the TCPIP connec-
tion between the hardware and the TCPIP stack.
The second entry is the HOME entry. This is where the IP address is
assigned to the device interface within the TCPIP stack. The HOME entry
connects the IP address to the hardware through the LINK defined with the
DEVICE.
HOME
192.168.0.4 CTC1L
The GATEWAY describes how the IP stack gets to the rest of the network. It
defines the physical first hop from the local interface out to the entire
network. In our example, we are defining a gateway to one physical IP
address, 192.168.0.2. 1492 is the data packet size.
GATEWAY
192.168.0.2 = CTC1L 1492 HOST
The final statement needed in the profile is the command to instruct TCPIP
to start the device.
START CTC1
If you wish to try using an LCS (LAN Channel Station) device instead then the following sample may be
useful. LCS can handle any Ethernet packet rather than just IP packets:
-----------------------------------------------------------------
-----------------------------------------------------------------
oatfile.txt:
*********************************************************
* Dev Mode Port Entry specific information *
*********************************************************
0E20 IP 00 PRI 172.16.9.93
HWADD 00 00-00-5E-90-09-5D
-----------------------------------------------------------------
START LCS1
START IUTSAMEH
HOME
172.16.9.93 ETH1
172.16.10.93 VLINKA
BEGINROUTES
ROUTE 172.16.0.0 255.255.0.0 = ETH1 MTU 1492
ROUTE DEFAULT 172.16.13.1 ETH1 MTU 1492
ENDROUTES
PORT
12000 UDP VTAM
12001 UDP VTAM
12002 UDP VTAM
12003 UDP VTAM
12004 UDP VTAM
-----------------------------------------------------------------
Alternatively if you do have a real router then your default gateway should be the IP address of your
actual router. In the sample LCS configuration immediately above 172.16.13.1 is a real network router
and thus knows how to route traffic to the other end of the guest's Enterprise Extender link. Note that, as
recommended, the guest's IP addresses (172.16.9.93 and 172.16.10.93) are within the same subnet
(255.255.0.0) as the Windows host that Hercules is running under (172.16.9.163).
The numbers 1024 and 64 in the above statements are the size of the WinPcap kernel device driver's
internal packet buffer (in KB), and the size of TunTap32 DLL's internal packet I/O buffer (in KB) respect-
tively. Please note that memory for WinPcap's kernel device driver's packet buffer is taken from Windows
"non-paged" memory pool (i.e. from your system's real physical memory). The size of this buffer has a
direct impact on Windows performance. If you choose a ridiculously large number here Windows will have
little memory left to work with and the overall performance of your Windows system will be degraded.
The second number (64 in the above example) is the size in KB of the I/O buffer allocated inside the
TunTap32 DLL. This defines how much data TunTap32 will request from the device driver each time it
needs to do an I/O operation to the physical adapter and therefore how much data will be transferred from
the device driver's internal buffer to TunTap32's I/O buffer. The memory for this buffer is allocated in vir-
tual memory from the Hercules process's address space and should not impact Windows's performance
unless a ridiculously large number is specified. If too high a number is specified then Windows will likely
‘thrash’ attempting to page the entire Hercules address space and performance will be degraded.
The TunTap32 DLL passes packets to Hercules one at a time. When it runs out of packets in its internal
I/O buffer it requests more data from the WinPcap device driver via the FishPack DLL. The TunTap32 I/O
buffer size determines how much data and therefore how many packets it will receive from WinPcap for
each request.
The larger this buffer, the fewer actual I/O's TunTap32 will perform to WinPcap via FishPack, but at the
same time the longer the interval between those I/O's. This implies that the WinPcap device driver will
have to buffer its data for a longer period between less frequent I/O's. This requires a larger kernel buffer
in order to ensure that no packets are lost during periods of high network activity. Conversely, the larger
the actual I/O (i.e. the more bytes transferred per I/O), the longer each I/O takes. Although this is mea-
sured in microseconds, the delay holds up the entire Windows operating system during transfers of data
from kernel-space to a user-space. It is good to perform as little I/O as possible as these can be expen-
sive, but the benefit drops quickly if each I/O has significant impact on the overall system, so choose
these settings carefully.
Unless you are using a Gigabit or faster network it is usually best to leave these at their default settings.
The currently implemented minimum, maximum and default values are:
If you decide to adjust these buffer size values to try and increase network throughput and performance,
you may find the Hercules "tt32stats" command useful.
The tt32stats command shows the actual tt32 statistics as shown below:
If the reported "Maximum DLL I/O Bytes Received" value is identical to the value specified for the "Size of
DLL I/O Buffer", then each time TunTap32 requested more packets the WinPcap device driver had at
least a full buffer worth waiting to be delivered to TunTap32.
This generally indicates that the default buffer size is too small or that your network is extremely busy.
This would be the least common situation though. TunTap32 is rarely unable to deliver an entire buffer of
packets to Hercules before another buffer arrives unless Hercules is performing extremely poorly or your
network really is under heavy load.
www.tombrennansoftware.com
The downloaded version of Vista tn3270 can be used for a free trial for 30 days following installation.
After this free trial period a license key must be entered for continued use of the software.
Host IP Name/Alias This name is usually a dot address like 206.85.100.23 or a DNS (Domain Name
Server) name, such as "tn3270.company.com". It can also be an Alias name that
points to either a DNS or dot address (see Assign Host to Alias below). IP names
and their associated port numbers are stored in the VISTA.INI file rather than the
session file so that they can be shared among sessions.
The special host name "localhost" or the IP address "127.0.0.1" means the local
machine.
IP Port Each Host IP Name has an associated IP Port number which you can change
using this field. Normally TN3270 is defined to port 23 but in some cases your
connection may need to use a different port number. This port number has to be
the same as that specified for the CNSLPORT system parameter in the Hercules
Configuration File.
If you need to logon to the same hostname using various port numbers create
multiple Alias names which point to the same host but use different ports.
Additionally you can define aliases for IP addresses. This can help you remem-
ber which host Vista is connecting to.
Delete Host This button can be used to delete the selected Host IP Name if you want to clean
up the list.
Assign Host to Alias Dot addresses and DNS IP names can be cryptic to look at. Instead you can type
a more descriptive name such as "P390" in the Host IP Name or Alias field then
press the Assign Host to Alias button to relate the alias name to a real DNS
name or dot address. Alias names can also provide the ability to logon to the
same hostname using different port or LU names.
LU Name When in TN3270E mode, you have the option of specifying a VTAM 8 character
LUNAME to be used when establishing the connection. If you need to logon to
the same hostname using various LU names, create multiple Alias names which
point to the same host but have different LU’s.
Connect Button When this button is pressed, Vista attempts to connect to the specified Host IP. If
all is correct Vista connects to Hercules and presents the Hercules welcome
screen. If however there is a problem you may see an error window such as the
following one:
http://www.cbttape.org/njw/
When you are satisfied with your choice of the installation directory click on "Next >" to continue.
When you are satisfied with your installation choices, continue by clicking “Next”. The installer will start
copying files to your harddisk, creating icons and updating registry settings.
You can now either exit the setup program or optionally select to launch the application as you exit setup.
Click on "Finish" to complete.
Note: Beginning with release 1.5.1.1805 of AWS Browse additional DLLs are required. These are Micro-
soft MFC and VC Runtime DLLs that you can download from the address mentioned above. The instal-
lation takes a few seconds and does not require a reboot. There are a 32-bit and a 64-bit version of these
DLLs. Please ensure you are using the correct one according to the product you are installing (32-bit or
64-bit version of the Windows GUI).
If you previously installed the Hercules Windows GUI as described earlier in this manual then these DLLs
are already present on your system. Note that you only need to install these C Runtime DLLs once even if
new versions of AWS Browse are subsequently installed.
17.1 Introduction
This section provides instructions on how to build the MSVC version of Hercules. Once you have suc-
cessfully set up the build environment (which you only need to do once) the process of actually building
Hercules is very simple. Just open the provided ‘Hercules.sln’ solution file and click the ‘Build’ or ‘Rebuild
All’ button.
c. Define a ZLIB_DIR environment variable pointing to the path from the previous step.
c. Define a BZIP2_DIR environment variable pointing to the path from the previous step.
c. Define a PCRE_DIR environment variable pointing to the path from the previous step.
5. Start Visual C++ 2008 Express and open the Hercules provided “Hercules.sln” solution file.
6. Select the desired 'Solution Configuration' (Debug or Release) and 'Solution Platform' (Win32,
x64 or Itanium).
7. Click on the ‘Build’ or ‘Rebuild All’ button.
\$(ZLIB_DIR)
zlib1.dll
zlib1.pdb
\Debug
\include
zconf.h
zlib.h
\lib
zdll.lib
\x64
zlib1.dll
zlib1.pdb
\Debug
\include
zconf.h
zlib.h
\lib
zdll.lib
When building a 64-bit (x64) version of Hercules the above ‘x64’ subdirectories are automatically
searched, so as long as the above directory structure is adhered to then Hercules should build fine.
\$(BZIP2_DIR)
\Debug
bzlib.h
libbz2.dll
libbz2.lib
libbz2.pdb
\x64
\Debug
bzlib.h
libbz2.dll
libbz2.lib
libbz2.pdb
When building a 64-bit (x64) version of Hercules the above ‘x64’ subdirectories are automatically
searched, so as long as the above directory structure is adhered to then Hercules should build fine.
\$(PCRE_DIR)
\bin
pcre3.dll
pcre3.pdb
pcreposix3.dll
pcreposix.pdb
\include
pcre.h
pcreposix.h
\lib
pcre.lib
pcreposix.lib
\x64
\bin
pcre3.dll
pcre3.pdb
pcreposix3.dll
pcreposix.pdb
\include
pcre.h
pcreposix.h
\lib
pcre.lib
pcreposix.lib
\$(REXX_DIR) or winbuild\rexx
\demo
\doc
\include
\lib
\x64
\demo
\doc
\include
\lib
The existence of the “x64” path is dependent on the chosen Regina REXX package (32-bit or 64-bit ver-
sion).
If the Hercules build routines can find the REXX package in the default location or the location specified
through the REXX_DIR environment variable then REXX support is automatically built into Hercules,
there is no source change necessary (e.g. no change from “#undef xxx” to “#define xxx”).
18.1.2 Stability
Whilst most Linux systems are generally less cluttered than their Window counterparts, the stability of the
system running Hercules will very much depend on what other processes will co-exist within the same
system.
If you are using a Linux environment dedicated to only run the Hercules emulator, whether as a virtual
machine or a Linux server, then the stability of the system should be of little concern. If however, you use
a Linux system that is also your primary desktop environment, then, as with Windows desktop systems,
the more software that is installed and runs parallel to Hercules the greater the chances of the stability
being impacted.
In general, the fewer software applications that are running on the system, the better the emulated main-
frame will run.
The previous figure shows the initial display in the Hercules console window. The next figure shows the
Hercules device and status display accessed with the ESC key.
The last figure shows the Hercules web browser interface which can be accessed when the Hercules
HTTP server is configured and running.
Now navigate to the User management section or tab and click “Add”. In Ubuntu, just click “Add” from the
“Users Settings” dialog.
In the “Create New User” dialog, enter the Name and Username of the account to be created and click
“OK”. In this example, we are creating a userid of “hercules”.
You will normally be asked to set a password for the new account. Enter your chosen password and click
“OK” to complete the dialog.
Now click on the “Advanced Settings” tab and set the default group to the one you created previously (in
this case, “hercgrp”). In Ubuntu, this setting is available under the “Advanced” tab by selecting the group
from the “Main group” drop-down list.
If you wish, you can also set a UID for the account. In this example we have set 5000 as the UID (not to
be confused with the GID of 5000 for the group).
Click “OK” and then “Close” to complete the dialog.
The package management software allows you to search for which applications you would like to install.
In this case, enter “hercules” into the quick search box and the software will display a list of applications
which contain this name in either the package name or description.
As you can see in the illustration “Package Manager Selection” on page 158, the package manager has
responded with a list which contains the Hercules software and a description of “System/370, ESA/390
and z/Architecture Emulator”.
By clicking on the check-box to the left of the selection, the system will respond with a properties list
detailing the actions that you can perform. In this case, we wish to mark the application for installation
which we can do by clicking on this option.
Once you have completed your selection of applications to be installed, click the “Apply” icon which you
will see on the action bar above the package information. The package manager will respond with a sum-
mary showing what will be installed.
Click “Apply” on this panel to complete the installation. Once complete, the system will respond with:
cd <local_software_directory>
wget http://www.hercules-390.eu/<identified_file>
Now change to a work area (either your home directory or /tmp will do) and run the following command to
unpack the downloaded source package:
This will extract all the required files into a sub-directory of your current location which should have the
name of the “identified_file“ (without the suffixes).
Change into the directory shown after the unpack process is complete. Now issue the following com-
mand:
./util/cvslvlck
This is a handy script provided by the Hercules developers to let us know what we need (that we don’t
already have) to build the binaries. If any of the software packages that it requires are missing, we will
need to use the Software Manager on the Linux system to install them.
The following example output snippet shows one of the packages that the script has identified the follow-
ing packages as being not present or at a too low level.
Open the Package Manager and select all the required packages. As a suggestion add g++ (the GNU
C++ compiler) to this list.
Apply these updates to the system to complete the pre-requisites to configuring and building the binary
installation process as shown in the figure below.
Once the missing packages have been installed, we are ready to configure the installation process. The
actual running of this configuration command will vary depending on the hardware you are running Linux
on, the variant of Linux you have installed and different packages and their levels. It is the job of the con-
figure process to evaluate all these variables and to create a file that will correctly build the Hercules bina-
ries for your system.
Now we are ready to configure the install process, so we start with the “configure” command. There are
many options that can be passed to the configure command, but we will just pass one for this build. Now
issue the following command:
./configure --prefix=/usr/local/hercules
This option changes the installation target for the binaries. This is useful if we want to later use snapshot
versions of the Hercules binaries to test. This parameter is optional and shown here only for illustration. If
you chose a new location for the installed binaries, you may want to add the target “bin” and “lib” directo-
ries to your PATH and LIBPATH environment variables.
Once the configure process has completed successfully, we can run the “make” command to compile all
the source components. Now issue the following command:
make
The “make” command will take some time to complete, but should end without error (warnings should be
OK) with messages similar to those shown in this snippet.
The final step of the build process is to link the compiled object files into their binary forms and install
them into our target directories.
Now issue the following command:
We will run the “make install” command under root authority so that we can be sure that any required
directories can be created. The command should finish without error and the final messages will be
similar to those shown in this snippet.
The Hercules binaries are now installed, so you can skip to “Verifying the Hercules Installation” on page
172 to continue.
If RPM packages are not natively supported (such as Ubuntu) then you will need to right-click on the re-
quired RPM package and select “Save Link as” to save the RPM to a local directory and continue with the
next section.
Similarly, enter “alien” and select the “Mark for Installation”. Click “Apply” and wait for the software to be
installed. Once complete, the package manager will respond with “Changes applied”.
Alternatively, you can use the command interface to install the required software. Open a terminal ses-
sion and type:
Now we need to unpack the RPM package so that we can prepare it for the Debian based system. To do
this, we use the “alien” command:
alien –s <rpm-package>
This command unpacks the RPM package into an output directory structure (much like unzip). Change to
the unpacked directory and rename the “debian” directory to “DEBIAN”.
Next edit the “conffiles” file in the DEBIAN directory and replace any “_prefix” string at the beginning of a
line with the desired target directory. In this case we will be using the root as our target so we simply re-
move the “_prefix” strings.
To reflect the changes made in the previous step, move the directory structure and accompanying files
under the “_prefix” directory to the target directory structure based on the current directory. As our target
directory structure is based on the root directory, we simply move all the files from the “_prefix” directory
to the current directory. Once the files have been moved, you can remove the “_prefix” directory.
This command will pack the files from the RPM directory structure into the new Debian format installation
package. Assuming all this has gone successfully, we should now have a Debian package ready to
install.
In order to simplify the conversion of the RPM to the Debian format package, cut and paste the following
into a script file and run it from the directory where the downloaded RPM package file is stored.
#!/bin/sh
pkg="${1:-missing_rpm_package}"
echo "***************************************************************************************"
rpm -qip ${pkg} 2> /dev/null || (echo >&2 "rpm failed for package: ${pkg}";exit 1)
The command, like all Linux commands, is case sensitive. It starts the Hercules program and combines
the two resulting output streams together (“2>&1”) before piping that through a filter (“grep”) searching
for the text string “Version”.
man Hercules
whereis hercifc Display the location of the hercifc program. This “whereis”
command is a Linux program that searches in well-known
locations for programs or source files.
sudo chown root:hercgrp hercifc Use “sudo” to change the ownership of the “hercifc”
program to “root” with a group of “hercgrp”.
sudo chmod 4750 hercifc Use “sudo” to change the attributes of the “hercifc”
program to be setuid to the owner (root) and executable
only by root and the group (hercgrp).
The result of these commands is to allow the “hercifc” program to execute with root authority (that is what
the chmod command above does) but restrict the execution of the program only to the file owner (user
“root”) and any user connected to the “hercgrp” group.
This will allow the tunnelling device to open and configure correctly when initiated by user “hercules” but
reduce the security exposure of having a program setuid-to-root to the minimum.
These manual customization steps are explained in detail over the following sections.
\usr
\bin Hercules binaries are stored here after a Package Manager installation.
\lib
\hercules Hercules shared object (or linked library) files.
\local System defined location for local modifications.
\bin Location for local scripts (e.g. start-up script).
\hercules Completely separate directory for the Hercules guest operating system.
\mvs Location for Hercules configuration file and run-command script file.
\dasd Location for operating system disk files.
\tape Location for operating system tape files.
\printer Location for operating system printer files.
\log Location for Hercules log files.
where filename is the name of the configuration file. The default filename if none is specified during the
start-up is ‘hercules.cnf’. The name of the default configuration file may be overridden via the environment
variable HERCULES_CNF.
The configuration file is an ASCII text file that is used to describe the processor definition, the device lay-
out and any runtime parameters. Details of the format and acceptable directives that can be made within
the file are found in the Hercules “User Reference Guide”.
Using the directory structure example outlined in “Directory Locations” on page176, we would create this
file in:
/hercules/mvs/
#!/bin/sh
#export PATH=/usr/local/hercules/bin:${PATH}
#export LIBPATH=/usr/local/hercules/lib:${LIBPATH}
cd /hercules/mvs
hercules –f mvs.cnf
To create this file using “vi”, try the following in a telnet shell:
sudo vi hercules.sh Use “vi” to edit the new file. Use “sudo”
because we probably don’t have the
authority otherwise.
First we change the ownership of the file to the Hercules userid and its group:
You can also set the attributes directly using the command:
Creative use of the run-commands file can completely automate Hercules start-up and initiate the IPL of
the mainframe operating system. For details about the usage of the run-commands file see the Hercules
“User Reference Guide".
This command will create a virtual terminal and wait for input to the new window:
The first command shown in the figure displays the active virtual screens. Currently there are no screens.
Then enter the command shown above to build a new virtual screen with the given name and title.
Once the new virtual screen opens, you can list the available virtual screens which should now include
the newly define one active in our shell.
From this virtual screen, you can start the Hercules process. Once started, you can detach this screen
using the following commands:
screen –d Hercules
Clicking “OK” will start the Software Management installation process. Clicking “Install” will download the
selected package and complete the installation:
hercules –f mvs.cnf
to the following:
The next figure shows the running Hercules Studio. A detailed description about working with the Hercu-
les Studio can be found in the “Operations and Utilities Guide”.
23.1.2 Stability
Hercules appears to Mac OS X as just another application program. Although it is possible to run other
applications simultaneously with Hercules, this is not recommended.
While the Hercules Emulator is extremely stable, it is impossible to guarantee that other applications will
not degrade the Hercules performance. The less software you have running on your Mac, the more stable
your emulated mainframe will be running. Prevent any heavy workload changes. Hercules will get no pro-
blems indeed, but the guest system will however.
In general though the less software is installed and running, the better the emulated mainframe will run.
Note: On Mac OS X 10.4 (Tiger), open the TCP ports 3270, 3505, 3990 and 8081 (depending on your
ports set in the Hercules configuration file) in the firewall of your Mac. On Mac OS X 10.5 (Leopard) and
above, you'll just have to click on "Always Allow" the first time you start the Hercules Emulator if the fire-
wall is set.
By default the Hercules Emulator use TCP Port 3270 for terminal access and 8081 for the internal HTTP
server.
23.2.5 Endianness
If you move a Hercules guest system from a PPC to an Intel Mac, the CCKD DASD files are converted
once at the Hercules start-up:
HHC00414I 0:0148 CKD file dasd/mvsres.148: cyls 560 heads 30 tracks 16800 trklen 19456
HHC00357I 0:0148 CCKD file 'dasd/mvsres.148': converting to 'little-endian'
If you move the CCKD DASD files back to a PPC Mac again then you will see the following messages:
HHC00414I 0:0148 CKD file dasd/mvsres.148: cyls 560 heads 30 tracks 16800 trklen 19456
HHC00357I 0:0148 CCKD file 'dasd/mvsres.148': converting to 'big-endian'
This is normal behavior all the time you switch between processor architectures that use the little-endian
format (the Intel format), like Intel x86 and x86-64, and processor architectures that use the big-endian
format (the Motorola format or network order format), like Motorola PPC and 680x0 or IBM PPC and
POWER.
The mainframe System/360 and its successors such as System/370, ESA/390 and z/Architecture hard-
ware use the big-endian format too.
Note: See Hercules utility “CCKDSWAP” for more information.
23.3.1 Hercules
The Hercules executables are the heart of the emulator and a mandatory component. This is the software
implementation of the System/370, ESA/390 and z/Architecture mainframe hardware and processor ma-
chine code instruction set.
Hercules runs as a shell program and comes with a semi-graphical display in a shell terminal (the Hercu-
les Hardware Console - HMC) consisting of two screens, switched between using the Esc key. When the
Hercules HTTP server is running, Hercules can also be operated via a web browser.
The following figure shows the initial display in the Hercules Console Window.
The next figure shows the Hercules device and status display accessed with the Esc key.
The following figure shows the Hercules web browser interface that can be accessed when the Hercules
HTTP server is configured and running. This is the only graphical user interface beneath the Hercules
Studio GUI for Hercules on Mac OS X today, but it is very useful to get access to the Hercules console.
Optionally the Hercules Studio GUI is available. Hercules Studio GUI is not part of the Hercules Emulator
and it is necessary to build Hercules yourself to support this GUI.
To reflect to the Hercules package installation file use "dseditgroup" to assign the Hercules user to the
"wheel" group as shown in the following command:
Read the chapter "Configuring the Network Interface" to get more information about the Hercules network
interface.
If such a plug-and-play approach to software installation does not suit you or you require greater flexibility
when installing software packages, the Hercules web site at http://www.hercules-390.eu contains packa-
ges for both binary and source code installation.
Both of the above techniques result in the currently released stable version of the Hercules binaries being
installed. This is normally the best practice, so either of these two techniques is normally recommended.
Some people however, need the latest software being developed by the Hercules engineers and more
up-to-date packages can also be implemented.
"v.rr" in the filename specifies the version and release of the Hercules Emulator.
There is no difference between these installation packages in general, except of the supported Mac OS
X. Which one of these installation disk images is the right one for you depends on your Mac OS X only.
The Hercules installation disk image for Mac OS X 10.6 should work with Mac OS X 10.7 (Lion) and Mac
OS X 10.8 (Mountain Lion) too. But do not install the Tun/Tap driver contained in the Hercules installation
disk image, see chapter 25.1 "Installing the tun/tap driver" for more information.
Read the important information and click on "Continue" to continue the installation process. If you are not
familiar with Unix or BSD save the information first, click on "Save...".
Read the licence agreement and click on "Continue", then click on "Agree" to accept the licence agree-
ment and to continue the installation process.
Click on "Install" to continue the installation process and then enter the name for an administrator and the
password and click "OK" to perform the standard installation process. You cannot select the installation
destination at this time. The installer now begins to copy files to the system disk "Macintosh HD".
After a few seconds the installation process will finish and present the final window.
Click on "Close" to terminate the installation process and proceed to customise your installation as de-
scribed in the following sections. You can skip to chapter 26 "Customization steps" or to chapter 27
"Installation Verification Procedure" to continue.
If you need the tunnel driver or link layer driver to provide networking from your Hercules guest system
and have not installed it already, a tun/tap driver is in the tuntap folder. Hercules can use this driver to
provide networking functions to the guest system running on the emulator. Read chapter 25.1 "Installing
the tun/tap driver" to get more information about the installation package in the tuntap folder.
Open the Terminal application, located in the Utilities folder (which is within the Applications folder at the
root level of your system disk "Macintosh HD"). You are inside your Mac OS X now.The Terminal appli-
cation is the doorway to the BSD.
Enter "cd " (cd with a trailing blank), switch to your previous download folder, select the new folder and
drop the folder to the Terminal. Select the Terminal window and press the Enter key, to change into the
folder with the extracted source code.
$ ./util/bldlvlck
$ ./util/cvslvlck
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
On the other hand MacPorts and Homebrew are nice tools to keep your Mac OS X up-to-date too. To get
more information how to do this, keep a closer look at the MacPorts web site http://www.macports.org or
the Homebrew web site http://mxcl.github.com/homebrew/.
$ ./configure --enable-setuid-hercifc=yes
By default, the configure script will attempt to guess appropriate compiler optimization flags for your sys-
tem. If its guesses turn out to be wrong, you can disable all optimization by passing the “--disable-
optimization” option to configure or specify your own optimization flags with the “--enable-optimization”
option.
For additional configuration options, run “./configure –help”
Do not use “—prefix” with “/usr”, this is a Mac OS X directory, use “/usr/local” instead (this is the default
option).
Note: In the following examples “./configure --disable-nls --enable-setuid-hercifc” or “./configure --disable-
nls --enable-setuid-hercifc --enable-optimization="-O3 -fomit-frame-pointer"” have been used to configure
Hercules for a Mac OS X system on a PPC PowerBook and a Intel MacBook or MacMini.
Use “./configure with --enable-external-gui” to make GUI support available for applications like Hercules
Studio GUI.
$ make
Some minutes later, the "make" command should complete, without error messages similar to those
shown in this snippet, some warning messages are normal.
The final step of the build process is to link the compiled object files into their binary forms and install
them into our target directory.
Issue the following command to install the executables.
We will run the "make install" command under root authority so that we can be sure that any required fol-
der can be created. The command should finish without error and the final messages will be similar to
those shown in this snippet. Switch to a user with local administrator authority first.
"hercifc" get the appropriate attributes if you use configure with option “--enable-setuid-hercifc”, see
chapter 24.6 "Configuring the network interface" for more information.
The Hercules binaries are now installed, so you can skip to chapter 27 "Installation Verification
Procedure" to continue.
By the way, the Hercules Emulator is available via the MacPorts and Homebrew package management
software too. Have a look at the MacPorts web site http://www.macports.org or the Homebrew web site to
get a list of the available packages.
With the MacPorts Profile and the Homebrew Formula some dependent libraries are installed too. But the
configure option --enable-setuid-hercifc is not used.
MacPorts and Homebrew install packages to their own directory structure. MacPorts use “/opt/local” by
default, but unfortunately Homebrew symlinks their files into “/usr/local”. In general you can install your
own stuff to “/usr/local” too, but be aware that if you install some libraries and tools yourself, it may cause
some trouble when trying to build certain Homebrew Formula. As a result the Homebrew Doctor will warn
you about this.
The command, like all BSD or Unix commands, is case sensitive. It starts the Hercules program and
combines the two resulting output streams together ("2>&1") before piping that through a filter ("grep")
searching for the text string "Version". As a result you get something like this:
But, if you get some messages similar to the following, some old libraries are not replaced correctly or
another copy of Hercules was installed in the past:
Note: Check the MODPATH path in your Hercules configuration file and have a look at the shell environ-
ment variable “DYLD_LIBRARY_PATH”.
$ cd /usr/local/bin
$ ls -la hercifc
Use "sudo" to change the ownership of the "hercifc" program to user "root" and group "admin".
Use "sudo" to change the attributes of the "hercifc" program to be setuid to the owner ("root") and exe-
cutable only by root and the "admin" group. Switch to a user with local administrator authority first.
The result of these commands is to allow the "hercifc" program to execute with root authority (that is what
the chmod command above does) but restrict the execution of the program only to the file owner (user
"root") and any user connected to the "admin" group.
This will allow the tunnelling device to open and configure correctly when initiated by user "hercules" but
reduce the security exposure of having a program setuid-to-root to the minimum.
Note: We should use the Administrators Group "admin" or the System Group "wheel". On the other hand,
with the Users Group "staff" everyone is authorised to open the tunnelling device.
Finally use "dseditgroup" to assign the Hercules user to the corresponding group.
Click on "Continue" twice to continue the installation process then click "Agree" to accept the licence
agreement.
Click to "Install" and then enter the name for an administrator and the password and click "OK" to perform
the standard installation process. The installer now begins to copy files to the system disk "Macintosh
HD".
After a few seconds the installation process will finish and present the final window. Click on "Close" to
terminate the installation process.
25.1.3 IP Forwarding
You may or may not need to have "IP Forwarding" enabled on your Mac OS X system. To allow your
Hercules guest operating system to communicate with hosts on the LAN apart from the host machine
itself (where Hercules is running), TCP/IP requires routes to and from the Hercules Guest operating
system.
This is necessary so that the Hercules Guest packets can be properly routed to their final destination.
This is typically the role performed by a hardware router. If you do not use a hardware router then Mac
OS X "IP Forwarding", together with appropriate route statements, will perform this role.
Add the following to the "mvs38.csh" start-up script before the Hercules command, see "Shell start-up
script".
#
# CTCI Device
0400.2 CTCI -n /dev/tun0 -s 255.255.255.255 192.168.200.20 192.168.200.254
#
# OSA Devices
0440.2 LCS -n /dev/tap0 192.168.201.20
#
The first IP addresses (192.168.200.20 and 192.168.201.20) are the IP addresses of your Hercules guest
system, the operating system running under Hercules. The second IP address (192.168.200.254) itself
identifies the host machine (where Hercules is running).
Read the "README.NETWORKING" file included with the source code for additional and updated in-
structions to networking.
Note: The name of the virtual interfaces cannot be left unspecified in Mac OS X. The driver would not
pick a name by trying to allocate the next free device of that kind. Consider a virtual interface cannot be
used twice!
Details of the configuration file are found in the Hercules "User Reference Guide".
Unfortunately the 3270 Client tn3270 X was shipped with a limited set of keyboard mappings. In the
tn3270 customization folder are some short manuals available to give you some help to customize the
tn3270 X application.
The keyboard customization folder contains the built-in keyboard mappings and a sample Austrian and
German keyboard mapping. To add your preferred keyboard mapping, modify one of the shipped built-in
keyboard mapping files. Change the "name:" operand to your own keyboard name otherwise you replace
an existing keyboard mapping.
To get more information about the key codes used, start the KeyMap application from the keyboard
customization folder and enable "Display Keystroke Information" in the "File" menu.
Choose "Open definition file" from the "File" menu, and open your keyboard mapping file. Then choose
"Write resource to application package" from the "File" menu. When the standard file dialog appears,
choose the tn3270 X application to update.
Note: The current version of the KeyMap application does not provide a method for deleting keyboard
mappings from tn3270 X, but adding and replacing keyboard mappings will usually be sufficient.
If everything works well, you can start the 3270 Client or the 3287 Printer from the terminal application to
verify the installation. It is assumed that Hercules is already running.
$ c3270 localhost:3270
MacPorts and Homebrew are not only nice tools to keep your Mac OS X up-to-date, you can also install
tools like the Suite 3270 with MacPorts or Homebrew. To get more information how to use MacPorts or
These manual customization steps are explained in a short form during the following sections. The details
are explained in the Hercules "User Reference Guide".
Note: Exclude the guest operating system from Time Machine to prevent problems with your guest and to
save space on your backup media.
The Mac OS X file system, in contrast to BSD or Unix file systems, is not case sensitive.
$ Hercules –f filename
"filename" is the name of the configuration file. The default filename is “hercules.cnf” if none is specified
during the start-up.
The configuration file is an ASCII text file that is used to describe the processor definition, the device
layout and any runtime parameters. Details can be found in the Hercules "User Reference Guide".
Using the directory structure example outlined before, we create this file in the following folder.
/Users/Shared/Hercules/mvs38
/Users/Shared/Hercules
#!/bin/tcsh
#setenv PATH "${PATH}:/usr/local/bin"
setenv DYLD_LIBRARY_PATH "/usr/local/lib/hercules"
rehash
#
cd /Users/Shared/Hercules/mvs38/
/usr/local/bin/hercules -f mvs38.cnf > log/hercules.log
#
exit
#!/bin/tcsh
#setenv PATH "${PATH}:/usr/local/bin"
setenv DYLD_LIBRARY_PATH "/usr/local/lib/hercules"
rehash
#
cd mvs38
/usr/local/bin/hercules -f mvs38.cnf > log/hercules.log
#
$ cd /Users/Shared/Hercules
$ chmod 750 mvs38.command
$ chmod 750 mvs38.csh
$ exit
/Users/Shared/Hercules/mvs38
pause 3
# sh open "../Console" &
# pause 1
sh open "../Terminal" &
pause 1
sh open "../Terminal" &
# pause 1
# sh open "http://127.0.0.1:8081" &
pause 5
# ipl 148
Note: “Console” and “Terminal” are tn3270 X application configuration files. The last “open” starts the
Safari application to connect to the Hercules HTTP server (commented out in this example).
/Users/Shared/Hercules
We should use the name "hercules.webloc" for our console link. The three dots on the second line in the
console link file are to show a continuation on the following line. The dots itself must not be coded.
To check if everything works well, try to start the ZZSA Cards with the Hercules configuration shipped
with the Hercules source code.
$ hercules
Have a look at the second view of the Hercules console, switch to the second view with the Esc key and
back again.
Start your preferred 3270 Client application and connect to Hercules (try “localhost” with port 3270).
Start the Safari application and open the link to Hercules (“http://localhost:8081”).
Start (IPL) the ZZSA editor card deck from the 3505 device 000C on the Hercules console or from Safari.
If you are interested in using Hercules Studio GUI for testing purpose, it is necessary to change the ZZSA
card file relative path to an absolute path name in the “hercules.cnf” sample file.
Select option “0” and press the “Enter” key to get the ZZSA device list.
Press “PF3” to end the current panel and going back to the previous screen again.
Finally type “QUIT” or “EXIT” on the Hercules console or from Safari to stop Hercules. Hercules will shut
down now.
If you successfully followed the previous procedures then it can be assumed that Hercules is working
correctly.
Instead of defining an environment variable it’s also possible to specify the new “--enable-hqa” configure
option (under Linux) or new “-hqa” makefile.bat option (under Windows).
Within the “hqa.h” override header either #define the ‘HQA_SCENARIO’ macro to one of the pre-defined
values in Hercules’s “hqadefs.h” header file or simply define (“#define”) an own custom build scenario.
These values will then override the default values of Hercules.
http://www.hercules-390.eu
http://www.smrcc.org.uk/members/g4ugm/snapshots/
http://hercdoc.glanzmann.org
http://www.bsp-gmbh.com/turnkey/index.html
http://www.softdevlabs.com/Hercules/hercgui-index.html
http://www.softdevlabs.com/Hercules/CTCI-WIN-index.html
http://www.mvsdasd.org/hercstudio
http://kde-apps.org/content/show.php/Hebe?content=126738
http://www.winpcap.org
http://www.tombrennansoftware.com
http://x3270.bgp.nu
http://www.softdevlabs.com/Hercules/hercgui-index.html
• XMIT Manager
www.cbttape.org
www.cbttape.org
http://www.microsoft.com/express/download/
http://www.zlib.net
http://www.softdevlabs.com/Hercules/ZLIB1-1.2.3-bin-lib-inc-vc2008-x86-x64.zip
• BZIP2
http://www.bzip.org
http://www.softdevlabs.com/Hercules/BZIP2-1.0.5-bin-lib-inc-vc2008-x86-x64.zip
• PCRE
http://www.pcre.org
http://www.softdevlabs.com/Hercules/PCRE-6.4.1-bin-lib-inc-vc2008-x86-x64.zip
• Regina REXX
http://regina-rexx.sourceforge.net/
http://www.oorexx.org/
Installation Guide
HEIG040000-00
Version 4 Release 00
Hercules Emulator
Page 249