Browse Source

v2.50

* Bug fixes
 * New compilation procedure for MVS and CMS
tags/v2.50
Jon Foster 3 years ago
parent
commit
d8d8192018
25 changed files with 219 additions and 147 deletions
  1. +1
    -2
      Makefile.in
  2. +11
    -1
      README
  3. +1
    -1
      allcms.bat
  4. +5
    -44
      allcms.exec
  5. +2
    -10
      allmvs.bat
  6. +1
    -1
      bwb_elx.c
  7. +5
    -1
      bwbasic.h
  8. +15
    -15
      bwbasic2.jcl
  9. +0
    -4
      bwbasic3.bat
  10. +20
    -0
      bwbasic3.jcl
  11. +0
    -22
      bwbasic3.m4
  12. +7
    -7
      bwbasic4.jcl
  13. +11
    -11
      bwbasic5.jcl
  14. +1
    -1
      bwbasic6.jcl
  15. +4
    -2
      bwbasic7.jcl
  16. +45
    -9
      bwbmvs.txt
  17. +10
    -0
      bwx_tty.c
  18. +1
    -1
      compile.bat
  19. +67
    -0
      compile.exec
  20. +1
    -1
      stdbwb.parm
  21. +1
    -1
      stdcomp.bat
  22. +1
    -1
      subjobs.bat
  23. +0
    -11
      zipall.bat
  24. +0
    -1
      zipcms.bat
  25. +9
    -0
      zipmvs.bat

+ 1
- 2
Makefile.in View File

@@ -101,9 +101,8 @@ distclean: clean
realclean: distclean realclean: distclean
rm -f TAGS rm -f TAGS


# Version number changed from 2.20 to 2.40 by PE
dist: $(DISTFILES) dist: $(DISTFILES)
echo bwbasic-2.40 > .fname
echo bwbasic-2.50 > .fname
rm -rf `cat .fname` rm -rf `cat .fname`
mkdir `cat .fname` mkdir `cat .fname`
ln $(DISTFILES) `cat .fname` ln $(DISTFILES) `cat .fname`


+ 11
- 1
README View File

@@ -3,7 +3,7 @@
README file for README file for




Bywater BASIC Interpreter/Shell, version 2.40
Bywater BASIC Interpreter/Shell, version 2.50
--------------------------------------------- ---------------------------------------------


Copyright (c) 1993, Ted A. Campbell Copyright (c) 1993, Ted A. Campbell
@@ -24,6 +24,9 @@
Version 2.40 modifications by Paul Edwards, Version 2.40 modifications by Paul Edwards,
26 Jan 2009 26 Jan 2009


Version 2.50 modifications by Paul Edwards,
4 June 2009







@@ -197,6 +200,13 @@ CHANGE HISTORY






CHANGES FROM 2.40 to 2.50

* Bug fixes
* New compilation procedure for MVS and CMS


CHANGES FROM 2.30 to 2.40 CHANGES FROM 2.30 to 2.40


* Bug fixes from Bill Chatfield * Bug fixes from Bill Chatfield


+ 1
- 1
allcms.bat View File

@@ -2,7 +2,7 @@ del output.txt
call zipcms call zipcms


rem for S/380 testing, use this rem for S/380 testing, use this
call runcms allcms.exec output.txt all.zip
call runcms allcms.exec output.txt all.zip bwbasic-exe.vmarc


rem for S/390 testing, use this rem for S/390 testing, use this
rem mvsendec encb all.zip all.dat rem mvsendec encb all.zip all.dat


+ 5
- 44
allcms.exec View File

@@ -17,51 +17,12 @@
-FINARGS -FINARGS




EXEC GCCE BWBASIC C &SRC (PARM STDBWB
EXEC GCCE BWB_INT C &SRC (PARM STDBWB
EXEC GCCE BWB_TBL C &SRC (PARM STDBWB
EXEC GCCE BWB_CMD C &SRC (PARM STDBWB
EXEC GCCE BWB_PRN C &SRC (PARM STDBWB
EXEC GCCE BWB_EXP C &SRC (PARM STDBWB
EXEC GCCE BWB_VAR C &SRC (PARM STDBWB
EXEC GCCE BWB_INP C &SRC (PARM STDBWB
EXEC GCCE BWB_FNC C &SRC (PARM STDBWB
EXEC GCCE BWB_CND C &SRC (PARM STDBWB
EXEC GCCE BWB_OPS C &SRC (PARM STDBWB
EXEC GCCE BWB_DIO C &SRC (PARM STDBWB
EXEC GCCE BWB_STR C &SRC (PARM STDBWB
EXEC GCCE BWB_ELX C &SRC (PARM STDBWB
EXEC GCCE BWB_MTH C &SRC (PARM STDBWB
EXEC GCCE BWB_STC C &SRC (PARM STDBWB
EXEC GCCE BWX_TTY C &SRC (PARM STDBWB
EXEC GCCE UNIXIO C &SRC (PARM STDBWB
FILEDEF INPUT TAP1 (LRECL 80 BLKSIZE 32720 RECFM FB
MVSUNZIP DD:INPUT &SRC
FILEDEF INPUT CLEAR




&STACK HT
LOAD BWBASIC (NOAUTO
INCLUDE BWB_INT (NOAUTO
INCLUDE BWB_TBL (NOAUTO
INCLUDE BWB_CMD (NOAUTO
INCLUDE BWB_PRN (NOAUTO
INCLUDE BWB_EXP (NOAUTO
INCLUDE BWB_VAR (NOAUTO
INCLUDE BWB_INP (NOAUTO
INCLUDE BWB_FNC (NOAUTO
INCLUDE BWB_CND (NOAUTO
INCLUDE BWB_OPS (NOAUTO
INCLUDE BWB_DIO (NOAUTO
INCLUDE BWB_STR (NOAUTO
INCLUDE BWB_ELX (NOAUTO
INCLUDE BWB_MTH (NOAUTO
INCLUDE BWB_STC (NOAUTO
INCLUDE BWX_TTY (NOAUTO
&STACK RT
INCLUDE UNIXIO (NOAUTO
EXEC COMPILE &SRC &EXE


GENMOD BWBASIC
COPY BWBASIC MODULE &SRC = = &EXE (REPLACE
COPY PROFILE BAS &SRC = = &EXE (REPLACE



* Quick test of bwbasic
BWBASIC "EXAMPLE BAS"
VMARC PACK * * &EXE (TAP2 BLOCK 80

+ 2
- 10
allmvs.bat View File

@@ -1,11 +1,3 @@
rem this is the name of the patch file
set bwbname=bwb1

rem rm -fr bwbasic
rem md bwbasic
rem cd bwbasic
rem unzip ..\%bwbname%
rem chmod -R 666 *
call zipall
call bwbasic3
del output.txt
call zipmvs
call subjobs call subjobs

+ 1
- 1
bwb_elx.c View File

@@ -754,7 +754,7 @@ exp_function( expression )
sizeof( struct bwb_variable ), "exp_function" )) == NULL ) sizeof( struct bwb_variable ), "exp_function" )) == NULL )
{ {
bwb_error( err_getmem ); bwb_error( err_getmem );
return NULL;
return OP_ERROR;
} }


/* assign pointers to argument stack */ /* assign pointers to argument stack */


+ 5
- 1
bwbasic.h View File

@@ -41,7 +41,7 @@


/* Version number */ /* Version number */


#define VERSION "2.40" /* Current version number */
#define VERSION "2.50" /* Current version number */


/*************************************************************** /***************************************************************


@@ -160,6 +160,10 @@
#define HAVE_SYSSTAT TRUE /* Compiler has <sys/stat.h> header */ #define HAVE_SYSSTAT TRUE /* Compiler has <sys/stat.h> header */
#endif #endif


#ifndef HAVE_MATHERR
#define HAVE_MATHERR FALSE /* Compiler doesn't call matherr */
#endif

/*************************************************************** /***************************************************************


bwbasic.h: Part I-C: Define Program Configuration bwbasic.h: Part I-C: Define Program Configuration


+ 15
- 15
bwbasic2.jcl View File

@@ -3,32 +3,32 @@
//CREATE PROC BWBPREF='BWBASIC' //CREATE PROC BWBPREF='BWBASIC'
//DELETE EXEC PGM=IEFBR14 //DELETE EXEC PGM=IEFBR14
//DD1 DD DSN=&BWBPREF..SOURCE,DISP=(MOD,DELETE), //DD1 DD DSN=&BWBPREF..SOURCE,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//DD2 DD DSN=&BWBPREF..INCLUDE,DISP=(MOD,DELETE), //DD2 DD DSN=&BWBPREF..INCLUDE,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//DD3 DD DSN=&BWBPREF..NCALIB,DISP=(MOD,DELETE), //DD3 DD DSN=&BWBPREF..NCALIB,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//DD4 DD DSN=&BWBPREF..LINKLIB,DISP=(MOD,DELETE), //DD4 DD DSN=&BWBPREF..LINKLIB,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//DD5 DD DSN=&BWBPREF..JCL,DISP=(MOD,DELETE), //DD5 DD DSN=&BWBPREF..JCL,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//* //*
//ALLOC EXEC PGM=IEFBR14 //ALLOC EXEC PGM=IEFBR14
//DD1 DD DSN=&BWBPREF..SOURCE,DISP=(,CATLG), //DD1 DD DSN=&BWBPREF..SOURCE,DISP=(,CATLG),
// DCB=(RECFM=VB,LRECL=224,BLKSIZE=9024),
// SPACE=(CYL,(7,1,10)),UNIT=SYSDA
// DCB=(RECFM=VB,LRECL=255,BLKSIZE=6144),
// SPACE=(6144,(160,160,44)),UNIT=SYSALLDA
//DD2 DD DSN=&BWBPREF..INCLUDE,DISP=(,CATLG), //DD2 DD DSN=&BWBPREF..INCLUDE,DISP=(,CATLG),
// DCB=(RECFM=VB,LRECL=224,BLKSIZE=9024),
// SPACE=(CYL,(1,1,10)),UNIT=SYSDA
// DCB=(RECFM=VB,LRECL=255,BLKSIZE=6144),
// SPACE=(6144,(22,22,44)),UNIT=SYSALLDA
//DD3 DD DSN=&BWBPREF..NCALIB,DISP=(,CATLG), //DD3 DD DSN=&BWBPREF..NCALIB,DISP=(,CATLG),
// DCB=(RECFM=U,LRECL=0,BLKSIZE=3200),
// SPACE=(CYL,(1,1,10)),UNIT=SYSDA
// DCB=(RECFM=U,LRECL=0,BLKSIZE=6144),
// SPACE=(6144,(60,60,44)),UNIT=SYSALLDA
//DD4 DD DSN=&BWBPREF..LINKLIB,DISP=(,CATLG), //DD4 DD DSN=&BWBPREF..LINKLIB,DISP=(,CATLG),
// DCB=(RECFM=U,LRECL=0,BLKSIZE=3200),
// SPACE=(CYL,(1,1,10)),UNIT=SYSDA
// DCB=(RECFM=U,LRECL=0,BLKSIZE=6144),
// SPACE=(6144,(70,70,44)),UNIT=SYSALLDA
//DD5 DD DSN=&BWBPREF..JCL,DISP=(,CATLG), //DD5 DD DSN=&BWBPREF..JCL,DISP=(,CATLG),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=9040),
// SPACE=(CYL,(1,1,20)),UNIT=SYSDA
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=6080),
// SPACE=(6080,(17,17,44)),UNIT=SYSALLDA
// PEND // PEND
//* //*
//S1 EXEC CREATE //S1 EXEC CREATE


+ 0
- 4
bwbasic3.bat View File

@@ -1,4 +0,0 @@
del allzips.txt
mvsendec encb all.zip allzips.txt
m4 bwbasic3.m4 >bwbasic3.jcl
del allzips.txt

+ 20
- 0
bwbasic3.jcl View File

@@ -0,0 +1,20 @@
//BWBGEN JOB CLASS=C,REGION=0K
//*
//TRANSFER PROC BWBPREF='BWBASIC'
//DELETE EXEC PGM=IEFBR14
//DD1 DD DSN=&BWBPREF..ALLZIPS,DISP=(MOD,DELETE),
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//*
//COPY EXEC PGM=IEBGENER
//SYSUT1 DD DSN=HERC02.IN,DISP=OLD,
// UNIT=TAPE,VOL=SER=PCTOMF,LABEL=(1,NL),
// DCB=(RECFM=U,LRECL=0,BLKSIZE=6144)
//SYSUT2 DD DSN=&BWBPREF..ALLZIPS,DISP=(,CATLG),
// SPACE=(6144,(200,200),RLSE),UNIT=SYSALLDA,
// DCB=(RECFM=U,LRECL=0,BLKSIZE=6144)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
// PEND
//*
//S1 EXEC TRANSFER
//

+ 0
- 22
bwbasic3.m4 View File

@@ -1,22 +0,0 @@
//BWBGEN JOB CLASS=C,REGION=0K
//*
//TRANSFER PROC BWBPREF='BWBASIC',PDPPREF='PDPCLIB'
//DELETE EXEC PGM=IEFBR14
//DD1 DD DSN=&BWBPREF..ALLZIPS,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
//*
//MVSENDEC EXEC PGM=MVSENDEC,PARM='decb dd:input dd:output'
//STEPLIB DD DSN=&PDPPREF..LINKLIB,DISP=SHR
//INPUT DD DUMMY
//OUTPUT DD DSN=&BWBPREF..ALLZIPS,DISP=(,CATLG),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132)
//SYSTERM DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132)
// PEND
//*
//S1 EXEC TRANSFER
//MVSENDEC.INPUT DD *
undivert(allzips.txt)/*
//

+ 7
- 7
bwbasic4.jcl View File

@@ -3,11 +3,11 @@
//CREATE EXEC PGM=IEFBR14 //CREATE EXEC PGM=IEFBR14
//DD1 DD DSN=&&ZIPS,DISP=(,PASS), //DD1 DD DSN=&&ZIPS,DISP=(,PASS),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(CYL,(20,10,20)),UNIT=SYSDA
// SPACE=(6144,(100,100,44)),UNIT=SYSALLDA
//* //*
//UNZIP1 PROC PDPPREF='PDPCLIB',BWBPREF='BWBASIC'
//MINI EXEC PGM=MVSUNZIP,PARM='dd:input dd:output binary'
//STEPLIB DD DSN=&PDPPREF..LINKLIB,DISP=SHR
//UNZIP1 PROC MINPREF='MINIZIP',BWBPREF='BWBASIC'
//MINI EXEC PGM=MINIUNZ,PARM='dd:input dd:output'
//STEPLIB DD DSN=&MINPREF..LINKLIB,DISP=SHR
//INPUT DD DSN=&BWBPREF..ALLZIPS,DISP=SHR //INPUT DD DSN=&BWBPREF..ALLZIPS,DISP=SHR
//OUTPUT DD DSN=&&ZIPS,DISP=(OLD,PASS) //OUTPUT DD DSN=&&ZIPS,DISP=(OLD,PASS)
//SYSIN DD DUMMY //SYSIN DD DUMMY
@@ -15,9 +15,9 @@
//SYSTERM DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132) //SYSTERM DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132)
// PEND // PEND
//* //*
//UNZIP2 PROC IN=,OUT=,PDPPREF='PDPCLIB',BWBPREF='BWBASIC'
//MINI EXEC PGM=MVSUNZIP,PARM='dd:input dd:output'
//STEPLIB DD DSN=&PDPPREF..LINKLIB,DISP=SHR
//UNZIP2 PROC IN=,OUT=,MINPREF='MINIZIP',BWBPREF='BWBASIC'
//MINI EXEC PGM=MINIUNZ,PARM='-a dd:input dd:output'
//STEPLIB DD DSN=&MINPREF..LINKLIB,DISP=SHR
//INPUT DD DSN=&&ZIPS(&IN),DISP=(OLD,PASS) //INPUT DD DSN=&&ZIPS(&IN),DISP=(OLD,PASS)
//OUTPUT DD DSN=&BWBPREF..&OUT,DISP=SHR //OUTPUT DD DSN=&BWBPREF..&OUT,DISP=SHR
//SYSIN DD DUMMY //SYSIN DD DUMMY


+ 11
- 11
bwbasic5.jcl View File

@@ -2,7 +2,7 @@
//* //*
//BWBCMP PROC BWBPREF='BWBASIC',MEMBER='',GCCPREF='GCC', //BWBCMP PROC BWBPREF='BWBASIC',MEMBER='',GCCPREF='GCC',
// PDPPREF='PDPCLIB', // PDPPREF='PDPCLIB',
// COS1='-w -S -ansi',
// COS1='-Os -S -ansi',
// COS2='-o dd:out -' // COS2='-o dd:out -'
//* //*
//COMP EXEC PGM=GCC, //COMP EXEC PGM=GCC,
@@ -13,24 +13,24 @@
// DD DSN=&PDPPREF..INCLUDE,DISP=SHR // DD DSN=&PDPPREF..INCLUDE,DISP=SHR
//SYSINCL DD DSN=&BWBPREF..INCLUDE,DISP=SHR,DCB=BLKSIZE=32720 //SYSINCL DD DSN=&BWBPREF..INCLUDE,DISP=SHR,DCB=BLKSIZE=32720
// DD DSN=&PDPPREF..INCLUDE,DISP=SHR // DD DSN=&PDPPREF..INCLUDE,DISP=SHR
//OUT DD DSN=&&TEMP1,DISP=(,PASS),UNIT=SYSDA,
// DCB=(LRECL=80,BLKSIZE=9040,RECFM=FB),
// SPACE=(CYL,(10,10))
//SYSPRINT DD SYSOUT=*,DCB=(LRECL=132,BLKSIZE=132)
//SYSTERM DD SYSOUT=*,DCB=(LRECL=132,BLKSIZE=132)
//OUT DD DSN=&&TEMP1,DISP=(,PASS),UNIT=SYSALLDA,
// DCB=(LRECL=80,BLKSIZE=6080,RECFM=FB),
// SPACE=(6080,(500,500))
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132)
//SYSTERM DD SYSOUT=*,DCB=(RECFM=F,LRECL=132,BLKSIZE=132)
//* //*
//ASM EXEC PGM=ASMBLR, //ASM EXEC PGM=ASMBLR,
// PARM='DECK,NOLIST', // PARM='DECK,NOLIST',
// COND=(4,LT,COMP) // COND=(4,LT,COMP)
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=&PDPPREF..MACLIB,DISP=SHR // DD DSN=&PDPPREF..MACLIB,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSPRINT DD SYSOUT=* //SYSPRINT DD SYSOUT=*
//SYSLIN DD DUMMY //SYSLIN DD DUMMY
//SYSGO DD DUMMY //SYSGO DD DUMMY
//SYSPUNCH DD DSN=&&OBJSET,UNIT=SYSDA,SPACE=(80,(240,200)),
//SYSPUNCH DD DSN=&&OBJSET,UNIT=SYSALLDA,SPACE=(80,(240,200)),
// DISP=(,PASS) // DISP=(,PASS)
//SYSIN DD DSN=&&TEMP1,DISP=(OLD,DELETE) //SYSIN DD DSN=&&TEMP1,DISP=(OLD,DELETE)
//* //*
@@ -38,7 +38,7 @@
// COND=((4,LT,COMP),(4,LT,ASM)) // COND=((4,LT,COMP),(4,LT,ASM))
//SYSLIN DD DSN=&&OBJSET,DISP=(OLD,DELETE) //SYSLIN DD DSN=&&OBJSET,DISP=(OLD,DELETE)
//SYSLMOD DD DSN=&BWBPREF..NCALIB(&MEMBER),DISP=SHR //SYSLMOD DD DSN=&BWBPREF..NCALIB(&MEMBER),DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSPRINT DD SYSOUT=* //SYSPRINT DD SYSOUT=*
// PEND // PEND
//* //*


+ 1
- 1
bwbasic6.jcl View File

@@ -1,7 +1,7 @@
//BWBGEN JOB CLASS=C,REGION=0K //BWBGEN JOB CLASS=C,REGION=0K
//LINK PROC BWBPREF='BWBASIC',PDPPREF='PDPCLIB' //LINK PROC BWBPREF='BWBASIC',PDPPREF='PDPCLIB'
//LKED EXEC PGM=IEWL,PARM='MAP,LIST,SIZE=(999424,65536)' //LKED EXEC PGM=IEWL,PARM='MAP,LIST,SIZE=(999424,65536)'
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(30,10))
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(30,10))
//SYSPRINT DD SYSOUT=* //SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=&PDPPREF..NCALIB,DISP=SHR,DCB=BLKSIZE=32760 //SYSLIB DD DSN=&PDPPREF..NCALIB,DISP=SHR,DCB=BLKSIZE=32760
// DD DSN=&BWBPREF..NCALIB,DISP=SHR // DD DSN=&BWBPREF..NCALIB,DISP=SHR


+ 4
- 2
bwbasic7.jcl View File

@@ -10,8 +10,10 @@
//* //*
//CLEAN PROC BWBPREF='BWBASIC' //CLEAN PROC BWBPREF='BWBASIC'
//DELETE EXEC PGM=IEFBR14 //DELETE EXEC PGM=IEFBR14
//DD1 DD DSN=&BWBPREF..ALLZIPS,DISP=(MOD,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(0))
//DD0 DD DSN=&BWBPREF..ALLZIPS,DISP=(MOD,DELETE),
// UNIT=SYSALLDA,SPACE=(TRK,(0))
//DD3 DD DSN=&BWBPREF..NCALIB,DISP=(MOD,DELETE),
// UNIT=SYSALLDA,SPACE=(TRK,(0))
// PEND // PEND
//* //*
//S1 EXEC RUNBW //S1 EXEC RUNBW


+ 45
- 9
bwbmvs.txt View File

@@ -1,14 +1,50 @@
BWBASIC for MVS
---------------
BWBASIC for MVS (3.8 and above) and CMS (VM/370 and above)
----------------------------------------------------------


To compile BWBASIC on MVS, run the following commands:
To compile bwbasic for MVS, you will need a suitable MVS C
compiler such as GCCMVS.


zipall
bwbasic3
subjobs
You then need to transfer all the source code to the
mainframe. zipmvs.bat may be useful for doing this, but the
process of transferring files is beyond the scope of this
document and site-specific.


after taking a look at what they do and seeing if they
are appropriate to your environment.


Or just run "allmvs" which will do all of that.
On the mainframe, modify (according to your site's
requirements), then run, the following bits of JCL:
bwbasic1.jcl
bwbasic2.jcl
bwbasic3.jcl (optional - example only)
bwbasic4.jcl (optional - example only)
bwbasic5.jcl
bwbasic6.jcl
bwbasic7.jcl


Note that the batch file "allmvs" provides an example of how
the process was automated at one site.


The end result of this process is that a BWBASIC load module
will be created in BWBASIC.LINKLIB.



Version:

bwbasic.h contains the version number, and this is displayed
when you invoke the program with no parameters.



Support:

For BWBASIC for MVS support, try here:
http://tech.groups.yahoo.com/group/hercules-os380/



CMS:

The steps for CMS are similar, except instead of running JCL,
you need to execute the "compile" exec. An example "allcms"
Windows batch file shows one way of automating this process.

+ 10
- 0
bwx_tty.c View File

@@ -378,8 +378,16 @@ bwx_shell( l )
the error message, then calls the the error message, then calls the
break_handler() routine. break_handler() routine.


Note that this function isn't supported
by all compilers (it's not part of C90).
If it exists, it's an extension in math.h
and it will be called whenever there's
a divide by zero or something like that.

***************************************************************/ ***************************************************************/


#if HAVE_MATHERR

#if ANSI_C #if ANSI_C
int int
matherr( struct exception *except ) matherr( struct exception *except )
@@ -396,6 +404,8 @@ matherr( except )
return FALSE; return FALSE;
} }


#endif

#if COMMON_CMDS #if COMMON_CMDS


/*************************************************************** /***************************************************************


+ 1
- 1
compile.bat View File

@@ -21,5 +21,5 @@ call stdcomp bwb_stc.c
call stdcomp bwx_tty.c call stdcomp bwx_tty.c
call stdcomp unixio.c call stdcomp unixio.c


gcc -o bwbasic.exe *.o
rem gcc -o bwbasic.exe *.o
rem bcc32 -ebwbasic.exe *.obj rem bcc32 -ebwbasic.exe *.obj

+ 67
- 0
compile.exec View File

@@ -0,0 +1,67 @@
* Usage - COMPILE <SRC> <EXE>

* This script compiles all the files on SRC disk (default is A)
* and copies the resultant modules to the EXE disk (default B)

&SRC = A
&EXE = B


&IF &INDEX EQ 0 &GOTO -FINARGS
&SRC = &1
&ARGS &2 &3 &4 &5 &6 &7 &8 &9

&IF &INDEX EQ 0 &GOTO -FINARGS
&EXE = &1

-FINARGS


EXEC GCCE BWBASIC C &SRC (PARM STDBWB
EXEC GCCE BWB_INT C &SRC (PARM STDBWB
EXEC GCCE BWB_TBL C &SRC (PARM STDBWB
EXEC GCCE BWB_CMD C &SRC (PARM STDBWB
EXEC GCCE BWB_PRN C &SRC (PARM STDBWB
EXEC GCCE BWB_EXP C &SRC (PARM STDBWB
EXEC GCCE BWB_VAR C &SRC (PARM STDBWB
EXEC GCCE BWB_INP C &SRC (PARM STDBWB
EXEC GCCE BWB_FNC C &SRC (PARM STDBWB
EXEC GCCE BWB_CND C &SRC (PARM STDBWB
EXEC GCCE BWB_OPS C &SRC (PARM STDBWB
EXEC GCCE BWB_DIO C &SRC (PARM STDBWB
EXEC GCCE BWB_STR C &SRC (PARM STDBWB
EXEC GCCE BWB_ELX C &SRC (PARM STDBWB
EXEC GCCE BWB_MTH C &SRC (PARM STDBWB
EXEC GCCE BWB_STC C &SRC (PARM STDBWB
EXEC GCCE BWX_TTY C &SRC (PARM STDBWB
EXEC GCCE UNIXIO C &SRC (PARM STDBWB


&STACK HT
LOAD BWBASIC (NOAUTO
INCLUDE BWB_INT (NOAUTO
INCLUDE BWB_TBL (NOAUTO
INCLUDE BWB_CMD (NOAUTO
INCLUDE BWB_PRN (NOAUTO
INCLUDE BWB_EXP (NOAUTO
INCLUDE BWB_VAR (NOAUTO
INCLUDE BWB_INP (NOAUTO
INCLUDE BWB_FNC (NOAUTO
INCLUDE BWB_CND (NOAUTO
INCLUDE BWB_OPS (NOAUTO
INCLUDE BWB_DIO (NOAUTO
INCLUDE BWB_STR (NOAUTO
INCLUDE BWB_ELX (NOAUTO
INCLUDE BWB_MTH (NOAUTO
INCLUDE BWB_STC (NOAUTO
INCLUDE BWX_TTY (NOAUTO
&STACK RT
INCLUDE UNIXIO (NOAUTO

GENMOD BWBASIC
COPY BWBASIC MODULE &SRC = = &EXE (REPLACE
COPY PROFILE BAS &SRC = = &EXE (REPLACE


* Quick test of bwbasic
BWBASIC "EXAMPLE BAS"

+ 1
- 1
stdbwb.parm View File

@@ -1 +1 @@
-w -S -ansi -o dd:out -
-Os -S -ansi -o dd:out -

+ 1
- 1
stdcomp.bat View File

@@ -1,3 +1,3 @@
rem gcc -w -c -ansi -I . %1 %2 %3 %4 %5 %6 %7 %8 %9 rem gcc -w -c -ansi -I . %1 %2 %3 %4 %5 %6 %7 %8 %9
rem bcc32 -w- -A -c -I. %1 %2 %3 %4 %5 %6 %7 %8 %9 rem bcc32 -w- -A -c -I. %1 %2 %3 %4 %5 %6 %7 %8 %9
gccmvs -w -S -ansi -nostdinc -I ../pdos/pdpclib -I . %1 %2 %3 %4 %5 %6 %7 %8 %9
gccmvs -Os -S -ansi -nostdinc -I ../pdos/pdpclib -I . %1 %2 %3 %4 %5 %6 %7 %8 %9

+ 1
- 1
subjobs.bat View File

@@ -6,4 +6,4 @@ type bwbasic4.jcl >>alljcl.jcl
type bwbasic5.jcl >>alljcl.jcl type bwbasic5.jcl >>alljcl.jcl
type bwbasic6.jcl >>alljcl.jcl type bwbasic6.jcl >>alljcl.jcl
type bwbasic7.jcl >>alljcl.jcl type bwbasic7.jcl >>alljcl.jcl
call runmvs alljcl.jcl alljcl.txt
call runmvs alljcl.jcl output.txt all.zip

+ 0
- 11
zipall.bat View File

@@ -1,11 +0,0 @@
del bwbinc.zip
del bwbsrc.zip
del bwbjcl.zip
del all.zip
del bwbasic3.jcl
del alljcl.jcl
del alljcl.txt
zip -0 -X -ll -j bwbsrc.zip *.c
zip -0 -X -ll -j bwbinc.zip *.h
zip -0 -X -ll -j bwbjcl.zip *.jcl README COPYING
zip -0 -X all *.zip

+ 0
- 1
zipcms.bat View File

@@ -1,3 +1,2 @@
del all.zip del all.zip
del alljcl.txt
zip -0 -X -ll -j all *.c *.h *.exec *.bas *.parm README COPYING zip -0 -X -ll -j all *.c *.h *.exec *.bas *.parm README COPYING

+ 9
- 0
zipmvs.bat View File

@@ -0,0 +1,9 @@
del bwbinc.zip
del bwbsrc.zip
del bwbjcl.zip
del all.zip
del alljcl.jcl
zip -9 -X -ll -j bwbsrc.zip *.c
zip -9 -X -ll -j bwbinc.zip *.h
zip -9 -X -ll -j bwbjcl.zip *.jcl README COPYING
zip -9 -X all *.zip

Loading…
Cancel
Save