This is a port of Vasilis Vlachoudis's bREXX for the CMS system of VM/370.
See Vlachoudis's original README.md for his explanation of bREXX, as it was originally written for MS-DOS, and as it grew to support Unix, Linux, and MS-Windows.
The source code for VM/370 CMS bREXX is available from RossPatterson/CMS-370-BREXX on GitHub. You can download that and build it yourself, on CMS, using the tools it includes.
Pre-built releases of VM/370 CMS bREXX are available at the Releases page at that same GitHub repository. You can download the release ZIP file and install it without having to compile anything.
There are several different ways you can install bREXX for VM/370 CMS. They
all produce the same results, it's just a matter of your preference as to how
you do it. For turnkey users (e.g.,
VM/370 Community Edition or
VM/370 SixPack 1.3),
the recommended process is to replace the GCCBRX DASD volume.
If you're running VM/370 under the Hercules S/370 emulator, you can add the
gccbrx.cckd emulated disk file to your configuration, add the statements in
MAINTC DIRECT to your CP directory source (typically USER DIRECT on the
MAINT 191 minidisk), and update your Hercules configuration to make it
available to CP.
Note that if you already have GCCLIB for CMS and bREXX installed on your VM/370
system (e.g., you're running a turnkey system, or you've previously installed
bREXX this way), you probably already have a GCCBRX DASD volume and the
associated directory and configuration statements in place. Assuming you
haven't modified any minidisks on the GCCBRX volume, you can replace it with
the one from the new release.
- Download the pre-built release
BREXX.zipfile from the location above to the machine where you run Hercules. - Unzip
BREXX.zip. - Copy the
gccbrx.cckdfile to the folder where you keep your emulated DASD files. - Log on to
MAINTon VM. - Upload the
maintc.directfile to VM, add it to yourUSER DIRECTfile, and install the updated directory (but see the VM/CE and SixPack note above). - Upload the
newbrexx.execfile toMAINTon VM (typically to theMAINT 5E5disk) asNEWBREXX EXEC. - Re-save the
GCCLIBsaved segment:DEFINE STORAGE 16MIPL CMSACCESS (NOPROFGCCSEG F20000 GCCLIB- Results:
GCCSEG COMPLETE. IPL CMS
- Install all the bREXX files (including some on the Y-disk):
NEWBREXX - Re-save the CMS saved system to update the shared Y-stat:
IPL 190 CLEARSAVESYS CMS- Results:
SYSTEM SAVED.
- Download the pre-built release
BREXX.zipfile from the location above to the machine where you run Hercules. - Unzip
BREXX.zip. - Log on to
MAINTon VM. - Upload
brexxbin.vmarcto VM in binary, fixed format, record length 80 asBREXXBIN VMARC. - Extract the pre-built bREXX file:
VMARC UNPK BREXXBIN VMARC A BREXX TEXT A (OLDDATE. - Move the
BREXX TEXTfile to the Y-disk:ACCESS 19E YCOPY BREXX TEXT A = = Y (OLDDATE REPLACEACCESS 19E Y/S
- Upload
brexxsrc.vmarcto VM in binary, fixed format, record length 80 asBREXXSRC VMARC. - Extract the archive of
HELPfiles:VMARC UNPK BREXXSRC VMARC A BRXHELP VMARC A (OLDDATE. - Extract the
HELPfiles:VMARC UNPK BRXHELP VMARC A * * A (OLDDATE. - Move the
* HELPREXXfiles to theHELPdisk (typicallyMAINT 19D). - Merge the
REXX HELPTASKfile into the HELP HELPTASKfile on theHELP` disk. - Re-save the CMS saved system to update the shared Y-stat:
DEFINE STORAGE 16MIPL 190 CLEARSAVESYS CMS- Results:
SYSTEM SAVED.
- Download the pre-built release
BREXX.zipfile from the location above to the machine where you run Hercules. - Unzip
BREXX.zip. - Log on to
MAINTon VM. - At the Hercules console, attach the binary tape:
devinit 480unzip_dir/brexxbin.aws./ATTACH 480 TO MAINT AS 181
- At the Hercules console, attach the source tape:
devinit 481unzip_dir/brexxsrc.aws./ATTACH 481 TO MAINT AS 182
- Load the pre-built bREXX file:
TAPE LOAD BREXX TEXT A. - Move the
BREXX TEXTfile to the Y-disk:ACCESS 19E YCOPY BREXX TEXT A = = Y (OLDDATE REPLACEACCESS 19E Y/S
- Load the archive of
HELPfiles:TAPE LOAD BRXHELP VMARC A (TAP2. - Detach the tape drives:
DETACH 181-182. - Extract the
HELPfiles:VMARC UNPK BRXHELP VMARC A * * A (OLDDATE. - Move the
* HELPREXXfiles to theHELPdisk (typicallyMAINT 19D). - Merge the
REXX HELPTASKfile into the HELP HELPTASKfile on theHELP` disk. - Re-save the CMS saved system to update the shared Y-stat:
DEFINE STORAGE 16MIPL 190 CLEARSAVESYS CMS- Results:
SYSTEM SAVED.
- Download the pre-built release
BREXX.zipfile from the location above to the machine where you run Hercules. - Unzip
BREXX.zip. - Log on to
MAINTCon VM. - Upload
brexxbin.vmarctoMAINTC 191in binary, fixed format, record length 80 asBREXXBIN VMARC. - Upload
brexxsrc.vmarctoMAINTC 191in binary, fixed format, record length 80 asBREXXSRCVMARC`. - Extract the loader exec:
VMARC UNPK BREXXSRC VMARC A BRXLOAD EXEC A (OLDDATE. - Run the loader exec:
BRXLOAD VMARC - Compile bREXX from source:
BRXBUILD - Build the bREXX file:
BRXGEN - Send the bREXX deployment EXEC to MAINT:
SPOOL PUNCH MAINTDISK DUMP NEWBREXX EXEC- Log on to
MAINTon VM. - Install all the bREXX files (including some on the Y-disk):
DISK LOADNEWBREXX- Re-save the CMS saved system to update the shared Y-stat:
DEFINE STORAGE 16MIPL 190 CLEARSAVESYS CMS- Results:
SYSTEM SAVED.
- Download the pre-built release
BREXX.zipfile from the location above to the machine where you run Hercules. - Unzip
BREXX.zip. - Log on to
MAINTCon VM. - At the Hercules console, mount and attach the source tape:
devinit 480unzip_dir/brexxsrc.aws./ATTACH 480 TO MAINTC AS 181
- Extract the loader exec:
TAPE LOAD BRXLOAD EXEC A. - Rewind the tape:
TAPE REW. - Run the loader exec:
BRXLOAD TAPE - When prompted to, at the Hercules console, mount the binary tape:
devinit 480unzip_dir/brexxbin.aws. - Detach the tape drive:
DETACH 181. - Compile bREXX from source:
BRXBUILD - Build the bREXX file:
BRXGEN - Send the bREXX deployment EXEC to MAINT:
SPOOL PUNCH MAINTDISK DUMP NEWBREXX EXEC- Log on to
MAINTon VM. - Install all the bREXX files (including some on the Y-disk):
DISK LOADNEWBREXX- Re-save the CMS saved system to update the shared Y-stat:
DEFINE STORAGE 16MIPL 190 CLEARSAVESYS CMS- Results:
SYSTEM SAVED.
Vasilis Vlachoudis's original license for bREXX said:
How much does it cost ~~~~~~~~~~~~~~~~~~~~~ This is a FREEWARE program, as long as it is used for NON COMMERCIAL purpose. But any generous contribution is well accepted :) to help keeping this project alive. It is still FREEWARE if it is included as a part (macro language) for another FREEWARE product. For commercial use the registration fee is $50 (for version 2.0 and above). Furthermore, if you want to include it as a macro language in one of your shareware/commercial program you have to contact the author Vasilis.Vlachoudis@cern.ch. For more informations please contact me by e-mail on one of the above addresses.
Vlachoudis subsequently re-released it under version 2 of the GNU Public License (see vlachoudis/brexx on GitHub).
Several other programmers ported Vlachoudis's GPL'ed version of bREXX to VM/370, and dedicated their work to the public domain (see LICENSE and waiverform.txt.