How would I port ooRexx to VM or z/VM or any platform that supports 32-bit C and C++?
Well, there's no simple answer to this...if there was, it would have been done already. The hardest part might be finding a 32-bit capable CMS...but don't worry, 31-bit should work just fine :-)
The ooRexx code is mostly portable, with all of the parts that need to be platform-specific isolated from the rest of the code. If you check out the ooRexx code tree, you'll find that there's a directory called "kernel/platform". The platform directory has a subdirectory for windows and another for unix. That should be all of the code that will need to be ported to the new environment and should give you a roadmap on what needs to be ported. I think if I were doing the work, I'd start with porting the code to the CMS Posix services using the unix code as a starting point. That should enable you to get a standalone ooRexx executable that will function on CMS. The tricky bit is getting this code to function as a direct replacement for the CMS implementation and work with all of the tools written for Rexx. That will require figuring out how to intercept the various APIs (the EXEC command, EXECCCOMM, etc.) and doing a translation step. Some tools might end up being lost causes, as there are some that tinker directly with the Rexx internal control blocks.
I recommend subscribing to the oorexx-devel mailing list and asking lots of questions.