This writeup is the basic document accompanying each ASSIST-V distribution tape. It is written to explain what is being distributed and how to begin to use this product.
The work described here was conducted by Charles E. Hughes and Charles P. Pfleeger of The University of Tennessee Computer Science Department. Partial support was provided by the National Science Foundation, under grant SER 76-14494.
ASSIST-V is a simulator package that presents to the user the effect of exclusive use of an IBM 360 series machine. It simulates interrupts, privileged instructions, timing, and channel level programming as these items are performed on an IBM 360.
ASSIST-V is an extension to ASSIST (version 4.0/A2). The basic assembler and macro processor remain virtually unchanged. The bulk of the interpreter from ASSIST has also been retained. In particular, the following major features of ASSIST still exist: time/output monitoring, termination dump and trace of instructions just before termination, simple I/O through pseudo-commands (e.g., XREAD, XDUMP), full monitoring of the user program for exceptional conditions and shielding of the user from O/S terminations. Students and instructors who have become familiar with debugging under ASSIST will find most of the features that aided debugging there have been retained under ASSIST-V.
ASSIST-V receives from ASSIST the assembled object code of a user program. This code is loaded into an area of simulated memory, as if this program were located at real memory location 0. The user program must contain values to initialize the fixed locations for program check old and new PSW's, supervisor call old and new PSW's, etc. The first 8 bytes of the user program are taken to be the IPL PSW, and thus are loaded as the first PSW. This gives the address at which execution is to begin, as well as the initial values of the protection key, system mask, etc. Execution of this program is then simulated, allowing privileged instructions, channel level I/O programming, and handling of interrupts.
ASSIST-V is not a replacement for ASSIST. Standard ASSIST is useful to students learning or using assembler language. The types of problems for which ASSIST is appropriate are much the same as those for which assembler G or F might be used. ASSIST-V, however, will be of more interest to people studying the implementation of operating systems modules. Typical users might be students in a systems programming or operating systems class. As it is currently distributed, ASSIST-V does not support a mode equivalent to regular ASSIST. (However, work is in progress on integrating ASSIST-V and regular ASSIST in order to produce one package that supports both a regular mode and a -V mode.) People to whom ASSIST-V is distributed will probably want to maintain load modules of both ASSIST and ASSIST-V.
ASSIST-V is currently distributed free of charge to educational institutions upon request. However, the right is reserved to impose either a tape distribution charge, or a software charge, or both. No warranty of any kind is implied by this distribution. Although the distributors will attempt to help users solve any problems arising from the use of ASSIST-V, this assistance will have to be on a when-time- permits basis. No formal contract is required to obtain ASSIST-V. However, ASSIST-V is copyrighted by its authors and users are not to distribute it to any other installations. This is simply to coordinate the distribution of updates and ASSIST-V news.
The documentation on this tape may be reproduced and distributed in any quantity for educational purposes without further permission.
Modifications to ASSIST-V are encouraged, and we are certainly interested in hearing about these corrections, revisions, and extensions. We would appreciate notification of any bugs discovered (including as much detail to pinpoint the problem as possible), although, as noted above, we cannot guarantee fixes to the bugs. We would also be interested in hearing what kind of use you are making of ASSIST-V, including project descriptions, sample programs, running statistics, and desired extensions.
ASSIST-V is distributed through the efforts of the Pennsylvania State University Computation Center. For information on receiving a copy of ASSIST-V, contact
Program Librarian (ASSIST-V)
The Pennsylvania State University
214 Computer Building
University Park, PA 16802
For general information on ASSIST-V, requests for changes, updates to distribution site names or addresses, and descriptions of ASSIST-V usage, contact
Thomas Minsker
The Pennsylvania State University
214 Computer Building
University Park, PA 16802
For bug reports and maintenance suggestions, contact
Charles Hughes or
Charles Pfleeger
The University of Tennessee
Computer Science Department
Knoxville, TN 37916
This tape contains twenty files as described below. Most of the files have been set up for easy manipulation by IEBPTPCH, IEBGENER, and IEBUPDTE standard O/S utilities. Files of type "text" have been recorded with RECFM=FBA, LRECL=121, BLKSIZE=3146 and contain information in both upper and lower case EBCDIC. "Obmod" files are standard O/S object modules, RECFM=FB, LRECL=80, BLKSIZE=3120. Files described as "Source" are 80 byte records with sequence numbers in columns 73-80, upper case EBCDIC; they are the full source code of the system, RECFM=FB, LRECL=80, BLKSIZE=3120. "Data" files are 80 byte records without sequence numbers, RECFM=FB, LRECL=80, BLKSIZE=3120.
** Files 1-4 comprise primary documentation on ASSIST-V **
File 1 DSN=ASVDISTR, type=text, approx. size=390. Description of the
ASSIST-V distribution tape. (This writeup)
File 2 DSN=ASVINTRO, type=text, approx. size=1480. ASSIST-V: An
Environment Simulator for IBM 360 Systems Software Development.
A writeup giving an overview of the use of ASSIST-V, as well as
two examples of its use. Suitable for distribution to students
or other beginning users. (Same as Univ. of Tenn. Comp. Sci.
Dept. Tech. Report CS-77-23.)
File 3 DSN=ASVUSRGD, type=text, approx. size=960. ASSIST-V User's
Guide. A guide to the detailed characteristics and use of the
ASSIST-V system. Also appropriate for beginning users. (Same
as Univ. of Tenn. Comp. Sci. Dept. Tech. Report CS-77-24.)
File 4 DSN=ASVPLM, type=text, approx. size=1300. ASSIST-V Program
Logic Manual. Writeup for the person generating or maintaining
the ASSIST-V system. Contains descriptions of the design and
implementation of ASSIST-V at the source code level. Not
appropriate for most beginning users. (Same as Univ. of Tenn.
Comp. Sci. Dept. Tech. Report CS-77-25.)
** Files 5-7 are sample object decks of ASSIST-V **
File 5 DSN=ASVOBMIN, type=obmod, approx. size=1630. Object module of a
very small version of ASSIST-V. Deletes practically all
optional features.
File 6 DSN=ASVOBGEN, type=obmod, approx. size=1670. Object module of a
general version of ASSIST-V similar to the one used by students
in operating systems courses during development of ASSIST-V.
File 7 DSN=ASVOBMAX, type=obmod, approx. size=1790. Object module of a
large version of ASSIST-V employing most features available and
compatible with ASSIST-V, regardless of memory requirements.
** Files 8-10 are a series of ASSIST-V example programs **
File 8 DSN=ASVINHDL, type=data, approx. size=100. Example program
showing ASSIST-V exercising interrupt handlers for program, SVC,
and external interrupts. No channel level I/O. (Figure 2 from
ASVINTRO, file 2 above.)
File 9 DSN=ASVRDPRT, type=data, approx. size=100. Example program
using channel level I/O with a card reader and printer.
File 10 DSN=ASVDISK, type=data, approx. size=150. Example program
using channel level I/O on a direct access device. (Figure 5
from ASVINTRO, file 2 above.)
** Files 11-16 comprise all ASSIST-V source code **
File 11 DSN=ASVSRC1, type=source, approx. size=5030. Sequence numbers
00000000 to 03748000: all macros, global DSECT's, EQU's, and set
variables needed for any ASSIST-V assembly.
File 12 DSN=ASVSRC2, type=source, approx. size=6470. Sequence numbers
03750000 to 08563260: main ASSIST-V control program and global
support routines for I/O, storage management, dumps and
interrupt management. This section should contain the only
system-dependent code. (ASSIST-V may use GETMAIN, FREEMAIN,
WTO, STIMER, TTIMER, and SPIE, as well as QSAM, BSAM, and BPAM
I/O.)
File 13 DSN=ASVSRC3, type=source, approx. size=8300. Sequence numbers
08564000 to 21006260: the basic ASSIST assembler and its control
tables.
File 14 DSN=ASVSRC4, type=source, approx. size=1480. Sequence numbers
30000000 to 32924000: the ASSIST replace monitor--needed only
for runs using the REPL feature.
File 15 DSN=ASVSRC5, type=source, approx. size=6200. Sequence numbers
40000000 to 67010000: the ASSIST macro processor. Used for runs
that invoke user-defined or system macros or that use features
of conditional assembly.
File 16 DSN=ASVSRC6, type=source, approx. size=5420. Sequence numbers
80000000 to 88000510: the ASSIST-V extended interpreter
containing ASSIST-V I/O handler, XOPC (eXtended OP Code)
processor, and run-time interpreter. This portion contains most
features unique to ASSIST-V.
** Files 17-20: ASSIST-V miscellaneous materials **
File 17 DSN=ASVSAMPL, type=data, approx. size=2. A batch of sample
programs that may be run under ASSIST-V. It consists of major
examples obtained from students in operating systems courses and
independent study projects, using various features of ASSIST-V.
These are fairly large and long projects. (Note: For this
preliminary distribution, this file is empty. The next
distribution will contain numerous entries, especially if you,
our users, contribute examples that you have developed.)
File 18 DSN=ASVASSNS, type=text, approx. size=2. Descriptions of
programming assignments using ASSIST-V and of projects written
under ASSIST-V. (Note: As with File 17, this is empty in this
preliminary distribution.)
File 19 DSN=ASVMISC, type=data, approx. size=110. JCL procedure used
to execute ASSIST-V, JCL procedure used to assemble ASSIST-V,
linkage editor overlay statements to create an overlaid version
of ASSIST-V, ASSYSGEN decks used to create the object decks
supplied on this tape.
File 20 DSN=ASVUPDTE, type=source, approx. size=2. IEBUPDTE-
compatible decks used to create the current version of ASSIST-V.
(Note: for initial users this file will be empty; as new
releases are distributed, this file will show updates needed to
expand the distributed source to the current version.)
This section gives a brief overview of the process of generating a version of ASSIST-V tailored to the needs of a particular installation. It is also necessary to consult the section of the ASSIST-V PLM (file 4 on the distribution tape) for detailed information on generating an ASSIST-V system.
It may be useful to try out one or two of the versions of ASSIST-V supplied in object module form. These will give the user a feeling for the options available, appearance of output, typical running times, and storage requirements. Sample programs that may be run against these object modules include the three short sample programs (provided in files 8-10) of the distribution tape.
Referring to Section I and Appendix A of the ASSIST-V Program Logic Manual, the user should determine appropriate values for all SYSGEN parameters. The ASSYSGEN macros provided in ASVMISC (file 19) may suggest appropriate settings that will produce useful modules. Descriptions of many of the parameters are contained in the ASSIST PLM, contained on the standard ASSIST distribution tape.
The files ASVSRC1 through ASVSRC6 (files 11 to 16) contain the full source code of ASSIST-V. These modules are assembled to produce a version of ASSIST-V that is designed for the environment of a specific installation. These modules may be assembled separately, with the exception that ASVSRC1 must be assembled with each assembly. (That is, one might assemble ASVSRC1, ASVSRC2, and ASRSRC3 as one assembly; ASVSRC1 and ASVSRC4 as a second assembly; ASVSRC1, ASVSRC5, and ASVSRC6 as a third assembly; and then combine these three object modules.) To facilitate multiple assemblies, none of these modules contains an END statement. Although the assembler will produce an error message ("EOD ON SYSIN" or similar), the object module produced will be correct.
Values for the sysgen parameters must be supplied to approximately 120 set variables. All of these variables receive default values in ASSIST-V. The full listing of variables and their defaults is given in the ASSIST-V PLM. These defaults can be changed by using IEBUPDTE or the UPDATE option of assembler G to replace statements supplying default values. However, it is also possible to change these values by use of the ASSYSGEN macro. This macro is called once per assembly, immediately after the default values have been assigned. The user can code an ASSYSGEN macro containing GBLA's, -B's, and -C's and SETA's, -B's, and -C's for only those variables that are to have a value other than the default. This macro is then placed in a partitioned data set and passed to the assembler along with SYS1.MACLIB as macro source libraries.
Installations that have already sysgened a version of ASSIST, and installations that have made source code revisions to ASSIST, will find that the sequence numbers within ASSIST-V are generally the same as those within ASSIST. New code has been inserted, where possible, in "holes" in the sequence number pattern of ASSIST, so that most local modifications can be carried across to ASSIST-V. It would be wise to examine an ASSIST-V source listing to verify that any such changes do replace the desired section of code.
Following is a list of JCL that may be used to run ASSIST-V. Of course this JCL will need to be tailored somewhat for each installation.
//ASSISTV PROC //GO EXEC PGM=ASSISTV,REGION=128K //STEPLIB DD DSN=NAME,VOL=VOL,UNIT=UNIT LOAD MODULE //FT06F001 DD SYSOUT=A ASSEMBLER OUTPUT //FT07F001 DD SYSOUT=B PUNCHED OUTPUT //FT08F001 DD UNIT=SYSDA,SPACE=(TRK,(5,5)) ASSEMBLER WORK SPACE //SYSLIB DD DSN=SYS1.MACLIB MACRO LIBRARY (FOR USER- //* CALLED MACROS) //VIRTPRT1 DD SYSOUT=A,DCB=RECFM=FM VIRTUAL PRINTER, DEVICE 00E //VIRTPRT2 DD SYSOUT=A,DCB=RECFM=FM VIRTUAL PRINTER, DEVICE 00F //VIRTDSK1 DD UNIT=SYSDA,SPACE=(1692,80) VIRTUAL DISK, DEVICE 101 //VIRTDRM1 DD UNIT=SYSDA,SPACE=(2048,20) VIRTUAL DRUM, DEVICE 201 //* -- ALSO NEED //VIRTRDR1 DD AND //VIRTRDR2 DD FOR VIRTUAL READERS, //* DEVICES 00C AND 00D. // PEND
As noted above, maintenance cannot be guaranteed for ASSIST-V. It has been in extensive use at several installations for over a year, and no severe bugs have been noticed. This is clearly not a guarantee that ASSIST-V is error-free. The authors will be happy to provide suggestions for fixing or circumventing problems, but these will be on a when-time-permits basis.
Work is in progress on several modifications to ASSIST-V. The current distributed version of ASSIST-V is for OS-compatible installations; support for DOS does not yet exist. Modifications for a DOS version are under way, and information on that will be distributed as soon as it is available.
Work is also in progress on extending ASSIST-V to a 370-like version, so that it simulates something similar to the S/370 Extended mode of control. This work is a bit more distant in the future, but again users will be informed when this becomes available. As with regular ASSIST, this version will be written in such a way that a 360 can emulate an E-mode 370; the 370 instruction set will not be used unless the version is being sysgened to run on a 370 machine.
A final task that is in progress is the integration of ASSIST-V with standard ASSIST. At present ASSIST-V contains a number of improvements to ASSIST that are not present in version 4.0/A2 of ASSIST. Now it is necessary to retrofit these changes into the regular ASSIST framework in order to produce one package with a single parameter, VIRT, that controls whether the regular ASSIST or the ASSIST-V interpretation of the user program is desired.