├── .gitattributes ├── .gitignore ├── 1Stop ├── 1Stop-CMake ├── 1Stop.cmd ├── BOOST_LICENSE_1_0.txt ├── BUILDING.txt ├── CHANGES ├── CMake ├── CMakeHercTestAtomic.c ├── CMakeHercTestC11Atomic.c ├── CMakeHercTestC99FlexArrays.c ├── CMakeHercTestPackedStruct.c ├── CMakeHercTestRegparm3.c ├── CMakeHercTestStrictAliasing.c ├── CMakeHercTestStructPadding.c ├── CMakeHercTestSync.c ├── CMakeconfig.h.in ├── Herc00_Includes.cmake ├── Herc01_GitVer.cmake ├── Herc02_ExtPackageBuild.cmake ├── Herc03_CopySharedLib.cmake ├── Herc10_OptDef.cmake ├── Herc12_OptEdit.cmake ├── Herc20_TargetEnv.cmake ├── Herc22_Userland.cmake ├── Herc22_UserlandWin.cmake ├── Herc25_CompilerMSVC.cmake ├── Herc25_Compilergcclike.cmake ├── Herc28_OptSelect.cmake ├── Herc31_COptsAppleGNU.cmake ├── Herc31_COptsClang.cmake ├── Herc31_COptsGNU.cmake ├── Herc31_COptsMSVC.cmake ├── Herc31_COptsUnknown.cmake ├── Herc41_ExtPackageBuild.cmake ├── Herc60_CreateTargets.cmake ├── Herc61_SlibSource.cmake ├── Herc65_ExtPackageWinCopy.cmake ├── cmake_uninstall.cmake.in ├── commitinfo.h.in └── herc_setWindowsTarget.cmake ├── CMakeLists.txt ├── COPYRIGHT ├── GetGitHash ├── GetGitHash.cmd ├── Hercules.sln ├── Hercules.vcproj ├── Hercules.vcxproj ├── Hercules.vcxproj.filters ├── Hercules_VS2010.sln ├── Hercules_VS2012.sln ├── Hercules_VS2012.vcxproj ├── Hercules_VS2015.sln ├── Hercules_VS2015.vcxproj ├── Hercules_VS2015.vcxproj.filters ├── INSTALL ├── Makefile.am ├── README.AIX ├── README.APL360 ├── README.BSD ├── README.BuildUNIX.txt ├── README.BuildWIN.txt ├── README.BuildWINSupp.txt ├── README.CMPSC ├── README.COMMADPT ├── README.DECNUMBER ├── README.DYNMOD ├── README.ECPSVM ├── README.HAO ├── README.HDL ├── README.HERCLOGO ├── README.HQA ├── README.HRAF ├── README.IOARCH ├── README.ISSUES ├── README.MINGW ├── README.MSVC ├── README.NETWORKING ├── README.OSX ├── README.PTT ├── README.REXX ├── README.RUNTEST ├── README.RXVT4APL ├── README.S37X ├── README.SETUID ├── README.SUN ├── README.TAPE ├── README.TELNET ├── README.WIN64 ├── README.md ├── README_CMakeBuildPrelim.txt ├── RELEASE.NOTES ├── _TODO.txt ├── _archdep_templ.c ├── _build ├── _build.bat ├── _build.tail ├── _dynamic_version.cmd ├── all-all.jobs ├── archlvl.c ├── assist.c ├── autoconf ├── README ├── config.guess ├── config.rpath ├── config.sub ├── depcomp ├── hercules.m4 ├── install-sh ├── libtool.m4 ├── ltdl.m4 ├── ltmain.sh ├── missing └── mkinstalldirs ├── autogen.sh ├── awstape.c ├── bldcfg.c ├── bootstrap.c ├── build_pch.c ├── cache.c ├── cache.h ├── cardpch.c ├── cardrdr.c ├── ccfixme.h ├── cckdcdsk.c ├── cckdcomp.c ├── cckddasd.c ├── cckddiag.c ├── cckdswap.c ├── cckdutil.c ├── ccnowarn.h ├── cgibin.c ├── chain.h ├── channel.c ├── chsc.c ├── chsc.h ├── ckddasd.c ├── clock.c ├── clock.h ├── cmdtab.c ├── cmdtab.h ├── cmpsc.c ├── cmpsc.h ├── cmpsc_2012.c ├── cmpscbit.h ├── cmpscdbg.c ├── cmpscdbg.h ├── cmpscdct.c ├── cmpscdct.h ├── cmpscget.c ├── cmpscget.h ├── cmpscmem.c ├── cmpscmem.h ├── cmpscput.c ├── cmpscput.h ├── cnsllogo.h ├── codepage.c ├── codepage.h ├── comm3705.c ├── comm3705.h ├── commadpt.c ├── commadpt.h ├── con1052c.c ├── config.c ├── configure.ac ├── console.c ├── conspawn.c ├── control.c ├── cpu.c ├── cpuint.h ├── crypto.c ├── crypto ├── Makefile.am ├── aes.c ├── aes.h ├── des.c ├── des.h ├── dyncrypt.c ├── sha1.c ├── sha1.h ├── sha256.c └── sha256.h ├── ctc_ctci.c ├── ctc_lcs.c ├── ctc_ptp.c ├── ctc_ptp.h ├── ctcadpt.c ├── ctcadpt.h ├── dasdblks.h ├── dasdcat.c ├── dasdconv.c ├── dasdcopy.c ├── dasdinit.c ├── dasdisup.c ├── dasdload.c ├── dasdls.c ├── dasdpdsu.c ├── dasdseq.c ├── dasdtab.c ├── dasdtab.h ├── dasdutil.c ├── dat.c ├── dat.h ├── dbgtrace.h ├── debug-all.jobs ├── decNumber ├── CMakeLists.txt ├── ICU-license.html ├── Makefile.am ├── decBasic.h ├── decCommon.h ├── decContext.c ├── decContext.h ├── decDPD.h ├── decDouble.c ├── decDouble.h ├── decNumber.c ├── decNumber.def ├── decNumber.h ├── decNumber.rc ├── decNumberLocal.h ├── decPacked.c ├── decPacked.h ├── decQuad.c ├── decQuad.h ├── decSingle.c ├── decSingle.h ├── decimal128.c ├── decimal128.h ├── decimal32.c ├── decimal32.h ├── decimal64.c ├── decimal64.h ├── decnumber.pdf ├── example1.c ├── example2.c ├── example3.c ├── example4.c ├── example5.c ├── example6.c ├── example7.c ├── example8.c └── readme.txt ├── decimal.c ├── devtype.h ├── dfp.c ├── diagmssf.c ├── diagnose.c ├── dmap2hrc.c ├── dyn76.c ├── dyngui.c ├── dyninst.c ├── dynmake.bat ├── ecpsvm.c ├── ecpsvm.h ├── esa390.h ├── esa390io.h ├── esame.c ├── external.c ├── extstring.h ├── faketape.c ├── fbadasd.c ├── feat370.h ├── feat390.h ├── feat900.h ├── featall.h ├── featchk.h ├── feature.h ├── fillfnam.c ├── fillfnam.h ├── float.c ├── fthreads.c ├── fthreads.h ├── ftlib.c ├── ftlib.h ├── general1.c ├── general2.c ├── general3.c ├── getopt.c ├── getopt.h ├── hRexx.c ├── hRexx.h ├── hRexx_o.c ├── hRexx_r.c ├── hRexxapi.h ├── hao.c ├── hatomic.h ├── hbyteswp.h ├── hchan.c ├── hchan.h ├── hconsole.c ├── hconsole.h ├── hconsts.h ├── hdiagf18.c ├── hdiagf18.h ├── hdl.c ├── hdl.h ├── hdlmain.c ├── hdteq.c ├── herc_getopt.h ├── hercdasd.ico ├── hercdasd.rc ├── hercifc.c ├── hercifc.h ├── herclin.c ├── herclogo.txt ├── hercmisc.ico ├── hercmisc.rc ├── hercprod.rc ├── herctape.ico ├── herctape.rc ├── herctest.c ├── hercules.cnf ├── hercules.cnf.rexx ├── hercules.h ├── hercules.ico ├── hercver.rc2 ├── hercwind.h ├── herror.h ├── hetget.c ├── hetinit.c ├── hetlib.c ├── hetlib.h ├── hetmap.c ├── hettape.c ├── hetupd.c ├── hexdumpe.c ├── hexdumpe.h ├── hextapi.h ├── hexterns.h ├── hifr.h ├── hinlines.h ├── history.c ├── history.h ├── hmacros.h ├── hmalloc.h ├── hostinfo.c ├── hostinfo.h ├── hostopts.h ├── hqadefs.h ├── hqainc.h ├── hsccmd.c ├── hscemode.c ├── hscloc.c ├── hscmisc.c ├── hscpufun.c ├── hscutl.c ├── hscutl.h ├── hscutl2.c ├── hsocket.c ├── hsocket.h ├── hstdinc.h ├── hstdint.h ├── hstructs.h ├── hsys.c ├── hthreads.c ├── hthreads.h ├── html ├── CMake │ ├── buildopts.html │ ├── cmakeopts.html │ ├── extpkg.html │ ├── faq.html │ └── index.html ├── Makefile.am ├── README.md ├── cckddasd.html ├── fishgui.html ├── hercconf.html ├── hercfaq.html ├── hercinst.html ├── herclic.html ├── hercload.html ├── hercmsca.html ├── hercmscf.html ├── hercmscp.html ├── hercmsct.html ├── hercmscu.html ├── hercmsda.html ├── hercmsdc.html ├── hercmsdg.html ├── hercmsdi.html ├── hercmsdl.html ├── hercmsdn.html ├── hercmsds.html ├── hercmsdt.html ├── hercmsdu.html ├── hercmsg.html ├── hercmshd.html ├── hercmshe.html ├── hercmshg.html ├── hercmshm.html ├── hercmsht.html ├── hercmshu.html ├── hercmsif.html ├── hercmsin.html ├── hercmslc.html ├── hercmslg.html ├── hercmspn.html ├── hercmspr.html ├── hercmspu.html ├── hercmsrd.html ├── hercmssd.html ├── hercmsta.html ├── hercmstc.html ├── hercmste.html ├── hercmstm.html ├── hercmsts.html ├── hercmstt.html ├── hercmstu.html ├── hercmsvm.html ├── hercnew.html ├── hercrdr.html ├── hercrnot.html ├── hercsupp.html ├── herctcp.html ├── hercules.css ├── hercules.html ├── images │ ├── back.gif │ ├── bkued.gif │ ├── blueu.gif │ ├── dial1.gif │ ├── dial2.gif │ ├── dial3.gif │ ├── dial4.gif │ ├── favicon.ico │ ├── greend.gif │ ├── greenu.gif │ ├── hercpic-rblk-256.gif │ ├── hercpic-rblk-80.gif │ ├── interruptd.gif │ ├── interruptu.gif │ ├── loadd.gif │ ├── loadoffu.gif │ ├── loadonu.gif │ ├── loadu.gif │ ├── manoffu.gif │ ├── manonu.gif │ ├── note.gif │ ├── osi-certified-60x50.jpg │ ├── poweroffd.gif │ ├── poweroffu.gif │ ├── poweronoffd.gif │ ├── poweronoffu.gif │ ├── poweronond.gif │ ├── powerononu.gif │ ├── redd.gif │ ├── redu.gif │ ├── restartd.gif │ ├── restartu.gif │ ├── startd.gif │ ├── startu.gif │ ├── stopd.gif │ ├── stopu.gif │ ├── stored.gif │ ├── storeu.gif │ ├── sysoffu.gif │ ├── sysonu.gif │ ├── telnetputtyconndata.png │ ├── telnetputtysession.png │ ├── telnetputtyterminal.png │ ├── telnetwin.png │ ├── telnetwinntconnect.png │ ├── telnetwinnttermpref.png │ ├── translucentoffd.gif │ ├── translucentoffu.gif │ ├── translucentond.gif │ ├── translucentonu.gif │ ├── waitoffu.gif │ └── waitonu.gif ├── include │ ├── footer.htmlpart │ └── header.htmlpart ├── index.html ├── rexxinteg.html ├── shared.html ├── tasks.html └── telnet.html ├── httpmisc.h ├── httpserv.c ├── htypes.h ├── ieee.c ├── impl.c ├── inline.h ├── io.c ├── ipl.c ├── license_dyn76.txt ├── linklist.h ├── loadmem.c ├── loadparm.c ├── logger.c ├── logger.h ├── logmsg.c ├── losc.c ├── ltdl.c ├── ltdl.h ├── m4 ├── ChangeLog ├── Makefile.am ├── codeset.m4 ├── gettext.m4 ├── glibc2.m4 ├── glibc21.m4 ├── iconv.m4 ├── intdiv0.m4 ├── intmax.m4 ├── inttypes-pri.m4 ├── inttypes.m4 ├── inttypes_h.m4 ├── isc-posix.m4 ├── lcmessage.m4 ├── lib-ld.m4 ├── lib-link.m4 ├── lib-prefix.m4 ├── longdouble.m4 ├── longlong.m4 ├── nls.m4 ├── po.m4 ├── printf-posix.m4 ├── progtest.m4 ├── signed.m4 ├── size_max.m4 ├── stdint_h.m4 ├── uintmax_t.m4 ├── ulonglong.m4 ├── wchar_t.m4 ├── wint_t.m4 └── xsize.m4 ├── machchk.c ├── machdep.h ├── makefile-dllmod.msvc ├── makefile.bat ├── makefile.msvc ├── man ├── Makefile.am ├── cckd.4 ├── cckddiag.1 ├── dasdseq.1 └── vmfplc2.1 ├── memrchr.c ├── memrchr.h ├── mpc.c ├── mpc.h ├── msgenu.h ├── msvc.makefile.includes ├── BZIP2_DIR.msvc ├── BZIP2_FLAGS.msvc ├── BZIP2_RULES.msvc ├── CONFIG.msvc ├── DEBUG_RETAIL.msvc ├── EXTPKG_DIRS.msvc ├── EXTPKG_FLAGS.msvc ├── HERC_FLAGS.msvc ├── HQA_DIR.msvc ├── HQA_FLAGS.msvc ├── IPV6_FLAGS.msvc ├── MODULES.msvc ├── MOD_RULES1.msvc ├── MOD_RULES2.msvc ├── OBJ_CODE.msvc ├── OUTDIR_RULES.msvc ├── OUTPUT_DIRS.msvc ├── PCRE_DIR.msvc ├── PCRE_FLAGS.msvc ├── PCRE_RULES.msvc ├── PRIM_RULES.msvc ├── REXX_DIRS.msvc ├── REXX_FLAGS.msvc ├── REXX_RULES.msvc ├── ZLIB_DIR.msvc ├── ZLIB_FLAGS.msvc └── ZLIB_RULES.msvc ├── omatape.c ├── opcode.c ├── opcode.h ├── panel.c ├── parser.c ├── parser.h ├── pfpo.c ├── plo.c ├── printer.c ├── printfmt.h ├── pttrace.c ├── pttrace.h ├── qdio.c ├── qdio.h ├── qeth.c ├── qeth.h ├── resolve.c ├── resolve.h ├── retail-all.jobs ├── s37x.c ├── s37xmod.c ├── scedasd.c ├── scescsi.c ├── script.c ├── scripts ├── cmpsc.cnf ├── cmpsc.rexx ├── hbasic1.rexx ├── hbasic2.rex ├── hbasic3.cmd ├── hbasic4.rx ├── hbasic5.ext1 ├── hbasics ├── hcommand.rexx ├── hexecio.rexx ├── hlinein.rexx ├── hrecurs.rexx └── sample.rexx ├── scsitape.c ├── scsitape.h ├── scsiutil.c ├── scsiutil.h ├── service.c ├── service.h ├── shared.c ├── shared.h ├── sie.c ├── sllib.c ├── sllib.h ├── sockdev.c ├── sockdev.h ├── softfloat.h ├── softfloat_stdTypes.h ├── softfloat_types.h ├── sr.c ├── sr.h ├── stack.c ├── strsignal.c ├── tapeccws.c ├── tapecopy.c ├── tapedev.c ├── tapedev.h ├── tapemap.c ├── tapesplt.c ├── targetver.h ├── telnet.c ├── telnet.h ├── tests ├── CMakeLists.txt ├── Makefile.am ├── README ├── agf.assemble ├── agf.listing ├── agf.tst ├── alsi.txt ├── awsbsf.aws ├── awsbsf.tst ├── axtr.txt ├── bfp-001-divtoint.asm ├── bfp-001-divtoint.core ├── bfp-001-divtoint.list ├── bfp-001-divtoint.tst ├── bfp-002-loadr.asm ├── bfp-002-loadr.core ├── bfp-002-loadr.list ├── bfp-002-loadr.tst ├── bfp-003-loadfpi.asm ├── bfp-003-loadfpi.core ├── bfp-003-loadfpi.list ├── bfp-003-loadfpi.tst ├── bfp-004-cvttolog.asm ├── bfp-004-cvttolog.core ├── bfp-004-cvttolog.list ├── bfp-004-cvttolog.tst ├── bfp-005-cvttolog64.asm ├── bfp-005-cvttolog64.core ├── bfp-005-cvttolog64.list ├── bfp-005-cvttolog64.tst ├── bfp-006-cvttofix.asm ├── bfp-006-cvttofix.core ├── bfp-006-cvttofix.list ├── bfp-006-cvttofix.tst ├── bfp-007-cvttofix64.asm ├── bfp-007-cvttofix64.core ├── bfp-007-cvttofix64.list ├── bfp-007-cvttofix64.tst ├── bfp-008-cvtfrlog.asm ├── bfp-008-cvtfrlog.core ├── bfp-008-cvtfrlog.list ├── bfp-008-cvtfrlog.tst ├── bfp-009-cvtfrlog64.asm ├── bfp-009-cvtfrlog64.core ├── bfp-009-cvtfrlog64.list ├── bfp-009-cvtfrlog64.tst ├── bfp-010-cvtfrfix.asm ├── bfp-010-cvtfrfix.core ├── bfp-010-cvtfrfix.list ├── bfp-010-cvtfrfix.tst ├── bfp-011-cvtfrfix64.asm ├── bfp-011-cvtfrfix64.core ├── bfp-011-cvtfrfix64.list ├── bfp-011-cvtfrfix64.tst ├── bfp-012-loadtest.asm ├── bfp-012-loadtest.core ├── bfp-012-loadtest.list ├── bfp-012-loadtest.tst ├── bfp-013-comps.asm ├── bfp-013-comps.core ├── bfp-013-comps.list ├── bfp-013-comps.tst ├── bfp-014-divide.asm ├── bfp-014-divide.core ├── bfp-014-divide.list ├── bfp-014-divide.tst ├── bfp-015-sqrt.asm ├── bfp-015-sqrt.core ├── bfp-015-sqrt.list ├── bfp-015-sqrt.tst ├── bfp-016-add.asm ├── bfp-016-add.core ├── bfp-016-add.list ├── bfp-016-add.tst ├── bfp-017-loadl.asm ├── bfp-017-loadl.core ├── bfp-017-loadl.list ├── bfp-017-loadl.tst ├── bfp-018-subtract.asm ├── bfp-018-subtract.core ├── bfp-018-subtract.list ├── bfp-018-subtract.tst ├── bfp-019-multiply.asm ├── bfp-019-multiply.core ├── bfp-019-multiply.list ├── bfp-019-multiply.tst ├── bfp-020-multlonger.asm ├── bfp-020-multlonger.core ├── bfp-020-multlonger.list ├── bfp-020-multlonger.tst ├── bfp-021-multadd.asm ├── bfp-021-multadd.core ├── bfp-021-multadd.list ├── bfp-021-multadd.tst ├── bfp-022-multsub.asm ├── bfp-022-multsub.core ├── bfp-022-multsub.list ├── bfp-022-multsub.tst ├── bfp-023-threads.asm ├── bfp-023-threads.core ├── bfp-023-threads.list ├── bfp-023-threads.sptst ├── bfp-024-h2b.asm ├── bfp-024-h2b.core ├── bfp-024-h2b.list ├── bfp-024-h2b.tst ├── bfp-025-b2h.asm ├── bfp-025-b2h.core ├── bfp-025-b2h.list ├── bfp-025-b2h.tst ├── bim-001-add-sub.asm ├── bim-001-add-sub.core ├── bim-001-add-sub.list ├── bim-001-add-sub.tst ├── brc.txt ├── cdfr.txt ├── cdgr.txt ├── cdsg.txt ├── cgdr.txt ├── cgdtr.txt ├── cger.txt ├── cgfrl.txt ├── cgxr.txt ├── cgxtr.txt ├── channel-370.txt ├── cipher.assemble ├── cipher.listing ├── cipher.tst ├── cmd-abs-2K.subtst ├── cmd-abs-4K.subtst ├── cmd-abs.tst ├── cmd-rv-2K.subtst ├── cmd-rv-4K-32.subtst ├── cmd-rv-4K-64.subtst ├── cmd-rv.tst ├── comments.txt ├── cpsdr.txt ├── cpu0off.core ├── csst.txt ├── csxtr.assemble ├── csxtr.listing ├── csxtr.tst ├── cxgbr.txt ├── cxgtr.txt ├── dc-float.asm ├── diag24.txt ├── diag8.txt ├── digest.assemble ├── digest.listing ├── digest.tst ├── dotest ├── dxtr.txt ├── epsw.txt ├── exrl.txt ├── fiebr.txt ├── fixtr.txt ├── hetbsf.het ├── hetbsf.tst ├── iedtr.txt ├── ilc.assemble ├── ilc.listing ├── ilc.tst ├── invpsw.assemble ├── invpsw.listing ├── invpsw.tst ├── kimd-hw.tst ├── kimd0.txt ├── kimd1.txt ├── kimd2.txt ├── kimd3.txt ├── kimd65.txt ├── klmd-hw.tst ├── klmd0.txt ├── klmd1.txt ├── klmd2.txt ├── klmd3.txt ├── km-hw.tst ├── km0.txt ├── km1.txt ├── km10.txt ├── km11.txt ├── km18.txt ├── km19.txt ├── km2.txt ├── km20.txt ├── km26.txt ├── km27.txt ├── km28.txt ├── km3.txt ├── km50.txt ├── km52.txt ├── km58.txt ├── km60.txt ├── km9.txt ├── kmac-hw.tst ├── kmac0.txt ├── kmac1.txt ├── kmac10.txt ├── kmac11.txt ├── kmac18.txt ├── kmac19.txt ├── kmac2.txt ├── kmac20.txt ├── kmac26.txt ├── kmac27.txt ├── kmac28.txt ├── kmac3.txt ├── kmac9.txt ├── kmc-hw.tst ├── kmc0.txt ├── kmc1.txt ├── kmc10.txt ├── kmc11.txt ├── kmc18.txt ├── kmc19.txt ├── kmc2.txt ├── kmc20.txt ├── kmc26.txt ├── kmc27.txt ├── kmc28.txt ├── kmc3.txt ├── kmc67.txt ├── kmc9.txt ├── kmctr-hw.tst ├── kmctr0.txt ├── kmctr1.txt ├── kmctr10.txt ├── kmctr11.txt ├── kmctr18.txt ├── kmctr19.txt ├── kmctr2.txt ├── kmctr20.txt ├── kmctr26.txt ├── kmctr27.txt ├── kmctr28.txt ├── kmctr3.txt ├── kmctr9.txt ├── kmf-hw.tst ├── kmf0.txt ├── kmf1.txt ├── kmf10.txt ├── kmf11.txt ├── kmf18.txt ├── kmf19.txt ├── kmf2.txt ├── kmf20.txt ├── kmf26.txt ├── kmf27.txt ├── kmf28.txt ├── kmf3.txt ├── kmf9.txt ├── kmo-hw.tst ├── kmo0.txt ├── kmo1.txt ├── kmo10.txt ├── kmo11.txt ├── kmo18.txt ├── kmo19.txt ├── kmo2.txt ├── kmo20.txt ├── kmo26.txt ├── kmo27.txt ├── kmo28.txt ├── kmo3.txt ├── kmo9.txt ├── ldetr.txt ├── ldxtr.txt ├── leapfrog.assemble ├── leapfrog.listing ├── leapfrog.tst ├── ledtr.txt ├── lfpc.txt ├── llhrl.txt ├── locgr.txt ├── logicimm.assemble ├── logicimm.listing ├── logicimm.tst ├── loop.txt ├── lparnum.txt ├── lpp.txt ├── lxdtr.txt ├── maer.txt ├── mainsize.tst ├── mhi.asm ├── mhi.core ├── mhi.list ├── mhi.tst ├── mkcore.rexx ├── mvcle.assemble ├── mvcle.listing ├── mvcle.tst ├── mvcos.txt ├── mxtr.txt ├── pfpo.asm ├── pfpo.core ├── pfpo.list ├── pfpo.tst ├── pnl-001-modpath.tstsp ├── popcnt.txt ├── pr.subtst ├── pr.tst ├── printer.txt ├── privop.asm ├── privop.core ├── privop.list ├── privop.tst ├── problem.asm ├── problem.core ├── problem.list ├── problem.tst ├── ptf.txt ├── redtest.rexx ├── res40002.txt ├── rnsbg.txt ├── rrdtr.txt ├── rrxtr.txt ├── runtest ├── runtest.cmd ├── runtest.pdf ├── runtest.rexx ├── runtest.subtst ├── runtest0.tst ├── runtest4.tst ├── semipriv.asm ├── semipriv.core ├── semipriv.list ├── semipriv.tst ├── sigp.assemble ├── sigp.listing ├── sigp.tst ├── srdt.txt ├── ssk370.tst ├── sske.assemble ├── sske.listing ├── sske.tst ├── sske370.tst ├── sske390.tst ├── stfl.asm ├── stfl.core ├── stfl.list ├── stfl.tst ├── stfle.txt ├── stidp.txt ├── stsi.txt ├── sus40002.txt ├── tape.240k-2.txt ├── tape.240k.txt ├── tape.2m.txt ├── tape.32k.txt ├── tapebsf.subtst ├── tapepos.txt ├── tbedr.txt ├── tdcdt.txt ├── tdgdt.txt ├── tests.conf ├── text2tst.rexx ├── thder.txt ├── timeout.tst ├── trace.txt ├── trte.txt ├── wild.assemble ├── wild.listing ├── wild.tst ├── zeos.assemble ├── zeos.listing └── zeos.tst ├── timer.c ├── trace.c ├── tt32api.h ├── tt32if.h ├── tuntap.c ├── tuntap.h ├── util ├── CMPSC.txt ├── Makefile.am ├── TMOUNT.txt ├── WSMInstallScript.nsi ├── WSMInstallScriptLicense.rtf ├── awssl-v19g ├── awswrite.jcl ├── bldlvlck ├── cckddump.hla ├── cckdload.hla ├── configure.ac ├── dasdlist ├── dasdlist.bat ├── rawstape.jcl ├── scsiboot ├── tapeconv.jcl ├── voldsext.cmd └── zzsacard.bin ├── vector.c ├── version.c ├── version.h ├── vm.c ├── vmd250.c ├── vmd250.h ├── vmfplc2.c ├── vstore.c ├── vstore.h ├── w32ctca.c ├── w32ctca.h ├── w32dl.h ├── w32mtio.h ├── w32stape.c ├── w32stape.h ├── w32util.c ├── w32util.h ├── xstore.c ├── zfcp.c └── zfcp.h /CMake/CMakeHercTestAtomic.c: -------------------------------------------------------------------------------- 1 | /* 2 | Test program to verify the presence of the __atomic_* intrinsics 3 | used by Hercules. Only _or_, _and_, and _xor_ are used; the 4 | other intrinsics are not. 5 | 6 | This test is used for gcc and clang, and may be used for any 7 | compiler. 8 | 9 | If the following program compiles and links successfully, then 10 | the intrinsics are availble. Execution is not required. 11 | 12 | The __atomic_* intrinsics are the second choice for Hercules 13 | interlocked access functions. C11 intrinsics are the first choice, 14 | and __sync_* intrinsics are the third. 15 | 16 | hatomic.h defines the macro used by Hercules to select the 17 | best available intrinsic for the target system. 18 | */ 19 | 20 | static unsigned char b = 0; 21 | static unsigned char *p = &b; 22 | void main() 23 | { 24 | __atomic_or_fetch ( p, 0xFF, __ATOMIC_SEQ_CST ); 25 | __atomic_and_fetch ( p, 0x00, __ATOMIC_SEQ_CST ); 26 | __atomic_xor_fetch ( p, 0xAC, __ATOMIC_SEQ_CST ); 27 | } -------------------------------------------------------------------------------- /CMake/CMakeHercTestC99FlexArrays.c: -------------------------------------------------------------------------------- 1 | /* 2 | Test program to verify that C99 flexible arrays are supported by the 3 | c compiler. 4 | 5 | Absence of flexible array support is not fatal to the Hercules build. 6 | 7 | This test is used for gcc and clang, and may be used for any compiler. 8 | 9 | If the following program compiles and links successfully, then 10 | C99 flexible arrays are availble. Execution is not required. 11 | 12 | */ 13 | 14 | #include 15 | 16 | typedef struct 17 | { 18 | int foo; 19 | char bar[]; 20 | } 21 | FOOBAR; 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | FOOBAR* p = calloc( 1, sizeof(FOOBAR) + 16 ); 26 | return 0; 27 | } 28 | -------------------------------------------------------------------------------- /CMake/CMakeHercTestRegparm3.c: -------------------------------------------------------------------------------- 1 | /* 2 | Fish: Test for reparms bug caused by alloca bug# 8750 3 | Ref: 4 | */ 5 | #include 6 | struct REGS 7 | { 8 | int a, b, c, d; 9 | char e[50000]; 10 | }; 11 | typedef struct REGS REGS; 12 | 13 | #define ATTR_REGPARM __attribute__ (( regparm(3) )) 14 | // #define ATTR_REGPARM 15 | int func1 ( int a, int b, int c, REGS *regs ) ATTR_REGPARM; 16 | int func2 ( int a, int b, int c, REGS *regs ) ATTR_REGPARM; 17 | 18 | REGS global_regs; 19 | 20 | int main() 21 | { 22 | return func1( 1, 2, 3, &global_regs ); 23 | } 24 | 25 | int ATTR_REGPARM func1 ( int a, int b, int c, REGS *regs ) 26 | { 27 | REGS stack_regs; 28 | regs=regs; /* (quiet compiler warning) */ 29 | printf("Entry to func1: a=%d, b=%d, c=%d\n", a, b, c ); 30 | if ( func2( a, b, c, &stack_regs ) == 0 ) return 0; /* pass */ 31 | printf("funct2 failure\n"); 32 | return 1; /* fail */ 33 | } 34 | 35 | int ATTR_REGPARM func2 ( int a, int b, int c, REGS *regs ) 36 | { 37 | regs=regs; /* (quiet compiler warning) */ 38 | printf("Entry to func2: a=%d, b=%d, c=%d\n", a, b, c ); 39 | if ( 1==a && 2==b && 3==c ) return 0; /* pass */ 40 | return 1; /* fail */ 41 | } -------------------------------------------------------------------------------- /CMake/CMakeHercTestStrictAliasing.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #ifdef WORDS_BIGENDIAN 5 | #define I 1 6 | #else 7 | #define I 0 8 | #endif 9 | 10 | int main() 11 | { 12 | unsigned long a; 13 | a = 111; 14 | *((unsigned short*)&a + I) = 222; 15 | return (a == 222 ? 0 : 1); 16 | } -------------------------------------------------------------------------------- /CMake/CMakeHercTestSync.c: -------------------------------------------------------------------------------- 1 | /* 2 | Test program to verify the presence of the __sync_* intrinsics 3 | used by Hercules. Only _or_, _and_, and _xor_ are used; the 4 | other intrinsics are not. 5 | 6 | This test is used for gcc and clang, and may be used for any 7 | compiler. 8 | 9 | If the following program compiles and links successfully, then 10 | the intrinsics are availble. Execution is not required. 11 | 12 | The __sync_* intrinsics are the third choice for Hercules 13 | interlocked access functions. C11 intrinsics are the first choice, 14 | followed by __atomic_* intrinsics. 15 | 16 | hatomic.h defines the macro used by Hercules to select the 17 | best available intrinsic for the target system. 18 | */ 19 | 20 | static unsigned char b = 0; 21 | static unsigned char *p = &b; 22 | void main() 23 | { 24 | __sync_or_and_fetch ( p, 0xFF ); 25 | __sync_and_and_fetch ( p, 0x00 ); 26 | __sync_xor_and_fetch ( p, 0xAC ); 27 | } -------------------------------------------------------------------------------- /CMake/Herc03_CopySharedLib.cmake: -------------------------------------------------------------------------------- 1 | # Herc03_CopySharedLib.cmake - Copy one, two, or three shared libraries 2 | # from a source directory to a target 3 | # directory. 4 | 5 | #[[ Copyright 2017 by Stephen Orso. 6 | 7 | Distributed under the Boost Software License, Version 1.0. 8 | See accompanying file BOOST_LICENSE_1_0.txt or copy at 9 | http://www.boost.org/LICENSE_1_0.txt) 10 | ]] 11 | 12 | #[[ 13 | 14 | This CMake script is the target of Add_Custom_Command calls in 15 | Herc65_ExtPackageWinCopy.cmake. The added commands ensure that shared 16 | libraries created by executable packages are copied to the Hercules 17 | binary directory when Hercules is built on Windows. 18 | 19 | This script and the commands are not needed on UNIX-like and macOS 20 | builds because the shared libraries are located using the RPATH 21 | setting in the calling executable or shared library. 22 | ]] 23 | 24 | if( IN2 ) 25 | message( "Copying ${NAME} shared libraries to ${OUT}" ) 26 | else( ) 27 | message( "Copying ${NAME} shared library to ${OUT}" ) 28 | endif( ) 29 | 30 | 31 | if( IN1 ) 32 | if( EXISTS "${IN1}" ) 33 | file( COPY "${IN1}" DESTINATION "${OUT}" ) 34 | endif( ) 35 | endif( ) 36 | 37 | if( IN2 ) 38 | if( EXISTS "${IN2}" ) 39 | file( COPY "${IN2}" DESTINATION "${OUT}" ) 40 | endif( ) 41 | endif( ) 42 | 43 | if( IN3 ) 44 | if( EXISTS "${IN3}" ) 45 | file( COPY "${IN3}" DESTINATION "${OUT}" ) 46 | endif( ) 47 | endif( ) -------------------------------------------------------------------------------- /CMake/Herc31_COptsUnknown.cmake: -------------------------------------------------------------------------------- 1 | # Herc31_COptsunknown.cmake - Set C compiler options when building 2 | # an unrecognized compiler. 3 | 4 | #[[ Copyright 2017 by Stephen Orso. 5 | 6 | Distributed under the Boost Software License, Version 1.0. 7 | See accompanying file BOOST_LICENSE_1_0.txt or copy at 8 | http://www.boost.org/LICENSE_1_0.txt) 9 | ]] 10 | 11 | 12 | # Unrecognized C compiler. We do not know how to control it through 13 | # command line options. Which means we cannot automatically create 14 | # optimization flags or flags to deal with detected oddities. 15 | 16 | # The default for automatic optimization is NO for an unrecognized 17 | # compiler. If OPTIMIZATION=YES is specified, the build is terminated 18 | # with an error message. 19 | 20 | # If a builder specifies NO, the build continues without comment. 21 | 22 | # If a builder specifies a string, that string is used. 23 | 24 | 25 | set( CMAKE_C_FLAGS "-DHAVE_CONFIG_H" ) 26 | 27 | if( "${OPTIMIZATION}" STREQUAL "YES" ) 28 | herc_Save_Error( "Automatic optimization not possible with unrecognized c compiler: \"${CMAKE_C_COMPILER_ID}\"\n" ) 29 | return( ) 30 | endif( ) 31 | 32 | 33 | # The builder has provided flags to be used by the compiler. 34 | 35 | if( NOT ("${OPTIMIZATION}" STREQUAL "NO") ) 36 | set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPTIMIZATION}" ) 37 | endif( ) 38 | 39 | 40 | return( ) 41 | 42 | 43 | -------------------------------------------------------------------------------- /CMake/commitinfo.h.in: -------------------------------------------------------------------------------- 1 | /* Created by Herc01_GitVer.cmake ${GIT_COMMIT_STAMP} */ 2 | #define COMMIT_COUNT @GIT_COMMIT_COUNT@ 3 | #define COMMIT_MESSAGE @GIT_COMMIT_MESSAGE@ 4 | #define COMMIT_BRANCH "@GIT_BRANCH@" 5 | #define COMMIT_HASH "@GIT_COMMIT_HASH@" 6 | #define COMMIT_UNTRACKED " @GIT_NEW_FILES@ untracked files." 7 | #define COMMIT_MODIFIED " @GIT_CHANGED_FILES@ added/modified/deleted files." 8 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | All materials in this distribution are 2 | copyrighted by Roger Bowler and others. 3 | 4 | Hercules may be distributed under the terms 5 | of the Q Public License Version 1.0 6 | 7 | Please refer to: 8 | http://www.hercules-390.org/herclic.html 9 | for details. 10 | 11 | In the context of this license, the initial developers of 12 | the software are Roger Bowler, Jan Jaeger, and Jay Maynard. 13 | -------------------------------------------------------------------------------- /README.APL360: -------------------------------------------------------------------------------- 1 | "Max H. Parke" has modified the 2 | commadpt driver to work for APL\360. 3 | 4 | Here is Max's README regarding his APL\360 mods: 5 | 6 | 7 | 1. Here is the APL conf that I used 8 | 1750 APLDEV (X'00',X'03'),TYPE=AMBIG,SAD=NOP 9 | 1800 APLDEV (X'40',X'43'),TYPE=1052 10 | 1850 APLDEV (X'80',X'83'),TYPE=TS41,SAD=NOP 11 | 1900 APLDEV (X'C0',X'C3'),TYPE=1052 12 | 13 | With TYPE=AMBIG your telnet connection should close after using )OFF: 14 | "off 15 | 002 23.55.39 12/03/84 u01 16 | connected 0.01.05 to date 0.23.08 17 | cpu time 0.00.00 to date 0.00.00 18 | Connection closed by foreign host. 19 | 20 | 2. Hercules conf file device defs 21 | [standard 2741 emulation] 22 | 0400 2703 dial=in lport=57411 lnctl=ibm1 term=2741 skip=5EDE code=ebcd iskip=0A 23 | [extended APL support when using rxvt4apl] 24 | 0402 2703 dial=in lport=57413 lnctl=ibm1 term=rxvt4apl skip=5EDE code=ebcd iskip=0D0A prepend=16 append=5B1F eol=0A binary=yes crlf=yes sendcr=yes 25 | 26 | 3. Logon using "314159 (do not use = as in 1052). For rxvt4apl, use the 27 | regular right parenthesis. See also the separate readme file for using 28 | rxvt4apl. 29 | 30 | 4. Use CTRL-C as usual for 2741 ATTN. 31 | 32 | 5. Only tested in Linux - YMMV 33 | 34 | 6. TODO: add fix for disconnected TCP connection while signed on to APL, 35 | should initiate a session drop 36 | -------------------------------------------------------------------------------- /README.BSD: -------------------------------------------------------------------------------- 1 | Notes for FreeBSD and to some extent also OS/X 2 | ============================================== 3 | 4 | Hercules has been build on FreeBSD and on its derivative, OS/X. While 5 | untested, there should be more than a sporting chance that it builds 6 | on NetBSD and OpenBSD too. 7 | 8 | You need to install the ports of the gnu m4, make, and sed commands 9 | in addition to the packages mentioned in the INSTALL file as Hercules 10 | will not build with the original BSD version of these utilities. 11 | 12 | To avoid modifying a plethora of files, you should add these aliases 13 | to the .bashrc file of the user that builds Hercules: 14 | 15 | alias make=gmake 16 | alias sed=gsed 17 | alias m4=gm4 18 | 19 | Also, beware that many of the autoxxxx ports are rather old in the tooth 20 | in the FreeBSD ports collection. 21 | 22 | In particular, the message "missing: Unknown `--is-lightweight'" indicates 23 | that someone has been a little too eager. 24 | 25 | John P. Hartmann 2014-08-04. 26 | -------------------------------------------------------------------------------- /README.MINGW: -------------------------------------------------------------------------------- 1 | ****************************************************************** 2 | ****************************************************************** 3 | 4 | MinGW is no longer a supported environment for building and 5 | running Hercules Hyperion. 6 | 7 | Those wishing to review, for historical purposes, how MinGW was 8 | used should visit the Hercules-390/hyperion repository on 9 | github.com and review a previous commit of this file. 10 | 11 | 12 | ****************************************************************** 13 | ****************************************************************** 14 | ****************************************************************** 15 | -------------------------------------------------------------------------------- /README.RUNTEST: -------------------------------------------------------------------------------- 1 | Refer to tests/runtest.pdf 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Hercules System/370, ESA/390, and z/Architecture Emulator 2 | 3 | ## Hercules 4.0 (Hyperion) 4 | 5 | **Hercules** is an open source software implementation of the mainframe 6 | System/370 and ESA/390 architectures, in addition to the latest 64-bit 7 | z/Architecture. Hercules runs under Linux, Windows, 8 | Solaris, FreeBSD, 9 | and Mac OS X. 10 | 11 | Hercules is [OSI Certified Open Source Software](http://www.opensource.org/) 12 | licensed under the terms of the [Q Public Licence](http://hercules-390.github.io/html/herclic.html). 13 | 14 | The **Hyperion** version of Hercules is the official development version of 15 | the Hercules emulator and contains the latest bleeding edge changes made by Hercules 16 | developers to address various bugs that may exist in the production version. 17 | 18 | Hercules was created by Roger Bowler. 19 | Jay Maynard "the Tron Guy" was the maintainer from 2000 to 2012. 20 | Jan Jaeger designed and implemented many of the advanced features of 21 | Hercules, including dynamic reconfiguration, integrated console, 22 | interpretive execution and z/Architecture support. A dedicated crew of 23 | programmers is constantly at work implementing new features and fixing bugs. 24 | 25 | ### To find out more about Hercules 4.0 Hyperion, follow this link: [Hercules 4.0 (Hyperion)] (http://hercules-390.github.io/html/) 26 | -------------------------------------------------------------------------------- /README_CMakeBuildPrelim.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/README_CMakeBuildPrelim.txt -------------------------------------------------------------------------------- /_build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM +-------------------------------------------------------------------------------+ 3 | REM ! ! 4 | REM ! Name: _build.bat ! 5 | REM ! ! 6 | REM ! Desc: build Hercules with various options. Windows bat front end ! 7 | REM ! ! 8 | REM +-------------------------------------------------------------------------------+ 9 | REM ! 10 | REM ! Change Log: '$Log$ 11 | REM ! Change Log: 'Revision 1.8.4.1 2005/03/01 11:22:05 fish 12 | REM ! Change Log: 'fixing the last(?) of my CRLF screwups 13 | REM ! Change Log: ' 14 | REM ! Change Log: 'Revision 1.8 2004/03/28 15:11:58 vbandke 15 | REM ! Change Log: 'no message 16 | REM ! Change Log: ' 17 | REM ! 18 | REM +------------------------------------------------------------------------------- 19 | echo off 20 | SET ANSI_FLAG=Y 21 | SET BASH_OPT=+e +x 22 | bash %BASH_OPT% _build.tail 23 | bash %BASH_OPT% _build -c p4 -p 1 -f 24 | pause 25 | -------------------------------------------------------------------------------- /_build.tail: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # $Id$ 4 | # 5 | # $Log$ 6 | # 7 | MYCMD=`basename ${0} .tail` 8 | LOGFILE=`pwd`/${MYCMD}.log 9 | rm -f ${LOGFILE} >/dev/null 2>&1 10 | touch ${LOGFILE} 11 | CMD \/c start "Snapshot Logfile ${LOGFILE}" /i tail -f ${LOGFILE} 12 | -------------------------------------------------------------------------------- /all-all.jobs: -------------------------------------------------------------------------------- 1 | 2 | * Parallel-build ALL Configurations (both Debug and Release) for ALL Platforms... 3 | 4 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Debug|Win32" /time /nologo 5 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Release|Win32" /time /nologo 6 | 7 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Debug|x64" /time /nologo 8 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Release|x64" /time /nologo 9 | -------------------------------------------------------------------------------- /autoconf/README: -------------------------------------------------------------------------------- 1 | This is where autoconf and automake will place their auxiliary files. 2 | -------------------------------------------------------------------------------- /build_pch.c: -------------------------------------------------------------------------------- 1 | /* BUILD_PCH (c)Copyright Ivan Warren, 2005-2012 */ 2 | /* Dummy module for building pre-compiled header files */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #include "hstdinc.h" 9 | -------------------------------------------------------------------------------- /cmpscdbg.h: -------------------------------------------------------------------------------- 1 | /* CMPSCDBG.H (c) Copyright "Fish" (David B. Trout), 2012-2014 */ 2 | /* Compression Call Debugging Functions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef _CMPSCDBG_H_ 9 | #define _CMPSCDBG_H_ // Code to be compiled ONLY ONCE goes after here 10 | 11 | // TODO: define any structures, etc, the debugging code might need... 12 | 13 | #endif // _CMPSCDBG_H_ // Place all 'ARCH_DEP' code after this statement 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | // 17 | // FILE: cmpscdbg.h 18 | // 19 | // Header for the Compression Call debugging functions 20 | // 21 | // FUNCTIONS: 22 | // 23 | // cmpsc_Report() - Formatted dump of internal structures 24 | // 25 | // PARAMETERS: 26 | // 27 | // dbg Pointer to debugging context 28 | // 29 | // RETURNS: 30 | // 31 | // int 0 if success, errno on failure. 32 | // 33 | // COMMENTS: 34 | // 35 | /////////////////////////////////////////////////////////////////////////////// 36 | 37 | extern int (CMPSC_FASTCALL ARCH_DEP( cmpsc_Report ))( void* dbg ); 38 | 39 | /////////////////////////////////////////////////////////////////////////////// 40 | -------------------------------------------------------------------------------- /crypto/des.h: -------------------------------------------------------------------------------- 1 | /* DES.H (c) Bernard van der Helm, 2003-2011 */ 2 | /* z/Architecture crypto instructions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef _DES_H 9 | #define _DES_H 10 | 11 | typedef u_int32_t word32; 12 | 13 | typedef struct { 14 | word32 k0246[16], k1357[16]; 15 | word32 iv0, iv1; 16 | } DESContext; 17 | 18 | typedef struct { 19 | DESContext sched[1]; 20 | } des_context; 21 | 22 | typedef struct { 23 | DESContext sched[3]; 24 | } des3_context; 25 | 26 | typedef BYTE CHAR8[8]; 27 | 28 | void des_set_key(des_context *ctx, CHAR8 key); 29 | void des_encrypt(des_context *ctx, CHAR8 input, CHAR8 output); 30 | void des_decrypt(des_context *ctx, CHAR8 input, CHAR8 output); 31 | 32 | void des3_set_2keys(des3_context *ctx, CHAR8 k1, CHAR8 k2); 33 | void des3_set_3keys(des3_context *ctx, CHAR8 k1, CHAR8 k2, CHAR8 k3); 34 | 35 | void des3_encrypt(des3_context *ctx, CHAR8 input, CHAR8 output); 36 | void des3_decrypt(des3_context *ctx, CHAR8 input, CHAR8 output); 37 | 38 | #endif /*_DES_H*/ 39 | -------------------------------------------------------------------------------- /crypto/sha1.h: -------------------------------------------------------------------------------- 1 | /* SHA1.H (c) Bernard van der Helm, 2003-2011 */ 2 | /* z/Architecture crypto instructions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | /* $OpenBSD: sha1.h,v 1.4 2004/04/28 20:39:35 hshoexer Exp $ */ 9 | /* modified for use with dyncrypt */ 10 | 11 | /* 12 | * SHA-1 in C 13 | * By Steve Reid 14 | * 100% Public Domain 15 | */ 16 | 17 | 18 | #ifndef _SHA1_H_ 19 | #define _SHA1_H_ 20 | 21 | #define SHA1_BLOCK_LENGTH 64 22 | #define SHA1_DIGEST_LENGTH 20 23 | 24 | typedef struct { 25 | u_int32_t state[5]; 26 | u_int64_t count; 27 | unsigned char buffer[SHA1_BLOCK_LENGTH]; 28 | } SHA1_CTX; 29 | 30 | void SHA1Init(SHA1_CTX * context); 31 | void SHA1Transform(u_int32_t state[5], unsigned char buffer[SHA1_BLOCK_LENGTH]); 32 | void SHA1Update(SHA1_CTX *context, unsigned char *data, unsigned int len); 33 | void SHA1Final(unsigned char digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context); 34 | 35 | /* Context structure definition for dyncrypt */ 36 | typedef SHA1_CTX sha1_context; 37 | 38 | #endif /* _SHA1_H_ */ 39 | -------------------------------------------------------------------------------- /dat.c: -------------------------------------------------------------------------------- 1 | /* DAT.C (c) Copyright Roger Bowler, 1999-2012 */ 2 | /* Hercules Supported DAT Functions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | /* z/Architecture support - (c) Copyright Jan Jaeger, 1999-2012 */ 9 | 10 | #include "hstdinc.h" 11 | 12 | #ifndef _HENGINE_DLL_ 13 | #define _HENGINE_DLL_ 14 | #endif 15 | #ifndef _DAT_C 16 | #define _DAT_C 17 | #endif 18 | 19 | #include "hercules.h" 20 | 21 | #if !defined(OPTION_INLINE_DAT) || !defined(OPTION_INLINE_LOGICAL) 22 | 23 | #include "opcode.h" 24 | #include "inline.h" /* automatically #includes dat.h and vstore.h */ 25 | 26 | #if !defined(_GEN_ARCH) 27 | 28 | #if defined(_ARCHMODE2) 29 | #define _GEN_ARCH _ARCHMODE2 30 | #include "dat.c" 31 | #endif 32 | 33 | #if defined(_ARCHMODE3) 34 | #undef _GEN_ARCH 35 | #define _GEN_ARCH _ARCHMODE3 36 | #include "dat.c" 37 | #endif 38 | 39 | #endif /*!defined(_GEN_ARCH)*/ 40 | 41 | #endif /* !defined(OPTION_INLINE_DAT) || !defined(OPTION_INLINE_LOGICAL) */ 42 | -------------------------------------------------------------------------------- /debug-all.jobs: -------------------------------------------------------------------------------- 1 | 2 | * Parallel-build all "Debug" Configurations for all Platforms... 3 | 4 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Debug|Win32" /time /nologo 5 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Debug|x64" /time /nologo 6 | -------------------------------------------------------------------------------- /decNumber/decnumber.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/decNumber/decnumber.pdf -------------------------------------------------------------------------------- /decNumber/example7.c: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------ */ 2 | /* Decimal Number Library Demonstration program */ 3 | /* ------------------------------------------------------------------ */ 4 | /* Copyright (c) IBM Corporation, 2001, 2008. All rights reserved. */ 5 | /* ----------------------------------------------------------------+- */ 6 | /* right margin -->| */ 7 | 8 | // example7.c -- using decQuad to add two numbers together 9 | 10 | // compile: example7.c decContext.c decQuad.c 11 | 12 | #include "decQuad.h" // decQuad library 13 | #include // for printf 14 | 15 | int main(int argc, char *argv[]) { 16 | decQuad a, b; // working decQuads 17 | decContext set; // working context 18 | char string[DECQUAD_String]; // number->string buffer 19 | 20 | decContextTestEndian(0); // warn if DECLITEND is wrong 21 | 22 | if (argc<3) { // not enough words 23 | printf("Please supply two numbers to add.\n"); 24 | return 1; 25 | } 26 | decContextDefault(&set, DEC_INIT_DECQUAD); // initialize 27 | 28 | decQuadFromString(&a, argv[1], &set); 29 | decQuadFromString(&b, argv[2], &set); 30 | decQuadAdd(&a, &a, &b, &set); // a=a+b 31 | decQuadToString(&a, string); 32 | 33 | printf("%s + %s => %s\n", argv[1], argv[2], string); 34 | return 0; 35 | } // main 36 | -------------------------------------------------------------------------------- /fillfnam.h: -------------------------------------------------------------------------------- 1 | /* FILLFNAM.C (c) Copyright Roger Bowler, 1999-2012 */ 2 | /* Hercules filename completion functions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef __FILLFNAM_H__ 9 | #define __FILLFNAM_H__ 10 | 11 | int tab_pressed(char *cmdlinefull, size_t cmdlinelen, int *cmdoffset); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /hchan.h: -------------------------------------------------------------------------------- 1 | /* HCHAN.H (c) Copyright Ivan Warren, 2004-2012 */ 2 | /* Based on work (c)Roger Bowler, Jan Jaeger & Others 1999-2010 */ 3 | /* Generic channel device handler */ 4 | /* */ 5 | /* Released under "The Q Public License Version 1" */ 6 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 7 | /* Hercules. */ 8 | 9 | #ifndef __HCHAN_H__ 10 | #define __HCHAN_H__ 11 | /* 12 | * Hercules Generic Channel internal definitions 13 | * (c) Ivan Scott Warren 2004-2006 14 | * based on work 15 | * (c) Roger Bowler, Jan Jaeger and Others 1999-2006 16 | * This code is covered by the QPL Licence 17 | */ 18 | 19 | static int hchan_init_exec(DEVBLK *,int,char **); 20 | static int hchan_init_connect(DEVBLK *,int,char **); 21 | static int hchan_init_int(DEVBLK *,int,char **); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /hercdasd.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/hercdasd.ico -------------------------------------------------------------------------------- /hercdasd.rc: -------------------------------------------------------------------------------- 1 | /* HERCDASD.RC (C) Copyright "Fish" (David B. Trout), 2009-2015 */ 2 | /* Defines the Hercules dasd utilities resource information */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) */ 6 | /* as modifications to Hercules. */ 7 | 8 | /*********************************************************************/ 9 | 10 | #include "hercver.rc2" /* Product version resource information */ 11 | 12 | /*********************************************************************/ 13 | /* Icon with lowest ID value placed first to ensure the */ 14 | /* application icon remains consistent on all systems. */ 15 | 16 | 001 ICON DISCARDABLE "hercdasd.ico" 17 | 18 | /*********************************************************************/ 19 | -------------------------------------------------------------------------------- /hercifc.h: -------------------------------------------------------------------------------- 1 | /* HERCIFC.H (c) Copyright Roger Bowler, 2000-2012 */ 2 | /* (c) Copyright James A. Pierson, 2002-2009 */ 3 | /* Hercules Interface Control Program */ 4 | /* */ 5 | /* Released under "The Q Public License Version 1" */ 6 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 7 | /* Hercules. */ 8 | 9 | #ifndef __HERCIFC_H_ 10 | #define __HERCIFC_H_ 11 | 12 | #include "hifr.h" /* need struct hifr */ 13 | 14 | #define HERCIFC_CMD "hercifc" 15 | 16 | typedef struct _CTLREQ 17 | { 18 | long iType; 19 | int iProcID; 20 | unsigned long int iCtlOp; 21 | char szIFName[IFNAMSIZ]; 22 | union 23 | { 24 | struct hifr hifr; 25 | #if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__SOLARIS__) 26 | struct rtentry rtentry; 27 | #endif 28 | } 29 | iru; 30 | } 31 | CTLREQ, *PCTLREQ; 32 | #define CTLREQ_SIZE sizeof( CTLREQ ) 33 | #define CTLREQ_OP_DONE 0 34 | 35 | #endif // __HERCIFC_H_ 36 | -------------------------------------------------------------------------------- /herclogo.txt: -------------------------------------------------------------------------------- 1 | @ALIGN NONE 2 | @SBA 0,0 3 | @SF P 4 | Hercules Version : 5 | @SF HP 6 | $(VERSION) 7 | @NL 8 | @SF P 9 | Host name : 10 | @SF HP 11 | $(HOSTNAME) 12 | @NL 13 | @SF P 14 | Host OS : 15 | @SF HP 16 | $(HOSTOS)-$(HOSTOSREL) $(HOSTOSVER) 17 | @NL 18 | @SF P 19 | Host Architecture : 20 | @SF HP 21 | $(HOSTARCH) 22 | @NL 23 | @SF P 24 | Processors : 25 | @SF HP 26 | $(HOSTNUMCPUS) 27 | @NL 28 | @SF P 29 | LPAR Name : 30 | @SF HP 31 | $(LPARNAME) 32 | @NL 33 | @SF P 34 | Device number : 35 | @SF HP 36 | $(CSS):$(CCUU) 37 | @NL 38 | @SF P 39 | Subchannel : 40 | @SF HP 41 | $(SUBCHAN) 42 | @SF P 43 | @ALIGN LEFT 44 | 45 | 46 | HHH HHH The S/370, ESA/390 and z/Architecture 47 | HHH HHH Emulator 48 | HHH HHH 49 | HHH HHH EEEE RRR CCC U U L EEEE SSS 50 | HHHHHHHHHHHHHHHH E R R C U U L E S 51 | HHHHHHHHHHHHHHHH EEE RRR C U U L EEE SS 52 | HHHHHHHHHHHHHHHH E R R C U U L E S 53 | HHH HHH EEEE R R CCC UU LLLL EEEE SSS 54 | HHH HHH 55 | HHH HHH 56 | HHH HHH My PC thinks it's a MAINFRAME 57 | 58 | Copyright (c) 1999-2016 Roger Bowler, Jan Jaeger, and others 59 | -------------------------------------------------------------------------------- /hercmisc.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/hercmisc.ico -------------------------------------------------------------------------------- /hercmisc.rc: -------------------------------------------------------------------------------- 1 | /* HERCMISC.RC (C) Copyright "Fish" (David B. Trout), 2009-2015 */ 2 | /* Defines the Hercules misc. utilities resource information */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) */ 6 | /* as modifications to Hercules. */ 7 | 8 | /*********************************************************************/ 9 | 10 | #include "hercver.rc2" /* Product version resource information */ 11 | 12 | /*********************************************************************/ 13 | /* Icon with lowest ID value placed first to ensure the */ 14 | /* application icon remains consistent on all systems. */ 15 | 16 | 001 ICON DISCARDABLE "hercmisc.ico" 17 | 18 | /*********************************************************************/ 19 | -------------------------------------------------------------------------------- /hercprod.rc: -------------------------------------------------------------------------------- 1 | /* HERCPROD.RC (C) Copyright "Fish" (David B. Trout), 2009-2015 */ 2 | /* Defines the Hercules executables resource information */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) */ 6 | /* as modifications to Hercules. */ 7 | 8 | /*********************************************************************/ 9 | 10 | #include "hercver.rc2" /* Product version resource information */ 11 | 12 | /*********************************************************************/ 13 | /* Icon with lowest ID value placed first to ensure the */ 14 | /* application icon remains consistent on all systems. */ 15 | 16 | 001 ICON DISCARDABLE "hercules.ico" 17 | 18 | /*********************************************************************/ 19 | -------------------------------------------------------------------------------- /herctape.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/herctape.ico -------------------------------------------------------------------------------- /herctape.rc: -------------------------------------------------------------------------------- 1 | /* HERCTAPE.RC (C) Copyright "Fish" (David B. Trout), 2009-2015 */ 2 | /* Defines the Hercules tape utilities resource information */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) */ 6 | /* as modifications to Hercules. */ 7 | 8 | /*********************************************************************/ 9 | 10 | #include "hercver.rc2" /* Product version resource information */ 11 | 12 | /*********************************************************************/ 13 | /* Icon with lowest ID value placed first to ensure the */ 14 | /* application icon remains consistent on all systems. */ 15 | 16 | 001 ICON DISCARDABLE "herctape.ico" 17 | 18 | /*********************************************************************/ 19 | -------------------------------------------------------------------------------- /hercules.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/hercules.ico -------------------------------------------------------------------------------- /herror.h: -------------------------------------------------------------------------------- 1 | /* HERROR.H (c) Copyright Jan Jaeger, 2010-2012 */ 2 | /* Hercules Specfic Error codes */ 3 | 4 | #ifndef _HERROR_H 5 | #define _HERROR_H 6 | 7 | /* Generic codes */ 8 | #define HNOERROR (0) /* OK / NO ERROR */ 9 | #define HERROR (-1) /* Generic Error */ 10 | #define HERRINVCMD (-32767) /* Invalid command KEEP UNIQUE */ 11 | #define HERRTHREADACT (-5) /* Thread is still active */ 12 | /* CPU related error codes */ 13 | #define HERRCPUOFF (-2) /* CPU Offline */ 14 | #define HERRCPUONL (-3) /* CPU Online */ 15 | 16 | /* Device related error codes */ 17 | #define HERRDEVIDA (-2) /* Invalid Device Address */ 18 | 19 | 20 | 21 | 22 | 23 | #endif /* _HERROR_H */ 24 | -------------------------------------------------------------------------------- /hetmap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/hetmap.c -------------------------------------------------------------------------------- /hextapi.h: -------------------------------------------------------------------------------- 1 | /* HEXTAPI.H (c) Copyright Roger Bowler & Others, 2005-2012 */ 2 | /* Definition of Hercules External (public) APIs */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | /* 9 | +-------------------------------------------------+ 10 | | This file originally written by Ivan Warren | 11 | | THE STATE OF THIS API IS NOT YET FINALIZED | 12 | | AND THEREFORE, THE INTERFACE MAY CHANGE | 13 | +-------------------------------------------------+ 14 | */ 15 | 16 | #ifndef _HEXTAPI_H_ 17 | #define _HEXTAPI_H_ 18 | 19 | // ZZ FIXME: do we even NEED this header any longer?! 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /history.h: -------------------------------------------------------------------------------- 1 | /* HISTORY.H (c) Copyright Roger Bowler, 1999-2012 */ 2 | /* Hercules Command History Processes */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef HISTORY_H 9 | #define HISTORY_H 10 | 11 | extern int history_requested; 12 | extern char *historyCmdLine; 13 | 14 | int history_init(); 15 | int history_add(char *cmdline); 16 | int history_show(); 17 | int history_absolute_line(int x); 18 | int history_relative_line(int x); 19 | int history_next(void); 20 | int history_prev(void); 21 | int history_remove(void); 22 | #endif 23 | -------------------------------------------------------------------------------- /hqainc.h: -------------------------------------------------------------------------------- 1 | /* HQAINC.H (C) "Fish" (David B. Trout), 2013 */ 2 | /* Include user override header HQA.H if needed */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef _HQAINC_H_ 9 | #define _HQAINC_H_ 10 | 11 | /* 12 | ** The "hqa.h" header is an OPTIONAL header the user can create 13 | ** that contains overrides for any of Hercules's default values 14 | ** to provide for easier Quality Assurance testing of different 15 | ** build configurations without the need to modify any Hercules 16 | ** source code (header) files. 17 | */ 18 | 19 | #ifdef HAVE_HQA_H 20 | #include "hqa.h" /* user override to select */ 21 | #include "hqadefs.h" /* predefined QA scenarios */ 22 | #endif 23 | 24 | #endif /*_HQAINC_H_*/ 25 | -------------------------------------------------------------------------------- /html/README.md: -------------------------------------------------------------------------------- 1 | html 2 | ==== 3 | 4 | The Hercules web pages. 5 | -------------------------------------------------------------------------------- /html/hercmsct.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: CT - Channel-to-Channel Adapter 5 | Emulation 6 | 7 | 8 | 10 |

Hercules Version 3: System Messages: CT - Channel-to-Channel Adapter 11 | Emulation

12 |

13 | This page describes the channel-to-channel adapter emulation messages for 14 | the Hercules S/370, ESA/390, and z/Architecture emulator. 15 |

Messages

16 |
17 |
18 | HHCCT001I 19 | 20 |
21 |
Meaning 22 |
23 |
Issued by 24 |
ctcadpt.c, function 25 |
26 |
27 |


28 |

29 | If you have a question about Hercules, see the 30 | Hercules Frequently-Asked Questions page. 31 | 32 |


33 | back 34 |
35 |

Last updated $Date$ $Revision$

36 | 37 | 38 | -------------------------------------------------------------------------------- /html/hercmsda.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: DA - DASD Emulation 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: DA - DASD Emulation

10 |

11 | This page describes the DASD emulation messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator. 13 |

Messages

14 |
15 |
16 | HHCDA001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
ckddasd.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmshe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: HE - hetinit 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: HE - hetinit

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program hetinit. 13 |

Messages

14 |
15 |
16 | HHCHE001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
hetinit.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmshg.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: HG - hetget 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: HG - hetget

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program hetget. 13 |

Messages

14 |
15 |
16 | HHCHG001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
hetget.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmshm.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: HM - hetmap 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: HM - hetmap

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program hetmap. 13 |

Messages

14 |
15 |
16 | HHCHM001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
hetmap.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmshu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: HU - hetutil 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: HU - hetinit

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program hetutil. 13 |

Messages

14 |
15 |
16 | HHCHU001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
hetutil.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmssd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: SD - Socket Devices 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: SD - Socket Devices

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator common routines to support socket 13 | devices. 14 |

Messages

15 |
16 |
17 | HHCSD001I 18 | 19 |
20 |
Meaning 21 |
22 |
Issued by 23 |
panel.c, function 24 |
25 |
26 |


27 |

28 | If you have a question about Hercules, see the 29 | Hercules Frequently-Asked Questions page. 30 | 31 |


32 | back 33 |
34 |

Last updated $Date$ $Revision$

35 | 36 | 37 | -------------------------------------------------------------------------------- /html/hercmsta.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: TA - Tape Device Emulation 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: TA - Tape Device Emulation

10 |

11 | This page describes the tape device emulation messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator. 13 |

Messages

14 |
15 |
16 | HHCTA001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
tapedev.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmstc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: TC - tapecopy 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: TC - tapecopy

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program tapecopy. 13 |

Messages

14 |
15 |
16 | HHCTC001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
tapecopy.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmstm.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: TM - tapemap 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: TM - tapemap

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program tapemap. 13 |

Messages

14 |
15 |
16 | HHCTM001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
tapemap.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmsts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: TS - tapesplt 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: TS - tapesplt

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator utility program tapesplt. 13 |

Messages

14 |
15 |
16 | HHCTS001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
tapesplt.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercmstu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules Version 3: System Messages: TU - TUN/TAP device support 5 | 6 | 7 | 9 |

Hercules Version 3: System Messages: TU - TUN/TAP device support

10 |

11 | This page describes the messages for the Hercules S/370, 12 | ESA/390, and z/Architecture emulator TUN/TAP support routines. 13 |

Messages

14 |
15 |
16 | HHCTU001I 17 | 18 |
19 |
Meaning 20 |
21 |
Issued by 22 |
tuntap.c, function 23 |
24 |
25 |


26 |

27 | If you have a question about Hercules, see the 28 | Hercules Frequently-Asked Questions page. 29 | 30 |


31 | back 32 |
33 |

Last updated $Date$ $Revision$

34 | 35 | 36 | -------------------------------------------------------------------------------- /html/hercules.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hercules 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | <body> 15 | <p>Hercules uses frames. Your browser does not support frames.</p> 16 | </body> 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /html/images/back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/back.gif -------------------------------------------------------------------------------- /html/images/bkued.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/bkued.gif -------------------------------------------------------------------------------- /html/images/blueu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/blueu.gif -------------------------------------------------------------------------------- /html/images/dial1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/dial1.gif -------------------------------------------------------------------------------- /html/images/dial2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/dial2.gif -------------------------------------------------------------------------------- /html/images/dial3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/dial3.gif -------------------------------------------------------------------------------- /html/images/dial4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/dial4.gif -------------------------------------------------------------------------------- /html/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/favicon.ico -------------------------------------------------------------------------------- /html/images/greend.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/greend.gif -------------------------------------------------------------------------------- /html/images/greenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/greenu.gif -------------------------------------------------------------------------------- /html/images/hercpic-rblk-256.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/hercpic-rblk-256.gif -------------------------------------------------------------------------------- /html/images/hercpic-rblk-80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/hercpic-rblk-80.gif -------------------------------------------------------------------------------- /html/images/interruptd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/interruptd.gif -------------------------------------------------------------------------------- /html/images/interruptu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/interruptu.gif -------------------------------------------------------------------------------- /html/images/loadd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/loadd.gif -------------------------------------------------------------------------------- /html/images/loadoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/loadoffu.gif -------------------------------------------------------------------------------- /html/images/loadonu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/loadonu.gif -------------------------------------------------------------------------------- /html/images/loadu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/loadu.gif -------------------------------------------------------------------------------- /html/images/manoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/manoffu.gif -------------------------------------------------------------------------------- /html/images/manonu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/manonu.gif -------------------------------------------------------------------------------- /html/images/note.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/note.gif -------------------------------------------------------------------------------- /html/images/osi-certified-60x50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/osi-certified-60x50.jpg -------------------------------------------------------------------------------- /html/images/poweroffd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/poweroffd.gif -------------------------------------------------------------------------------- /html/images/poweroffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/poweroffu.gif -------------------------------------------------------------------------------- /html/images/poweronoffd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/poweronoffd.gif -------------------------------------------------------------------------------- /html/images/poweronoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/poweronoffu.gif -------------------------------------------------------------------------------- /html/images/poweronond.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/poweronond.gif -------------------------------------------------------------------------------- /html/images/powerononu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/powerononu.gif -------------------------------------------------------------------------------- /html/images/redd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/redd.gif -------------------------------------------------------------------------------- /html/images/redu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/redu.gif -------------------------------------------------------------------------------- /html/images/restartd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/restartd.gif -------------------------------------------------------------------------------- /html/images/restartu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/restartu.gif -------------------------------------------------------------------------------- /html/images/startd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/startd.gif -------------------------------------------------------------------------------- /html/images/startu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/startu.gif -------------------------------------------------------------------------------- /html/images/stopd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/stopd.gif -------------------------------------------------------------------------------- /html/images/stopu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/stopu.gif -------------------------------------------------------------------------------- /html/images/stored.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/stored.gif -------------------------------------------------------------------------------- /html/images/storeu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/storeu.gif -------------------------------------------------------------------------------- /html/images/sysoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/sysoffu.gif -------------------------------------------------------------------------------- /html/images/sysonu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/sysonu.gif -------------------------------------------------------------------------------- /html/images/telnetputtyconndata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetputtyconndata.png -------------------------------------------------------------------------------- /html/images/telnetputtysession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetputtysession.png -------------------------------------------------------------------------------- /html/images/telnetputtyterminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetputtyterminal.png -------------------------------------------------------------------------------- /html/images/telnetwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetwin.png -------------------------------------------------------------------------------- /html/images/telnetwinntconnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetwinntconnect.png -------------------------------------------------------------------------------- /html/images/telnetwinnttermpref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/telnetwinnttermpref.png -------------------------------------------------------------------------------- /html/images/translucentoffd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/translucentoffd.gif -------------------------------------------------------------------------------- /html/images/translucentoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/translucentoffu.gif -------------------------------------------------------------------------------- /html/images/translucentond.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/translucentond.gif -------------------------------------------------------------------------------- /html/images/translucentonu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/translucentonu.gif -------------------------------------------------------------------------------- /html/images/waitoffu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/waitoffu.gif -------------------------------------------------------------------------------- /html/images/waitonu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/html/images/waitonu.gif -------------------------------------------------------------------------------- /html/include/footer.htmlpart: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /html/include/header.htmlpart: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hercules 4 | 5 | 6 | -------------------------------------------------------------------------------- /html/tasks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tasks 4 | 5 | 6 |
The Hercules System/370, ESA/390, and z/Architecture Emulator, (c) Copyright by Roger Bowler, Jan Jaeger, and others
7 |
8 |

Tasks

9 | System Log
10 | IPL
11 |
12 |

Debugging

13 | Registers
14 | Storage
15 | Miscellaneous
16 | Devices
17 | Version Info 18 |
19 |

Configuration

20 | CPU
21 |
22 |

Registers

23 | GPRs
24 | CRs
25 | PSW 26 |
27 |

Information

28 | Documentation 29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /m4/ChangeLog: -------------------------------------------------------------------------------- 1 | 2005-05-12 gettextize 2 | 3 | * codeset.m4: Upgrade to gettext-0.14.4. 4 | * gettext.m4: Upgrade to gettext-0.14.4. 5 | * glibc2.m4: New file, from gettext-0.14.4. 6 | * glibc21.m4: Upgrade to gettext-0.14.4. 7 | * iconv.m4: Upgrade to gettext-0.14.4. 8 | * intdiv0.m4: Upgrade to gettext-0.14.4. 9 | * intmax.m4: New file, from gettext-0.14.4. 10 | * inttypes.m4: Upgrade to gettext-0.14.4. 11 | * inttypes_h.m4: Upgrade to gettext-0.14.4. 12 | * inttypes-pri.m4: Upgrade to gettext-0.14.4. 13 | * isc-posix.m4: Upgrade to gettext-0.14.4. 14 | * lcmessage.m4: Upgrade to gettext-0.14.4. 15 | * lib-ld.m4: Upgrade to gettext-0.14.4. 16 | * lib-link.m4: Upgrade to gettext-0.14.4. 17 | * lib-prefix.m4: Upgrade to gettext-0.14.4. 18 | * longdouble.m4: New file, from gettext-0.14.4. 19 | * longlong.m4: New file, from gettext-0.14.4. 20 | * nls.m4: New file, from gettext-0.14.4. 21 | * po.m4: New file, from gettext-0.14.4. 22 | * printf-posix.m4: New file, from gettext-0.14.4. 23 | * progtest.m4: Upgrade to gettext-0.14.4. 24 | * signed.m4: New file, from gettext-0.14.4. 25 | * size_max.m4: New file, from gettext-0.14.4. 26 | * stdint_h.m4: Upgrade to gettext-0.14.4. 27 | * uintmax_t.m4: Upgrade to gettext-0.14.4. 28 | * ulonglong.m4: Upgrade to gettext-0.14.4. 29 | * wchar_t.m4: New file, from gettext-0.14.4. 30 | * wint_t.m4: New file, from gettext-0.14.4. 31 | * xsize.m4: New file, from gettext-0.14.4. 32 | * Makefile.am (EXTRA_DIST): Add the new files. 33 | 34 | -------------------------------------------------------------------------------- /m4/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | EXTRA_DIST = \ 3 | ChangeLog \ 4 | codeset.m4 \ 5 | gettext.m4 \ 6 | glibc2.m4 \ 7 | glibc21.m4 \ 8 | iconv.m4 \ 9 | intdiv0.m4 \ 10 | intmax.m4 \ 11 | inttypes.m4 \ 12 | inttypes_h.m4 \ 13 | inttypes-pri.m4 \ 14 | isc-posix.m4 \ 15 | lcmessage.m4 \ 16 | lib-ld.m4 \ 17 | lib-link.m4 \ 18 | lib-prefix.m4 \ 19 | longdouble.m4 \ 20 | longlong.m4 \ 21 | Makefile.am \ 22 | nls.m4 \ 23 | po.m4 \ 24 | printf-posix.m4 \ 25 | progtest.m4 \ 26 | signed.m4 \ 27 | size_max.m4 \ 28 | stdint_h.m4 \ 29 | uintmax_t.m4 \ 30 | ulonglong.m4 \ 31 | wchar_t.m4 \ 32 | wint_t.m4 \ 33 | xsize.m4 34 | -------------------------------------------------------------------------------- /m4/codeset.m4: -------------------------------------------------------------------------------- 1 | # codeset.m4 serial AM1 (gettext-0.10.40) 2 | dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | 9 | AC_DEFUN([AM_LANGINFO_CODESET], 10 | [ 11 | AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, 12 | [AC_TRY_LINK([#include ], 13 | [char* cs = nl_langinfo(CODESET);], 14 | am_cv_langinfo_codeset=yes, 15 | am_cv_langinfo_codeset=no) 16 | ]) 17 | if test $am_cv_langinfo_codeset = yes; then 18 | AC_DEFINE(HAVE_LANGINFO_CODESET, 1, 19 | [Define if you have and nl_langinfo(CODESET).]) 20 | fi 21 | ]) 22 | -------------------------------------------------------------------------------- /m4/glibc2.m4: -------------------------------------------------------------------------------- 1 | # glibc2.m4 serial 1 2 | dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | # Test for the GNU C Library, version 2.0 or newer. 8 | # From Bruno Haible. 9 | 10 | AC_DEFUN([gt_GLIBC2], 11 | [ 12 | AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, 13 | ac_cv_gnu_library_2, 14 | [AC_EGREP_CPP([Lucky GNU user], 15 | [ 16 | #include 17 | #ifdef __GNU_LIBRARY__ 18 | #if (__GLIBC__ >= 2) 19 | Lucky GNU user 20 | #endif 21 | #endif 22 | ], 23 | ac_cv_gnu_library_2=yes, 24 | ac_cv_gnu_library_2=no) 25 | ] 26 | ) 27 | AC_SUBST(GLIBC2) 28 | GLIBC2="$ac_cv_gnu_library_2" 29 | ] 30 | ) 31 | -------------------------------------------------------------------------------- /m4/glibc21.m4: -------------------------------------------------------------------------------- 1 | # glibc21.m4 serial 3 2 | dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | # Test for the GNU C Library, version 2.1 or newer. 8 | # From Bruno Haible. 9 | 10 | AC_DEFUN([gl_GLIBC21], 11 | [ 12 | AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, 13 | ac_cv_gnu_library_2_1, 14 | [AC_EGREP_CPP([Lucky GNU user], 15 | [ 16 | #include 17 | #ifdef __GNU_LIBRARY__ 18 | #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) 19 | Lucky GNU user 20 | #endif 21 | #endif 22 | ], 23 | ac_cv_gnu_library_2_1=yes, 24 | ac_cv_gnu_library_2_1=no) 25 | ] 26 | ) 27 | AC_SUBST(GLIBC21) 28 | GLIBC21="$ac_cv_gnu_library_2_1" 29 | ] 30 | ) 31 | -------------------------------------------------------------------------------- /m4/intmax.m4: -------------------------------------------------------------------------------- 1 | # intmax.m4 serial 2 (gettext-0.14.2) 2 | dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | dnl Test whether the system has the 'intmax_t' type, but don't attempt to 9 | dnl find a replacement if it is lacking. 10 | 11 | AC_DEFUN([gt_TYPE_INTMAX_T], 12 | [ 13 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) 14 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) 15 | AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, 16 | [AC_TRY_COMPILE([ 17 | #include 18 | #include 19 | #if HAVE_STDINT_H_WITH_UINTMAX 20 | #include 21 | #endif 22 | #if HAVE_INTTYPES_H_WITH_UINTMAX 23 | #include 24 | #endif 25 | ], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) 26 | if test $gt_cv_c_intmax_t = yes; then 27 | AC_DEFINE(HAVE_INTMAX_T, 1, 28 | [Define if you have the 'intmax_t' type in or .]) 29 | fi 30 | ]) 31 | -------------------------------------------------------------------------------- /m4/inttypes-pri.m4: -------------------------------------------------------------------------------- 1 | # inttypes-pri.m4 serial 1 (gettext-0.11.4) 2 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | 9 | # Define PRI_MACROS_BROKEN if exists and defines the PRI* 10 | # macros to non-string values. This is the case on AIX 4.3.3. 11 | 12 | AC_DEFUN([gt_INTTYPES_PRI], 13 | [ 14 | AC_REQUIRE([gt_HEADER_INTTYPES_H]) 15 | if test $gt_cv_header_inttypes_h = yes; then 16 | AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], 17 | gt_cv_inttypes_pri_broken, 18 | [ 19 | AC_TRY_COMPILE([#include 20 | #ifdef PRId32 21 | char *p = PRId32; 22 | #endif 23 | ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) 24 | ]) 25 | fi 26 | if test "$gt_cv_inttypes_pri_broken" = yes; then 27 | AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, 28 | [Define if exists and defines unusable PRI* macros.]) 29 | fi 30 | ]) 31 | -------------------------------------------------------------------------------- /m4/inttypes.m4: -------------------------------------------------------------------------------- 1 | # inttypes.m4 serial 1 (gettext-0.11.4) 2 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | # Define HAVE_INTTYPES_H if exists and doesn't clash with 10 | # . 11 | 12 | AC_DEFUN([gt_HEADER_INTTYPES_H], 13 | [ 14 | AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, 15 | [ 16 | AC_TRY_COMPILE( 17 | [#include 18 | #include ], 19 | [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) 20 | ]) 21 | if test $gt_cv_header_inttypes_h = yes; then 22 | AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, 23 | [Define if exists and doesn't clash with .]) 24 | fi 25 | ]) 26 | -------------------------------------------------------------------------------- /m4/inttypes_h.m4: -------------------------------------------------------------------------------- 1 | # inttypes_h.m4 serial 6 2 | dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, 10 | # doesn't clash with , and declares uintmax_t. 11 | 12 | AC_DEFUN([gl_AC_HEADER_INTTYPES_H], 13 | [ 14 | AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, 15 | [AC_TRY_COMPILE( 16 | [#include 17 | #include ], 18 | [uintmax_t i = (uintmax_t) -1;], 19 | gl_cv_header_inttypes_h=yes, 20 | gl_cv_header_inttypes_h=no)]) 21 | if test $gl_cv_header_inttypes_h = yes; then 22 | AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, 23 | [Define if exists, doesn't clash with , 24 | and declares uintmax_t. ]) 25 | fi 26 | ]) 27 | -------------------------------------------------------------------------------- /m4/isc-posix.m4: -------------------------------------------------------------------------------- 1 | # isc-posix.m4 serial 2 (gettext-0.11.2) 2 | dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. 8 | 9 | # This test replaces the one in autoconf. 10 | # Currently this macro should have the same name as the autoconf macro 11 | # because gettext's gettext.m4 (distributed in the automake package) 12 | # still uses it. Otherwise, the use in gettext.m4 makes autoheader 13 | # give these diagnostics: 14 | # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX 15 | # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX 16 | 17 | undefine([AC_ISC_POSIX]) 18 | 19 | AC_DEFUN([AC_ISC_POSIX], 20 | [ 21 | dnl This test replaces the obsolescent AC_ISC_POSIX kludge. 22 | AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) 23 | ] 24 | ) 25 | -------------------------------------------------------------------------------- /m4/lcmessage.m4: -------------------------------------------------------------------------------- 1 | # lcmessage.m4 serial 4 (gettext-0.14.2) 2 | dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | dnl 7 | dnl This file can can be used in projects which are not available under 8 | dnl the GNU General Public License or the GNU Library General Public 9 | dnl License but which still want to provide support for the GNU gettext 10 | dnl functionality. 11 | dnl Please note that the actual code of the GNU gettext library is covered 12 | dnl by the GNU Library General Public License, and the rest of the GNU 13 | dnl gettext package package is covered by the GNU General Public License. 14 | dnl They are *not* in the public domain. 15 | 16 | dnl Authors: 17 | dnl Ulrich Drepper , 1995. 18 | 19 | # Check whether LC_MESSAGES is available in . 20 | 21 | AC_DEFUN([gt_LC_MESSAGES], 22 | [ 23 | AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, 24 | [AC_TRY_LINK([#include ], [return LC_MESSAGES], 25 | gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) 26 | if test $gt_cv_val_LC_MESSAGES = yes; then 27 | AC_DEFINE(HAVE_LC_MESSAGES, 1, 28 | [Define if your file defines LC_MESSAGES.]) 29 | fi 30 | ]) 31 | -------------------------------------------------------------------------------- /m4/longdouble.m4: -------------------------------------------------------------------------------- 1 | # longdouble.m4 serial 1 (gettext-0.12) 2 | dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | dnl Test whether the compiler supports the 'long double' type. 9 | dnl Prerequisite: AC_PROG_CC 10 | 11 | AC_DEFUN([gt_TYPE_LONGDOUBLE], 12 | [ 13 | AC_CACHE_CHECK([for long double], gt_cv_c_long_double, 14 | [if test "$GCC" = yes; then 15 | gt_cv_c_long_double=yes 16 | else 17 | AC_TRY_COMPILE([ 18 | /* The Stardent Vistra knows sizeof(long double), but does not support it. */ 19 | long double foo = 0.0; 20 | /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ 21 | int array [2*(sizeof(long double) >= sizeof(double)) - 1]; 22 | ], , 23 | gt_cv_c_long_double=yes, gt_cv_c_long_double=no) 24 | fi]) 25 | if test $gt_cv_c_long_double = yes; then 26 | AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) 27 | fi 28 | ]) 29 | -------------------------------------------------------------------------------- /m4/longlong.m4: -------------------------------------------------------------------------------- 1 | # longlong.m4 serial 5 2 | dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | # Define HAVE_LONG_LONG if 'long long' works. 10 | 11 | AC_DEFUN([gl_AC_TYPE_LONG_LONG], 12 | [ 13 | AC_CACHE_CHECK([for long long], ac_cv_type_long_long, 14 | [AC_TRY_LINK([long long ll = 1LL; int i = 63;], 15 | [long long llmax = (long long) -1; 16 | return ll << i | ll >> i | llmax / ll | llmax % ll;], 17 | ac_cv_type_long_long=yes, 18 | ac_cv_type_long_long=no)]) 19 | if test $ac_cv_type_long_long = yes; then 20 | AC_DEFINE(HAVE_LONG_LONG, 1, 21 | [Define if you have the 'long long' type.]) 22 | fi 23 | ]) 24 | -------------------------------------------------------------------------------- /m4/signed.m4: -------------------------------------------------------------------------------- 1 | # signed.m4 serial 1 (gettext-0.10.40) 2 | dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | 9 | AC_DEFUN([bh_C_SIGNED], 10 | [ 11 | AC_CACHE_CHECK([for signed], bh_cv_c_signed, 12 | [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)]) 13 | if test $bh_cv_c_signed = no; then 14 | AC_DEFINE(signed, , 15 | [Define to empty if the C compiler doesn't support this keyword.]) 16 | fi 17 | ]) 18 | -------------------------------------------------------------------------------- /m4/stdint_h.m4: -------------------------------------------------------------------------------- 1 | # stdint_h.m4 serial 5 2 | dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | # Define HAVE_STDINT_H_WITH_UINTMAX if exists, 10 | # doesn't clash with , and declares uintmax_t. 11 | 12 | AC_DEFUN([gl_AC_HEADER_STDINT_H], 13 | [ 14 | AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, 15 | [AC_TRY_COMPILE( 16 | [#include 17 | #include ], 18 | [uintmax_t i = (uintmax_t) -1;], 19 | gl_cv_header_stdint_h=yes, 20 | gl_cv_header_stdint_h=no)]) 21 | if test $gl_cv_header_stdint_h = yes; then 22 | AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, 23 | [Define if exists, doesn't clash with , 24 | and declares uintmax_t. ]) 25 | fi 26 | ]) 27 | -------------------------------------------------------------------------------- /m4/uintmax_t.m4: -------------------------------------------------------------------------------- 1 | # uintmax_t.m4 serial 9 2 | dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | AC_PREREQ(2.13) 10 | 11 | # Define uintmax_t to 'unsigned long' or 'unsigned long long' 12 | # if it is not already defined in or . 13 | 14 | AC_DEFUN([gl_AC_TYPE_UINTMAX_T], 15 | [ 16 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) 17 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) 18 | if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then 19 | AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) 20 | test $ac_cv_type_unsigned_long_long = yes \ 21 | && ac_type='unsigned long long' \ 22 | || ac_type='unsigned long' 23 | AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, 24 | [Define to unsigned long or unsigned long long 25 | if and don't define.]) 26 | else 27 | AC_DEFINE(HAVE_UINTMAX_T, 1, 28 | [Define if you have the 'uintmax_t' type in or .]) 29 | fi 30 | ]) 31 | -------------------------------------------------------------------------------- /m4/ulonglong.m4: -------------------------------------------------------------------------------- 1 | # ulonglong.m4 serial 4 2 | dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Paul Eggert. 8 | 9 | # Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. 10 | 11 | AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], 12 | [ 13 | AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, 14 | [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;], 15 | [unsigned long long ullmax = (unsigned long long) -1; 16 | return ull << i | ull >> i | ullmax / ull | ullmax % ull;], 17 | ac_cv_type_unsigned_long_long=yes, 18 | ac_cv_type_unsigned_long_long=no)]) 19 | if test $ac_cv_type_unsigned_long_long = yes; then 20 | AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, 21 | [Define if you have the 'unsigned long long' type.]) 22 | fi 23 | ]) 24 | -------------------------------------------------------------------------------- /m4/wchar_t.m4: -------------------------------------------------------------------------------- 1 | # wchar_t.m4 serial 1 (gettext-0.12) 2 | dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | dnl Test whether has the 'wchar_t' type. 9 | dnl Prerequisite: AC_PROG_CC 10 | 11 | AC_DEFUN([gt_TYPE_WCHAR_T], 12 | [ 13 | AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, 14 | [AC_TRY_COMPILE([#include 15 | wchar_t foo = (wchar_t)'\0';], , 16 | gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) 17 | if test $gt_cv_c_wchar_t = yes; then 18 | AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) 19 | fi 20 | ]) 21 | -------------------------------------------------------------------------------- /m4/wint_t.m4: -------------------------------------------------------------------------------- 1 | # wint_t.m4 serial 1 (gettext-0.12) 2 | dnl Copyright (C) 2003 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | dnl From Bruno Haible. 8 | dnl Test whether has the 'wint_t' type. 9 | dnl Prerequisite: AC_PROG_CC 10 | 11 | AC_DEFUN([gt_TYPE_WINT_T], 12 | [ 13 | AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, 14 | [AC_TRY_COMPILE([#include 15 | wint_t foo = (wchar_t)'\0';], , 16 | gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) 17 | if test $gt_cv_c_wint_t = yes; then 18 | AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) 19 | fi 20 | ]) 21 | -------------------------------------------------------------------------------- /m4/xsize.m4: -------------------------------------------------------------------------------- 1 | # xsize.m4 serial 3 2 | dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. 3 | dnl This file is free software; the Free Software Foundation 4 | dnl gives unlimited permission to copy and/or distribute it, 5 | dnl with or without modifications, as long as this notice is preserved. 6 | 7 | AC_DEFUN([gl_XSIZE], 8 | [ 9 | dnl Prerequisites of lib/xsize.h. 10 | AC_REQUIRE([gl_SIZE_MAX]) 11 | AC_REQUIRE([AC_C_INLINE]) 12 | AC_CHECK_HEADERS(stdint.h) 13 | ]) 14 | -------------------------------------------------------------------------------- /makefile.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # MAKEFILE.MSVC (c) Copyright Roger Bowler, 2005 3 | # 4 | # Build Hercules for Win32 using MSVC and nmake (static link version) 5 | # 6 | # *************************************************************************** 7 | !include makefile-dllmod.msvc 8 | -------------------------------------------------------------------------------- /man/Makefile.am: -------------------------------------------------------------------------------- 1 | man_MANS = \ 2 | cckd.4 \ 3 | cckddiag.1 \ 4 | dasdseq.1 \ 5 | Makefile.am \ 6 | vmfplc2.1 7 | 8 | EXTRA_DIST = $(man_MANS) 9 | -------------------------------------------------------------------------------- /memrchr.c: -------------------------------------------------------------------------------- 1 | /* MEMRCHR.C (c) Copyright Roger Bowler, 2006-2012 */ 2 | /* Hercules Right to Left memory scan */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #include "hstdinc.h" 9 | 10 | #define _MEMRCHR_C_ 11 | #define _HUTIL_DLL_ 12 | 13 | #include "hercules.h" 14 | 15 | #if !defined( HAVE_MEMRCHR ) 16 | 17 | #include "memrchr.h" 18 | 19 | DLL_EXPORT void *memrchr(const void *buf, int c, size_t num) 20 | { 21 | unsigned char *pMem; 22 | if (num == 0) 23 | { 24 | return NULL; 25 | } 26 | for (pMem = (unsigned char *) buf + num - 1; pMem >= (unsigned char *) buf; pMem--) 27 | { 28 | if (*pMem == (unsigned char) c) break; 29 | } 30 | if (pMem >= (unsigned char *) buf) 31 | { 32 | return ((void *) pMem); 33 | } 34 | return NULL; 35 | } 36 | 37 | #endif // !defined(HAVE_MEMRCHR) 38 | -------------------------------------------------------------------------------- /msvc.makefile.includes/BZIP2_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # BZIP2_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2007 5 | # -------------------------------------------------------------------------- 6 | # 7 | # Sets BZIP2-compression-related compiler/linker flags & #defines... 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF BZIP2_DIR 12 | BZIP2_DLL = $(BZIP2_DIR)\libbz2.dll 13 | BZIP2_LIB = $(BZIP2_DIR)\libbz2.lib 14 | BZIP2_INC = $(BZIP2_DIR) 15 | LIBS = $(LIBS) "$(BZIP2_LIB)" 16 | cflags = $(cflags) /D HAVE_BZLIB_H /I"$(BZIP2_INC)" 17 | !ENDIF 18 | -------------------------------------------------------------------------------- /msvc.makefile.includes/BZIP2_RULES.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # BZIP2_RULES.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2010 5 | # -------------------------------------------------------------------------- 6 | # 7 | # BZIP2 build rules 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF BZIP2_DIR 12 | 13 | $(X)libbz2.dll: 14 | XCOPY "$(BZIP2_DLL)" $(X) /V /C /F /H /R /K /Y 15 | 16 | alllibbz2: allHercules \ 17 | $(X)libbz2.dll 18 | 19 | !ELSE 20 | 21 | alllibbz2: allHercules 22 | 23 | !ENDIF 24 | 25 | # NOTE: to be safe, since this member contains build rules, we need to 26 | # make sure there's always a blank line following the last build rule 27 | # in the member so that nmake doesn't complain or otherwise treat the 28 | # statements immediately following the original !INCLUDE statement as 29 | # part of the build rule actions. Thus the purpose of the comments you 30 | # are now reading as the very last few lines in every build rule member. 31 | -------------------------------------------------------------------------------- /msvc.makefile.includes/EXTPKG_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # SFLIB_FLAGS.msvc (!INCLUDE'ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) 2016 Copyright by Stephen R. Orso 5 | # -------------------------------------------------------------------------- 6 | # 7 | # Set include and linkedit libraries for external packages required 8 | # to build Hercules. 9 | # 10 | # At present, only Softfloat 3a is set up as an external package. 11 | # 12 | # Note that the packages set up in this file are REQUIRED for a 13 | # successful build, and if any are missing, a message is issued and the 14 | # build is terminated. 15 | # 16 | # *************************************************************************** 17 | 18 | 19 | !IFDEF SFLIB_DIR 20 | !IFDEF NODEBUG 21 | SFLIB_LIB = $(SFLIB_DIR)\lib\SoftFloat.lib 22 | !ELSE 23 | SFLIB_LIB = $(SFLIB_DIR)\lib\SoftFloat_D.lib 24 | !ENDIF 25 | 26 | !IF !EXIST("$(SFLIB_LIB)") 27 | !ERROR SFLIB_DIR "$(SFLIB_LIB)" does not exist. Check "$(SFLIB_DIR)" contents. 28 | !ENDIF 29 | 30 | SFLIB_INC = $(SFLIB_DIR)/include 31 | LIBS = $(LIBS) "$(SFLIB_LIB)" 32 | cflags = $(cflags) /I"$(SFLIB_INC)" 33 | !ENDIF 34 | -------------------------------------------------------------------------------- /msvc.makefile.includes/HQA_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # HQA_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (C) Software Development Laboratories, 2013 5 | # -------------------------------------------------------------------------- 6 | # 7 | # QA Build Configuration Testing support 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF HQA_INC 12 | cflags = $(cflags) /D HAVE_HQA_H /I"$(HQA_INC)" 13 | !ENDIF 14 | -------------------------------------------------------------------------------- /msvc.makefile.includes/IPV6_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # IPV6_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Enrico Sorichetti, 2012 5 | # -------------------------------------------------------------------------- 6 | # Sets compiler flags for IPV6 support 7 | # 8 | # *************************************************************************** 9 | 10 | !IFDEF DISABLE_IPV6 11 | 12 | !MESSAGE IPV6 SUPPORT DISABLED 13 | 14 | !ELSE 15 | 16 | ipv6_flags = 17 | ipv6_flags = $(ipv6_flags) /D ENABLE_IPV6 18 | !MESSAGE IPV6 FLAGS $(ipv6_flags) 19 | cflags = $(cflags) $(ipv6_flags) 20 | 21 | !ENDIF 22 | 23 | # End of Flags for IPV6 support 24 | -------------------------------------------------------------------------------- /msvc.makefile.includes/OUTDIR_RULES.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # OUTDIR_RULES.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2007 5 | # -------------------------------------------------------------------------- 6 | # 7 | # Build rules for creating o/p directories... 8 | # 9 | # *************************************************************************** 10 | 11 | $(OBJDIR): 12 | if not exist "$(OBJDIR)\$(NULL)" mkdir $(OBJDIR) 13 | 14 | $(EXEDIR): 15 | if not exist "$(EXEDIR)\$(NULL)" mkdir $(EXEDIR) 16 | 17 | $(PDBDIR): 18 | if not exist "$(PDBDIR)\$(NULL)" mkdir $(PDBDIR) 19 | 20 | $(MAPDIR): 21 | if not exist "$(MAPDIR)\$(NULL)" mkdir $(MAPDIR) 22 | 23 | $(INCDIR): 24 | if not exist "$(INCDIR)\$(NULL)" mkdir $(INCDIR) 25 | 26 | !IFDEF ASSEMBLY_LISTINGS 27 | $(ASMDIR): 28 | if not exist "$(ASMDIR)\$(NULL)" mkdir $(ASMDIR) 29 | 30 | !ENDIF 31 | 32 | # NOTE: to be safe, since this member contains build rules, we need to 33 | # make sure there's always a blank line following the last build rule 34 | # in the member so that nmake doesn't complain or otherwise treat the 35 | # statements immediately following the original !INCLUDE statement as 36 | # part of the build rule actions. Thus the purpose of the comments you 37 | # are now reading as the very last few lines in every build rule member. 38 | -------------------------------------------------------------------------------- /msvc.makefile.includes/PCRE_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # PCRE_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2007 5 | # -------------------------------------------------------------------------- 6 | # 7 | # Sets PCRE-related compiler/linker flags & #defines... 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF PCRE_DIR 12 | LIBS = $(LIBS) "$(PCRE_LIBPATH1)" 13 | LIBS = $(LIBS) "$(PCRE_LIBPATH2)" 14 | cflags = $(cflags) /D HAVE_PCRE /I"$(PCRE_INCDIR)" /D PCRE_INCNAME=\"$(PCRE_INCNAME)\" 15 | !ENDIF 16 | -------------------------------------------------------------------------------- /msvc.makefile.includes/PCRE_RULES.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # PCRE_RULES.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2010 5 | # -------------------------------------------------------------------------- 6 | # 7 | # PCRE build rules 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF PCRE_DIR 12 | 13 | $(X)$(PCRE_DLLNAME1): 14 | XCOPY "$(PCRE_DLLPATH1)" $(X) /V /C /F /H /R /K /Y 15 | 16 | $(X)$(PCRE_DLLNAME2): 17 | XCOPY "$(PCRE_DLLPATH2)" $(X) /V /C /F /H /R /K /Y 18 | 19 | allpcre: allHercules \ 20 | $(X)$(PCRE_DLLNAME1) \ 21 | $(X)$(PCRE_DLLNAME2) 22 | 23 | !ELSE 24 | 25 | allpcre: allHercules 26 | 27 | !ENDIF 28 | 29 | # NOTE: to be safe, since this member contains build rules, we need to 30 | # make sure there's always a blank line following the last build rule 31 | # in the member so that nmake doesn't complain or otherwise treat the 32 | # statements immediately following the original !INCLUDE statement as 33 | # part of the build rule actions. Thus the purpose of the comments you 34 | # are now reading as the very last few lines in every build rule member. 35 | -------------------------------------------------------------------------------- /msvc.makefile.includes/REXX_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # REXX_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Enrico Sorichetti, 2012 5 | # 6 | # based on the previous REXX_FLAGS.msvc (c) Copyright Roger Bowler, 2010-2011 7 | # 8 | # -------------------------------------------------------------------------- 9 | # 10 | # Set compiler and linker flags for REXX support 11 | # 12 | # *************************************************************************** 13 | 14 | !IFDEF OBJECT_REXX_HDR_DIR 15 | 16 | oorexx_flags = 17 | oorexx_flags = $(oorexx_flags) /D ENABLE_OBJECT_REXX /I"$(OBJECT_REXX_HDR_DIR)" 18 | oorexx_flags = $(oorexx_flags) /D HAVE_REXX_H 19 | oorexx_flags = $(oorexx_flags) /D HAVE_OOREXXAPI_H 20 | 21 | !MESSAGE OBJECT REXX FLAGS $(oorexx_flags) 22 | 23 | cflags = $(cflags) $(oorexx_flags) 24 | 25 | !ENDIF 26 | 27 | # -------------------------------------------------------------------------- 28 | 29 | !IFDEF REGINA_REXX_HDR_DIR 30 | 31 | regina_flags = 32 | regina_flags = $(regina_flags) /D ENABLE_REGINA_REXX /I"$(REGINA_REXX_HDR_DIR)" 33 | regina_flags = $(regina_flags) /D HAVE_REXXSAA_H 34 | 35 | !MESSAGE REGINA REXX FLAGS $(regina_flags) 36 | 37 | cflags = $(cflags) $(regina_flags) 38 | 39 | !ENDIF 40 | 41 | # -------------------------------------------------------------------------- 42 | 43 | # End of Rexx Flags for REXX support 44 | -------------------------------------------------------------------------------- /msvc.makefile.includes/REXX_RULES.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # REXX_RULES.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Enrico Sorichetti, 2012 5 | # 6 | # based on the previous REXX_RULES.msvc (c) Copyright Roger Bowler, 2010-2011 7 | # 8 | # -------------------------------------------------------------------------- 9 | # 10 | # Build rules for REXX support 11 | # 12 | # Since REXX support if FULLY dynamic ( Object Rexx / Regina Rexx ) 13 | # Nothing else is needed here 14 | # 15 | # *************************************************************************** 16 | 17 | allrexx: allHercules 18 | 19 | # End of build rules for REXX support 20 | -------------------------------------------------------------------------------- /msvc.makefile.includes/ZLIB_FLAGS.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # ZLIB_FLAGS.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2007 5 | # -------------------------------------------------------------------------- 6 | # 7 | # Sets ZLIB-compression-related compiler/linker flags & #defines... 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF ZLIB_DIR 12 | ZLIB_DLL = $(ZLIB_DIR)\zlib1.dll 13 | ZLIB_LIB = $(ZLIB_DIR)\lib\zdll.lib 14 | ZLIB_INC = $(ZLIB_DIR)\include 15 | LIBS = $(LIBS) "$(ZLIB_LIB)" 16 | cflags = $(cflags) /D HAVE_LIBZ /D HAVE_ZLIB_H /I"$(ZLIB_INC)" 17 | !ENDIF 18 | -------------------------------------------------------------------------------- /msvc.makefile.includes/ZLIB_RULES.msvc: -------------------------------------------------------------------------------- 1 | # *************************************************************************** 2 | # ZLIB_RULES.msvc (!INCLUDE ed by "makefile-dllmod.msvc") 3 | # -------------------------------------------------------------------------- 4 | # (c) Copyright Roger Bowler, 2005-2010 5 | # -------------------------------------------------------------------------- 6 | # 7 | # ZLIB build rules 8 | # 9 | # *************************************************************************** 10 | 11 | !IFDEF ZLIB_DIR 12 | 13 | $(X)zlib1.dll: 14 | XCOPY "$(ZLIB_DLL)" $(X) /V /C /F /H /R /K /Y 15 | 16 | allzlib: allHercules \ 17 | $(X)zlib1.dll 18 | 19 | !ELSE 20 | 21 | allzlib: allHercules 22 | 23 | !ENDIF 24 | 25 | # NOTE: to be safe, since this member contains build rules, we need to 26 | # make sure there's always a blank line following the last build rule 27 | # in the member so that nmake doesn't complain or otherwise treat the 28 | # statements immediately following the original !INCLUDE statement as 29 | # part of the build rule actions. Thus the purpose of the comments you 30 | # are now reading as the very last few lines in every build rule member. 31 | -------------------------------------------------------------------------------- /parser.h: -------------------------------------------------------------------------------- 1 | /* PARSER.H (c) Copyright Roger Bowler, 1999-2012 */ 2 | /* Hercules Simple parameter parser */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #if !defined( _PARSER_H_ ) 9 | #define _PARSER_H_ 10 | 11 | #include "hercules.h" 12 | 13 | #ifndef _PARSER_C_ 14 | #ifndef _HUTIL_DLL_ 15 | #define PAR_DLL_IMPORT DLL_IMPORT 16 | #else /* _HUTIL_DLL_ */ 17 | #define PAR_DLL_IMPORT extern 18 | #endif /* _HUTIL_DLL_ */ 19 | #else 20 | #define PAR_DLL_IMPORT DLL_EXPORT 21 | #endif 22 | 23 | #define MAX_PARSER_STRLEN 79 24 | #define _PARSER_STR_TYPE( len ) "%" QSTR( len ) "s" 25 | #define PARSER_STR_TYPE _PARSER_STR_TYPE( MAX_PARSER_STRLEN ) 26 | 27 | typedef struct _parser 28 | { 29 | char *key; 30 | char *fmt; 31 | } PARSER; 32 | 33 | PAR_DLL_IMPORT int parser( PARSER *, char *, void * ); 34 | 35 | #endif /* !defined( _PARSER_H_ ) */ 36 | -------------------------------------------------------------------------------- /retail-all.jobs: -------------------------------------------------------------------------------- 1 | 2 | * Parallel-build all "Release" Configurations for all Platforms... 3 | 4 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Release|Win32" /time /nologo 5 | VCBUILD %VCBUILDOPT% "Hercules.vcproj" "Release|x64" /time /nologo 6 | -------------------------------------------------------------------------------- /scripts/cmpsc.cnf: -------------------------------------------------------------------------------- 1 | rexx 2 | maxcpu 1 3 | numcpu 1 4 | cpumodel 2097 5 | cpuserial 000000 6 | panrate fast 7 | archlvl s/390 # (cmpsc.txt needed execution arch) 8 | mainsize 16 # (cmpsc.txt test program minimum) 9 | 0000 3215-C noprompt # (at least one device is required) 10 | -------------------------------------------------------------------------------- /scripts/hbasic1.rexx: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who " started " 19 | say _who " version " _ver 20 | say _who " source " _src 21 | say _who " HOSTENV " _env 22 | say _who " date " date() 23 | say _who " time " time() 24 | if args = "" then do 25 | say _who " " "No arguments given " 26 | _ret = 0 27 | end 28 | else do 29 | say _who " args " ">>>"args"<<<" 30 | _ret = args 31 | end 32 | say _who " ended " 33 | 34 | exit _ret 35 | 36 | 37 | -------------------------------------------------------------------------------- /scripts/hbasic2.rex: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who " started " 19 | say _who " version " _ver 20 | say _who " source " _src 21 | say _who " HOSTENV " _env 22 | say _who " date " date() 23 | say _who " time " time() 24 | if args = "" then do 25 | say _who " " "No arguments given " 26 | _ret = 0 27 | end 28 | else do 29 | say _who " args " ">>>"args"<<<" 30 | _ret = args 31 | end 32 | say _who " ended " 33 | 34 | exit _ret 35 | 36 | 37 | -------------------------------------------------------------------------------- /scripts/hbasic3.cmd: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who " started " 19 | say _who " version " _ver 20 | say _who " source " _src 21 | say _who " HOSTENV " _env 22 | say _who " date " date() 23 | say _who " time " time() 24 | if args = "" then do 25 | say _who " " "No arguments given " 26 | _ret = 0 27 | end 28 | else do 29 | say _who " args " ">>>"args"<<<" 30 | _ret = args 31 | end 32 | say _who " ended " 33 | 34 | exit _ret 35 | 36 | 37 | -------------------------------------------------------------------------------- /scripts/hbasic4.rx: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who " started " 19 | say _who " version " _ver 20 | say _who " source " _src 21 | say _who " HOSTENV " _env 22 | say _who " date " date() 23 | say _who " time " time() 24 | if args = "" then do 25 | say _who " " "No arguments given " 26 | _ret = 0 27 | end 28 | else do 29 | say _who " args " ">>>"args"<<<" 30 | _ret = args 31 | end 32 | say _who " ended " 33 | 34 | exit _ret 35 | 36 | 37 | -------------------------------------------------------------------------------- /scripts/hbasic5.ext1: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who " started " 19 | say _who " version " _ver 20 | say _who " source " _src 21 | say _who " HOSTENV " _env 22 | say _who " date " date() 23 | say _who " time " time() 24 | if args = "" then do 25 | say _who " " "No arguments given " 26 | _ret = 0 27 | end 28 | else do 29 | say _who " args " ">>>"args"<<<" 30 | _ret = args 31 | end 32 | say _who " ended " 33 | 34 | exit _ret 35 | 36 | 37 | -------------------------------------------------------------------------------- /scripts/hbasics: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse version _ver 6 | parse source _src 7 | parse source . _how . 8 | _env = Address() 9 | 10 | parse var _src . . _cmd 11 | _who = filespec("n",_cmd) 12 | parse var _who _who "." . 13 | 14 | 15 | say _who " started " 16 | say _who " version " _ver 17 | say _who " source " _src 18 | say _who " called as " _how 19 | say _who " HOSTENV " _env 20 | say _who " date " date() 21 | say _who " time " time() 22 | 23 | if _how = "COMMAND" then do 24 | parse arg args 25 | args = space(args) 26 | argc = words(args) 27 | 28 | if args = "" then do 29 | say _who " " "No arguments given " 30 | end 31 | else do 32 | say _who " args " ">>>"args"<<<" 33 | end 34 | end 35 | else if _how = "SUBROUTINE" then do 36 | say _who " arg( ) " arg() 37 | do i = 1 to arg() 38 | say _who " arg("i") " arg(i) 39 | end 40 | 41 | say _who " ended " 42 | end 43 | exit 0 44 | 45 | 46 | -------------------------------------------------------------------------------- /scripts/hexecio.rexx: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | 18 | say _who "started " 19 | say _who "version " _ver 20 | say _who "source " _src 21 | say _who "HOSTENV " _env 22 | say _who "date " date() 23 | say _who "time " time() 24 | 25 | Address HOSTEMU "EXECIO * DISKR '"_cmd"' ( stem stmt. finis " 26 | if RC \= 0 then , 27 | say _who " EXECIO RC("RC") " 28 | else , 29 | do i = 1 to stmt.0 30 | if strip(stmt.i) = "" then , 31 | iterate 32 | say _who "("right(i,4)") : "stmt.i 33 | end 34 | 35 | say _who " ended" 36 | 37 | exit 0 38 | 39 | ::requires hostemu LIBRARY 40 | -------------------------------------------------------------------------------- /scripts/hlinein.rexx: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | say _who "started " 18 | say _who "version " _ver 19 | say _who "source " _src 20 | say _who "HOSTENV " _env 21 | say _who "date " date() 22 | say _who "time " time() 23 | 24 | do i = 1 while ( lines(_cmd) > 0 ) 25 | stmt = linein(_cmd) 26 | if strip(stmt) = "" then , 27 | iterate 28 | say _who "("right(i,4)") : "stmt 29 | end 30 | 31 | say _who "ended" 32 | 33 | exit 0 34 | -------------------------------------------------------------------------------- /scripts/hrecurs.rexx: -------------------------------------------------------------------------------- 1 | #! /bin/cat 2 | 3 | Trace "O" 4 | 5 | parse arg args 6 | args = space(args) 7 | argc = words(args) 8 | 9 | parse version _ver 10 | parse source _src 11 | _env = Address() 12 | 13 | parse var _src . . _cmd 14 | _who = filespec("n",_cmd) 15 | parse var _who _who "." . 16 | 17 | if ( args = "" ) then , 18 | coun = 1 19 | else , 20 | coun = args 21 | 22 | say _who " started " coun 23 | if ( coun > 0 ) then do 24 | "exec " _who coun-1 25 | end 26 | say _who " ended " coun 27 | 28 | exit 0 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /scripts/sample.rexx: -------------------------------------------------------------------------------- 1 | /* REXX */ 2 | parse arg parms 3 | 4 | parms = space(parms) 5 | argc = words(parms) 6 | 7 | parse version ver 8 | parse source src 9 | 10 | env = address() 11 | 12 | parse var src . . cmd 13 | who = filespec("n",cmd) 14 | parse var who who "." . 15 | 16 | say who " started" 17 | say who " version . . . . :" ver 18 | say who " source . . . . :" src 19 | say who " hostenv . . . . :" env 20 | 21 | 22 | say who " date . . . . . :" date() 23 | say who " time . . . . . :" time() 24 | 25 | 26 | if parms = "" 27 | then do 28 | say who " arguments . . . : no arguments given" 29 | ret = 0 30 | end 31 | else do 32 | say who " arguments . . . :" parms 33 | ret = parms 34 | end 35 | 36 | Say who " Hercules version :" value('version',,'SYSTEM') 37 | Say who " RC environment . :" value('HERCULES_RC',,'ENVIRONMENT') 38 | 39 | address hercules 'uptime' 40 | 41 | say who " ended" 42 | 43 | exit ret 44 | 45 | -------------------------------------------------------------------------------- /scsiutil.h: -------------------------------------------------------------------------------- 1 | /* SCSIUTIL.H (C) Copyright "Fish" (David B. Trout), 2016 */ 2 | /* Hercules SCSI tape utility functions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | #ifndef _SCSIUTIL_H_ 9 | #define _SCSIUTIL_H_ 10 | 11 | #if defined( OPTION_SCSI_TAPE ) 12 | 13 | extern char* gstat2str( U32 mt_gstat, char* buffer, size_t bufsz ); 14 | 15 | #endif // defined( OPTION_SCSI_TAPE ) 16 | 17 | #endif // _SCSIUTIL_H_ 18 | -------------------------------------------------------------------------------- /tests/README: -------------------------------------------------------------------------------- 1 | Refer to runtest.pdf 2 | -------------------------------------------------------------------------------- /tests/alsi.txt: -------------------------------------------------------------------------------- 1 | * ALSI test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000000800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000080000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=41000001 # LA R0,1 Load R0 = 1 7 | r 204=A7F40004 # BRC 15,*+8 Branch around test data 8 | r 208=00000000 # DATA DC F'0' Test data 9 | r 20C=C40FFFFFFFFE # STRL R0,*-2 Store R0 as test data 10 | r 212=EBF10208006E # ALSI DATA,X'F1' Add logical signed immediate 11 | r 218=C41DFFFFFFF8 # LRL R1,*-8 Load R1 with result data 12 | r 21E=B2B20270 # LPSWE WAITPSW Load enabled wait PSW 13 | r 270=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 14 | ostailor null 15 | s+ 16 | restart 17 | -------------------------------------------------------------------------------- /tests/awsbsf.aws: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/awsbsf.aws -------------------------------------------------------------------------------- /tests/awsbsf.tst: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------- 2 | # Test S/370 AWS tape BSF into Load Point 3 | #---------------------------------------------------------------------- 4 | 5 | # PROGRAMMING NOTE: the bug originally reported only occurred when 6 | # .het files were used but did not occur when .aws files were used. 7 | # Nevertheless for thoroughness we test both types and other types 8 | # may be added in the future. 9 | 10 | *Testcase S/370 AWS tape BSF into Load Point 11 | 12 | defsym tapecuu 590 # just a device number 13 | defsym ftype aws # tape filename filetype 14 | defsym tapefile "$(testpath)/$(ftype)bsf.$(ftype)" 15 | 16 | script "$(testpath)/tapebsf.subtst" 17 | -------------------------------------------------------------------------------- /tests/axtr.txt: -------------------------------------------------------------------------------- 1 | * AXTR test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=B7000230 # LCTL R0,R0,CTLR0 Set CR0 bit 45 7 | r 204=EB2502400004 # LMG R2,R5,PACKED Load R2,R3=PACKED1 R4,R5=PACKED2 8 | r 20A=B3FB0042 # CXSTR R4,R2 Load FPR R4,R6 from PACKED1 R2,R3 9 | r 20E=B3FB0014 # CXSTR R1,R4 Load FPR R1,R3 from PACKED2 R4,R5 10 | r 212=B3DA1094 # AXTR R9,R4,R1 Add FPR R4,R6 + R1,R3 giving R9,R11 11 | r 216=B3EB00A9 # CSXTR R10,R9,0 Convert FPR R9,R11 to PACKED R10,R11 12 | r 21A=B3EB01C9 # CSXTR R12,R9,1 Convert FPR R9,R11 to PACKED R12,R13 13 | r 21E=EBAD02600024 # STMG R10,R13,RESULTC R10,R11=>RESULTC R12,R13=>RESULTF 14 | r 224=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 230=00040000 # CTLR0 Control register 0 (bit45 AFP control) 16 | r 240=0000000000000000000000000000001C # PACKED1 DC PL16'1' 17 | r 250=0000000000000000000000000000002C # PACKED2 DC PL16'2' 18 | r 260=FEEDFEEDFEEDFEEDFEEDFEEDFEEDFEED # RESULTC should be PL16'3' (with sign C) 19 | r 270=FEEDFEEDFEEDFEEDFEEDFEEDFEEDFEED # RESULTF should be PL16'3' (with sign F) 20 | r 300=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 21 | s+ 22 | restart 23 | -------------------------------------------------------------------------------- /tests/bfp-001-divtoint.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-001-divtoint.core -------------------------------------------------------------------------------- /tests/bfp-002-loadr.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-002-loadr.core -------------------------------------------------------------------------------- /tests/bfp-003-loadfpi.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-003-loadfpi.core -------------------------------------------------------------------------------- /tests/bfp-004-cvttolog.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-004-cvttolog.core -------------------------------------------------------------------------------- /tests/bfp-005-cvttolog64.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-005-cvttolog64.core -------------------------------------------------------------------------------- /tests/bfp-006-cvttofix.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-006-cvttofix.core -------------------------------------------------------------------------------- /tests/bfp-007-cvttofix64.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-007-cvttofix64.core -------------------------------------------------------------------------------- /tests/bfp-008-cvtfrlog.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-008-cvtfrlog.core -------------------------------------------------------------------------------- /tests/bfp-009-cvtfrlog64.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-009-cvtfrlog64.core -------------------------------------------------------------------------------- /tests/bfp-010-cvtfrfix.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-010-cvtfrfix.core -------------------------------------------------------------------------------- /tests/bfp-011-cvtfrfix64.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-011-cvtfrfix64.core -------------------------------------------------------------------------------- /tests/bfp-012-loadtest.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-012-loadtest.core -------------------------------------------------------------------------------- /tests/bfp-013-comps.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-013-comps.core -------------------------------------------------------------------------------- /tests/bfp-014-divide.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-014-divide.core -------------------------------------------------------------------------------- /tests/bfp-015-sqrt.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-015-sqrt.core -------------------------------------------------------------------------------- /tests/bfp-016-add.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-016-add.core -------------------------------------------------------------------------------- /tests/bfp-017-loadl.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-017-loadl.core -------------------------------------------------------------------------------- /tests/bfp-018-subtract.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-018-subtract.core -------------------------------------------------------------------------------- /tests/bfp-019-multiply.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-019-multiply.core -------------------------------------------------------------------------------- /tests/bfp-020-multlonger.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-020-multlonger.core -------------------------------------------------------------------------------- /tests/bfp-021-multadd.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-021-multadd.core -------------------------------------------------------------------------------- /tests/bfp-022-multsub.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-022-multsub.core -------------------------------------------------------------------------------- /tests/bfp-023-threads.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-023-threads.core -------------------------------------------------------------------------------- /tests/bfp-023-threads.sptst: -------------------------------------------------------------------------------- 1 | *Testcase bfp-023-threads.tst: Test thread safety of ieee.c/Softfloat 3a 2 | 3 | #Testcase bfp-023-threads.tst: Test thread safety of ieee.c/Softfloat 3a 4 | #..Dispatches floating point work on four CPUs. Deviation from expected 5 | #..results indicates lack of thread safety. 6 | 7 | sysclear 8 | archmode esame 9 | 10 | numcpu 4 # four CPUs required for this test. 11 | 12 | loadcore "$(testpath)/bfp-023-threads.core" 13 | 14 | runtest 240.0 15 | 16 | 17 | *Compare 18 | r 2000.10 # Loop counts 19 | *Want "Loop iterations by CPU" 00000000 00000000 00000000 00000000 20 | r 2010.10 21 | *Want "Pre-emptions detected by CPU" 00000000 00000000 00000000 00000000 22 | 23 | r 2020.10 24 | *Want "Result errors by CPU" 00000000 00000000 00000000 00000000 25 | r 2030.10 26 | *Want "FPCR contents errors by CPU" 00000000 00000000 00000000 00000000 27 | 28 | r 2040.10 29 | *Want "CPU0 Res/FPCR, CPU1 Res/FPCR" 00000000 00000000 00000000 00000000 30 | r 2050.10 31 | *Want "CPU2 Res/FPCR, CPU3 Res/FPCR" 00000000 00000000 00000000 00000000 32 | 33 | r 2060.10 34 | *Want "CPU0/CPU1 last error" 00000000 00000000 00000000 00000000 35 | r 2070.10 36 | *Want "CPU0/CPU1 last error" 00000000 00000000 00000000 00000000 37 | 38 | numcpu 1 39 | 40 | *Done 41 | 42 | -------------------------------------------------------------------------------- /tests/bfp-024-h2b.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-024-h2b.core -------------------------------------------------------------------------------- /tests/bfp-025-b2h.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bfp-025-b2h.core -------------------------------------------------------------------------------- /tests/bim-001-add-sub.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/bim-001-add-sub.core -------------------------------------------------------------------------------- /tests/brc.txt: -------------------------------------------------------------------------------- 1 | * BRC test 2 | sysclear 3 | archmode s/370 4 | r 000=0008000000000200 # EC mode restart PSW 5 | r 068=000A00000000DEAD # EC mode pgm new PSW 6 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=98030240 # LM R0,R3,INITREG Load initial values into regs 9 | r 204=1200 # LTR R0,R0 Set condition code 10 | r 206=A7F4FFFD # BRC 15,*-6 Branch back 11 | r 20A=82000300 # LPSW WAITPSW Load enabled wait PSW 12 | r 240=EEEEEEEEDDDDDDDDCCCCCCCCBBBBBBBB # Initial values for regs 0-3 13 | r 300=070A000000FED0D0 # WAITPSW Enabled wait state PSW 14 | s+ 15 | restart 16 | -------------------------------------------------------------------------------- /tests/cdsg.txt: -------------------------------------------------------------------------------- 1 | * CDSG test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000000000000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | * CDSG tests 7 | r 200=E32003200004 # LG R2,TGT+0 R2=Quadword old value part 1 8 | r 206=E33003280004 # LG R3,TGT+8 R3=Quadword old value part 2 9 | r 20C=E34003400004 # LG R4,NEW+0 R4=Quadword new value part 1 10 | r 212=E35003480004 # LG R5,NEW+8 R5=Quadword new value part 2 11 | r 218=EB240320003E # CDSG R2,R4,TGT CC0 Compare Double and Swap 12 | r 21E=B9820022 # XGR R2,R2 R2=Quadword old value part 1 13 | r 222=B9820033 # XGR R3,R3 R2=Quadword old value part 2 14 | r 226=EB240320003E # CDSG R2,R4,TGT CC1 Compare Double and Swap 15 | r 22C=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 16 | r 300=07020001800000000000000000FED0D0 # Enabled wait state PSW 17 | * Test data 18 | r 320=0011223344556677 # TGT (Quadword target area part 1) 19 | r 328=8899AABBCCDDEEFF # " (Quadword target area part 2) 20 | r 340=A1A3A5A7A9ABADAF # NEW (Quadword new value part 1) 21 | r 348=B1B3B5B7B9BBBDBF # " (Quadword new value part 2) 22 | s+ 23 | restart 24 | -------------------------------------------------------------------------------- /tests/cgfrl.txt: -------------------------------------------------------------------------------- 1 | * CGFRL test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000000800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000080000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=C038FFFFFFFF # IIHF R3,X'FFFFFFFF' Load R3 bits 0-31 7 | r 206=C039A5A5A5A5 # IILF R3,X'A5A5A5A5' Load R3 bits 32-63 8 | r 20C=C63C00000006 # CGFRL R3,*+12 Compare 9 | r 212=A7F40005 # BRC 15,*+10 Branch around compare value 10 | r 218=A5A5A5A5 # COMPR1 DC X'A5A5A5A5' Comparison data 11 | r 21C=A7840004 # BRC 8,*+8 Branch if equal 12 | r 220=B2B201D0 # LPSWE PGMNPSW Load error PSW 13 | r 224=B2B20270 # LPSWE WAITPSW Load enabled wait PSW 14 | r 270=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 15 | ostailor null 16 | s+ 17 | restart 18 | -------------------------------------------------------------------------------- /tests/cmd-abs.tst: -------------------------------------------------------------------------------- 1 | * 2 | #-------------- 3 | defsym cmd abs 4 | #-------------- 5 | * 6 | defsym arch S/370 7 | script "$(testpath)/cmd-abs-2K.subtst" 8 | * 9 | defsym arch S/390 10 | script "$(testpath)/cmd-abs-4K.subtst" 11 | * 12 | defsym arch z/Arch 13 | script "$(testpath)/cmd-abs-4K.subtst" 14 | -------------------------------------------------------------------------------- /tests/cmd-rv.tst: -------------------------------------------------------------------------------- 1 | * 2 | #------------ 3 | defsym cmd r 4 | #------------ 5 | * 6 | defsym arch S/370 7 | script "$(testpath)/cmd-rv-2K.subtst" 8 | * 9 | defsym arch S/390 10 | script "$(testpath)/cmd-rv-4K-32.subtst" 11 | * 12 | defsym arch z/Arch 13 | script "$(testpath)/cmd-rv-4K-64.subtst" 14 | * 15 | #------------ 16 | defsym cmd v 17 | #------------ 18 | * 19 | defsym arch S/370 20 | script "$(testpath)/cmd-rv-2K.subtst" 21 | * 22 | defsym arch S/390 23 | script "$(testpath)/cmd-rv-4K-32.subtst" 24 | * 25 | defsym arch z/Arch 26 | script "$(testpath)/cmd-rv-4K-64.subtst" 27 | -------------------------------------------------------------------------------- /tests/comments.txt: -------------------------------------------------------------------------------- 1 | #--------------------------------------------------- 2 | # Comment lines starting with '#' 3 | # should NEVER be shown on the console 4 | # since they are supposed to be QUIET comments 5 | #--------------------------------------------------- 6 | 7 | *--------------------------------------------------- 8 | * Comment lines starting with '*' however 9 | * should ALWAYS be shown on the console 10 | * since they are supposed to be LOUD comments 11 | *--------------------------------------------------- 12 | 13 | -------------------------------------------------------------------------------- /tests/cpsdr.txt: -------------------------------------------------------------------------------- 1 | * CPSDR test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=B7000240 # LCTL R0,R0,CTLR0 Set CR0 bit 45 7 | r 204=B2BD0244 # LFAS FPCREG Load value into FPC register 8 | r 208=EB2502480004 # LMG R2,R5,TESTDAT Load R2-R5=Test data 9 | r 20E=B3C10002 # LDGR F0,R2 Load FPR0 from R2 10 | r 212=B3C10023 # LDGR F2,R3 Load FPR2 from R3 11 | r 216=B3C10014 # LDGR F1,R4 Load FPR1 from R4 12 | r 21A=B3C10035 # LDGR F3,R5 Load FPR3 from R5 13 | r 21E=B3720042 # CPSDR F4,F0,F2 Load FPR4 from FPR2 with sign of FPR0 14 | r 222=B3724042 # CPSDR F4,F4,F2 Load FPR4 from FPR2 with sign of FPR4 15 | r 226=B3722033 # CPSDR F3,F2,F3 Load FPR3 from FPR3 with sign of FPR3 16 | r 22A=B3723031 # CPSDR F3,F3,F1 Load FPR3 from FPR1 with sign of FPR3 17 | r 22E=B3722032 # CPSDR F3,F2,F2 Load FPR3 from FPR2 with sign of FPR2 18 | r 232=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 19 | r 240=00040000 # CTLR0 Control register 0 (bit45 AFP control) 20 | r 244=80000000 # FPCREG Floating point control register 21 | r 248=07F3123456789ABC # FPR0 positive 22 | r 250=F813ABCDEF123456 # FPR2 negative 23 | r 258=7D55ABCDEF123456 # FPR1 positive 24 | r 260=8055ABCDEF123456 # FPR3 negative 25 | r 300=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 26 | s+ 27 | restart 28 | -------------------------------------------------------------------------------- /tests/cpu0off.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/cpu0off.core -------------------------------------------------------------------------------- /tests/csxtr.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 5 Jun 2016 09:38:33 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase csxtr csdtr cxstr cxutr 20160605 09.38 6 | sysclear 7 | archlvl z 8 | r 1A0=00000001800000000000000000000200 9 | r 1C0=00020001800000000000000000000000 10 | r 1D0=00020001800000000000000000000000 11 | *Program 7 12 | r 200=B3EB0040B600F3509604F351B700F350 13 | r 210=6800F3586820F360B3EB0040EB45F310 14 | r 220=0024ED00001F00496000F3006020F308 15 | r 230=B3EA00404050F320 16 | r 238=6840F368B3E30064E360F3280024EB45 17 | r 248=F3100004B3FB00046000F3306020F338 18 | r 258=EB550004000CB3FA00046000F3406020 19 | r 268=F34812EE077E0AFF 20 | r 358=2608134B9C1E28E56F3C127177823534 21 | r 368=263934B9C1E28E56 22 | runtest .1 23 | runtest program .1 24 | *Compare 25 | r 300.10 26 | r 310.10 27 | *Want "csxtr/srxt low" 45678901 23456789 01234567 8901234C 28 | r 320.2 29 | *Want "csxtr/srxt high" 0123 30 | r 328.8 31 | *Want "csdtr" 23456789 0123456C 32 | r 330.10 33 | *Want "cxstr" 2208004B 9C1E28E5 6F3C1271 77823534 34 | r 340.10 35 | *Want "cxutr" 2208045D E08D4D2E 70781271 77823534 36 | *Done 37 | -------------------------------------------------------------------------------- /tests/cxgbr.txt: -------------------------------------------------------------------------------- 1 | * CXGBR test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=B7000230 # LCTL R0,R0,CTLR0 Set AFP bit 7 | r 204=B3A6000B # CXGBR R0,R11 Test CXGBR instruction 8 | r 208=B2B20220 # LPSWE WAITPSW Load enabled wait PSW 9 | r 220=07020001800000000000000000FED0D0 # Enabled wait state PSW 10 | r 230=00040000 # CTLR0 Control register 0 (bit45 AFP control) 11 | s+ 12 | restart 13 | -------------------------------------------------------------------------------- /tests/diag24.txt: -------------------------------------------------------------------------------- 1 | * DIAG24 test 2 | sysclear 3 | archmode esa/390 4 | r 000=000C000000000200 # ESA/390 restart PSW 5 | r 068=000A00000000DEAD # ESA/390 pgm new PSW 6 | r 070=000A00000000BEEF # ESA/390 mck new PSW 7 | r 200=41500260 # LA R0,X'260' Load R5 = device number 8 | r 204=83580024 # DIAG X'24' Test data 9 | r 208=82000300 # LPSW WAITPSW Load enabled wait PSW 10 | r 300=070A000080FED0D0 # WAITPSW Enabled wait state PSW 11 | ostailor null 12 | s+ 13 | restart 14 | -------------------------------------------------------------------------------- /tests/diag8.txt: -------------------------------------------------------------------------------- 1 | * DIAG8 test 2 | sysclear 3 | archmode esa/390 4 | r 000=000C000000000200 # ESA/390 restart PSW 5 | r 068=000A00000000DEAD # ESA/390 pgm new PSW 6 | r 070=000A00000000BEEF # ESA/390 mck new PSW 7 | r 200=41200280 # LA R2,X'280' Load R2 = address 8 | r 204=41400008 # LA R4,8 ' Load R4 = length 9 | r 208=83240008 # DIAG X'008' Test data 10 | r 20C=41200290 # LA R2,X'290' Load R2 = address 11 | r 210=41400006 # LA R4,6 Load R4 = length 12 | r 214=83240008 # DIAG X'008' Test data 13 | r 218=82000300 # LPSW WAITPSW Load enabled wait PSW 14 | r 280=C4C9C1C7F8C3D4C4 # C'DIAG8CMD' 15 | r 290=D4C1E7C3D7E4 # C'MAXCPU' 16 | r 300=070A000080FED0D0 # WAITPSW Enabled wait state PSW 17 | ostailor null 18 | s+ 19 | restart 20 | -------------------------------------------------------------------------------- /tests/dotest: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This file was put into the public domain 2016-05-29 by John P. 4 | # Hartmann. You can use it for anything you like, as long as this 5 | # notice remains. 6 | 7 | # Run a test case locally. 8 | 9 | # This sample shows how to run hercules out of the build directory so 10 | # you can validate it before installing it. Its purpose is to run a 11 | # single test case from a directory where the tst scripts are built. 12 | 13 | # Where hercules is made (make) 14 | dir=/usr/data/src/hercules/ 15 | bin=$dir/atom 16 | lib=$bin/.libs 17 | 18 | if [ -f config.h ] ; then 19 | ptrsize=$(grep SIZEOF_INT_P config.h | cut -d ' ' -f 3) 20 | vars="$vars ptrsize=$ptrsize" 21 | fi 22 | 23 | fn=$1.tst 24 | if [ "$2" != "noexit" ] ; then 25 | echo exit|cat $fn - >atest.in 26 | fn=atest.in 27 | redir='2>&1' 28 | fi 29 | 30 | cmd="$dir/atom/hercules -p $lib -t -f $dir/hyperion/tests/tests.conf -r $fn >atest.out $redir" 31 | echo $cmd 32 | eval $cmd 33 | rexx redtest.rexx atest.out $vars 34 | -------------------------------------------------------------------------------- /tests/dxtr.txt: -------------------------------------------------------------------------------- 1 | * DXTR test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=B7000230 # LCTL R0,R0,CTLR0 Set CR0 bit 45 7 | r 204=B2BD0234 # LFAS FPCREG Load value into FPC register 8 | r 208=EB2502400004 # LMG R2,R5,PACKED Load R2,R3=PACKED1 R4,R5=PACKED2 9 | r 20E=B3FB0042 # CXSTR R4,R2 Load FPR R4,R6 from PACKED1 R2,R3 10 | r 212=B3FB0014 # CXSTR R1,R4 Load FPR R1,R3 from PACKED2 R4,R5 11 | r 216=B2B90003 # SRNMT 3 Set decimal rounding mode 12 | r 21A=B3D91094 # DXTR R9,R4,R1 Divide FPR R4,R6 by R1,R3 giving R9,R11 13 | r 21E=B3EB00A9 # CSXTR R10,R9,0 Convert FPR R9,R11 to PACKED R10,R11 14 | r 222=B3EB01C9 # CSXTR R12,R9,1 Convert FPR R9,R11 to PACKED R12,R13 15 | r 226=EBAD02600024 # STMG R10,R13,RESULTC R10,R11=>RESULTC R12,R13=>RESULTF 16 | r 22C=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 17 | r 230=00040000 # CTLR0 Control register 0 (bit45 AFP control) 18 | r 234=40000000 # FPCREG Floating point control register 19 | r 240=0000000000000000000000000000500C # PACKED1 DC PL16'500' 20 | r 250=0000000000000000000000000000000C # PACKED2 DC PL16'0' 21 | r 260=FEEDFEEDFEEDFEEDFEEDFEEDFEEDFEED # RESULTC (with sign C) 22 | r 270=FEEDFEEDFEEDFEEDFEEDFEEDFEEDFEED # RESULTF (with sign F) 23 | r 300=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 24 | s+ 25 | restart 26 | -------------------------------------------------------------------------------- /tests/epsw.txt: -------------------------------------------------------------------------------- 1 | * EPSW test 2 | sysclear 3 | archmode esa/390 4 | r 000=0008000080000200 # ESA/390 restart PSW 5 | r 068=000A00008000DEAD # ESA/390 pgm new PSW 6 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=98030240 # LM R0,R3,INITREG Load initial values into regs 9 | r 204=B98D0023 # EPSW R2,R3 R2=PSW bits 0-31, R3=PSW bit 32 10 | r 208=B98D0010 # EPSW R1,0 R1=PSW bits 0-31, R0=unchanged 11 | r 20C=82000300 # LPSW WAITPSW Load enabled wait PSW 12 | r 240=EEEEEEEEDDDDDDDDCCCCCCCCBBBBBBBB # Initial values for regs 0-3 13 | r 300=070A000080FED0D0 # WAITPSW Enabled wait state PSW 14 | s+ 15 | restart 16 | -------------------------------------------------------------------------------- /tests/hetbsf.het: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/hetbsf.het -------------------------------------------------------------------------------- /tests/hetbsf.tst: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------- 2 | # Test S/370 HET tape BSF into Load Point 3 | #---------------------------------------------------------------------- 4 | 5 | # PROGRAMMING NOTE: the bug originally reported only occurred when 6 | # .het files were used but did not occur when .aws files were used. 7 | # Nevertheless for thoroughness we test both types and other types 8 | # may be added in the future. 9 | 10 | *Testcase S/370 HET tape BSF into Load Point 11 | 12 | defsym tapecuu 590 # just a device number 13 | defsym ftype het # tape filename filetype 14 | defsym tapefile "$(testpath)/$(ftype)bsf.$(ftype)" 15 | 16 | script "$(testpath)/tapebsf.subtst" 17 | -------------------------------------------------------------------------------- /tests/ilc.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 16 Jan 2016 12:11:11 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase ilc 6 | numcpu 1 7 | sysclear 8 | archmode z 9 | r 60=00020000000000000000000000000000 10 | r 70=0002000000000000000000000000DEAD 11 | r 1A0=00000001800000000000000000000200 12 | r 1D0=00000001800000000000000000000220 13 | r 200=41F00C0041200021EB110240002FEB9B 14 | r 210=0248002FAD440000A72C0002B2B20060 15 | r 220=D213F000008C41F0F020D5010260008E 16 | r 230=47700238B2B20150 17 | r 238=B2B20070000000000000000000000020 18 | r 248=00000000400000000000000000000218 19 | r 258=000000000000021B0080 20 | runtest .1 21 | *Compare 22 | gpr 23 | *Gpr 2 0042 24 | r 8c.14 # last program check for info 25 | r c00.14 26 | r c00.c 27 | *Want "MHI ilc" 00040080 00000000 000040F0 28 | r c20.14 29 | *Done 30 | -------------------------------------------------------------------------------- /tests/invpsw.assemble: -------------------------------------------------------------------------------- 1 | INVPSW TITLE 'invalid program new PSW' 2 | 3 | * This file was put into the public domain 2015-11-12 4 | * by John P. Hartmann. You can use it for anything you like, 5 | * as long as this notice remains. 6 | 7 | punch ':test invpsw' 8 | inv start 0 9 | org inv+x'1d0' Program new with two errors 10 | dc x'0000000100000000',ad(x'deaddead') 11 | punch '* runtest .1' 12 | punch '* *Program 1' 13 | punch '* *Done' 14 | END , 15 | -------------------------------------------------------------------------------- /tests/invpsw.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 16 Jan 2016 12:11:11 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase invpsw processed 16 Jan 2016 12:11:11 by bldhtc.rexx 6 | r 1D0=0000000100000000FFFFFFFFDEADDEAD 7 | runtest .1 8 | *Program 1 9 | *Done 10 | -------------------------------------------------------------------------------- /tests/kimd0.txt: -------------------------------------------------------------------------------- 1 | * KIMD fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200000 # LA R2,SO R2->second operand address 11 | r 20C=41300000 # LA R3,SOL R3->second operand length 12 | r 210=B93E0002 # KIMD R0,R2 Compute intermediate message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | * 18 | r 580=F0000000000000004000000000000000 # Expected result 19 | * 20 | ostailor null 21 | restart 22 | pause 1 23 | * Display parameter block 24 | r 500.10 25 | * Expected result 26 | r 580.10 27 | -------------------------------------------------------------------------------- /tests/kimd1.txt: -------------------------------------------------------------------------------- 1 | * KIMD fc1 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000001 # LA R0,1 R0->function code 1 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200600 # LA R2,SO R2->second operand address 11 | r 20C=41300040 # LA R3,SOL R3->second operand length 12 | r 210=B93E0002 # KIMD R0,R2 Compute intermediate message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=67452301EFCDAB8998BADCFE10325476 # Parameter block 17 | r 510=C3D2E1F0 # Parameter block 18 | * 19 | r 580=B9AC757BBC2979252E22727406872F94 # Expected result 20 | r 590=CBEA56A1000000000000000000000000 # Expected result 21 | * 22 | r 600=000102030405060708090A0B0C0D0E0F # Second operand 23 | r 610=101112131415161718191A1B1C1D1E1F # Second operand 24 | r 620=202122232425262728292A2B2C2D2E2F # Second operand 25 | r 630=303132333435363738393A3B3C3D3E3F # Second operand 26 | * 27 | ostailor null 28 | restart 29 | pause 1 30 | * Display parameter block 31 | r 500.14 32 | * Expected result 33 | r 580.14 34 | -------------------------------------------------------------------------------- /tests/kimd2.txt: -------------------------------------------------------------------------------- 1 | * KIMD fc2 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000002 # LA R0,2 R0->function code 2 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200600 # LA R2,SO R2->second operand address 11 | r 20C=41300040 # LA R3,SOL R3->second operand length 12 | r 210=B93E0002 # KIMD R0,R2 Compute intermediate message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=6A09E667BB67AE853C6EF372A54FF53A # Parameter block 17 | r 510=510E527F9B05688C1F83D9AB5BE0CD19 # Parameter block 18 | * 19 | r 580=FC99A2DF88F42A7A7BB9D18033CDC6A2 # Expected result 20 | r 590=0256755F9D5B9A5044A9CC315ABE84A7 # Expected result 21 | * 22 | r 600=000102030405060708090A0B0C0D0E0F # Second operand 23 | r 610=101112131415161718191A1B1C1D1E1F # Second operand 24 | r 620=202122232425262728292A2B2C2D2E2F # Second operand 25 | r 630=303132333435363738393A3B3C3D3E3F # Second operand 26 | * 27 | ostailor null 28 | restart 29 | pause 1 30 | * Display parameter block 31 | r 500.20 32 | * Expected result 33 | r 580.20 34 | -------------------------------------------------------------------------------- /tests/kimd65.txt: -------------------------------------------------------------------------------- 1 | * KIMD fc65 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000041 # LA R0,65 R0->function code 65 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200600 # LA R2,SO R2->second operand address 11 | r 20C=41300040 # LA R3,SOL R3->second operand length 12 | r 210=B93E0002 # KIMD R0,R2 Compute intermediate message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=6A09E667BB67AE853C6EF372A54FF53A # Parameter block 17 | r 510=510E527F9B05688C1F83D9AB5BE0CD19 # Parameter block 18 | * 19 | r 580=3835EC6F7151E73A2A593988B05B7E61 # Expected result 20 | * 21 | r 600=000102030405060708090A0B0C0D0E0F # Second operand 22 | r 610=101112131415161718191A1B1C1D1E1F # Second operand 23 | r 620=202122232425262728292A2B2C2D2E2F # Second operand 24 | r 630=303132333435363738393A3B3C3D3E3F # Second operand 25 | * 26 | ostailor null 27 | restart 28 | pause 1 29 | * Display parameter block 30 | r 500.10 31 | * Expected result 32 | r 580.10 33 | -------------------------------------------------------------------------------- /tests/klmd0.txt: -------------------------------------------------------------------------------- 1 | * KLMD fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200000 # LA R2,SO R2->second operand address 11 | r 20C=41300000 # LA R3,SOL R3->second operand length 12 | r 210=B93F0002 # KLMD R0,R2 Compute last message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | * 18 | r 580=F0000000000000000000000000000000 # Expected result 19 | * 20 | ostailor null 21 | restart 22 | pause 1 23 | * Display parameter block 24 | r 500.F 25 | * Expected result 26 | r 580.F 27 | -------------------------------------------------------------------------------- /tests/klmd1.txt: -------------------------------------------------------------------------------- 1 | * KLMD fc1 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000001 # LA R0,1 R0->function code 1 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200600 # LA R2,SO R2->second operand address 11 | r 20C=41300040 # LA R3,SOL R3->second operand length 12 | r 210=B93F0002 # KLMD R0,R2 Compute last message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=67452301EFCDAB8998BADCFE10325476 # Parameter block 17 | r 510=C3D2E1F00000000000000040 # Parameter block 18 | * 19 | r 580=C5592921382388B41AE53FA27A726F8B # Expected result 20 | r 590=64D9FFA2000000000000004000000000 # Expected result 21 | * 22 | r 600=000102030405060708090A0B0C0D0E0F # Second operand 23 | r 610=101112131415161718191A1B1C1D1E1F # Second operand 24 | r 620=202122232425262728292A2B2C2D2E2F # Second operand 25 | r 630=303132333435363738393A3B3C3D3E3F # Second operand 26 | * 27 | ostailor null 28 | restart 29 | pause 1 30 | * Display parameter block 31 | r 500.14 32 | * Expected result 33 | r 580.14 34 | -------------------------------------------------------------------------------- /tests/klmd2.txt: -------------------------------------------------------------------------------- 1 | * KLMD fc2 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000002 # LA R0,2 R0->function code 2 9 | r 204=41100500 # LA R1,PB R1->parameter block 10 | r 208=41200600 # LA R2,SO R2->second operand address 11 | r 20C=41300040 # LA R3,SOL R3->second operand length 12 | r 210=B93F0002 # KLMD R0,R2 Compute last message digest 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=6A09E667BB67AE853C6EF372A54FF53A # Parameter block 17 | r 510=510E527F9B05688C1F83D9AB5BE0CD19 # Parameter block 18 | r 520=0000000000000040 # Parameter block 19 | * 20 | r 580=0DD42DCAAAEF32477F5DA8AD90F472AB # Expected result 21 | r 590=98F3BE9FDA5352A3E4317A7D8BA70CA0 # Expected result 22 | * 23 | r 600=000102030405060708090A0B0C0D0E0F # Second operand 24 | r 610=101112131415161718191A1B1C1D1E1F # Second operand 25 | r 620=202122232425262728292A2B2C2D2E2F # Second operand 26 | r 630=303132333435363738393A3B3C3D3E3F # Second operand 27 | * 28 | ostailor null 29 | restart 30 | pause 1 31 | * Display parameter block 32 | r 500.14 33 | * Expected result 34 | r 580.14 35 | -------------------------------------------------------------------------------- /tests/km0.txt: -------------------------------------------------------------------------------- 1 | * KM fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=B92E0024 # KM R2,R4 Cipher message 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | * 19 | r 580=F0703838000028280000000000000000 # Expected result 20 | * 21 | ostailor null 22 | restart 23 | pause 1 24 | * Display parameter block 25 | r 500.f 26 | * Expected result 27 | r 580.f 28 | -------------------------------------------------------------------------------- /tests/kmac0.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=B91E0024 # KMAC R2,R4 Compute message authentication code 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | * 19 | r 580=F0703838000000000000000000000000 # Expected result 20 | * 21 | ostailor null 22 | restart 23 | pause 1 24 | * Display parameter block 25 | r 500.f 26 | * Expected result 27 | r 580.f 28 | -------------------------------------------------------------------------------- /tests/kmac1.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc1 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000001 # LA R0,X'01' R0->function code 1 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500008 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | * 18 | r 580=D7423E1B84911C2E # Expected result 19 | * 20 | r 700=0001020304050607 # Second operand 21 | * 22 | ostailor null 23 | restart 24 | pause 1 25 | * Display parameter blocks 26 | r 500.8 27 | * Expected results 28 | r 580.8 29 | -------------------------------------------------------------------------------- /tests/kmac10.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc10 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000002 # LA R0,X'02' R0->function code 2 encrypt 9 | r 204=41100508 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=4100000A # LA R0,X'0A' R0->function code 10 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41200600 # LA R2,FO R2->first operand 14 | r 218=41400700 # LA R4,SO R4->second operand 15 | r 21C=41500008 # LA R5,SOL R5->second operand length 16 | r 220=B91E0024 # KMAC R2,R4 Compute message authentication code 17 | r 224=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 18 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 19 | * 20 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 21 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 22 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 23 | * 24 | r 580=F4F9F93F1B40EDE7 # Expected result 25 | * 26 | r 700=0001020304050607 # Second operand 27 | * 28 | ostailor null 29 | restart 30 | pause 1 31 | * Display parameter blocks 32 | r 500.8 33 | * Expected results 34 | r 580.8 35 | -------------------------------------------------------------------------------- /tests/kmac11.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc11 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000003 # LA R0,X'03' R0->function code 3 encrypt 9 | r 204=41100508 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=4100000B # LA R0,X'0B' R0->function code 11 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41200600 # LA R2,FO R2->first operand 14 | r 218=41400700 # LA R4,SO R4->second operand 15 | r 21C=41500008 # LA R5,SOL R5->second operand length 16 | r 220=B91E0024 # KMAC R2,R4 Compute message authentication code 17 | r 224=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 18 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 19 | * 20 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 21 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 22 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 23 | r 530=3031323334353637 # Parameter block 24 | * 25 | r 580=5790A6D02A3BF337 # Expected result 26 | * 27 | r 700=0001020304050607 # Second operand 28 | * 29 | ostailor null 30 | restart 31 | pause 1 32 | * Display parameter blocks 33 | r 500.8 34 | * Expected results 35 | r 580.8 36 | -------------------------------------------------------------------------------- /tests/kmac18.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc18 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000012 # LA R0,X'12' R0->function code 18 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500010 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 18 | * 19 | r 580=EDA330F90EECD16C003E5FB09BCFF358 # Expected result 20 | * 21 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 22 | * 23 | ostailor null 24 | restart 25 | pause 1 26 | * Display parameter blocks 27 | r 500.8 28 | * Expected results 29 | r 580.8 30 | -------------------------------------------------------------------------------- /tests/kmac19.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc19 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000013 # LA R0,X'13' R0->function code 19 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500010 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 18 | r 520=2021222324252627 # Parameter block 19 | * 20 | r 580=7C91ED3B313477D7B3CA928CFAA752E7 # Expected result 21 | * 22 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 23 | * 24 | ostailor null 25 | restart 26 | pause 1 27 | * Display parameter blocks 28 | r 500.8 29 | * Expected results 30 | r 580.8 31 | -------------------------------------------------------------------------------- /tests/kmac2.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc2 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000002 # LA R0,X'02' R0->function code 2 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500008 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | r 510=1011121314151617 # Parameter block 18 | * 19 | r 580=F4F9F93F1B40EDE7 # Expected result 20 | * 21 | r 700=0001020304050607 # Second operand 22 | * 23 | ostailor null 24 | restart 25 | pause 1 26 | * Display parameter blocks 27 | r 500.8 28 | * Expected results 29 | r 580.8 30 | -------------------------------------------------------------------------------- /tests/kmac20.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc20 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000014 # LA R0,X'14' R0->function code 20 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500010 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 18 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 19 | * 20 | r 580=5390628A3ACF964F6E02053976A8035D # Expected result 21 | * 22 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 23 | * 24 | ostailor null 25 | restart 26 | pause 1 27 | * Display parameter blocks 28 | r 500.8 29 | * Expected results 30 | r 580.8 31 | -------------------------------------------------------------------------------- /tests/kmac26.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc26 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000012 # LA R0,X'12' R0->function code 18 encrypt 9 | r 204=41100510 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=4100001A # LA R0,X'1A' R0->function code 26 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41400700 # LA R4,SO R4->second operand 14 | r 218=41500010 # LA R5,SOL R5->second operand length 15 | r 21C=B91E0024 # KMAC R2,R4 Compute message authentication code 16 | r 220=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 17 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 18 | * 19 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 20 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 21 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 22 | r 530=303132333435363738393A3B3C3D3E3F # Parameter block 23 | * 24 | r 580=EDA330F90EECD16C003E5FB09BCFF358 # Expected result 25 | * 26 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 27 | * 28 | ostailor null 29 | restart 30 | pause 1 31 | * Display parameter blocks 32 | r 500.8 33 | * Expected results 34 | r 580.8 35 | -------------------------------------------------------------------------------- /tests/kmac27.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc27 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000013 # LA R0,X'13' R0->function code 19 encrypt 9 | r 204=41100510 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=4100001B # LA R0,X'1B' R0->function code 27 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41400700 # LA R4,SO R4->second operand 14 | r 218=41500010 # LA R5,SOL R5->second operand length 15 | r 21C=B91E0024 # KMAC R2,R4 Compute message authentication code 16 | r 220=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 17 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 18 | * 19 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 20 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 21 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 22 | r 530=303132333435363738393A3B3C3D3E3F # Parameter block 23 | r 540=4041424344454647 # Parameter block 24 | * 25 | r 580=7C91ED3B313477D7B3CA928CFAA752E7 # Expected result 26 | * 27 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 28 | * 29 | ostailor null 30 | restart 31 | pause 1 32 | * Display parameter blocks 33 | r 500.8 34 | * Expected results 35 | r 580.8 36 | -------------------------------------------------------------------------------- /tests/kmac28.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc28 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000014 # LA R0,X'14' R0->function code 20 encrypt 9 | r 204=41100510 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=4100001C # LA R0,X'1C' R0->function code 28 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41400700 # LA R4,SO R4->second operand 14 | r 218=41500010 # LA R5,SOL R5->second operand length 15 | r 21C=B91E0024 # KMAC R2,R4 Compute message authentication code 16 | r 220=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 17 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 18 | * 19 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 20 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 21 | r 520=202122232425262728292A2B2C2D2E2F # Parameter block 22 | r 530=303132333435363738393A3B3C3D3E3F # Parameter block 23 | r 540=404142434445464748494A4B4C4D4E4F # Parameter block 24 | * 25 | r 580=5390628A3ACF964F6E02053976A8035D # Expected result 26 | * 27 | r 700=000102030405060708090A0B0C0D0E0F # Second operand 28 | * 29 | ostailor null 30 | restart 31 | pause 1 32 | * Display parameter blocks 33 | r 500.8 34 | * Expected results 35 | r 580.8 36 | -------------------------------------------------------------------------------- /tests/kmac3.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc3 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000003 # LA R0,X'03' R0->function code 3 encrypt 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41400700 # LA R4,SO R4->second operand 11 | r 20C=41500008 # LA R5,SOL R5->second operand length 12 | r 210=B91E0024 # KMAC R2,R4 Compute message authentication code 13 | r 214=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 14 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 15 | * 16 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 17 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 18 | * 19 | r 580=5790A6D02A3BF337 # Expected result 20 | * 21 | r 700=0001020304050607 # Second operand 22 | * 23 | ostailor null 24 | restart 25 | pause 1 26 | * Display parameter blocks 27 | r 500.8 28 | * Expected results 29 | r 580.8 30 | -------------------------------------------------------------------------------- /tests/kmac9.txt: -------------------------------------------------------------------------------- 1 | * KMAC fc9 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000001 # LA R0,X'01' R0->function code 1 encrypt 9 | r 204=41100508 # LA R1,PB R1->parameter block address 10 | r 208=B9280000 # PCKMO Encrypt DEA Key 11 | r 20C=41000009 # LA R0,X'09' R0->function code 9 encrypt 12 | r 210=41100500 # LA R1,PB R1->parameter block address 13 | r 214=41400700 # LA R4,SO R4->second operand 14 | r 218=41500008 # LA R5,SOL R5->second operand length 15 | r 21C=B91E0024 # KMAC R2,R4 Compute message authentication code 16 | r 220=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 17 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 18 | * 19 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 20 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 21 | r 520=2021222324252627 # Parameter block 22 | * 23 | r 580=D7423E1B84911C2E # Expected result 24 | * 25 | r 700=0001020304050607 # Second operand 26 | * 27 | ostailor null 28 | restart 29 | pause 1 30 | * Display parameter blocks 31 | r 500.8 32 | * Expected results 33 | r 580.8 34 | -------------------------------------------------------------------------------- /tests/kmc0.txt: -------------------------------------------------------------------------------- 1 | * KMC fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=B92F0024 # KMC R2,R4 Cipher message with chaining 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | * 19 | r 580=F0703838000000001000000000000000 # Expected result 20 | * 21 | ostailor null 22 | restart 23 | pause 1 24 | * Display parameter block 25 | r 500.f 26 | * Expected result 27 | r 580.f 28 | -------------------------------------------------------------------------------- /tests/kmc67.txt: -------------------------------------------------------------------------------- 1 | * KMC fc67 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000043 # LA R0,X'43' R0->function code 67 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200600 # LA R2,FO R2->first operand 11 | r 20C=41400700 # LA R4,SO R4->second operand 12 | r 210=41500008 # LA R5,SOL R5->second operand length 13 | r 214=B92F0024 # KMC R2,R4 Cipher message with chaining 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | r 510=101112131415161718191A1B1C1D1E1F # Parameter block 19 | * 20 | r 600=0001020304050607 # First operand 21 | * 22 | r 680=871A10BDDECFD665 # Expected result 23 | * 24 | r 700=0001020304050607 # Second operand 25 | * 26 | r 780=928F13E90793F6F408090A0B0C0D0E0F # Expected result 27 | * 28 | ostailor null 29 | restart 30 | pause 1 31 | * Display parameter blocks 32 | r 600.8 33 | r 500.8 34 | * Expected results 35 | r 680.8 36 | r 780.8 37 | -------------------------------------------------------------------------------- /tests/kmctr0.txt: -------------------------------------------------------------------------------- 1 | * KMCTR fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=41600000 # LA R6,TO R6->third operand 14 | r 218=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 15 | r 21C=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 16 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 17 | * 18 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 19 | * 20 | r 580=F0703838000000000000000000000000 # Expected result 21 | * 22 | ostailor null 23 | restart 24 | pause 1 25 | * Display parameter block 26 | r 500.f 27 | * Expected result 28 | r 580.f 29 | -------------------------------------------------------------------------------- /tests/kmctr1.txt: -------------------------------------------------------------------------------- 1 | * KMCTR fc1 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000001 # LA R0,1 R0->function code 1 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200600 # LA R2,FO R2->first operand 11 | r 20C=41400700 # LA R4,SO R4->second operand 12 | r 210=41500008 # LA R5,SOL R5->second operand length 13 | r 214=41600800 # LA R6,TO R6->third operand 14 | r 218=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 15 | r 21C=41200900 # LA R2,FO R2->first operand 16 | r 220=41400600 # LA R4,SO R4->second operand 17 | r 224=41500008 # LA R5,SOL R5->second operand length 18 | r 228=41600800 # LA R6,TO R6->third operand 19 | r 22C=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 20 | r 230=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 21 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 22 | * 23 | r 500=0001020304050607 # Parameter block 24 | r 600=1011121314151617 # First operand 25 | r 700=2021222324252627 # Second operand 26 | r 800=3031323334353637 # Third operand 27 | * 28 | r 680=ACCE8C43F1F6EFBB # Expected result 29 | * 30 | ostailor null 31 | restart 32 | pause 1 33 | * Display parameter block 34 | r 600.f 35 | * Expected result 36 | r 680.f 37 | -------------------------------------------------------------------------------- /tests/kmctr18.txt: -------------------------------------------------------------------------------- 1 | * KMCTR fc18 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000012 # LA R0,18 R0->function code 18 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200600 # LA R2,FO R2->first operand 11 | r 20C=41400700 # LA R4,SO R4->second operand 12 | r 210=41500010 # LA R5,SOL R5->second operand length 13 | r 214=41600800 # LA R6,TO R6->third operand 14 | r 218=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 15 | r 21C=41200900 # LA R2,FO R2->first operand 16 | r 220=41400600 # LA R4,SO R4->second operand 17 | r 224=41500010 # LA R5,SOL R5->second operand length 18 | r 228=41600800 # LA R6,TO R6->third operand 19 | r 22C=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 20 | r 230=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 21 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 22 | * 23 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 24 | r 600=101112131415161718191A1B1C1D1E1F # First operand 25 | r 700=202122232425262728292A2B2C2D2E2F # Second operand 26 | r 800=303132333435363738393A3B3C3D3E3F # Third operand 27 | * 28 | r 680=23D3E19EEEA74DD7AAFEE59B19E096EE # Expected result 29 | * 30 | ostailor null 31 | restart 32 | pause 1 33 | * Display parameter block 34 | r 600.f 35 | * Expected result 36 | r 680.f 37 | -------------------------------------------------------------------------------- /tests/kmctr2.txt: -------------------------------------------------------------------------------- 1 | * KMCTR fc2 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000002 # LA R0,2 R0->function code 2 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200600 # LA R2,FO R2->first operand 11 | r 20C=41400700 # LA R4,SO R4->second operand 12 | r 210=41500008 # LA R5,SOL R5->second operand length 13 | r 214=41600800 # LA R6,TO R6->third operand 14 | r 218=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 15 | r 21C=41200900 # LA R2,FO R2->first operand 16 | r 220=41400600 # LA R4,SO R4->second operand 17 | r 224=41500008 # LA R5,SOL R5->second operand length 18 | r 228=41600800 # LA R6,TO R6->third operand 19 | r 22C=B92D6024 # KMCTR R2,R6,R4 Cipher message with counter 20 | r 230=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 21 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 22 | * 23 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 24 | r 600=1011121314151617 # First operand 25 | r 700=2021222324252627 # Second operand 26 | r 800=3031323334353637 # Third operand 27 | * 28 | r 680=DDEB7099FF49EFED # Expected result 29 | * 30 | ostailor null 31 | restart 32 | pause 1 33 | * Display parameter block 34 | r 600.f 35 | * Expected result 36 | r 680.f 37 | -------------------------------------------------------------------------------- /tests/kmf0.txt: -------------------------------------------------------------------------------- 1 | * KMF fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=B92A0024 # KMF R2,R4 Cipher message with cipher feedback 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | * 19 | r 580=F0703838000000000000000000000000 # Expected result 20 | * 21 | ostailor null 22 | restart 23 | pause 1 24 | * Display parameter block 25 | r 500.f 26 | * Expected result 27 | r 580.f 28 | -------------------------------------------------------------------------------- /tests/kmo0.txt: -------------------------------------------------------------------------------- 1 | * KMO fc0 2 | stopall 3 | pause 1 4 | sysclear 5 | archmode esame 6 | r 1A0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1D0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=41000000 # LA R0,0 R0->function code 0 9 | r 204=41100500 # LA R1,PB R1->parameter block address 10 | r 208=41200000 # LA R2,FO R2->first operand 11 | r 20C=41400000 # LA R4,SO R4->second operand 12 | r 210=41500000 # LA R5,SOL R5->second operand length 13 | r 214=B92B0024 # KMO R2,R4 Cipher message with output feedback 14 | r 218=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 300=07020001800000000123456789ABCDEF # WAITPSW Enabled wait state PSW 16 | * 17 | r 500=000102030405060708090A0B0C0D0E0F # Parameter block 18 | * 19 | r 580=F0703838000000000000000000000000 # Expected result 20 | * 21 | ostailor null 22 | restart 23 | pause 1 24 | * Display parameter block 25 | r 500.f 26 | * Expected result 27 | r 580.f 28 | -------------------------------------------------------------------------------- /tests/ldetr.txt: -------------------------------------------------------------------------------- 1 | * LDETR test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=B7000240 # LCTL R0,R0,CTLR0 Set CR0 bit 45 7 | r 204=B2BD0244 # LFAS FPCREG Load value into FPC register 8 | r 208=78000248 # LE F0,INFP Load FPR0(short) from INFP 9 | r 20C=7820024C # LE F2,INFN Load FPR2(short) from INFN 10 | r 210=78100250 # LE F1,QNAN Load FPR1(short) from QNAN 11 | r 214=78300254 # LE F3,SNAN Load FPR3(short) from SNAN 12 | r 218=B3D40840 # LDETR F4,F0,8 Load FPR4 from FPR0 INFP 13 | r 21C=B3D40062 # LDETR F6,F2,0 Load FPR6 from FPR2 INFN 14 | r 220=B3D40851 # LDETR F5,F1,8 Load FPR5 from FPR1 QNAN 15 | r 224=B3D40073 # LDETR F7,F3,0 Load FPR7 from FPR3 SNAN 16 | r 228=B3D270F6 # ADTR F15,F6,F7 Multiply FPR6 by FPR7 giving FPR15 17 | r 22C=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 18 | r 240=00040000 # CTLR0 Control register 0 (bit45 AFP control) 19 | r 244=80000000 # FPCREG Floating point control register 20 | r 248=78FE1234 # INFP Positive infinity 21 | r 24C=F83EABCD # INFN Negative infinity 22 | r 250=7D56CDEF # QNAN Quiet NaN 23 | r 254=7F563456 # SNAN Signaling NaN 24 | r 300=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 25 | s+ 26 | restart 27 | -------------------------------------------------------------------------------- /tests/leapfrog.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 16 Jan 2016 12:11:11 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase leapfrog processed 16 Jan 2016 12:11:11 by bldhtc.rexx 6 | sysclear 7 | archmode z 8 | numcpu 2 9 | r 1A0=00000001800000000000000000000200 10 | r 1B0=0000000180000000000000000000026E 11 | r 1D0=0002000180000000FFFFFFFFDEADDEAD 12 | r 200=41000226E30001A80024B20402B04120 13 | r 210=0001AE020006B2220030883000184232 14 | r 220=0050B2B202A0B20402B041000234E300 15 | r 230=01A80024B2050288 16 | r 238=E30002880004E30002B80018E3000288 17 | r 248=0024B2060288EB0002800025E3000280 18 | r 258=0004560002BCE30002800024EB000280 19 | r 268=002FB2B202909202 20 | r 270=01B1D70701B801B81B2247F00212 21 | r 290=01020001800000000000000000000001 22 | r 2A0=00020001800000000000000000000000 23 | r 2B0=00000000000000000000000000000800 24 | runtest 1 25 | *Compare 26 | r 80.2 27 | cpu 0 clocks 28 | cpu 1 clocks 29 | ipending 30 | cr 31 | *Done 32 | -------------------------------------------------------------------------------- /tests/lfpc.txt: -------------------------------------------------------------------------------- 1 | * LFPC test 2 | sysclear 3 | archmode esa/390 4 | r 000=0008000080000200 # ESA/390 restart PSW 5 | r 068=000A00008000DEAD # ESA/390 pgm new PSW 6 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 7 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 8 | r 200=B7000310 # LCTL R0,R0,CTLR0 Set CR0 bit 45 9 | r 204=B29D0314 # LFPC FPCREG Load value into FPC register 10 | r 208=82000300 # LPSW WAITPSW Load enabled wait PSW 11 | r 300=070A000080FED0D0 # WAITPSW Enabled wait state PSW 12 | r 310=00040000 # CTLR0 Control register 0 (bit45 AFP control) 13 | r 314=F8F8FF73 # FPCREG Floating point control register 14 | s+ 15 | restart 16 | -------------------------------------------------------------------------------- /tests/llhrl.txt: -------------------------------------------------------------------------------- 1 | * LLHRL test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=00020001800000000000000000BADBAD # z/Arch pgm new PSW 6 | r 200=C058A5A5A5A5 # IIHF R5,X'A5A5A5A5' Load garbage in R5 bits 0-31 7 | r 206=C0593C3C3C3C # IILF R5,X'3C3C3C3C' Load garbage in R5 bits 32-63 8 | r 20C=C45200000005 # LLHRL R5,CONST1 Load halfword relative data 9 | r 212=A7F40003 # BRC *+6 Branch around constant 10 | r 216=ABCD # CONST1 DC X'ABCD' 11 | r 218=E35003000021 # CLG R5,EXPECT1 Compare with expected result 12 | r 21E=A7840004 # BE *+8 Branch if OK 13 | r 222=B2B201D0 # LPSWE PGMNEW Load error PSW 14 | r 226=B2B20270 # LPSWE WAITPSW Load enabled wait PSW 15 | r 270=07020001800000000000000000AAAAAA # WAITPSW Enabled wait state PSW 16 | * Test data 17 | r 300=A5A5A5A50000ABCD # EXPECT1 18 | ostailor null 19 | restart 20 | -------------------------------------------------------------------------------- /tests/locgr.txt: -------------------------------------------------------------------------------- 1 | 2 | * LOCGR test (Load On Condition) 3 | 4 | # INITIALIZE TEST 5 | sysclear 6 | archmode esame 7 | 8 | 9 | # DEFINE LOW CORE 10 | 11 | r 1A0=00000001800000000000000000000300 # z/Arch restart PSW 12 | r 1D0=00020001800000000000000000BADBAD # z/Arch pgm new PSW 13 | 14 | # WORKING STORAGE 15 | 16 | r 200=07020001800000000000000000AAAAAA # Success PSW 17 | r 210=0000000000000000 # ZEROS 18 | r 218=1111111111111111 # ONES 19 | r 220=2222222222222222 # TWOS 20 | 21 | # TEST CODE... 22 | 23 | r 300=E31002180004 # LG R1,ONES Load R1 = 1111... 24 | r 306=E32002100004 # LG R2,ZEROS Load R2 = 0000... 25 | r 30C=E3C002200004 # LG R12,TWOS Load R12 = 2222... 26 | 27 | r 312=B9020012 # LTGR R1,R2 Clear R1 and set CC=0 28 | r 316=C02000000000 # LARL R2,* Load R2 with non-zero value 29 | r 31C=B9E2801C # LOCGRE R1,R12 Load R1 with R12 if CC=0 30 | 31 | r 320=E31002200021 # CLG R1,TWOS Was R12 loaded into R1? 32 | r 326=4780032E # BE *+8 If yes, then test SUCCESS 33 | r 32A=B2B201D0 # LPSWE BADPSW If not, then test FAILURE 34 | r 32E=B2B20200 # LPSWE GOODPSW Successful end of test 35 | 36 | # START TEST 37 | 38 | ostailor null 39 | t+ 40 | restart 41 | -------------------------------------------------------------------------------- /tests/lpp.txt: -------------------------------------------------------------------------------- 1 | * LPP test 2 | sysclear 3 | archmode ESAME 4 | archlvl ena load_prog_param 5 | sysreset # Reset [all] CPU(s) after any archlvl change 6 | r 000=0008000000000200 # EC mode restart PSW 7 | r 068=000A00000000DEAD # EC mode pgm new PSW 8 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 9 | r 1d0=0002000180000000000000000000DEAD # z/Arch pgm new PSW 10 | r 200=B2800400 # LPP 0(400) Load Program Parameter 11 | r 204=82000300 # LPSW WAITPSW Load enabled wait PSW 12 | r 300=070A000000FED0D0 # WAITPSW Enabled wait state PSW 13 | r 400=C8C5D9C3E4D3C5E2 # HERCULES 14 | ostailor null 15 | restart 16 | -------------------------------------------------------------------------------- /tests/mhi.asm: -------------------------------------------------------------------------------- 1 | * Multiply halfword immediate test 2 | 3 | * This file was put into the public domain 2015-10-22 4 | * by John P. Hartmann. You can use it for anything you like, 5 | * as long as this notice remains. 6 | 7 | mhi start 0 8 | using mhi,0 9 | org mhi+x'60' Unused bcmode stuff as scratch 10 | stop dc x'0002 0000',f'0',ad(0) 11 | org mhi+x'1a0' Restart 12 | dc x'0000 0001 8000 0000',ad(go) 13 | org mhi+x'1d0' Program 14 | dc x'0002 0001 8000 0000',ad(x'deaddead') 15 | org mhi+x'200' 16 | go equ * 17 | la 2,x'21' 18 | lr 5,2 19 | mhi 2,2 20 | lr 6,2 21 | ipm 4 22 | la 3,1(2,2) 23 | lpswe stop 24 | ltorg 25 | end 26 | -------------------------------------------------------------------------------- /tests/mhi.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/mhi.core -------------------------------------------------------------------------------- /tests/mhi.tst: -------------------------------------------------------------------------------- 1 | * This file was put into the public domain 2015-10-22 2 | * by John P. Hartmann. You can use it for anything you like, 3 | * as long as this notice remains. 4 | 5 | *Testcase mhi 6 | sysclear 7 | archmode z 8 | loadcore "$(testpath)/mhi.core" 9 | runtest .1 10 | *Compare 11 | gpr 12 | *Gpr 2 0042 13 | *Gpr 3 0085 14 | *Gpr 4 000000000000000 15 | *Done 16 | -------------------------------------------------------------------------------- /tests/mvcle.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 16 Jan 2016 12:28:39 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase mvcle-370 6 | sysclear 7 | archmode s/370 8 | r 0=0000000000000200 9 | r 68=00020000DEADDEAD 10 | r 1A0=00000001800000000000000000000200 11 | r 1D0=0002000180000000FFFFFFFFDEADDEAD 12 | r 200=412002004130000441100006A8020001 13 | r 210=82000218 14 | r 218=00020000000000000000000000000000 15 | *Program 0001 16 | runtest .1 17 | *Compare 18 | r 0.8 19 | *Want 00000000 00000200 20 | *Done 21 | -------------------------------------------------------------------------------- /tests/pfpo.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/pfpo.core -------------------------------------------------------------------------------- /tests/pfpo.tst: -------------------------------------------------------------------------------- 1 | 2 | # This file was put into the public domain 2016-10-28 3 | # by John P. Hartmann. You can use it for anything you like, 4 | # as long as this notice remains. 5 | 6 | *Testcase pfpo-esa 7 | sysclear 8 | archlvl esa/390 9 | 10 | # when run in ESA/390 mode, the test skips the PFPO instruction 11 | 12 | loadcore "$(testpath)/pfpo.core" 13 | 14 | runtest .1 15 | 16 | *Done 17 | 18 | *Testcase pfpo-z 19 | sysclear 20 | archlvl esame 21 | 22 | # when run in z/Arch mode, PFPO is attempted. 23 | # An operation exception is expected. 24 | 25 | loadcore "$(testpath)/pfpo.core" 26 | *Program 0001 27 | runtest .1 28 | gpr 29 | 30 | *Done 31 | 32 | 33 | -------------------------------------------------------------------------------- /tests/pnl-001-modpath.tstsp: -------------------------------------------------------------------------------- 1 | *Testcase pnl-001-modpath.tstsp: Verify modpath settings 2 | 3 | #Testcase pnl-001-modpath.tstsp: Verify modpath settings. 4 | #..Test case ensures Hercules initializes modpath correctly 5 | #..and that the dyncrypt library can be unloaded and reloaded. 6 | 7 | # This test is not included in the normal runtest set because the file 8 | # extension of tstsp is not part of the runtest glob. It is included 9 | # in the test sets constructed by CMake. Exclusion is needed because 10 | # it reloads crypto from where CMake builds it, not from where 11 | # autotools builds it. 12 | 13 | # Note that if the rmmod command fails, it most likely failed because 14 | # the crypto module failed to load automatically during Hercules 15 | # initialization. Check that possibility first. 16 | # 17 | 18 | archmode s/370 19 | numcpu 1 20 | *Compare 21 | rmmod dyncrypt 22 | *Info HHC01529I HDL: module dyncrypt unloaded 23 | 24 | ldmod dyncrypt 25 | *Info 3 HHC00150I Crypto module loaded (c) Copyright 2003-2016 by Bernard van der Helm 26 | *Info 2 HHC00151I Activated facility: Message Security Assist 27 | *Info 1 HHC00151I Activated facility: Message Security Assist Extension 1, 2, 3 and 4 28 | *Info HHC01527I HDL: module dyncrypt loaded 29 | 30 | *Done nowait 31 | 32 | -------------------------------------------------------------------------------- /tests/pr.subtst: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | # Prefix test. Hand written. 3 | #------------------------------------------------------------------------ 4 | # 5 | # This file was put into the public domain 2015-10-13 by John P. 6 | # Hartmann. You can use it for anything you like, as long as this 7 | # notice remains. 8 | # 9 | #------------------------------------------------------------------------ 10 | 11 | *Testcase $(arch) prefix register and real/absolute storage set/display 12 | 13 | sysclear 14 | archmode $(arch) 15 | mainsize 8m 16 | numcpu 1 17 | 18 | *Compare 19 | 20 | pr 21 | *Prefix 0 22 | 23 | r 0=01 24 | r 4000=02 25 | 26 | abs 0.4 27 | *Want 01000000 28 | 29 | abs 4000.4 30 | *Want 02000000 31 | 32 | pr 4000 33 | *Prefix 4000 34 | 35 | abs 0.4 36 | *Want 01000000 37 | 38 | abs 4000.4 39 | *Want 02000000 40 | 41 | r 0.4 42 | *Want 02000000 43 | 44 | r 4000.4 45 | *Want 01000000 46 | 47 | pr 800000 48 | # PROGRAMMING NOTE: because Hercules is usually built with 49 | # FEATURE_INTERPRETIVE_EXECUTION the formatted real address 50 | # (F_RADR) in Addressing exception messages is 64-bits wide 51 | # for all archmodes, even for archmode ESA/390 and S/370. 52 | *Error HHC02290E A:0000000000800000 Addressing exception 53 | 54 | pr fffff 55 | *Prefix $(fffff_pfx) 56 | 57 | *Done nowait 58 | -------------------------------------------------------------------------------- /tests/pr.tst: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------- 2 | * Prefix tests. Hand written. 3 | #---------------------------------------------------------------------- 4 | 5 | defsym arch z/Arch 6 | defsym fffff_pfx 00000000000fe000 7 | script "$(testpath)/pr.subtst" 8 | 9 | defsym arch ESA/390 10 | defsym fffff_pfx 00000000000ff000 11 | script "$(testpath)/pr.subtst" 12 | 13 | defsym arch S/370 14 | defsym fffff_pfx 00000000000ff000 15 | script "$(testpath)/pr.subtst" 16 | -------------------------------------------------------------------------------- /tests/printer.txt: -------------------------------------------------------------------------------- 1 | # Print test message to printer 2 | archmode S/370 3 | sysreset 4 | r 00=0000000000000400 # Restart new PSW 5 | r 28=000200000000DEAD # Program new PSW 6 | r 48=00000440 # CAW 7 | r 400=4110000F # R1 = device address 00F 8 | r 404=9C001000 # SIO 0(R1) 9 | r 408=82000430 # LPSW WAITPSW 10 | r 430=000200000000BEEF # WAITPSW 11 | r 440=0900048000000005 # CCW 12 | r 480=C8C5D3D3D6 # Print data "HELLO" 13 | s+ 14 | restart 15 | -------------------------------------------------------------------------------- /tests/privop.asm: -------------------------------------------------------------------------------- 1 | PRIVOP TITLE 'Null (well almost) test case for a privop' 2 | * 3 | * This file was put into the public domain 2016-11-29 4 | * by John P. Hartmann. You can use it for anything you like, 5 | * as long as this notice remains. 6 | * 7 | PRIVOP start 0 8 | using PRIVOP,15 9 | org PRIVOP+x'1a0' Restart 10 | dc x'0001000180000000',ad(go) 11 | org PRIVOP+x'1c0' SVC new 12 | dc x'0002000180000000',ad(0) 13 | org PRIVOP+x'1d0' Program 14 | dc x'0002000180000000',ad(x'deaddead') 15 | org PRIVOP+x'200' 16 | go equ * 17 | isk 0,0 18 | * Stop by disabled program check 19 | iske 0,0 20 | * Stop by disabled program check 21 | la 0,x'fff' 22 | iske 0,0 23 | svc 0 24 | end 25 | -------------------------------------------------------------------------------- /tests/privop.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/privop.core -------------------------------------------------------------------------------- /tests/privop.tst: -------------------------------------------------------------------------------- 1 | * 2 | * This file was put into the public domain 2016-11-29 3 | * by John P. Hartmann. You can use it for anything you like, 4 | * as long as this notice remains. 5 | * 6 | *Testcase privopisk 7 | sysclear 8 | archmode z 9 | loadcore "$(testpath)/privop.core" 10 | *Program 1 11 | runtest .1 12 | *Done 13 | 14 | *Testcase privopiske 15 | *Program 2 16 | runtest program .1 17 | *Done 18 | 19 | *Testcase privopgo 20 | r 151=00 21 | runtest program .1 22 | *Compare 23 | gpr 24 | *Gpr 0 0000000000000f06 25 | r 88.4 26 | *Want 00020000 27 | *Done 28 | -------------------------------------------------------------------------------- /tests/problem.asm: -------------------------------------------------------------------------------- 1 | prob TITLE 'Null problem state test case.' 2 | * 3 | * This file was put into the public domain 2016-11-29 4 | * by John P. Hartmann. You can use it for anything you like, 5 | * as long as this notice remains. 6 | * 7 | 8 | prob start 0 9 | using prob,15 10 | org prob+x'1a0' Restart 11 | * P 12 | dc x'0001000180000000',ad(go) 13 | org prob+x'1c0' SVC new 14 | dc x'0002000180000000',ad(0) 15 | org prob+x'1d0' Program 16 | dc x'0002000180000000',ad(x'deaddead') 17 | org prob+x'200' 18 | go equ * 19 | svc 0 OK 20 | end 21 | -------------------------------------------------------------------------------- /tests/problem.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/problem.core -------------------------------------------------------------------------------- /tests/problem.tst: -------------------------------------------------------------------------------- 1 | * 2 | * This file was put into the public domain 2016-11-29 3 | * by John P. Hartmann. You can use it for anything you like, 4 | * as long as this notice remains. 5 | * 6 | 7 | * Null problem state program for education 8 | 9 | *Testcase problem 10 | sysclear 11 | archmode z 12 | loadcore "$(testpath)/problem.core" 13 | runtest .1 14 | *Compare 15 | r 88.4 16 | *Want 00020000 17 | *Done 18 | -------------------------------------------------------------------------------- /tests/rnsbg.txt: -------------------------------------------------------------------------------- 1 | * RNSBG test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000000800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=0002000080000000000000000000DEAD # z/Arch pgm new PSW 6 | r 200=E35002800004 # LG R5,=C'12345678' 7 | r 206=E36002880004 # LG R6,=C'ABCDEFGC' 8 | r 20C=EC5680073854 # RNSBGT R5,R6,0,7,56 9 | r 212=47B0026C # BNM ERROR 10 | r 216=E35002800021 # CLG R5,=C'12345678' 11 | r 21C=4770026C # BNE ERROR 12 | r 220=EC5600073854 # RNSBG R5,R6,0,7,56 13 | r 226=47B0026C # BNM ERROR 14 | r 22A=E35002900021 # CLG R5,=C'A2345678' 15 | r 230=4770026C # BNE ERROR 16 | r 234=EC5638070855 # RISBG R5,R6,56,7,8 17 | r 23A=47B0026C # BNM ERROR 18 | r 23E=E35002980021 # CLG R5,=C'B234567A' 19 | r 244=4770026C # BNE ERROR 20 | r 248=EC56308F0055 # RISBGZ R5,R6,48,15,0 21 | r 24E=47B0026C # BNM ERROR 22 | r 252=E35002A00021 # CLG R5,=AL2(C'AB',0,0,C'GC') 23 | r 258=4770026C # BNE ERROR 24 | r 25C=B2B20270 # LPSWE WAITPSW Load enabled wait PSW 25 | r 26C=B2B201D0 # LPSWE PGMNPSW Load error PSW 26 | r 270=07020001800000000000000000FED0D0 # WAITPSW Enabled wait state PSW 27 | * Test data 28 | r 280=F1F2F3F4F5F6F7F8 # =C'12345678' 29 | r 288=C1C2C3C4C5C6C7C3 # =C'ABCDEFGC' 30 | r 290=C1F2F3F4F5F6F7F8 # =C'A2345678' 31 | r 298=C2F2F3F4F5F6F7C1 # =C'B234567A' 32 | r 2A0=C1C200000000C7C3 # =AL2(C'AB',0,0,C'GC') 33 | ostailor null 34 | s+ 35 | pgmtrace +7 36 | restart 37 | -------------------------------------------------------------------------------- /tests/runtest.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/runtest.pdf -------------------------------------------------------------------------------- /tests/runtest0.tst: -------------------------------------------------------------------------------- 1 | 2 | msglvl +verbose +emsgloc 3 | msglvl +time +usecs 4 | 5 | * ---------------------------------------------------------------------------- 6 | *Testcase runtest0: all cpus 0 seconds 7 | * ---------------------------------------------------------------------------- 8 | * 9 | numcpu 4 # Total CPUs needed for this test... 10 | * 11 | * ---------------------------------------------------------------------------- 12 | * 13 | defsym secs0 0 # Loop duration in seconds for each CPU... 14 | defsym secs1 0 15 | defsym secs2 0 16 | defsym secs3 0 17 | * 18 | defsym maxdur 0.4 # Expected test duration, give or take. 19 | * 20 | * ---------------------------------------------------------------------------- 21 | * 22 | script "$(testpath)/runtest.subtst" 23 | * 24 | * ---------------------------------------------------------------------------- 25 | numcpu 1 # Clean up own mess 26 | -------------------------------------------------------------------------------- /tests/runtest4.tst: -------------------------------------------------------------------------------- 1 | 2 | msglvl +verbose +emsgloc 3 | msglvl +time +usecs 4 | 5 | * ---------------------------------------------------------------------------- 6 | *Testcase runtest4: all cpus 1-4 seconds 7 | * ---------------------------------------------------------------------------- 8 | * 9 | numcpu 4 # Total CPUs needed for this test... 10 | * 11 | * ---------------------------------------------------------------------------- 12 | * 13 | defsym secs0 1 # Loop duration in seconds for each CPU... 14 | defsym secs1 2 15 | defsym secs2 3 16 | defsym secs3 4 17 | * 18 | defsym maxdur 11.5 # Expected test duration, give or take. 19 | * 20 | * ---------------------------------------------------------------------------- 21 | * 22 | script "$(testpath)/runtest.subtst" 23 | * 24 | * ---------------------------------------------------------------------------- 25 | numcpu 1 # Total CPUs needed for this test... 26 | -------------------------------------------------------------------------------- /tests/semipriv.asm: -------------------------------------------------------------------------------- 1 | SEMIPRIV TITLE 'Test a semiprivileged instruction' 2 | * 3 | * This file was put into the public domain 2016-11-30 4 | * by John P. Hartmann. You can use it for anything you like, 5 | * as long as this notice remains. 6 | * 7 | SEMIPRIV start 0 8 | using SEMIPRIV,15 9 | org SEMIPRIV+x'1a0' Restart 10 | dc x'0000000180000000',ad(go) 11 | org SEMIPRIV+x'1c0' SVC new 12 | dc x'0002000180000000',ad(0) 13 | org SEMIPRIV+x'1d0' Program 14 | dc x'0002000180000000',ad(x'deaddead') 15 | org SEMIPRIV+x'200' 16 | go equ * 17 | * Supervisor state part 18 | lctl 3,3,cr3 19 | spka x'80' Forbidden in problem state, but not for me 20 | ipk , Current key -> r2 21 | lgr 4,2 Save proof 22 | sgr 0,0 23 | lpsw prob 24 | goprob ds 0h 25 | spka x'40' Should be OK 26 | * ipk here would privop since CR0.36 is 0. Test separately. 27 | spka x'80' 28 | svc 1 If we survive 29 | 30 | prob dc 0d'0',x'00f9',h'0',a(goprob) Problem state and 24-bit 31 | cr3 dc a(x'7f7f0000') disallow key 0 and 8 32 | end 33 | -------------------------------------------------------------------------------- /tests/semipriv.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/semipriv.core -------------------------------------------------------------------------------- /tests/semipriv.tst: -------------------------------------------------------------------------------- 1 | * 2 | * This file was put into the public domain 2016-11-30 3 | * by John P. Hartmann. You can use it for anything you like, 4 | * as long as this notice remains. 5 | * 6 | *Testcase semipriv 7 | sysclear 8 | archmode z 9 | loadcore "$(testpath)/semipriv.core" 10 | *Program 2 11 | runtest .1 12 | *Compare 13 | gpr 14 | *Gpr 4 000000000000080 15 | # No SVCs 16 | r 88.4 17 | *Want 00000000 18 | # key 4 and problem state in prog old PSW 19 | r 150.2 20 | *Want 0041 21 | *Done 22 | -------------------------------------------------------------------------------- /tests/sigp.tst: -------------------------------------------------------------------------------- 1 | # This test file was generated from offline assembler source 2 | # by bldhtc.rexx 16 Jan 2016 12:11:11 3 | # Treat as object code. That is, modifications will be lost. 4 | # assemble and listing files are provided for information only. 5 | *Testcase sigp 6 | numcpu 1 7 | sysclear 8 | archmode z 9 | r 1A0=00000001800000000000000000000200 10 | r 1D0=0002000180000000FFFFFFFFDEADDEAD 11 | r 200=B212022048200220AE020005B2B20210 12 | r 210=00020000000000000000000000000000 13 | runtest .1 14 | psw 15 | runtest start .1 16 | psw 17 | *Done 18 | -------------------------------------------------------------------------------- /tests/stfl.core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tests/stfl.core -------------------------------------------------------------------------------- /tests/stfl.tst: -------------------------------------------------------------------------------- 1 | * Store facilities list (extended). 2 | 3 | # This file was put into the public domain 2016-08-20 4 | # by John P. Hartmann. You can use it for anything you like, 5 | # as long as this notice remains. 6 | 7 | *Testcase stfl and stfle 8 | * This test cause program checks on ESA hardware. 9 | sysclear 10 | archmode z 11 | loadcore "$(testpath)/stfl.core" 12 | *Program 6 13 | runtest 14 | gpr 15 | *Compare 16 | r c8.4 17 | *Want "Basic STFL." F1F4FFFB 18 | r 200.10 19 | *Want "First two doublewords of truncated facilities list" F1F4FFFB F8F54800 00000000 00000000 20 | r 210.10 21 | *Want "First two doublewords of extended facilities list" F1F4FFFB F8F54800 201C0000 00000000 22 | r 220.10 23 | *Want "Double words two and three" 00000000 00000000 00000000 00000000 24 | r 230.10 25 | *Want "Double words four and five" 00000000 00000000 00000000 00000000 26 | r 240.10 27 | *Want "Double words six and seven" 00000000 00000000 00000000 00000000 28 | *Gpr 2 30000000 29 | *Gpr 3 1 30 | *Gpr 4 0 31 | *Gpr 5 1 32 | *Done 33 | 34 | # STFLE on a zPDT with the latest(?) code to emulate an EC12 35 | # returns 3 doublewords 36 | # FF20FFF3 FC7CE000 00000000 00000000 00000000 00000000 37 | 38 | # STFLE on a 2827 (EC12) z/OS under VM 6.3 returns 3 doublewords 39 | # FB6BFFFB FCFFF840 003C0000 00000000 00000000 00000000 40 | 41 | # BC12 2828: z/VM 5.4 42 | # FB6BFFFB FCFFF840 000C0000 00000000 43 | 44 | # z13 45 | # FFBBFFFB FC7CE540 A05E8000 00000000 46 | # D8000000 00000000 00000000 00000000 47 | -------------------------------------------------------------------------------- /tests/stidp.txt: -------------------------------------------------------------------------------- 1 | * STIDP test 2 | sysclear 3 | archmode esame 4 | r 1a0=00000001800000000000000000000200 # z/Arch restart PSW 5 | r 1d0=00020001800000000000000000BADBAD # z/Arch pgm new PSW 6 | r 200=B2020350 # STIDP CPUID Store CPU ID 7 | r 204=C04900002000 # IILF R4,SYSIB R4=>SYSIB on 4K boundary 8 | r 20A=1894 # LR R9,R4 R9=>SYSIB area 9 | r 20C=C05900001000 # IILF R5,X'1000' R5=SYSIB area length 10 | r 212=C079EE000000 # IILF R7,X'EE000000' R7=Padding byte, zero length 11 | r 218=0E46 # MVCL R4,R6 Fill SYSIB with padding byte 12 | r 21A=98010358 # LM R0,R1,FC111 Load R0=FC-SC1,R1=SC2 13 | r 21E=B27D9000 # STSI 0(R9) Store System Information 14 | r 222=B2B20300 # LPSWE WAITPSW Load enabled wait PSW 15 | r 226=B2B20310 # LPSWE DISWAIT Load disabled wait PSW 16 | r 300=07020001800000000000000000AAAAAA # WAITPSW Enabled wait state PSW 17 | r 310=00020001800000000000000000BADBAD # DISWAIT Disabled wait state PSW 18 | r 350=0000000000000000 # CPU ID from STIDP 19 | r 358=1000000100000001 # TEST4 FC=1,SC1=1,SC2=1 20 | ostailor null 21 | restart 22 | pause 1 23 | * Display CPU ID from STIDP 24 | r 350.8 25 | * Display SYSIB 1.1.1 from STSI 26 | r 2000.100 27 | -------------------------------------------------------------------------------- /tests/tests.conf: -------------------------------------------------------------------------------- 1 | * Configuration file for running tests using "runtest" 2 | 3 | # This file was put into the public domain 2015-10-05 by John P. 4 | # Hartmann. You can use it for anything you like, as long as this 5 | # notice remains. 6 | 7 | # The current directory should be the build one where the "make" 8 | # command was issued. Thus, the loadable modules come from the 9 | # newly compiled modules rather than from the installed ones, if any. 10 | 11 | * The console printer/keyboard must be subchannel 0 12 | 0009 1052-C / 13 | -------------------------------------------------------------------------------- /tests/timeout.tst: -------------------------------------------------------------------------------- 1 | * This test case relies on a PSW of all zeros being valid. 2 | * So the restart goes to 0 and takes an 0c1. The program new 3 | * PSW also goes to 0 and takes another program check. 4 | * Note that this is not a program interrupt loop since the 5 | * program new PSW is valid. 6 | *Testcase timeout 7 | sysclear 8 | archmode z 9 | *Timeout 10 | runtest .01 11 | *Program 1 12 | *Done nowait 13 | -------------------------------------------------------------------------------- /tt32if.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/tt32if.h -------------------------------------------------------------------------------- /util/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | bin_SCRIPTS = \ 3 | bldlvlck \ 4 | dasdlist \ 5 | voldsext.cmd 6 | 7 | 8 | dist_pkgdata_DATA = \ 9 | awssl-v19g \ 10 | awswrite.jcl \ 11 | cckddump.hla \ 12 | cckdload.hla \ 13 | rawstape.jcl \ 14 | scsiboot \ 15 | tapeconv.jcl \ 16 | TMOUNT.txt \ 17 | zzsacard.bin 18 | 19 | 20 | EXTRA_DIST = \ 21 | configure.ac \ 22 | dasdlist.bat \ 23 | Makefile.am 24 | 25 | -------------------------------------------------------------------------------- /util/WSMInstallScriptLicense.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}{\f1\fnil\fcharset2 Symbol;}} 2 | {\*\generator Riched20 10.0.14393}\viewkind4\uc1 3 | \pard\sl240\slmult1\f0\fs22\lang9 Use of the Windows Support Modules for Hercules are governed by the following license agreements:\par 4 | 5 | \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360\sl240\slmult1 bzip2: The bzip license.\par 6 | {\pntext\f1\'B7\tab}pcre: The pcre license.\par 7 | {\pntext\f1\'B7\tab}zlib: The zlip/libpng license.\par 8 | 9 | \pard\sl240\slmult1 All three licenses include a notice that the software is provided 'as-is', without any express or implied warranty. A copy of each license agreement is installed with each Module. \par 10 | } 11 | -------------------------------------------------------------------------------- /util/configure.ac: -------------------------------------------------------------------------------- 1 | THIS IS A DUMMY FILE 2 | 3 | This is needed so that 'autoconf --version' reports the 2.5x version 4 | and not the 2.13 version to bldlvlck 5 | -------------------------------------------------------------------------------- /util/dasdlist.bat: -------------------------------------------------------------------------------- 1 | bash dasdlist %1 %2 %3 %4 %5 2 | -------------------------------------------------------------------------------- /util/scsiboot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/util/scsiboot -------------------------------------------------------------------------------- /util/zzsacard.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/util/zzsacard.bin -------------------------------------------------------------------------------- /vmfplc2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hercules-390/hyperion/bec74e3a3dc26acb251eb820b3aeafcee0576b88/vmfplc2.c -------------------------------------------------------------------------------- /vstore.c: -------------------------------------------------------------------------------- 1 | /* VSTORE.C (c) Copyright Roger Bowler, 2000-2012 */ 2 | /* ESA/390 Virtual Storage Functions */ 3 | /* */ 4 | /* Released under "The Q Public License Version 1" */ 5 | /* (http://www.hercules-390.org/herclic.html) as modifications to */ 6 | /* Hercules. */ 7 | 8 | /* Interpretive Execution - (c) Copyright Jan Jaeger, 1999-2012 */ 9 | /* z/Architecture support - (c) Copyright Jan Jaeger, 1999-2012 */ 10 | 11 | #include "hstdinc.h" 12 | 13 | #ifndef _HENGINE_DLL_ 14 | #define _HENGINE_DLL_ 15 | #endif 16 | #ifndef _VSTORE_C 17 | #define _VSTORE_C 18 | #endif 19 | 20 | #include "hercules.h" 21 | 22 | #if !defined(OPTION_INLINE_VSTORE) || !defined(OPTION_INLINE_IFETCH) 23 | 24 | #include "opcode.h" 25 | #include "inline.h" /* automatically #includes dat.h and vstore.h */ 26 | 27 | #if !defined(_GEN_ARCH) 28 | 29 | #if defined(_ARCHMODE2) 30 | #define _GEN_ARCH _ARCHMODE2 31 | #include "vstore.c" 32 | #endif 33 | 34 | #if defined(_ARCHMODE3) 35 | #undef _GEN_ARCH 36 | #define _GEN_ARCH _ARCHMODE3 37 | #include "vstore.c" 38 | #endif 39 | 40 | #endif /* !defined(_GEN_ARCH) */ 41 | 42 | #endif /* !defined(OPTION_INLINE_VSTORE) || !defined(OPTION_INLINE_IFETCH) */ 43 | -------------------------------------------------------------------------------- /w32dl.h: -------------------------------------------------------------------------------- 1 | /* W32DL.H (c) Copyright Jan Jaeger, 2004-2012 */ 2 | /* dlopen compat */ 3 | 4 | #ifndef _W32_DL_H 5 | #define _W32_DL_H 6 | 7 | #ifdef _WIN32 8 | 9 | #define RTLD_NOW 0 10 | 11 | #define dlopen(_name, _flags) \ 12 | (void*) ((_name) ? LoadLibrary((_name)) : GetModuleHandle( NULL ) ) 13 | #define dlsym(_handle, _symbol) \ 14 | (void*)GetProcAddress((HMODULE)(_handle), (_symbol)) 15 | #define dlclose(_handle) \ 16 | FreeLibrary((HMODULE)(_handle)) 17 | #define dlerror() \ 18 | ("(unknown)") 19 | 20 | #endif /* _WIN32 */ 21 | 22 | #endif /* _W32_DL_H */ 23 | --------------------------------------------------------------------------------