Out of all mainframe OSes, VM is the most approachable imo, as long as you grasp minidisks and how s390 device addressing works, it becomes just a somewhat clunky DOS. I would also suggest checking out the 2.4 VM ADCD, it is a package with basically all the interesting software, and it is out there if you look for it.
And the Community Edition even has a handy DIR command for you.
This document has a lot of things left to add - the machines can really be a lot more interesting. So far, I haven't figured out how to connect my real printer over the network, the other machine with shared disks but no OS, and even creating a new VM for our user. I also know there are a lot of other interesting things on the base CE image that can be super cool to show a newcomer.
It is a very cool operating system. I had the pleasure of configuring it (in it’s ibm z/VM form) from scratch a few years ago. However due to company politics it only ran for 2 years. If you are based anywhere in the US you could probably make a career out of it. If you are in Europe I don’t know if it is a wise choice. Not much z/VM there. If you now own a modern mainframe and want to run Linux workload for example I think you are better of using kvm. However if you need to run z/OS virtualised your only option is still z/VM
Unix called it 'text' too. That's why the ETXTBUSY error's traditional message string is "Text file busy".
It's not losing the first character from FORMAT because of some magic line printer discard for the first character. It's losing the first character because you don't understand FORTRAN. FORMAT, as you can see in that example program, uses field descriptors to describe formats. It's losing the 'H' from 'HELLO' because that character means a 'Hollerith string' follows it, which in your case is the Mockney 'ELLO WORLD'. (-: You need an extra 'H', to start with.
In Unix terms, this is akin to the classic mistake of using printf() instead of puts() for your Hello program, and using a percent character in your string. In BASIC terms, this is PRINT USING, not PRINT. And yes, that does mean that technically you are holding it wrong. The text to write should be in the list given to WRITE, and FORMAT should just be specifying the field descriptor.
Only then do you get to the fact that the first column of formatted output specifies the number of printer lines to advance. So you are holding it doubly wrong. (-: There should be a space after the 'H' denoting your Hollerith string that precedes the 'H' of your 'Hello'. Notice that IBM's program has a space between the field descriptor "14H" (14 character Hollerith string) and "PROGRAM ERROR" (13 character string). That's not just random whitespace. It's the first character of the string, it means 1 line of vertical space, and the string is actually " PROGRAM ERROR".
You can get several native versions of REXX for Linux-based operating systems and the BSDs, including ObjectREXX and Regina.
Believe it or not this operating system is very much alive and kicking in the form of z/VM 7.5 and some of those ancient rituals are still considered normal in that world ;)
Out of all mainframe OSes, VM is the most approachable imo, as long as you grasp minidisks and how s390 device addressing works, it becomes just a somewhat clunky DOS. I would also suggest checking out the 2.4 VM ADCD, it is a package with basically all the interesting software, and it is out there if you look for it.
> a somewhat clunky DOS
And the Community Edition even has a handy DIR command for you.
This document has a lot of things left to add - the machines can really be a lot more interesting. So far, I haven't figured out how to connect my real printer over the network, the other machine with shared disks but no OS, and even creating a new VM for our user. I also know there are a lot of other interesting things on the base CE image that can be super cool to show a newcomer.
It is a very cool operating system. I had the pleasure of configuring it (in it’s ibm z/VM form) from scratch a few years ago. However due to company politics it only ran for 2 years. If you are based anywhere in the US you could probably make a career out of it. If you are in Europe I don’t know if it is a wise choice. Not much z/VM there. If you now own a modern mainframe and want to run Linux workload for example I think you are better of using kvm. However if you need to run z/OS virtualised your only option is still z/VM
So much here:
Notice in EE the use of [F3] to exit as in the original CUA. As I said at https://news.ycombinator.com/item?id=50026580 .
Unix called it 'text' too. That's why the ETXTBUSY error's traditional message string is "Text file busy".
It's not losing the first character from FORMAT because of some magic line printer discard for the first character. It's losing the first character because you don't understand FORTRAN. FORMAT, as you can see in that example program, uses field descriptors to describe formats. It's losing the 'H' from 'HELLO' because that character means a 'Hollerith string' follows it, which in your case is the Mockney 'ELLO WORLD'. (-: You need an extra 'H', to start with.
In Unix terms, this is akin to the classic mistake of using printf() instead of puts() for your Hello program, and using a percent character in your string. In BASIC terms, this is PRINT USING, not PRINT. And yes, that does mean that technically you are holding it wrong. The text to write should be in the list given to WRITE, and FORMAT should just be specifying the field descriptor.
Only then do you get to the fact that the first column of formatted output specifies the number of printer lines to advance. So you are holding it doubly wrong. (-: There should be a space after the 'H' denoting your Hollerith string that precedes the 'H' of your 'Hello'. Notice that IBM's program has a space between the field descriptor "14H" (14 character Hollerith string) and "PROGRAM ERROR" (13 character string). That's not just random whitespace. It's the first character of the string, it means 1 line of vertical space, and the string is actually " PROGRAM ERROR".
You can get several native versions of REXX for Linux-based operating systems and the BSDs, including ObjectREXX and Regina.
* https://pkgsrc.se/lang/rexx-regina
* https://pkgsrc.se/lang/oorexx
* https://pkgsrc.se/lang/rexx-imc
It's 2026, and I just wrote about FORTRAN 66. Good heavens!
So many ancient weird rituals to use this thing. We've come a long way.
Believe it or not this operating system is very much alive and kicking in the form of z/VM 7.5 and some of those ancient rituals are still considered normal in that world ;)