This is a repo that simply stores the DLIB tapes of OS/VS1 rel 6.0 as announced and made available by Kevin Leonard and (I think) Mark Waterbury. I did not contribute anything to these tapes, I simply make them available to myself here so I don't have to log on to groups.io each time to download them.
All the credit goes to the two above mentioned gentlemen... and to International Business Machines aka IBM.
thanks
Moshix
For a better guide than mine, read this guide by Simon Toffler (with screen shots!): https://github.com/moshix/OSVS1/blob/main/OSVS1%20Sysgen.pdf
The IBM VS1 6.0 starter system is a very basic system, with the bare functionality needed to generate your own system. You will end up with a very basic system which is certainly capable of getting all the necessary compilers installed. Once fully configured this bad boy will run a 70s Savings and Loan institution, or a freight train company, no problem.
Note: VS1's NIP console interface is primitive, so early replies in NIP must be of the format:
R 00,'TEXT'
with an ID of 00 and single quotes enclosing the reply text.
First Step:
Use this Hercules config file:
CPUSERIAL 060305 # CPU serial number CPUMODEL 3032 # CPU model number MAINSIZE 8 # Main storage size in megabytes XPNDSIZE 0 # Expanded storage size in megabytes CNSLPORT 3270 # TCP port number to which consoles connect NUMCPU 1 # Number of CPUs LOADPARM ...... # IPL parameter SYSEPOCH 1900 -28 ARCHMODE S/370 CODEPAGE 437/037 000C 3505 eof 000D 3525 pun/pch00d.txt ascii crlf 000E 1403 prt/prt00e.txt crlf 001F 3215 noprompt 0480 3420 0481 3420 0150 3330 dasd/dliba1.150.cckd. 0149 3350 dasd/fgen60.149.cckd 014a 3350 dasd/fdlb60.14a.cckd
Use your telnet client to connect to Hercules (not a 3270 emulator!!) to address 01F, this will act also as the system log to make things easier.
IPL from address 150. You will see (as the prophecy foretold)
IEA760A SPECIFY VIRTUAL STORAGE SIZE
Press Enter. You will see (if you look)
IEA791I DEVICE 130 NOT READY IEA761I PAGE=(U=148,BLK=1024) IEA791I DEVICE 148 NOT READY IEA761I PAGE=(U=150,BLK=1024) IEA761I PAGE=(U=158,BLK=1024) IEA791I DEVICE 158 NOT READY IEA761I PAGE=(U=1C0,BLK=1024) IEA791I DEVICE 1C0 NOT READY IEA761I PAGE=(U=1D0,BLK=1024) IEA791I DEVICE 1D0 NOT READY IEE054I DATE=92.366,CLOCK=18.17.48 IEE054I DATE=92.366,CLOCK=18.17.48,GMT IEA101A SPECIFY SYSTEM AND/OR SET PARAMETERS FOR RELEASE 06.0E OS/VS1
Reply with:
r 00,'auto=starter,page=(v=dliba1,blk=4096),q=(,f)'
This will cold start the job queue (remember, no HASP or JES in OS/VS1), and allocate the required page data set on volume DLIBA1.
You will see, according to the legend of Zork
IEA764I NIP01,CMD01,DFN01,JESNULL,SET01 IEA765I HARDCPY=,DEVSTAT=ALL IEA103I DATASET SYS1.DUMP NOT FOUND BY LOCATE IEA135A SPECIFY SYS1.DUMP TAPE UNIT ADDRESS OR NO
Press ENTER. You will see
IEA208I SYS1.DUMP FUNCTION INOPERATIVE IEA210I SYS1.PAGE ALLOCATED ON DLIBA1 IEA106I IEAAPF00 NOT FOUND IN SYS1.PARMLIB 181903 8000 IEE140I SYSTEM CONSOLES 001 CONSOLE/ALT COND AUTH ID AREA ROUTCD 001 01F/009 M ALL 01 ALL 001 009/01F N INFO 02 NONE 001 010/01F N INFO 03 Z,A NONE 001 011/01F N NONE 04 NONE 001 014/01F N INFO 05 Z,A NONE 001 015/01F N NONE 06 NONE 001 019/01F N INFO 07 Z,A NONE 001 01A/01F N INFO 08 Z,A ALL 001 01B/01F N INFO 09 Z,A ALL 001 209/01F N INFO 10 NONE 001 219/01F N INFO 11 Z,A NONE 001 21F/01F N INFO 12 NONE IEF031I SYSGEN VALUES TAKEN FOR JES IEE101A READY IEE029I Q=(,F),SWPRM=(U),JLPRM=(U) *00 IEF068A VOLUME DLIBA1 REQUIRES FORMATTING. REPLY 'FORMATV' OR 'RESET'
Reply with R 00,FORMATV
You will see
IEE600I REPLY TO 00 IS 'FORMATV' *01 IEC107D E 150,DLIBA1,MASTER,SCHEDULR,SYS1.SYSPOOL
Reply with R 1,U
The following incantation will hit your eyeballs
IEE600I REPLY TO 01 IS 'U' *02 IEC107D E 150,DLIBA1,MASTER,SCHEDULR,SYS1.SYSWADS
Reply with R 2,U
This will format the spool and job areas, and a command to monitor jobs will be automatically be issued, as well as initiator P0 will be launched:
IEE600I REPLY TO 02 IS 'U' IEE052I MN JOBNAMES,T IEE052I S INITSWA.P0 IEE048I INITIALIZATION COMPLETED IEF403I INITSWA STARTED TIME=18.20.58 P00 IEF005I PARTITION WAITING FOR WORK P00
Now the system can only run one job at a time. To allow 2 jobs to execute we need to change the SYS1.PARMLIB and the SYS2.PROCLIB. There is TSO or any interactive facility here (that's why I run this under VM/370 exclusively...).So we need a small batch job to make the change. Use this JCL by Kevin Leonard:
//UPDATES JOB 1,SOFTWARE,CLASS=A,MSGCLASS=A //* //* 2020/12/12 @kl updates to VS1 6.0 starter system //* SYS1.PARMLIB/SYS1.PROCLIB //* //PARMLIB EXEC PGM=IEBUPDTE,PARM=NEW //SYSPRINT DD SYSOUT=A //SYSUT2 DD DISP=SHR,DSN=SYS1.PARMLIB,UNIT=3330,VOL=SER=DLIBA1 //SYSIN DD * ./ ADD NAME=NIP01 HARDCPY=,DEVSTAT=ALL,PAGE=(V=DLIBA1,BLK=4096) 00001000 ./ ADD NAME=DFN01 P0=(3072K,LAST),END 00001000 ./ ENDUP /* //* //PARMLIB EXEC PGM=IEBUPDTE,PARM=NEW //SYSPRINT DD SYSOUT=A //SYSUT2 DD DISP=SHR,DSN=SYS1.PROCLIB,UNIT=3330,VOL=SER=DLIBA1 //SYSIN DD DATA ./ ADD NAME=INITSWA //INITSWA PROC SWA=1600 00001000 //IEFPROC EXEC PGM=IEFIIC,PARM='SWA=&SWA' 00002000 ./ ENDUP /* //
Put the above JCL into a file on your Linux or windoze machine (or whatever) and read it into the system thru the card reader at address 00C like this:
devinit 00c yourJCLfile.txt
To read in the job cards (remember, this is a card reader. The devinit only places the card deck into the card reader...), do this:
sf ,00C
Turn up the volume on your computer and you will hear the cards flying thru the reader (just kidding).
Since this job will attempt to open up two date-protected data sets (SYS1.PARMLIB and SYS1.PROCLIB, naturally), you will get a warning like this
IEF403I UPDATES STARTED TIME=18.34.58 P00 *04 IEC107D E 150,DLIBA1,UPDATES,PARMLIB,SYS1.PARMLIB P00
Tell the system yeah, yeah, I know what I am doing by tellit it:
R 4,U
It is now happy and says
IEE600I REPLY TO 04 IS 'U' *05 IEC107D E 150,DLIBA1,UPDATES,PARMLIB,SYS1.PROCLIB P00
Same thing again, just do R 05,U
IEE600I REPLY TO 05 IS 'U' IEF404I UPDATES ENDED TIME=18.36.50 P00 IEF005I PARTITION WAITING FOR WORK P00
That's it, first step done. Print out the very interesting job output (looks so 70s!) by issuing a start writer command with
SF ,00E
Now, shut down the system and IPL again.
Second Step:
Right ater IPL, press ENTER to all the messages from NIP
IEA760A SPECIFY VIRTUAL STORAGE SIZE
Press ENTER and you see magically
IEA761I PAGE=(U=130,BLK=1024) IEA791I DEVICE 130 NOT READY IEA761I PAGE=(U=148,BLK=1024) IEA791I DEVICE 148 NOT READY IEA761I PAGE=(U=150,BLK=1024) IEA761I PAGE=(U=158,BLK=1024) IEA791I DEVICE 158 NOT READY IEA761I PAGE=(U=1C0,BLK=1024) IEA791I DEVICE 1C0 NOT READY IEA761I PAGE=(U=1D0,BLK=1024) IEA791I DEVICE 1D0 NOT READY IEE054I DATE=92.366,CLOCK=18.39.46 IEE054I DATE=92.366,CLOCK=18.39.46,GMT IEA101A SPECIFY SYSTEM AND/OR SET PARAMETERS FOR RELEASE 06.0E OS/VS1
Press ENTER again. You see out of nowhere
IEA103I DATASET SYS1.DUMP NOT FOUND BY LOCATE IEA135A SPECIFY SYS1.DUMP TAPE UNIT ADDRESS OR NO
Now, that's a dry request... (or NO)...whatever press ENTER. This will appear
IEA208I SYS1.DUMP FUNCTION INOPERATIVE IEA106I IEAAPF00 NOT FOUND IN SYS1.PARMLIB *00 IEC107D E 150,DLIBA1,MASTER,SCHEDULR,SYS1.SYSWADS
Reply with R 0,U
OS/VS1 will start the P0 initiator and wait for jobs to be submitted.
IEE600I REPLY TO 00 IS 'U' IEE048I INITIALIZATION COMPLETED IEF403I INITSWA STARTED TIME=18.42.55 P00 IEF005I PARTITION WAITING FOR WORK P00
Thassit!! OS/VS1 at your command. Start a reader or writer whenever you need one (see above commands SF). You only start the writers to printer once at the beginning of your IPL, afterwards al print output will go to the printer automagically.
Now, remember there are no compilers, linkers or anything in the system. You will have to go and install those from the Jay Mosely compiler tapes. But that's all simple and easy.
If you run this system under VM/370 you will be able to edit jobs and submit them from within the VM/370 full screen editor, but, hey, up to you.
Kevin Leonard, our amazing JES3, OS/VS1 and OS/VS2 expert extraordinnaire, makes some manuals available here: http://www.j76.org/vs1/documentation.html
If you have any problems with this procedure, then post an issue here on github.