Search

Friday, January 31, 2020

A multi-port remote RSYSLOG log server: multiple separate ports with different store forward rules for remote syslog clients

Supratim Sanyal's Blog - DECnet/Python nodes logging to Papertrail cloud-hosted log management service
DECnet/Python nodes logging to Papertrail cloud-hosted log management service

The Requirement


I have six instances of Paul Koning's DECnet/Python (e.g. PYRTR) doing DECnet routing and wanted to send log messages from all six to one central location for analysis and further distribution.

While the above goal is very specific, the general requirement is to be able to forward logs from chosen applications to a dedicated TCP port different from the standard port 514 on a multi-port remote log server so that these logs are independently processed and and can be saved into separate log files and forwarded to other log collector and analyzer tools. The second objective is to do this with minimal impact to existing system-logging infrastructure on the existing remote log server.

The Design


I have the usual RSYSLOG (the rocket-fast system for log processing) version 7.4.4 running on Ubuntu 14.04 Linux on an old VPS. I wanted to open an additional port for RSYSLOG to listen to, without disturbing existing logging and rules. I would then send over TCP/IP all DECnet/Python logs to this special port and define rules for RSYSLOG to apply to only this dedicated port. These rules would write the DECnet/Pyhton logs received over TCP/IP to a separate log file and forward only DECnet/Python logs to other log collectors including my favorite Papertrail cloud-hosted log management service.

The Implementation

Ubuntu 14.04's configuration of RSYSLOGD is simple. /etc/rsyslog.conf pretty much loads required modules and hands off specific configuration to separate files in /etc/rsyslog.d. This makes it very easy to add to the configuration by simply introducing a new configuration file in /etc/rsyslog.d.

For this example, we will use port 8514 as our dedicated log collection port for DECnet/Python. In addition to TCP/IP, we will also be ready to accept logs from remote syslog clients over UDP/IP.

First, enable the imudp and imtcp modules by uncommenting them near the top of /etc/rsyslog.conf. For internet-facing servers, you can use a firewall (UFW and friends will do fine) to block access to TCP and UDP port 514 from the internet.

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


Now create a configuration file 97-pydecnet-collector.conf in /etc/rsyslog.d. This file should have contents like the following. Essentially, this configuration results in RSYSLOG listening to the ports mentioned in the last two lines, and then when it receives log entries on those ports, it performs the "actions" in the ruleset till it hits "stop". "stop" means discard the received log message at that point with no further processing.

See the inline comments for details and adjust according to your requirements.

# /etc/rsyslog.d/97-pydecnet-collector.conf
ruleset(name="pydecnet-collect"){


    # write the incoming log message to the indicated file
    action(type="omfile" file="/var/log/pydecnet-collect.log")


    # forward to another log server over network, queuing up at most
    # the indicated number of log entries if network link goes down
    # adjust target, port-number as per your other remote log server
    action(type="omfwd" target="<remote-hostname>" protocol="tcp" port="<remote-port>"
           queue.filename="pydecnet-queue-to-vps" queue.size="1000" queue.type="LinkedList")


    # forward to papertrail log server over network, queuing up 
    # at most the indicated number of log entries if 
    # network link goes down.
    # actual target host and port number will be provided by 
    # papertrail when you sign up
    action(type="omfwd" target="<host>.papertrailapp.com" protocol="tcp" port="<remote-papertrail-port>"
           queue.filename="pydecnet-queue-to-papertrail" queue.size="1000" queue.type="LinkedList")


    # forward to yet another log server over network!
    action(type="omfwd" target="<remote-hostname>" protocol="tcp" port="<remote-port>"
           queue.filename="pydecnet-queue-to-svr2" queue.size="1000" queue.type="LinkedList")


    # More actions can of course be added ...


    # Stop processing here and discard the log message
    stop
}
# End of ruleset

# Listen for and process (apply ruleset) on incoming log 
# messages from remote syslog clients
input(type="imudp" port="8514" ruleset="pydecnet-collect")
input(type="imtcp" port="8514" ruleset="pydecnet-collect")

# EOF


Then restart RSYSLOG. You can check the regular syslog file (/var/log/syslog in my case) for any errors reported by RSYSLOG daemon and address any reported errors in the new configuration.




Monday, January 27, 2020

Moving Thunderbird e-mail from Windows to Linux, MacOS X and other operating systems

Thunderbird Official Logo

The cheap SSD that I had put into my ancient overheated Compaq CQ61 crapped out, forcing me to replace it and reinstall my current favorite operating system MX Linux. As a bit of history, this laptop has gone through three platter hard drive and now one SSD failures. It is also on it's fourth keyboard, third power adapter, and probably 10th battery. But that is beside the point.

Thunderbird is my current email client of choice, and I once again found myself needing to copy over all of my Thunderbird email to the freshly installed MX Linux. Having multiple email and newsgroup accounts, I did not want to enter authentication details for each after the migration either.

The basic steps of grabbing Thunderbird for Windows email including account usernames and passwords are documented all over the internet. On Windows 10 (and possibly on Windows 7 onward), it boils down to:

  1. If Thunderbird is running, close the application
  2. Open File Explorer
  3. Type in the location "%APPDATA%\Thunderbird"
  4. Right-click on the file "profiles" and open in Notepad or your favorite text editor (I use Notepad++)
  5. Examine the file and identify the folder location pointed to by the "Path=" configuration line under the [Profile0] section. This is where all your email and newsgroups should live, and is referred to by Thunderbird as your "profile".
  6. You can copy the folder name from the "Path=" line and paste it into File Explorer. You will see files and folders corresponding to your email and newsgroup accounts.
  7. Assuming you have 7zip or a similar utility installed, in File Explorer select everything and zip them up into a zip archive file.
  8. Transfer this zip archive file to your Linux machine.

Now, on the Linux machine:

    Thunderbird Linux Initial Screen
  1. If Thunderbird was previously launched, there will be a hidden ".thunderbird" directory under your home directory. Delete this directory using "rm -rf $HOME/.thunderbird". Warning: If you have used Thunderbird before, this will delete all existing emails and newsgroup articles!
  2. Launch Thunderbird, but Cancel out all initial windows and exit Thunderbird. Do not create any accounts!
  3. Thunderbird has now created a new .thunderbird directory under your home directory, and inside it you will find the file "profiles.ini". Look at this file:
    cat $HOME/.thunderbird/profiles.ini
  4.  Once again, locate the directory name where your email is stored by identifying the "Path=" configuration line under the [Profile0] section. This will typically be some random letters followed by .default or .default-default or something similar. This is where you have to unzip the files into from the zip archive you copied over from the Windows machine.

Well, I transferred over the profile contents from Windows 10 laptop into the right directory on the new SSD and started Thunderbird up. And, I was immediately hit by Thunderbird asking for credentials for all the accounts in turn. Not only that, Thunderbird refused to remember the passwords, even if I remembered and entered them correctly. I could see my email transferred over, but could not get new ones or send new email without the authentication information for the accounts.

The solution to the "Thunderbird always asking for password" issue turned out to be very simple. Close Thunderbird and simply delete the pkcs11.txt file copied over from Windows in the profile folder (thank you mozillaZine).

Relaunch Thunderbird and enjoy your email on Linux! This procedure should generally work for copying or moving over Thunderbird email across different operating systems.

Update: On Mac OS X, Thunderbird profiles are stored under Library/Thunderbird directory under the user's home directory, i.e. /Users/<username>/Library/Thunderbird/Profiles has the profiles.ini file and subdirectories under there have the profile data.

Friday, January 17, 2020

Netdata Cloud on FreeBSD: First Impressions

SanyalNET Labs: Netdata on FreeBSD 12-RELEASE
Netdata Cloud on FreeBSD 12-RELEASE


Though my primary network monitoring tool for Sanyalnet Labs continues to be Pandora FMS with eHorus, I have been coming across hobbyists running Netdata Cloud and decided to give it a shot on my Dell PowerEdge 2950 FreeBSD 12-Release hypervisor that hosts a bunch of QEMU, Oracle Virtualbox, SIMH and Hercules virtual machines.

Static screenshots of Netdata Cloud do not do justice to the dynamism seen on the web interface - all the dials, gauges and graphs update at intervals in the order of single seconds - it is visual candy just by itself!

The instructions for installing Netdata Cloud on FreeBSD are fortunately simple and clear. A minor hiccup was the auto-update tool failing to install complaining "sed: -I or -i may not be used with stdin". Not a big deal for me since I am usually not keen on auto-updaters for anything, though I reported the issue. I must mention here that the ever-alert Netdata Cloud community deserves kudos - my bug-report issue #7788 was seen and assigned almost as soon as I had posted it!

This note displayed during installation is important to get Netdata Cloud to start at boot:

Note: To explicitly enable netdata automatic start, set 'netdata_enable' to 'YES' in /etc/rc.conf

Other important messages included:

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  service netdata stop

To start netdata run:

  service netdata start



At the end of installation, I was happy to see:

--- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...



The version installed at the time of writing this post was 1.19.0-336-nightly.

Following the getting-started guide was the next step. This is where the Cloud part of Netdata kicks in. It is free for all Netdata users.

As documented at Registration and Signing in, the cloud feature is activated by registering from the "Sign In" link in the local browser itself. The cloud feature ties together all systems running Netdata Cloud registered to the same account in a single web page available from a "Nodes" link at the top. Not only that, important dynamic data for all systems are visually available on the right side of the web interface. And the most awesome cloud feature: all of this is available on the web pages presented by every individual system running Netdata Cloud logged in to the same account!

Netdata Cloud: All Systems on Onc Screen

There are two themes to chose from at this time - a dark theme as in the first screenshot at the top of this post, and a white theme as in the second screenshot above.

All information is dynamically presented by Netdata. I was impressed by the fact that even in the text below, the graphs are dynamic and keep scrolling leftwards within the text:

SANYALnet Labs: Netdata Cloud Monitoring


The default set of sensors is pretty impressive too. The Linux installation even has a sensors for software interrupts and entropy pool size which is used for random number generation, though they are missing at this time from the FreeBSD installation.
Netdata Cloud - default Linux sensors
Netdata Cloud - default FreeBSD sensors

Overall, the first impression of Netdata Cloud: it impresses! I plan on deploying it on my numerous bare-metal and virtual machines to allow me to keep an eye on all my toys from one central web interface - actually any of the web interfaces presented by the monitored systems thanks to the Cloud feature.

Friday, January 10, 2020

MVS 3.8 Operating System on IBM 3033 Mainframe: Virtualization on Linux Using Hercules and MVS 3.8J TK4- distribution

Supratim Sanyal's Blog: IBM MVS 3.8j Tur(n)key 4- ("TK4-") Operatimg System OS/VS2 MVS 3.8j under Hercules System/370, ESA/390, z/Architecture Emulator
IBM MVS 3.8j Tur(n)key 4- ("TK4-")
Knowing nothing about IBM mainframes, and never having had the opportunity to use one, I embarked on deploying an emulated IBM-3033 mainframe running their MVS 3.8 operating system using the Hercules emulator on Linux (OpenSUSE Tumbleweed) under guidance of moshix's  "IBM’s MVS 3.8 on Linux for newcomers" on YouTube. Moshix deserves all credit for everything in this post, I just followed his instructions. Here is the video:



Installation of IBM 3033 Mainframe / MVS 3.8


IBM 3033 Mainframe
IBM 3033 Mainframe
The "MVS 3.8j Tur(n)key 4- System" website has all the needed material. In addition, a IBM 3270 terminal emulator being mandatory, I simply installed the x3270 emulator from the OpenSUSE repository:

$ sudo zypper install x3270
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  x3270

1 new package to install.
Overall download size: 1.4 MiB. Already cached: 0 B. After the operation, additional 7.4 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): 
Retrieving package x3270-3.5-3.1.x86_64                                          (1/1),   1.4 MiB (  7.4 MiB unpacked)
Retrieving: x3270-3.5-3.1.x86_64.rpm .............................................................[done (281.5 KiB/s)]
Checking for file conflicts: ...................................................................................[done]
(1/1) Installing: x3270-3.5-3.1.x86_64 .........................................................................[done]
Executing %posttrans scripts ...................................................................................[done]


Installation of the he MVS 3.8j Tur(n)key 4- System distribution basically consists of decompressing the current, cbt and source tarballs in turn allowing the cbt and source tarballs to overwrite any existing files.

Since I already have a Hercules IBM S/390 virtual machine running ubuntu Linux that uses TCP port 3270 for TSO User Sessions (TSO stands for "Time Sharing Option" - IBM mainframe jargon for terminal sessions), for this new MVS 3.8J virtual machine I modified conf/tk4-.conf file to define "CNSLPORT ${CNSLPORT:=3271}" instead of "CNSLPORT ${CNSLPORT:=3270}". Here is the one-line difference between the modified and original:

$ diff tk4-.cnf tk4-.cnf.orig 
14,15c14
< ###CNSLPORT ${CNSLPORT:=3270}
< CNSLPORT ${CNSLPORT:=3271}
---
> CNSLPORT ${CNSLPORT:=3270}

I tweaked the launcher shell script "mvs" to nice the MVS virtual machine down:

$ diff mvs mvs.orig 
14,15d13
51c49
< nice -n 19 ionice -c 3 $force_arch hercules $DAEMON -f conf/tk4-.cnf >log/3033.log
---
> $force_arch hercules $DAEMON -f conf/tk4-.cnf >log/3033.log

and wrapped my usual "run" shell script around the modified launcher script "mvs".  Here is the complete run-mvs-3.8-in-screen.sh:

#!/bin/sh
#
# Hercules/IBM 3033 will have TCP port 3271 open if it is running
cd /disk2/home/localuser/hercules-mvs-3.8/run/
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/3271'
if [ "$?" -ne 0 ]; then
  echo "$0 - No duplicate instance found, good to launch"
  logger "$0 - No duplicate instance found, good to launch"
  sync
else
        logger "$0 - Error hercules ibm3033 mvs is already running, check screen -r ibm3033"
        echo "$0 - Error hercules ibm3033 mvs is already running, check screen -r ibm3033"
        echo "screens:"
        /usr/bin/screen -ls
        exit 0
fi

echo Connect IBM3270 Terminal Emulator to TCP Port 3271 after bootup
echo e.g run x3270 X11 application or text-mode \"c3270 localhost:3271\"
#read -p "Press any key to continue..."
sleep 10


logger "$0 - starting hercules ibm3033 in screen ibm3033"
screen -S ibm3033 -m -d nice -n 10 ./mvs
sleep 5
logger "$0 - `screen -ls`"
echo "$0 - `screen -ls`"

sync;sync;sync
exit 0

Booting up the MVS system is then as simple as running the run-mvs-3.8-in-screen.sh script. Here is what Hercules emulator looks like:

IBM 3033 Mainframe running MVS 3.8 operating system under Hercules emulator on Linux OpenSUSE Tumbleweed


Pressing ESC in Hercules toggles a CPU and hardware oriented information screen:

IBM 3033 Mainframe running MVS 3.8 operating system under Hercules emulator on Linux OpenSUSE Tumbleweed - IBM Mainframe CPU and Hardware Details


Connecting to the MVS mainframe from a terminal is accomplished by launching the x3270 application (or in the absence of a X11 graphical windowing environment,  c3270 text-mode equivalent) and connecting to localhost:3271.

Supratim Sanyal's Blog: MVS 3.8 / 3.8J Utilities Commands Help on IBM mainframe
MVS 3.8 Utilities Help Screen

Language Compilers for IBM 3033 Mainframe / MVS 3.8


Sieve of Eratosthenes COBOL source on IBM Mainframe MVS 3.8J TK4- Operating System
Sieve of Eratosthenes COBOL source on IBM Mainframe MVS 3.8J TK4- Operating System

Following instructions in Moshix's tutorial, I could successfully edit and submit the Sieve of Eratosthenes prime-number generator programmed in COBOL to the MVS 3.8 batch execution  facility. The COBOL program is one of the included ones in the TK4- distribution. Here is the line printer output generated by Hercules:


=======================
Sieve of Eratosthenes programmed in COBOL
IBM MVS 3.8 TK4-
Batch Job Printer Output: Prime Numbers till 9999
Emulate IBM 3033 Mainframe Computer running MVS 3.8 O/S:
https://supratim-sanyal.blogspot.com/2020/01/mvs-38-operating-system-on-ibm-3033.html
=======================
MM MM FFFFFFFFFFFF 11
MMM MMM FFFFFFFFFFFF 111
MMMM MMMM FF 1111
MM MM MM MM FF 11
MM MMMM MM FF 11
MM MM MM FFFFFFFF 11
MM MM FFFFFFFF 11
MM MM FF 11
MM MM FF 11
MM MM FF 11
MM MM FF 1111111111
MM MM FF 1111111111
SSSSSSSSSS 11 555555555555 8888888888 AAAAAAAAAA
SSSSSSSSSSSS 111 555555555555 888888888888 AAAAAAAAAAAA
SS SS 1111 55 88 88 AA AA
SS 11 55 88 88 AA AA
SSS 11 55 88 88 AA AA
SSSSSSSSS 11 555555555 88888888 AAAAAAAAAAAA
SSSSSSSSS 11 5555555555 88888888 AAAAAAAAAAAA
SSS 11 55 88 88 AA AA
SS 11 55 88 88 AA AA
SS SS 11 55 88 88 AA AA
SSSSSSSSSSSS 1111111111 555555555555 888888888888 AA AA
SSSSSSSSSS 1111111111 55555555555 8888888888 AA AA
****A END STC 158 MF1 ROOM 1.52.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 1.52.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 1.52.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 1.52.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
HH HH EEEEEEEEEEEE RRRRRRRRRRR CCCCCCCCCC 00000000 11 CCCCCCCCCC OOOOOOOOOOOO
HH HH EEEEEEEEEEEE RRRRRRRRRRRR CCCCCCCCCCCC 0000000000 111 CCCCCCCCCCCC OOOOOOOOOOOO
HH HH EE RR RR CC CC 00 0000 1111 CC CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HHHHHHHHHHHH EEEEEEEE RRRRRRRRRRRR CC 00 00 00 11 CC OO OO
HHHHHHHHHHHH EEEEEEEE RRRRRRRRRRR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 0000 00 11 CC OO OO
HH HH EE RR RR CC CC 000 00 11 CC CC OO OO
HH HH EEEEEEEEEEEE RR RR CCCCCCCCCCCC 0000000000 1111111111 CCCCCCCCCCCC OOOOOOOOOOOO
HH HH EEEEEEEEEEEE RR RR CCCCCCCCCC 00000000 1111111111 CCCCCCCCCC OOOOOOOOOOOO
JJJJJJJJJJ 555555555555 AAAAAAAAAA
JJJJJJJJJJ 555555555555 AAAAAAAAAAAA
JJ 55 AA AA
JJ 55 AA AA
JJ 55 AA AA
JJ 555555555 AAAAAAAAAAAA
JJ 5555555555 AAAAAAAAAAAA
JJ 55 AA AA
JJ JJ 55 AA AA
JJ JJ 55 AA AA
JJJJJJJJ 555555555555 AA AA
JJJJJJ 55555555555 AA AA
****A START JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 START A****
****A START JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 START A****
****A START JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 START A****
****A START JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 START A****
J E S 2 J O B L O G
01.56.53 JOB 5 $HASP373 HERC01CO STARTED - INIT 1 - CLASS A - SYS TK4-
01.56.53 JOB 5 IEF403I HERC01CO - STARTED - TIME=01.56.53
01.56.53 JOB 5 IEFACTRT - Stepname Procstep Program Retcode
01.56.53 JOB 5 HERC01CO ARRAY ASM IFOX00 RC= 0000
01.56.53 JOB 5 HERC01CO PRIMES COB IKFCBL00 RC= 0000
01.56.53 JOB 5 HERC01CO PRIMES GO LOADER RC= 0000
01.56.53 JOB 5 IEF404I HERC01CO - ENDED - TIME=01.56.53
01.56.53 JOB 5 $HASP395 HERC01CO ENDED
------ JES2 JOB STATISTICS ------
11 JAN 20 JOB EXECUTION DATE
282 CARDS READ
416 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
0.00 MINUTES EXECUTION TIME
1 //HERC01CO JOB (COBOL), JOB 5
// 'Eratosthenes Sieve',
// CLASS=A,
// MSGCLASS=A,
// REGION=8M,TIME=1440,
// MSGLEVEL=(1,1),
// USER=HERC01,PASSWORD= GENERATED BY GDL
**********************************************************************
***
*** Name: SYS2.JCLLIB(PRIMCOB3)
***
*** Desc: Sieve of Eratosthenes programmed in COBOL.
*** All prime numbers up to the value entered via
*** //GO.SYSIN DD are computed. An assembler subroutine
*** is used to overcome COBOL 32767 array index
*** and 131068 array length limitations.
***
**********************************************************************
2 //ARRAY EXEC ASMFC,PARM.ASM=(OBJ,NODECK,NOESD,NOLIST,NOXREF)
3 XXASMFC PROC MAC='SYS1.MACLIB',MAC1='SYS1.MACLIB', 00000100
XX MAC2='SYS1.MACLIB',MAC3='SYS1.MACLIB',SOUT='*' 00000200
4 XXASM EXEC PGM=IFOX00,REGION=128K 00000300
5 XXSYSLIB DD DSN=&MAC,DISP=SHR 00000400
6 XX DD DSN=&MAC1,DISP=SHR 00000500
7 XX DD DSN=&MAC2,DISP=SHR 00000600
8 XX DD DSN=&MAC3,DISP=SHR 00000700
9 XXSYSUT1 DD DSN=&&SYSUT1,UNIT=SYSSQ,SPACE=(1700,(600,100)), 00000800
XX SEP=(SYSLIB) 00000900
10 XXSYSUT2 DD DSN=&&SYSUT2,UNIT=SYSSQ,SPACE=(1700,(300,50)), 00001000
XX SEP=(SYSLIB,SYSUT1) 00001100
11 XXSYSUT3 DD DSN=&&SYSUT3,UNIT=SYSSQ,SPACE=(1700,(300,50)) 00001200
12 XXSYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089 00001300
13 XXSYSPUNCH DD SYSOUT=B 00001400
14 //ASM.SYSIN DD *
15 //ASM.SYSGO DD UNIT=VIO,SPACE=(800,(1,1)),DISP=(,PASS),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),DSN=&&INIPRIME
16 //PRIMES EXEC COBUCG,
// PARM.COB='FLAGW,LOAD,SUPMAP,SIZE=2048K,BUF=1024K'
17 XXCOBUCG PROC SOUT='*' 00000100
18 XXCOB EXEC PGM=IKFCBL00, 00000200
XX PARM='LOAD,SIZE=2048K,BUF=1024K' 00000300
19 XXSYSPRINT DD SYSOUT=&SOUT 00000400
20 XXSYSUT1 DD UNIT=SYSDA,SPACE=(460,(700,100)) 00000500
21 XXSYSUT2 DD UNIT=SYSDA,SPACE=(460,(700,100)) 00000600
22 XXSYSUT3 DD UNIT=SYSDA,SPACE=(460,(700,100)) 00000700
23 XXSYSUT4 DD UNIT=SYSDA,SPACE=(460,(700,100)) 00000800
24 XXSYSLIN DD DSNAME=&LOADSET,DISP=(MOD,PASS), 00000900
XX UNIT=SYSDA,SPACE=(80,(500,100)) 00001000
25 //COB.SYSPUNCH DD DUMMY
26 //COB.SYSIN DD *
27 //COB.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR
28 XXGO EXEC PGM=LOADER,PARM='MAP,LET',COND=(5,LT,COB) 00001100
29 //GO.SYSLIN DD
X/SYSLIN DD DSNAME=*.COB.SYSLIN,DISP=(OLD,DELETE) 00001200
30 // DD DSN=&&INIPRIME,DISP=(OLD,DELETE)
31 XXSYSLOUT DD SYSOUT=&SOUT 00001300
32 XXSYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR 00001400
33 //GO.SYSOUT DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=161,BLKSIZE=16100)
34 //GO.SYSIN DD *
STMT NO. MESSAGE
-
5 IEF653I SUBSTITUTION JCL - DSN=SYS1.MACLIB,DISP=SHR
6 IEF653I SUBSTITUTION JCL - DSN=SYS1.MACLIB,DISP=SHR
7 IEF653I SUBSTITUTION JCL - DSN=SYS1.MACLIB,DISP=SHR
8 IEF653I SUBSTITUTION JCL - DSN=SYS1.MACLIB,DISP=SHR
12 IEF653I SUBSTITUTION JCL - SYSOUT=*,DCB=BLKSIZE=1089
19 IEF653I SUBSTITUTION JCL - SYSOUT=*
31 IEF653I SUBSTITUTION JCL - SYSOUT=*
IEF236I ALLOC. FOR HERC01CO ASM ARRAY
IEF237I 148 ALLOCATED TO SYSLIB
IEF237I 148 ALLOCATED TO
IEF237I 148 ALLOCATED TO
IEF237I 148 ALLOCATED TO
IEF237I 190 ALLOCATED TO SYSUT1
IEF237I 140 ALLOCATED TO SYSUT2
IEF237I 180 ALLOCATED TO SYSUT3
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSPUNCH
IEF237I JES2 ALLOCATED TO SYSIN
IEF237I VIO ALLOCATED TO SYSGO
IEF142I HERC01CO ASM ARRAY - STEP WAS EXECUTED - COND CODE 0000
IEF285I SYS1.MACLIB KEPT *-------16
IEF285I VOL SER NOS= MVSRES.
IEF285I SYS1.MACLIB KEPT *--------0
IEF285I VOL SER NOS= MVSRES.
IEF285I SYS1.MACLIB KEPT *--------0
IEF285I VOL SER NOS= MVSRES.
IEF285I SYS1.MACLIB KEPT *--------0
IEF285I VOL SER NOS= MVSRES.
IEF285I SYS20011.T015653.RA000.HERC01CO.SYSUT1 DELETED *-------59
IEF285I VOL SER NOS= WORK03.
IEF285I SYS20011.T015653.RA000.HERC01CO.SYSUT2 DELETED *--------9
IEF285I VOL SER NOS= WORK00.
IEF285I SYS20011.T015653.RA000.HERC01CO.SYSUT3 DELETED *--------8
IEF285I VOL SER NOS= WORK02.
IEF285I JES2.JOB00005.SO0104 SYSOUT
IEF285I JES2.JOB00005.SO0105 SYSOUT
IEF285I JES2.JOB00005.SI0101 SYSIN
IEF285I SYS20011.T015653.RA000.HERC01CO.INIPRIME PASSED *--------1
IEF373I STEP /ASM / START 20011.0156
IEF374I STEP /ASM / STOP 20011.0156 CPU 0MIN 00.15SEC SRB 0MIN 00.01SEC VIRT 2108K SYS 224K
************************************************************************************************************************************
* 1. Jobstep of job: HERC01CO Stepname: ASM Program name: IFOX00 Executed on 11.01.20 from 01.56.53 to 01.56.53 *
* elapsed time 00:00:00,24 CPU-Identifier: TK4- Page-in: 0 *
* CPU time 00:00:00,16 Virtual Storage used: 2108K Page-out: 0 *
* corr. CPU: 00:00:00,16 CPU time has been corrected by 1 / 1,0 multiplier *
* *
* I/O Operation *
* Number of records read via DD * or DD DATA: 111 *
* 148......16 148.......0 148.......0 148.......0 190......59 140.......9 180.......8 DMY.......0 DMY.......0 DMY.......0 *
* FFF.......1 *
* *
* Charge for step (w/o SYSOUT): 0,26 *
************************************************************************************************************************************
IEF236I ALLOC. FOR HERC01CO COB PRIMES
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I 140 ALLOCATED TO SYSUT1
IEF237I 190 ALLOCATED TO SYSUT2
IEF237I 180 ALLOCATED TO SYSUT3
IEF237I 170 ALLOCATED TO SYSUT4
IEF237I 190 ALLOCATED TO SYSLIN
IEF237I DMY ALLOCATED TO SYSPUNCH
IEF237I JES2 ALLOCATED TO SYSIN
IEF237I 148 ALLOCATED TO SYSLIB
IEF142I HERC01CO COB PRIMES - STEP WAS EXECUTED - COND CODE 0000
IEF285I JES2.JOB00005.SO0106 SYSOUT
IEF285I SYS20011.T015653.RA000.HERC01CO.R0000001 DELETED *--------6
IEF285I VOL SER NOS= WORK00.
IEF285I SYS20011.T015653.RA000.HERC01CO.R0000002 DELETED *--------6
IEF285I VOL SER NOS= WORK03.
IEF285I SYS20011.T015653.RA000.HERC01CO.R0000003 DELETED *--------9
IEF285I VOL SER NOS= WORK02.
IEF285I SYS20011.T015653.RA000.HERC01CO.R0000004 DELETED *--------3
IEF285I VOL SER NOS= WORK01.
IEF285I SYS20011.T015653.RA000.HERC01CO.LOADSET PASSED *-------76
IEF285I VOL SER NOS= WORK03.
IEF285I JES2.JOB00005.SI0102 SYSIN
IEF285I SYS1.COBLIB KEPT *--------0
IEF285I VOL SER NOS= MVSRES.
IEF373I STEP /COB / START 20011.0156
IEF374I STEP /COB / STOP 20011.0156 CPU 0MIN 00.08SEC SRB 0MIN 00.03SEC VIRT 2076K SYS 232K
************************************************************************************************************************************
* 2. Jobstep of job: HERC01CO Stepname: COB Program name: IKFCBL00 Executed on 11.01.20 from 01.56.53 to 01.56.53 *
* elapsed time 00:00:00,19 CPU-Identifier: TK4- Page-in: 0 *
* CPU time 00:00:00,11 Virtual Storage used: 2076K Page-out: 0 *
* corr. CPU: 00:00:00,11 CPU time has been corrected by 1 / 1,0 multiplier *
* *
* I/O Operation *
* Number of records read via DD * or DD DATA: 136 *
* DMY.......0 140.......6 190.......6 180.......9 170.......3 190......76 DMY.......0 DMY.......0 148.......0 *
* *
* Charge for step (w/o SYSOUT): 0,18 *
************************************************************************************************************************************
IEF236I ALLOC. FOR HERC01CO GO PRIMES
IEF237I 190 ALLOCATED TO SYSLIN
IEF237I VIO ALLOCATED TO
IEF237I JES2 ALLOCATED TO SYSLOUT
IEF237I 148 ALLOCATED TO SYSLIB
IEF237I JES2 ALLOCATED TO SYSOUT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I HERC01CO GO PRIMES - STEP WAS EXECUTED - COND CODE 0000
IEF285I SYS20011.T015653.RA000.HERC01CO.LOADSET DELETED *-------77
IEF285I VOL SER NOS= WORK03.
IEF285I SYS20011.T015653.RA000.HERC01CO.INIPRIME DELETED *--------2
IEF285I JES2.JOB00005.SO0107 SYSOUT
IEF285I SYS1.COBLIB KEPT *-------29
IEF285I VOL SER NOS= MVSRES.
IEF285I JES2.JOB00005.SO0108 SYSOUT
IEF285I JES2.JOB00005.SI0103 SYSIN
IEF373I STEP /GO / START 20011.0156
IEF374I STEP /GO / STOP 20011.0156 CPU 0MIN 00.04SEC SRB 0MIN 00.01SEC VIRT 332K SYS 232K
************************************************************************************************************************************
* 3. Jobstep of job: HERC01CO Stepname: GO Program name: LOADER Executed on 11.01.20 from 01.56.53 to 01.56.53 *
* elapsed time 00:00:00,06 CPU-Identifier: TK4- Page-in: 0 *
* CPU time 00:00:00,05 Virtual Storage used: 332K Page-out: 0 *
* corr. CPU: 00:00:00,05 CPU time has been corrected by 1 / 1,0 multiplier *
* *
* I/O Operation *
* Number of records read via DD * or DD DATA: 1 *
* 190......77 FFF.......2 DMY.......0 148......29 DMY.......0 DMY.......0 *
* *
* Charge for step (w/o SYSOUT): 0,08 *
************************************************************************************************************************************
IEF375I JOB /HERC01CO/ START 20011.0156
IEF376I JOB /HERC01CO/ STOP 20011.0156 CPU 0MIN 00.27SEC SRB 0MIN 00.05SEC
CB545 V2 LVL78 01MAY72 IBM OS AMERICAN NATIONAL STANDARD COBOL DATE JAN 11,2020
1
00001 10 * ////////////////////////////////////////////////////////// PRIME
00002 20 * // Name: Peter M. Maurer PRIME
00003 30 * // Program: Sieve of Eratosthenes PRIME
00004 40 * // Due: Never PRIME
00005 50 * // Language: COBOL PRIME
00006 60 * // PRIME
00007 70 * // Changes: PRIME
00008 80 * // - Juergen Winkelmann, 2014/10/25, o adaption to IBM OS COBOL PRIME
00009 90 * // o read limit from SYSIN PRIME
00010 100 * // o n**2 (sqrt) shortcut PRIME
00011 110 * // o skip even numbers PRIME
00012 120 * // o compact output format PRIME
00013 130 * // o dynamic prime flags PRIME
00014 140 * ////////////////////////////////////////////////////////// PRIME
00015 150 *** PRIME
00016 160 *** PRIME
00017 170 *** PRIME
00018 180 IDENTIFICATION DIVISION. PRIME
00019 190 PROGRAM-ID. 'PRIMES'. PRIME
00020 200 *** PRIME
00021 210 *** PRIME
00022 220 *** PRIME
00023 230 ENVIRONMENT DIVISION. PRIME
00024 240 ** PRIME
00025 250 ** PRIME
00026 260 CONFIGURATION SECTION. PRIME
00027 270 SOURCE-COMPUTER. IBM-360. PRIME
00028 280 OBJECT-COMPUTER. IBM-360. PRIME
00029 290 ** PRIME
00030 300 ** PRIME
00031 310 INPUT-OUTPUT SECTION. PRIME
00032 320 FILE-CONTROL. PRIME
00033 330 SELECT PRIMES-SYSIN PRIME
00034 340 ASSIGN TO UT-S-SYSIN. PRIME
00035 350 *** PRIME
00036 360 *** PRIME
00037 370 *** PRIME
00038 380 DATA DIVISION. PRIME
00039 390 ** PRIME
00040 400 ** PRIME
00041 410 FILE SECTION. PRIME
00042 420 FD PRIMES-SYSIN PRIME
00043 430 RECORDING MODE IS F PRIME
00044 440 RECORD CONTAINS 80 CHARACTERS PRIME
00045 450 BLOCK CONTAINS 1 RECORDS PRIME
00046 460 LABEL RECORDS ARE OMITTED PRIME
00047 470 DATA RECORD IS PRIMES-SYSIN-RECORD. PRIME
00048 480 01 PRIMES-SYSIN-RECORD. PRIME
00049 490 02 PRIMES-SYSIN-NUMBER PIC 99999999 OCCURS 10. PRIME
00050 500 ** PRIME
00051 510 ** PRIME
00052 520 WORKING-STORAGE SECTION. PRIME
00053 530 77 I PIC 99999999 COMP VALUE 1. PRIME
00054 540 77 J PIC 99999999 COMP. PRIME
2
00055 550 77 K PIC 99999999 COMP VALUE 1. PRIME
00056 560 77 N PIC 99999999 COMP. PRIME
00057 570 77 N-2 PIC 99999999 COMP. PRIME
00058 580 77 SQRTN PIC 99999999 COMP. PRIME
00059 590 77 PRODUCT PIC 99999999 COMP. PRIME
00060 600 77 ISPRIME PIC 9 VALUE 1 COMP. PRIME
00061 610 77 NOTPRIME PIC 9 VALUE 0 COMP. PRIME
00062 620 01 BLANK-LINE PIC A(160) VALUE ' '. PRIME
00063 630 01 OUT-INTEGER. PRIME
00064 640 02 SHOWIT PIC ZZZZZZZZ OCCURS 20. PRIME
00065 650 01 OUT REDEFINES OUT-INTEGER. PRIME
00066 660 02 OUT-LINE PIC X(160). PRIME
00067 670 *** PRIME
00068 680 *** PRIME
00069 690 *** PRIME
00070 700 PROCEDURE DIVISION. PRIME
00071 710 ** PRIME
00072 720 ** PRIME
00073 730 MAIN-PART. PRIME
00074 740 OPEN INPUT PRIMES-SYSIN. PRIME
00075 750 READ PRIMES-SYSIN AT END DISPLAY '** EOF on SYSIN **'. PRIME
00076 760 MOVE PRIMES-SYSIN-NUMBER (1) TO N. PRIME
00077 770 CLOSE PRIMES-SYSIN. PRIME
00078 780 SUBTRACT 2 FROM N GIVING N-2. PRIME
00079 790 * PRIME
00080 800 PERFORM NEXT-SQUARE UNTIL SQRTN GREATER N. PRIME
00081 810 MOVE I TO SQRTN. PRIME
00082 820 * PRIME
00083 830 MOVE 3 TO I. PRIME
00084 840 CALL 'INIPRIME' USING N. PRIME
00085 850 PERFORM CHECK-NUMBER UNTIL I GREATER SQRTN OR EQUAL SQRTN. PRIME
00086 860 * PRIME
00087 870 MOVE 3 TO I. PRIME
00088 880 MOVE 2 TO J. PRIME
00089 890 MOVE J TO SHOWIT (K). PRIME
00090 900 PERFORM PRINT UNTIL I GREATER N. PRIME
00091 910 CALL 'RLSPRIME' PRIME
00092 920 * PRIME
00093 930 MOVE K TO SHOWIT (1). PRIME
00094 940 MOVE N TO SHOWIT (2). PRIME
00095 950 DISPLAY ' '. PRIME
00096 960 DISPLAY SHOWIT (1), ' primes up to ', SHOWIT (2), ' found.'. PRIME
00097 970 STOP RUN. PRIME
00098 980 ** PRIME
00099 990 ** PRIME
00100 1000 CHECK-NUMBER. PRIME
00101 1010 PERFORM ADVANCE UNTIL I GREATER THAN SQRTN OR EQUAL TO SQRT PRIME
00102 1020 - N OR ISPRIME EQUAL TO 1. PRIME
00103 1030 IF ISPRIME EQUAL TO 1 PRIME
00104 1040 ADD I I GIVING J PRIME
00105 1050 MULTIPLY I BY I GIVING PRODUCT PRIME
00106 1060 PERFORM CROSS-OUT UNTIL PRODUCT GREATER THAN N. PRIME
00107 1070 MOVE 0 TO ISPRIME. PRIME
00108 1080 ** PRIME
00109 1090 ** PRIME
00110 1100 ADVANCE. PRIME
00111 1110 ADD 2 TO I. PRIME
3
00112 1120 CALL 'ISPRIME' USING I ISPRIME. PRIME
00113 1130 ** PRIME
00114 1140 ** PRIME
00115 1150 CROSS-OUT. PRIME
00116 1160 CALL 'SETPRIME' USING PRODUCT NOTPRIME. PRIME
00117 1170 ADD J TO PRODUCT. PRIME
00118 1180 ** PRIME
00119 1190 ** PRIME
00120 1200 NEXT-SQUARE. PRIME
00121 1210 ADD 1 TO I. PRIME
00122 1220 MULTIPLY I BY I GIVING SQRTN. PRIME
00123 1230 ** PRIME
00124 1240 ** PRIME
00125 1250 PRINT. PRIME
00126 1260 CALL 'ISPRIME' USING I ISPRIME. PRIME
00127 1270 IF ISPRIME EQUAL TO 1 PRIME
00128 1280 MOVE I TO SHOWIT (J) PRIME
00129 1290 ADD 1 TO K PRIME
00130 1300 ADD 1 TO J PRIME
00131 1310 IF J GREATER 20 PRIME
00132 1320 DISPLAY OUT-LINE PRIME
00133 1330 MOVE BLANK-LINE TO OUT-LINE PRIME
00134 1340 MOVE 1 TO J. PRIME
00135 1350 IF I GREATER N-2 AND J NOT EQUAL 1 DISPLAY OUT-LINE. PRIME
00136 1360 ADD 2 TO I. PRIME
4
*STATISTICS* SOURCE RECORDS = 136 DATA DIVISION STATEMENTS = 17 PROCEDURE DIVISION STATEMENTS = 45
*OPTIONS IN EFFECT* SIZE = 2097152 BUF = 1048576 LINECNT = 57 SPACE1, FLAGW, SEQ, SOURCE
*OPTIONS IN EFFECT* NODMAP, NOPMAP, NOCLIST, SUPMAP, NOXREF, LOAD, NODECK, APOST, NOTRUNC, NOLIB, NOVERB
*OPTIONS IN EFFECT* ZWB
VS LOADER
OPTIONS USED - PRINT,MAP,LET,CALL,RES,NOTERM,SIZE=307200,NAME=**GO
NAME TYPE ADDR NAME TYPE ADDR NAME TYPE ADDR NAME TYPE ADDR NAME TYPE ADDR
PRIMES SD AC010 INIPRIME SD ACCA0 RLSPRIME LR ACD6A SETPRIME LR ACD2A ISPRIME LR ACCEC
ILBOSTP0* SD ACE08 ILBOSTP1* LR ACE1E ILBODSP0* SD ACE40 ILBOBID0* SD AD540 ILBOBID2* LR AD54C
ILBOBID1* LR AD560 ILBOIDB0* SD AD5A8 ILBOIDB1* LR AD5C4
TOTAL LENGTH 1600
ENTRY ADDRESS AC010
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541
547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659
661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809
811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941
947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069
1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223
1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373
1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511
1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657
1663 1667 1669 1693 1697 1699 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 1801 1811
1823 1831 1847 1861 1867 1871 1873 1877 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987
1993 1997 1999 2003 2011 2017 2027 2029 2039 2053 2063 2069 2081 2083 2087 2089 2099 2111 2113 2129
2131 2137 2141 2143 2153 2161 2179 2203 2207 2213 2221 2237 2239 2243 2251 2267 2269 2273 2281 2287
2293 2297 2309 2311 2333 2339 2341 2347 2351 2357 2371 2377 2381 2383 2389 2393 2399 2411 2417 2423
2437 2441 2447 2459 2467 2473 2477 2503 2521 2531 2539 2543 2549 2551 2557 2579 2591 2593 2609 2617
2621 2633 2647 2657 2659 2663 2671 2677 2683 2687 2689 2693 2699 2707 2711 2713 2719 2729 2731 2741
2749 2753 2767 2777 2789 2791 2797 2801 2803 2819 2833 2837 2843 2851 2857 2861 2879 2887 2897 2903
2909 2917 2927 2939 2953 2957 2963 2969 2971 2999 3001 3011 3019 3023 3037 3041 3049 3061 3067 3079
3083 3089 3109 3119 3121 3137 3163 3167 3169 3181 3187 3191 3203 3209 3217 3221 3229 3251 3253 3257
3259 3271 3299 3301 3307 3313 3319 3323 3329 3331 3343 3347 3359 3361 3371 3373 3389 3391 3407 3413
3433 3449 3457 3461 3463 3467 3469 3491 3499 3511 3517 3527 3529 3533 3539 3541 3547 3557 3559 3571
3581 3583 3593 3607 3613 3617 3623 3631 3637 3643 3659 3671 3673 3677 3691 3697 3701 3709 3719 3727
3733 3739 3761 3767 3769 3779 3793 3797 3803 3821 3823 3833 3847 3851 3853 3863 3877 3881 3889 3907
3911 3917 3919 3923 3929 3931 3943 3947 3967 3989 4001 4003 4007 4013 4019 4021 4027 4049 4051 4057
4073 4079 4091 4093 4099 4111 4127 4129 4133 4139 4153 4157 4159 4177 4201 4211 4217 4219 4229 4231
4241 4243 4253 4259 4261 4271 4273 4283 4289 4297 4327 4337 4339 4349 4357 4363 4373 4391 4397 4409
4421 4423 4441 4447 4451 4457 4463 4481 4483 4493 4507 4513 4517 4519 4523 4547 4549 4561 4567 4583
4591 4597 4603 4621 4637 4639 4643 4649 4651 4657 4663 4673 4679 4691 4703 4721 4723 4729 4733 4751
4759 4783 4787 4789 4793 4799 4801 4813 4817 4831 4861 4871 4877 4889 4903 4909 4919 4931 4933 4937
4943 4951 4957 4967 4969 4973 4987 4993 4999 5003 5009 5011 5021 5023 5039 5051 5059 5077 5081 5087
5099 5101 5107 5113 5119 5147 5153 5167 5171 5179 5189 5197 5209 5227 5231 5233 5237 5261 5273 5279
5281 5297 5303 5309 5323 5333 5347 5351 5381 5387 5393 5399 5407 5413 5417 5419 5431 5437 5441 5443
5449 5471 5477 5479 5483 5501 5503 5507 5519 5521 5527 5531 5557 5563 5569 5573 5581 5591 5623 5639
5641 5647 5651 5653 5657 5659 5669 5683 5689 5693 5701 5711 5717 5737 5741 5743 5749 5779 5783 5791
5801 5807 5813 5821 5827 5839 5843 5849 5851 5857 5861 5867 5869 5879 5881 5897 5903 5923 5927 5939
5953 5981 5987 6007 6011 6029 6037 6043 6047 6053 6067 6073 6079 6089 6091 6101 6113 6121 6131 6133
6143 6151 6163 6173 6197 6199 6203 6211 6217 6221 6229 6247 6257 6263 6269 6271 6277 6287 6299 6301
6311 6317 6323 6329 6337 6343 6353 6359 6361 6367 6373 6379 6389 6397 6421 6427 6449 6451 6469 6473
6481 6491 6521 6529 6547 6551 6553 6563 6569 6571 6577 6581 6599 6607 6619 6637 6653 6659 6661 6673
6679 6689 6691 6701 6703 6709 6719 6733 6737 6761 6763 6779 6781 6791 6793 6803 6823 6827 6829 6833
6841 6857 6863 6869 6871 6883 6899 6907 6911 6917 6947 6949 6959 6961 6967 6971 6977 6983 6991 6997
7001 7013 7019 7027 7039 7043 7057 7069 7079 7103 7109 7121 7127 7129 7151 7159 7177 7187 7193 7207
7211 7213 7219 7229 7237 7243 7247 7253 7283 7297 7307 7309 7321 7331 7333 7349 7351 7369 7393 7411
7417 7433 7451 7457 7459 7477 7481 7487 7489 7499 7507 7517 7523 7529 7537 7541 7547 7549 7559 7561
7573 7577 7583 7589 7591 7603 7607 7621 7639 7643 7649 7669 7673 7681 7687 7691 7699 7703 7717 7723
7727 7741 7753 7757 7759 7789 7793 7817 7823 7829 7841 7853 7867 7873 7877 7879 7883 7901 7907 7919
7927 7933 7937 7949 7951 7963 7993 8009 8011 8017 8039 8053 8059 8069 8081 8087 8089 8093 8101 8111
8117 8123 8147 8161 8167 8171 8179 8191 8209 8219 8221 8231 8233 8237 8243 8263 8269 8273 8287 8291
8293 8297 8311 8317 8329 8353 8363 8369 8377 8387 8389 8419 8423 8429 8431 8443 8447 8461 8467 8501
8513 8521 8527 8537 8539 8543 8563 8573 8581 8597 8599 8609 8623 8627 8629 8641 8647 8663 8669 8677
8681 8689 8693 8699 8707 8713 8719 8731 8737 8741 8747 8753 8761 8779 8783 8803 8807 8819 8821 8831
8837 8839 8849 8861 8863 8867 8887 8893 8923 8929 8933 8941 8951 8963 8969 8971 8999 9001 9007 9011
9013 9029 9041 9043 9049 9059 9067 9091 9103 9109 9127 9133 9137 9151 9157 9161 9173 9181 9187 9199
9203 9209 9221 9227 9239 9241 9257 9277 9281 9283 9293 9311 9319 9323 9337 9341 9343 9349 9371 9377
9391 9397 9403 9413 9419 9421 9431 9433 9437 9439 9461 9463 9467 9473 9479 9491 9497 9511 9521 9533
9539 9547 9551 9587 9601 9613 9619 9623 9629 9631 9643 9649 9661 9677 9679 9689 9697 9719 9721 9733
9739 9743 9749 9767 9769 9781 9787 9791 9803 9811 9817 9829 9833 9839 9851 9857 9859 9871 9883 9887
9901 9907 9923 9929 9931 9941 9949 9967 9973
1229 primes up to 9999 found.
HH HH EEEEEEEEEEEE RRRRRRRRRRR CCCCCCCCCC 00000000 11 CCCCCCCCCC OOOOOOOOOOOO
HH HH EEEEEEEEEEEE RRRRRRRRRRRR CCCCCCCCCCCC 0000000000 111 CCCCCCCCCCCC OOOOOOOOOOOO
HH HH EE RR RR CC CC 00 0000 1111 CC CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HHHHHHHHHHHH EEEEEEEE RRRRRRRRRRRR CC 00 00 00 11 CC OO OO
HHHHHHHHHHHH EEEEEEEE RRRRRRRRRRR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 00 00 00 11 CC OO OO
HH HH EE RR RR CC 0000 00 11 CC OO OO
HH HH EE RR RR CC CC 000 00 11 CC CC OO OO
HH HH EEEEEEEEEEEE RR RR CCCCCCCCCCCC 0000000000 1111111111 CCCCCCCCCCCC OOOOOOOOOOOO
HH HH EEEEEEEEEEEE RR RR CCCCCCCCCC 00000000 1111111111 CCCCCCCCCC OOOOOOOOOOOO
JJJJJJJJJJ 555555555555 AAAAAAAAAA
JJJJJJJJJJ 555555555555 AAAAAAAAAAAA
JJ 55 AA AA
JJ 55 AA AA
JJ 55 AA AA
JJ 555555555 AAAAAAAAAAAA
JJ 5555555555 AAAAAAAAAAAA
JJ 55 AA AA
JJ JJ 55 AA AA
JJ JJ 55 AA AA
JJJJJJJJ 555555555555 AA AA
JJJJJJ 55555555555 AA AA
****A END JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 END A****
****A END JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 END A****
****A END JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 END A****
****A END JOB 5 HERC01CO Eratosthenes Sieve ROOM 1.56.53 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 5 END A****
MM MM FFFFFFFFFFFF 11
MMM MMM FFFFFFFFFFFF 111
MMMM MMMM FF 1111
MM MM MM MM FF 11
MM MMMM MM FF 11
MM MM MM FFFFFFFF 11
MM MM FFFFFFFF 11
MM MM FF 11
MM MM FF 11
MM MM FF 11
MM MM FF 1111111111
MM MM FF 1111111111
SSSSSSSSSS 11 555555555555 8888888888 AAAAAAAAAA
SSSSSSSSSSSS 111 555555555555 888888888888 AAAAAAAAAAAA
SS SS 1111 55 88 88 AA AA
SS 11 55 88 88 AA AA
SSS 11 55 88 88 AA AA
SSSSSSSSS 11 555555555 88888888 AAAAAAAAAAAA
SSSSSSSSS 11 5555555555 88888888 AAAAAAAAAAAA
SSS 11 55 88 88 AA AA
SS 11 55 88 88 AA AA
SS SS 11 55 88 88 AA AA
SSSSSSSSSSSS 1111111111 555555555555 888888888888 AA AA
SSSSSSSSSS 1111111111 55555555555 8888888888 AA AA
****A START STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 START A****
****A START STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 START A****
****A START STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 START A****
****A START STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 START A****
C P U A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46
CPU WAIT TIME WAIT TIME CPU SERIAL
NUMBER HH.MM.SS.TTT PERCENTAGE NUMBER
0 00.14.54.712 99.41 000611
AVERAGE 99.41
P A G I N G A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46
MAIN STORAGE PAGING RATES
PER SECOND
--------------------------------------------------------------------------------------------------------------------
PAGE IN PAGE OUT
PAGE RECLAIMS ------------------------------------ ----------------------------------
---------------- ---------------- ---------------- -------------- ----------------
PERCENT PERCENT PERCENT
OF OF OF
TOTAL NON TOTAL TOTAL NON TOTAL TOTAL
CATEGORY RATE SUM SWAP SWAP RATE SUM SWAP SWAP RATE SUM
PAGEABLE SYSTEM
AREAS
VIO 0.00 0 0.00 0.00 0 0.00 0.00 0
NON VIO 0.17 18 0.03 0.03 1 0.03 0.03 1
------ ------ ------ ------ ------ ------ ------ ------
SUM 0.17 18 0.03 0.03 1 0.03 0.03 1
ADDRESS SPACES
VIO 0.01 1 0.00 0.00 0 0.01 0.01 0
NON VIO 0.77 81 2.68 0.16 2.84 99 4.12 0.01 4.14 99
------ ------ ------ ------ ------ ------ ------ ------ ------ ------
SUM 0.78 82 2.68 0.16 2.84 99 4.12 0.02 4.15 99
TOTAL SYSTEM
VIO 0.01 1 0.00 0.00 0 0.01 0.01 0
NON VIO 0.94 99 2.68 0.19 2.87 100 4.12 0.04 4.16 100
------ ------ ------ ------ ------ ------ ------ ------ ------ ------
SUM 0.95 100 2.68 0.19 2.87 100 4.12 0.05 4.17 100
AUXILIARY STORAGE USER POOL PAGEABLE MAIN STORAGE COUNTS SWAP COUNTS
------------------------------------------- -------------------------------- --------------------
PAGE PAGE
SLOTS PERCENT FRAMES PERCENT
AVAILABLE SLOTS 19,136 96 UNUSED FRAMES 3302 84 SWAPS 461
VIO SLOTS 0 0 DATA PAGES 645 16 AVERAGE
---- ------ PAGES PER 8
NON-VIO SLOTS 784 4 TOTAL FRAMES 3947 100 SWAP OUT
UNAVAILABLE SLOTS 0 0 AVERAGE
--------- ------ PAGES PER 5
TOTAL SLOTS 19,920 100 SWAP IN
W O R K L O A D A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 IEAIPS00
PERFORM PERFORM SERVICE AVERAGE AVERAGE ENDED AVERAGE TIME OF
GROUP GROUP IN TRANS. WORKLOAD TRANS- TRANS- ENDED TRANS.
NUMBER PERIOD INTERVAL SRV RATE LEVEL ACTIONS ACTIONS HHH.MM.SS.TTT
001 1 2,540 0 100.00 5.01 0 000.00.00.000
2 ZEROS
001 ALL 2,540 0 100.00 5.01 0 000.00.00.000
002 1 2,104 2,243 0.96 0.00 70 000.00.00.013
2 - 3 ZEROS
002 ALL 2,104 2,243 0.96 0.00 70 000.00.00.013
003 ZEROS
004 1 2,590 6,638 0.82 0.00 1 000.00.00.476
004 ALL 2,590 6,638 0.82 0.00 1 000.00.00.476
SYSTEM TOTAL 7,234 1 35.68 5.01 71 000.00.00.019
C H A N N E L A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
CHANNEL CHANNEL PERCENT PERCENT
NUMBER ACTIVITY CHANNEL CHAN BUSY
CPU AND TYPE COUNT BUSY & CPU WAIT
0 0 BYTE MPX 200
1 BLOCK MPX 1,587 0.00 0.00
2 BLOCK MPX 1,636 0.00 0.00
3 BLOCK MPX 16 0.00 0.00
4 BLOCK MPX 0 0.00 0.00
6 BLOCK MPX 0 0.00 0.00
TOTAL 3,439
M A G N E T I C T A P E D E V I C E A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
DEVICE
DEVICE VOLUME ACTIVITY PERCENT AVERAGE
ADDRESS SERIAL COUNT BUSY QLENGTH
480 0 0.00 0.00
TOTAL 0
C O M M U N I C A T I O N E Q U I P M E N T A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
DEVICE
DEVICE ACTIVITY PERCENT AVERAGE
ADDRESS COUNT BUSY QLENGTH
660 0 0.00 0.00
661 0 0.00 0.00
662 0 0.00 0.00
663 0 0.00 0.00
664 0 0.00 0.00
665 0 0.00 0.00
666 0 0.00 0.00
667 0 0.00 0.00
668 0 0.00 0.00
669 0 0.00 0.00
66A 0 0.00 0.00
66B 0 0.00 0.00
670 0 100.0 0.00
671 0 100.0 0.00
672 0 100.0 0.00
673 0 100.0 0.00
680 0 100.0 0.00
681 0 100.0 0.00
682 0 100.0 0.00
683 0 100.0 0.00
688 0 100.0 0.00
689 0 100.0 0.00
68A 0 100.0 0.00
68B 0 100.0 0.00
68C 0 100.0 0.00
68D 0 100.0 0.00
68E 0 100.0 0.00
68F 0 100.0 0.00
TOTAL 0
D I R E C T A C C E S S D E V I C E A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
DEVICE
DEVICE VOLUME ACTIVITY PERCENT AVERAGE
ADDRESS SERIAL COUNT BUSY QLENGTH
131 SORT01 0 0.00 0.00
132 SORT02 0 0.00 0.00
133 SORT03 0 0.00 0.00
134 SORT04 0 0.00 0.00
135 SORT05 0 0.00 0.00
136 SORT06 0 0.00 0.00
140 WORK00 73 0.00 0.00
148 MVSRES 587 0.06 0.00
149 SMP001 0 0.00 0.00
14A SMP002 0 0.00 0.00
14B SMP003 0 0.00 0.00
14C SMP004 0 0.00 0.00
152 HASP00 137 0.00 0.00
160 PAGE00 193 0.00 0.00
161 PAGE01 164 0.00 0.00
170 WORK01 27 0.00 0.00
180 WORK02 75 0.00 0.00
190 WORK03 301 0.00 0.00
191 MVSCAT 30 0.00 0.00
240 PUB000 592 0.00 0.00
241 PUB010 22 0.00 0.00
248 MVSDLB 995 0.00 0.00
270 PUB001 15 0.00 0.00
271 PUB011 0 0.00 0.00
280 PUB002 0 0.00 0.00
281 PUB012 0 0.00 0.00
290 PUB003 12 0.00 0.00
291 PUB013 0 0.00 0.00
340 CBT000 0 0.00 0.00
341 CBT001 0 0.00 0.00
342 CBT002 0 0.00 0.00
343 CBTCAT 0 0.00 0.00
348 SRC000 0 0.00 0.00
349 SRC001 0 0.00 0.00
34A SRC002 0 0.00 0.00
34B SRCCAT 0 0.00 0.00
TOTAL 3,223
G R A P H I C S D E V I C E A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
DEVICE
DEVICE ACTIVITY PERCENT AVERAGE
ADDRESS COUNT BUSY QLENGTH
0C0 154 0.00 0.00
0C1 0 0.00 0.00
0C2 0 0.00 0.00
0C3 0 0.00 0.00
0C4 0 0.00 0.00
0C5 0 0.00 0.00
0C6 0 0.00 0.00
0C7 0 0.00 0.00
3C0 0 0.00 0.00
3C1 0 0.00 0.00
3C2 0 0.00 0.00
3C3 0 0.00 0.00
3C4 0 0.00 0.00
3C5 0 0.00 0.00
3C6 0 0.00 0.00
3C7 0 0.00 0.00
TOTAL 154
U N I T R E C O R D D E V I C E A C T I V I T Y
PAGE 1
OS/VS2 SYSTEM ID TK4- DATE 1/11/20 INTERVAL 14.59.993
RELEASE 03.8 MF/1 VERSION 01 TIME 01.52.46 CYCLE 0.250 SECONDS
DEVICE
DEVICE ACTIVITY PERCENT AVERAGE
ADDRESS COUNT BUSY QLENGTH
002 0 0.00 0.00
009 12 0.00 0.00
00C 0 0.00 0.00
00D 0 0.00 0.00
00E 34 0.00 0.00
00F 0 0.00 0.00
10C 0 0.00 0.00
10D 0 0.00 0.00
30E 16 0.00 0.00
TOTAL 62
MM MM FFFFFFFFFFFF 11
MMM MMM FFFFFFFFFFFF 111
MMMM MMMM FF 1111
MM MM MM MM FF 11
MM MMMM MM FF 11
MM MM MM FFFFFFFF 11
MM MM FFFFFFFF 11
MM MM FF 11
MM MM FF 11
MM MM FF 11
MM MM FF 1111111111
MM MM FF 1111111111
SSSSSSSSSS 11 555555555555 8888888888 AAAAAAAAAA
SSSSSSSSSSSS 111 555555555555 888888888888 AAAAAAAAAAAA
SS SS 1111 55 88 88 AA AA
SS 11 55 88 88 AA AA
SSS 11 55 88 88 AA AA
SSSSSSSSS 11 555555555 88888888 AAAAAAAAAAAA
SSSSSSSSS 11 5555555555 88888888 AAAAAAAAAAAA
SSS 11 55 88 88 AA AA
SS 11 55 88 88 AA AA
SS SS 11 55 88 88 AA AA
SSSSSSSSSSSS 1111111111 555555555555 888888888888 AA AA
SSSSSSSSSS 1111111111 55555555555 8888888888 AA AA
****A END STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
****A END STC 158 MF1 ROOM 2.07.46 AM 11 JAN 20 PRINTER1 SYS TK4- STC 158 END A****
SSSSSSSSSS HH HH UU UU TTTTTTTTTTTT DDDDDDDDD OOOOOOOOOOOO WW WW NN NN
SSSSSSSSSSSS HH HH UU UU TTTTTTTTTTTT DDDDDDDDDD OOOOOOOOOOOO WW WW NNN NN
SS SS HH HH UU UU TT DD DD OO OO WW WW NNNN NN
SS HH HH UU UU TT DD DD OO OO WW WW NN NN NN
SSS HH HH UU UU TT DD DD OO OO WW WW NN NN NN
SSSSSSSSS HHHHHHHHHHHH UU UU TT DD DD OO OO WW WW NN NN NN
SSSSSSSSS HHHHHHHHHHHH UU UU TT DD DD OO OO WW WW WW NN NN NN
SSS HH HH UU UU TT DD DD OO OO WW WWWW WW NN NN NN
SS HH HH UU UU TT DD DD OO OO WW WW WW WW NN NNNN
SS SS HH HH UU UU TT DD DD OO OO WWWW WWWW NN NNN
SSSSSSSSSSSS HH HH UUUUUUUUUUUU TT DDDDDDDDDD OOOOOOOOOOOO WWW WWW NN NN
SSSSSSSSSS HH HH UUUUUUUUUU TT DDDDDDDDD OOOOOOOOOOOO WW WW NN N
JJJJJJJJJJ 6666666666 AAAAAAAAAA
JJJJJJJJJJ 666666666666 AAAAAAAAAAAA
JJ 66 66 AA AA
JJ 66 AA AA
JJ 66 AA AA
JJ 66666666666 AAAAAAAAAAAA
JJ 666666666666 AAAAAAAAAAAA
JJ 66 66 AA AA
JJ JJ 66 66 AA AA
JJ JJ 66 66 AA AA
JJJJJJJJ 666666666666 AA AA
JJJJJJ 6666666666 AA AA
****A START JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 START A****
****A START JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 START A****
****A START JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 START A****
****A START JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 START A****
J E S 2 J O B L O G
02.21.32 JOB 6 $HASP373 SHUTDOWN STARTED - INIT 1 - CLASS A - SYS TK4-
02.21.32 JOB 6 IEF403I SHUTDOWN - STARTED - TIME=02.21.32
02.21.32 JOB 6 IEFACTRT - Stepname Procstep Program Retcode
02.21.32 JOB 6 SHUTDOWN SHUTDOWN SHUTDOWN BSPHRCMD RC= 0000
02.21.32 JOB 6 IEF404I SHUTDOWN - ENDED - TIME=02.21.32
02.21.32 JOB 6 $HASP395 SHUTDOWN ENDED
------ JES2 JOB STATISTICS ------
11 JAN 20 JOB EXECUTION DATE
14 CARDS READ
40 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
0.00 MINUTES EXECUTION TIME
1 //SHUTDOWN JOB (TK4-), JOB 6
// 'Shutdown TK4-',
// CLASS=A,
// MSGCLASS=A,
// MSGLEVEL=(0,0),
// USER=HERC01,PASSWORD= GENERATED BY GDL
IEF142I SHUTDOWN SHUTDOWN SHUTDOWN - STEP WAS EXECUTED - COND CODE 0000
IEF373I STEP /SHUTDOWN/ START 20011.0221
IEF374I STEP /SHUTDOWN/ STOP 20011.0221 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC VIRT 16K SYS 200K
************************************************************************************************************************************
* 1. Jobstep of job: SHUTDOWN Stepname: SHUTDOWN Program name: BSPHRCMD Executed on 11.01.20 from 02.21.32 to 02.21.32 *
* elapsed time 00:00:00,02 CPU-Identifier: TK4- Page-in: 0 *
* CPU time 00:00:00,01 Virtual Storage used: 16K Page-out: 0 *
* corr. CPU: 00:00:00,01 CPU time has been corrected by 1 / 1,0 multiplier *
* *
* I/O Operation *
* Number of records read via DD * or DD DATA: 0 *
* DMY.......0 DMY.......0 *
* *
* Charge for step (w/o SYSOUT): 0,01 *
************************************************************************************************************************************
IEF375I JOB /SHUTDOWN/ START 20011.0221
IEF376I JOB /SHUTDOWN/ STOP 20011.0221 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC
BSPHRCMD Version 1.0.2 PAGE 1
|l _,,,---,,_
ZZZzz /,:.-':' -. ;-;;,
|,4- ) )-,_. ,( ( :'-'
'---''(_/--' :-')_)
Placed into the Hercules Domain
by Volker Bandke, BSP GmbH
BSPHC91I - Processing command: script scripts/shutdown
BSPHC99I - End of processing, MAXRC=0000
SSSSSSSSSS HH HH UU UU TTTTTTTTTTTT DDDDDDDDD OOOOOOOOOOOO WW WW NN NN
SSSSSSSSSSSS HH HH UU UU TTTTTTTTTTTT DDDDDDDDDD OOOOOOOOOOOO WW WW NNN NN
SS SS HH HH UU UU TT DD DD OO OO WW WW NNNN NN
SS HH HH UU UU TT DD DD OO OO WW WW NN NN NN
SSS HH HH UU UU TT DD DD OO OO WW WW NN NN NN
SSSSSSSSS HHHHHHHHHHHH UU UU TT DD DD OO OO WW WW NN NN NN
SSSSSSSSS HHHHHHHHHHHH UU UU TT DD DD OO OO WW WW WW NN NN NN
SSS HH HH UU UU TT DD DD OO OO WW WWWW WW NN NN NN
SS HH HH UU UU TT DD DD OO OO WW WW WW WW NN NNNN
SS SS HH HH UU UU TT DD DD OO OO WWWW WWWW NN NNN
SSSSSSSSSSSS HH HH UUUUUUUUUUUU TT DDDDDDDDDD OOOOOOOOOOOO WWW WWW NN NN
SSSSSSSSSS HH HH UUUUUUUUUU TT DDDDDDDDD OOOOOOOOOOOO WW WW NN N
JJJJJJJJJJ 6666666666 AAAAAAAAAA
JJJJJJJJJJ 666666666666 AAAAAAAAAAAA
JJ 66 66 AA AA
JJ 66 AA AA
JJ 66 AA AA
JJ 66666666666 AAAAAAAAAAAA
JJ 666666666666 AAAAAAAAAAAA
JJ 66 66 AA AA
JJ JJ 66 66 AA AA
JJ JJ 66 66 AA AA
JJJJJJJJ 666666666666 AA AA
JJJJJJ 6666666666 AA AA
****A END JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 END A****
****A END JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 END A****
****A END JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 END A****
****A END JOB 6 SHUTDOWN Shutdown TK4- ROOM 2.21.32 AM 11 JAN 20 PRINTER1 SYS TK4- JOB 6 END A****
TTTTTTTTTTTT SSSSSSSSSS OOOOOOOOOOOO
TTTTTTTTTTTT SSSSSSSSSSSS OOOOOOOOOOOO
TT SS SS OO OO
TT SS OO OO
TT SSS OO OO
TT SSSSSSSSS OO OO
TT SSSSSSSSS OO OO
TT SSS OO OO
TT SS OO OO
TT SS SS OO OO
TT SSSSSSSSSSSS OOOOOOOOOOOO
TT SSSSSSSSSS OOOOOOOOOOOO
SSSSSSSSSS 11 555555555555 9999999999 AAAAAAAAAA
SSSSSSSSSSSS 111 555555555555 999999999999 AAAAAAAAAAAA
SS SS 1111 55 99 99 AA AA
SS 11 55 99 99 AA AA
SSS 11 55 99 99 AA AA
SSSSSSSSS 11 555555555 999999999999 AAAAAAAAAAAA
SSSSSSSSS 11 5555555555 999999999999 AAAAAAAAAAAA
SSS 11 55 99 AA AA
SS 11 55 99 AA AA
SS SS 11 55 99 99 AA AA
SSSSSSSSSSSS 1111111111 555555555555 999999999999 AA AA
SSSSSSSSSS 1111111111 55555555555 9999999999 AA AA
****A START STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 START A****
****A START STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 START A****
****A START STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 START A****
****A START STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 START A****
CONSOLE VALUES ENTERED:
*NONE ENTERED*
PARMLIB VALUES ENTERED:
USERMAX=40, /* MAXIMUM USERS */
RECONLIM=60, /* MAXIMUM DISCONNECT MINUTES */
BUFRSIZE=252, /* VTIOC BUFFER SIZE */
HIBFREXT=48000, /* MAX BUFFERS BEFORE SWAP OUT */
LOBFREXT=24000, /* MIMIMUM BUFFERS BEFORE SWAP IN */
MODE=NOBREAK, /* KEYBOARD LOCK OPTION */
MODESW=YES, /* MODESWITCH FROM TERMINAL OPTION */
CHNLEN=1, /* NO. OF RU'S PER CHAIN */
SCRSIZE=1920 /* DEFAULT SCREEN SIZE */
PARMLIB VALUES ACCEPTED:
USERMAX=40,RECONLIM=60,BUFRSIZE=252,HIBFREXT=48000,LOBFREXT=24000,
SCRSIZE=1920,CHNLEN=1,MODE=NOBREAK,MODESW=YES
CURRENT TCAS PARAMETERS:
USERMAX=40,ACBPW=,RECONLIM=60,BUFRSIZE=252,HIBFREXT=48000,
LOBFREXT=24000,SCRSIZE=1920,CHNLEN=1,MODE=NOBREAK,MODESW=YES,
CONFTXT=YES
TTTTTTTTTTTT SSSSSSSSSS OOOOOOOOOOOO
TTTTTTTTTTTT SSSSSSSSSSSS OOOOOOOOOOOO
TT SS SS OO OO
TT SS OO OO
TT SSS OO OO
TT SSSSSSSSS OO OO
TT SSSSSSSSS OO OO
TT SSS OO OO
TT SS OO OO
TT SS SS OO OO
TT SSSSSSSSSSSS OOOOOOOOOOOO
TT SSSSSSSSSS OOOOOOOOOOOO
SSSSSSSSSS 11 555555555555 9999999999 AAAAAAAAAA
SSSSSSSSSSSS 111 555555555555 999999999999 AAAAAAAAAAAA
SS SS 1111 55 99 99 AA AA
SS 11 55 99 99 AA AA
SSS 11 55 99 99 AA AA
SSSSSSSSS 11 555555555 999999999999 AAAAAAAAAAAA
SSSSSSSSS 11 5555555555 999999999999 AAAAAAAAAAAA
SSS 11 55 99 AA AA
SS 11 55 99 AA AA
SS SS 11 55 99 99 AA AA
SSSSSSSSSSSS 1111111111 555555555555 999999999999 AA AA
SSSSSSSSSS 1111111111 55555555555 9999999999 AA AA
****A END STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 END A****
****A END STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 END A****
****A END STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 END A****
****A END STC 159 TSO ROOM 2.22.20 AM 11 JAN 20 PRINTER1 SYS TK4- STC 159 END A****

Networking with IBM 3033 Mainframe / MVS 3.8

Well, I have not progressed far enough into the world of IBM Mainframes to attempt Networking yet. When I get to it I will write more about networking in a separate post.

Wednesday, January 8, 2020

HPUX 10.20 on HP 9000/778 PA-RISC Guest Virtualization using QEMU on FreeBSD Host: VUE Desktop Nostalgia

Supratim Sanyal's Blog: HP-VUE VUE Visual User Environment graphical desktop on HP-UX 10.20 on Qemu HP PARISC 9000 700 series server under FreeBSD

I recently brought up an emulated HPUX 11.11 PA-RISC server using QEMU on my Dell PowerEdge 2950 running FreeBSD 12 release as documented in "HPUX 11i v1 (HPUX 11.11) PA-RISC Guest Virtualization using QEMU on FreeBSD Host" including CDE desktop environment. But I was nostalgic about HP VUE graphical desktop environment and decided to relive VUE by installing a separate HPUX 10.20 server also using QEMU's PARISC 1.1 emulator on the same host.

The HPUX 10.20 installation CD-ROM is freely available at https://archive.org/details/HPUX10.20InstallCoreOSForHP9000Series700December1999B378210456.

An Open-Source GNU software collection for HPUX 10.20 is now easily available thanks to Astr0baby's efforts, from his FTP site. Check out his comment on January 3, 2020 in this post for information on his FTP server.

There are four HP-UX 10.20 Application Software CD ROM images also available at archive.org:
  1. HP-UX 10.20 Application Software for HP 9000 Series 700 (December 2001) (Disc 1) [B3782-10519]
  2. HP-UX 10.20 Application Software for HP 9000 Series 700 (December 2001) (Disc 2) [B3782-10520]
  3. HP-UX 10.20 Application Software for HP 9000 Series 700 (December 2001) (Disc 3) [B3782-10521]
  4. HP-UX 10.20 Application Software for HP 9000 Series 700 (December 2001) (Disc 4) [B3782-10522]

NETWORKING SETUP


I use VDE (Virtual Distributed Ethernet) to attach all of the SANYALnet Labs virtual machines to networks, as I have documented in detail in "Virtualization on FreeBSD Host and Oracle VirtualBox Guests with VDE Networking".

VDE has the great advantage of allowing me to extend a virtual layer-2 switch across multiple hypervisor hosts so that all VM guests are logically connected to one big ethernet switch irrespective of the physical locations of their hosts.

QEMU LAUNCH SCRIPT


As is usual for all of my QEMU virtual machines, I use a shell script to launch the HPUX 10.20 instance with the QEMU monitor and HPUX 10.20 console in two different "screen" sessions.


#!/bin/sh

# run-hpux-10-20.sh
# Launches Guest:
# 10.42.2.58    hpux1020.sanyalnet.lan hpux1020

# Change -boot to d to boot from cdrom or c to boot from hdd

# Careful of MAC address conflicts in network! Last HEX pair of MAC = last byte of guest IP.
# Also, VNC screen, if any, on dispaly number = last byte of guest IP
# And Console TELNET port = 20800 + last byte of guest IP

TELNET_CONSOLE_PORT=20858
screen -m -d -S HPUX1020-QEMUMON \
        ./qemu-system-hppa \
            -boot c \
            -m 512 \
            -drive if=scsi,bus=0,index=0,file=./hpux10.20-striped-8gb-disk-1.qcow2.dsk \
            -drive if=scsi,bus=0,index=1,file=./hpux10.20-striped-8gb-disk-2.qcow2.dsk \
            -cdrom ./ISO/hpux-10.20.iso \
            -net nic,model=tulip,macaddr="58:9C:FC:52:54:3A" \
            -net tap,ifname=tap6,script=no \
            -serial telnet::${TELNET_CONSOLE_PORT},server \
            -serial mon:stdio \
            -nographic \
            -d nochain \
            -vnc :58 \
            -accel tcg,thread=multi
            ####-smp cpus=2

sleep 2

screen -m -d -S HPUX1020-CONSOLE telnet localhost ${TELNET_CONSOLE_PORT}

echo At this point, qemu should be on screen HPUX1020-QEMUMON and console telnet session on screen HPUX1020-CONSOLE
echo You can launch a VUE Graphical Desktop Session using Xephyr like the following:
echo Xephyr -screen 1200x720 -ac -query 10.42.2.58 :58

sync;sync;sync
exit 0


HP VUE DESKTOP


HPUX 10.20 HP-VUE VUE Login Screen on Qemu on FreeBSD qemu-system-hppa PARISC

To launch HPUX 10.20 VUE (Visual User Environment) graphical desktop, I use Xephyr from the QEMU host and other machines on the network that have a X11 server running:

$ Xephyr -screen 1200x720 -ac -query 10.42.2.58 :58

WEB BROWSERS


I installed (using SAM) Netscape Communicator 4.75 (Netscape Navigator web-browser and an email client) from Application Software Disc 4, and added the MOZILLA_HOME environment variable to /etc/profile to point to the installation location /opt/netscape as indicated by the Netsccape README file. This was after I tried an older version of Netscape Communicator (version 4.04) for HPUX 10 operating system on HP PARISC 1.1 processor architecture available here.

Netscape Communicator - both the 4.75 and 4.04 versions - install fine but unfortunately so far I have been unable to launch the applications successfully; executing netscape shows me netscape is running and using considerable CPU but the window does not come up and there are no messages on the terminal session launching netscape either. I will have to revisit this to see what is going on here. (As a side note, Mozilla browser works fine on the HPUX version 11.11 installation).

Netscape Navigator / Communicator for HPUX 10.20
Netscape Communicator for HPUX

I tried to compile the text-based Lynx web-browser from the sources of a couple of versions, but will need to come back to it - one version I tried could not link with htons family of functions, and another one tried to compile with HP's cc compiler instead of gcc so the configure script needs adjustment.

PROGRAMMING LANGUAGE COMPILERS


Astr0baby's GNU tools collection includes working GNU C and C++ compilers gcc and g++  (GCC) 4.2.2. I could successfully compile and run my favorite ASCII terminal clock program written in C - Antoni Sawicki's aclock-vt100.c:

aclock vt100 C ascii art clock program by Antoni Sawicki running on HPUX 10.20 under QEMU PARISC HP-9000 700 series server
 Antoni Sawicki's aclock vt100.c on HPUX 10.20

In addition, I installed HP Micro Focus Object COBOL/UX and Java development environments from Application Software Disc 3. The HP Micro Focus Object COBOL/UX Release Notes for Version B.12.35 HP 9000 Computers on HP-UX 10.20 release notes are still available here. For setting environment variables needed by the COBOL compiler as indicated by the release notes, I added the following to /etc/profile:

# HP Microfocus Object Cobol Environment Variables
COBDIR=/opt/cobol/cobdir
export COBDIR
SHLIB_PATH=$COBDIR/coblib
export SHLIB_PATH


Object Cobol/UX Developer Bundle and Java Development Kit for HPUX 10.20 Installation
Object Cobol/UX Developer Bundle and Java Development Kit for HPUX 10.20 Installation

Unfortunately, Micro Focus COBOL is also not working yet as the license file is missing.

$ cobol
HP Micro Focus Object COBOL licensing request failed.
FLEXlm Message: Cannot find license file (-1,73:2) No such file or directory
$ ls  /usr/local/flexlm/licenses/license.dat
/usr/local/flexlm/licenses/license.dat not found

Otherwise all works fine so far. I will have to come back to the HPUX 10.20 parisc QEMU virtual machine to try to close out the Netscape browser and COBOL licensing issues.

Friday, January 3, 2020

ZX Spectrum TZX TAP ZIP Cassette Loader Using Raspberry Pi

Supratim Sanyal's Blog: Sinclair ZX Spectrum Cassette Loading using Raspberry Pi
Falcon Patrol II (Virgin Games, 1995) - Sinclair ZX Spectrum Cassette Loading using Raspberry Pi

This is a follow up post to "Powering up a British ZX Spectrum after 30 years in America - The PAL UHF Analog TV and 220V AC Challenge" where I described how to run a United Kingdom targeted 220V 50Hz AC powered Sinclair ZX Spectrum microcomputer with analog PAL UHF TV video output in the 110V 60Hz and modern ATSC digital HDTV environment of the United States.

In this post I will describe how I use a Raspberry Pi to load games and software from digitized cassette tapes on the ZX Spectrum in such a fashion that the ZX Spectrum thinks it is listening to a real cassette player.

Here is the hardware you will need:

1) Raspberry Pi 3B+ or later » 



4) Stereo Audio to Mono Splitter Cable »


As for the operating system, load up the usual latest Raspbian desktop operating system on your MicroSD (a 16GB MicroSD is more than enough for this project).

I initially tried to feed audio directly from Raspberry Pi's internal headphone connector to EAR jack of ZX Spectrum, but could not get the ZX Spectrum to load the software despite claims by a few others of such a setup working. Use the USB audio adapter because it outputs the cassette sound in a loud enough volume for the ZX Spectrum to load from it. The 3-ampere power supply is imperative for providing enough juice to power the Pi and the USB Audio Card. Attach the USB Audio adapter to an available USB port of the Raspberry Pi. Also make it the default audio output device from Raspbian desktops' Preferences -> Audio Device Settings screen.

Raspberry Pi USB Audio Adapter Setup Screen

The ZX Spectrum EAR/MIC connection is mono for both audio input (EAR on the ZX Spectrum) and output (MIC on the ZX Spectrum). Connect the male stereo end of the stereo-to-mono audio splitter cable to the audio output of the USB Sound card which is usually marked with a picture of a headphone and colored green. Then connect either of the two mono female ends of the splitter cable to the "EAR" jack of the ZX Spectrum. In my case, having a ZX Spectrum +3,  this is the mono black male jack marked "EAR" of the EAR/MIC cable.

Connecting Raspberry Pi to ZX Spectrum to work as a Cassette Player to load games

I left the red mono "MIC" jack from the ZX Spectrum left unconnected. Of course, as the next experiment, I will try to save files from the ZX Spectrum to the Raspberry Pi using some audio recording software and the Microphone jack on the USB Sound card, but that is another topic.


ZX Spectrum EAR and MIC jacks conneted to Raspberry Pi Audio Cassette Player


That's it for connections. Once your Raspberry Pi boots up to the operating system, take a look at this blogger's post ("Turn your raspberry pi into a virtual cassette to load games on your Amstrad CPC or ZX Spectrum") translating to English if you don't read Spanish, and follow the steps documented there to obtain the basic tool-set. Note that you will need to also install the git package in addition to the packages listed there. Here is a touched-up excerpt.

Build and install the playtzx tool from source:

$ sudo apt-get install audacious texinfo build-essential automake git
$ git clone https://github.com/ralferoo/cpctools
$ cd cpctools/playtzx-0.12b/
$ ./configure
$ make
$ sudo make install

After building and installing the the playtzx tool, the binary should be present in /usr/local/bin/playtzx:

$ which playtzx
/usr/local/bin/playtzx
$ ls -l /usr/local/bin/playtzx 
-rwxr-xr-x 1 root root 241260 Dec  5 19:15 /usr/local/bin/playtzx

The "advanced" playcdt.sh script available here supports on-the-fly decompression and playback of zipped TZX and TAP files in addition to regular TZX files. It invokes playtzx to create a VOC audio file in a temporary directory and then runs audacious to play it back. Not liking unnecessary write cycles to the MicroSD card, I created a 128 MB in-memory ramdisk for writing temporary VOC files. To create the ramdisk, become root and create a directory /ram0, then add the following to /etc/fstab and reboot:

tmpfs /ram0 tmpfs nodev,nosuid,size=128M 0 0

Here is my touched-up "advanced" playcdt.sh script, modified as follows:
  • added output volume control to set the playback volume to the optimal value that I found (90%) for nice equal-width red and white header loader border bands on the ZX Spectrum cassette loader
  • pointed the temporary directory to /ram0 ramdisk mount-point
  • changed playtzx sampling frequency to 32000 since this resulted in the loading bars in the border scrolling slowly upwards instead of downwards
  • added verbosity to audacious

#!/bin/bash
# playcdt: script bash to play TZX/CDT tape images of Amstrad CPC & ZX Spectrum
# requires playtzx and audacious (see http://malagaoriginal.blogspot.com.es)
# version 0.1 alpha - GNU/GPL 2 Jesus Basco 2016
# modified by Supratim Sanyal - see https://supratim-sanyal.blogspot.com/2019/12/zx-spectrum-tzx-tap-zip-cassette-loader.html

volume="90%"

# Set volume of USB sound card to 90%
echo ====
echo Setting volume
amixer -c 1 cset numid=6 ${volume},${volume}
amixer -c 1 cget numid=6
echo ====


es_zit=$(file -b "$1" | grep -i zip | wc -l)
es_tzx=$(file -b "$1" | grep -i tzx | wc -l)
#tmptzx=/tmp
#USE Ramdisk instead of wearing out SD
tmptzx=/ram0
if [ $# -ne 1 ]; then
   echo "ERROR: Hay que poner el archivo TZX/CDT"
   exit -1
fi
if [ -f "$1" ]; then
   if [ $es_tzx == 1 ]; then
      echo Reproduciendo archivo \""$1"\"
      playtzx -voc -freq 32000 "$1" ${tmptzx}/temporal.voc

      echo
      echo ==== Playing converted file  ====
      ls -lh ${tmptzx}/temporal.voc
      echo =================================
      echo

      audacious -pqH ${tmptzx}/temporal.voc
      #rm ${tmptzx}/temporal.voc
   elif [ $es_zip == 1 ]; then
      echo AVISO: El archivo \""$1"\" es un archivo ZIP... descomprimiendo e intentando sacar un archivo CDT/TZX
      mkdir -p ${tmptzx}/tzxtmp
      unzip -C "$1" -d ${tmptzx}/tzxtmp
      for i in `ls ${tmptzx}/tzxtmp/*.{tzx,cdt}`;
      do
          playcdt "$i"
      done
      #rm -rf ${tmptzx}/tzxtmp
      exit
   else
      echo ERROR: El archivo \""$1"\" no es un CDT/TZX
   fi
else
   echo ERROR: El archivo \""$1"\" no existe
   exit -1
fi

I saved this script in ~/playcdt-script/ directory under my home directory (and chmoded it executable, of course).

$ pwd
/home/pi
$ ls -l playcdt-script/
total 12
-rwxr-xr-x 1 pi pi 1486 Dec  6 10:14 playcdt.sh
-rw-r--r-- 1 pi pi 1143 Dec  5 20:57 playcdt.sh.bak
-rw-r--r-- 1 pi pi 1090 Dec  5 19:19 playcdt.sh.orig

As for TZX Cassette Games and Utilities, I found a huge collection at this web-site. The 285MB "Games Collections's TZX Format (7z Archive)", for example, has 12,466 TZX files! I decompressed all the .TZX files into a  ~/TZX/tzxgames/ directory under my home directory:

$ pwd
/home/pi
$ ls TZX/tzxgames/
007 De-Pulsar (19xx)(Tony Bryan).tzx
007 - Live And Let Die (19xx)(Encore)[Re-Release].tzx
007 - Lord Bromley's Estate (1990)(Domark)[a][Lightgun].tzx
007 - Lord Bromley's Estate (1990)(Domark)[Lightgun].tzx
007 - Lord Bromley's Estate (1990)(Domark).tzx
007 - Q's Armoury (1990)(Domark)[a][Lightgun].tzx
007 - Q's Armoury (1990)(Domark)[Lightgun].tzx
007 - Q's Armoury (1990)(Domark).tzx
007 Super File 2 (19xx)(-)(Side A).tzx
007 Super File 2 (19xx)(-)(Side B).tzx
100 KM Race (19xx)(Coyote Software)(It).tzx
...
...
...

With all the pieces now in place, you can now command the ZX Spectrum to load from tape the usual way - LOAD "" in 48K mode or using the Tape Loader in 128K mode - and then play back a TZX  cassette tape image on the Raspberry Pi using a command like this:

$ ~/playcdt-script/playcdt.sh ~/TZX/tzxgames/Cyclone\ \(1985\)\(Vortex\ Software\).tzx 
====
Setting volume
numid=6,iface=MIXER,name='Speaker Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=151,step=0
  : values=136,136
  | dBminmax-min=-28.37dB,max=-0.06dB
numid=6,iface=MIXER,name='Speaker Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=151,step=0
  : values=136,136
  | dBminmax-min=-28.37dB,max=-0.06dB
====
Reproduciendo archivo "/home/pi/TZX/tzxgames/Cyclone (1985)(Vortex Software).tzx"

ZXTape Utilities - Play TZX , TZX to VOC Converter and TZX Info v0.12b for Linux

ZXTape file revision 1.01
Number of Blocks: 6

Creating .VOC file using 32000 Hz frequency.

Block   1:    Program : Cyclone     Length:    19  Normal Speed ,Pause: 1.000s
Block   2:    --------------------  Length:   146  Normal Speed ,Pause: 1.000s
Block   3:      Bytes : loader      Length:    19  Normal Speed ,Pause: 1.000s
Block   4:    --------------------  Length:   514  Normal Speed ,Pause: 1.000s
Block   5:    --------------------  Length:  6914   Speed: 155% ,Pause: 1.000s
Block   6:    --------------------  Length: 40632   Speed: 155% 

==== Playing converted file ====
-rw-r----- 1 pi pi 5.5M Jan  2 18:31 /ram0/temporal.voc
=================================

ERROR config.cc:238 [guess_element]: No suitable mixer element found.
WARNING ffaudio-core.cc:188 [voc]: <0x728a0af0> Estimating duration from bitrate, this may be inaccurate
WARNING ffaudio-core.cc:188 [voc]: <0x728a5580> Estimating duration from bitrate, this may be inaccurate
WARNING ffaudio-core.cc:188 [voc]: <0x728a3f10> Estimating duration from bitrate, this may be inaccurate

The ZX Spectrum home computer now loads the digitized cassette in TZX format played back by the Raspberry Pi, as you can see in the video at the top of this post. I have even tried a bunch of Fast Loaders, they all work fine, too. Here is Falcon Patrol II - one of the most difficult games to load from cassette due to the fast loader (at a whopping 211% of normal ZX Spectrum microcomputer cassette data transfer speed) - loading fine with the setup described in this post.



Download: You can download » all the tools and TZX collection mentioned in this post from my google drive or dropbox.


Recommended Products from Amazon