Trailing-Edge - PDP-10 Archives - decuslib20-10 - decus/20-184/2022.user_conf
There are no other files named 2022.user_conf in the archive.

                      22222      0000      22222     22222
                     2     2    0    0    2     2   2     2
                          22   0      0        22        22
                        22     0      0      22        22
                      22       0      0    22        22
                     2          0    0    2         2
                     2222222     0000     2222222   2222222

                A TOPS-20 command parser for System 1022

                            David L. Wodelet
                           Strathcona County
                            Alberta, Canada


        2022 is a TOPS-20 front-end command parser for the  System  1022
        data base management system from Software House.  Through use of
        TOPS-20's COMND% jsys 2022 provides escape recognition  and  the
        "?"  help  feature  for  nearly  all  1022  commands.   The only
        commands NOT implemented in 2022 are those commands specific  to
        TOPS-10  or  those  used  exclusively  within  PL1022  or report
        programs.  This session will cover the following topics:

                            I.  Introduction

                           II.  2022 / 1022 Differences

                          III.  Ordering 2022 (and what you get)

                           IV.  Modifying 2022

                            V.  Known Bugs
                                                                  Page 2


        Strathcona County is located just east of the city  of  Edmonton
        in  Alberta  Canada.   We  use  1022/1032 on our DECSYSTEM-2060,
        MicroVAX-II and  VAX  8600  to  manage  data  for  our  PAYROLL,
        2022 was written to make the learning and use of 1022 easier for
        our  user  community.   TOPS-20  style  command  recognition and
        completion provided users with a command environment  that  they
        were  already  familiar  with.  The "?" help facility helps them
        through  unfamiliar  commands   and   the   "<escape>"   command
        completion not only reduces keystrokes but helps reduce spelling
        mistakes as well.

        2022 is written entirely in MACRO and uses TOPS-20's COMND% jsys
        to  parse  each 1022 command.  The parsed command is then passed
        to 1022 via the DBEXEC interface from Software House.   We  have
        been  using  2022 at our site since May 1985 and any performance
        differences that do exist between 1022 and 2022  have  not  been
        noticable  to  our users.  For batch processing we encourage our
        users to still use 1022 to avoid the overhead of  fork  creation
        and double parsing of commands.

        II.0  2022 / 1022 DIFFERENCES

        2022 was designed to be as identical to 1022 as possible however
        some differences do exist:

        1.  Nearly all 1022 command can be used  in  2022.   Only  those
            commands  specific  to  TOPS-10  or  those  used exclusively
            within PL1022 or report programs have NOT been  implemented.
            Since  PL1022  and  REPORT programs are usually put in a DMC
            file and not directly entered at the  terminal,  absence  of
            these  commands  from  2022 has not been a serious drawback.
            Commands NOT implemented in 2022 include:

                           ON CHANGE
                           ON END
                           ON START

            If you need to use an unimplemented command you  can  always
            use  "2022>1022 <any_1022_command>"  OR "2022>1022 <return>"
            to bypass 2022 command parsing.  Typing "2022>1022 <return>"
            enters  the  1022  command environment.  It is useful if you
            have a number of unimplemented  commands  to  enter.   Then,
            when  you  want  to return to 2022, just use the 1022 "HOST"
                                                                  Page 3

        2.  2022 has some extra commands that don't exist in 1022.  They

            A)  1022    <optional_1022_command>

                Use this command to bypass the 2022 command  parser  and
                execute  any 1022 command.  This may be necessary if you
                want to execute a 1022 command not implemented  in  2022
                (eg:   use the @= construct in the middle of a command).
                If you simply type "2022>1022 <return>"  then  you  will
                enter the 1022 command environment - all command parsing
                is  done  by  1022.   To  return  to  the  2022  command
                environment use the 1022 "HOST" command.

            B)  2022    <optional_2022_command>

                Use this command to enter the  2022  sub-command  level.
                This  level  contains a number of commands which control
                various features of the 2022 program.  "QUIT" will  exit
                this sub-command level.

               (a)  TAKE (commands from) <file>
                    The file may contain 1022 commands as well as  those
                    commands specific to 2022.

               (b)  SET {NO} ECHO (when taking command files)
                    Controls the ECHOing of command  during  a  TAKE  or
                    when  processing  commands  from  the rescan buffer.
                    The rescan buffer is automatically  set  up  by  the
                    EXEC when you run the 2022 program.  For example, if
                    you enter:

                         @2022 OPEN FOO.DMS,FIND ALL,TYPE ALL

                    The entire command line  is  placed  in  the  rescan
                    buffer  by  the  EXEC  program.   2022  will process
                    everything on this  line  after  the  "@2022".   The
                    default when 2022 starts up is NO ECHO.

               (c)  SET {NO} DISPLAY (of commands sent to 1022)
                    Setting DISPLAY causes 2022 to  display  the  actual
                    command passed to 1022.  The command sent usually is
                    an expanded form of what you typed in.  For  example
                    if you entered "2022>INF B" the command passed would
                    be "INFORM BASE".  The DISPLAY command  is  normally
                    only  used for debugging purposes.  The default when
                    2022 starts up is NO DISPLAY.

               (d)  INFORMATION (about program)
                    Gives  information  about  the  status  of   various
                    switches and features of 2022.

               (e)  QUIT (current command level)
                    Ends the "2022>>" sub-command level and returns  you
                    to "2022>".
                                                                  Page 4

               (f)  EXIT (and return to monitor)
                    Ends 2022 and returns you to the EXEC ("@" prompt)

               (g)  HELP
                    Types the file HLP:2022.HLP to give help on 2022.

        3.  Unlike 1022, 2022 processes commands in  the  rescan  buffer
            prior to accepting input from the terminal.  For example:

                      @2022  OPEN XXXX.DMS,INF STRUCTURE
                      @2022  OPEN TTT,FIND ALL,TYPE ALL

            Notice that each complete command, except the last, must  be
            separated  by  a  comma (",").  Once all the commands in the
            rescan buffer are processed 2022 will exit.  If an error  is
            found  while  parsing  the  commands  then processing of the
            rescan buffer is aborted.

        4.  Since "?", "<escape>",  and  ^F  are  action  characters  in
            TOPS-20 they can only be included in data to be sent to 1022
            if you prefix them with a ^V.   Control-V  is  the  standard
            "accept-next-character-as-is" prefix in TOPS-20.

        5.  1022 allows you to enter many commands on a single  line  so
            long  as  each  command  is  terminated with a period (".").
            2022 does NOT allow this functionality for most commands.

        6.  A  "!"  in  1022  causes  it  to  ignore  text   until   the
            end-of-line.   2022,  because it uses TOPS-20's COMND% jsys,
            treats a "!" differently.  A "!" will cause 2022  to  ignore
            text until the next "!" or the end-of-line - whichever comes
            first.  Therefore in 2022 you may want to use use a  ";"  in
            place  of 1022's "!".  If you want to include a ";" as input
            for a 1022 command you must prefix it with ^V otherwise  all
            text from the ";" to end of line will be ignored.

        7.  The 1022 "@<file>" and "@=<variable-name> constructs take on
            their  1022  meaning only if "@" is the FIRST character of a
            command line.  If the "@" is used any other place then it is
            interpreted  as  the  standard  TOPS-20 "@<file>" construct.
            You must use the "2022>1022" command  if  you  want  to  use
            1022's "@" construct somewhere else in the line.

        8.  The 1022 "SET PROMPT" command does NOT  change  the  "2022>"
            command  prompt.   There is currently no way to ask 1022 for
            this information.

        9.  Where a keyword is unambiguous you don't have to worry about
            expanding  it  to  the  minimum  abbreviation that 1022 will
            accept since 2022 will do that for you.  For example, if you
            enter  "I B" 2022 will be passed to DBEXEC as "INFORM BASE".
            However the minimum abbreviation 1022 will accept is "I BAS"
            even  though "BASE" is the only INFORM keyword starting with
            a "B".
                                                                  Page 5

       10.  When there is  only  one  keyword  possible  for  a  command
            hitting  the  escape will get that keyword.  For example, in
            the "IGNORE DAMAGE"  command  DAMAGE  is  the  only  keyword
            possible  so  typing  "IG<escape><escape>"  is  all  that is
            needed to complete the command.

       11.  The 2022 EDIT, USE and @ commands will  all  save  the  file
            specifications  of the last file used - just like the EXEC's
            EDIT command does.  This speeds up the EDIT, USE, EDIT,  USE
            cycle  in developing a new DMC.  To re-use the previous file
            just follow EDIT, USE or @ with the  <return-key>.   If  you
            want  to  see  what the saved file specs are then follow the
            command with two <escapes>.


        You can order 2022 by calling  the  DECUS  order  department  at
        (617)480-3419.   The cost is $45.00 for DECUS members and $49.00
        for non-members.  Shipment and handling is $2.00.  The tape  you
        receive should contain the following files:



        2022.BWR           -a  list  of  known  but  currently   unfixed
                            problems  with 2022.  Most of these are with
                            the 1022 DBEXEC interface which  2022  makes
                            heavy use of.

        2022.HLP           -the on-line  help  file  used  by  2022.EXE.
                            This  file  must be copied to a directory on
                            the HLP:  logical search chain.
                                                                  Page 6

        2022.MAC           -source file for 2022.  To assemble it please
                            read  the  instructions  at the beginning of
                            the file.

        2022.READ_ME_FIRST -contains information about  installing  2022
                            on your system.

        2022.REL_*         -the RELocatable files for different versions
                            of   1022.   They  were  produced  from  the
                            2022.MAC on this  tape  by  using  different
                            assembly  time  switches.  They are provided
                            for your convenience but, if you desire, you
                            may  recreate  these  REL files by following
                            the instructions given at the  beginning  of
                            2022.MAC.   Here  is  an  example  of how to
                            create 2022.EXE from one of the supplied REL
                                @RENAME 2022.REL_117B (TO) 2022.REL
                                @LOAD 2022.REL
                                @SAVE <usually-in-same-area-as-1022.EXE>
                            For the LOAD to work you  must  insure  that
                            MLIB.REL  (supplied  on  this  tape)  can be
                            found on DSK:  and that the correct  version
                            of  HR1022.REL and HL1022.REL (supplied with
                            1022 from Software House) can  be  found  on

        2022.RNH           -RUNOFF source file for producing 2022.HLP

        2022.USER_CONF     -Notes from the 2022  session  given  at  the
                            1986 1022/1032 Users Conference.

        MLIB.0             -used by MLIB.CMD to produce MLIB.UNV

        MLIB.CMD           -assembles MLIB.MAC to produce  MLIB.REL  and

        MLIB.MAC           -source file for MLIB.REL and MLIB.UNV

        MLIB.REL           -contains subroutines used by 2022

        MLIB.UNV           -contains definitions  required  to  assemble

        The rest of the files on tape are NOT required  by  2022.   They
        are  programs developed at Strathcona County that we think other
        sites may find useful as well.

        FILCMP.MAC         -A file compare program similar to  Digital's
                            FILCOM.   However, it differs in that FILCMP
                            is a native TOPS-20 program using the COMND%
                            jsys  to  parse  commands  and  the extended
                            instruction   set   to   do   the   compare.
                                                                  Page 7

                            Consequently it's about 8 to 10 times faster
                            than Digital's FILCOM.  FILCMP also has  the
                            ability  to  use the output from the COMPARE
                            command  to  update  another   file.    This
                            function   is  useful  for  re-adding  local
                            patches to new versions of software.

        PHOTO.MAC          -An enhanced version  of  the  popular  PHOTO
                            program.   This rewrite has given PHOTO much
                            more functionality.  For example  it  has  a
                            REPLAY command that allow a photo session to
                            be "replayed" at  various  speeds  with  all
                            escape  sequences  acted on instead of being
                            translated to printable ascii characters.

        IV.0  MODIFYING 2022

        Before assembling 2022 you must insure that the following  files
        are located on the proper devices:

                MLIB.REL, MLIB.UNV      -must be found on DSK:
                MONSYM.UNV, MACSYM.UNV  -must be found on SYS:
                HR1022.REL, HL1022.REL  -must be found on SYS:

        HL1022.REL is only required for the MC.CET routine to handle  ^E
        interrupts.   Since  MC.CET  may  not  be  available  in pre-116
        version of HL1022 don't worry if LINK can't find it  since  2022
        will still run without it.

        Once your logical names are set up  properly  you  can  assemble
        2022  for  the  latest  version  of  1022  it  supports with the
        following commands:

                @LOAD/COMP 2022.MAC
                @SAVE <usually-in-same-directory-as-1022.EXE>

        To assemble 2022 for a different version of 1022 other than  the
        latest  use  the  following commands.  This example shows how to
        assemble 2022 for version 116B of 1022:

                @COPY TTY: 2022.16B
                VMINOR==2       ;"A"=1, "B"=2, etc...
                @LOAD/COMP 2022.16B+2022.MAC
                @SAVE <usually-in-the-same-directory-as-1022.EXE>

        2022 has only been tested with 1022 versions 116B and up.   2022
        will  probably  still  LINK  and  run  with earlier versions but
        earlier versions may not have the MC.CET ^E support  routine  in
        HL1022.REL.   Also  any 1022 commands that were new to 116B will
        still show up in the "?"  help  feature  even  though  they  are
        invalid for the earlier versions.
                                                                  Page 8

        You are free to distribute 2022 to other sites as  long  as  you
        distribute  it  in  its  complete form - just as you should have
        received it.  Nothing is worse than getting an  incomplete  copy
        that  won't  run  or  even reassemble for one reason or another.
        Any patches that you have made to 2022 should be distributed  as
        separate  files  or  save-sets on the tape.  You may wish to use
        the FILCMP program to extract your local changes to 2022:


        Now if another site wants to incorporate your changes  into  the
        original version of 2022.MAC all they need to do is:

             FILCMP>UPDATE 2022.MAC (using changes in) 2022.CHANGES

        V.0  KNOWN BUGS

        Since 2022 is NOT a product of Software House the only  problems
        you should report to Software House are those you discover to be
        within the DBEXEC or 1022M.EXE interface.   All  other  problems
        with  2022  should be reported to the following address.  If you
        have a solution please send that along as well.  We will do  our
        best  to  quickly  get  the  problem  fixed  and have an updated
        version available through DECUS.

                Strathcona County
                2001 Sherwood Drive
                Sherwood Park           Attn: Dave Wodelet
                Alberta, Canada               (403)464-8282
                T8A 3W7

        The following problems are with the DBEXEC interface supplied by
        Software  House.   2022  makes heavy use of this interface so is
        consequently impacted by these problems as well.  Software House
        has  been  notified  about  all  of them so hopefully they'll be
        fixed in future releases.  These  problems  exist  for  versions
        116B  through  117B(200) of 1022 but may exist for other verions
        as well.

        1.  SYSTIME does not get updated by each call  to  DBEXEC.   And
            since  1022  will  not  allow  2022  to  update  this system
            variable it will remain  set  to  the  time  that  2022  was

        2.  The 1022 "SET PROMPT" command does NOT  change  the  "2022>"
            command  prompt.   There is currently no way to ask 1022 for
            this information.

        3.  Once "#T" is used through DBEXEC there is no way to turn  it

            2022>file type foo.dmc.1
                                                                  Page 9

            LET SYSALCMSG = 1.
            LET SYSCASE = 1.

            2022>use foO.DMC.1
            2022>use (command file) foO.DMC.1
            2022>#t ? USE
              or confirm with carriage return
            2022>#t usE (command file) foO.DMC.1
            LET SYSALCMSG = 1.
            LET SYSCASE = 1.

            2022>use (command file) foO.DMC.1
            LET SYSALCMSG = 1.
            LET SYSCASE = 1.

            2022>exIT (from 1022)


        4.  Using "REPORT START" ....  "REPORT END" through  DBEXEC  can
            make output from the FIND command disappear:

            2022>OPEN FOO
            2022>FIND ALL
               (((everything displays ok here)))
            2022>REPORT START
            2022>REPORT END
            2022>FIND ALL
              (((nothing displays here)))
            2022>I B
              (((nothing displays here)))
            2022>FIND ALL
             (((things back to normal now)))

        5.  1022 has some problems handling data set descriptors if  the
            descriptor  has  logical  names  or file generation numbers.
            For example:


                This problem is a "feature" of  1022  so  there  are
                currently no plans to fix it.

            @DIR FOO.*

                2022 version 117A(1)-2
            2022>OPEN FOO
            2022>I B
            TODO in FOO.DMS     ! is set #1  <=
                                                                 Page 10

            2022>DBSET FOO.DMS
            2022>DBSET FOO.DMS.2
            ? (CS81) Invalid dataset specified
             DBSET FOO.DMS.2
            2022>DBSET DSK:FOO.DMS
            ? (CS81) Invalid dataset specified
             DBSET DSK:FOO.DMS
            ? (CS81) Invalid dataset specified
            2022>I B
            TODO in FOO.DMS     ! is set #1  <=

            2022>OPEN DSK:FOO.DMS.2
            2022>I B
            TODO in DSK:FOO.DMS.2       ! is set #1  <=
            2022>DBSET FOO.DMS
            2022>DBSET FOO.DMS.2
            2022>DBSET DSK:FOO.DMS.2
            ? (CS81) Invalid dataset specified
            2022>I B
            TODO in DSK:FOO.DMS.2       ! is set #1  <=

        6.  There is a problem with DBEXEC if you use  a  DMC  that  has
            errors in it.  In certain cases after reporting the error it
            returns to "* (PL)" level instead of the "*" command level:

            @TY FOO.DMC.1
            PL1022 START.
            PL1022 START.
            System 1022A 117A(215)-2-preliminary

            [.37]* USE FOO
            ? (CS146) Unterminated REPORT or PL1022 segment ends command file

            [.15]* EXIT

                2022 version 117A(4)-2
                [use HOST to return to 2022]
            [.27]* USE FOO
            [.01]* (PL) EXIT
            Terminating PL1022 or REPORT
            [.02]* EXIT


        7.  Errors in a DMC file can cause problems if you use  the  DMC
            through the DBEXEC interface:
                                                                 Page 11

            @;The file USE-PROBLEM.DMC has a mistake in it which causes
            @;it to skip the "PL1022 END" in the file - this causes
            @;problems if you're using the DBEXEC interface but not with
            @;standalone 1022
            OPEN FOO.
            PL1022 START.
            FIND ALL.
            REPORT START.
            SECTION INITIAL.
            SECTION GETREC.
                GETREC DONE.
            SECTION HEADING.
            SECTION PRINT.
            SECTION FINAL.
            PL1022 END.
            REPORT END.
                2022 version 117A(20)-2
            2022>1022                   !enter DBEXEC
                [type "HOST" to return to 2022]
            [.21]* USE USE-PROBLEM.DMC
            ? (CS154) Outside PL1022 segment terminates in a REPORT
             PL1022 END
            [.54]* (PL) !notice we are still at the "PL1022" level so
            [.08]* (PL) !the command file has not been completely
            [.04]* (PL) !aborted. Typing "PL1022 END" will abort it
            [.04]* (PL) PL1022 END.
            ? (CS76) Errors seen, PL1022 or REPORT execution stopped
             PL1022 END.
            [.04]* !Depending on what errors are in the DMC it is also
            [.04]* !possible to have it still left at the "(R)" level
            [.04]* !instead of "(PL)" level. In other situations it was
            [.04]* !possible to be nested a number of "(R)" or "(PL)"
            [.04]* !levels so more that one "PL1022 END" or "REPORT
            [.04]* !END" command needed to be given before the DMC was
            [.04]* !completely aborted
            [.10]* Q

            System 1022A 117A(333)-2
            [.30]* USE USE-PROBLEM.DMC
            ? (CS154) Outside PL1022 segment terminates in a REPORT
             PL1022 END
            ? (CS146) Unterminated REPORT or PL1022 segment ends command file

            [.39]* !Notice that the command file is now completely
            [.04]* !aborted. Also notice that the last error message
            [.04]* !displayed here did NOT come out when the DMC was
            [.04]* !USEd under DBEXEC
            [.01]* Q
                                                                 Page 12


        8.  When a text literal spans the line boundary  DBEXEC  adds  a
            "." to the end of the incomplete literal.  For example:

            2022>TYPE DESC
            THIS IS A TEXT ITEM
            2022>CHANGE DESC 'THIS IS A TEST
            2022>TYPE DESC      !***notice the "." at the end of line
            THIS IS A TEST  .
            2022>CHANGE DESC 'THIS IS A TEST'
            2022>TYPE DESC
            THIS IS A TEST