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:
  options:
  -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
  -lfs       build large uncompressed ckd file (>2G)
  -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)
 
 
For CKD volumes which exceed 2GB, such as the 3390-3, and the
-lfs parameter is not specified, the DASDINIT
program will create multiple files by appending the characters
_1, _2, _3 etc.
to the file name specified on the command line.  These characters
are inserted before the first dot (.) after the last slash
(/).  If there is no dot, then the characters are appended
to the end of the name. 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
unless the -lfs parameter is specified and large file size
is supported on your platform..
 
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:
 
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:
 
To create a 3370 FBA volume with only 100000 sectors
(instead of the usual 558000 sectors)
with volume serial number WORK02 in a file called
mini.work02.140:
 
To create a 3390 model 3 (triple density) CKD volume
of 3339 cylinders with volume serial number WORK03:
 
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:
 
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:
 
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:
 
where
 
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:
 where:
 
The format of a dataset statement is:
 where:
 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.
 
[1] To create a 2314 volume in a file called sysres.230
using the control file sysres.plf with message level 2:
 
An example control file is shown below:
 
[2] To create a compressed 3390-3 volume in a file called
linux.500 containing a bootable linux system for
linux/390 installation using the control file linux.prm:
 
An example control file is shown below:
 
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:
 
where
 
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:
 
DASDCAT, written by Malcolm Beattie, is a command to let you read
datasets from disk images.
 
The command format is:
 
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:
 
If you have a question about Hercules, see the
Hercules Frequently-Asked Questions page.
 Last updated 2 April 2002
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
[*] size may be specified else size defaults to the
           first listed model.
Volumes exceeding 2GB
Examples
    dasdinit -a work01.151 3330-1 work01
    dasdinit -a -bz2 dosvs34.24f 3350-1 sysres
    dasdinit mini.work02.140 3370 work02 100000
    dasdinit triple.a88 3390-3 work03
Because this volume exceeds 2GB, DASDINIT will create two files
with triple_1.a88 containing cylinders 0-2518 and
triple_2.a88 containing cylinders 2519-3339.  If you
specify
    dasdinit -lfs triple.a88 3390-3 work03
then DASDINIT will create a single file triple.a88
containing all the cylinders.  Your platform must support large
file size to specify the -lfs option.
Formatting the empty DASD 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
After IPLing from card reader device 00A, connect a telnet client
to port 1052, and press enter.  At the IBCDASDI prompt, enter:
001234 3145 02 0 1052 1 ........
0009   1052
000A   1442    ibcdasdi.rdr
000C   1442    init3330.txt
0151   3330    work01.151
input=1442 00cLoading the new DASD volume
Building a DASD volume from unloaded PDS files
dasdload [options] ctlfile outfile msglevel
    
-z
    -bz2
    -0
    -lfs
    -a
    ctlname
    outfile
    msglevel
    Control file
volser devtype[-model] [cyls [ipltext] ]
volser
devtype
cyls
cyls is coded as *
    or as 0 or is omitted, then the default size
    for the device type and model is used.  Cylinders is ignored
    for compressed devices.
ipltext
dsname method units pri sec dir dsorg recfm
lrecl blksize keylen
dsname
method
    
XMIT filename
    SEQ filename
    EMPTY
    DIP
    CVOL
    VTOC
    units
TRK or CYL.
pri
sec
dir
dsorg
PS, PO,
    DA, or IS,
recfm
F, FB, FBS,
    V, VB, VBS,
    or U.
lrecl
blksize
keylen
Examples
dasdload sysres.plf sysres.230 2#
# 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
dasdload -z linux.prm linux.500
#
# Build a bootable linux disk
#   [Note: the dataset names (sys1.linux. ...) are hard-coded in
#          linuxipl.obj and cannot be changed without rebuilding it]
#
linux  3390-3 * linuxipl.obj
sys1.linux.parmfile    SEQ images/redhat.prm trk   1 0 0 ps fb 1024 1024
sys1.linux.tapeipl.ikr SEQ images/kernel.img trk 200 0 0 ps fb 1024 1024
sys1.linux.initrd      SEQ images/initrd.img trk 200 0 0 ps fb 1024 1024
Fixing the XCTL tables in SVCLIB
dasdisup outfile [sf=shadow-file-name]
    
outfile
    shadow-file-name
    Other DASD utilities
DASDLS - List datasets on volume
dasdls ckdfile [sf=shadow-file-name] ...
where ckdfile is the name of a Unix file containing a CKD volume
and shadow-file-name (optional) is the name of the associated
shadow file.
DASDCAT - Display PDS members
dasdcat -i ckdfile [sf=shadow-file-name] dsname1 dsname2 ... -i ckdfile2 dsname10 ...
where ckdfile is the name of a Unix file containing a CKD volume,
shadow-file-name (optional) is the name of the associated shadow file,
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:
    
Examples
% dasdcat -i mvtres.350 sf= mvtres_1.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 - Unload PDS members
dasdpdsu ckdfile [sf=shadow-file-name] pdsname [ascii]
where ckdfile is the name of a Unix file containing a CKD
volume, shadow-file-name (optional) is the name of the associated
shadow file, 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.
