STAGE1, in the
jcl/stage1.jcl file, is the job
that builds the jobs that build the OS. It's deceptively simple: the input is
a series of assembler macros that describe the hardware of the target system,
and the software that will be run on it. It also configures the operating
system itself. The macros generates a JCL deck on the dataset described by
SYSPUNCH DD statement. The supplied
directs this output directly to the virtual card punch at address 00D. This
is fine in an environment like this, where nobody else is waiting to use the
punch; in a real shop, it would probably be directed to
The first five macros configure the OS itself. They describe an OS/360
MVT system, built to run on a 370/158 CPU, with all of the available
features specified, most notably including TSO, RJE, the machine check
handler, and service aids like
IMASPZAP. Volumes are mounted at
IPL time by means of AVR (Automatic Volume Recognition). MCS (Multiple
Console Support) is included, with two normal consoles, the master at
address 0C0, and an alternate at 01F. No RDR, WTR, or INIT tasks will be
automatically started; HASP will perform those functions. Other parameters
specify the size of system queues, and timers, and other configuration
The next set of macros, from
UCS, specify the contents of the system libraries, and their
location. All of the access methods that apply to any of the devices
Hercules will emulate are included. The two UCS macros define the AN, PN,
and TN character sets for the 1403 printer, and the A11 and T11 character
sets for the 3211.
The next section of code specifies the compilers to be included in the system. The included compilers are ALGOL, COBOL E, ANS COBOL, FORTRAN G, FORTRAN H, PL/I F, and RPG; the F-level assembler is included; and the TSO FORTRAN and PL/1 syntax checkers are included. The language libraries are all included. Similarly, the F-level linkage editor is included, as the 128K version.
IODEVICE macros describe the system's hardware configuration.
The target system as described here has 4 I/O channels, a byte multiplexor
channel at channel 0, and three block multiplexor channels at channels 1-3.
A 3505 card reader is defined at address 00C; a 3525 card punch at 00D;
a 1403-N1 printer at 00E; and a 3211 printer at 010. A total of 32 2314 disk
drives are defined, at 130-137 and 330-337. 32 3330 disk drives at 150-157,
160-167, 350-357, and 360-367 are defined, as well. Six 3420 tape drives are
defined, at 280-285. A 3215 printer-keyboard console is defined at 01F.
Finally, eight 3277 CRTs are defined at 0C0-0C7. The block multiplexer
channel at channel 7, and the I/O devices defined on that channel, are not
real devices, but rather virtual devices for communication between
OS/360 and HASP.
UNITNAME macros identify which devices are associated
SYSDA points to all of the 2314s and 3330s,
SYSSQ points to the 2314s, 3330s, and 3420s, and
TAPE points to the 3420s. Like the devices on channel
INTRDR unit names are for communication with HASP.
The last two macros,
the generation of the stage 2 jobstream. The
OUTPUT macro sets
all of the generated jobs to send their printed output to
SYSOUT class A. The
GENTSO macro specifies the
name and location of the target system's datasets, and is the one that does
the actual generation of the stage 2 JCL. The
statement tells the assembler not to print the card images generated by
GENTSO on the printed output as well.
The STAGE1 job is run in the same way as the other jobs so far: point the
jcl/stage1.jcl, and let the
RDR task slurp
it in. It will take a couple of minutes to run, in comparison to the
previous jobs that all fiinished prettymuch instantaneously. If all goes
well, it should finish up normally. Look over the printed output to see that
it has no MNOTEs of severity greater than 0, and then go on to stage 2.
Up to table of contents Previous: Getting ready for stage 1 Next: Running the stage 2 sysgen
Last updated 10 February 2003