    INTRODUCTION

         DATAENTRY is a generalized data entry computer program on the  
         PDP-11 Computer. It permits the user to enter one item or field 
         of information at a time, prompting the user for each entry. 
         DATAENTRY can do some error checking: field length, that 
         numeric fields contain only digits, and actual values, where
         only certain values are allowed.

         Each field, record type, and error checking specifications for
         a particular application must be set up by a programmer type of 
         person.  This person must use the editor to create a file,  
         called the application file, which will give directions to the 
         DATAENENTRY program for a specific application.  When  
         DATAENTRY is run, it will ask for the name of this application 
         and read the file, checking its syntax.  It will then
         ask for the name of the output file, and then 
         begins prompting the user for input fields.

   For more information type:

   HELP DATAENTRY OPTION       for info on the user options
   HELP DATAENTRY NOTES        for vital info needed prior to run
   HELP DATAENTRY EXAMPLE      for examples of run and application file
   HELP DATAENTRY APPLICATION  for info on application file structure
2 APPLICATION
    APPLICATION FILE:

         The APPLICATION file has up to FIVE sections.  They are: 
         1) HEADER, 2) DATA, 3) OUTPUT, 4) TYPE 5) END .  The HEADER  
         section is used for information which does not change very 
         much, or not al all.  The DATA section is used for the entry of 
         changing information.  The OUTPUT section generates data  
         records at the end of the DATA section, after the question of 
         correctness is asked.  The TYPE section is  optional.  The TYPE 
         section is used to group and/or link together various fields 
         in a specific card type so a repeating type can be used by
         the data entry user.

         See the paragraph on NOTES before data entry is attempted.

    For further information, type:

    HELP DATAENTRY APPLICATION HEADER    for HEADER format info
    HELP DATAENTRY APPLICATION DATA      for DATA format info
    HELP DATAENTRY APPLICATION OUTPUT    for OUTPUT format info
    HELP DATAENTRY APPLICATION TYPE      for TYPE format info
    HELP DATAENTRY APPLICATION END       for END format info
3 HEADER
 #DATA
3 DATA

         HEADER SECTION (optional)  (DATA section is required):

              1) Record 1 starting in column 1   HEADER

              2) Records following are described below:

                  col 1-3   field number between 1-999 (in ascending order)
                            (field numbers need not be sequential, e.g, you
                             can skip field numbers by 2, 3, 5, 10, etc.)

                  col 4-:   prompt message for user (to first colon)

                  : to :    FORMAT number between colons as shown below:

                  0 = constant (see below for constant definition).

                  +1 to +20 = numeric of 1 to 20 digits EXACTLY.

                  Z1 to Z20 = numeric of 1 to 20 digits VARIABLE ZERO FILL.

                  -1 to -80 = alpha of EXACTLY 1 to 80 characters.

                  ?1 to ?80 = VARIABLE alpha blank fill of length of 1 to 80.


                  If there are NO checks or the record is NOT a constant, then 
                  begin a new record.  If a constant or data checks exist, 
                  then enter the checks or constant after the ":" following 
                  the FORMAT specification as shown below:

                  If FORMAT = 0 (constant), then all data following is the 
                  constant.

                  If FORMAT = 1 to 20 (Z or +), then data is in groups of two, 
                  eg C1 C2    C3 C4 ... etc, where C1 C2 C3 C4 ... is the same 
                  number of  characters as the format number, and the data 
                  entered is  checked as a range between groups of C1 C2 
                  ...etc as such:
                  C1 .le. data entered .le. C2 .or. C3 .le. data entered .le C3

                  If FORMAT = 1 to 80 (? or -), then data is in single groups 
                  of the same number of characters as the format, C1 C2 C3 ... 
                  etc, and the data is checked as such:
                  C1 .eq. data entered .or. C2 .eq. data entered .or. C3 ...
         DATA SECTION:

              1)  Record 1 required to have starting in column 1  DATA

              2)  All following records are exactly the same as described in 
                  the HEADER section.

3 OUTPUT
         OUTPUT SECTION:

              1)  Record 1 required to have starting in column 1  OUTPUT

              2)  The following describe OUTPUT records generated by the 
                  program.  Each record has the following format:

                  KGROUP,FLD1,COL1,FLD2,COL2,...,FLDk,COLk

                  where:

                  KGROUP = number of FLD,COL groups in the same record
                  FLD    = the field number given in the HEADER or DATA 
                  section.
                  COL    = the starting column number of the output data.
                           (the length is defined by the format given above)

                  There may be up 500 total FLD,COL groups for the entire 
                  output section.  Each OUTPUT record produces one record of 
                  output.

3 TYPE
         TYPE SECTION:  (optional)

              1)  Record 1 required to have starting in column 1   TYPE

              2)  The following describe TYPE records.  Each record has the 
                  following format:

                  TYPE,NUMBER,FLD1,FLD2,...FLDN
                     or
                  TYPE,LINK

                  where:

                  TYPE OR LINK   = 1 character TYPE id 

                  NUMBER = number of fileds following (must start in column 3)
                           followed by a comma.

                  FLD    = the field numbers belonging to this TYPE, separated 
                            by commas.

3 END
         END:     Required to end the last section, starting in column 1   END
2 OPTIONS
    USER OPTIONS:

  There are four user required options to be answered prior to running
  the program.  They are:

        1) Name of output file
        2) OK question option
        3) Auto carriage return option
        4) Form or Random option

  For 1), the user must enter a valid file name for the PDP-11.
  That file will contain all data outputted by the program.
  To append on an existing file, place the switch "/AP" after 
  the file name, e.g., FILENAME.VER/AP

  For 2), a "Y" or no response by the user indicates that a question
  will be asked at the end of a set of inputs (record or type) asking
  if all the data entered is OK; if not, then repeat the set.  A "N"
  answer indicates no OK message to be asked, just write out the data.

  For 3), a "Y" or no response by the user indicates that a carriage
  return will be done if the entire field is inputted (filled).  A "N"
  answer indicates a carriage return must be user activated, even if the
  entire field is entered.

  For 4), a "Y" or no response by the user indicates that a form
  (for TYPE) or random accessing (for non TYPE) will be used.  A "N"
  indicates serial processing only.
2 NOTES
         NOTES:

              1)  HEADER fields, when inputted, do not force out an  
                  output record while DATA fields do.

              2)  An @ or ^Z entered in the DATA section generates 
                  OUTPUT records.

              3)  An @ or ^Z entered in the HEADER section stops program.

              4)  When in RANDOM mode, the first @ or ^Z generates  
                  OUTPUT records if any DATA fields were entered, the 
                  second @ or ^Z finishes the program.

              5)  BLANK, when entered as a single character, is a valid 
                  entry which blanks the entire field.

              6)  A ! entered as an entry will blank the current plus  
                  all following fields.

              7)  When TYPE is used as a section, the user enters a type 
                  code.  When that type is finished, data is outputted  
                  by using the OUTPUT section definitions of DATA fields 
                  The TYPE then repeats until @ or ^Z entered.  As in  
                  Random mode, the first @ or ^Z generates output (if  
                  any data entered) plus prompts for a new type.
                  The second @ or ^Z stops the program. 

              8)  <CARRAGE RETURN> alone (not to confuse BLANK) repeats 
                  the last entry.

              9)  An <ESCAPE KEY> will back up to the previous field. 
                  This enables a user to correct errors after a <RETURN>.

              10) If all entries in an OUTPUT line are HEADER information, 
                  then the OUTPUT line will never be outputted.

              11) If the word SQUEEZE is entered in front of the first 
                  section (either HEADER or DATA), then all blanks will 
                  fe removed from the output records.  If a blank is 
                  required, enter a $, which will be replaced by a blank 
                  after all blanks are removed.

              12) If no curser control is desired, use OTHER as input 
                  terminal type.

              13) Form mode is used, if:
                  1---There exists a TYPE section in the application
                  2---No TYPE section is longer than 20 fields
                  3---User chooses FORM option in run.

              14) Do not use "?", ".", or "=" in prompts, for they
                  are special terminator symbols in the program.

              15) VERY IMPORTANT: BLANKS ARE TREATED AS CHARACTERS.
2 EXAMPLE
 
TYPE: HELP DATAENTRY EXAMPLE RUN       for run example
      HELP DATAENTRY EXAMPLE APPLICATION   for application file example
3 RUN
                           DATAENTRY PROGRAM EXAMPLE


                  The following is an example of a sequential run.  Lower case 
                  is user response to upper case computer prompt.


         EXAMPLE SEQUENTIAL RUN:


         RUN [50,50]DATAENTRY

         ENTER TERMINAL TYPE=                (used for curser control)

         ENTER APPLICATION NAME = applic     (or your own application file)

         OUTPUT FILE NAME = user.dat

          DO YOU WANT FORM MODE (Y N)? n    (if exist a TYPE section)
         DO YOU WANT RANDOM ACCESS(Y N)? n   (if no TYPE section exists)
         TYPE -?      ( enter TYPE if section exists)

              <HEADER PROMPTS FOLLOW.>
              <DATA PROMPTS FOLLOW UNTIL @ or ^Z ENTERED, THEN>
              <START AGAIN WITH HEADER FOLLOWED BY GROUPS OF DATA.>
              <IF AN @ or ^Z OCCURS IN A HEADER PROMPT, PROGRAM COMPLETES.>
              <IF N ANSWERED TO LAST QUESTION, THEN ONE>
              <TIME RANDOM ACCESS IS DONE UNTIL AN @ or ^Z ENTERED.>


         EXAMPLE RANDOM RUN:

         RUN [50,50]DATAENTRY

         ENTER TERMINAL TYPE=

         ENTER APPLICATION NAME = applic

         OUTPUT FILE NAME = user.dat

         DO YOU WANT RANDOM ACCESS (Y N)? y

         FIELD? 1-999
         PROMPT MESSAGE= (user response)


         Above continues until @ or ^Z entered in FIELD question, then OUTPUT
         results.  If second @ or ^Z occurs, then program is completed.
3 APPLICATION
                            APPLICATION FILE EXAMPLE


        (Note: this can be used for setting up other APPLICATION files.)



 SQUEEZE

 DATA

 001HEADER OR DATA OR OUTPUT TYPE OR END:?6:HEADERDATA  OUTPUTTYPE  END     

 002FIELD NUMBER<1-999>:Z3:001999

 003PROMPT MESSAGE:?40:

 004ENTER DASH OR QUESTION-MARK FOR STRING, PLUS OR Z FOR NUMBER:-1:-?+Z

 005NUMBER OF CHARACTERS IN FORMAT<0-80>:Z2:0080

 006ENTER CHECK FIELDS:?80:

 007COLON IS USED HERE AS A CONSTANT:0::

 OUTPUT

 1,1,1

 7,2,1,3,4,7,44,4,45,5,46,7,48,6,49

 END



        NOTE: User must get rid of all extra blanks and enter own OUTPUT 
section via an editor.  However, if one enters the following information:

        008ENTER STRING:?80:            (in DATA section)

        1,8,1                           (in OUTPUT section)

        TYPE                            (after OUTPUT section)

        A 1,1                           (in TYPE section)

        B 5,2,3,4,5,6                   (in TYPE section)

        C 1,8                           (in TYPE section)


        Then the user can run TYPE mode and enter ALL sections.
