Go to:  Davar site entry | Site contents | Site index | Personal computer | 4DOS | Text bottom

FORMLIB  4DOS  Batch  Command

TR batch command sets ON or OFF value to environment variable TR.  Normally every batch command starts with "@ECHO  OFF" to suppress batch tracing.  When it is necessary to release tracing, OFF can be changed temporarily to ON, and then back to OFF, after debugging is over.  This process quickly becomes annoying when several linked batch commands are involved in processing.  It is sufficient, though, to start every batch command with "@ECHO  %TR%", which gives the ability to switch tracing ON/OFF easily by entering TR command with appropriate parameter.

Notes: AUTOEXEC.BAT should contain "SET TR=OFF" command.
"Beep" symbol 7 (bullet) is displayed below as "".


  FORMLIB  Command         Debugging command

:  FORMLIB  Form Library Partition Selection Parametrs  10/15/1996-08/27/1999
:  --------------------------------------------------------------------------
:  Mirrors logic of FORMLIB CList with which it should always be in sync
:  Copyright (C) 1996-1999 by Vladimir Veytsel
:
:  1.  Abbreviated partition spec (E.g.:  PTFORMLIB)      |  Required DOS envi-
:     "?"    - Display FORMLIB batch command text -       |  ronment variables:
:            list of preset library abbreviations       |
:            (Equivalent:  "/")                          |  %SYSUID%=
:                                                       |  %NM%    =
:  Interpretation of a 2-char lib name abbrev prefix:    |  %ST%    =
:                                                       |
:    Group abbreviation:    Lib abbr:     PC directory:    +--------------------
:
:    P  &SYSUID..PGMR      D  DOCUM     %zz%\DOCUM    - Personal develop libs:
:    U  &SYSUID..USER      T  CList     %zz%\CList
:                          X  REXX      %zz%\REXX       PGMR - Programmr tools
:                          N  PANEL     %zz%\PANEL      USER - Client projects
:                          M  MESSAGE   %zz%\MESSAGE
:                          S  SKELETN   %zz%\SKELETN
:                          J  JOB       %zz%\JOB        PC top level directory
:                          R  PROC      %zz%\PROC       depends on libr group:
:                          C  CONTROL   %zz%\CONTROL
:                          A  ASMB      %zz%\ASMB       %zz%=%NM% 4 PGMR group
:                          P  PLI       %zz%\PLI              ^^    ^^^^
:                          O  COBOL     %zz%\COBOL      %zz%=%ST% 4 USER group
:                          G  DEBUG     %zz%\DEBUG            ^^    ^^^^
:
:    Q  &SYSUID..QMF       R  PROC      %zz%\QPROC    - QMF/SPUFI devl libs
:                          F  FORM      %zz%\FORM
:                          Q  QUERY     %zz%\QUERY
:                          E  REPORT    %zz%\REPORT
:
:    Client production libraries (prefix is an undivisible 2-letter code)
:
:    D  DCMDLPLX.PROD      J  JCL       %ST%\JOB      - Job streams
:    D  NABG.NY            R  PROCLIB   %ST%\PROC     - Cataloged procs
:    D  NABG.NY            C  CTLCARD   %ST%\CONTROL  - Control operators
:    D  CCMNYPLX.PROD      O  SOURCE    %ST%\COBOL    - COBOL source
:    D  NABG.ACC           Y  COPYLIB   %ST%\COPY     - COBOL copybooks
:
:  Two DOS environment variables MFL and PCF are set by FORMLIB command:
:
:    Abbreviation   MFL - MF Library partition    PCF - PC File
:    ------------   ----------------------------  ------------------
:    PJCRETLIB      %SYSUID%.PGMR.JOB(CRETLIB)    %NM%\CRETLIB
:    UODATEOUT      %SYSUID%.USER.COBOL(DATEOUT)  %ST%\COBOL\DATEOUT
:    FORMLIB        %SYSUID%.PGMR.CList(FORMLIB)  %NM%\CList\FORMLIB
:
:    Note:  If library specification is invalid,
:             then both MFL amd PCF are set to empty
:
@ECHO %TR%

 IF %1.==/.  .OR.  %1.==?.  (LIST %_BATCHNAME ^ QUIT)

:Set Initial Value for Partition Selection Parameter ------------------------

 SET PART=%@UPPER[%1]

 SET Inv=

:Get Gr, L, P and GL Abbreviated Values and Clear Output Variables ----------

 IFF %@LEN[%1] LT 3 THEN
     @ECHO:
     @ECHO %S%%R%Abbreviated specification %M%%@SUBSTR[%@UPPER[%1],0,2] %R%is shorter than a minimum of %M%3 %R%characters%D%
     SET MFL=
     SET PCF=
     QUIT
 ENDIFF

 SET Gr=%@UPPER[%@SUBSTR[%1,0,1]]
 SET L=%@UPPER[%@SUBSTR[%1,1,1]]
 SET GL=%Gr%%L%

 SET P=%@UPPER[%@SUBSTR[%1,2]]

 SET LIB=
 SET PCD=

:Form IDENT Parameter for Abbreviated Specification ------------------------

 SWITCH %Gr%
        CASE U .OR.  P .OR.  Q
             SET IDENT=%SYSUID%  ^:  Personal development libraries
        CASE D                   ^:  Client   proDuction  libraries
        DEFAULT
             SET Inv=G
 ENDSWITCH

:Form GROUP and LIB Parameters for Client/Program Devl Libraries -----------

 IFF %@INDEX['UP',%Gr%] GE 0 THEN
     IFF %Gr%.==P.  THEN
         SET GROUP=PGMR         ^:  Standard programmer group
     ELSE
         SET GROUP=USER         ^:  Standard client     group
     ENDIFF
     SWITCH %L%
            CASE D
                 SET LIB=DOCUM  ^:  Standard libraries
            CASE T
                 SET LIB=CList
            CASE X
                 SET LIB=REXX
            CASE N
                 SET LIB=PANEL
            CASE M
                 SET LIB=MESSAGE
            CASE S
                 SET LIB=SKELETN
            CASE J
                 SET LIB=JOB
            CASE R
                 SET LIB=PROC
            CASE C
                 SET LIB=CONTROL
            CASE A
                 SET LIB=ASMB
            CASE P
                 SET LIB=PLI
            CASE O
                 SET LIB=COBOL
            CASE G
                 SET LIB=DEBUG
     ENDSWITCH
 ENDIFF

:Form GROUP and LIB Parameters for QMF/SPUFI Devl Libraries ----------------

 IFF %Gr%.==Q.  THEN
     SET GROUP=QMF              ^:  QMF/SPUFI group
     SWITCH %L%
            CASE R
                 SET LIB=PROC   ^:  QMF/SPUFI libraries
            CASE F
                 SET LIB=FORM
            CASE Q
                 SET LIB=QUERY
            CASE E
                 SET LIB=REPORT
     ENDSWITCH
 ENDIFF

:Form GROUP and LIB Parameter for Client Production Libraries --------------

 IFF %Gr%.==D.  THEN
     SWITCH %L%
            CASE J
                 SET IDENT=DCMDLPLX
                 SET GROUP=PROD
                 SET   LIB=JCL       ^:  Job streams
                 SET   PCD=JOB
            CASE R
                 SET IDENT=NABG
                 SET GROUP=NY
                 SET   LIB=PROCLIB   ^:  Cataloged procs
                 SET   PCD=PROC
            CASE C
                 SET IDENT=NABG
                 SET GROUP=NY
                 SET   LIB=CTLCARD   ^:  Control operators
                 SET   PCD=CONTROL
            CASE O
                 SET IDENT=CCMNYPLX
                 SET GROUP=PROD
                 SET   LIB=SOURCE    ^:  COBOL source
                 SET   PCD=COBOL
            CASE Y
                 SET IDENT=NABG
                 SET GROUP=ACC
                 SET   LIB=COPYLIB   ^:  COBOL copybooks
                 SET   PCD=COPY
     ENDSWITCH
 ENDIFF

 IF %LIB%.==.  SET Inv=L%Inv%

:Process Default CList Library ---------------------------------------------

 IFF NOT %Inv%.==.  .AND.  %@LEN[%PART%] LT 9 THEN
     IFF EXIST %NM%\CList\%PART% THEN
         SET  IDENT=%SYSUID%
         SET  GROUP=PGMR
         SET    LIB=CList
         SET    Inv=
         GOTO Finish
     ENDIFF
 ENDIFF

:Process Invalid GL Specification ------------------------------------------

 IFF %@INDEX[%Inv%,G] GE 0 THEN
     @ECHO:
     @ECHO %S%%R%Abbreviation %M%%GL% %R%contains invalid %M%group %R%specification %M%%Gr%%D%
     GOTO Display
 ENDIFF

 IFF %@INDEX[%Inv%,L] GE 0 THEN
     @ECHO:
     @ECHO %S%%R%Abbreviation %M%%GL% %R%contains invalid %M%library %R%specification %M%%L%%D%
     GOTO Display
 ENDIFF

:Form PART Parameter for Abbreviated Specification -------------------------

 SET PART=%P%
 GOTO Finish

:Display Libray Abbreviations ----------------------------------------------

 SET FLb=
 INKEY /K"[Enter] [Esc]" %W%Hit %C%[Enter] %W%to %Y%display %W%valid library abbreviations or %C%[Esc] %W%to %Y%quit%D% %%FLb
 IF "%FLb%" NE "@28" (SET FLb= ^ GOTO Finish)
 SET FLb=
 LIST %DOS%:\BATCH\FORMLIB.BTM
 QUIT

:Finish Command ------------------------------------------------------------

 SET MFL=%IDENT%.%GROUP%.%LIB%(%PART%)
 IF  %GROUP%.==PGMR.  SET zz=%NM%
 IF  %GROUP%.==USER.  SET zz=%ST%
 IF  %GROUP%.==QMF.   SET zz=%NM%
 IF  %GROUP%.==QMF.  .AND.  %LIB%.==PROC.  SET LIB=QPROC
 IF  %Gr%.==D.  SET zz=%ST%    ^:   ----          ^----
 IF  NOT %PCD%.==.  SET LIB=%PCD%
 SET PCF=%DOS%:\%zz%\%LIB%\%PART%

 SET Gr=
 SET L=
 SET P=
 SET GL=

 SET IDENT=
 SET GROUP=
 SET LIB=
 SET PCD=
 SET zz=

 IFF NOT %Inv%.==.  THEN
     SET MFL=
     SET PCF=
     SET Inv=
 ENDIFF
  


FORMLIB  Debugging  Command        Source command

:  ZFORMLIB  Test FORMLIB Command                   07/20/1999-08/18/1999
:  ----------------------------------------------------------------------
:  Mirrors logic of ZFORMLIB CList with which it should always be in sync
:
:  1.  Parameter for a specific FORMLIB test
:     (Default:   Run an exhaustive test)
:
@ECHO %TR%

 IFF NOT %1.==.  THEN
     @ECHO:
     @ECHO FORMLIB Specific Test   Parm=%1  SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
     @ECHO:
     SET ZFL=%1 ^ GOSUB Test
     QUIT
 ENDIFF

 CLS
@ECHO FORMLIB Parameter Validation Test   SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
@ECHO:

 SET ZFL=          ^ GOSUB Test
 SET ZFL=1         ^ GOSUB Test
 SET ZFL=12        ^ GOSUB Test
 SET ZFL=PZPZ      ^ GOSUB Test
 SET ZFL=YTYT      ^ GOSUB Test

@ECHO:
 PAUSE Hit [Enter] to continue or [Ctrl]+[C] and [Y] to cancel execution...

 CLS
@ECHO FORMLIB PGMR Group Exhaustive Test   SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
@ECHO:

 SET ZFL=PDDOCUM   ^ GOSUB Test
 SET ZFL=PTCList   ^ GOSUB Test
 SET ZFL=PXREXX    ^ GOSUB Test
 SET ZFL=PNPANEL   ^ GOSUB Test
 SET ZFL=PMMESSAGE ^ GOSUB Test
 SET ZFL=PSSKELETN ^ GOSUB Test
 SET ZFL=PJJOB     ^ GOSUB Test
 SET ZFL=PRPROC    ^ GOSUB Test
 SET ZFL=PCCONTROL ^ GOSUB Test
 SET ZFL=PAASMB    ^ GOSUB Test
 SET ZFL=PPPLI     ^ GOSUB Test
 SET ZFL=POCOBOL   ^ GOSUB Test
 SET ZFL=PGDEBUG   ^ GOSUB Test
 SET ZFL=FORMLIB   ^ GOSUB Test

@ECHO:
 PAUSE Hit [Enter] to continue or [Ctrl]+[C] and [Y] to cancel execution...

 CLS
@ECHO FORMLIB USER Group Exhaustive Test   SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
@ECHO:

 SET ZFL=UDDOCUM   ^ GOSUB Test
 SET ZFL=UTCList   ^ GOSUB Test
 SET ZFL=UXREXX    ^ GOSUB Test
 SET ZFL=UNPANEL   ^ GOSUB Test
 SET ZFL=UMMESSAGE ^ GOSUB Test
 SET ZFL=USSKELETN ^ GOSUB Test
 SET ZFL=UJJOB     ^ GOSUB Test
 SET ZFL=URPROC    ^ GOSUB Test
 SET ZFL=UCCONTROL ^ GOSUB Test
 SET ZFL=UAASMB    ^ GOSUB Test
 SET ZFL=UPPLI     ^ GOSUB Test
 SET ZFL=UOCOBOL   ^ GOSUB Test
 SET ZFL=UGDEBUG   ^ GOSUB Test

@ECHO:
 PAUSE Hit [Enter] to continue or [Ctrl]+[C] and [Y] to cancel execution...

 CLS
@ECHO FORMLIB QMF Group Exhaustive Test   SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
@ECHO:

 SET ZFL=QRPROC    ^ GOSUB Test
 SET ZFL=QFFORM    ^ GOSUB Test
 SET ZFL=QQQUERY   ^ GOSUB Test
 SET ZFL=QEREPORT  ^ GOSUB Test

 PAUSE Hit [Enter] to continue or [Ctrl]+[C] and [Y] to cancel execution...

 CLS
@ECHO FORMLIB Production Group Exhaustive Test   SYSUID=%SYSUID%  NM=%NM%  ST=%ST%
@ECHO:

 SET ZFL=DJJOB     ^ GOSUB Test
 SET ZFL=DRPROC    ^ GOSUB Test
 SET ZFL=DCCONTROL ^ GOSUB Test
 SET ZFL=DOCOBOL   ^ GOSUB Test
 SET ZFL=DYCOPY    ^ GOSUB Test

 QUIT

:Test

 CALL FORMLIB %ZFL%
 IFF NOT %MFL%.==.  THEN
     @ECHO %ZFL% - MFL=%MFL%  PCF=%PCF%
 ENDIFF

 RETURN
  

View [and save] FORMLIB.BTM text   (Use [Back] button or [Alt]+[CL] to return here)
Go to:  Davar site entry | Site contents | Site index | Personal computer | 4DOS | Text top