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 ZIPfile 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 the
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 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.zip
file from the location above to the machine where you run Hercules. - Unzip
BREXX.zip
. - Copy the
gccbrx.cckd
file to the folder where you keep your emulated DASD files. - Log on to
MAINT
on VM. - Upload the
maintc.direct
file to VM, add it to yourUSER DIRECT
file, and install the updated directory (but see the VM/CE and SixPack note above). - Upload the
newbrexx.exec
file toMAINT
on VM (typically to theMAINT 5E5
disk) asNEWBREXX EXEC
. - Re-save the
GCCLIB
saved segment:DEFINE STORAGE 16M
IPL CMS
ACCESS (NOPROF
GCCSEG F20000 GCCLIB
- Results:
GCCSEG COMPLETE
.
- Run
NEWBREXX
to install all the bREXX files (including some on the Y-disk). - Re-save the CMS saved systemt to update the shared Y-stat:
DEFINE STORAGE 16M
IPL 190 CLEAR
SAVESYS CMS
- Results:
SYSTEM SAVED
.
- Download the pre-built release
BREXX.zip
file from the location above to the machine where you run Hercules. - Unzip
BREXX.zip
. - Log on to
MAINT
on VM. - Upload
brexxbin.vmarc
to 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 TEXT
file to the Y-disk:ACCESS 19E Y
- `COPY BREXX TEXT A = = Y (OLDD REPLACE'.
ACCESS 19E Y/S
- Upload
brexxsrc.vmarc
to VM in binary, fixed format, record length 80 asBREXXSRC VMARC
. - Extract the archive of
HELP
files:VMARC UNPK BREXXSRC VMARC A BRXHELP VMARC A (OLDDATE
. - Extract the
HELP
files:VMARC UNPK BRXHELP VMARC A * * A (OLDDATE
. - Move the
* HELPREXX
files to theHELP
disk (typicallyMAINT 19D
). - Merge the
HELP HELPTASK
file into the HELP HELPTASKfile on the
HELP` disk. - Re-save the CMS saved systemt to update the shared Y-stat:
DEFINE STORAGE 16M
IPL 190 CLEAR
SAVESYS CMS
- Results:
SYSTEM SAVED
.
- Download the pre-built release
BREXX.zip
file from the location above to the machine where you run Hercules. - Unzip
BREXX.zip
. - Log on to
MAINT
on VM. - At the Hercules console, attach the binary tape:
devinit 480
unzip_dir/brexxbin.aws
./ATTACH 480 TO MAINT AS 181
- At the Hercules console, attach the source tape:
devinit 481
unzip_dir/brexxsrc.aws
./ATTACH 481 TO MAINT AS 182
- Load the pre-built bREXX file:
TAPE LOAD BREXX TEXT A
. - Move the
BREXX TEXT
file to the Y-disk:ACCESS 19E Y
- `COPY BREXX TEXT A = = Y (OLDD REPLACE'.
ACCESS 19E Y/S
- Load the archive of
HELP
files:TAPE LOAD BRXHELP VMARC A (TAP2
. - Detach the tape drives:
DETACH 181-182
. - Extract the
HELP
files:VMARC UNPK BRXHELP VMARC A * * A (OLDDATE
. - Move the
* HELPREXX
files to theHELP
disk (typicallyMAINT 19D
). - Merge the
HELP HELPTASK
file into the HELP HELPTASKfile on the
HELP` disk. - Detach the tape drives:
DETACH 181-182
. - Re-save the CMS saved systemt to update the shared Y-stat:
DEFINE STORAGE 16M
IPL 190 CLEAR
SAVESYS CMS
- Results:
SYSTEM SAVED
.
- Download the pre-built release
BREXX.zip
file from the location above to the machine where you run Hercules. - Unzip
BREXX.zip
. - Log on to
MAINTC
on VM. - Upload
brexxbin.vmarc
toMAINTC 191
in binary, fixed format, record length 80 asBREXXBIN VMARC
. - Upload
brexxsrc.vmarc
toMAINTC 191
in binary, fixed format, record length 80 asBREXXSRC
VMARC`. - 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
- Log on to
MAINT
on VM. - Run
NEWBREXX
to install all the bREXX files (including some on the Y-disk). - Re-save the CMS saved systemt to update the shared Y-stat:
DEFINE STORAGE 16M
IPL 190 CLEAR
SAVESYS CMS
- Results:
SYSTEM SAVED
.
- Download the pre-built release
BREXX.zip
file from the location above to the machine where you run Hercules. - Unzip
BREXX.zip
. - Log on to
MAINTC
on VM. - At the Hercules console, attach the source tape:
devinit 480
unzip_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, attach the binary tape:
devinit 480
unzip_dir/brexxbin.aws
.
- Detach the tape drive:
DETACH 181
. - Compile bREXX from source:
BRXBUILD
- Build the bREXX file:
BRXGEN
- Log on to
MAINT
on VM. - Run
NEWBREXX
to install all the bREXX files (including some on the Y-disk). - Re-save the CMS saved systemt to update the shared Y-stat:
DEFINE STORAGE 16M
IPL 190 CLEAR
SAVESYS 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 [email protected]. 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.