# What's new in Hercules

## What's new in Version 4.7

Release date: 10 March 2024
Official Source and Binaries: Release_4.7
Please refer to the Release Notes for important information.

- Fix EX/EXRL instructions to not cause spurious PIC 3 (Tony Harminc, Fish) #415
- Fix E7 Prefix CCW support (Aaron Finerman, Fish)
- Fix Read Count Suffix bug causing data corruption #575
- Fix Locate Record Write Track Operation (Aaron Finerman, Fish) #601
- Fix Read Tracks CCW when chained from Prefix (Aaron Finerman, Fish) #603
- Fix various ICKDSF-related CCW handling bugs (Anders Edlund, Fish) #615
- Fix 3705 crash on attach/detach/attach (Jay Maynard)
- Fix usleep/nanosleep excessive host CPU consumption (Peter Jansen, Fish) #589
- Fix '--version' and '--usage' switches (Bill Lewis)
- Fix TDF file emulated tape open bug (Fish)
- Fix maketape utility to not pad binary files (Fish)
- Fix Date/time parsing issue in runtest/make-check (Peter Jansen)
- Fix dasdseq utility Large/Extended dataset truncation (Gregory, Fish) #602
- Fix Multi-device statement failure handling (Fish) #604
- Fix Hang during device detach (Fish)
- Fix Incorrect thread priority handling (Tyler Mitchell)
- Fix Occasional crash on exit (Tyler Mitchell)
- Fix Confusing/unclear shadow file messages (Fish) #616
- Fix cckdmap utility non-33xx dasd-type bug (Fish)
- Fix Shared devices 10-second-delay bug (Fish) #624
- Fix 'ENGINES' command bug (Fish) #626
- Fix Shutdown/exit logging (James Wekel) #480, #634
- Fix Possible crash at CCKD dasd termination (Fish)
- Fix Inaccurate "Running on:" Windows name and version (Bill Lewis, Fish)

- New: Improved CU12, CU14 instruction performance (James Wekel) #623
- New: dasdls utility '-cchh' and '-nosort' options (Ian, Fish)
- New: maketape utility meta-file 'BIN' keyword support (Fish)
- New: dasdseq utility '-record' mode support (Gregory, Fish) #614
- New: Ability to trace only specific CCW opcodes (Fish) #576
- New: JSON support in HTTP server #578
- New: README.DAEMON document
- New: 'iconpfxs' command (Fish)
- New: Support quoted strings in storage alteration commands (Fish)
- New: Add timed statistics to instruction counting (Andrey) #588
- New: dyngui LCSS devnum support (Fish)
- New: Use performance cores on Apple Silicon (Enrico Sorichetti)
- New: Support 'clang' builds under Windows MSVC (Peter Jansen) #629
- New: Highlight 'S'evere and 'A'ction messages too (Fish)

## What's new in Version 4.6

Release date: 9 June 2023
Official Source and Binaries: Release_4.6
Please refer to the Release Notes for important information.

- SECURITY: New "\reply" SCP command to suppress command echoing of passwords (Fish) (#541)

- Fix endianness bug in PFPO instruction (#523)
- Fix some endianness issues in TRTE and TRTRE instructions (James Wekel) (#529)
- Fix CODEPAGE message corruption in HERCIFC (Bill Lewis) (#525)
- Fix some minor z/Arch Facility related bugs (Fish)
- Fix BZIP2 API bug in hetlib.c (Fish) (#535)
- Fix missing last dump line bug in dasdutil trace (Fish)
- Fix crash if "ctc debug" command on unconnected CTCE device (Fish) (#536)
- Fix segfault in 370 mode IPL (Bill Lewis) (#538)
- Fix to show version and help if no arguments given (Fish) (#540, #548)
- Fix incorrect NUMCPU/ARCHLVL/etc handling causing occasional hang (Fish) (#542)
- Fix branding SNAFU: "SDL" does NOT mean this Hercules is a "SoftDevLabs" product! (Fish)
- Fix bug causing MVT guest to fail (Fish)
- Fix Program check detection if PER trace active (Fish) (#560)

- New: 'QUITMOUT' command/statement, per user request (Fish)
- New: "Trace to File" support (Fish) (#33)
- New "t+CPU [cpuad]" selective instruction tracing by CPU (Fish)
- New: Sockdev socket punch support (Fish) (#553)
- New 'txt2card' utility (Fish)

- Don't enable STHYI/ESSA by default (#531)
- Improve PFPO instruction conformance (Fish)
- Add single devnum support to CKD Search Key trace command (Fish)
- Enhance "t?" command to also show active device tracing (Fish)
- Improve CCW tracing (Fish)
- Add "ADDFRR" MVS assist (Jay Maynard) (#537)
- Better HMC message handling for Linux guests (Fish) (#534)
- Document MAKETAPE via README (Fish)
- Add support for dasd X'F7' (DSO = Define Subsystem Operation) CCW (Fish) (#547)
- DASDLOAD: Increase MAXDSCB and allow cmdline override (Fish) (#566)

## What's new in Version 4.5

Release date: 27 November 2022
Official Source and Binaries: Release_4.5

- Significant performance improvements to CLCLE, CUSE, TRE, TRTE, TRTR and TRTRE instructions (#498, #500, #510, #513, #519, #520) (Thank you James Wekel!)

- Fix minor bug in STSTU (Search String Unicode) instruction
- Fix minor bug in CMPSC (Compression Call) instruction
- Fix minor bug in PFPO (Perform Floating-Point Operation) instruction (#407)
- PER 1 GRA (General Register Alteration) support (#87)
- z/VM TXF PER support (i.e. TXSUSPEND = Event Suppression)
- PER SKEY support
- PER Zero-Address Detection support
- BEAR-Enhancement Facility support
- Decimal Floating-Point Packed Conversion Facility support (#496)

- Report and ignore oversized LCS outbound SNA messages
- Ensure same serial number on all multi-file images (#276)
- Fix minor dasdinit negative size parameter bug (#472)
- Fix minor dasd CCW data-chaining bug
- Improve CCKD handling of unusual/unexpected errors
- Minor corrections to CTCE documentation
- dasdls: sort display by dataset name
- Various minor cckdmap enhancements
- Fix rare bug in .HET locate block logic (#518)
- Disable CCKD automatic garbage collection (#504)

- Fix hang at exit when MLVL DEBUG is active
- Fix bug causing DASD corruption with s+ tracing
- Fix 'numcpu' handling bug causing crash (#481)
- Ensure error message when no config file provided (#483)
- Fix another possible Windows suspend/resume crash (#489)
- Customized Offerings Driver (COD) support
- New SYSGPORT config file statement (#505)
- Various improvements to Linux build scripts (#454, #461)
- Many other various minor miscellaneous fixes and improvements to both documentation and code

## What's new in Version 4.4.1

Release date: 7 January 2022
Official Source and Binaries: Release_4.4.1
Please refer to the Release Notes for important information.

- Implement new Version string format
- Return fullword #of cylinders in RDC bytes 60-63 (#456)
- Also show real address for virtual address during instruction tracing
- Fix possible Hercules crash after resume from suspend (#458)
- Improved B220 (SERVC) instruction validation (#460)
- Fix 20 yr. old CCKD compressed dasd bug causing Locate Record to fail (#464)

## What's new in Version 4.4

Release date: 18 December 2021
Official Source and Binaries: Release_4.4
Please refer to the Release Notes for important information.

- Fix many SIE arch-dep violation bugs
- Fix to SIE handling of STFL/STFLE instructions
- Internal and SIE SKA Storage Key handling fixes
- Fix VM/ESA OPERATOR userid looping bug
- Preliminary SIE ESSA/STHYI instructions support
- Fixes to MVS assist support (#391)
- ECPS:VM 1.88 fixes

- ISK/ISKE, IVSK, RRB/RRBE, SSK/SSKE, RRBM, PFMF instruction fixes
- Fixes to CSP/CSPG/IDTE/IPTE instructions
- Minor LAA/LAAG (et al.) instructions fix
- RRBM instruction fix
- PTFF instruction support for function codes 04, 05, 69 (#363)
- Fix DAT bug in MVCOS instruction (#349)

- Local-TLB-Clearing Facility (#77)
- Nonquiescing Key-Setting Facility (#77)
- Insert Reference Bits Multiple Facility (#77)
- Miscellaneous-Instruction-Extensions Facilities 2 and 3 (#77)
- PPA-in-order facility (#77)
- Allow modifying "IBM" and undefined facility bits (#353)

- LCS device fixes and improvements
- LCS device SNA support (#348)
- 3270 device connection improvements (#379)
- CTCE device fixes and improvements (#369)
- CTCI device fix for VSE (#446)
- Minor QETH (OSA) device fixes/improvements

- CCKDMAP utility CFBA/CFBA64 device support
- Fix to DASDLS utility shadow file logic (#393)
- CCKDLOAD utility fix (#374)
- Fix dasd utilities r/o access to r/w images (#355)
- Minor "faketape" emulated tape format fix
- Fix possible CRASH during compressed dasd attach/detach

- PANOPT statement "MSGCOLOR" option
- PANRATE/PANTITLE replaced by PANOPT
- Minor MODEL/PLANT/MANUFACTURER statement fixes
- New -o/--output/--logfile command-line options

- Hardware loader fix (#185, #337)
- Minor Rexx support fixes and improvements
- Minor External Packages updates
- Fixes to herclin.exe
- Translation Specification PIC 12 fix
- Improved TXF reliability and completeness
- Predefined CPUMODEL $(symbol) values (#263)

- Improvements to building Hercules on non-Windows platforms
- Improvements to building Hercules on Windows platforms (#448)
- Many other minor internal/external fixes and improvements

## What's new in Version 4.3

Release date: 28 November 2020
Official Source and Binaries: Release_4.3
Please refer to the Release Notes for important information.

- Fix ULONG_PTR typedef build errors on RHEL 6.10 (#245)
- Add missing 3203 printer to DEVEQU table (#250)
- Fix driver code incompatibility with other Herculeses (#251)
- Fix issue where thread names are incorrectly set (#254)
- Fix missing timestamp in daemon mode; add DATESTAMP option (#259), (#260)
- Fix CNSLPORT to honor new updated setting (#318)
- Watchdog monitoring reinstated.
- New PANOPT option MSGCOLOR=DARK/LIGHT
- Fix hang/deadlock in device-attention function (#277)
- Improved CTCE driver functionality (#269), (#273)
- TCPNJE device support. Refer to the README.TCPNJE document for details (#280)
- TCPNJE Connectivity And Stability Enhancements
- Fix RARP (Reverse ARP) Ethernet frame type constant
- Fix Linux panel high CPU usage (#289)
- Fix z/VM guest architecture switching (#295)
- Fix for IPL command without a LOADPARM (#296)
- Work around VS2019 compiler C4789 Warning bug.
- Fix crash if incomplete network device group defined.
- Fix ooRexx v5.0.0. load failure on Apple Mac (#301)
- Fix crash in CCKD dasd termination logic (#303)
- Fix KIMD instruction
- Fix VM FixPage assist
- Fix channel prefetch buffer overrun crash (#319)
- Fix instruction stepping invalidation/refetch bug (#321)
- New z15 Secure Boot (Secure IPL) Diagnose 0x308 support
- Preliminary (Experimental) Transactional-Execution Facility (TXF) support (#263)
- MANY other internal fixes and improvements

## What's new in Version 4.2.1

Release date: 10 September 2019
Official Source and Binaries: Release_4.2.1
Please refer to the Release Notes for important information.

- Make HHC02917 a suppressible msglevel debug only message
- Fix CKD suffixed read count file protect bug
- CKD dasd serial number support
- New "dasdser" serial number utility
- Fix various VMFPLC2 issues
- Fix Linux exit/quit hang when no traffic on tuntap device
- Fix QETH (OSA) missing CSCH interrupt under z/VM
- Don't pass "&&" async argument to rexx scripts
- Fix bogus HHC01111W warning and cctape display
- hercifc network interface configuration utility fixes
- SIE fix for z/VM z/Arch real mode guests (e.g. zcms)
- Various important 3215/1052 console fixes
- Various other minor internal fixes and improvements

## What's new in Version 4.2

Release date: 8 July 2019
Official Source and Binaries: Release_4.2
Please refer to the Release Notes for important information.

- Load-and-Zero-Rightmost-Byte Facility
- Load/Store-on-Condition Facility 2
- Full PFPO instruction support
- Fix AR/SR/AGR/SRG instructions Condition Code bug
- Improved CKSM, MVST, CLST, SRST instruction performance
- Optimized CLCL instruction bugfix
- CSST instruction fix
- TCPIP X'75' instruction support
- Improved internal instruction count accuracy
- New Diagnose F09 (enhanced F08) instruction
- Fix long standing occasional crash in CCKD logic
- Fix Shared Devices slow disconnect
- CKD dasd suffixed Read Count bug fix
- CCKD64 support
- QETH/OSA devices HSCH/CSCH instruction fix
- QETH/OSA multiple IP address support
- Various QETH/OSA fixes
- Linux sockdev syn flooding fix
- Minor LCS Checksum / TCP Segmentation Offload fixes
- CTCT device support reinstated
- Tape autoinit fix
- 3590 Tape C2 Medium Sense CCW fix
- Various 3270 terminal handling fixes
- Automatic tn3270 IND$FILE efficiency
- Enhanced VMFPLC2 utility
- dasdpdsu utility fix
- Breakpoint/Stepping optional ASID parameter
- New PANOPT statement/command
- Linux crash dump support (no more machine checks)
- Many various overall reliability, stability and documentation improvements

## What's new in Version 4.1

Release date: 10 November 2018
Official Source and Binaries: Release_4.1
Please refer to the Release Notes for important information.

- Jay Moseley 'maketape' utility added to Hercules
- LRVR, LRV and LRVH eligible added to S37X Facility (Ivan Warren)
- Fix long standing SIE host addressing prefixing bug (Ivan Warren)
- External Package support simplified and fixed to support Raspberry Pi
- QETH (OSA) device support fixes (Ian Shorter, Peter Jansen)
- Various Rexx support fixes
- DIAG 204 (LPAR information) fix (Ivan Warren)
- SoftFloat external package updated to version 3e (fixes square root) (Steve Orso)
- Crypto support fixed to use cryptographically secure random number generator
- ECPS:VM 1.87 enhancements and bug fixes (Bob Polmanter)
- Instruction counting accuracy improved
- Fix ./configure so --enable-optimization always honored
- Fix dasdls crash
- Improved TELNET Terminal Type negotiations
- Fix min/max internal thread priorities
- Fixes to allow building on Apple MacOS (Enrico Sorichetti, Peter Jansen)
- Fix bad commit causing utilities to crash (Paul Gorlinsky)
- Performance of TRT, CLC, CLCL and MVCIN instructions vastly improved (Fish and Ivan Warren)

## What's new in release 3.13

Release date: 30 September 2017

- CTC corrections (Peter J. Jansen)
- ECPS:VM corrections (Bob Polmanter)
- SIE corrections (Ivan Warren)
- PCC,KM,KMCTR,CUxx,CSST corrections (Juergen Winkelmann)
- Miscellaneous bug fixes (Drew Derbyshire, Doug Wade, Peter Coghlan, Peter J. Jansen, Alexei Chmelev, Gert Caers)

Download hercules-3.13.tar.gz

## What's new in release 3.12

Release date: 30 November 2015

- dasdload corrections and support for loading ASCII TEXT files (Roger Bowler)
- comm3705_RU-size+unack_attn_delay patch (Juergen Winkelmann)
- CCKDDUMP/CCKDLOAD support for DSNTYPE=LARGE (Christophe Varlet)
- CMPSC corrections (Bernard van der Helm)
- Miscellaneous bug fixes (Peter Coghlan, Gert Caers, Giuseppe Vitillaro, Bill Carlborg, David "Fish" Trout)

Download hercules-3.12.tar.gz

## What's new in Version 3.11

Release date: 15 September 2014

- Floating-Point-Extension Facility (Roger Bowler)
- Enhanced Channel-to-Channel Adapter via TCP/IP (Peter J. Jansen)
- Load/Store-on-Condition Facility corrections (Neale Ferguson)
- LCS corrections (Paul Gorlinsky, David "Fish" Trout, Ivan Warren)
- Floating-Point-Extension Facility corrections (Neale Ferguson)
- CMPSC corrections (Bernard van der Helm)
- Load sequential datasets from XMIT files (Roger Bowler)
- Eliminate compiler warnings for Linux and Mac (Roger Bowler)

Download hercules-3.11.tar.gz

## What's new in Version 3.10

Release date: 1 February 2014

- Fix incorrect PSW IA in SIE mode with PER (Ian Worthington)
- Corrections to build procedures (Mike Frysinger, Dan Horak)
- Fixes for Mac OS X (Butch Anton, Adam Vandenberg, Enrico Sorichetti)
- Configuration topology facility fixes (Paolo Giacobbis)
- Convert BFP instructions to use SoftFloat package (Roger Bowler)
- Preliminary support for 2GB page frames (Roger Bowler)
- PFMF fixes (John P. Hartmann)
- CMPSC corrections (Bernard van der Helm)
- dasdls enhancements (Chris Cheney)

Download: hercules-3.10.tar.gz

## What's new in Version 3.09

Release date: 15 July 2013

- Allow regex replacement variables in HAO commands (Roger Bowler)
- Prevent duplicate EQID (Gordon Bonorchis)
- Permit concurrent read access to printer and punch files (Roger Bowler)
- DFP zoned-conversion facility (Roger Bowler)
- Execution-hint facility (Roger Bowler)
- Miscellaneous-instruction-extensions facility (Roger Bowler)
- Load-and-trap facility (Roger Bowler)
- Fix for VSAM Extended Format (David "Fish" Trout)
- APL\360 2741 patch (Max H. Parke)
- Fix interval timer repeating interrupt (Ivan Warren, Kevin Leonard)
- Corrections to build procedures (Mike Frysinger, Dan Horak)
- Miscellaneous bug fixes (Roger Bowler)

Download: hercules-3.09.tar.gz

## What's new in Version 3.08

Release date: 8 December 2012

- 1403 and 3211 FCB support (Enrico Sorichetti)
- Shutdown on SIGTERM (Frans Pop)
- Disable close-window button (Paul Gorlinsky)
- Allow larger IPL text (Laddie Hanus)
- Drop support for Cygwin, Win98, WinNT, Win2000 (Roger Bowler)
- Windows shutdown handlers (Paul Gorlinsky)
- Dynamically loadable instructions (Jan Jaeger)
- Additional codepages (Kevin Leonard)
- Load/Store-on-Condition Facility (Roger Bowler)
- Distinct-Operands Facility (Roger Bowler)
- Population-Count Facility (Roger Bowler)
- High-Word Facility (Roger Bowler)
- Message Security Assist Extensions 3 and 4 (Bernard van der Helm)
- Interlocked-Access Facility (Roger Bowler)
- CMPSC-Enhancement Facility (Bernard van der Helm)
- Fast-BCR-Serialization Facility (Roger Bowler)
- Reset-Reference-Bits-Multiple Facility (Jan Jaeger)
- Access-Exception-Fetch/Store-Indication Facility (Roger Bowler)
- Enhanced-Monitor Facility (Jan Jaeger)
- Load-Program-Parameter Facility (Paul Gorlinsky)
- IPTE-Range Facility (Jan Jaeger)
- Enhanced-DAT Facility (Jan Jaeger)
- Increase CKD_MAXFILES from 4 to 27 for 3390-27 and -54 (Paul Gorlinsky)
- CKD read attention message command (Florian Bilek)
- Support 128 CPUs on 64-bit Linux (Jan Jaeger)
- Issue Hercules commands via HTTP (Robert Hodge)
- Compression performance enhancements (Bernard van der Helm)
- Compression bug fixes (Bernard van der Helm, John P. Hartmann)
- Crypto bug fixes (Bernard van der Helm)
- Hexadecimal floating-point bug fixes (Andy Polyakov)
- SCSI tape enhancements and bug fixes (David "Fish" Trout)
- 3420 sense code corrections for MTS (Harold Grovesteen)
- Prevent multiple instances opening same output file under Windows (David "Fish" Trout)
- 2703 and 3705 fixes and 3791 support (Max H. Parke, Juergen Winkelmann)
- Enable GUI support as default for all platforms (Jacob Dekel)
- Miscellaneous bug fixes (Paul Gorlinsky, Ivan Warren, David "Fish" Trout, Jan Jaeger, Bernard van der Helm, Roger Bowler, Kevin Leonard, Ian Shorter, John P. Hartmann)

Download: hercules-3.08.tar.gz

## What's new in Version 3.07

Release date: 10 March 2010

- Fast Synchronous Data Mover Facility (Guy Desbiens)
- Diagnose 210, 250, 260 (Harold Grovesteen)
- Extended Diagnose 204 feature (Jan Jaeger)
- Complete Diagnose 24 (Harold Grovesteen)
- Configuration-Topology Facility (Fish)
- HFP-Unnormalized-Extensions Facility (Harold Grovesteen)
- CMPSC performance improvements (Bernard van der Helm)
- uptime command (Fish)
- Raise XPNDSIZE limit to 1048576MB (Roger Bowler)
- MAXCPU and LPARNUM configuration statements (Roger Bowler)
- Add capacity model identifiers to MODEL config statement (Roger Bowler)
- SCLPROOT configuration statement (Jan Jaeger)
- Add "noclear" option to printer and card punch devices (Jay Maynard)
- Socket printer support (Fish)
- 3705 SNA device support (Max H. Parke)
- TTY and 2741 support for 2703 (Max H. Parke)
- Tracing enhancements (Jan Jaeger)
- Allow configure --enable-external-gui for Unix builds
- Enable tun/tap emulation for 64-bit Windows builds (Ivan Warren)
- 64-bit Windows support (Roger Bowler)
- Raise MAX_CPU_ENGINES limit to 64 (Roger Bowler, Ivan Warren)
- Numerous bug fixes (Ivan Warren, Fish, Jan Jaeger, Bernard van der Helm, Roger Bowler, Jay Maynard)

Download: hercules-3.07.tar.gz

## What's new in Version 3.06

Release date: 11 January 2009

- Integrated 3270 (SYSG) console support (Roger Bowler, Jan Jaeger)
- HMC DVD-RAM read/write support (Jan Jaeger)
- 64-bit native version now supported on Mac OS X (Jay Maynard)
- Ability to specify IFL, zIIP, and zAAP engine types (Roger Bowler, Jan Jaeger, Ivan Warren)
- Console-like message handling (David "Fish" Trout, Bernard van der Helm)
- Tape automount CCW support (David "Fish" Trout)
- CKD Locate Record Extended CCW (Greg Smith)
- Support for FLEX-ES FakeTape tape images (David "Fish" Trout; FLEX-ES and FakeTape are trademarks of Fundamental Software, Inc.)
- More complete 3490 and 3590 tape support (David "Fish" Trout)
- Solaris build support (Jeff Savit)
- FreeBSD build support (Bjoern A. Zeeb)
- Panel enhancements:
  - Display virtual storage in primary, secondary, and home space (Paul Leisy)
  - Display and modify PSW fields by panel command (Roger Bowler)
  - Modify control registers by panel command (Roger Bowler)
  - Specify IPL parameter by PARM operand (Ivan Warren)
  - New panel commands: automount, cmdtgt, ctc, herc, msghld, pscp, scp, sfk (David "Fish" Trout, Bernard van der Helm)
- LEGACYSENSEID configuration statement (Ivan Warren)
- New instruction feature support (introduced with System z10):
  - Parsing-Enhancement Facility (Bernard van der Helm)
  - Message-Security-Assist Extension 2 (Bernard van der Helm)
  - General-Instructions-Extension Facility (Roger Bowler, Jan Jaeger)
  - Execute-Extensions Facility (Bernard van der Helm)
  - Move-with-Optional-Specifications Facility (Roger Bowler)
  - Compare-and-Swap-and-Store Facility 2 (Ivan Warren)
- Many emulation fixes (Roger Bowler, Jan Jaeger, Ivan Warren, David "Fish" Trout, Greg Smith, Paul Leisy, Jay Maynard, Bernard van der Helm, Kevin Leonard, Tony Harminc)

Download: hercules-3.06.tar.gz

## What's new in Version 3.05

Release date: 23 June 2007

- Prebuilt Cygwin binary no longer supplied; building Cygwin version from source still supported (Jay Maynard)
- New system features: Compare-and-Swap-and-Store, Conditional SSKE, Decimal Floating Point, Floating Point Support Enhancement (Roger Bowler)
- Extract CPU Time Facility (Jan Jaeger)
- Multiple Logical Channel Subsystems Facility (Jan Jaeger, Ivan Warren)
- 3590 tape support (David "Fish" Trout)
- 3990-6 control unit and ECKD support (Greg Smith)
- Many performance improvements (Greg Smith, Ivan Warren, Jan Jaeger)
- Many emulation fixes (Greg Smith, Roger Bowler, Ivan Warren, David "Fish" Trout, Kevin Leonard, Peter Coghlan)
- Major SCSI tape fixes (David "Fish" Trout)
- Added floating point instructions CGER, CGDR and CGXR (Bernard van der Helm)
- Address range options for instruction trace and step (Greg Smith)
- Update gpr registers via panel command (David "Fish" Trout)
- Console connection keepalive (David "Fish" Trout)
- Customizable 3270 connection screen (Ivan Warren)
- dasdconv quiet and stdin options (Roger Bowler)
- Hercules Automatic Operator (Bernard van der Helm, David "Fish" Trout)
- Enhanced symbol substitution (Leland Lucius, Enrico Sorichetti, David "Fish" Trout)
- Miscellaneous new panel commands: qd (Greg Smith), fpc, traceopt (Roger Bowler), logopt (Kevin Leonard), cd, pwd, timerint, defsym (David "Fish" Trout)

Download: hercules-3.05.tar.gz

## What's new in Version 3.04.1

Release date: 25 March 2006

- Fix to allow building for Intel-based Mac OS X (Jay Maynard)
  Note: This version only applies to the Mac OS X 10.4 (Tiger) platform. Version 3.04 is current for all other platforms.

Download: hercules-3.04.1.tar.gz

## What's new in Version 3.04

Release date: 24 February 2006

- CCKD garbage collection fix (Greg Smith)
- Reworked timing functions (Jan Jaeger)
- Codepage 1047 conversion tables (Kevin Leonard)
- Fixed off-by-one-day bug with SYSEPOCH other than 1900; added new config parameter, YROFFSET, and added warning if SYSEPOCH is not 1900 or 1960 (Jay Maynard, Jan Jaeger)
- New 2305 CKD disk emulation (Jay Maynard)
- Added floating point instructions CEGR, CDGR and CXGR (Bernard van der Helm)
- Added support for cgi-bin dynamic modules (David "Fish" Trout)
- Instruction fixes: PLO, CVB, CXFBR, CXGBR (Bernard van der Helm, David "Fish" Trout, Greg Smith, Pasi Pirhonen)
- Fix for Windows ..\relative path dasd files (David "Fish" Trout)

Download: hercules-3.04.tar.gz

## What's new in Version 3.03.1

Release date: 30 December 2005

- Fix translation exception bug that was causing some Linux kernels to panic (Fabrizio Calabretta, Greg Smith, Ivan Warren)
- TOD Clock-Steering Facility (Jan Jaeger, Bernard van der Helm)
- Fix bug in shadow file filename processing on native Windows (David "Fish" Trout)
- Performance improvements in TM instruction family (Bernard van der Helm)
- Support for Linux zipl LOADPARM of PROMPT (Jan Jaeger)

Download: hercules-3.03.1.tar.gz

## What's new in Version 3.03

Release date: 20 December 2005

- Native Windows version no longer requires Cygwin (David "Fish" Trout, Roger Bowler, Ivan Warren)
- SMP host integrity fixes (Greg Smith, David "Fish" Trout, Bob Deblier)
- ALS5, z9 and other architectural enhancements (Roger Bowler, Bernard van der Helm, Jan Jaeger, David "Fish" Trout)
- Restructured cryptographic support no longer depends on libgcrypt (Bernard van der Helm, Roger Bowler, Ivan Warren)
- Support emulation of up to 32 CPUs; maximum without special build options now 8 (Ivan Warren)
- Enhanced semigraphical control panel now uses all of larger console windows (Greg Smith, David "Fish" Trout)
- Many emulation fixes (Roger Bowler, Jan Jaeger, Bernard van der Helm, David "Fish" Trout, Greg Smith, Ivan Warren, Andy Styles, John Decker)
- CMPSC fixes now produce identical results with real systems (Jacques Dilbert, Bernard van der Helm)
- Integrated 1052-C / 3215-C console support (Jan Jaeger)
- tapecopy support for writing as well as reading tapes (Jay Maynard)

Download: hercules-3.03.tar.gz

## What's new in Version 3.02

Release date: 11 December 2004

- Significant performance improvements (Jan Jaeger, Greg Smith, Gabor Hoffer)
- SIE performance almost the same as native (Jan Jaeger, Gabor Hoffer)
- SCSI tape support in Windows (David "Fish" Trout)
- Mac OS X CTC networking support (Jay Maynard)
- Suspend/resume facility (Greg Smith)
- ASN-and-LX-Reuse Facility (Roger Bowler)
- Enable or disable ASN-and-LX-reuse in config (Jan Jaeger, Ivan Warren)
- Extended Translation Facility 3 (Bernard van der Helm)
- DAT-enhancement facility (Roger Bowler)
- Immediate CCWs now correctly handled when Suppress Incorrect Length Indication is specified (Ivan Warren)
- 3270 option provided to control connection to group of devices (Ivan Warren)
- 3270 connections can be limited by IP address (David "Fish" Trout)
- Remaining 26 binary floating point instructions (Roger Bowler)
- IPL CLear, System Reset, and System Reset Clear operator commands (Ivan Warren)
- Pentium 4 optimizations enabled in gcc (Ivan Warren)

Download: hercules-3.02.tar.gz

## What's new in Version 3.01

Release date: 30 November 2003

- Bypass gcc 2.96 optimizer bug that caused incorrect instruction execution (Ivan Warren)
- Added command-line control panel command history (Martin Gasparovic, Volker Bandke)
- Message Security Assist (Bernard van der Helm, Jan Jaeger)
- Fixed device interrupt pending on IPL that caused OS/360 to have to be IPLed twice (David "Fish" Trout, Greg Smith)
- Added pthreads trace function for debugging (Greg Smith)
- Fish threads code rewritten, closer to POSIX thread functionality while still performing better (David "Fish" Trout)
- Fixed incompatibility with Windows NT telnet client (Greg Price, David "Fish" Trout)
- Performance and integrity enhancements for RS instructions (Greg Smith)

Download: hercules-3.01.tar.gz

## What's new in Version 3.00

Release date: 2 October 2003

- Dynamically loaded module support for devices, instructions, and operator console panels (Jan Jaeger, David "Fish" Trout, Ivan Warren)
- Shared and remote DASD support (Greg Smith)
- z990 (ALS4) instruction support (Roger Bowler, Jan Jaeger, Bernard van der Helm)
- HFP Multiply-Add/Subtract Facility (Roger Bowler)
- Long Displacement Facility (Roger Bowler)
- Simplified network adapter specifications (David "Fish" Trout, Jim Pierson)
- New device emulations: 2703, 3410, 3490, 9347 (Ivan Warren)
- ECPS:VM support (Ivan Warren)
- Reworked process priority handling (Mark Gaubatz)
- Greatly improved interval timer resolution (Mark Gaubatz)
- Internal consistency checking improvvements (Greg Smith)
- Corrected 3270 session disconnect processing (Ivan Warren)
- Instruction disassembler in control panel (Jan Jaeger)
- Tape read backward fixes (Jay Jaeger)
- Fix for double memory consumption bug on Windows (Mark D., David "Fish" Trout)
- OMA tape processing fixes (Ivan Warren)
- Message logging restructuring (Jan Jaeger, David "Fish" Trout)
- S/370 I/O race condition fixes (Victor Shkamerda, Greg Smith)
- Manual pages for some commands (Jim Morrison)

Download: hercules-3.00.tar.gz

## What's new in Version 2.17.1

Release date: 12 February 2003

- Corrected RPM installed files permissions (John Summerfield)
- Corrected dasdload verbosity level (Jay Maynard)
- Corrected card reader eof/intrq option handling, added * to designate no file loaded (Jay Maynard)
- Correct SLB instruction condition code (Jan Jaeger)
- Fix dasdutil.c track conversion function (Jim Morrison)

Download: hercules-2.17.1.tar.gz

## What's new in Version 2.17

Release date: 1 February 2003

- Restructured DASD subsystem: better use of memory, compressed FBA support, framework for shared DASD (Greg Smith)
- New dasdcopy utility replaces ckd2cckd and cckd2ckd, and adds compressed FBA support (Greg Smith)
- Native support for Mac OS X 10.2 and above (Paul Scott)
- Reworked CTC and LCS emulation (Jim Pierson)
- SMP host integrity fixes (Greg Smith and Jan Jaeger)
- Fixes for compile errors with gcc 3.x (Greg Smith and David "Fish" Trout)
- S/370 dual address space and MVS assist fixes (Jan Jaeger)
- Renumbered all messages to consistent format, removed duplicate numbers, and began message documentation (Jay Maynard)
- Added options for 1052/3215 consoles and card readers (Jay Maynard)
- Numerous instruction and I/O emulation fixes (Greg Smith, Jan Jaeger, Juergen Dobrinski, Bernard van der Helm, Andy Norrie, and David "Fish" Trout)

Download: hercules-2.17.tar.gz

## What's new in Version 2.16.5

Release date: 8 July 2002

- Correct serious CCKD image file corruption error (Greg Smith)
- Allow tape files to be opened for input if on CD-ROM (Volker Bandke)

Download: hercules-2.16.5.tar.gz

## What's new in Version 2.16.4

Release date: 3 July 2002

- Read backward support for emulated tape (Volker Bandke)
- Added 9313, 9332, and 9335 to list of supported devices (Tomas Masek)

Download: hercules-2.16.4.tar.gz

## What's new in Version 2.16.3

Release date: 2 July 2002

- CTC fix for TurboLinux bug (Jim Pierson)
- 3287 printer support via TN3270 (Tomas Masek)
- S/370 extended memory fixes (Tomas Masek)
- ctcadpt.c compilation fix for FreeBSD (Mark Szlaga)
- Fixed 3270 ERASE ALL UNPROTECTED command to not count data read (Tomas Fott)
- Fixes to ckdtab in dasdtab.c (Greg Smith)
- Retrofitted cckd chkdsk fixes/enhancements (Greg Smith)
- FBA fixes contributed by Tomas Masek (Greg Smith)
- Compatibility fixes for cckd and 2.17 (Greg Smith)

Download: hercules-2.16.3.tar.gz

## What's new in Version 2.16.2

Release date: 20 May 2002

- Fixed 3350 dasdtab entry (Greg Smith)
- Fixed 370 interval timer error (Valery Pogonchenko)
- Control panel attach command bug fix (David "Fish" Trout)

Download: hercules-2.16.2.tar.gz

## What's new in Version 2.16.1

Release date: 4 May 2002

- fthreads locking fixes (David "Fish" Trout)
- dasdload bug fix (Greg Smith)
- FBA dasd devices allow any size disk (Jay Maynard)
- Control panel attach command bug fix (Kris Van Hees)
- Windows versions (finally) accessible from main page (Jay Maynard)

Download: hercules-2.16.1.tar.gz

## What's new in Version 2.16

Release date: 20 April 2002

- PER support (Jan Jaeger, Paul Leisy)
- S/370 multiprocessor support (Jan Jaeger)
- Licensed software restriction (Jan Jaeger, Jay Maynard)
- Performance mods (Gabor Hoffer, Juergen Dobrinski, Greg Smith, and Paul Leisy)
- Interrupt subclass priorities (Greg Smith)
- dasdcat program (Malcolm Beattie, Roger Bowler)
- Updated TCP/IP documentation (Roger Bowler)
- CTCI support for Windows (David "Fish" Trout)
- Print to unix pipe (Roger Bowler)
- Preliminary Lan Channel Station (LCS) support
- HTTP server (Jan Jaeger)
- Various fixes (as recorded in CHANGES) (Paul Leisy, Matt Zimmerman, Greg Smith, Volker Bandke, Bernard van der Helm, David "Fish" Trout)

Download: hercules-2.16.tar.gz

## What's new in Version 2.15

Release date: 04 December 2001

- Autoconf added to ease portability (Matt Zimmerman, Fritz Elfert, Willem Konynenberg)
- Numerous instruction fixes (Paul Leisy)
- TUN/TAP support for Linux kernels beyond 2.4.6 (Matt Zimmerman)
- Timer fixes (Greg Smith)
- Synchronous I/O (Greg Smith)
- Support for IPL from CD-ROMs as with HMC (Jan Jaeger)
- CTC hang at shutdown fixed (Jan Jaeger)
- CTC TCP/IP now works with VM/ESA (Kris Van Hees)
- Compressed CKD endianness and RAS fixes (Greg Smith)
- Hot reader support (David "Fish" Trout)
- Machine checks now reported for host exceptions, loops, and wait states (Jan Jaeger)

Download: hercules-2.15.tar.gz

## (There was no Version 2.14)

## What's new in Version 2.13

Release date: 05 July 2001

- Restrict TODEPOCH to 1900, 1928, 1960, 1970, or 1988, and correct offset calculation (Michael Koehne)
- HET unmount option (Michael Koehne)
- quiet command (Michael Koehne)
- Panel instruction disassembly (Jan Jaeger)
- CMPSC corrections (Bernard van der Helm)
- CTCT CTC over TCP/IP (Vic Cross)
- Sundry instruction and channel fixes (Jan Jaeger)
- Numerous instruction fixes (Paul Leisy)
- CKD trace command (Valery Pogonchenko)
- Performance enhancements (Juergen Dobrinski)
- CGEBR/CGDBR instructions (Jan Jaeger)
- CEGBR/CDGBR instructions (Kris Van Hees)
- CKD 9345 support (Greg Smith)
- Storage Key Assist (Jan Jaeger)
- Move Page Facility 2 (Jan Jaeger)

Download: hercules-2.13.tar.gz

## What's new in Version 2.12

Release date: 04 May 2001

- Numerous instruction fixes (Paul Leisy, Jan Jaeger, Peter Stammbach, Roger Bowler)
- FBA and CKD read-only support (Greg Smith)
- Enable ISKE/RRBE/SSKE in S/370 mode (Valery Pogonchenko)
- CCKD corrections (Greg Smith)
- CMPSC fixes for expansion (Greg Smith)
- Correct prefix alignment for ESA/390 guest in 64 bit mode SIE (Jan Jaeger)
- Card reader multiple files and EBCDIC autopad support
- Support for built-in TUN driver of Linux kernel 2.4.x
- Device I/O thread throttling (Greg Smith, Fish)
- Small optimization of vstore/vfetch and TPI (Jan Jaeger)
- Sense/Set Path Group ID for DASD (Jan Jaeger)
- Dynamic device threads (Jan Jaeger)
- Fast interrupt processing for MCK and PER (Jan Jaeger)
- Allow HET files to reside on read-only media (Leland Lucius)
- Utilities display versioning and copyright info (Greg Smith)
- Present device end on terminating console session (Jan Jaeger)
- sh panel command (Bernard van der Helm)
- 9221 power-off diagnose (Jan Jaeger)
- Debug format enhancements (Peter Stammbach)
- Fix for device threads (Juergen Dobrinski)
- Sundry new ESAME instructions and corrections (Roger Bowler, Jan Jaeger)
- Improved interrupt processing (Valery Pogonchenko)
- Incorrect-Length-Indication-Suppression facility (Jan Jaeger)
- S/370 interval timer fixes (Mark Gaubatz)
- 64-bit Interpretive Execution (Jan Jaeger)
- IEEE floating point (Willem Konynenberg)
- 64-bit panel updates (Roger Bowler)
- LPM fixes and display subchannel command (Nobumichi Kozawa)
- Fix amode64 in load_psw (Ulrich Weigand)
- Multiply Logical instructions (Vic Cross)
- Environment variables to override filenames of hercules.rc hercules.cnf and hercifc (Jan Jaeger)
- Floating point enhancements (Roger Bowler, Jan Jaeger)
- Country codepage tables (Roger Bowler)

Download: hercules-2.12.tar.gz

## What's new in Version 2.11

Release date: 09 February 2001

- Sundry new ESAME instructions and corrections (Jan Jaeger)
- Panel display instruction operands (Roger Bowler)
- TRAP and RP instructions (Jan Jaeger)
- TP instruction (Roger Bowler)
- Tape data chaining patch (Brandon Hill)
- Bypass Cygwin stack problem (Greg Smith)
- Fixes for Windows port (Volker Bandke)
- SSK/ISK/RRB fix for 2K storage keys (Valery Pogonchenko, Jan Jaeger)
- Extended Translation Facility 2 (Roger Bowler)
- Divide Logical instructions (Vic Cross)

Download: hercules-2.11.tar.gz

## What's new in Version 2.10

Release date: 02 February 2001

- z/Architecture support (Jan Jaeger)
- TUN/TAP support for CTC (Roger Bowler)
- OSTAILOR VSE option (Roger Bowler)
- 2K/4K storage key support (Jan Jaeger)
- Fully functional CMPSC instruction (Bernard van der Helm)
- Fix read-only AWSTAPE (Roger Bowler)
- Sundry new ESAME instructions (Jan Jaeger, Roger Bowler)
- Format-2 2K/4K IDAW (Roger Bowler)
- ESAME 5-level DAT (Roger Bowler)
- ESAME ASN authorization and ALET translation (Roger Bowler)
- ESAME linkage-stack instructions (Roger Bowler)
- ESAME subspace replacement (Roger Bowler)
- ESAME DUCT format changes (Roger Bowler)
- Unloaded tape drive support (Brandon Hill)
- Extended floating point (Peter Kuschnerus)
- Divide Single instructions (Jan Jaeger)
- EPSW instruction (Roger Bowler)
- Compressed CKD updates (Greg Smith)
- Timer update correction (Valery Pogonchenko)
- Fix MVCLE instruction (Jan Jaeger)
- Interval Timer fix (Bob Abeles)

Download: hercules-2.10.tar.gz

## What's new in Version 1.71

Release date: 18 January 2001

- Compressed CKD DASD support release 2, with improved performance, shadow file support, and better reliability (Greg Smith)
- Hercules Emulated Tape format support (Leland Lucius)
- Make HET bzip2 compression optional, analogous to CCKD bzip2 (Jay Maynard)
- Fix for track overflow record zeroing (Roger Bowler)
- Clarified licensing discussion in FAQ (Roger Bowler)
- Treat printer X'37' CCW as NOP (Jay Maynard, suggested by Brandon Hill)
- Treat X'E503' MVS/XA assist instruction as no-op (Jay Maynard, suggested by Brandon Hill)
- Read commands from hercules.rc at startup (Willem Konynenberg)
- New tapelist program prints contents of 80-byte record tapes (Jim Morrison)
- Increased MAXDBLK from 3000 to 40000 and MAXTTR from 10000 to 40000 in dasdload (Volker Bandke)

Download: hercules-1.71.tar.gz

## What's new in Version 1.70

Release date: 3 December 2000

- New file hercwin32.zip contains build scripts for Win32 version (Volker Bandke)
- More performance enhancements (Juergen Dobrinski)
- ALS-1 and ALS-2 support completion (Roger Bowler and Jan Jaeger)
- Extended Translation Facility (Roger Bowler)
- Pick up correct float.c module (Jay Maynard for Peter Kuschnerus)
- Distribute Windows binaries as well as Linux (Jay Maynard)
- Fix orienting bug in CKD DASD search CCW processing (Bob Abeles)
- Obtain TOD clock lock when accessing or updating 370 interval timer (Bob Abeles)
- Change license to the QPL Open Source Definition-compliant license (Roger Bowler, Jay Maynard, and Jan Jaeger)

Download: hercules-1.70.tar.gz

## What's new in Version 1.69

Release date: 29 October 2000

- Correct AXR and SXR instruction results when significance exception raised (Peter Kuschnerus, with help from Mario Bezzi)
- Correct CD and CDR instruction condition code logic (Peter Kuschnerus)
- Do not generate support for square root instructions in 370 mode (Peter Kuschnerus)
- Floating point arithmetic tuning (Peter Kuschnerus)
- Performance optimization fixes (Juergen Dobrinski)
- Spelling corrections (Adam Thornton)
- Fixed version number (Jay Maynard)

Download: hercules-1.69.tar.gz

## What's new in Version 1.68

Release date: 8 October 2000

- Rewritten and updated FAQ (Dave Morton)
- Compressed CKD DASD support (Greg Smith)
- Many performance improvements (Juergen Dobrinski, with help from Albert Louw and Valery Pogonchenko)
- DASD I/O optimizations (Greg Smith and Malcolm Beattie)
- Simplified building on non-Intel architectures (Jay Maynard)
- Fix for random bug in MP instruction (Mario Bezzi)
- Treat all 3505 card reader read CCWs the same (Jay Maynard)

Download: hercules-1.68.tar.gz

## What's new in Version 1.67

Release date: 4 September 2000

- Win32 portability changes (John Kozak)
- Fix for 64K segment length checking in 370 DAT (Jay Maynard, found by Mario Bezzi)
- Fix for TPI storing interrupt code when no interrupt pending (Jay Maynard, found by Greg Smith)
- Skip to channel 9 and 12 support (Roger Bowler)
- Panel refresh rate speedup and command (Reed Petty)
- Fix storage protection override on fetch (Jan Jaeger)
- SIE support, with S/370 and ESA/390 modes and vector support (Jan Jaeger)
- Bugfix for MXR instruction (by Peter Kuschnerus)
- CONCS, DISCS and RCHP instructions (Jan Jaeger)
- Fix flags on intermediate subchannel status (Jan Jaeger)
- Break SYSCONS output lines when too long (Jan Jaeger)
- Floating point instructions SQDR and SQER (by Peter Kuschnerus)
- Lock Page instruction (Jan Jaeger)

Download: hercules-1.67.tar.gz

## What's new in Version 1.66

Release date: 3 August 2000

- Simplify logmsg and DEVTRACE macro definitions (Jay Maynard)
- Prevent incorrect length indication on CONTROL NOP CCW (Jay Maynard)
- Complete 370 HIO processing (Jay Maynard)
- Correct nullification of TPI and TSCH (Jan Jaeger)
- Add device locking to MSCH (Jan Jaeger)
- Correct TPROT instruction (Jan Jaeger)
- Correct address wrapping on assist instructions (Jan Jaeger)
- Change interrupt logic to use longjmp on all interrupts (Jan Jaeger)
- Clear remainder of ASTE when loading ASTE with ASF=0 in translate_asn (Jan Jaeger)
- Add (incomplete) PLO instruction (Jan Jaeger)
- Fix CLCL interruption problem (Jan Jaeger)
- Fix addresswrap in MVO (Jan Jaeger)
- Make ED and EDMK perform a trial run (Jan Jaeger)
- Fix address wraparound in MVO (Jan Jaeger)
- Fix CR15 corruption in form_stack_entry, fix nullification in form_stack_entry and unstack_registers (Jan Jaeger)
- Fix loss of interrupts in PR (Jan Jaeger)

Download: hercules-1.66.tar.gz

## What's new in Version 1.65

Release date: 22 July 2000

- Track overflow processing fixes (by Jay Maynard, suggested by Valery Pogonchenko)
- Added TOD clock update to STCK, STCKE, DIAG 204, and TRACE processing (by Jay Maynard)
- Fixed READ DEVICE CHARACTERISTICS alternate track values for 3380 and 3390 (by Peter Macdonald)
- Skeletal CMPSC instruction (by Bernard van der Helm)
- Added support for 3340 and 3375 DASD (by Jay Maynard, with help from Rick Fochtman and David Cole)
- Corrected interval timer update increment (by Jay Maynard)
- float.c optimization for new instruction decode and execution (by Peter Kuschnerus)
- Fix program check on TIC ccw (by Jan Jaeger)
- Fix program check on NOP ccw (by Jan Jaeger)
- Instruction decode & execution restructure (by Jan Jaeger)
- Added -fomit-frame-pointer to compiles for improved performance (by Jan Jaeger)
- Fix STCKE instruction (by Bernard van der Helm)

Download: hercules-1.65.tar.gz

## What's new in Version 1.64

Release date: 4 July 2000

- Added track overflow processing for CKD DASD (by Jay Maynard)
- Makefile change to allow RPM building with RPM_BUILD_ROOT (by David Barth)
- Added NetBSD build definitions to makefile (by Soren Jorvang)
- Moved version definition to version.h and removed makefile dependency for source modules (by Jay Maynard)
- Package change: tarball now explodes into hercules-<version> subdirectory (by Jay Maynard, suggested by Soren Jorvang)
- Fix backward going TOD clock (by Jan Jaeger)
- Suppress superflous HHC701/HHC702 messages (by Jan Jaeger)
- Rework cpu.c to decode instructions by macro (by Jan Jaeger)
- Bypass bug in IBM telnet client (by Jan Jaeger)

Download: hercules-1.64.tar.gz

## What's new in Version 1.63

Release date: 18 June 2000

- 3270 CCW processing improvements (by Jan Jaeger)
- OSTAILOR generalization, and new pgmtrace panel command (by Jan Jaeger)
- VM IUCV instruction correction and DIAGNOSE improvements (by Jan Jaeger)
- CPU timer and clock comparator improvements (by Jan Jaeger, after a suggestion by Willem Konynenberg)
- 3480 READ BLOCK ID and LOCATE CCW support (by Brandon Hill)
- Networking support via virtual CTCA (by Willem Konynenberg)
- Restructured CPU execution, by function call instead of switch statement (by Mike Noel)
- Support for IEBCOPY sequential output datasets in dasdload (by Ronen Tzur)
- New dasdls command lists the VTOC of a CKD DASD volume (by Malcolm Beattie)
- New AWSTAPE handling commands: tapesplt, tapemap (by Jay Maynard)
- `make install` target to install in /usr/bin (by Jay Maynard)

Download: hercules-1.63.tar.gz

## What's new in Version 1.62

Release date: 3 June 2000

- Still more multiprocessor improvements (by Jan Jaeger)
- Dynamic CPU reconfiguration (by Jan Jaeger)
- Basic vector facility (by Jan Jaeger)
- Floating point version 6 (by Peter Kuschnerus)
- READ AND RESET BUFFERED LOG CCW (X'A4') support (by Jay Maynard)
- WRITE SPECIAL CKD CCW (X'01') support (by Jay Maynard)
- FBA DASD model reporting fixes (by Jay Maynard)

Download: hercules-1.62.tar.gz

## What's new in Version 1.61

Release date: 21 May 2000

- More multiprocessor improvements (by Jan Jaeger)
- New startall/stopall panel commands (by Jan Jaeger)
- STIDP stores processor address in first digit of CPU id (by Roger Bowler)
- Correction to IPTE instruction for S/370 (by Jay Maynard)
- Dummy HIO instruction for S/370 (by Jay Maynard)
- Support for emulated 0671 FBA DASD (by Jay Maynard)
- FBA device reserve/release CCW support (by Jay Maynard)
- New OSTAILOR configuration option allows selective suppression of program check messages (by Jay Maynard)

Download: hercules-1.61.tar.gz

## What's new in Version 1.60

Release date: 14 May 2000

- Multiprocessor locking improvements (by Jan Jaeger)
- Machine check and channel report word (by Jan Jaeger)
- Store Channel Report Word (STCRW) instruction (by Jan Jaeger)
- New attach/detach/define commands to allow dynamic addition and deletion of devices from the configuration (by Jan Jaeger)
- Compare and Swap and Purge (CSP) instruction (by Jan Jaeger)
- Broadcasted purging (by Jan Jaeger)
- Fix LASP instruction SASN authorization using wrong AX if bits 29-31 are 010 and SASN \= PASN (by Mario Bezzi)
- Fix SAC instruction special operation exception setting secondary space mode when ASF=0 (by Mario Bezzi)
- Remove intdrag option and replace drag command by toddrag command
- New extpending flag to improve performance (originally contributed by Valery Pogonchenko and enhanced by Jan Jaeger)
- Allow longer host name in console connected message (by Jay Maynard)
- Floating point version 5 including fixes by Mario Bezzi (contributed by Peter Kuschnerus)

Download: hercules-1.60.tar.gz

## What's new in Version 1.59

Release date: 30 Apr 2000

- Missing interrupt after CSCH instruction
- S/370 DAT support (contributed by Jay Maynard)
- Tape device sense byte improvements (by Jan Jaeger)
- Read Buffered Log (CCW X'24') for tape devices (by Jan Jaeger)
- Reject Sense ID CCW for 3420 tape devices (by Jan Jaeger)
- Suppress unprintable character in HMC messages (by Jan Jaeger)
- Suppress attention interrupt if subchannel not enabled (by Roger Bowler)
- New interrupt drag factor to improve performance (by Roger Bowler)
- New toddrag and intdrag config options and drag control panel command allow drag factors to be set (by Roger Bowler)
- Light optimization on CPU critical path (by Valery Pogonchenko)
- Eliminate fetch protection override in S/370 mode (by Valery Pogonchenko)

## What's new in Version 1.58

Release date: 22 Apr 2000

- Support for CKD DASD volumes exceeding 2GB such as 3390-3 (by Roger Bowler)
- 3274-1D SELECT RB/RMP/RBP/WRT commands (by Roger Bowler)
- Support for 3270 14-bit SBA addressing and inbound SFE order (by Roger Bowler)
- Command reject if Write Structured Field CCW issued to a 3270 without extended attributes (by Roger Bowler)
- Fix missing CSW_IL indication when CCW count exhausted (by Roger Bowler)
- Do not set unit exception if CCW count is zero (by Jan Jaeger)
- Suppress space switch event program check messages (by Jan Jaeger)
- Branch tracing and cross memory tracing for BALR, BASR, BASSM, BAKR, BSA, BSG, SSAR, PC, PT, PR instructions (by Jan Jaeger)
- New diagnose instruction to stop CPU (by Jan Jaeger)
- Drag factor option slows down TOD clock, to decrease overhead on very slow machines (by Jan Jaeger)
- Correction to PR instruction (by Jan Jaeger)
- Correction to LASP instruction (by Jan Jaeger)
- Make CLCLE/MVCLE/CKSM instructions conditional features (by Jan Jaeger)
- Enable channel measurement mode (by Jan Jaeger)
- Modify program_check() to handle shadow registers correctly (by Jan Jaeger)
- Change DAT to favour PSTD in TEA, to give reduction in page fault path length (by Jan Jaeger)
- Avoid clearing registers at CPU reset (by Jan Jaeger)
- Leave GPR, AR and FPR intact during CPU reset for SADUMP (by Jan Jaeger)
- Zeroize field for called space identification in PC stack entry (by Jan Jaeger)
- New CCW X'8D' (Write Update Key and Data) required by STOW (by Jan Jaeger)
- Fix for 0B7 abend in D M=CHP command (by Jan Jaeger)
- Floating point version 4 including fixes by Valery Pogonchenko (contributed by Peter Kuschnerus)
- Fix incorrect second operand address in MVCIN instruction (by Roger Bowler)
- Correct sign of zero result in SRP instruction (by Roger Bowler)
- Erase Gap (CCW X'17') for tape devices (by Roger Bowler)
- Activate MIPS counter on control panel (by Dutch Owen)
- Suppress tracing of ISK, SCK, and DP instructions

## What's new in Version 1.57

Release date: 30 Mar 2000

- Fix program check 0032 due to wrong stack entry being updated
- Fix wrong SSTD loaded by LASP instruction (found by Jan Jaeger)
- Bypass main storage lock in single CP configuration (by Jan Jaeger)
- Fix incorrect condition code in PGIN instruction (by Jan Jaeger)
- Corrections to expanded storage instructions (by Jan Jaeger)
- New STCPS and SCHM instructions (by Jan Jaeger)
- Set more appropriate sense bytes for tape errors

## What's new in Version 1.56

Release date: 28 Mar 2000

- Fix incorrect unit exception on SCSI tape FSB/BSB CCW (reported by Daniel Rudin)
- Fix unit check on AWSTAPE write (reported by Axel Schwarzer)
- Close SCSI tape after tape is ejected
- Detect tapemark during SCSI tape FSB/BSB CCW
- Suppress HMC response prompt (by Jan Jaeger)
- Expanded storage support (by Jan Jaeger)
- Move Page Facility 2
- Correct signed length error in MVCK/MVCS/MVCP (by Jan Jaeger)
- Undetected CC=3 in SRP instruction
- Wrong remainder in DP instruction when dividend is less than divisor
- Specification exception in DP instruction should have higher priority than data exception

## What's new in Version 1.55

Release date: 22 Mar 2000

- FBA minidisk support
- Additional diagnose functions
- Allow real storage frames to be marked unusable (by Jan Jaeger)

## What's new in Version 1.54

Release date: 18 Mar 2000

- Address wraparound improvement (contributed by Jan Jaeger)
- Floating point version 3 (contributed by Peter Kuschnerus)
- Correction to SLDA/SRA instructions (contributed by Jan Jaeger)
- Recognize tabs and end-of-file character in ASCII cardrdr files
- Hercules-specific diagnose instructions (contributed by Jay Maynard)
- Correct missing timer interrupt when interval timer goes from zero to negative (thanks to Valery Pogonchenko)
- Enable HMC system console in S/370 mode
- Correct sign propagation in multiply instruction
- Reduce CPU thread priority (thanks to Steve Gay and Reed H.Petty)

## What's new in Version 1.53

Release date: 01 Mar 2000

- Add BSF/FSF/BSB/FSB CCW support for tape devices
- Allow final short block in OMA fixed block files
- Allow processing of read-only AWSTAPE files and SCSI tapes
- Skeleton ctcadpt module for future 3088 support
- Correctly nullify IC/NI/OI/XI/CLM/STCM/ICM/TRT instructions on page translation exception (thanks to Jan Jaeger)
- Improved floating point support (contributed by Peter Kuschnerus)
- Correct shift result when shift count exceeds 31 (thanks to Glen Herrmannsfeldt and Jay Maynard)
- Fix incorrect MVCL cc=3 when destination length is 1

## What's new in Version 1.52

Release date: 19 Feb 2000

- Prevent incorrect length indication on 3270 Select CCW
- 2K storage protection for S/370
- Prevent wait for console port (thanks to Malcolm Beattie)
- Allow keyword parameters in configuration file
- New sysepoch and tzoffset parameters (thanks to Jay Maynard)
- Adjust TRACE and DIAG204 for extended TOD (thanks to Jan Jaeger)
- Set TOD clock in SCK instruction (thanks to Jan Jaeger)

## What's new in Version 1.51

Release date: 15 Feb 2000

- 3270 read buffer fix for OS/360 NIP
- Floating point instructions (contributed by Peter Kuschnerus)
- Remove 32-bit pointer dependency from dasdload for Alpha
- HMC system console support (contributed by Jan Jaeger)
- Correct condition code after decimal overflow (thanks to Jan Jaeger)
- Set reference and change bits for PSA access (thanks to Jan Jaeger)
- New CRLF option for printer and card punch (default is now LF)

## What's new in Version 1.50

Release date: 10 Feb 2000

- Remove interval timer debugging message
- Fix hung console resulting from attention interrupt fix in 1.49
- Seek and Set Sector (CCW=27) for Itel 7330 DASD controller
- Correct SIGP handling of non-existent CPUs (thanks to Jan Jaeger)
- Extended TOD clock bit in processor features (thanks to Jan Jaeger)
- Alternate control panel help text (contributed by Dutch Owen)
- Card reader end of file option (thanks to Dutch Owen)
- Card reader ASCII/EBCDIC auto-detection
- Fix SIGP RESTART to target correct CPU (thanks to Jan Jaeger)
- Allow VTOC size and location to be specified for dasdload.

## What's new in Version 1.49

Release date: 05 Feb 2000

- Alternate control panel (contributed by Dutch Owen)
- Present attention interrupt when console connects
- Fix dasdload CVOL logic (thanks to Jay Maynard)
- Fix dasdload initialization of empty PDS
- Allow device size to be specified for dasdload Note: the volser record in the pack layout file must be changed to specify the device type and cylinder count; the device type is no longer specified on the command line.
- Add dummy Set Clock instruction (does nothing except set cc 0)

## What's new in Version 1.48

Release date: 31 Jan 2000

- Fix dasdload to handle note lists (prevent 32D abend)
- I/O interrupt performance enhancement
- Correctly detect overflow in signed Add/Subtract instructions
- Fix track overflow problem
- 3270 Read Modified CCW

## What's new in Version 1.47

Release date: 23 Jan 2000

- Allow tn3270 or telnet client to connect to specific device number
- Align control panel instruction counter (thanks to Mario Bezzi)
- Ensure panel display does not corrupt TEA (by Jan Jaeger)
- STIDP incorrectly propagates high order bit of CPU model (fixed by Jan Jaeger)
- Fix byte-ordering problem with CKD DASD header on non-Intel machines (reported by Adam Thornton)
- STIDC instruction
- Extended TOD clock (STCKE and SCKPF instructions)
- 3211 Load FCB and Diagnostic Read CCW
- 3270 Read Buffer CCW
- Fix console.c to inhibit input while console has status pending

## What's new in Version 1.46

Release date: 11 Jan 2000

- HSCH instruction
- SIGP instruction
- Suppress tracing of page faults
- Display control registers and access registers after program check
- Add regs parameter to program_check function calls
- New panel command to perform store status function
- Suppress tracing of CCW file protect and end of cylinder errors

## What's new in Version 1.45

Release date: 08 Jan 2000

- Make MVCL/CLCL interruptible (contributed by Jan Jaeger)
- Diagnose 204 (contributed by Jan Jaeger)
- Read Channel Subsystem Info (contributed by Jan Jaeger)
- Fix incorrect register count in TRACE instruction
- Correct nullification of STM/LM/LAM/STAM/STCTL/LCTL/STCM and SS instructions whose operands cross a page boundary
- Suppression on Protection with Virtual-Address enhancement
- Select correct address space for MVCS/MVCP (fixed by Jan Jaeger)
- Correct registers after CLCL/CLCLE with non-zero condition code
- Defer clock comparator interrupt while instruction stepping
- Remove 32K limit on data chained write CCWs for non-CKD devices
- Correct overrun error on data chained write for FBA DASD

## What's new in Version 1.44

Release date: 01 Jan 2000

- Support for 9336 FBA DASD
- Read Replicated Data command for FBA DASD
- Prevent recursive program check after instruction fetch error
- Operand tracing for MVCL/CLCL and RRE instructions

## What's new in Version 1.43

Release date: 27 Dec 1999

- New control panel command: devlist
- Write Update Data (X'85') CCW for CKD devices
- Makefile changed to use $(CC) instead of cc
- Fix dat.c to prevent ASN translation specification exception (program check X'0017') if subspace group facility is installed and ASF is one
- Fix cpu.c to clear ILC before fetching instruction to prevent PSW being backed up if access error occurs during instruction fetch
- Correct program check ILC when instruction is nullified
- Obtain CPU model number for STIDP from configuration file (contributed by Jay Maynard) Note: if upgrading from an earlier release, you must change your hercules.cnf file to add a valid CPU model number after the CPU serial number
- Prevent wait after devinit (thanks to Jay Maynard)
- Open printer with O_SYNC to ensure buffers flushed (suggested by Daniel Seagraves)
- Fix xmem.c to prevent loop in program_call when loading 4-word ETE (thanks to Jan Jaeger)
- Improved TLB lookup (contributed by Jan Jaeger)

## What's new in Version 1.42

Release date: 16 Dec 1999

- New makefile builds both S/370 and ESA/390 executables: hercules-370 and hercules-390 (contributed by Jay Maynard)
- 3480 Set Path Group Id and Unassign CCWs (contributed by Jan Jaeger)
- CFC and UPT instructions (contributed by Peter Kuschnerus)
- Card punch support
- Erase (X'11') CCW for CKD devices
- Correct setting of translation exception address
- Correct file mode when opening printer file
- Correct condition code for shift arithmetic instructions

## What's new in Version 1.41

Release date: 07 Dec 1999

- Set reference and change bits correctly for main storage accesses by channel, dat, xmem, stack, block, and service modules (thanks to Jan Jaeger)
- New devinit command (contributed by Jay Maynard)
- Reject control panel virtual storage display command if CR1=0
- Fix dasdload to correctly write EOF record for empty file and to correctly fill block overhead fields in format4 DSCB.
- Diagnose functions MSSFCALL and SCPEND (contributed by Jan Jaeger)
- Corrections to service.c and assist.c (contributed by Jan Jaeger)
- Alpha platform portability definitions (contributed by Jay Maynard)
- 3480 Assign CCW (thanks to Rick McKelvy)

## What's new in Version 1.40

Release date: 30 Nov 1999

- New DASDISUP program performs OS/360 IEHIOSUP function
- Correct SCSW handling for suspend/resume
- Forward space file CCW for tape devices
- 3480 load display CCW (contributed by Jan Jaeger) and sense path group id CCW (thanks to Rick McKelvy)
- Correct handling of OMA tape headers to correctly recognize tape mark and to align headers to 16-byte boundary
- EBCDIC character translation of CCW data displays
- Fix command reject for CKD read commands outside the domain of a locate record

## What's new in Version 1.39

Release date: 24 Nov 1999

- Concurrent sense
- I/O initial status interruption
- Channel program suspend/resume function and RSCH instruction
- Read Device Characteristics CCW for 3480
- Fix incorrect command reject on Sense Subsystem Status CCW
- Increase 3270 write buffer size to prevent console I/O error when using Zap function of ZZSA
- Fix very nasty error in dat.c causing wrong bytes to be fetched or stored when operand crosses page boundary
- Remove temporary fix to ckddasd.c introduced in 1.37

## What's new in Version 1.38

Release date: 22 Nov 1999

- New panel commands to allow storage alteration
- Fix incorrect I/O parameter on attention interrupt (thanks to Jan Jaeger for reporting this bug)
- Clear PMCW correctly during I/O reset
- Change 3270 control unit type to 3274-1D
- Fix restart command broken by 1.37

## What's new in Version 1.37

Release date: 19 Nov 1999

- Storage range display
- EBCDIC character translation of storage displays
- New breakpoint command (contributed by Dan Horak)
- Messages go to log file as well as screen if stdout is redirected
- Fix missing interrupt caused by channel.c failing to obtain device lock before setting interrupt pending
- Fix incorrect cond code 1 in attention SCSW built by console.c
- New Read Channel Path Information service call
- Temporary fix to ckddasd.c multitrack search
- Addition of Read Device Characteristics and Sense Subsystem Status commands for CKD devices
- New DASDPDSU program to unload PDS members from a CKD volume

## What's new in Version 1.36

Release date: 12 Nov 1999

- Clear subchannel instruction
- Correct fault causing control panel display corruption

## What's new in Version 1.35

Release date: 09 Nov 1999

- Improved control panel user interface
- New control panel commands: start, stop, restart, ipl, loadparm
- New loadcore command to load disk image files
- S/370 interval timer
- Allow 31-bit mode linkage in lock instructions
- Support for PCI in ESA/390 mode as well as S/370 mode
- Correct problem causing false channel protection checks

## What's new in Version 1.34

Release date: 29 Oct 1999

- New DASDLOAD program to create a CKD volume from unloaded PDS files
- Correct CKD module to prevent record not found error on multitrack Read Count CCW

## What's new in Version 1.33

Release date: 26 Oct 1999

- Write support for SCSI tapes and AWSTAPE files
- Correct handling of REWIND command for AWSTAPE files
- Correct nasty bug in Subtract Logical instruction (thanks to Roland Goetschi for finding this bug)
- Ensure unique TOD clock values for Store Clock
- Correction to unstacking process for PR instruction
- Implementation of Read Multiple CKD command

## What's new in Version 1.32

Release date: 18 Oct 1999

- Support for virtual tapes in OMA (Optical Media Attach) format
- SCSI tape support (read-only)
- Minor corrections to CKD DASD support

If you have a question about Hercules, see the Hercules Frequently-Asked Questions page.