Skip to content

Commit

Permalink
version 2.12
Browse files Browse the repository at this point in the history
What's new in release 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)
  • Loading branch information
rbowler committed Jun 19, 2012
1 parent 2178a06 commit 5dc2456
Show file tree
Hide file tree
Showing 102 changed files with 16,288 additions and 6,946 deletions.
18 changes: 18 additions & 0 deletions .cvsignore
@@ -0,0 +1,18 @@
hercules
dasdinit
dasdisup
dasdload
dasdpdsu
tapemap
dasdls
hetget
hetmap
hetupd
hercifc
hetinit
cckd2ckd
cckdcdsk
cckdcomp
ckd2cckd
tapecopy
tapesplt
161 changes: 159 additions & 2 deletions CHANGES
@@ -1,5 +1,162 @@
04 May 2001 Correct fbadasd.c syntax error - Greg Smith
04 May 2001 Correct RRB/RRBE rcpkey - Paul Leisy
03 May 2001 Try to open FBA emulated device readonly if open for
readwrite failed. Allows Linux/390 to be installed
from cdrom - Greg Smith
03 May 2001 Allow `readonly' to be specified for shadowed ckd or cckd
devices. Base file will be opened O_RDONLY. - Greg Smith
03 May 2001 Enablement of ISKE/RRBE/SSKE in S/370 mode - Valery Pogonchenko
03 May 2001 Correction to oldpsw during ifetch - Jan Jaeger
30 Apr 2001 Correct SIE guest interrupt subclass enablement - Jan Jaeger
28 Apr 2001 Temporarily intercept move page (SIE) - Jan Jaeger
28 Apr 2001 Add move page to z/Arch - Jan Jaeger
28 Apr 2001 Fix RRBE RCP index error - Paul Leisy
27 Apr 2001 Fix STCM(G) with zero mask - Paul Leisy
26 Apr 2001 Change unsupported config statements erros to warnings - Jan Jaeger
26 Apr 2001 Correct old psw during ifetch exception - Paul Leisy
26 Apr 2001 Correct setting of fetch bit in SSKE under SIE - Paul Leisy
24 Apr 2001 Fixed ckd2cckd bug for multi-file ckd disks - Greg Smith
24 Apr 2001 Added error detection code to ckd2cckd and cckd2ckd - Greg Smith
24 Apr 2001 Fixed potential errors in cckd backwards merge (sf-) - Greg Smith
24 Apr 2001 Reduced CCKD_MAX_DFWQ_DEPTH to 8 for WIN32 otherwise 32 - Greg Smith
22 Apr 2001 cckd2ckd not stopping if -cyl specified - Greg Smith
22 Apr 2001 add ISKE, RRBE and SSKE to 370 mode - Valery Pogonchenko
22 Apr 2001 ckd fix Read Count setting index marker - Valery Pogonchenko
22 Apr 2001 ckd fix processing multitrack read ops - Valery Pogonchenko
22 Apr 2001 cmpsc fixes for expansion - Greg Smith
22 Apr 2001 Correct prefix alignment for ESA/390
guest in 64 bit mode SIE - Jan Jaeger
21 Apr 2001 Added support for muliple files in card reader
21 Apr 2001 Added support auto-padding of ebcdic files in card reader
21 Apr 2001 Added support for builtin tun driver of linux kernel 2.4.x
17 Apr 2001 Fix SSKE rcp guest ref and change bits - Paul Leisy
18 Apr 2001 Fix CPU TIMER interrupt processing - Jan Jaeger
17 Apr 2001 Device I/O thread throttling - Greg Smith & Fish
17 Apr 2001 Fix ISKE rcp index - Paul Leisy
16 Apr 2001 `-malign-double' removed from makefile - Greg Smith
16 Apr 2001 Read-track fix reintroduced after being deprecated - Greg Smith
16 Apr 2001 iobuf in channel.c is now malloc'ed to reduce out of
memory errors under Cygwin - Greg Smith
16 Apr 2001 Reintroduced OPTION_NO_DEVICE_THREAD - Jan Jaeger
15 Apr 2001 featall.h: #define OPTION_NO_IEEE_SUPPORT for WIN32 builds
(<fenv.h> has not been ported by CygWin yet)
13 Apr 2001 Correction to CVDG - Jan Jaeger
09 Apr 2001 Fix intlock access in clock and timer routines - Jan Jaeger
08 Apr 2001 Small optimization of vstore/vfetch - Jan Jaeger
08 Apr 2001 Correction to SIGP Set Architecture Mode - Jan Jaeger
08 Apr 2001 Small optimization of TPI - Jan Jaeger
08 Apr 2001 Correction to SCHM in 64 bit mode - Jan Jaeger
08 Apr 2001 Correction to TB in amode 64 - Jan Jaeger
06 Apr 2001 Read-track released dfwlock too soon when track found
in dfw queue
04 Apr 2001 Sense/Set Path Group ID for DASD - Jan Jaeger
02 Apr 2001 Correction to register unstacking logic - Jan Jaeger
04 Apr 2001 #define MAX_DEVICE_THREAD_IDLE_SECS 300
02 Apr 2001 Fixed device_thread race condition in channel.c
02 Apr 2001 Added support for [Windows] External GUI
01 Apr 2001 Correction to Lock Page - Jan Jaeger
28 Mar 2001 Fix nullification problem in form_stack_entry - Jan Jaeger
27 Mar 2001 Fix exception access id in BSG - Jan Jaeger
27 Mar 2001 Fix exception access id during subspace replacement - Jan Jaeger
27 Mar 2001 Fix translation exception address in ESAME mode - Jan Jaeger
27 Mar 2001 Correction to ckd2cckd for small ckd files - Greg Smith
25 Mar 2001 Correction to LPQ/STPQ - Jan Jaeger
25 Mar 2001 Correction to MVCK/MVCP/MVCS - Jan Jaeger
25 Mar 2001 Dynamic device threads - Jan Jaeger
23 Mar 2001 Set `unit check' status when EOF CKD record read
even if count field is zero - Greg Smith
23 Mar 2001 Bypass number of cylinder check in cckdcdsk.c - Greg Smith
22 Mar 2001 Implement XSTORE in ESAME mode - Jan Jaeger
22 Mar 2001 Implement fast interrupt processing for MCK and PER - Jan Jaeger
22 Mar 2001 Correct interruption identification word - Jan Jaeger
22 Mar 2001 Correct interrupt mask setting in LCTL/LTCLG - Jan Jaeger
22 Mar 2001 Correct SSM/STOSM spec exc in ESAME mode - Jan Jaeger
21 Mar 2001 Correct cache invalidation in PR - Greg Smith
20 Mar 2001 Correction to 64 bit SIGP initial_cpu_reset - Jan Jaeger
18 Mar 2001 Correction to stack types in ESAME mode - Jan Jaeger
18 Mar 2001 Correct LRA/LRAG segment table entry address on cc 3 - Jan Jaeger
18 Mar 2001 Correct address types in move char instructions - Jan Jaeger
18 Mar 2001 Correct subspace_replace address type - Jan Jaeger
16 Mar 2001 Fix to allow HET files to reside on read-only media - Leland Lucius
16 Mar 2001 Fix LPSW in ESAME mode - Jan Jaeger
15 Mar 2001 Compressed CKD utilities now tolerate VM weirdness - Greg Smith
15 Mar 2001 Alternate tracks for compressed CKD volumes - Greg Smith
15 Mar 2001 Utilities display versioning and copyright info - Greg Smith
15 Mar 2001 Invalidate AEA and AIA cache on SIE entry/exit - Jan Jaeger
15 Mar 2001 Present device end on terminating console session - Jan Jaeger
13 Mar 2001 Fix address types in assist/float/ieee instructions - Jan Jaeger
10 Mar 2001 Stop all CPU's in release_config - Jan Jaeger
10 Mar 2001 Fix CPU entering manual state on disabled wait - Jan Jaeger
10 Mar 2001 Various fixes to configurable features logic - Jan Jaeger
08 Mar 2001 Fix ESAME Add/Subtract/Multiply/Divide
when both operands address same register - Jan Jaeger
07 Mar 2001 Correction to MLG/MLGR - Jan Jaeger
07 Mar 2001 Add sh panel command - Bernard van der Helm
07 Mar 2001 Add 9221 power-off diagnose - Jan Jaeger
05 Mar 2001 Correction to RP - Peter Stammbach
05 Mar 2001 Correction to DIAG204 - Jan Jaeger
05 Mar 2001 64 Bit fix to program_return_unstack - Jan Jaeger
05 Mar 2001 SIE corrections to EPSW and STFL - Jan Jaeger
05 Mar 2001 ESAME SIE SKA fix for SSKE/RRBE/ISKE - Jan Jaeger
04 Mar 2001 Multi architecture debug format enhancements - Peter Stammbach
03 Mar 2001 Correct store_psw during SIE interception - Jan Jaeger
03 Mar 2001 Correct trap control block - Roger Bowler
02 Mar 2001 Correction storage key updates by subchannels - Jan Jaeger
01 Mar 2001 Correction to TRAP2/TRAP4 - Paul Leisy
01 Mar 2001 Fix restart in ESAME mode - Jan Jaeger
01 Mar 2001 Correction to SIGP set architecture mode - Jan Jaeger
01 Mar 2001 SIE guest/host storage mapping corrections - Jan Jaeger
01 Mar 2001 Multi architecture fix for device threads - Juergen Dobrinski
28 Feb 2001 Correction to SIE interception parameters - Jan Jaeger
28 Feb 2001 Move Lock Page logic from dat.h to control.c - Jan Jaeger
27 Feb 2001 Add instructions marked N3 to ESA/390 - Jan Jaeger
27 Feb 2001 CVDG/CVBG instructions - Roger Bowler/Jan Jaeger
26 Feb 2001 Fix CDSG nullification on pagefault - Jan Jaeger
26 Feb 2001 Modification to 64 bit SIE - Jan Jaeger
25 Feb 2001 Fix PC/PT ltd origin in 64 bit mode - Jan Jaeger
25 Feb 2001 Improved interrupt processing - Valery Pogonchenko
25 Feb 2001 Fix private space bit to apply to real spaces - Jan Jaeger
25 Feb 2001 Add (incomplete) TRACG instruction - Jan Jaeger
25 Feb 2001 Correction to access register unstacking - Peter Stammbach
24 Feb 2001 Correction to 64bit IDAW's - Peter Stammbach
24 Feb 2001 cckd patches - Greg Smith
24 Feb 2001 Incorrect-Length-Indication-Suppression facility - Jan Jaeger
24 Feb 2001 Correction to interval timer Fix
22 Feb 2001 S/370 interval timer fixes - Mark Gaubatz
22 Feb 2001 64 bit Interpretive Execution (SIE) - Jan Jaeger
22 Feb 2001 Corrections to load_psw and store_psw - Jan Jaeger
22 Feb 2001 Improved address wrapping - Leland Lucius
20 Feb 2001 64 bit opcodes for PLO - Jan Jaeger
19 Feb 2001 Correction IPTE - Jan Jaeger
17 Feb 2001 Corrections to ISKE/IVSK/LCTL/RRBE/STCTL - Roger Bowler
16 Feb 2001 Fix ITF problem on 3390 compressed DASD - Greg Smith
16 Feb 2001 Fix to interception for paging exceptions in SIE - Paul Leisly
16 Feb 2001 IEEE float - Willem Konynenberg
16 Feb 2001 Further 64 bit panel updates - Roger Bowler
16 Feb 2001 Fix to LRA/LRAG - Roger Bowler
15 Feb 2001 64 bit fixes for CKSM, CLCLE, CUSE, CUUTF, CUTFU, TRE - Jan Jaeger
15 Feb 2001 Call s390_load_psw in LPSW in ESAME mode - Jan Jaeger
15 Feb 2001 Additional checking in load_psw in ESAME mode - Roger Bowler
14 Feb 2001 LPM fixes and display subchannel command - Nobumichi Kozawa
14 Feb 2001 64 bit support for panel.c - Roger Bowler
14 Feb 2001 Fix amode64 in load_psw - Ulrich Weigand
14 Feb 2001 64 bit correction to SRST - Jan Jaeger
14 Feb 2001 Correction to DL - Jan Jaeger
13 Feb 2001 Fix RLL/RLLG - Jan Jaeger
13 Feb 2001 Multiply logical (ML/MLR/MLG/MLGR) instructions - Vic Cross
13 Feb 2001 Correction to DL - Vic Cross
13 Feb 2001 Corrections to BRXHG and BRXLG - Jan Jaeger
13 Feb 2001 Add LGH instruction - Jan Jaeger
13 Feb 2001 Patch machine check for z/Arch compliance - Jan Jaeger
12 Feb 2001 Patch store status for z/Arch compliance - Jan Jaeger
11 Feb 2001 Correction to LRAG - Jan Jaeger
11 Feb 2001 Allow use of environment variables to override filenames
of hercules.rc hercules.cnf and hercifc - Jan Jaeger
11 Feb 2001 Various floating additions inclusing EFPC/SRNM
instructions, and data exception code specs - Roger Bowler
11 Feb 2001 Correction to pgmint instruction nullification - Jan Jaeger
10 Feb 2001 NLS support - Roger Bowler
09 Feb 2001 LFPC/SFPC/STFPC IEEE floating point instructions - Jan Jaeger
09 Feb 2001 Fixes to CMPSC - Bernard van der Helm
09 Feb 2001 Extended translation fac. 2 (PKA/PKU/UNPKA/UNPKU) - Roger Bowler
09 Feb 2001 Divide logical (DL/DLR/DLG/DLGR) instructions - Vic Cross
09 Feb 2001 Display instruction operands - Roger Bowler
Expand Down Expand Up @@ -221,7 +378,7 @@
(by Ronen Tzur)
18 Jun 2000 New dasdls command lists the VTOC of a CKD DASD volume
(by Malcolm Beattie)
18 Jun 2000 New AWSTAPE handling commands: tapesplit, tapemap (by Jay Maynard)
18 Jun 2000 New AWSTAPE handling commands: tapesplt, tapemap (by Jay Maynard)
18 Jun 2000 make install target to install in /usr/bin (by Jay Maynard)
03 Jun 2000 Still more multiprocessor improvements (by Jan Jaeger)
03 Jun 2000 Dynamic CPU reconfiguration (by Jan Jaeger)
Expand Down
1 change: 1 addition & 0 deletions _build
@@ -0,0 +1 @@
make -f makefile.w32 HOST_ARCH=`uname -m` DEST=/bin install
2 changes: 2 additions & 0 deletions _build.bat
@@ -0,0 +1,2 @@
bash _build
pause
64 changes: 30 additions & 34 deletions assist.c
@@ -1,4 +1,4 @@
/* ASSIST.C (c) Copyright Roger Bowler, 1999 */
/* ASSIST.C (c) Copyright Roger Bowler, 1999-2001 */
/* ESA/390 MVS Assist Routines */

/*-------------------------------------------------------------------*/
Expand All @@ -8,7 +8,7 @@

/* Instruction decode rework - Jan Jaeger */
/* Correct address wraparound - Jan Jaeger */
/* z/Architecture support - (c) Copyright Jan Jaeger, 1999-2000 */
/* z/Architecture support - (c) Copyright Jan Jaeger, 1999-2001 */
/* Add dummy assist instruction - Jay Maynard, */
/* suggested by Brandon Hill */

Expand Down Expand Up @@ -55,7 +55,7 @@
DEF_INST(svc_assist)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -79,16 +79,16 @@ U32 effective_addr1,
DEF_INST(obtain_local_lock)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */
U32 ascb_addr; /* Virtual address of ASCB */
U32 lock_addr; /* Virtual addr of ASCBLOCK */
VADR ascb_addr; /* Virtual address of ASCB */
VADR lock_addr; /* Virtual addr of ASCBLOCK */
U32 hlhi_word; /* Highest lock held word */
U32 lit_addr; /* Virtual address of lock
VADR lit_addr; /* Virtual address of lock
interface table */
U32 lock; /* Lock value */
U32 lcpa; /* Logical CPU address */
U32 newia; /* Unsuccessful branch addr */
VADR newia; /* Unsuccessful branch addr */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);

Expand Down Expand Up @@ -168,18 +168,18 @@ U32 newia; /* Unsuccessful branch addr */
DEF_INST(release_local_lock)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */
U32 ascb_addr; /* Virtual address of ASCB */
U32 lock_addr; /* Virtual addr of ASCBLOCK */
U32 susp_addr; /* Virtual addr of ASCBLSWQ */
VADR ascb_addr; /* Virtual address of ASCB */
VADR lock_addr; /* Virtual addr of ASCBLOCK */
VADR susp_addr; /* Virtual addr of ASCBLSWQ */
U32 hlhi_word; /* Highest lock held word */
U32 lit_addr; /* Virtual address of lock
VADR lit_addr; /* Virtual address of lock
interface table */
U32 lock; /* Lock value */
U32 susp; /* Lock suspend queue */
U32 lcpa; /* Logical CPU address */
U32 newia; /* Unsuccessful branch addr */
VADR newia; /* Unsuccessful branch addr */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);

Expand Down Expand Up @@ -258,16 +258,16 @@ U32 newia; /* Unsuccessful branch addr */
DEF_INST(obtain_cms_lock)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */
U32 ascb_addr; /* Virtual address of ASCB */
VADR ascb_addr; /* Virtual address of ASCB */
U32 hlhi_word; /* Highest lock held word */
U32 lit_addr; /* Virtual address of lock
VADR lit_addr; /* Virtual address of lock
interface table */
U32 lock_addr; /* Lock address */
VADR lock_addr; /* Lock address */
int lock_arn; /* Lock access register */
U32 lock; /* Lock value */
U32 newia; /* Unsuccessful branch addr */
VADR newia; /* Unsuccessful branch addr */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);

Expand Down Expand Up @@ -347,17 +347,17 @@ U32 newia; /* Unsuccessful branch addr */
DEF_INST(release_cms_lock)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */
U32 ascb_addr; /* Virtual address of ASCB */
VADR ascb_addr; /* Virtual address of ASCB */
U32 hlhi_word; /* Highest lock held word */
U32 lit_addr; /* Virtual address of lock
VADR lit_addr; /* Virtual address of lock
interface table */
U32 lock_addr; /* Lock address */
VADR lock_addr; /* Lock address */
int lock_arn; /* Lock access register */
U32 lock; /* Lock value */
U32 susp; /* Lock suspend queue */
U32 newia; /* Unsuccessful branch addr */
VADR newia; /* Unsuccessful branch addr */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);

Expand Down Expand Up @@ -436,7 +436,7 @@ U32 newia; /* Unsuccessful branch addr */
DEF_INST(trace_svc_interruption)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -458,7 +458,7 @@ U32 effective_addr1,
DEF_INST(trace_program_interruption)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -480,7 +480,7 @@ U32 effective_addr1,
DEF_INST(trace_initial_srb_dispatch)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -502,7 +502,7 @@ U32 effective_addr1,
DEF_INST(trace_io_interruption)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -524,7 +524,7 @@ U32 effective_addr1,
DEF_INST(trace_task_dispatch)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -546,7 +546,7 @@ U32 effective_addr1,
DEF_INST(trace_svc_return)
{
int b1, b2; /* Values of base field */
U32 effective_addr1,
VADR effective_addr1,
effective_addr2; /* Effective addresses */

SSE(inst, execflag, regs, b1, effective_addr1, b2, effective_addr2);
Expand All @@ -565,10 +565,6 @@ U32 effective_addr1,

#if !defined(_GEN_ARCH)

// #define _GEN_ARCH 964
// #include "assist.c"

// #undef _GEN_ARCH
#define _GEN_ARCH 390
#include "assist.c"

Expand Down

0 comments on commit 5dc2456

Please sign in to comment.