Published 2023-08-12.
Time to read: 5 minutes.
mainframe
collection.
The operating systems for IBM's mainframe computers have changed very little over the decades since they were first released. If you are the type of person who is intrigued by the idea of restoring vintage Model T Fords, then the Hercules IBM mainframe emulator is just the toy you need to give yourself for Christmas.
Installing Hercules
Hercules is part of the standard Ubuntu distribution. To install it, simply type the following. Note that this also installs an X-windows emulation of an IBM 3270 terminal:
$ yes | sudo apt install hercules x3270
Old IBM Mainframe OSes
If you want to find old IBM mainframe OSes, look for the term ADCD, which means "Application Developer Controlled Distribution".
IBM OS/390 V2R10 ADCD
A public domain OS from IBM can be obtained from archive.org. An installation script for Hercules is available at GitHub.
This article does not discuss running OS/390 on Hercules.
IBM MVS 3.8j
Version 3.8j of the IBM MVS operating system was originally released in 1981, and the maintenance edition was released in 1985. This later edition of MVS v3.8j is readily available without intellectual property issues as a 228 MB zip file.
This packaging of the IBM operating system has been publicly available since 11/2013,
although it was publicly available for many years before that in a different package.
If you just want to examine its source code without installing anything,
it has been on GitHub since Nov 5, 2020.
If you want to download it, do so on a file system that is case sensitive, such as Linux ext4 or MacOS.
By default, Windows file systems are not case sensitive.
Microsoft Windows Security flags the following file as a dangerous trojan with alert level severe:
pub013.291\
–
“This program is dangerous and executes commands from an attacker.”
The TK4-.JASON.JCC/
directory contains non-IBM software and should be deleted.
To do this after cloning, on a non-Windows machine, type:
$ rm -rf pub013.291/TK4-.JASON.JCC
You can download the MVS_TK4- Users Manual.
The site holding the MVS download, https://wotho.ethz.ch/tk4-/
, sometimes
goes offline for
extended periods.
However, I found the same MVS zip file
here.
The file has this comment:
Modifications to IBM's MVS 3.8j operating system (delivered via turnkey-mvs) to add some z/OS (MVS/XA, OS/390) functionality, especially 31-bit addressing.
Here is a related GitHub project, tk4rob
.
This repository is intended to collect bug reports, feature requests, and general questions related to Rob Prins's update for the MVS 3.8 TK4- Turnkey System created by Jürgen Winkelmann... This repository aims to provide a space for users of the Rob Prins version of MVS 3.8J TK4- to report issues, suggest new features, and ask general questions about the system.
I found what appears to be the same version on the Open Source Development Network (OSDN) website:
mvs380-2_0.zip
.
There is a course on Udemy called The Complete Mainframe Professional Course which uses this downloadable version of MVS and Hercules.
Installing IBM MVS 3.8j
To install the operating system on Hercules,
as it would have run on 24-bit IBM 3033 mainframes,
simply unzip tk4-_v1.00_current.zip
to a directory.
Page 7 of the Users Manual refers to the unzip directory as
the “tk4-
folder”.
I downloaded and unzipped to /var/tk4-
as follows:
$ cd /var $ sudo mkdir tk4- $ sudo chmod 777 tk4- $ cd tk4- $ wget --no-check-certificate \ -P . \ https://wotho.ethz.ch/tk4-/tk4-_v1.00_current.zip $ unzip tk4-_v1.00_current.zip
The top-level directories resulting from the unzip
in /var/work/tk4/tk4-_v1.00_current
are:
$ tree -dL 2 . ├── conf │ └── tk4-_updates ├── ctca_demo │ ├── conf │ ├── log_1 │ ├── log_2 │ ├── logo │ ├── prt_1 │ ├── prt_2 │ ├── rdr │ ├── scripts │ └── sysgen ├── dasd ├── doc ├── hercules │ ├── darwin │ ├── httproot │ ├── linux │ ├── patches │ ├── source │ └── windows ├── jcl ├── local_conf ├── local_scripts ├── log ├── pch ├── prt ├── rdr ├── scripts │ └── tk4-_updates ├── tapes └── unattended
Hercules Configuration
These manual steps can be used to start MVS on Hercules:
$ cd tk4-_v1.00_current
$ pwd /var/work/tk4/tk4-_v1.00_current
$ mkdir log
$ echo "CONSOLE" > unattended/mode
$ ./mvs
For convenience, I define an environment variable called mvs
with the directory that hercules with mvs lives in:
export mvs=/var/work/tk4/tk4-_v1.00_current
This Bash script launches Hercules by performing the above steps. You might need to change the directory in the script for your system.
#!/bin/bash cd /var/work/tk4/tk4-_v1.00_current # Change this to suit your needs mkdir -p log echo "CONSOLE" > unattended/mode ./mvs
Booting Up Hercules
Now launch MVS on Hercules:
$ mvs HHC01413I Hercules version 4.00 HHC01414I (c) Copyright 1999-2012 by Roger Bowler, Jan Jaeger, and others HHC01415I Built on Jun 23 2016 at 20:32:29 HHC01416I Build information: HHC01417I Hercules for TK4- (64-bit Linux) HHC01417I Modes: S/370 ESA/390 z/Arch HHC01417I Max CPU Engines: 8 HHC01417I Using setresuid() for setting privileges HHC01417I Using POSIX threads Threading Model HHC01417I Using Error-Checking Mutex Locking Model HHC01417I With Dynamic loading support HHC01417I Using shared libraries HHC01417I With External GUI support HHC01417I With IPV6 support HHC01417I With HTTP Server support HHC01417I With sqrtl support HHC01417I With SIGABEND handler HHC01417I With CCKD BZIP2 support HHC01417I With HET BZIP2 support HHC01417I With ZLIB support HHC01417I With Regular Expressions support HHC01417I Without Object REXX support HHC01417I Without Regina REXX support HHC01417I With Automatic Operator support HHC01417I With National Language Support HHC01417I Machine dependent assists: cmpxchg1 cmpxchg4 cmpxchg8 HHC01417I Running on gojira Linux-6.2.0-27-generic. #28-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 12 22:39:5, x86_64 MP=8 HHC01413I Hercules version 4.00 HHC01414I (c) Copyright 1999-2012 by Roger Bowler, Jan Jaeger, and others HHC01415I Built on Jun 23 2016 at 20:32:29 HHC01416I Build information: HHC01417I Hercules for TK4- (64-bit Linux) HHC01417I Modes: S/370 ESA/390 z/Arch HHC01417I Max CPU Engines: 8 HHC01417I Using setresuid() for setting privileges HHC01417I Using POSIX threads Threading Model HHC01417I Using Error-Checking Mutex Locking Model HHC01417I With Dynamic loading support HHC01417I Using shared libraries HHC01417I With External GUI support HHC01417I With IPV6 support HHC01417I With HTTP Server support HHC01417I With sqrtl support HHC01417I With SIGABEND handler HHC01417I With CCKD BZIP2 support HHC01417I With HET BZIP2 support HHC01417I With ZLIB support HHC01417I With Regular Expressions support HHC01417I Without Object REXX support HHC01417I Without Regina REXX support HHC01417I With Automatic Operator support HHC01417I With National Language Support HHC01417I Machine dependent assists: cmpxchg1 cmpxchg4 cmpxchg8 HHC01417I Running on gojira Linux-6.2.0-27-generic. #28-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 12 22:39:5, x86_64 MP=8 HHC00100I Thread id 7F71411FF6C0, prio 15, name Processor CP00 started HHC00100I Thread id 7F7140DFF6C0, prio 0, name Timer started HHC00811I Processor CP00: architecture mode z/Arch HHC00136W Error in function setenv(): cannot set CUU: Not thread safe--setting disabled HHC01802I HTTP server using root directory /var/tk4-/hercules/httproot/ HHC01807I HTTP server signaled to start HHC00100I Thread id 7F71409FF6C0, prio 4, name HTTP server started HHC01802I HTTP server using root directory /var/tk4-/hercules/httproot/ HHC01803I HTTP server waiting for requests on port 8038 HHC01042I 0:000C COMM: device bound to socket 3505 HHC00100I Thread id 7F71405FF6C0, prio 0, name Socket device listener started HHC01437I Config file[45] conf/tk4-.cnf: including file conf/intcons.cnf HHC00100I Thread id 7F71401FF6C0, prio 4, name Console connection started HHC01024I Waiting for console connections on port 3270 HHC01437I Config file[71] conf/tk4-.cnf: including file conf/tk4-_default.cnf HHC00971I 0:0610 CTC: connect to 127.0.0.1:18610 failed, starting server HHC00971I 0:0611 CTC: connect to 127.0.0.1:18611 failed, starting server HHC00100I Thread id 7F713A3FF6C0, prio 0, name 3705 device(1:0660) thread started HHC01004I 0:0660 COMM: listening on port 37051 for incoming TCP connections HHC01004I 0:0661 COMM: listening on port 37052 for incoming TCP connections HHC00100I Thread id 7F7139BFF6C0, prio 0, name 3705 device(1:0661) thread started HHC01004I 0:0662 COMM: listening on port 37053 for incoming TCP connections HHC00100I Thread id 7F71393FF6C0, prio 0, name 3705 device(1:0662) thread started HHC01004I 0:0663 COMM: listening on port 37054 for incoming TCP connections HHC00100I Thread id 7F7138BFF6C0, prio 0, name 3705 device(1:0663) thread started HHC01004I 0:0664 COMM: listening on port 37055 for incoming TCP connections HHC00100I Thread id 7F71386FE6C0, prio 0, name 3705 device(1:0664) thread started HHC01004I 0:0665 COMM: listening on port 37056 for incoming TCP connections HHC00100I Thread id 7F71384FC6C0, prio 0, name 3705 device(1:0665) thread started HHC01004I 0:0666 COMM: listening on port 37057 for incoming TCP connections HHC00100I Thread id 7F71382FA6C0, prio 0, name 3705 device(1:0666) thread started HHC01004I 0:0667 COMM: listening on port 37058 for incoming TCP connections HHC00100I Thread id 7F70E3FFF6C0, prio 0, name 3705 device(1:0667) thread started HHC01004I 0:0668 COMM: listening on port 37911 for incoming TCP connections HHC00100I Thread id 7F70E3DFD6C0, prio 0, name 3705 device(1:0668) thread started HHC01004I 0:0669 COMM: listening on port 37912 for incoming TCP connections HHC00100I Thread id 7F70E3BFB6C0, prio 0, name 3705 device(1:0669) thread started HHC01004I 0:066A COMM: listening on port 37913 for incoming TCP connections HHC00100I Thread id 7F70E39F96C0, prio 0, name 3705 device(1:066A) thread started HHC01004I 0:066B COMM: listening on port 37914 for incoming TCP connections HHC00100I Thread id 7F70E37F76C0, prio 0, name 3705 device(1:066B) thread started HHC00100I Thread id 7F70E33FF6C0, prio 4, name 0:0670 communication thread started HHC01004I 0:0670 COMM: listening on port 37801 for incoming TCP connections HHC00100I Thread id 7F70E32FE6C0, prio 4, name 0:0671 communication thread started HHC01004I 0:0671 COMM: listening on port 37802 for incoming TCP connections HHC00100I Thread id 7F70E31FD6C0, prio 4, name 0:0672 communication thread started HHC01004I 0:0672 COMM: listening on port 37803 for incoming TCP connections HHC00100I Thread id 7F70E30FC6C0, prio 4, name 0:0673 communication thread started HHC01004I 0:0673 COMM: listening on port 37804 for incoming TCP connections HHC00100I Thread id 7F70E2FFB6C0, prio 4, name 0:0680 communication thread started HHC01004I 0:0680 COMM: listening on port 33351 for incoming TCP connections HHC00100I Thread id 7F70E2EFA6C0, prio 4, name 0:0681 communication thread started HHC01004I 0:0681 COMM: listening on port 33352 for incoming TCP connections HHC00100I Thread id 7F70E2DF96C0, prio 4, name 0:0682 communication thread started HHC01004I 0:0682 COMM: listening on port 33353 for incoming TCP connections HHC00100I Thread id 7F70E2CF86C0, prio 4, name 0:0683 communication thread started HHC01004I 0:0683 COMM: listening on port 33354 for incoming TCP connections HHC00100I Thread id 7F70E2BF76C0, prio 4, name 0:0688 communication thread started HHC01004I 0:0688 COMM: listening on port 27411 for incoming TCP connections HHC00100I Thread id 7F70E2AF66C0, prio 4, name 0:0689 communication thread started HHC01004I 0:0689 COMM: listening on port 27412 for incoming TCP connections HHC00100I Thread id 7F70E29F56C0, prio 4, name 0:068A communication thread started HHC01004I 0:068A COMM: listening on port 27413 for incoming TCP connections HHC00100I Thread id 7F70E28F46C0, prio 4, name 0:068B communication thread started HHC01004I 0:068B COMM: listening on port 27414 for incoming TCP connections HHC00100I Thread id 7F70E27F36C0, prio 4, name 0:068C communication thread started HHC01004I 0:068C COMM: listening on port 27415 for incoming TCP connections HHC00100I Thread id 7F70E26F26C0, prio 4, name 0:068D communication thread started HHC01004I 0:068D COMM: listening on port 27416 for incoming TCP connections HHC00100I Thread id 7F70E25F16C0, prio 4, name 0:068E communication thread started HHC01004I 0:068E COMM: listening on port 27417 for incoming TCP connections HHC00100I Thread id 7F70E24F06C0, prio 4, name 0:068F communication thread started HHC01004I 0:068F COMM: listening on port 27418 for incoming TCP connections HHC00414I 0:0152 CKD file dasd/hasp00.152: cyls 411 heads 19 tracks 7809 trklen 13312 HHC00414I 0:0191 CKD file dasd/mvscat.191: cyls 1114 heads 15 tracks 16710 trklen 56832 HHC00414I 0:0248 CKD file dasd/mvsdlb.248: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0148 CKD file dasd/mvsres.148: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0160 CKD file dasd/page00.160: cyls 698 heads 12 tracks 8376 trklen 8704 HHC00414I 0:0161 CKD file dasd/page01.161: cyls 698 heads 12 tracks 8376 trklen 8704 HHC00414I 0:0240 CKD file dasd/pub000.240: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0241 CKD file dasd/pub010.241: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0270 CKD file dasd/pub001.270: cyls 960 heads 12 tracks 11520 trklen 35840 HHC00414I 0:0271 CKD file dasd/pub011.271: cyls 960 heads 12 tracks 11520 trklen 35840 HHC00414I 0:0280 CKD file dasd/pub002.280: cyls 1772 heads 15 tracks 26580 trklen 47616 HHC00414I 0:0281 CKD file dasd/pub012.281: cyls 1772 heads 15 tracks 26580 trklen 47616 HHC00414I 0:0290 CKD file dasd/pub003.290: cyls 1114 heads 15 tracks 16710 trklen 56832 HHC00414I 0:0291 CKD file dasd/pub013.291: cyls 2047 heads 15 tracks 30705 trklen 56832 HHC00414I 0:0149 CKD file dasd/smp001.149: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:014A CKD file dasd/smp002.14a: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:014B CKD file dasd/smp003.14b: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:014C CKD file dasd/smp004.14c: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0131 CKD file dasd/sort01.131: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0132 CKD file dasd/sort02.132: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0133 CKD file dasd/sort03.133: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0134 CKD file dasd/sort04.134: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0135 CKD file dasd/sort05.135: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0136 CKD file dasd/sort06.136: cyls 203 heads 20 tracks 4060 trklen 7680 HHC00414I 0:0140 CKD file dasd/work00.140: cyls 560 heads 30 tracks 16800 trklen 19456 HHC00414I 0:0170 CKD file dasd/work01.170: cyls 960 heads 12 tracks 11520 trklen 35840 HHC00414I 0:0180 CKD file dasd/work02.180: cyls 886 heads 15 tracks 13290 trklen 47616 HHC00414I 0:0190 CKD file dasd/work03.190: cyls 1114 heads 15 tracks 16710 trklen 56832 HHC01437I Config file[106] conf/tk4-.cnf: including file conf/cbt_dasd.cnf HHC01437I Config file[110] conf/tk4-.cnf: including file conf/source_dasd.cnf HHC01437I Config file[114] conf/tk4-.cnf: including file conf/tk4-_updates.cnf HHC01437I Config file[10] conf/tk4-.cnf: including file conf/tk4-_updates/01 HHC01437I Config file[11] conf/tk4-.cnf: including file conf/tk4-_updates/02 HHC01437I Config file[12] conf/tk4-.cnf: including file conf/tk4-_updates/03 HHC01437I Config file[13] conf/tk4-.cnf: including file conf/tk4-_updates/04 HHC01437I Config file[14] conf/tk4-.cnf: including file conf/tk4-_updates/05 HHC01437I Config file[15] conf/tk4-.cnf: including file conf/tk4-_updates/06 HHC01437I Config file[16] conf/tk4-.cnf: including file conf/tk4-_updates/07 HHC01437I Config file[17] conf/tk4-.cnf: including file conf/tk4-_updates/08 HHC01437I Config file[18] conf/tk4-.cnf: including file conf/tk4-_updates/09 HHC01437I Config file[19] conf/tk4-.cnf: including file conf/tk4-_updates/10 HHC01437I Config file[118] conf/tk4-.cnf: including file conf/local.cnf HHC01437I Config file[10] conf/tk4-.cnf: including file local_conf/01 HHC01437I Config file[11] conf/tk4-.cnf: including file local_conf/02 HHC01437I Config file[12] conf/tk4-.cnf: including file local_conf/03 HHC01437I Config file[13] conf/tk4-.cnf: including file local_conf/04 HHC01437I Config file[14] conf/tk4-.cnf: including file local_conf/05 HHC01437I Config file[15] conf/tk4-.cnf: including file local_conf/06 HHC01437I Config file[16] conf/tk4-.cnf: including file local_conf/07 HHC01437I Config file[17] conf/tk4-.cnf: including file local_conf/08 HHC01437I Config file[18] conf/tk4-.cnf: including file local_conf/09 HHC01437I Config file[19] conf/tk4-.cnf: including file local_conf/10 HHC02260I Script 1: begin processing file scripts/ipl.rc HHC01603I hao tgt MVS038J HHC00077I The target was placed at index 0 HHC01603I hao cmd script scripts/tk4-.rc HHC00077I The command was placed at index 0 HHC00100I Thread id 7F70E22EE6C0, prio 0, name Hercules Automatic Operator started HHC01603I hao tgt IEA101A HHC00077I The target was placed at index 1 HHC01603I hao cmd script ${SCR101A:=scripts}/SCR101A_${REP101A:=default}${CMD101A} HHC00077I The command was placed at index 1 HHC01603I hao tgt IEA305A HHC00077I The target was placed at index 2 HHC01603I hao cmd script ${SCR101A:=scripts}/SCR101A_${REP101A:=default}${CMD101A} HHC00077I The command was placed at index 2 HHC01603I * pausing for a few seconds, please stand by. HHC01603I maxrates HHC02272I Highest observed MIPS and IO/s rates: HHC02272I From Wed Dec 31 19:00:00 1969 to Sat Aug 12 12:03:42 2023 HHC02272I MIPS: 0.00 HHC02272I IO/s: 0 HHC02272I Current interval is 1440 minutes HHC01603I ipl 148 HHC01603I * pausing for a few seconds, please stand by. HHC00811I Processor CP00: architecture mode S/370 IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 .VS2 HHC00081I Match at index 01, executing command script scripts/SCR101A_default HHC01603I script scripts/SCR101A_default HHC00010A Enter input for console 0:0009 HHC02260I Script 2: begin processing file scripts/SCR101A_default HHC01603I * IEA101A just to make sure HAO gets it HHC00081I Match at index 01, executing command script scripts/SCR101A_default HHC01603I script scripts/SCR101A_default HHC02260I Script 3: begin processing file scripts/SCR101A_default HHC00008I / HHC02264I Script 2: file scripts/SCR101A_default processing ended HHC00100I Thread id 7F70E20EC6C0, prio 15, name Read-ahead thread-1 started HHC00100I Thread id 7F70E1EEA6C0, prio 15, name Read-ahead thread-2 started HHC00100I Thread id 7F70E1DE96C0, prio 16, name Writer thread-1 started HHC00100I Thread id 7F70E1CE86C0, prio 16, name Garbage collector started IEA940I THE FOLLOWING PAGE DATA SETS ARE IN USE PLPA ... SYS1.PAGELPA COMMON . SYS1.PAGECSA DUPLEX . SYS1.DUPLEX LOCAL .. SYS1.PAGEL01 LOCAL .. SYS1.PAGEL02 IGF992I MIH INIT COMPLETE, PRI=000300, SEC=000015 IEE360I SMF NOW RECORDING ON SYS1.MANX ON MVSRES TIME=17.03.49 RAKF is based on the ESG Security System written by Craig J. Yasuna (Mar 1991) adapted to MVS 3.8J: A. Philip Dickinson (Aug 2005) Phil Roberts (Apr 2011) Juergen Winkelmann (Apr 2011) RAKF001I RAKF is now being activated RCVT WAS PROCESSED SUCCESSFULLY RAKF003I RAKF is now active RAKFPROF7 RAKF PROFILES UPDATED RAKFUIDS4 USER TABLE UPDATED IEF677I WARNING MESSAGE(S) FOR JOB JES2 ISSUED $HASP493 JES2 QUICK-START IS IN PROGRESS $HASP412 MAXIMUM OF 1 READER(S) EXCEEDED $HASP412 MAXIMUM OF 1 PUNCH(ES) EXCEEDED $HASP412 MAXIMUM OF 3 PRINTER(S) EXCEEDED IEE041I THE SYSTEM LOG IS NOW ACTIVE IEE341I BSPPILOT NOT ACTIVE $HASP160 PUNCH1 INACTIVE - CLASS=B $HASP250 SYSLOG IS PURGED $HASP100 BSPPILOT ON STCINRDR $HASP373 BSPPILOT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP100 BSPSETPF ON STCINRDR $HASP309 INIT 1 INACTIVE ******** C=A $HASP309 INIT 2 INACTIVE ******** C=BA $HASP309 INIT 3 INACTIVE ******** C=HBA $HASP373 BSPSETPF STARTED $HASP309 INIT 4 INACTIVE ******** C=SHB $HASP309 INIT 5 INACTIVE ******** C=SBA $HASP309 INIT 6 INACTIVE ******** C=SC BSPSP91I - Parms passed: NOREPLYU BSPSP93I - PFK definitions will be updated in memory BSPSP22I - Dataset processed: SYS1.PARMLIB BSPSP23I - on volume MVSRES BSPSP21I - Member being processed: SETPFK01 +BSPSP98I - Member processed, LASTCC=0000 +BSPSP21I - Member being processed: SETPFK02 +BSPSP98I - Member processed, LASTCC=0000 +BSPSP99I - End of processing, MAXRC=0000 $HASP395 BSPSETPF ENDED HHC00008I / HHC01603I hao tgt HHC00010A HHC02264I Script 3: file scripts/SCR101A_default processing ended HHC00077I The target was placed at index 3 HHC01603I hao cmd script scripts/SCR00010A HHC00077I The command was placed at index 3 HHC00010A Enter input for console 0:0009 HHC00081I Match at index 03, executing command script scripts/SCR00010A HHC01603I script scripts/SCR00010A HHC02260I Script 4: begin processing file scripts/SCR00010A HHC00100I Thread id 7F70E13DF6C0, prio 16, name Writer thread-2 started HHC00008I /d t HHC00008I /d t HHC02264I Script 1: file scripts/ipl.rc processing ended HHC02264I Script 4: file scripts/SCR00010A processing ended IEE136I TIME=17.03.53 DATE=23.224 +BSPPILOT - Running script STARTSTD +BSPRS22I - Dataset processed: SYS1.PARMLIB +BSPRS23I - on volume MVSRES +BSPRS08I - PARM NOECHO IEE302I 480 ONLINE $HASP100 DYNAMASK ON STCINRDR $HASP373 DYNAMASK STARTED IEF403I DYNAMASK - STARTED - TIME=17.04.19 DMSK00I DYNAMASK DONE **** DMSK06I START IEF404I DYNAMASK - ENDED - TIME=17.04.19 $HASP395 DYNAMASK ENDED $HASP100 NET ON STCINRDR $HASP373 NET STARTED IEF403I NET - STARTED - TIME=17.04.21 $HASP100 TP ON STCINRDR $HASP373 TP STARTED IEF403I TP - STARTED - TIME=17.04.21 $HASP100 MF1 ON STCINRDR $HASP373 MF1 STARTED IEF403I MF1 - STARTED - TIME=17.04.22 IRB100I MF/1 IS ACTIVE $HASP000 OK 17.04.22 IEF236I ALLOC. FOR JES2 JES2 17.04.22 IEF237I 00E ALLOCATED TO PRINTER1 17.04.22 STC 28 $HASP150 MF1 ON PRINTER1 13 LINES 17.04.22 STC 28 *$HASP190 MF1 SETUP -- PRINTER1 -- F = 0001 -- C = 6 -- T = QN 17.04.22 $HASP160 PRINTER1 INACTIVE - CLASS=A 17.04.22 IEF236I ALLOC. FOR JES2 JES2 17.04.22 IEF237I 00F ALLOCATED TO PRINTER2 17.04.22 STC 24 $HASP150 BSPSETPF ON PRINTER2 32 LINES 17.04.22 STC 24 *$HASP190 BSPSETPF SETUP -- PRINTER2 -- F = 0001 -- C = 6 -- T = QN 17.04.22 STC 25 $HASP150 DYNAMASK ON PRINTER2 28 LINES 17.04.22 STC 24 $HASP250 BSPSETPF IS PURGED 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB 17.04.22 $HASP160 PRINTER2 INACTIVE - CLASS=Z 17.04.22 STC 25 $HASP250 DYNAMASK IS PURGED 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAK IN VTAMLIB 17.04.22 STC 26 IST025I BLDL FAILED FOR IEDIAK IN VTAMLIB 17.04.22 IEF236I ALLOC. FOR JES2 JES2 17.04.22 IEF237I 002 ALLOCATED TO PRINTER3 17.04.22 $HASP160 PRINTER3 INACTIVE - CLASS=X 17.04.22 STC 26 IST110I NETWORK SOLICITOR STARTED 17.04.22 STC 26 IST093I ATSO ACTIVE 17.04.22 STC 26 IST093I ASNASOL ACTIVE 17.04.22 STC 26 IST093I AJRP ACTIVE 17.04.22 STC 26 IST093I L3274 ACTIVE 17.04.22 STC 26 IST093I L3791 ACTIVE 17.04.22 STC 26 IST093I S3705 ACTIVE 17.04.22 STC 29 $HASP100 TSO ON STCINRDR 17.04.22 STC 29 $HASP373 TSO STARTED 17.04.22 STC 29 IEF403I TSO - STARTED - TIME=17.04.22 17.04.22 STC 26 IST020I VTAM INITIALIZATION COMPLETE 17.04.22 STC 26 IEA000I 0C0,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C1,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C2,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C3,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C4,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C5,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IEA000I 0C6,IOE,05,0200,400000000001,,,NET ,17.04.22 17.04.22 STC 26 IFL003I IFLOADRN COMPLETED 17.04.22 STC 26 IST270I 370X N07 NOW LOADED WITH LOADMOD N07 17.04.23 STC 29 IKT007I TCAS ACCEPTING LOGONS 17.04.23 STC 29 IKT005I TCAS IS INITIALIZED 17.04.24 STC 27 IKJ019I TIME SHARING IS INITIALIZED 17.04.26 STC 30 $HASP100 SNASOL ON STCINRDR 17.04.26 STC 30 $HASP373 SNASOL STARTED 17.04.26 STC 30 IEF403I SNASOL - STARTED - TIME=17.04.26 17.04.26 STC 31 $HASP100 JRP ON STCINRDR 17.04.26 STC 31 $HASP373 JRP STARTED 17.04.26 STC 31 IEF403I JRP - STARTED - TIME=17.04.26 17.04.26 STC 30 +SNASOL - APPLICATION SNASOL IS UP 17.04.26 STC 31 JRPI101 INITIALIZATION COMPLETE 17.04.26 STC 31 JRP904I - JRP WAITING FOR COMMAND. 17.04.27 STC 26 IFL003I IFLOADRN COMPLETED 17.04.27 STC 26 IST270I 370X N10 NOW LOADED WITH LOADMOD N10 17.04.27 STC 26 IST093I N07 ACTIVE 17.04.28 STC 26 IST093I N07P3 ACTIVE 17.04.28 STC 26 IST093I N08 ACTIVE 17.04.32 STC 26 IFL003I IFLOADRN COMPLETED 17.04.32 STC 26 IST270I 370X N12 NOW LOADED WITH LOADMOD N12 17.04.33 STC 26 IST093I N10 ACTIVE 17.04.33 STC 26 IST093I N10P3 ACTIVE 17.04.33 STC 26 IST093I N11 ACTIVE 17.04.38 STC 26 IFL003I IFLOADRN COMPLETED 17.04.38 STC 26 IST270I 370X N14 NOW LOADED WITH LOADMOD N14 17.04.38 STC 26 IST093I N12 ACTIVE 17.04.38 STC 26 IST093I N12P3 ACTIVE 17.04.38 STC 26 IST093I N13 ACTIVE 17.04.43 STC 26 IST093I N14 ACTIVE 17.04.43 STC 26 IST093I N14P3 ACTIVE 17.04.43 STC 26 IST093I N15 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767S11 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767S21 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767S31 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767S41 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278S11 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278S21 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278S31 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278S41 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278L11 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3278L21 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767L31 ACTIVE 17.04.46 STC 26 IST097I VARY ACCEPTED 17.04.46 STC 26 IST093I T3767L41 ACTIVE 17.04.51 STC 27 IED160I 3705 T07 LOAD=T07 17.04.54 STC 27 IED160I 3705 T10 LOAD=T10 17.04.57 STC 27 IED160I 3705 T12 LOAD=T12 17.05.00 STC 27 IED160I 3705 T14 LOAD=T14 17.05.04 STC 27 IED382I T07 ACTIVATE COMPLETE 17.05.07 STC 27 IED382I T10 ACTIVATE COMPLETE 17.05.10 STC 27 IED382I T12 ACTIVATE COMPLETE 17.05.13 STC 27 IED382I T14 ACTIVATE COMPLETE 17.05.14 STC 32 $HASP100 INISDSTD ON STCINRDR 17.05.14 MVS038J MVS 3.8j TK4- system initialization complete CN=00 HHC00081I Match at index 00, executing command script scripts/tk4-.rc HHC01603I script scripts/tk4-.rc HHC02260I Script 5: begin processing file scripts/tk4-.rc 17.05.14 STC 32 $HASP373 INISDSTD STARTED 17.05.14 STC 32 IEF403I INISDSTD - STARTED - TIME=17.05.14 17.05.14 STC 17 +BSPRS99I - End of processing, MAXRC=0000 17.05.15 STC 32 IEF404I INISDSTD - ENDED - TIME=17.05.15 17.05.15 STC 32 $HASP395 INISDSTD ENDED 17.05.15 STC 32 $HASP150 INISDSTD ON PRINTER2 21 LINES 17.05.15 $HASP160 PRINTER2 INACTIVE - CLASS=Z 17.05.15 STC 32 $HASP250 INISDSTD IS PURGED HHC01603I script scripts/tk4-_updates.rc HHC02260I Script 5: begin processing file scripts/tk4-_updates.rc HHC01603I script scripts/tk4-_updates/01 HHC02260I Script 5: begin processing file scripts/tk4-_updates/01 HHC02264I Script 5: file scripts/tk4-_updates/01 processing ended HHC01603I script scripts/tk4-_updates/02 HHC02260I Script 5: begin processing file scripts/tk4-_updates/02 HHC02264I Script 5: file scripts/tk4-_updates/02 processing ended HHC01603I script scripts/tk4-_updates/03 HHC02260I Script 5: begin processing file scripts/tk4-_updates/03 HHC02264I Script 5: file scripts/tk4-_updates/03 processing ended HHC01603I script scripts/tk4-_updates/04 HHC02260I Script 5: begin processing file scripts/tk4-_updates/04 HHC02264I Script 5: file scripts/tk4-_updates/04 processing ended HHC01603I script scripts/tk4-_updates/05 HHC02260I Script 5: begin processing file scripts/tk4-_updates/05 HHC02264I Script 5: file scripts/tk4-_updates/05 processing ended HHC01603I script scripts/tk4-_updates/06 HHC02260I Script 5: begin processing file scripts/tk4-_updates/06 HHC02264I Script 5: file scripts/tk4-_updates/06 processing ended HHC01603I script scripts/tk4-_updates/07 HHC02260I Script 5: begin processing file scripts/tk4-_updates/07 HHC02264I Script 5: file scripts/tk4-_updates/07 processing ended HHC01603I script scripts/tk4-_updates/08 HHC02260I Script 5: begin processing file scripts/tk4-_updates/08 HHC02264I Script 5: file scripts/tk4-_updates/08 processing ended HHC01603I script scripts/tk4-_updates/09 HHC02260I Script 5: begin processing file scripts/tk4-_updates/09 HHC02264I Script 5: file scripts/tk4-_updates/09 processing ended HHC01603I script scripts/tk4-_updates/10 HHC02260I Script 5: begin processing file scripts/tk4-_updates/10 HHC02264I Script 5: file scripts/tk4-_updates/10 processing ended HHC02264I Script 5: file scripts/tk4-_updates.rc processing ended HHC01603I ${LOCALRC:=script scripts/local.rc} HHC02260I Script 5: begin processing file scripts/local.rc HHC01603I script local_scripts/01 HHC02260I Script 5: begin processing file local_scripts/01 HHC02264I Script 5: file local_scripts/01 processing ended HHC01603I script local_scripts/02 HHC02260I Script 5: begin processing file local_scripts/02 HHC02264I Script 5: file local_scripts/02 processing ended HHC01603I script local_scripts/03 HHC02260I Script 5: begin processing file local_scripts/03 HHC02264I Script 5: file local_scripts/03 processing ended HHC01603I script local_scripts/04 HHC02260I Script 5: begin processing file local_scripts/04 HHC02264I Script 5: file local_scripts/04 processing ended HHC01603I script local_scripts/05 HHC02260I Script 5: begin processing file local_scripts/05 HHC02264I Script 5: file local_scripts/05 processing ended HHC01603I script local_scripts/06 HHC02260I Script 5: begin processing file local_scripts/06 HHC02264I Script 5: file local_scripts/06 processing ended HHC01603I script local_scripts/07 HHC02260I Script 5: begin processing file local_scripts/07 HHC02264I Script 5: file local_scripts/07 processing ended HHC01603I script local_scripts/08 HHC02260I Script 5: begin processing file local_scripts/08 HHC02264I Script 5: file local_scripts/08 processing ended HHC01603I script local_scripts/09 HHC02260I Script 5: begin processing file local_scripts/09 HHC02264I Script 5: file local_scripts/09 processing ended HHC01603I script local_scripts/10 HHC02260I Script 5: begin processing file local_scripts/10 HHC02264I Script 5: file local_scripts/10 processing ended HHC02264I Script 5: file scripts/local.rc processing ended
Boot up will take at least 30 seconds. Leave it alone until the signon logo is prominently displayed:
HHC01603I *
HHC01603I * ************ **** ***** ||
HHC01603I * ** ** ** ** ** |||
HHC01603I * ** ** ** ** ** ||||
HHC01603I * ** ** ** || ||
HHC01603I * |l _,,,---,,_ ** ** ** || ||
HHC01603I * ZZZzz /,'.-'`' -. ;-;;, ** **** || ||
HHC01603I * |,4- ) )-,_. ,( ( ''-' ** ***** || ||
HHC01603I * '---''(_/--' `-')_) ** ** ** || || ||||||||||
HHC01603I * ** ** ** ||||||||||| Update 08
HHC01603I * The MVS 3.8j ** ** ** ||
HHC01603I * Tur(n)key System ** ** ** ||
HHC01603I * ****** **** *** ||||||
HHC01603I *
HHC01603I * TK3 created by Volker Bandke vbandke@bsp-gmbh.com
HHC01603I * TK4- update by Juergen Winkelmann winkelmann@id.ethz.ch
HHC01603I * see TK4-.CREDITS for complete credits
HHC01603I *
HHC02264I Script 5: file scripts/tk4-.rc processing ended
When Hercules finally completes the startup process, the second last line at the bottom of the console will contain a prompt where you can enter commands:
herc =====>
MVS is now accessible on port 3270 (of course!)
To stop Hercules, type exit
at the Hercules prompt.
Shutdown can take a long time, so be patient.
User IDs and Passwords
-
HERC01
is a fully authorized user with full access to theRAKF
users andprofiles
tables. The logon password isCUL8TR
. -
HERC02
is a fully authorized user without access to theRAKF
users andprofiles
tables. The logon password isCUL8TR
. -
HERC03
is a regular user. The logon password isPASS4U
. -
HERC04
is a regular user. The logon password isPASS4U
. -
IBMUSER
is a fully authorized user without access to theRAKF
users andprofiles
tables. The logon password isIBMPASS
. This account is meant to be used for recovery purposes only.
MVS_TK4- Users Manual
3270 Emulators
A 3270 emulator is necessary to interact with the emulated IBM MVS system.
X3270
is a family of 3270 emulators.
I could not get the X Windows application (x3270
)
to display properly on my 4K monitor,
even when I specified Windows HiDpi and X Windows scaling options.
However, wx3270 v1.1ga9
worked.
Another option is Tom Brennan’s Vista TN3270 emulator. It looks straight out of the 1990s, and I could not get the upload/download to work, but otherwise it works rather well.
If I had installed Hercules on WSL, the following command would need to be used to discover the IP address of WSL:
C:\Users\Mike Slinn>wsl hostname -I 192.168.191.196
The same command can be used on WSL/Linux if the .exe
filetype is specified:
$ wsl.exe hostname -I 192.168.191.196
To access the system emulated on Hercules running in WSL, I would have made a connection to 192.168.191.196:3270
.
If I had instead installed the system on an Ubuntu server called gojira
,
it would be accessed at gojira:3270
.
Here is the window that Vista TN3270 displays so a user can specify the IP address and port of the IBM host to connect to:
Once connected, the signon message is displayed in the 3270 emulator:
User user name herc01
and password cul8tr
To connect to a local Hercules instance running in WSL/Ubuntu, Vista TN3270 can be launced from Bash with the IP address to connect to with the following incantation:
$ '/mnt/c/Program Files (x86)/TomBrennanSoftware/VistaTN3270/vistaTN3270.exe' \
/h $(wsl.exe hostname -I) &
Here is a script that performs the above:
#!/bin/bash '/mnt/c/Program Files (x86)/TomBrennanSoftware/VistaTN3270/vistaTN3270.exe' \ /h $(wsl.exe hostname -I) &
XMIT Files
The Hercules documentation
describes how to work with XMIT
files on Hercules.
XMIT370
and RECV370
-
that may be used to provide the same functions as TRANSMIT
and RECEIVE
,
although they run in batch, not under TSO.
These programs are present in the SYSCPK volume of compilers and tools that is available from my site.
Jim’s distribution file, including the source code and documentation is available on the SYSCPK volume in the
dataset SYSC.RECV370.ASM
.
The PROC
edures for executing XMIT370
and RECV370
are available in SYSC.PROCLIB
.
The Hercules documentation has lots more information on how to work with XMIT
files.
XMIT Manager
Xmit Manager XmitManager is a Windows based tool that allows for the manipulation of IBM Mainframe created Xmit format files.