Hercules is a freely-available program which runs on Linux and emulates (rather well!) IBM System/360, 370, and 390 computers. Rather than extoll it's virtues ad nauseum, I'll simply point to the place from whence it comes:
http://www.conmicro.cx/hercules/
I've included a link here - MVT test - which will open an IBM Host-On-Demand session to allow you to login to my OS/360 MVT system. Don't use it if you don't know what you're doing! Please report any problems.
Or, if you have a 3270 client of your own, just use tn3270 to connect to linux390.corestore.org, port 1074.
Note - this is a Java application and will probably ask you to grant certain permissions. Hopefully the certificates will convince you it's kosher! It's a substantial app and make take 2-4 mins to complete the download and initialise... longer if you have a slow dialup. You don't have to do anything after hitting the 'MVT test' link, just sit back and wait for the terminal window to open up. The 'Start Session MVT' button you may see does NOT have to be pressed - it will open an *additional* terminal window, which you (probably) don't want.
Once again, please DO NOT attempt to use this if you aren't familiar with MVT - the login procedure is non-intuitive and you can end up causing problems for others who wish to use the system. Hint - if the screen doesn't seem to present a correct login prompt, try hitting 'clear'!
Guide to configuring multiple TSO terminal support under OS/360 MVT
Malcolm Beattie has produced a most excellent guide to getting TSO up and running on Hercules MVT. It can be found at:
http://users.ox.ac.uk/~mbeattie/hercules/tso.html
However, this procedure leaves one with a TSO configuration which only supports a single terminal. Still very useful, but sub-optimal. It would be nice to have support for multiple concurrent logins. Well, this is possible, and it's not all that hard to configure. It doesn't seem to be fully documented anywhere, so I thought I'd have a go at documenting what worked for me:
1. Start by following Malcolms instructions on the above link. This should bring you to a working TSO system with a single terminal.
2. The Hercules configuration file, conventionally called mvt.cnf, needs additional entries for the extra terminals we are about to configure. I've configured five screens, so the relevant portion of my mvt.cnf looks like this:
0150 3330 sysres.150 0151 3330 work01.151 0190 3270 0191 3270 0192 3270 0193 3270 0194 3270 0195 3270 0196 3270 030E 1403 mvtlog.txt 0350 3330 mvtres.350The screens at 0190 and 0191 are the main & auxilliary consoles; the remainder will be TSO screens.
3. You will recall that the initial TSO setup as per Malcolms instructions involved submitting the TCAMSTG1 job, and inserting the resulting output into the TCAMSTG2 job. We now need to revisit this to add additional LINEGRP statements to the TCAMSTG1 job. (OK, you could set up TSO this way from the start, I'm sure, but to me it made more sense to confirm it was working with the known configuration first, then worry about the additional screens). My revised TCAMSTG1 is as follows:
//TCAMSTG1 JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //TCAMSTG1 EXEC ASMFC,PARM.ASM='DECK',REGION.ASM=512K //ASM.SYSUT1 DD UNIT=SYSDA //ASM.SYSUT2 DD UNIT=SYSDA //ASM.SYSUT3 DD UNIT=SYSDA //ASM.SYSIN DD * PRINT NOGEN LINEGRP TERM=327L,DDNAME=L3270,LINENO=01, + DIAL=NO,UNITNO=1,SCREEN=(24,080) LINEGRP TERM=327L,DDNAME=L3270B,LINENO=02, + DIAL=NO,UNITNO=2,SCREEN=(24,080) LINEGRP TERM=327L,DDNAME=L3270C,LINENO=03, + DIAL=NO,UNITNO=3,SCREEN=(24,080) LINEGRP TERM=327L,DDNAME=L3270D,LINENO=04, + DIAL=NO,UNITNO=4,SCREEN=(24,080) LINEGRP TERM=327L,DDNAME=L3270E,LINENO=05, + DIAL=NO,UNITNO=5,SCREEN=(24,080) TCAM TSOMCP END //You will see the additional terminals differ in the DDNAME, LINENO, and UNITNO parameters.
4. Rerun the TSO setup from scratch - run TCAMSTG1, insert the punch output in TCAMSTG2 and run that, then TCAMPRCS and TSOSETUP - exactly as per Malcolms instructions.
5. One final stage: the TCAM PROCLIB has to be modified in order to make it aware of the additional DDNAMES we've defined above. There's a hard way to do this, using the IEBUPDTE program, which I didn't even attempt. The easy way is to use IEBGENER:
Submit the following job, FOO.TXT:
//FOO JOB1,CLASS=A //TEST EXEC PGM=IEBGENER //SYSPRINT DD DUMMY //SYSIN DD DUMMY //SYSUT2 DD SYSOUT=A //SYSUT1 DD DSN=SYS1.PROCLIB(TCAM),DISP=SHRThis should produce some printed output. Examine the output, and you should find something like:
//TCAM EXEC PGM=IEDQTCAM,ROLL=(NO,NO),TIME=1440,DPRTY=(15,15), // REGION=128K //SYSABEND DD SYSOUT=A,SPACE=(CYL,(20,10),RLSE) //L3270 DD UNIT=192At least that's what I got. Edit the above text to reflect the additional DD statements and insert it into a job to write a new TCAM PROCLIB:
//FOO JOB 1,CLASS=A //TEST EXEC PGM=IEBGENER //SYSPRINT DD DUMMY //SYSIN DD DUMMY //SYSUT2 DD DSN=SYS1.PROCLIB(TCAM),DISP=SHR //SYSUT1 DD DATA,DLM=XX //TCAM EXEC PGM=IEDQTCAM,ROLL=(NO,NO),TIME=1440,DPRTY=(15,15), // REGION=128K //SYSABEND DD SYSOUT=A,SPACE=(CYL,(20,10),RLSE) //L3270 DD UNIT=192 //L3270B DD UNIT=193 //L3270C DD UNIT=194 //L3270D DD UNIT=195 //L3270E DD UNIT=196 XX //You should now be able to start TSO and have multiple terminal support. Acknowledgments to the various contributors to the Hercules list whose hints & tips have enabled me to get this working and distill this procedure.
Any problems getting this working, feel free to get in touch!