248 lines
14 KiB
Batchfile
248 lines
14 KiB
Batchfile
echo off
|
|
rem Batch File to Compile, Link, Bind and Run the SORTDEMO demonstration
|
|
rem program. This batch file can be run from your DOS prompt.
|
|
rem v 1.2.3
|
|
cls
|
|
echo .
|
|
echo *------------------* SORTDEMO Demonstration Program *-----------------*
|
|
echo * *
|
|
echo * This batch stream demonstrates how a program can be "bound" to *
|
|
echo * enable it to run on DOS and OS/2. *
|
|
echo * *
|
|
echo * Bound programs are linked as OS/2 programs prior to binding. *
|
|
echo * Therefore, in order for this batch stream to operate it is *
|
|
echo * necessary to have the OS/2 version of the compiler available as *
|
|
echo * well as the DOS version. This will ensure that the files needed for *
|
|
echo * linking an OS/2 program, and for binding, are all loaded. *
|
|
echo * *
|
|
echo * Please ensure that you have followed the installation instructions *
|
|
echo * for COBOL, using SETUP to load the DOS compiler, the OS/2 compiler *
|
|
echo * and the Microsoft Utilities, including the OS/2 specific files. *
|
|
echo * *
|
|
echo * Press Ctrl+C to exit if you have NOT properly installed your *
|
|
echo * COBOL Compiler, or copied the required files. *
|
|
echo * *
|
|
echo *---------------------------------------------------------------------*
|
|
echo .
|
|
pause
|
|
cls
|
|
echo .
|
|
echo *------------------* SORTDEMO demonstration program *-----------------*
|
|
echo * *
|
|
echo * SORTDEMO must be "bound" before it will run under DOS, since it *
|
|
echo * contains calls to OS/2 API functions. *
|
|
echo * *
|
|
echo * To bind the program, the files API.LIB and OS2.LIB must be copied *
|
|
echo * into the current directory. They will have been loaded by SETUP *
|
|
echo * into the directory you selected for the Microsoft Utilities. *
|
|
echo * *
|
|
echo * Also, BIND.EXE must be available in the current directory or in a *
|
|
echo * directory on the DOS PATH. *
|
|
echo * *
|
|
echo * Press Ctrl+C to exit if these files are not present. *
|
|
echo * *
|
|
echo *---------------------------------------------------------------------*
|
|
echo .
|
|
pause
|
|
cls
|
|
if %COBDIR%. == . goto errcob
|
|
if not exist API.LIB goto errpre
|
|
if not exist OS2.LIB goto errpre
|
|
if not exist %cobdir%\CBLBIND.NOT goto erros2
|
|
if not exist %cobdir%\CBLBIND.LIB goto erros2
|
|
if %1. == lcobol. if not exist %cobdir%\LCOBOL.LIB goto erros2
|
|
if %1. == LCOBOL. if not exist %cobdir%\LCOBOL.LIB goto erros2
|
|
if %1. == . if not exist %cobdir%\COBLIB.LIB goto erros2
|
|
if %1. == . if not exist %cobdir%\COBLIB.DLE goto erros2
|
|
if not exist SORTDEMO.CBL goto errtic
|
|
:cobret
|
|
if %1. == animate. goto doanim
|
|
if %1. == ANIMATE. goto doanim
|
|
cls
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Compiling the SORTDEMO demonstration program *
|
|
echo *---------------------------------------------------------------------*
|
|
echo on
|
|
COBOL SORTDEMO.CBL OPTSPEED NOTRICKLE ;
|
|
echo off
|
|
if errorlevel 1 goto nocob
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Compilation of SORTDEMO has completed successfully *
|
|
echo *---------------------------------------------------------------------*
|
|
pause
|
|
cls
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Linking the SORTDEMO program *
|
|
echo * *
|
|
echo * Note that the program is linked to run under OS/2. The binding *
|
|
echo * process which follows the link enables it to be run under DOS as *
|
|
echo * well as OS/2. *
|
|
echo * *
|
|
if %1. == lcobol. goto ltxtl
|
|
if %1. == LCOBOL. goto ltxtl
|
|
echo * The program will be linked to run with the shared run-time, *
|
|
echo * COBLIB. The EXE file created requires the file COBLIB.DLE to be *
|
|
echo * present in the COBOL system directories in order to operate. *
|
|
echo * *
|
|
echo * Since the shared run-time handles all memory under DOS, we need *
|
|
echo * to free some back to allow the API calls to work. Setting *
|
|
echo * environment variable COBPOOL will do this. *
|
|
echo * *
|
|
echo * Restart this batch file with the parameter, LCOBOL, to see the *
|
|
echo * program statically linked so that it is independent of any other *
|
|
echo * files at run-time. (i.e. enter SRTDEM LCOBOL) *
|
|
goto ltxte
|
|
:ltxtl
|
|
echo * The program will be statically linked. That is, the COBOL run-time *
|
|
echo * support required for this program is linked into the EXE file *
|
|
echo * making it independent of any other files at run-time. *
|
|
:ltxte
|
|
echo * *
|
|
echo *---------------------------------------------------------------------*
|
|
if %1. == lcobol. goto linkl
|
|
if %1. == LCOBOL. goto linkl
|
|
:linkc
|
|
echo on
|
|
LINK SORTDEMO/NOD,,,COBLIB+OS2 ;
|
|
SET COBPOOL=10
|
|
echo off
|
|
goto linke
|
|
:linkl
|
|
echo on
|
|
LINK SORTDEMO/NOD,,,LCOBOL+OS2 ;
|
|
echo off
|
|
:linke
|
|
if errorlevel == 1 goto linkerr
|
|
if not exist SORTDEMO.EXE goto linkerr
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Linking of SORTDEMO has completed successfully *
|
|
echo *---------------------------------------------------------------------*
|
|
pause
|
|
cls
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Binding the SORTDEMO program *
|
|
echo *---------------------------------------------------------------------*
|
|
echo on
|
|
BIND SORTDEMO %cobdir%\CBLBIND.LIB OS2.LIB -N @%cobdir%\CBLBIND.NOT
|
|
echo off
|
|
if errorlevel == 1 goto binderr
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Binding of SORTDEMO has completed successfully *
|
|
echo *---------------------------------------------------------------------*
|
|
pause
|
|
cls
|
|
echo *---------------------------------------------------------------------*
|
|
echo * Running SORTDEMO *
|
|
echo *---------------------------------------------------------------------*
|
|
echo on
|
|
SORTDEMO
|
|
echo off
|
|
if errorlevel == 1 goto runerr
|
|
goto endsort
|
|
:nocob
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * An error occured while compiling SORTDEMO. Please ensure that you *
|
|
echo * have installed all the necessary files. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:linkerr
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * An error occured while linking. Please ensure that you have *
|
|
echo * installed all the necessary files. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:binderr
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * An error occured during the Bind process. Please ensure that you *
|
|
echo * have installed all the necessary files and that these files are in *
|
|
echo * the current working directory or accessible via the DOS PATH, as *
|
|
echo * appropriate. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:runerr
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * An error occured while running. Please ensure that you have *
|
|
echo * correctly installed the COBOL system. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:doanim
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * The SORTDEMO program cannot be Animated on DOS. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:errpre
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * One or both of the files API.LIB and OS2.LIB are not in the *
|
|
echo * current directory. The bind process will not work correctly without *
|
|
echo * these files. Please copy them into the current directory before *
|
|
echo * restarting SRTDEM. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
if not exist %cobdir%\CBLBIND.NOT goto erros2
|
|
if not exist %cobdir%\CBLBIND.LIB goto erros2
|
|
if %1. == LCOBOL. if not exist %cobdir%\LCOBOL.LIB goto erros2
|
|
if %1. == lcobol. if not exist %cobdir%\LCOBOL.LIB goto erros2
|
|
if %1. == . if not exist %cobdir%\COBLIB.LIB goto erros2
|
|
if %1. == . if not exist %cobdir%\COBLIB.DLE goto erros2
|
|
if not exist SORTDEMO.CBL goto errtic
|
|
goto endsort
|
|
:erros2
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
if %1. == LCOBOL. goto los2l
|
|
if %1. == lcobol. goto los2l
|
|
echo * Some or all of the files CBLBIND.LIB, CBLBIND.NOT, COBLIB.LIB and *
|
|
echo * COBLIB.DLL which are loaded by SETUP with the OS/2 compiler, are *
|
|
goto los2e
|
|
:los2l
|
|
echo * Some or all of the files CBLBIND.LIB, CBLBIND.NOT, and *
|
|
echo * LCOBOL.LIB which are loaded by SETUP with the OS/2 compiler, are *
|
|
:los2e
|
|
echo * not in the COBOL system directory (identified by the environment *
|
|
echo * variable, COBDIR). The link and bind processes in this batch stream *
|
|
echo * will not work correctly without these files. Please load them into *
|
|
echo * the COBOL system directory before restarting SRTDEM. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
if not exist SORTDEMO.CBL goto errtic
|
|
goto endsort
|
|
:errcob
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * The COBDIR environment variable is not set. Please ensure that you *
|
|
echo * have installed the COBOL system correctly. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
goto endsort
|
|
:errtic
|
|
echo ***********************************************************************
|
|
echo * *** ERROR *** *
|
|
echo * *
|
|
echo * The SORTDEMO program is not in the current directory. Either change *
|
|
echo * directory or copy SORTDEMO.CBL from your issue disks. *
|
|
echo * *
|
|
echo ***********************************************************************
|
|
:endsort
|
|
echo *---------------------------------------------------------------------*
|
|
echo * End of SORTDEMO Demonstration *
|
|
echo *---------------------------------------------------------------------*
|