One of the software guys introduced me to VM. Once I got my head around that, he demonstrated running VM itself - within a VM. My head exploded.
In VM development, we would run the version of VM being developed as a guest and if you wanted to test its guest emulation, you had to run a guest under it. When I had to do this once, I didn't want to deal with the complexity of creating a mainframe os guest like MVS, so I would run CMS as a guest. I would define an extra virtual CPU, which CMS would know nothing about of course, and SIGP (signal processor) it to run code fragments that I wanted to run on a multiprocessor guest.
When you are emulating guest stuff, VM's view of things is completely different than what the guest thinks it is seeing. So of course most new hardware features have to be virtualized if they are to be used by guests and this means recursive VM's as well. So technical discussions could be something else if there were a lot of context ans POV switching going on.
1. Press Return before logging in. Simple to remember, but if you don't, you get...nothing after typing LOGON CMSUSER.
2. Use model 3278-4 (which is 80 columns by 43 rows) otherwise you get mystery blank screens.
3. There is no autoscroll. After 60 seconds it will timeout and scroll another screenful. Otherwise press PA2 for the next screenful (useful for lengthy LIST commands.) To interrupt very long output, type HT to halt text. NOTE: PA2 not PF2. See "MORE..." at bottom right indicating there is more text to scroll.
4. The CLI is an overlay mount of CP and CMS. If CMS doesn't recognize a command, it gives it to CP to process. Compare Q DISK and Q DASD, the Q DISK result it from CMS, the Q DASD result is from CP.
5. Use LIST (ISODATE) for more details and modify dates. Abbreviate as L (ISO.
6. Redirect Fortran unit 6 to the terminal with FILEDEF 6 TERMINAL (BLKSIZE 133) and you may be unsurprised to learn this took me three days of searching to find. Now your LOAD HELLO (START will produce output on your screen, not a file.
7. There is GCC with two available runtimes; BISON, DIFF, DIFF3, as well as PL/I, PL/360, Pascal and WATFIV for those old enough to remember the Waterloo Fortran compiler which had actual usable error messages. MINIZIP is there too. No APL, unfortunately.
8. I never did manage to get Hercules to exchange files via the Punch or Printer logical units. So, no file exchange at all. If there is a way to get ascii files or binary files in or out that would be helpful.
9. The 3270 terminal display is programmed with special character pairs indicating fixed text, text fields changeable, double-wide text, etc. So far I haven't found a way for a C or Fortran program to send and receive text from the terminal that can completely control the screen and read back the contents. (A program running under CMS of course.)
I am not surprised at all. This page is more or less the total achievement of a couple years of playing with the system.
> If there is a way to get ascii files or binary files in or out that would be helpful.
There is $INDFILE, which, IIRC, is something from the PC/370 era. The x3278 terminal uses it for its send/receive file facility. $INDFILE doesn't come with plain VM/370 R6, but is part of CE.