If you can obtain one of the IBM Application Development CDs which are supplied for use with the P/390, you will find that these contain pre-built DASD image files which simply need to be unzipped onto your hard drive. These images can be directly read by Hercules. However, you cannot legally use this method because the software on the CD is licensed for use only on the P/390 system that it was shipped with.
The dasdinit program must first be run from the Unix shell prompt to create a file containing an empty DASD volume.
The format of the dasdinit command is:
dasdinit [-options] filename devtype[-model] volser [size]
where:
-z build compressed dasd image file using zlib
-bz2 build compressed dasd image file using bzip2
-0 build compressed dasd image file with no compression
-a build dasd image file that includes alternate cylinders
(option ignored if size is manually specified)
filename name of dasd image file to be created
devtype CKD: 2311, 2314, 3330, 3340, 3350, 3375, 3380, 3390, 9345
FBA: 3310, 3370, 9332, 9335, 9336
model device model (implies size) (opt)
volser volume serial number (1-6 characters)
size number of CKD cylinders or 512-byte FBA sectors
(required if model not specified else optional)
The current list of device types and models supported is:
CKD DEVICES
alt
devtype-model cyls cyls
2311 ?
2311-1 200 2
2314 ?
2314-1 200 3
3330 ?
3330-1 404 7
3330-2 808 7
3330-11 808 7
3340 ?
3340-1 348 1
3340-35 348 1
3340-2 696 2
3340-70 696 2
3350 ?
3350-1 555 5
3375 ?
3375-1 959 1
3380 ?
3380-1 885 1
3380-A 885 1
3380-B 885 1
3380-D 885 1
3380-J 885 1
3380-2 1770 2
3380-E 1770 2
3380-3 2655 3
3380-K 2655 3
EMC3380K+ 3339 3
EMC3380K++ 3993 3
3390 ?
3390-1 1113 1
3390-2 2226 1
3390-3 3339 1
3390-9 10017 3
9345 ?
9345-1 1440 0
9345-2 2156 0
FBA DEVICES
devtype-model blocks
3310 ?
3310-1 125664
3370 ?
3370-Al 558000
3370-B1 558000
3370-A2 712752
3370-B2 712752
9332 ?
9332-200 360036
9332-400 360036
9332-600 554800
9335 ?
9335-1 804714
9336 ?
9336-10 920115
9336-20 1672881
9336-25 1672881
(? = user must specufy size)
For CKD volumes which exceed 2GB, such as the 3390-3, the DASDINIT program will create multiple files by appending the characters _1, _2, _3 etc. to the file name specified on the command line. Each file contains a whole number of cylinders. Hercules CKD support recognizes the files as belonging to a single logical volume. Specify the full name of just the first file in the Hercules configuration file (e.g. "filename_1").
The DASDINIT program cannot create FBA volumes exceeding 2GB.
To create a 3330 model 1 CKD volume consisting of 404 cylinders (plus 7 alternate cylinders too) with volume serial number WORK01 in a file called work01.151:
dasdinit -a work01.151 3330-1 work01
To create a compressed 3350 CKD volume consisting of 560 cylinders (555 cylinders plus the 5 alternate cylinders) with volume serial number SYSRES in a file called dosvs34.24f:
dasdinit -a -bz2 dosvs34.24f 3350-1 sysres
To create a 3370 FBA volume with only 920115 sectors (instead of the usual 558000 sectors) with volume serial number WORK02 in a file called mini.work02.140:
dasdinit mini.work02.140 3370 work02 920115
To create a 3390 model 3 (triple density) CKD volume of 3339 cylinders with volume serial number WORK03:
dasdinit 3390.triple.a88 3390-3 work03
Because this volume exceeds 2GB, DASDINIT will create two files
with 3390.triple.a88_1 containing cylinders 0-2518 and
3390.triple.a88_2 containing cylinders 2519-3339.
After creating a DASD volume you can format it with a program such as standalone IBCDASDI or ICKDSF.
Here is an example of the IBCDASDI control statements required to initialize a 3330 volume:
WORK01 JOB 'INITIALIZE 3330 WORK VOLUME'
MSG TODEV=1052,TOADDR=009
DADEF TODEV=3330,TOADDR=151,IPL=NO,VOLID=WORK01,BYPASS=YES
VLD NEWVOLID=WORK01,OWNERID=HERCULES
VTOCD STRTADR=1,EXTENT=5
END
To run IBCDASDI, place the above statements in a file called init3330.txt and start Hercules in S/370 mode with a configuration file containing these statements:
001234 3145 02 0 1052 1 ........
0009 1052
000A 1442 ibcdasdi.rdr
000C 1442 init3330.txt
0151 3330 work01.151
After IPLing from card reader device 00A, connect a telnet client
to port 1052, and press enter. At the IBCDASDI prompt, enter:
input=1442 00c
Next you need to create a full volume dump file on your mainframe and convert it to AWSTAPE format using the tapeconv.jcl job in the Hercules source directory. The AWSTAPE file can then be downloaded in binary format to your PC where it can be defined as a virtual tape drive in the Hercules configuration file.
A standalone program can now be IPLed into Hercules to restore the volume image from the virtual tape onto the formatted virtual DASD volume.
The dasdload program can be run from the Unix shell prompt to create a new DASD image file and load it with data from unloaded PDS files.
The format of the dasdload command is:
dasdload ctlfile outfile msglevel
where
ctlname
outfile
msglevel
The control file required by the dasdload program is an ASCII text file consisting of a volume statement followed by one dataset statement for each dataset to be created.
The format of the volume statement is:
volser devtype [cyls [ipltext] ]
where:
volser
devtype
cyls
cyls is coded as *
or is omitted, then the default size for the device type is used.
If cyls is 0,
then the volume will contain the minimum number of cylinders
needed to contain the requested datasets.
ipltext
The format of a dataset statement is:
dsname method units pri sec dir dsorg recfm
lrecl blksize keylen
where:
dsname
method
XMIT filename
EMPTY
DIP
CVOL
VTOC
units
TRK or CYL.
pri
sec
dir
dsorg
PS, PO,
DA, or IS,
recfm
FB, FBS,
V, VB, VBS,
or U.
lrecl
blksize
keylen
All parameters except dsname and method are optional. Defaults of zero are supplied for DCB parameters. For datasets loaded with the XMIT method, the DCB parameters are taken from the unloaded PDS, and the minimum space allocation required to load the dataset is used unless a larger quantity is specified. If space allocation is omitted, the default is TRK 1 0 0. If CYL is specified without any primary quantity then the default space allocation is 1 cylinder or the minimum number of cylinders required to load the dataset, whichever is larger.
To create a 2314 volume in a file called sysres.230 using the control file sysres.plf with message level 2:
dasdload sysres.plf sysres.230 2
An example control file is shown below:
#
# Pack layout file for MFT system residence volume
#
sysres 2314 * ieaipl00.rdr
sys1.parmlib xmit /cdrom/os360/reslibs/parmlib.xmi
sys1.imagelib xmit /cdrom/os360/reslibs/imagelib.xmi
sysctlg cvol trk 1 0 0 ps f 256 256 8
sysvtoc vtoc trk 5
sys1.logrec dip trk 1 0 0
sys1.nucleus xmit /cdrom/os360/reslibs/nucleus.xmi cyl
sys1.svclib xmit /cdrom/os360/reslibs/svclib.xmi cyl
sys1.sysjobqe empty cyl 2 0 0 da f 176 176 0
sys1.dump empty cyl 10 0 0 ps u 0 3625 0
Note: the DASDLOAD program cannot create volumes exceeding 2GB in size.
On an OS/360 system, the Open/Close/EOV modules in SYS1.SVCLIB have XCTL tables embedded within them. These tables contain TTRs pointing to other modules, and these TTRs need to be adjusted after loading SVCLIB to DASD. OS/360 provides a program called IEHIOSUP to perform this function, but the catch is that you can't run IEHIOSUP until you have the system up and running, and you can't IPL until you have fixed the XCTL tables. To solve this problem, Hercules provides a program called dasdisup which can be run from the Unix command line after running dasdload.
The format of the dasdisup command is:
dasdisup outfile
where
outfile
Note: do not use this procedure except on OS/360 IPL volumes; other operating systems do not have XCTL tables.
These programs can be used to extract data from CKD DASD images by means of commands issued at the Unix shell prompt.
DASDLS, written by Malcolm Beattie, is a command to let you list the names of the datasets contained in disk images.
The command format is:
dasdls ckdfile ...
where ckdfile is the name of a Unix file containing a CKD volume.
DASDCAT, written by Malcolm Beattie, is a command to let you read datasets from disk images.
The command format is:
dasdcat -i ckdfile dsname1 dsname2 ... -i ckdfile2 dsname10 ...
where ckdfile is the name of a Unix file containing a CKD volume,
and dsname can be a plain (non-partitioned) dataset name
(which is currently not handled) or of the form pdsname/memname
where memname can be:
% dasdcat -i mvtres.350 'sys1.parmlib/?'
ieabld00
ieaige00
ieaigg00
ieaigg01
iearsv00
ikjprm00
lnklst00
presres
smfdeflt
% dasdcat -i mvtres.350 sys1.parmlib/smfdeflt:c
OPT=2, SYSTEM,JOB AND STEP DATA COLLECTION
EXT=YES, USER EXITS ARE TO BE TAKEN
JWT=15, MAXIMUM CONTINUOUS WAIT TIME IS 15 MINS.PER STEP
BUF=400, A MINIMUM 400 BYTE BUFFER IS DEFINED
SID=6A, SYSTEM ID IS 6A
MDL=65, MODEL IS MOD 65
OPI=YES, PERMIT OPERATOR INTERVENTION
MAN=ALL, RECORD USER AND SYSTEM RECORDS
PRM=(,282,NL) SYS1.MAN ALLOCATED TO NON-LABELED TAPE
% dasdcat -i mvtres.350 sys1.help/\*:c
> Member ACCOUNT
| )S SUBCOMMANDS -
| ADD/A,CHANGE/C,DELETE/D,LIST/L,LISTIDS/LISTI,HELP/H,END
| )F FUNCTION -
| THE ACCOUNT COMMAND PROCESSOR INVOKES THE CONVERSATIONAL PROGRAMS
...
> Member ALLOC
| )F FUNCTION -
| THE ALLOCATE COMMAND DYNAMICALLY DEFINES AND ALLOCATES A DATA SET
| WITH OR WITHOUT AN ATTRIBUTE LIST OF DCB PARAMETERS
| )X SYNTAX -
| ALLOCATE DATASET('DSNAME'/*) FILE('DDNAME')
...
DASDPDSU is a command which unloads PDS members from a disk image and copies each member to a file memname.mac in the current working directory.
The command format is:
dasdpdsu ckdfile pdsname [ascii]
where ckdfile is the name of a Unix file containing a CKD
volume, and pdsname is the name of a PDS on that volume.
If the optional ascii keyword is specified, the members will be
unloaded as ASCII variable length text files. Otherwise the members
are unloaded as fixed length EBCDIC binary files.
If you have a question about Hercules, see the Hercules Frequently-Asked Questions page.
Last updated 25 January 2002