Hercules 4.0 Hyperion

(my own unofficial version)


This web page provides information regarding my own unofficial 4.0 development version of Hercules, code named Hyperion.

The official Web Site for my unofficial version:

The official web site for my own unofficial version of Hercules 4.0 Hyperion can be reached at the following URL:
Online documentation for my unofficial version of Hercules 4.0 Hyperion
The above web site contains reference documentation for my own version of Hercules 4.0 Hyperion, which contains features, functionality and fixes that are neither in the current spinhawk production version of Hercules nor in the official 4.0 Hyperion version of Hercules.

PDF Manuals:

Some people find it more convenient for their reference documentation to be in the form of PDF manuals rather than via online web pages.

The following are links to PDF manuals containing technical information pertaining to the official 4.0 Hyperion version of Hercules (not my version):
Note: the above PDF manuals might not exactly match the online documentation for my own version of Hercules, but for the time being they should be very close. The online documentation for my version however should always be correct. Please let me know if you discover it's not.

Issue Tracker:

Should you discover any bugs or have any issues using my unofficial version of Hercules 4.0 Hyperion, you can directly report them to me by adding a new entry to my version's GitHub Issue issue tracker database at the following URL:

Community Wiki:

GitHub, which hosts the source code repository for my version of Hercules 4.0 Hyperion, provides a Wiki feature that allows you the users to participate in helping make this version an even better version than it already is. Please consider helping out by contributing your knowledge to the effort.
The SoftDevLabs Hercules 4.0 Hyperion Wiki     (Please help by contributing your knowledge!)
The SoftDevLabs Hercules 4.0 Hyperion Wiki is intended to provide additional documentation such as Tips and Tricks that may be of interest to its user community. I strongly encourage users to help the user community (and themselves!) by contributing to the Wiki.  It will only ever be as good as you help make it!

Source Code Repository:

The complete source code for my unofficial version of Hercules 4.0 Hyperion is maintained in a git project source code repository hosted on GitHub:

Building my unofficial version of Hercules 4.0 Hyperion

If you wish to build my unofficial version of Hercules 4.0 Hyperion for yourself from its distributed source code you can easily do so by simply following the build instructions on the following web page:
Building my unofficial version Hercules from Source

Pre-built Binaries:

The current pre-built ready to run Windows binaries for the unofficial 4.0 version of Hercules Hyperion courtesy of Software Development Laboratories may be downloaded using the below links (the x64 links are for 64-bit Windows and the x86 links are for 32-bit Windows). The MD5 and SHA256 hashes for all SoftDevLabs downloads can be found on the downloads page.
  • Hercules-4.0.0.8775-SDL-g8fd17afd-x64.zip   (2017-02-21)
  • Hercules-4.0.0.8775-SDL-g8fd17afd-x86.zip   (2017-02-21)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Tue Feb 21 Full (almost) ECPS:VM support
    • Tue Feb 21 QDIO thin interrupts support fix
    • Sun Feb 19 Support for Read Subsystem Data suborder Query Host Access
    • Sat Feb 18 Fix 'make check' for out-of-source debug builds
    • Wed Feb 15 Add debug builds of all external packages to repository too
    • Wed Feb 15 Fix dynamic version design to be more reliable/seemless
    • Sun Feb 12 Hercules Automatic Operator (HAO) fixes
    • Thu Feb 9 Fix for compiling on platforms with inttypes.h but no stdint.h
    • Thu Feb 9 Fix for compiling with NO_IEEE_SUPPORT
    • Thu Feb 2 Improve external package build instructions

  • Hercules-4.0.0.8745-SDL-ga014f9c-x64.zip   (2017-01-31)
  • Hercules-4.0.0.8745-SDL-ga014f9c-x86.zip   (2017-01-31)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Mon Jan 30 Additional ECPS:VM fixes and enhancements
    • Mon Jan 30 Completely remove SYNCIO
    • Wed Jan 25 Add VS2015 (MSBUILD) RunJobs support
    • Mon Jan 16 Build missing ckd2cckd, cckd2ckd, fba2cfba and cfba2fba utilities
    • Mon Jan 16 Add message# to usage/syntax messages for some more utilities
    • Sat Jan 14 Fix git revision count bug
    • Fri Jan 13 Fix for ECPS:VM second level LCTL bug
    • Fri Jan 13 Add architecture levels 370, ESA, and 390
    • Fri Jan 13 Remove never used "HelpMessage" function
    • Sun Jan 8 Convert crypto to External Package and move dyncrypt to root dir
    • Mon Jan 2 Document both old and new "fcb=" option formats
    • Mon Jan 2 Add new "cctape=" carriage control tape option
    • Sun Jan 1 Add BZIP2 compressed HET tape file and adjust test case
    • Sun Jan 1 Define many more runtest pre-defined variables
    • Thu Dec 29 Fix telnet client connection libtool abort on Linux
    • Wed Dec 28 Fix SEGFAULT when invalid modpath given
    • Mon Dec 26 VS2015 BuildLog s/b .txt, not .htm
    • Mon Dec 26 Convert telnet to External Package

  • Hercules-4.0.0.8701-SDL-g151b31b-x64.zip   (2016-12-23)
  • Hercules-4.0.0.8701-SDL-g151b31b-x86.zip   (2016-12-23)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Thu Dec 15 2016 Fix 'help' command to not truncate command names.
    • Thu Dec 15 2016 Identify "SDL" Hyperion in version string.
    • Thu Dec 15 2016 Update DASDLS utility to match 3.12's options.
    • Thu Dec 15 2016 Add message# to utility usage/syntax messages
    • Thu Dec 15 2016 Adjust earlier caching fix to accommodate DASD utilities.
    • Thu Dec 15 2016 Remove unused 'cache' command
    • Thu Dec 15 2016 Remove Legacy CMPSC code (altcmpsc.dll)
    • Sat Dec 10 2016 Minor runtest enhancements.
    • Sat Dec 10 2016 Test harness changes: add more crypto cases and verify against real iron.
    • Sat Dec 10 2016 Fix dyncrypt for VS2008 compatibility
    • Sat Dec 10 2016 Crypto KMCTR instruction fixes.
    • Sun Dec 4 2016 Save MODPATH as absolute path
    • Sun Dec 4 2016 Fix runtest self re-append bug
    • Sun Dec 4 2016 Restore HDL_DEPENDENCY_SECTION

  • Hercules-4.0.0.8675-gd0eefbf-x64.zip   (2016-11-27)
  • Hercules-4.0.0.8675-gd0eefbf-x86.zip   (2016-11-27)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Update BFP test case .asm files w/Steve's latest changes
    • Point "What's New" page to repository commit log
    • Clarify this is an unofficial version of 4.0 Hyperion
    • Linux external package static libs (decNumber and SoftFloat)
    • Fix locking race condition in cckd cacking logic
    • Add optional help-type argument to help command line option
    • Implement new External Packages design
    • Add /nologo to Resource Compiler flags
    • Don't ignore *.bin or *.lib or *.a files
    • Document codepage transparency
    • Fix utilities stdio stream buffering issue
    • Fix Linux runtest to insert ostailor null between tests
    • Remove duplicate HDL_DEPENDENCY section
    • Remove pfpo skeleton test case to clear the road for Steve
    • CTCE device connect timeout improved
    • Fix/tweak auto-optimize flags

  • Hercules-4.0.0.8650-gb130229-x64.zip   (2016-10-14)
  • Hercules-4.0.0.8650-gb130229-x86.zip   (2016-10-14)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Fix telnet to work properly with default Linux telnet client
    • Quick fix for Accept() Out of Files msg flood. Closes #156
    • Fix CCKD command validation; closes GitHub issue #158
    • Ensure that abs/r accept one operand only
    • Do not call sscanf() when there are no arguments. Closes #157
    • Ensure tty console buffer always null terminated
    • Fix typo in MLOCK/MUNLOCK
    • Remove __noop #define and use /*(do nothing)*/ for macros instead
    • Fix "extgui not declared" error in logmsg.c. Closes #150
    • Remove some dregs of my failed attempt to use a semaphore
    • IAF2 atomics: use __sync builtins if __atomic intrinsics unavailable. Closes #76
    • Fix undeclared daemon_task when OPTION_DYNAMIC_LOAD is not defined
    • Fix unresolved extern mlock() on systems without mlock. Closes #149
    • Fix MISSINGRETURN error with some compilers
    • Define enum values before defining typedefs. Closes #152
    • 'pr' prefix cmd/tst fixes and enhancements
    • Fix DIAG 204 LPAR info (storage sizes s/b in megabytes, not bytes)
    • Add stfl[e] test case
    • Tighten up diag224_call
    • Fix diag 224 processor types
    • Fix makefile.bat to always set version if not doing clean
    • Tweak .gitignore for VS2015
    • Add VS2015 Solution/Project files to repository
    • Fix minor glitch in hatomics.h for MSVC builds
    • Support 128 CPU engines on Linux. Windows limited to 64. Default MAX_CPU still 8

  • Hercules-4.0.0.8597-g05652fb-x64.zip   (2016-08-12)
  • Hercules-4.0.0.8597-g05652fb-x86.zip   (2016-08-12)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Force a TLB/ALB purge of guest upon each SIE entry
    • Corrected IPTE instruction for SIE DAT-OFF guest entries
    • Minor CTCE stability improvement for z/VM ISFC and RSCS NJE links
    • Fixes for display_inst under SIE to work correctly
    • Fix ATOMIC_CHAR_LOCK_FREE issue for broken versions of GCC
    • Force OPTION_STRICT_ALIGNMENT for all architectures
    • Improved "Program interrupt loop" detection
    • 32-bit Hercules mainsize.tst fix
    • Fix unpredictable HHC00136E error during Windows startup; Closes #139.
    • Actual fix to ieee tests, preemptive fixes to some others:
    • Converted ieee-*.* test cases to be created by asma (#137)
    • Additional CTCE stability improvements for z/VM ISFC and RSCS NJE links
    • Removed harmfull release + obtain device lock from device_attention
    • Corrected DIAG204 ensuring non-zero realcpu parameter
    • Backport minor cleanup to DASD EQID to match DASD work in progress.
    • Fix copyright year in a few places
    • Improved CTCE device now also supporting z/VM SSI ISFC and RSCS NJE links
    • Correct z/VM EQID's for DASD CCUU addresses with identical UU's
    • .gitattributes --> decNumber/*.def text eol=crlf
    • some adjustments for APPLE
    • forced commit to Normalize all the line ending
    • Add ,gitattributes file to project.
    • Add .gitattributes so critical build files have correct line endings:
    • Add recently added files to tests/Makefile.am
    • Update tests/README.
    • Update tests/README in light of recent .subtst renaming.
    • Rename .tst "subtroutine" scripts from *.txt to *.subtst:
    • Remove .gitignore from Makefile.am:
    • Add tests/dc-float.asm.
    • Document using ASMA to generate test cases.
    • Add ALL(?) missing files to .vcproj and Makefile.am files:
    • Delete some obsolete files
    • Fix dependencies for iee.c and SoftFloat.c; add test case for pfpo in ESA mode.
    • Fix SoftFloat-specialize commit d1dabb5323a7b9404898b9303137c0cdd73f3aa0
    • Correct SoftFloat 64 bit NaN detection.
    • Correct NaNs and loop count for long div tests. (#134)
    • Add hex dump utility function.
    • Fix CSXTR. This instruction has never worked.
    • Fix mainsize test so it succeeds for debug builds too.
    • Optimize for Intel CPU architecture if VS2015 or greater.
    • A more proper fix to always load dyncrypt at startup
    • Add test case for all cipher operations.
    • Sort out the crypto mess when running in the build directory.
    • Correct __ALIGN macro for Clang/C2 and Clang/LLVM with Visual Studio.
    • Added ieee-div-nans to test NaN propagation in Softfloat (#131)
    • Fix dotest. Add test case (failing) for csxtr
    • Fix HERCULES_CNF environment variable name typo.
    • Let configuration load dyncrypt.
    • Enhance register displays during tracing, stepping, and PgmChk (#128)
    • make check to work with modified configuration file in tests
    • Update tests: README; add digest test case; modify agf test.
    • Minor changes to Load and Test, Test Data Class (#127)
    • Corrected coding and expected results errors in ieee-comps.tst (#126)
    • Fix storage mismatch to display the correct address.
    • Added ieee-comps.tst, edited ieee-mults.tst (#122)
    • Support identification of Clang compiler front-end on Visual Studio
    • Add UNIX style flags to "tests/runtest".
    • Added two BFP test scripts, minor changes to two more (#121)
    • Added test scripts for Subtract, Square Root; minor changes to Add script (#120)
    • Fix duplicated messages at shutdown on Linux
    • Corrected *Compare/*Want for extended test results (#119)
    • Correct hand-assembly of AXBR instruction (#118)
    • Replaced restart/pause commands with runtest (#117)
    • dynamic-version: attempt to compensate for broken versions of git
    • Added runtest script ieee-adds, test of IEEE (Binary) floating point ADD instructions
    • Load dyncrypt from build directory crypto/.libs.
    • Enhcance the runtest script command to load the restart new PSW from one of the five other old PSWs.
    • Handle return code from hdl_setpath correctly (NULL is error).
    • Remove erroneous reset of dev->console bit in console disconnect logic.
    • Fix for "Out Of Source" builds
    • Perform Cryptographic Computation (PCC): Fix XTS Computations
    • Hercules VERSION string on Linux identical to Windows
    • Create Hercules V4 telnet/tn3270 how-to, link to hercconf.html
    • Fix "CFLAGS: command not found" configure error
    • Require -O2 for gcc 4.9.2 in configure.ac.
    • Create runtest README in main directory
    • scsitape fixes
    • Fix 32-bit dyngui MAINSIZE bug.

  • Hercules-4.00.0.8473-gfe2c24f-x64.zip   (2016-04-23)
  • Hercules-4.00.0.8473-gfe2c24f-x86.zip   (2016-04-23)

    The above snapshot contains the following changes since the previous snapshot (listed in reverse order, most recent to least recent):

    • Fix telnet support to be RFC compliant (PuTTY now works)
    • New automatic command prefix support for -C integrated console devices
    • Fix dasdisup
    • Fix PCC instruction
    • Fix CU14, CU24, CU41 and CU42 instructions
    • Fix CSST instruction
    • Fix dasd thread handling
    • New CTCE XCF support
    • Fix CTCE device support
    • New Visual Studio 2015 support (does not work yet)
    • Fix TS instruction
    • New immediate emergency shutdown at logoff/shutdown (Windows only)
    • Fix missing logfile messages during shutdown
    • Fix and enhance dasdcat
    • Fix dasdls crash when malformed sf argument passed
    • New 370-mode MVCLE/CLCLE support
    • Fix conspawn to properly quote arguments containing blanks
    • Fix incorrect .HET handling of BSF into Load Point
    • New HTTP Server syslog page autofocus
    • New LCS packet tracing controlled by ctc command
    • Fix command line argument and std redirection support
    • Ongoing: runtest fixes and enhancements

  • Hercules-4.00.0-git-8396-g9b24d74-x64.zip   (2015-11-20)
  • Hercules-4.00.0-git-8396-g9b24d74-x86.zip   (2015-11-20)

    • Thu Nov 19 Fix for guest main storage sizes 64G or greater
    • Mon Nov 16 Fix C4702 unreachable code when HAVE_LIBZ undefined
    • Sun Nov 8 Fix potential buffer overflow in comm3705 and tapedev handlers
    • Tue Nov 3 Display additional platform/compiler information at startup
    • Sun Nov 1 Intel C Compiler (ICC) inline assembler support
    • Mon Oct 19 Resolve symbols in OAT files.
    • Mon Oct 19 Fix stack overflow at shutdown if msglvl +debug
    • Fri Oct 16 Fix all CLANG warnings. Hercules now builds cleanly.
    • Tue Oct 13 New pr command to display/set prefix register
    • Mon Oct 12 New abs command to display/alter absolute storage
    • Sun Oct 11 Fix prefixing bug in display/alter real/virtual storage r/v commands
    • (ongoing) development of runtest testing harness and associated tests (make check)

  • Hercules-4.00.0-git-8243-gf4bf8ff-x64.zip   (2015-10-06)
  • Hercules-4.00.0-git-8243-gf4bf8ff-x86.zip   (2015-10-06)

    • Wed Sep 23 - Tue Oct 6 Interlocked Access Facility 2.
    • Mon Sep 25 - Mon Sep 28 Fixed some minor glitches (cosmetic and otherwise) in a few commands.
    • Fri Sep 25 Fix bug in herclin.exe (pure command-line Herc) so RC scripts now run.
    • Fri Sep 18 CTCI-WIN struct size fix. (Windows)
    • Fri Sep 18 Correct S/370 LPARNUM range from x1-xF to x1-x10.
    • Thu Sep 17 Fix Channel Program Check in QETH (OSA QDIO) device handler.
    • Thu Sep 17 Repurposed 'qd' command to now work for ANY device.
    • Thu Sep 17 Edited help text for start/stop commands to be more clear.
    • Sun Sep 13 New icons. (Windows)
    • Fri Sep 11 Fix segfault in BFR_VSNPRINTF macro on *nix.
    • Tue Sep 8 Fix makefile.bat to not depend on external wc.exe tool.
    • Tue Sep 8 Fix symbol(s) not found build issue for Mac OS X 10.10.4 clang.
    • Fri Aug 21 Minor documentation updates.
    • Fri Aug 14 Report whether Hercules is running "elevated" or not. (Windows)
    • Mon Jul 20 General cleanup, mostly related to log message handling.

  • Hercules-4.00.0.8213-gfce758d-x64.zip   (2015-07-19)
  • Hercules-4.00.0.8213-gfce758d-x86.zip   (2015-07-19)

    • Sun Jul 19 Fix wrong condition code on Halt Device
    • Sun Jul 19 authorize_asn may use wrong ATO address after SIE translation
    • Sun Jul 19 Fix bug in shadow file name construction to match documentation.
    • Sun Jul 19 Attempt to document 2703 comm line options.
    • Mon Jul 06 Fix "v" command bug causing use of prefix operators to fail
    • Sun Jul 05 Fix incorrect instruction trace operand data display

  • Hercules-4.00.0.8204-g2acd8b8-x64.zip   (2015-05-31)
  • Hercules-4.00.0.8204-g2acd8b8-x86.zip   (2015-05-31)

    • Fix crash at shutdown on non-LLP64 systems
    • Fix LCS issue #43
    • Fix issue #44 unreliable console keepalive
    • Fix webserver scrambling of command input
    • Fix web server crash when displaying 3705s
    • Fix TCP keepalive support/reporting
    • Fix Softfloat CDLGBR instruction
    • Fix QETH detection of inbound IPv6 packets
    • Fix QETH don't clear IFF_UP flag on *nix
    • Fix QETH don't set destination address for VIPA addresses
    • Fix mainsize minimum to match channel subsystem requirement
    • Fix alter/display virtual/real storage command display bug
    • Document CONKPALV stmt/cmd behavior caveats
    • Document ARCHLVL statement sequence caveat
    • PTT facility enhancements