DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦34868216e⟧ TextFile

    Length: 126848 (0x1ef80)
    Types: TextFile
    Names: »D159«

Derivation

└─⟦ae2411776⟧ Bits:30008864 Diskette med tekster der formodes at være 31-D-152…161
    └─⟦this⟧ »D159« 

TextFile

                    
           \f

         *des80user sysdok. des80sys section.1 vers.13 des80cat.des80test list.yes, 
      password.old 
start des80 user cat.upd, v1  10.10.1979  10.21.59 
des80user sysdok.des80sys section.1 vers.13 des80cat.des80test, 
   list.yes password.old 
 
startsysdok: des80sys now aut.vers.13 (last vers.19) 
             section1. user-file 
   line 160 warning: previous operator no longer active 
end des80 user cat.upd, v1  10.10.1979  10.22.13 cpu: 2 
end 154 
*finis 
 
 
end 11 sec  job ilm2  log flej  date 1979.10.10  10.22.17 
 
                         Figure 58. 
                          
 B_._3_ _ _ _ _ _ _ _E_r_r_o_r_-_m_e_s_s_a_g_e_s_ B.3
                          
                         The general structure underlying the
                         error-messages and warning print outs is shown
                         below: 
                          
                         Error: 
                         Line <line _no.'                <text' 
                                          Warning: 
                          
                         When errors occur the processing of the program
                         will be terminated, and no user description file
                         will be created. 
                          
                         The processing is not affected by warnings. 
                          
                         All error-messages and warnings are converted on
                         correct out. 
                          \f

                                  The error-messages and warnings which may appear
                         have been compiled in a list below: 
                          
                         Error. The number of users is larger than the  
                                maximum number of users allowed. 
                          
                         Increase the maximum number of users. 
                          
                         Error. The number of operators is larger than the 
                                maximum number of operators allowed. 
                          
                         Increase the maximum number of operators. 
                          
                         Error. The physical operator No is already in use 
                          
                         The operator number has already been used by an
                         operator operating under the same user or another
                         user. 
                          
                         Error. Operator No exceeds userupdat>s demension. 
                          
                         DES80 can only handle users with 25 operators. 
                          
                         Error. The maximum number of operators exceeds  
                                99, which is the current maximum the sy- 
                                stem can process. 
                          
                         DES80 can only handle a total of 99 operators. 
                          
                         Error. Syntax error in a catalog line. 
                          
                         Re syntax see p. 
                          
                         Error. Syntax error in a user line 
                          
                         Re syntax see p. 
                          \f

                                  Error. Syntax error in a cat-baseline 
                          
                         Re syntax see p. 
                          
                         Error. Syntax error in a user-baseline 
                          
                         Re syntax see p. 
                          
                         Error. Syntax error in an operator line 
                          
                         Re syntax see p. 
                          
                         Warning. A number contains too many digits 
                          
                         The number of digits must be less than or equal
                         12. 
                          
                         Warning. A text string is too long 
                          
                         The number of characters in a text must not exceed
                         10. 
                          
                         Warning. A section part is too long. 
                          
                         See Ref. 5. 
                          
                         Warning. Too many levels in a section. 
                          
                         See Ref. 5.  
                          
                         Warning. The maximum number of users has been 
                                  decreased 
                          
                         Check whether the change was intentional. 
                          
                         Warning. The maximum number of operators has 
                                  been decreased. 
                          \f

                                  Check whether the change was intentional. 
                          
                         Warning. Previous operator identification 
                                  has been deleted. 
                          
                         When a new and an old operator identification
                         attached to an operator number differ, the old
                         identification is deleted. 
                          
                         Warning. Previous operator is no longer active. 
                          
                         The number of operators has been decreased. 
                          \f

F_       C_._1_ _ _ _ _ _ _ _D_E_S_8_0_U_P_D_A_T_E_     C.1
                          
                         P_r_o_g_r_a_m_ _e_x_e_c_u_t_i_o_n_ 
                          
          Call of        DES80UPDATE is used as a frame around the running
          program        system - i.e. before and after each run with
                         DES80ONLINE a run with DES80UPDATE is executed. 
                          
                         The syntax and semantics for calling the program
                         are descreibed below. 
                          
                         des80update  base.<low'.<up' 
                         init 
                                      run. 
                                            finis 
                                                                   1 
                                      des80cat. <user _file _name' 
                                                                   0 
                                      1 
                                      virtual. <file _name' 
                                      0 
                                                       1 
                                      log. <log _name' 
                                                       0 
                                              yes    1 
                                      list. 
                                              no     0 
                                                             1 
                                      listout. <list _name' 
                                                             0 
                                       
          des80update    is the name of the program 
                          \f

                   base           is the standard base for the DES80 systems private
                         files. These comprise the user description file,
                         the virtual file, and the programs of the system.
                          
                         Please notice that DES80UPDATE must run with a
                         standard base, comprising     A. This base and all
                         the user bases. See fig. C.1 
                          
                                                    12879 
                                 user No 3>s base 
                         12875                      execution of 
                                 user No. 2>s base  DES80UPDATE on 
                         12870                      this base 
                                 user No 1>s base 
                         12865 
                                 DES80>s private base 
                         12860                      12860 
                          
                         Figure 59. 
                          
          <low'          states the lower limit for the base of the DES80
                         system and is stated as an integer. 
                          
          <up'           is the corresponding upper limit of the base. 
                          
          run            There are two run types: 
                          
          init           is an initialization run, where the users, whose
                         ld-description has been altered since the last
                         run, are initialized. 
                          
          finis          is a termination run, in which the information
                         from DES80ONLINE is transferred to the user file. 
                          
          des80cat.      This item refers to the user description file.
          <user _file _    Standard is: des80cat.des80cat. 
          name'           \f

                   virtual.       The name of the virtual file is stated as shown in
          <file _name'    the box on p. 
                         Standard is: virtual.des80data. 
                          
          log.           This item states the name of the file, in which
          <log _name'     the input transactions from the terminals are
                         written.  
                         Standard is: log.des80log. 
                          
          listout.       The transaction log contains all the lines, which
          <listout _      have been typed between an initialization and a
           name'          terminating run. This parameter states the name of
                         the file where the transaction log is written.  
                         Standard is: listout.listout. 
                          
          list           This item states whether the transaction log is to
                         be printed in a terminating run. 
                         Standard is: list.no. 
                          \f

                   Example        Fig. 60 shows an example of a jobfile by means of
                         which an initialization run can be started. 
                          
          job des8  282932  time  3  0  size  50000 perm dk280928 100 1 
          mode list.yes 
                          
          des80update base.12860.12864, 
                      run.init, 
                      des80cat.des80test, 
                      virtual.des80data 
                          
          finis 
                          
                         Figure 60. 
                          
                         Fig. 61, shows an example of a transaction log. 
                          
          DES80                                   30.12.1979 10.59.40 
          DES80UPDATE', 25.5.79        TRANSACTION LOG         PAGE 7 

          USER:        3 
          TERMINAL:    1 
                          
          -              166 
                         173 AM1   12341   23   59   23   30 
                         174 
          *              195 4710   120 
          -              196 
                         198 4710   100 
                         199 BS 
                         205 AM1   15551 0  0    0    0 
                         221 BS 
                         222 
                         226 AM1   15551 1 59    1   59 
                         227 
                         230 4710 
                         231 BS 
          *              240 AS  0  0  0  0 
          -              241 
                          
                         Figure 61. 
                          \f

         C_._2_ _ _ _ _ _ _ _L_o_g_-_p_r_i_n_t_o_u_t_s_                                                    C.2
                          
                         For identification, documentation, and control
                         purposes log-in-information on the run with DES-
                         80UPDATE is printed on out. 
                          
                         The first page contains general information about
                         the run. See fig. 62. 
                          
                         A page is printed for each user, the contents of
                         which being determined by the type of run. By ini-
                         tialization runs the contents will be as shown  in
                         fig. 65. 
                          
                         By termination runs one line pr. user is printed
                         as shown in fig. 64. 
                          
                         Fig. 65 shows examples of printouts of log in-
                         formation from an initialization run by DES80UP-
                         DATE. 
                          
      des80cat: user _name 
                          
      sysdok: user _sysdok section: No. name version: No created: date hour 
                          
      virtual file: file 
                          
      max: users     operators 
           number    number 
                          
                         Figure 62. 
                          \f

                   user: user _identification 
                          
          descrip _file: descrip _name  section _number  insterted 
                                                      changed 
                                                      unchanged 
          ld _name: local _data _name  created: date hour  by: initials 
                         * 
          db files: db _file _name 
                                  0 
                          
                         Figure 63. 
                          \f

F_                                (figure 65)\f

         C_._3_ _ _ _ _ _ _ _E_r_r_o_r_-_m_e_s_s_a_g_e_s_ C.3
                          
                         In the following section a distinction is made
                         between errors and warnings. 
                          
                         Errors affect DES80UPDATE as a whole and terminate
                         the processing. 
                          
                         Warnings are user specific. A user who has
                         received a warning is excluded from further use of
                         DES80, without this affecting the rest of the
                         users. 
                          
                         The error messages, which may appear, have been
                         descreibed below: 
                          
                         *** VIRTUAL FILE DOES NOT EXIST:  name 
                          
                             RESULT FROM MONITOR 42 LOOKUP ENTRY = <res' 
                          
                         The virtual file, in which the information on
                         status is stored, does not exists. 
                          
                         *** VIRTUAL FILE CANNOT BE INITIALIZED:  name 
                          
                             RESULT FROM MONITOR 44 CHJANGE ENTRY = <res' 
                          
                         The catalog tail of the virtual file cannot be
                         altered by an initialization run. 
                          
                         *** VIRTUAL FILE HAS NOT BEEN INITIALIZED:  name 
                          
                          
                          
                          \f

                                  The catalog tail (contant) of the virtual file is
                         not correct. The error message may occur both du-
                         ring an initialization run and a termination run.
                         Content ought to be 9. 
                          
                         *** SET CATBASE ERROR 
                          
                             RESULT FROM MONITOR 72 SET CATBASE = <res' 
                          
                         DES80UPDATE is not allowed to set the catalog base
                         in question. Ownbase must be included in userbase,
                         and the content equal or be contained in stdbase. 
                          
                         ILLEGAL BASES 
                          
                         The user base of the system does not comprise own
                         base, i.e. the base in which the private files of
                         the system are located. 
                          
                         *** ERROR IN LOOKUP OF THE LOGFILE 
                             RESULT FROM MONITOR 42 LOOKUP ENTRY = <res' 
                          
                         The error is either caused by a catalog io-error,
                         or because the file does not exist, or because the
                         format of the name is illegal. 
                          
                         *** SORTPROCESS HARD ERROR: <cause of hard error' 
                          
                         Parameter errors or hard errors from sortprocbs. 
                          
                         *** AN ERROR IN THE SORTING OF THE LOG FILE 
                          
                         Please contact the maintenance department 
                          
                         *** A RECORD TYPE ERROR ON THE LOG FILE 
                          \f

                                  Please contact the maintenance department. 
                          
                         *** OPEN OUT AREA HARD ERROR: <listout _name' 
                          
                             <error _text' 
                          
                         An error has been made when opening the area
                         stated by the parameter: listout. The error text
                         will be one from the list below: 
                         no area 
                         catalog i/o error 
                         monitor trouble 
                         no resources 
                         catalog base not standard 
                         name format illegal 
                         catalog inconsistent 
                         file in use. 
                          
                         *** TOO MANY DATABASE FILES 
                          
                         The maximum number of databases have been excee-
                         ded. Above error causes that the ok.no bit is set
                         at exit from DES80UPDATE. 
                          
                         Below two errors only causes the warning.yes bit
                         to be set. 
                          
                         *** NO TERMINATION RUN HAS BEEN EXECUTED 
                          
                         Initialization cannot be executed after
                         initialization. The program exists. 
                          
                         *** NO INITIALIZATION HAS BEEN EXECUTED 
                          \f

                                  Termination run cannot be executed after termina-
                         tion run. The program exists. 
                          
                         Below error is only to be considered as a message.
                          
                         *** LOG AREA NAME IS NOT UPDATED BY A TERMINA- 
                             TION RUN 
                          
                         The parameter LOG should only be used at initia-
                         lization. The parameter is neglegted. 
                          
                         *** LD FILE IS NOT PRESENT IN DESCRIPFILE 
                          
                         The chapter containing the local data description
                         does not exist in the description file. 
                          
                         *** THE SECTION TYPE OF THE LD FILE IS NOT IN SODA
                          
                         The ld-file has not been compiled with soda-ld. 
                          
                         *** THE COMPILATION OF THE LD FILE IS ATTACHED
                             WITH ERRORS. 
                          
                         *** THE CONTROL RECORD FOR THE LD-FILE CANNOT 
                             BE LOCATED 
                          
                         An error in the ld-file. Please contact the person
                         in charge of maintenance. 
                          
                         *** THE VERSION OF THE LD-FILE IS NOT THE ONE 
                             REQUESTED 
                          
                         Please contact the person in charge of maintenan-
                         ce. 
                          
                         *** THE LD DESCRIPTION CONTAINS SEVERAL FILES 
                          \f

                                  Only one file is allowed. 
                          
                         *** THE BLOCKLENGTH OF THE TRANSACTION FILE 
                             EXCEEDS THE ALLOWED NUMER OF SEGMENTS: 
                             <number' 
                          
                         In DES80 <number' must be 1. The error can either
                         be caused by an omission to use the parameter
                         >block> in DATABASE80 (see Ref.1) or because the
                         parameter was used incorrectly. 
                          
                         *** DESCRIPTION FILE DOES NOT EXIST 
                          
                         Please contact the person in charge of
                         maintenance. 
                          
                         *** THE FILE IS DEFECT 
                          
                         The error mesaage can either mean that the file
                         does not exist, or that the file is not a cf-file.
                          
                         *** THE TRANSACTION LOG ON <list _name' HAS NOT 
                             BEEN CONVERTED. 
                          
                         The file <listout _name' is permanent and can be
                         converted at one>s discretion. 
                          
                         *** CONVERT <listout _name'<error _text' 
                          
                         An error in connection with the conversion of the
                         transaction log. The errortext will be one from
                         the list below:  
                         cbuf exceeded. 
                         file not found 
                         logik scope 
                         temp resources exceeded 
                         file in use 
                          \f

                                  *** THE FILE CONTAINING THE SORTED RECORDS 
                             <log _name' HAS NOT BEEN REMOVED 
                             RESULT FROM MONITOR 48 REMOVE ENTRY 
                             = <res' 
                          
                         The file <log _name' should be removed normally 
                          
                         *** TOO MANY PERMANET VARIABLES: 
                             <number1' HALFWORDS USED  
                             <number2' HALFWORDS AT DISPOSAL 
                          
                         <number1' states the illegal number of half words
                                  used by the permanent variables of the ld-de-
                         scription, and <number2' states the legal number
                         of half words. 
                          \f

F_       D_._ _ _ _ _ _ _ _ _D_E_S_8_0_O_N_L_I_N_E_                                                      D.
                          
          Call of pro-   The syntax and semantics for the call of program
          gram           are descreibed below: 
                          
                         des80online   base. <low'.<up' 
                                       input. <input _name' 
                                                             1 
                                       virtual. <file _name'   
                                                              0 
                                                               1 
                                       duetp. <duet _file _name' 
                                                                0 
                                                yes    1 
                                       withlog. 
                                                  no     0 
                                                           1 
                                       maxinst. <number'   
                                                            0 
                          
          des80online    is the name of the program 
                          
          base           is the standard base for the private files of the
                         DES80 system, se fig. 59. 
                          
          <low'          is the lower limit for base of the DES80 system,
                         and is stated as an integer. 
                          
          <up'           is the corresponding upper limite for the base. 
                          
          input.         This parameter may be used in two different ways: 
                   <input _name'    \f

                                  When the system is operating, input to the program
                         comes from the terminals via a process normally
                         called DES80COM. Ref. 6 descreibes how this pro-
                         cess is started. The name of the process is stated
                         as <input _name'. 
                          
                         When the system is being implemented to the cu-
                         stomer and is in the debugging phase it is expe-
                         dient to simulate input by means of data on a
                         disc store. In that case the name of this file is
                         stated as <input _name' 
                          
          virtual        This is the name of the virtual file. 
          <file _name'    Standard is: des80data. 
                          
          duetp.         This parameter states the name of the file in
          <duet _file _    which the compiled duet program is stored. 
          name'          Standard is: des80duet. 
                          
          withlog        If the parameter specifies >yes> log information
                         will be created on the disc store. If the para-
                         meter specifies >no> no log will be created. If
                         nothing has been specified a log will be created.
                         The file name is specified.by the parameter log in
                         the initialization run by DES80UPDATE 
                          
          maxinst.       <number' states the maximum number of instructions
          <number'       pr. data line. This prevents infinite loops in
                         duet program. 
                         Standard value for <number' is 500. 
                          \f

                   Example        Fig. 66 shows an example of a job file starting
                         DES80ONLINE. 
                          
          job des8  282932 time 2 0 size 90000 temp disc 2000 30, 
          perm dk280928 100 1 
          mode list.yes 
          des80online base.12860.12864, 
                      input.des80test, 
                      duetp.des80duet, 
                      virtual.des80data, 
                      withlog.yes 
          finis 
           
                         Figure 66. 
           \f

F_       E_._ _ _ _ _ _ _ _ _T_R_A_N_S_F_O_R_M_E_R_                                                   E.
                          
          Purpose        The program TRANSFORMER has been developed to cope
                         with error situations (program, data, and system
                         errors). By means of this program a bundle is
                         transformed from the internal format to a text
                         file, which can be used when running off-line. 
                          
          Background     A bundle corresponds to up to three files in
                         DES80>s private bases. The names of these files
                         all begin with the letters WRK which are followed
                         by 6 digits. 
                          
                         One of the files contains the transactions gene-
                         rated, and the two remaining files contain the
                         originally typed lines with the status informa-
                         tion. When typing data only one of the latter
                         files are used, whereas when data are corrected
                         both the latter files are used. 
                          
          File names     To gain knowledge of the file names for a bundle
                         the operator must log in as a priviledged operator
                         for the user, to whom the bundle belongs. The in-
                         formation converning the bundle is obtained by
                         using the command @TEST1 as floows: 
                          
                               @TEST1 bundle _name 
                          
                         The system reacts with a print out of the type
                         shown below: 
                          
                               BUNDLE: TIMESHEET TRANSACTION FILE WRK000522
                               STATE: 0 0 0 0 0 
                               TEXT: WRK 000523 VOUCHER: 10 LINE: 47
                               POSITION: 13355 
                          \f

                                  In this example wrk000523 is to be used as the
                         text status file. 
                          
                         If the bundle is being corrected information about
                         the old text file will be added. 
                          
                         The following paragraphs give the syntax and se-
                         mantics for calling the program TRANSFORMER. 
                          
                         TRANSFORMER IN. <text _status _file' 
                                     OUT. <result _file' 
                                              YES    1 
                                     LIST.  
                                              NO     0 
                                                               1 
                                     LISTOUT. <listout _name'  
                                                               0 
                          
          transformer    is the name of the program. 
                          
          in.            this item states the name of the background area
          <text _status _  which is to be processed. 
          file'           
                          
          out.           this item states the name of the background area
          <result _file'  in which the output, which will form the input for
                         a later off-line run, is to be saved. 
                          
          list           if >yes> is stated a listing will be created in an
                         area of the backing store. 
                          
                         If >no> is stated no such listing will be created.
                          
                         Error messages, if any, are always printed on
                         current cat. Standard is: list.no. 
                          \f

                   listout.       This item states the name of the background area
          <listout _name' in which the listing is to be written. If the area
                         does not exist already it will be created as a
                         temporary file, which is automatically converted
                         on the local printer. If the area has been created
                         previously the operator in charge of the proces-
                         sing must see to it himself that the area is con-
                         verted. Standard is listout. listout. 
                          
                         The listing comprises general information about
                         the bundle and information about each line. 
                          
          Example        An example with an error in a bundle is shown
                         below. The bundle is transformed to a text file,
                         which is corrected, and an off-line run is exe-
                         cuted with the bundle as input.  
                          
                         1_._ _R_u_n_ _w_i_t_h_ _D_E_S_8_0_ 
                          
          @ ID JOHN 
          @ SPECIAL 
          @ OPENDB ALL 
           
          THE DATABASE FILE EMPLOYEE FILE OPENED 
          THE DATABASE FILE CASE FILE     OPENED 
          @ GET BUNDLE1 
           
          BUNDLE1 1120 17.09.1979 13.13.49 OPEN PRIVATE INPUT NOT FINISHED 
          INPUT START 
          ADM 619 30 79 
          HRS 200 40  
          SUM 40 
          ADM 020 30 79 
          *** EMPLNO. HAS ILLEGAL VALUE: 20 
          *** RECORD WITH KEY STATED DOES NOT EXIST IN SET 3 
          ***** EMPLOYEE DOES NOT EXIST: 0 
          ADM 020 30 79 
           \f

                   @ OK 
          *** EMPLNO. HAS ILLEGAL VALUE: 20 
          *** RECORD WITH KEY STATED DOES NOT EXIST IN SET 3 
          ***** EMPLOYEE DOES NOT EXIST: 0 
          LINE ACCEPTED 
          HRS 200 40  
          SUM 40 
          @ SAVE 
           
          BUNDLE1 1120 17.09.1979 13.19.44 SAVED PRIVATE INPUT FINISHED 
          @ BYE 
          THNAKS FOR TODAY 
           
                         Figure 67. 
           
                         2_._ _R_u_n_ _w_i_t_h_ _D_E_S_8_0_ 
           
                         In fig. 68 the operator assigns himself privi-
                         ledged status and uses the @ TEST1 command to
                         learn the name of the text status file. 
                          
          @ ID JOHN 
          @ SPECIAL 
          @ TEST1 BUNDLE1 
           
          BUNDLE: BUNDLE1 TRANSACTION FILE: WRK 000253 
          STATE: 0 0 0 0 0 
          TEXT: WRK 000254 
          VOUCHER: 2 LINE: 6 POSITION: 10 390 
           
          @ BYE 
          THNAKS FOR TODAY 
           
                         Figure 68. 
                          \f

F_                                (3. Run (with BOSS))\f

F_                               (CONTENTS OF LIST FILE:)\f

                                  (Executed under BOSS are:)\f

                                  Subsequently the following run will be executed
                             under BOSS: 
                          
                         20/id/id john 
                         70/020/620 
                         save trans1 disc1 
                         clear 
                         scope user trans1 
                         get des80offl 
                                         (correct input name when calling
                                          DES80ONLINE to: trans1) 
                         run 
                          
                                   
     F_._2_ _ _ _ _ _ _ _D_a_t_a_ _e_r_r_o_r_s_ F.2
                          
                         Fig. 70 shows a list of error texts which are
                         caused by data errors. 
                          
                         The errors associated with texts 1 to 12 and 14
                         cause the typed line to be rejected but allow the
                         typing of data to continue. 
                          
                         The error associated with 13 is more serious and
                         prevents the operator from typing further data
                         till the error has been corrected. 
                          
                         N_o_._ _ _E_R_R_O_R_T_E_X_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
                          1   SYNTAX ERROR IN FIELD AFTER <name' 
                          2   <name' HAS NOT BEEN TYPED 
                          3   <name' HAS DECIMALS MISSING AFTER POINT 
                          4   <name' HAS TOO MANY DECIMALS 
                          5   <name' IS A TEXT WHICH HAS NOT BEEN FINIESHED
                          6   <name' IS A TOO LONG TEXT 
                          7   LINE AFTER <name' HAS NOT BEEN TYPED 
                          8   LINE MUST BE FINISHED AFTER <name' 
                          9   SYNTAX ERROR IN FIELD AFTER <name' 
                          \f

                                  10   <name' HAS ILLEGAL VALUE 
                         11   RECORD WITH KEY SPECIFIED DOES NOT EXIST 
                              IN SET <no' 
                         12   RECORD WITH KEY SPECIFIED ALREADY EXISTS 
                              <no' 
                         13   LINE TYPE CAUSES SYTEM/PROGRAM ERROR 
                         14   <name' HAS ILLEGAL VALUE 
                          
                         Figure 70. 
                          
                         For a more detailed description, please see Ref.
                         3. 
                          
                          
     F_._3_ _ _ _ _ _ _C_o_m_m_a_n_d_ _E_r_r_o_r_s_._ F.3
                          
                         Fig. 71 gives a survey of the error messages which
                         are caused by command errors. For a more detailled
                         description, please see Ref. 9, chapter 3. 
                          
                         COMMAND NAME DOES NOT EXIST 
                         SYNTAX ERROR 
                         NAME OF BUNDLE IS TOO LONG 
                         OPERATOR HAS NOT BEEN ACCEPTED 
                         WRONG IDENTIFICATION 
                         THERE IS A PRINTLEDGED OPERATOR 
                         COMMAND CAUSES SYSTEM/PROGRAM ERROR 
                         NON-PRIVILEDGED OPERATOR 
                         TRANSACTION FILE EMPTY 
                         PREVIOUS TRANSACTION FILE NOT USED 
                         NO BUNDLES AVAILABLE 
                         BUNDLE IN USE 
                         BUNDLE PRIVATE 
                         BUNDLE NON-EXISTENT 
                         ERROR IN USE OF BUNDLE 
                         OPERATOR HAS NOT COMMENCED TYPING INPUT 
                          \f

                                  BUNDLE ALREADY EXISTING 
                         BUNDLE CONTAINING FORCED LINES 
                         EDIT/REPLACEMENT OPERATION FOR BUNDLE NOT FINISHED
                         BUNDLE CONTAINING NON FINISHED VOUCHERS 
                         OPERATOR ATTACHED TO OTHER BUNDLE 
                         BUNDLE NOT FINISHED 
                         SENDING BUNDLE CAUSES A SYSTEM ERROR 
                         TEXT NON-EXISTENT 
                         NO INPUT OF DATA DURING POSITIONING 
                         NO REPLACEMENT/EDITING DURING POSITIONING 
                         NO POSITIONING DURING INPUT OR CORRECTION 
                         TOO MANY VOUCHERS AT FORWARD POSITIONING 
                         TOO MANY VOUCHERS AT REVERSING 
                         TOO MANY LINES AT FORWARD POSITIONING 
                         TOO MANY LINES AT REVERSING 
                         NO LINES TO FORCE 
                         USE INSTEAD @ POS 
                         NO DELETION DURING POSITIONING 
                         @ BREAK CAN ONLY BE EXECUTED WHEN CORRECTING 
                         @ START CANNOT BE EXECUTED RUING INPUT OR
                           REPLACEMENT/EDITING 
                         INPUT CANNOT BE TYPED DURING EDITING/REPLACEMENT 
                         NO REPLACEMENT DURING INSERTION 
                         DURING INSERTION NO REVERSE 
                         TOO BIG REVERSAL 
                         DURING INSERTION NO PRINTING 
                         AFTER REVERSING VOUCHERS CANNOT BE DELETED 
                         TOO MANY LINES 
                         NO DELETION DURING INSERTION 
                         ONLY ONE LINE CAN BE DELETED 
                         THE SPECIFIED NUMBER CANNOT BE DELETED 
                         INSERTION IS STARTED EARLIER 
                         INSERTION HAS NOT BEEN STARTED 
                         NEW LINE TOO LONG 
                         END OF BUNDLE 
                         DURING INPUT VOUCHERS CANNOT BE DELETED 
                          \f

                                  AFTER REVERSING NO VOUCHERS CAN BE LISTED 
                         THE LINE CANNOT BE EDITED/REPLACED IN THIS
                         RUNTHROUGH 
                         THE LINE CANNOT BE DELETED IN THIS RUNTHROUGH 
                         THERE IS NO READ-IN PROGRAM FOR THIS USER <name' 
                         LOCAL DATA DESCRIPTION INCORRECT FOR THIS USER
                         <name' 
                          
                         Figure 71. 
                          
                          
     F_._4_ _ _ _ _ _ _ _P_r_o_g_r_a_m_ _E_r_r_o_r_s_ F.4
                          
                         The various program errors have been descreibed in
                         detail in Ref.3. The error numbers and error texts
                         have been listed in fig. 72. Error number 12 is
                         supplemented with an error text as is shown in
                         fig. 73. 
                          
                   E_r_r_o_r_ _N_o_ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
            1       ILLEGAL BLOCKNO OR BLOCK MISSING <block _no' 
            2       ILLEGAL BLOCKREF, USER CONFLICT <block _no'<user _no' 
            3       ILLEGAL ENTRYPOINT <entry _no' 
            4       PRINT CHANNEL NOT SELECTED 
            5       ILLEGAL VARIABLE NUMBER <var _no' 
            6       INDEX <var _no'<index _value' 
            7       ILLEGAL CHANNEL NUMBER <channel _no' 
            8       INST.COUNT EXCEEDED <inst _count<'max _inst' 
            9       ILLEGAL SET NUMBER <set _no' 
           10       USAGE CONFLICT <set _no' 
           11       RECORD STATE ILLEGAL FOR THIS OPERATION <set _no' 
                    <record _state' 
           12       MOVE ERROR "set _no'<text'<adr'<value' 
           13       SET CLOSED FOR SEQ.CCESS BY NEWSET ON ANOTHER SET 
                    <set _no' 
           14       DAUGHTER RECORDS ASSOCIATED WITH CURRENT RECORD 
           16       CURRENT RECORD REMOVED FROM DB <set _no' 
           \f

                    17       MOTHER RECORD MISSING IN SIDE CHAIN <set _no' 
           18       MOTHER RECORD REMOVED FROM DB <set _no' 
           19       ILLEGAL STATE FOR MOTHER SET <set _no<record _stated' 
           20       ILLEGAL CURRENT RECORD TYPE IN MOTHER SET <set _no' 
           21       RECORD TYPE ILLEGAL IN SET <set _no'<record _type' 
           22       PRINTVALUE EXCEEDS FIELD RANGE <channel'<value' 
           23       ILLEGAL PRINT POSITION <start _pos' 
           24       PRINT FIELD EXCEEDS LINE BUFFER <start _pos'<amount' 
           25       ILLEGAL BS.OPERATION, POSITION AF EOF <set _no' 
           26       ILLEGAL DELETE POSITION <set _no' 
           27       SET NOT OPEN FOR SEQUENTIAL ACCESS <set _no' 
           28       ILLEGAL SPECIAL ACTION <algol _no' 
           29       ILLEGAL NUMBER OF PARAMETERS <algol _no'<no' 
           30       ILLEGAL TYPE OF PARAMETER <algol _no'<param _no' 
           31       ILLEGAL ZERO DIVISION 
           
                         Figure 72. 
                          
          N_o_ _ _ _ _ _ _ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
          1         ILLEGAL ENTRYADDR IN >FLYTTETAB> 
          2         ILLEGAL MOVEINSTRUCTION: TYPE, ADDR: 
          3         SPILL DURING TRANSFER FROM VAR: ADR, VALUE: 
          4         INDEX: ADDR OF INDEXVAR, VALUE: 
          5         ILLEGAL NUMBER OF REPET. IN RPG: VARADDR, VALUE: 
          6_ _ _ _ _ _ _ _ _ _F_I_E_L_D_A_D_D_R_ _O_U_T_S_I_D_E_ _Z_O_N_E_R_E_C_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
                         Figure 73. 
           
                         If the read-in program or the ld-description are
                         defekt the following messages will be printed: 
                          
          ***** USER <user _no.'<operator _no.'<error _text' 
           
                         where the <error _text' is either: 
                          
          READ IN PROGRAM IS NOT OK 
           
                         or:
     LD-DESCRIPTION IS NOT OK 
           \f

         F_._5_ _ _ _ _ _ _ _S_y_s_t_e_m_ _E_r_r_o_r_s_                                                   F.5
                          
                         The format of the system errors is identical to
                         that of the program errors. For a more detailled
                         description, phase see Ref.3. Fig. 74 shows a
                         survey of the error numbers and the error texts
                         for the duet system. 
                          
                   N_o_ _ _ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           1    Duetrel <duetrel'<duetstop' 
           2    Bit 23 = 0 
           3    >Duetnavn' 
           4    Value of >udtryk> <val'<duetstop' 
           5    Bit 23 = 1 <duetstop' 
           6    Ld-tables <set _no' 
           7    Checksum <set _no' 
           8    Recordlength <set _no' 
           9    Connect missing in side chain <set _no' 
          10    File expansion impossible <result cf' 
          11    Record creation too expensive <result cf' 
          12    Deletion of last record in file 
          13    Skipword 
          14    Over/underflow <stack _stop' 
          15    Error in block transfer <block _no<error _text' 
          16    Move error 
          1_7_ _ _ _ _I_l_l_e_g_a_l_ _t_y_p_e_ _o_f_ _v_a_l_u_e_ _e_l_e_m_e_n_t_ _<_t_y_p_e_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
                         Figure 74. 
                          
                          \f

F_       G_._ _ _ _ _ _ _ _ _S_P_E_C_I_A_L_ _A_C_T_I_O_N_S_ _ G.
                          
                          
G_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ G.1
                          
          Purpose        There are a number of operations in the DES809 sy-
                         stem, which are to be executed in the user>s
                         read-in program, which it either is inexpdient or
                         impossible to implement in the Duet language. 
                          
                         These actions are programmet in ALGOL and are cal-
                         led as procedures from the read-in program. 
                          
                         It is the group in charge of developing the DES80
                         system which decides the number, and functions, of
                         the special actions and maintains them. 
                          
                         DES80 operates with special actions centering on
                         the following problems: 
                          
                            1. transactions to a text file 
                            2. wage code problems 
                            3. repeat line 
                            4. check of date 
                          
                         These special actions will be descreibed in
                         accordance with the following general format: 
                          \f

                                                                           1 
          C_a_l_l_           algol <no.'   (<param 1',...,<param 7')  
                                                                  0 
                         <no.'    : the number of the special action 
                         <param 1': (call/return/type) 
                         . . . 
                         <param 7', 
           
                         as a special action can have front 1 to 7  
                         parameters. 
           
          D_e_s_c_r_i_p_t_i_o_n_ _o_f_ _t_h_e_ _f_u_n_c_t_i_o_n_ 
           
          E_r_r_o_r_ _r_e_a_c_t_i_o_n_s_ 
           
          E_x_a_m_p_l_e_ 
           
                         The section below first deal with the general
                         error reactions which may occur (program errors).
                         Then follows a description of the various problem
                         complexes. 
                          
                          
      G_._2_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _E_r_r_o_r_ _R_e_a_c_t_i_o_n_s_ G.2
                          
                         When the special actions are used incorrectly the
                         following program error reactions will occur: 
                          
                              28 
          ***** PROGRAM ERROR 29: CALL FROM : BLOCK INSTR OPT (ADR PIL ART)
                              30 
                                  duet         -      - algol   -   -   - 
                <error _text' 
           \f

                                  <error _text' can be one of the following: 
                          
                         Illegal special action 
                          
                         Reference has been made to a non-defined special
                         action. 
                          
                         illegal no. of parameters  <amount' 
                          
                         The special action called does not comply with the
                         conventions governing the number of parameters.
                         The illegal number of parameters are specified. 
                          
                         illegal type of parameter  <no' 
                          
                         The special action called is referenced with an
                         illegal parameter type. The number of the illegal
                         parameter is specified. 
                          
         G_._3_ _ _ _ _ _ _ _T_r_a_n_s_a_c_t_i_o_n_s_ _t_o_ _a_ _T_e_x_t_ _F_i_l_e_ G.3
                          
                         There are two special actions which are oriented
                         towards this purpose: 
                          
                         Algol 1 which constructs a (or only part of a)
                         line - it can be compared with create - 
                         and 
                         algol 2 which terminates the current line - it can
                         be compared with put. 
                          
                         7 
                         C_a_l_l_   algol 1 ( <parameter i',        ) 
                                                           i=1 
                          
                                <parameter i': call 
                                         type: word long text 
                          \f

                                  F_u_n_c_t_i_o_n_ 
                          
                         The special action generates a part of a line,
                         which has the following textual representation: 
                          
                         <parameter 1'<terminator'<parameter 2'...<'<...n' 
                          
                         Where <terminator' is a character, the ISO value
                         of which is the value of the basis ld-variable
                         >terminator>. 
                          
                         E_x_m_a_p_l_e_  
                          
                         When the terminator = 44 (the ISO value for a
                         comma) and the item nuberm = 4711: 
                          
                         algol 1 (><22>, 4, item _no.) 
                          
                         will have the line 
                          
                         <22, 4, 4711 
                          
                         as its result. 
                          
          algol 2        C_a_l_l_  algol 2 
                          
                         F_u_n_c_t_i_o_n_ 
                          
                         The special action terminates a line, which is
                         being generated by one or several repeated calls
                         of algol 1, using the value of the bases
                         ld-variable >Line-end> as end of line symbol. 
                          \f

                                  E_x_a_m_p_l_e_ 
                          
                         when terminator   = 44 (,) 
                              line-end     = 10 (NL) 
                              item number  = 4711 
                              item name    = >penol 1300> 
                          
                           ' algol 1 (><22>, 4, item _no.) 
                           ' algol 1 (127, item _name) 
                           ' algol 2 
                          
                         will have the line 
                          
                         <22, 4, 4711, 127, penol 1300 <NL' 
                          
                         as their result. 
                          
                          
      G_._4_ _ _ _ _ _ _ _W_a_g_e_ _C_o_d_e_s_ G.4
                          
                         Special action: algol 3, not implemented. 
                          
                          
G_._5_ _ _ _ _ _ _ _R_e_p_e_a_t_ _L_i_n_e_ G.5
                          
                         As the references, requests, to the database are
                         coded in DUET, an algol special action has been
                         introduced to return the pointer to the first
                         field of the input line. This special action makes
                         it possible to read a line of the type ? it (re-
                         quest to the itemfile), at any level while data
                         are being typed, and have the answer displayed on
                         the terminal, without disturbing the bundle in
                         progress. 
                          \f

                                  C_a_l_l_   algol 4 
                          
                         F_u_n_c_t_i_o_n_ 
                          
                         After algol 4 has been called in the Duet program
                         it will continue to return the pointer to the
                         field of the current line, untill the special
                         action is returned. 
                          
                         E_x_a_m_p_l_e_ 
                          
                         The following example fig. 75 shows how the
                         database references have been coded in the
                         "SKANTEKMODEL>s" Duet-program: 
                          
                                                 ; To determine whether the
                                                 ; line is a question the
                                                 ; line code is checked at
                                                 ; the start of the line.
                                                 ; If not a question the
                                                 ; pointer is returned to
                                                 ; its pre-check position,
                                                 ; and the line is pro-
                                                 ; cessed as an ordinary
                                                 ; line. 
                          
                         d4: read c33 line code, t3 text, u3 number;
                             central(ised) reading 'if read-spec = 1  
                             then d5 else d8. 
                          
                         d5: action line code of; a character field has
                                                  been read. 
                             .?it.  :d401       ; request to the item file 
                             .?os.  :d402       ; request to theopera- 
                                                  tional file. 
                             .?od.  :d403       ; request to the word file 
                             else d8            ; the line did not begin
                                                  with a request,  
                                                   \f

                                                ; reading is reassumed at
                                                ; start of line, and the
                                                ; line is processed as a
                                                ; bundle line. 
                         d8: algol 4            ; returned 
                             'execute d10 
                                      s 
                         d10:                   ; bundle line processing. 
                          
                         Figure 75. 
                          
                          \f

F_       H_._ _ _ _ _ _ _ _ _C_H_E_C_K_I_N_G_ _T_H_E_ _D_A_T_E_ H.
                          
                         This algol action checks whether the date lies
                         within a specified format. 
                          
                         Call: algol 5 (date, date type, result) 
                          
                                            word 
                               date  (call, date) 
                                            long 
                          
                                     The date used 
                          
                                                word 
                               date type (call, date) 
                                                long 
                          
                                     The specified format for date 
                          
                               result (return, word) 
                                     0 indicates that the date meets the  
                                       requirements set up under Function. 
                          
                                  <' 0 indicates that the date does not 
                                       meet the requirements 
                          
                         F_u_n_c_t_i_o_n_ 
                          
                         date type=1: date=ddmmyy (day-month-year) 
                         date type=2: date=(yy) yymmdd (year-month-day) 
                                      in connection with date types 1 and 2
                                      the algolaction checks that 
                                      1<=mm<=12 
                         29 
                                      1<=dd<=30 (depending on mm) 
                                             31 
                          \f

                                  date type=3: date=(yy) yymm (year-week-no) 
                                      The algol action checks that  
                                      1<=mm<=52 
                          
                         date type=4: date=(yy) yydd (year - no of 
                                      day) 
                                      The algol action checks that 
                                      1<=dd<=366 
                          
                         When date types 2, 3, and 4 are used year may be
                         stated either as e.g. 79 or 1979. Date type 1 only
                         operates with two digits to denote the year. The
                         year is not checked. 
                          
                          \f

F_       I_._ _ _ _ _ _ _ _ _C_H_E_C_K_ _D_I_G_I_T_ _C_H_E_C_K_I_N_G_ I.
                          
                         Fig. 76 shows an example of how a procedure with
                         the purpose of checking a number with a check
                         digit can be constructed in DUET. 
                          \f

F_                                (figure 76)\f

                                  (figure 76)\f

         J_._ _ _ _ _ _ _ _ _O_F_F_L_I_N_E_ _D_E_B_U_G_G_I_N_G_ J.
                          
                         On the installations where DES80 has been
                         implemented, DES80OFFL, a skeleton job, will be
                         part of the software package. This job is shown on
                         the skeleton job contains a detailed description
                         of how to run with it. 
                          
                         Figure 78 shows an example of a user adaption. All
                         modifications are shown in boxes. The comments to
                         the input lines for the user up-dating program
                         have been removed - this has been marked with
                         NB!>s. 
                          \f

F_                                (figure 77)\f

F_                                (figure 77)\f

F_                                (figure 77)\f

F_                                (figure 77)\f

F_                                (figure 78)\f

F_                                (figure 78)\f

F_                 figure 78  
                          \f

F_                 figure 78 
                          \f

                                  The testmaterial and its construction is descrei-
                         bed in section 5.9 figure 79 shows a small examp-
                         le (TEST12) 
                          
                         01, @ LOGIN 
                         01, @ ID DES80OP 
                         01, @ GET TEST 
                         01,   ADM 100 22 78  
                         01,   HRS 110 20  
                         01,   HRS 120 20  
                         01,   SUM 40 
                         01,   ADM 200 22 78 
                         01,   HRS 220 10  
                         01,   SUM 40 
                         01, @ SAVE FINISH 
                         01, @ SPECIAL 
                         01, @ SEND TEST 
                         01, @ LOGOUT 
                          
                         Figure 79. 
                          
                         Input from and answers to the terminal are sup-
                         plied on DESUAR001. Figure 80 shows a part of the
                         latter.  
                         * TEST START TRANSACTION:       1 
                           @ LOGIN 
                         * TEST FINISHED TRANSACTION:    1 
                          
                         * TEST START TRANSACTION:       2 
                           @ ID DES80OP 
                         * TEST FINISHED TRANSACTION:    2 
                          
                         * TEST START TRANSACTION:       3 
                           @ GET TEST 
                         TEST 1 3.10.1078 15.12.17 OPEN PRIVATE INPUT
                         UNFINISHED 
                          \f

                                  INPUT START 
                          
                         * TEST FINIESHED TRANSACTION: 3 
                          
                         * TEST START TRANSACTION:     4 
                         ADM 100 22 78  
                         * TEST FINISHED TRANSACTION:  4 
                          
                         * TEST START TRANSACTION:     5 
                         HRS 110 20  
                         * TEST FINISHED TRANSACTION:  5 
                          
                         * TEST START TRANSACTION:     6 
                         HRS 120 20  
                         * TEST FINISHED TRANSACTION:  6 
                          
                         * TEST START TRANSACTION:     7 
                         SUM 40 
                         * TEST FINISHED TRANSACTION:  7 
                          
                         Figure 80. 
                          
                         Fig. 81 shows the record which is created by
                         transaction no. 5. 
                          
                         Finally fig. 82 shows the primary output resulting
                         from the run. 
                          
                          \f

F_                                (figure 81)\f

F_                                (figure 82)\f

F_                                (figure 82)\f

F_                                (figure 82)\f

F_                                (figure 82)\f

F_                                (figure 82)\f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  NATIONAL VERSIONS ......................................   1 
           
                   2.  FORM LENGTH ............................................   2 
           
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _N_A_T_I_O_N_A_L_ _V_E_R_S_I_O_N_S_    1.
           
          RC862 and RC867 are supplied containing a number of national
          versions. This is done only by setting a number of switches. 
           
          The switches are placed on the Operation Panel Circuit Board as
          shown in fig. 1. To Operate these switches the upper cover of the
          printer has to be removed. 
           
                                                switch: 
                                                8 ON 
M_M_                                                7 ON 
                                                        not to be changed 
P_P_                                                6 OFF 
                                                5 ON 
           
          Figure 1: Operation panel board. 
           
          Switch positions are shown in fig. 2. 
           
          s_w_i_t_c_h_ _1_ _s_w_i_t_c_h_ _2_ _s_w_i_t_c_h_ _3_ _s_w_t_i_c_h_ _4_ _v_e_r_s_i_o_n_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _U_K_ _A_S_C_I_I_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _G_E_R_M_A_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _U_S_ _A_S_C_I_I_/_F_R_E_N_C_H_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_W_E_D_I_S_H_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _D_A_N_I_S_H_/_N_O_R_W_E_G_I_A_N_ _ _ _ _ _ _ _ _ _ _ _ _ _
           _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _D_A_N_I_S_H_ _O_F_F_S_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
          Figure 2: Position of switches. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _F_O_R_M_ _L_E_N_G_T_H_    2.
           
          If the printer is equipped with the latest version of PROM's, the
          Form Length rotary switch has the following settings: 
           
             Switch position          Form Length (inches) 
             0                         3 
             1                         3,5 
             2                         4 
             3                         5,5 
             4                         6 
             5                         7 
             6                         8 
             7                         8,5 
             8                        11 
             9                        12 
           
           \f

F_                  
           \f

F_                  
           \f

                   user:   user _identification    terminated 
           
          Figure 64 
           
           
           
          des80cat: des80test 
           
          sysdok: des80sys section: 1. user _file version: 13 created: 12.09.1979 13.55.00. 
          virtual file: des80data 
          max:       users    operators. 
                       10         5 
           
           
          user: desa 
           
          descrip _file: dsadescr  51.      inserted 
          ld _name:  created:   2.09.1979     11.53.30    by: desb 
           
           
          user: desc 
           
          descrip _file:  descr 51.  inserted 
          ld _name:  created:     18.07.1979   15.55.11   by: sjc 
           
           
          Figure 65. 
           
           \f

                   3_._ _R_u_n_ _(_w_i_t_h_ _B_O_S_S_)_ 
           
                              10 transformer in.wrk000254 out.trans1, 
          j_o_b_ _f_i_l_e_            20 list.yes listout.listfile 
                              30 finis 
           
          START TRANSFORMER, V1, 19.09.1979 29.09.1979 14.30.29 
          TRANSFORMER IN.WRK00259 OUT.TRANS1 LIST.YES LISTOUT.LISTFILE 
           
          DES80                                                  DATE: 20.09.1979 14.30.39 
          TRANSFORMER, V1, 19.09.1979                            PAGE: 1 
           
          BUNDLE NAME: BUNDLE1 
          TEXT STATUS FILES NAME: WRK000254 
          TRANSACTION FILES NAME: WRK000253 
          OLD TEXT STATUS FILES NAME: 
          NUMBER OF LINES: 6 
          NUMBER OF VOUCHERS: 2 
          NUMBER OF FORCED ITEMS: 1 
          END TRANSFORMER, V1, 19.09.1979 20.09.1979 14.30.31 CPU: O 
          END 69 \f

                   C_O_N_T_E_N_T_S_ _O_F_ _L_I_S_T_ _F_I_L_E_ 
           
          START TRANSFORMER, V1, 19.09.1979 29.09.1979 13.59.24 
           
          DES80                                      DATE: 20.09.1979 13.59.24 
          TRANSFORMER, V1, 19.09.1979                PAGE 1 
           
          BUNDLE NAME: BUNDLE1 
          TEXT STATUS FILES NAME: WRK000254 
          TRANSACTION FILES NAME: WRK000253 
          OLD TEXT STATUS FILES NAME: 
          NUMBER OF LINES: 6 
          NUMBER OF VOUCHERS: 2 
          NUMBER OF FORCED ITEMS: 1 
           
          DES80                                      DATE: 20.09.1979 13.59.24 
          TRANSFORMER, V1, 19.09.1979                PAGE: 2 
           
          LINE VOUCHER NUMBER OF    LINE TYPED 
                       FORCED ITEMS 
          1     1       0           ADM 619 30 79 
          2     1       0           HRS 200 40 
          3     1       0           SUM 40 
          4     2       0           ADM 020 30 79 
          5     2       1           HRS 200 40 
          6     2       1           SUM 40 
           
          END TRANSFORMER, V1, 19.09.79 20.09.1979 13.59.25 CPU: 0 
           \f

                   Executed under BOSS are: 
                                  get trans1 
                                  list 
          10  01, @ LOGIN'* OFFLINE INPUT IN TRANS1*' 
          20  01, @ ID 
          30  01, @ GET BUNDLE 
          40  01, ADM 019 30 79 
          50  01, HRS 200 40 
          60  01, SUM 40 
          70  01, ADM 020 30 79 
          80  01, HRS 200 40 
          90  01, SUM 40 
         100  01, @ SAVE FINISH 
         110  01, @ SPECIAL 
         120  01, @ SEND BUNDLE1 
         130  01, @ LOGOUT 
           \f

                   d10:   modify  sum: = 0                      ; The two auxillary variables, sum and counter, 
                         counter: = 0                  ; are initialized first. Number is the figure on 
                         figure: = number              ; which the check digit is to be cheked. 
                 s 
                ' while figure ' 0 do d20              ; The operation runs throught all digits in the figure. 
                ' execute d30                          ; The actual check is performed in d30. 
                 s 
           
          d20:   modify  counter: +1                   ; counter specifies the number of the digit, counter  
                                                       ; from the right hand side, which is to be processed. 
                 digit: = figure mod 10                ; After the counter has been increased the digit is selected, 
                                                       ; and figure is intergerdivided by 10, enabling us  
                 figure: = figure 11 10                ; to select the next digit 
                 s 
                'assign weight: = counter of 
                         1:  0                         ; This construction assigns the individual digits 
                         2:  2                         ; weights. The box shows an example of a  
                         3:  1                         ; wight system. These can be modified to  
                         4:  2                         ; suit individual needs. Please notice that the check 
                         5:  1                         ; digit, which in the example/box is the first digit, 
                         6:  2                         ; has been assigned 0, and that the remaining digits 
                         7:  1                         ; have been assigned weights different from 0. 
                         8:  2                         ; The example can handle a 10 digit figure. 
                         9:  1 
                        10:  2 
           
                 else       d31                        ; error reaction to a figure which is too large 
           
                'compute product: = wieht + digit      ; weight computed. 
                 s 
           
                 'modify x: = digits (2,2) of product  ; The contents of the box is only used when 
                         y: = digits (1,1) of product  ; operating with a weighted sideways sum  
                 s                                     ; If the ordinary sum of the digits method is used 
                'if x'0 then d21                       ; the weighted sideways sum is not used. x is the digit 
                                                       ; to the left in product, and y the digit to the right 
           \f

                     'modify sum: + product                 ; summation of weighted digits. 
                 s 
           
          d21:   compute product: = x+y                ; The contents of the box is only used when operating  
                 s                                     ; with the weighted sideways sum method. 
           
          d30:   modify control: = digits ( 1,1 ) of number ; The controldigit is selected. In the example 
                        check: = sum mod  10                ; the first digit to the right is selected. The  
                 s                                          ; box specifies the module figure as 10. 
                                                            ; This figure can be exchanged with others  
                                                            ; (9, 11, etc). 
           
                'compute check: = 10-check             ; This construction computes the immediately 
                 s                                     ; higher multiple of the module figure instead of  
                'modify check: = check mod 10          ; a modulo figure 
                 s                                     ; (might be omitted) 
           
                ' if control <' check then d32         ; the actual check 
           
          d31:   print   <l1   t20': >***** too large a figure   ; The error messages ought 
          d32:   print   <l1   t20': >***** illegal figure>      ; to reflect the current problems. 
                                                                 ; The incorrect field should also be  
                                                                 ; identified in the message. 
           
          Figure 76. 
           \f

                   JOB NN X JJJJJJ TIME 8 0 size 90000 perm kit1 500 5,      ; *** 1) and 10) 
          TEMP KIT2 5000 20 AREA 14 BUF 14                          ; *** 10) 
          MODE LIST.YES 
           
          ; THE FOLLOWING JOB EXECUTES A RUN, OF THE DES80 SYSTEM FOB OFF-LINE DEBUGGING OF READ-IN PROGRAMS. 
          ; 
          ; INFORMATION, WHICH MUST BE STATED OR MIGHT BE MODIFIED, WILL BE LISTED BELOW. THE VARIOUS CALL OF PROGRAM
          ; WILL, AS A RULE, USE THE CURRENT STANDARD NAMES. THE LINES, WHICH ARE TO BE MODIFIED, HAVE BEEN MARKED
          ; WITH THREE ASTERISKS AND A REFERENCE TO THE LIST BELOW. 
          ;  
          ; 1) THE JOB LINE: INITIALS (NN), INDEX (X), AND THE PROJECT NUMBER (JJJJJJ). 
          ; 2) BASES:        LLLLLL AND UUUUUU ARE THE LOWER RESPECTIVELY THE UPPER BASES FOR THE TEMPORARY FILES. 
          ; 
          ;                  BASES ARE FOUND BY MEANS OF THE FOLLOWING OPERATION: 
          ;                      PIP=SET 1 
          ;                      LOOKUP PIP 
          ;                  -' PIP=SET 1 ......; TEMP 
          ;                  -'; 1802 302 0 17500 17501 
          ;                  THIS GIVES: LLLLLL = 17500 AND UUUUUU = 175001 
          ;                  THE OPERATION MUST BE EXECUTED ON A TERMINAL, WHICH HAS BEEN LOGGED IN UNDER THE SAME
          ;                  INDEX (X) AS USED IN THE JOB LINE. 
          ; 3) USERFILE:     WITH INITIALS CORRESPONDING TO THOSE OF THE JOB LINE. 
          ; 4) USERFILE:     MAX USER: USER NO. - E.G. MAX USER: 3 (USER NO. 3).  
          ; 5) USERFILE:     THE NAME OF THE DESCRIPTION FILE - E.G. DESADESCR. 
          ; 6) USERFILE:     LOCAL DATA DESCRIPTION IN: SECTION 3.1. 
          ; 7) DES80ONLINE:  THE NAME OF THE AREA, IN WHICH THE TEST MATERIAL HAS BEEN PLACED, MUST BE SPECIFIED BY
          ;                  MEANS OF THE PARAMETER INPUT. 
          ; 8) SPLIT80:      THE NAME OF THE DESCRIPTION FILE: DESADESCR. 
          ;                  THE NAME OF THE TRANSACTION FILE FROM DES80: DES80IN. 
          ;                  THE NAME OF THE TRANSACTION FILE AFTER SPLIT: DES80OUT. 
          ;                  THE FILE NUMBERS IN THE TRANSACTION FILE AFTER SPLIT MUST BE STATED. 
          ; 
          ; 9) PRINT80:      THE STANDARD IS USED FOR ALL PARAMETERS.  
          ;                  ADAPTIONS MUST BE MADE. 
          ;10) KIT NAME:     THE NAMES KIT1 AND KIT2 MUST BE EXCHANGED WITH THE NAMES OF THE KITS HANDLING THE
          ;                  PERMANENT AND TEMPORARY RESOURCES. 
          ; 
           \f

                   LISTOUT=COPY 0 
          ; 
          ; FIRST OF ALL A USER FILE WITH 1 USER AND 1 TERMINAL IS CREATED 
          ;  
          USERSYS=SET 1 
          SYSDOK RUN.INIT SYSDOK.USERSYS. 
          1 DES80 
          2 DES80SYSTEM 
          3 LAUTRUPBJERG 1 
          4 2750 BALLERUP 
          5 DES80USERSYSTEM 
          6 123/46 
          7 123456 
          END 
          IF OK.NO 
          FINIS 
          SYSDOK SYSDOK.USERSYS 
          LOGIN UPDAT NN DES80 VERS.0                                                     ;*** 3) 
          NEW GAP. 10 
          /1. USER CATALOG 
          CATALOG: 
          CATBASE: LLLLLL UUUUUU                                                          ;*** 2) 
          MAXUSER: B MAXOP: 1                                                             ;*** 4) 
           
          USER: B DES80USER DESCRIPFILE 3.1                                               ;*** 4), 5), AND 6). 
          USERBASE: LLLLLL UUUUUU                                                         ;*** 2) 
          OP: 1  1  DES80OP 
          / 
          END 
          IF OK.NO 
          FINIS 
          CLEAR TEMP LISTOUT 
           
          USERFILE=SET 10 
          DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW 
          IF OK.NO 
          FINIS 
          ; 
           \f

                   ; 
          ; AT THIS STAGE THE DESCRIPTIONS ARE INITIALIZED 
          ; 
          DES80DATA=SET 1 
          DES80UPDATE BASE.LLLLLL.UUUUUU RUN.INIT LOG.DES80LOG                                ;*** 2) 
          IF OK.NO 
          FINIS 
          ; FINALLY A RUN WITH DES80ONLINE USING DATA FROM THE AREA <INPUT' IS EXECUTED 
          DES80LOG=SET 1 KIT1                                                                 ;*** 10) 
          SCOPE USER DES80LOG 
          JOURNAL=SET 1 KIT1                                                                  ;*** 10) 
           
          DES80ONLINE BASE.LLLLLL.UUUUUU INPUT.INPUT TEST.2.19                                ;*** 2) AND 7) 
          IF OK.NO 
          SKIP Q.7 
          ; 
          ; THE FOLLOWING CONCLUDING RUN PRODUCES A LOG CONTAINING THE TRANSACTIONS READ IN 
          ; 
          DES80UPDATE.LLLLLL.UUUUUU RUN.FINIS LIST.YES LISTOUT.JOURNAL                        ;*** 2) 
          IF OK.NO 
          FINIS 
          ; 
          ; FINALLY ALL TRANSACTIONS GENERATED ARE DOCUMENTED THROUGH A CONVERSION OF THE POSTING JOURNAL: JOURNAL AND
          ; REPLY AREA: DESVAR001 PLUS BY OUTPUT FROM SPLIT80 AND PRINT80. 
           
          CONVERT JOURNAL STD 
          CONVERT DESVAR001 STD                                                               ;*** 8) 
          LOOKUP DES80IN 
          IF OK.NO 
          SKIP Q.5 
          DES80OUT=SET 1 KIT1 0 0 0 20.1 0                                                    ;*** 8) AND 10) 
          TEXT=COPY 0 
          DESCRIPFILE=DESCRIP.DESCRIPFILE OUT.DES80OUT.II GVS.TEXT,                           ;*** 8) 
          IF OK.NO 
          SKIP Q.4 
          CONVERT TEXT STD 
          DESCRIPFILE=PRINT80                                                                 ;*** 9) 
          ; ADAPTION INSERTED HERE 
           \f

                   IF OK.NO 
          SKIO Q.3 
           
          ; QQQ 
          CLEAR USER DES80LOG 
          CLEAR USER JOURNAL 
           
          FINIS 
           
          Figure 77. 
           \f

                   JOB DESB 0 292932 TIME 8 0 SIZE 90000 PERM DISC1 500 5,   ; *** 1) AND 10) 
          TEMP DISC 5000 20 AREA 14 BUF 14                          ; *** 10) 
          MODE LIST.YES 
           
          ; THE FOLLOWING JOB EXECUTES A RUN, OF THE DES80 SYSTEM FOB OFF-LINE DEBUGGING OF READ-IN PROGRAMS. 
          ; 
          ; INFORMATION, WHICH MUST BE STATED OR MIGHT BE MODIFIED, WILL BE LISTED BELOW. THE VARIOUS CALL OF PROGRAM
          ; WILL, AS A RULE, USE THE CURRENT STANDARD NAMES. THE LINES, WHICH ARE TO BE MODIFIED, HAVE BEEN MARKED
          ; WITH THREE ASTERISKS AND A REFERENCE TO THE LIST BELOW. 
          ;  
          ; 1) THE JOB LINE: INITIALS (NN), INDEX (X), AND THE PROJECT NUMBER (JJJJJJ). 
          ; 2) BASES:        LLLLLL AND UUUUUU ARE THE LOWER RESPECTIVELY THE UPPER BASES FOR THE TEMPORARY FILES. 
          ; 
          ;                  BASES ARE FOUND BY MEANS OF THE FOLLOWING OPERATION: 
          ;                      PIP=SET 1 
          ;                      LOOKUP PIP 
          ;                  -' PIP=SET 1 ......; TEMP 
          ;                  -'; 1802 302 0 17500 17501 
          ;                  THIS GIVES: LLLLLL = 17500 AND UUUUUU = 175001 
          ;                  THE OPERATION MUST BE EXECUTED ON A TERMINAL, WHICH HAS BEEN LOGGED IN UNDER THE SAME
          ;                  INDEX (X) AS USED IN THE JOB LINE. 
          ; 3) USERFILE:     WITH INITIALS CORRESPONDING TO THOSE OF THE JOB LINE. 
          ; 4) USERFILE:     MAX USER: USER NO. - E.G. MAX USER: 3 (USER NO. 3).  
          ; 5) USERFILE:     THE NAME OF THE DESCRIPTION FILE - E.G. DESADESCR. 
          ; 6) USERFILE:     LOCAL DATA DESCRIPTION IN: SECTION 3.1. 
          ; 7) DES80ONLINE:  THE NAME OF THE AREA, IN WHICH THE TEST MATERIAL HAS BEEN PLACED, MUST BE SPECIFIED BY
          ;                  MEANS OF THE PARAMETER INPUT. 
          ; 8) SPLIT80:      THE NAME OF THE DESCRIPTION FILE: DESADESCR. 
          ;                  THE NAME OF THE TRANSACTION FILE FROM DES80: DES80IN. 
          ;                  THE NAME OF THE TRANSACTION FILE AFTER SPLIT: DES80OUT. 
          ;                  THE FILE NUMBERS IN THE TRANSACTION FILE AFTER SPLIT MUST BE STATED. 
          ; 
          ; 9) PRINT80:      THE STANDARD IS USED FOR ALL PARAMETERS.  
          ;                  ADAPTIONS MUST BE MADE. 
          ;10) KIT NAME:     THE NAMES KIT1 AND KIT2 MUST BE EXCHANGED WITH THE NAMES OF THE KITS HANDLING THE
          ;                  PERMANENT AND TEMPORARY RESOURCES. 
          ; 
           \f

                   LISTOUT=COPY 0 
          ; 
          ; FIRST OF ALL A USER FILE WITH 1 USER AND 1 TERMINAL IS CREATED 
          ;  
          USERSYS=SET 1 
          SYSDOK RUN.INIT SYSDOK.USERSYS. 
          1 DES80 
          2 DES80SYSTEM 
          3 LAUTRUPBJERG 1 
          4 2750 BALLERUP 
          5 DES80USERSYSTEM 
          6 123/46 
          7 123456 
          END 
          IF OK.NO 
          FINIS 
          SYSDOK SYSDOK.USERSYS 
          LOGIN UPDAT DESB DES80 VERS.0                                                   ;*** 3) 
          NEW GAP. 10 
          /1. USER CATALOG 
          CATALOG: 
          CATBASE: 11090 11090                                                            NB        
          MAXUSER: 2 MAXOP: 1                                                             NB          
           
          USER: 2 DES80USER ISCBEST 51                                                    NB                   
          USERBASE: 11090 11090                                                           NB      
          OP: 1  1  DES80OP 
          / 
          END 
          IF OK.NO 
          FINIS 
          CLEAR TEMP LISTOUT 
           
          USERFILE=SET 10 
          DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW 
          IF OK.NO 
          FINIS 
          ; 
           \f

                   ; 
          ; AT THIS STAGE THE DESCRIPTIONS ARE INITIALIZED 
          ; 
          DES80DATA=SET 1 
          DES80UPDATE BASE.11090.11090 RUN.INIT LOG.DES80.LOG                                 ;*** 2) 
          IF OK.NO 
          FINIS 
          ; FINALLY A RUN WITH DES80ONLINE USING DATA FROM THE AREA <INPUT' IS EXECUTED 
          DES80LOG=SET 1 DISC1                                                                ;*** 10) 
          SCOPE USER DES80LOG 
          JOURNAL=SET 1 DISC1                                                                 ;*** 10) 
           
          DES80ONLINE BASE.11090.11090 INPUT.TEST12 TEST.2.19                                 ;*** 2) AND 7) 
          IF OK.NO 
          SKIP Q.7 
          ; 
          ; THE FOLLOWING CONCLUDING RUN PRODUCES A LOG CONTAINING THE TRANSACTIONS READ IN 
          ; 
          DES80UPDATE.11090.11090 RUN.FINIS LIST.YES LISTOUT.JOURNAL                          ;*** 2) 
          IF OK.NO 
          FINIS 
          ; 
          ; FINALLY ALL TRANSACTIONS GENERATED ARE DOCUMENTED THROUGH A CONVERSION OF THE POSTING JOURNAL: JOURNAL AND
          ; REPLY AREA: DESVAR001 PLUS BY OUTPUT FROM SPLIT80 AND PRINT80. 
           
          CONVERT JOURNAL STD 
          CONVERT DESVAR001 STD                                                               ;*** 8) 
          LOOKUP TRANSFILE
          IF OK.NO 
          SKIP Q.5 
          INPUT12=SET 1 DISC1 0 0 0 20.1 0                                                    ;*** 8) AND 10) 
           
          DESBDESCR=SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20,                    ;*** 8)  
          DESCRIP.DESBDESCR 
          IF OK.NO 
          SKIP Q.4         
          DESBDESCR=PRINT80 FUNKTION.2 PAPER.2 DESCRIP.DESBDESCR                              ;*** 9) 
          A20 GENIUSFILE           
           \f

                   R20 OUTFORM.3 ; ALL OF THE RECORD 
          *             ; ALL RECORD TYPES 
          / 
          IF OK.NO 
          SKIP Q.3 
           
          ; QQQ 
          CLEAR USER DES80LOG 
          CLEAR USER JOURNAL 
           
          FINIS 
           
          Figure 78 
           \f

                   PRINT8Ø,   EDITED FORM,    DATE:  Ø3.1Ø.79,   TIME: 15.23.18   PAGE: 1 
                                      CONTENTS TYPE        ADR    ENQ. 
          R_E_C_O_R_D_:_ _ _ _ _ _ _2_ _B_S_F_I_L_E_ _R_E_C_O_R_D_ 
          _ 
          U2Ø._RECLONG                  28          2        2      1 
          U2Ø._CHECKSUM               -163          2        4      2 
          U2Ø._RECTYPE_                   2          2        6      3 
          U2Ø._CHANGE.DATE               Ø          2        8      4 
          U2Ø._GENIU_SER                  Ø          2       1Ø      5 
          U2Ø._CASE.KEY                             7       1Ø      6 
          U2Ø._CASENO.                 11Ø          2       12      7 
          U2Ø._CASETYPE                  Ø          2       14      8 
          U2Ø._TYPE _                     Ø          2       16      9 
          U2Ø._EMPL.KEY                             7       16     2Ø 
          U2Ø._EMPLOYEENO.               Ø          3       2Ø     21 
          U2Ø._WEEKNO.                   Ø          2       22     22 
          U2Ø._HOURS                    2Ø          2       24     23 
          U2Ø.MANHOURS                  Ø          3       28     24 
           
          Ø='0 (NUL) NIC. 
           
          Figure 81. 
           \f

                   * LISTOUT=COPY 0 
          CUR.INPUT SEGM. 0 0/0 
          * USERSYS=SET 1 
          * SYSDOK RUN.INIT SYSDOK.USERSYS 
          START SYSDOK, V5B 03.10.1979 15.19.46 
              0 SYSDOK RUN.INIT SYSDOK.USERSYS. 
           
          SYSDOKFILE CREATED AND INITIALIZED 
           03.10.1979   15.19 
            FILE _NAME      : USERSYS 
           
            PASSWORD       : DES80 
            NAME           : DES80SYSTEM 
            ADDRESS1       : LAUTRUPBJERG 1 
            ADDRESS2       : 2750 BALLERUP 
            HEADING        : DES80USERSYSTEM 
            CASE _          : 123/456 
            PROJECT _.      : 123456 
            TRANSFILE _NAME : 
            LANGUAGE       : 00 
            OUTFORMAT      :
            MAX.INPOS      : 100/65 
            START VERSION  : 1 
          END SYSDOK, V5B 03.10.1979 15.19.51 CPU:1 
          END 1Ø2 
          *IF OK.NO 
          * SYSDOK SYSDOK.USERSYS 
          START SYSDOK, V5B 3.10.1979 15.19.53 
              Ø SYSDOK SYSDOK.USERSYS 
             1Ø NEW GAP. 10 
            12Ø END 
                UPDATING BEGIN 
                UPDATING END, VERS.1 
          END SYSDOK, V5B 03.10.1979 15.20.00 CPU:1 
          END 149 
          * IF OK.NO 
          * CLEAR TEMP LISTOUT 
           \f

                   * USERFILE=SET 10 
          * DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW 
          START DES80 USER CAT.UPD, V  03.10.1979  15.20.02 
          DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW 
           
          STARTSYSDOK: USERSYS NOT AUT. VERS.1 
                       SECTION 1. USERCATALOG 
          *** CONVERT LISTOUT FILE NOT FOUND 
          END DES80 USER.CAT.UPD, V4 03.10.1979  15.10.05  CPU:1 
          END 107 
          * IF OK.NO 
          * DES80DATA=SET 1 
          * DES80DATA=SET 1 
          * DES80UPDATE BASE. 11090.11090 RUN.INIT LOG.DES80LOG 
          START DES80UPDATE V4, 11.09.78 3.10.1079 15.20.07 
          DES80UPDATE BASE. 11090. 11090 RUN.INIT LOG.DES80LOG 
           
          USERFILE: USERFILE 
          SYSDOK: USERSYS SECTION: 1. USERCATALOG VERSION: 1 CREATED: 3.10.1979 
          15.20.02 
          DES80 CONTEXT: DES80DATA 
          MAX: USERS OPERATORS. 
                 2        1 
           
          USER: DES8ØUSER 
           
          DESCRIPFILE: DESBDESCR51 CHANGED 
          LD NAME: CREATED: 2.1Ø.1978 15.3646 BY:DESB 
          END DES80UPDATE, V4, 11.09.79 03.10.1979 15.21.09 CPU:3 
          END 204 
          * IF OK.NO 
          * DES80LOG=SET 1 DISC1 
          * SCOPE USER JOURNAL 
          * DES80RETURN=SET 1 
          * DES80ONLINE BASE. 11090.11090 INPUT TEST12 TEST.2.19 
          START DES80ONLINE, V4, 04.10.1979 03.10.1979 15.21.12 
           \f

                   DES80ONLINE BASE. 11090.11090 INPUT.TEST12, TEST.2.19 
          BASES:    CAT           STD          USER           MAX 
                11090 11090   11090 11090   11090 11090   11090 11090 
           
          INPUT:           TEST12 OFFLINE 
          VIRTUAL FILE:    DES80DATA 
          LOGGING ON:      DES80LOG 
          MAX USERS:       2 
          MAX OPERATORS:   1 
          STATUS:          296 
          MAX D-ARRAY:     228 
          LINE LENGTH:     36 
          MAX LINE STACK:  20 
          MAX BUNDLES:     10 
           
          DUETSYSTEM: VERSION   : 72 EAH  29.09.78 
                      ACTIVATED :         03.10.78 - 15.21 
          DUETFILE:   IDENT     : 1       TESTUSER 
                      AREA      :         DES80DUET 
                      VERSION   : 5 DESB  2.10.79 - 15.38 
          USER ID     LOW         UP 
             2 DES80 USER 11090 11090 OK DUETSTART: 20 
           
          DESVAR001 CREATED ON DISC 
          USER: 2  BUNDLE: TEST HAS BEEN SENT 
           
          END DES80ONLINE, V4, 04.10.79 03.10.1979 15.21.56 CPU:7 
          END 1090 
          * IF OK.NO 
          * DES80UPDATE BASE. 11090.11090 RUN.FINIS LIST.YES LISTOUT.JOURNAL 
          START DES80UPDATE, V4, 11.09.79 03.10.1979 15.21.58 
          DES80UPDATE BASE. 11090.11090 RUN.FINISH LIST.YES LISTOUT.JOURNAL 
           
          USER FILE: USERFILE 
           \f

                   SYSDOK: USERSYS SECTION: 1. USER CATALOG VERSION: 1 CREATED: 03.10.1979 15.20.02 
          DES80 CONTEXT: DES80DATA 
          MAX: USERS OPERATORS. 
                  2        1 
          USER: DES80USER FINISHED 
           
          TRANSACTION LOG: DES80LOG NUMBER OF RECORDS: 28 
          SORTING OK: WRK001744 NUMBER OF RECORDS: 28 
          TRANSACTION JOURNAL ON JOURNAL HAS NOT BEEN CONVERTED 
           
          END DES80UPDATE, V4, 11.09.79 03.10.1979 15.22.06 CPU:1 
          END 100 
          * IF OK.NO 
          * CONVERT JOURNAL STD 
          * CONVERT DESVAR001 STD 
          * LOOKUP TRANSFILE 
           
          TRANSFILE =SET 1 DISC D.680101.0003 0 112 20.1.0 ; TEMP 
                    ; 334 167 0 11090 11090 
          *IF OK.NO 
          * INPUT12=SET 1 DISC1 0 0 0 20.1 0 
          * DESBDESCR+ SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20, 
             DESCRIP.DESBDESCR 
          START SPLIT80, V6 03.10.1979 15.22.13 
          DESBDESCR=SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20, 
             DESCRIP.DESBDESCR 
           
          FILE NAME            NO. OF RECORDS 
                               READ WRITTEN 
          TRANSFILE             4 
          INPUT/2                     0 
          GENIUSFILE            _ _ _ _ _ _ _4_ _ _ 
                     TOTAL:           4 
          END SPLIT80, V6 03.10.1979 15.22.25 CPU:2 
          END 122 
          *IF NOK.NO 
          * LISTOUT=COPY 0 
           \f

                   CUR.INPUT SEGM. 0 0/0 
          * DESBDESC=PRINT80 FUNKTION.2 PAPER.2 DESCRIP.DESBDESCR 
          START PRINT80, V6 03.10.1979 15.22.27 
          DESBDESCR=PRINT80 FUNCTION.2 PAPER.2 DESCRIP.DESBDESCR 
           
          END PRINT80, V6 03.10.1979 15.23.45 CPU:2 
          END 194 
          *IF OK.NO 
          * CLEAR USER DES80LOG 
          * CLEAR USER JOURNAL 
          * FINIS 
           
          Figure 82. 
           \f

                                                 i 
           
          F_O_R_E_W_O_R_D_ 
           
          First edition: RCSL No 31-D604. 
          RC850 Asynchronous V.24 Line Drivers, RC850 Serial Printer
          Driver, Reference Manual. 
           
           
          Second edition: RCSL No 31-D655. 
          PI-1 Machine Asynchronous V.24 Line Driver, Reference Manual. 
          The information given in RCSL No 31-D604 is no longer valid. The
          manual is therefore replaced by RCSL No 31-D655. 
           
          Ejvind Lynning 
          A/S REGNECENTRALEN af 1979, November 1981 
           
           \f

                                                 ii 
           \f

                                                 iii 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
                   1.  INTRODUCTION ..........................................   1 
           
          2.  TAsync DRIVER .........................................   2 
              2.1  General Description ..............................   2 
              2.2  Driver Messages and Answers ......................   2 
                   2.2.1  Initiate Request ..........................   2 
                   2.2.2  Special Initiate Request ..................   5 
                   2.2.3  Transmit Request ..........................   5 
                   2.2.4  Terminate Communication Request ...........   6 
                   2.2.5  Illegal Requests ..........................   6 
           
          3.  RAsync DRIVER .........................................   7 
              3.1  General Description ..............................   7 
              3.2  Driver Messages and Answers ......................   8 
                   3.2.1  Receive Request ...........................   8 
                   3.2.2  Illegal Requests ..........................   8 
           
           
          A_P_P_E_N_D_I_X_: 
           
          A.  REFERENCES ............................................   9 \f

                                                 iv 
           \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
           
          The driver described in this manual runs on the PI-1 machine
          (ref. 1) implemented on a Z80 microprocessor as part of an
          RC700 microcomputer or an RC850 terminal. 
           
          The asynchronous V.24 line driver supports character-oriented
          full duplex communication with a remote computer through a
          communication line attached to the PI-1 machine via the V.24 LINE
          interface, possibly through a modem. The driver uses a Z80-SIO
          interface chip. 
           
          The driver is coded in Z80 assembler language and must be
          included in a PASCAL80 system as part of its basic system. 
           
          As a matter of fact, in order to provide full duplex communica-
          tion, i.e. simultaneous and independent transmit and receive
          functions, t_w_o_ drivers service the SIO chip, the T_(ransmit)-
          A_s_y_n_c_(hronous) driver and the R_(eceive)A_s_y_n_c_(hronous) driver. 
           
          Both drivers enter the c_o_m_m_u_n_i_c_a_t_i_o_n_ _p_h_a_s_e_ following an
          'Initiate' request issued to the TAsync driver, and similarly
          both leave the communication phase following a 'Terminate Com-
          munication' request which is also issued to the TAsync driver. 
           
                   In the 'Initiate' request a number of parameters are given to de-
          termine details of the mode of communication, including transmis-
          sion speed, number of bits per character, etc. 
           
          In the communication phase the two drivers operate independently.
          When the drivers are not in the communication phase they are said
          to be in the idle phase. 
           
          The driver interfaces are specified in accordance with the gen-
          eral conventions for driver interfaces in PASCAL80 systems (ref.
          2). Note that the TAsync and RAsync drivers each have their own
                   request semaphore. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _T_A_s_y_n_c_ _D_R_I_V_E_R_ 2.
           
         2_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _D_e_s_c_r_i_p_t_i_o_n_ 2.1
           
          The TAsync driver supports transmission of characters either in
          single byte or block mode. It also handles initiation and termin-
          ation of the communication phase of the operation of the asyn-
          chronous line driver pair. 
           
          Regardless of the number of bits per transmitted character, each
          character is taken from one byte of the data buffer, right jus-
          tified, i.e. from the least significant bit positions, as many as
          needed. 
           
          In the communication phase the TAsync driver always maintains RTS
          (RequestToSend)=1 on the V.24 interface, and therefore expects
          CTS (ClearToSend)=1. When CTS=0 occurs, transmission of charac-
          ters stops immediately, and if the condition is persistent (lon-
          ger than a time-out period specified in the 'Initiate' request)
          during the processing of a 'Transmit' request, the request is
          aborted, i.e. returned with a result indicating 'CTS time-out'. 
           
           
2_._2_ _ _ _ _ _ _ _D_r_i_v_e_r_ _M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ 2.2
           
2_._2_._1_ _ _ _ _ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_ 2.2.1
           
          An 'Initiate' request causes the TAsync driver to 
          - program the write registers of the relevant channel of the SIO;
            this includes setting DTR=1 and RTS=1, 
          - wait for an indication of connection, either CTS=1 or DCD
            (DataCarrierDetected)=1 is acceptable, 
          - start the RAsync driver. 
           
          After successful processing of an 'Initiate' request the driver
          pair is in the communication phase, i.e. ready to process trans-
          mit and receive requests. 
           \f

                   c_o_d_i_n_g_: u1 = 1 x 4 + 0 
           
          Parameters determining the communication mode are contained in
          the data buffer which is locked to the type: 
           
          comm _mode _type=  RECORD 
              char _format: byte; 
              (*   nobc:   0..3;             (* bits 6-7 *) 
                        unused: 0..3;             (* bits 4-5 *) 
                   nosbc:  1..3;             (* bits 2-3 *) 
                   parity: (odd, even);      (* bit 1 *) 
                   parity _enable: BOOLEAN    (* bit 0 *)      *) 
              CTS _timeout: 0..255; 
              transmission _speed: 0..6 
          END; 
           
          The effect of the communication mode parameters is described in
          the following paragraphs: 
           
          c_h_a_r_a_c_t_e_r_ _f_o_r_m_a_t_ (char _format field) 
           
          The value of nosbc determines the number of stop bits added to
          each transmitted character as follows: 
               1     1     stop bit/character 
               2     1 1/2 stop bit/character 
               3     2     stop bits/character 
          At least one stop bit is always excepted in received characters. 
           
          If parity is enabled (parity _enable is TRUE), received characters
          are checked for correct parity and a parity bit is added to each
          transmitted character (odd or even parity as indicated by the
          parity field). Otherwise received characters are assumed to be
          followed immediately by a stop bit, and no parity bit is added to
          transmitted characters. 
           
                   The value of nobc determines the number of bits per received or
          transmitted character, excluding start, stop, and parity bits: 
               0     5 bits/character 
               1     7 bits/character   NB 
               2     6 bits/character   NB 
               3     8 bits/character 
                \f

          C_T_S_ _t_i_m_e_-_o_u_t_ _h_a_n_d_l_i_n_g_ (CTS _timeout field) 
           
          The value of CTS _timeout determines the reaction of the TAsync
          driver to the condition CTS=0 during the processing of a
          'Transmit' request. 
           
          If CTS _timeout=0 this condition will cause the driver to wait
          (indefinitely) for CTS=1 before transmitting another character.
          Otherwise CTS _timeout indicates the CTS time-out period, measured
          in basic delay time units (20 msec.). 
           
          t_r_a_n_s_m_i_s_s_i_o_n_ _s_p_e_e_d_ (transmission _speed field) 
           
          The same speed is used for the receive and transmit functions.
          The speed is determined by the value of transmission _speed as
          follows: 
               0    110 bits/sec. 
               1    300 bits/sec. 
               2    600 bits/sec. 
               3   1200 bits/sec. 
               4   2400 bits/sec. 
               5   4800 bits/sec. 
               6   9600 bits/sec. 
                
               p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_ 
           
          successful:       u2 = 0 
           
          After this result is returned the drivers are in the communica-
          tion phase. 
           
          Initiate timeout : u2 = 3 
           
                   This result occurs if no indication of connection (CTS=1 or
          DCD=1) is received within one second after the driver sets DTR=1.
          After this answer the drivers are still in the idle phase. 
           
           \f

     2_._2_._2_ _ _ _ _ _S_p_e_c_i_a_l_ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_ (with RTS=0)    2.2.2
           
          This request has the same effect as a normal 'Initiate' request
          with the following modification: 
           
          After initialization of the SIO chip the driver normally sets
          DTR=1 and RTS=1 on the V.24 interface simultaneously. When the
          'Special Initiate' request is processed the driver first sets
          DTR=1 and RTS=0, and only after an indication of connection does
          the driver set RTS=1. 
           
          This use of the V.24 signals is intended for control of the LIS
          701 line selector box, see ref. 3. 
           
          c_o_d_i_n_g_: u1 = 3 x 4 + 0 
           
          The parameters are the same as for the normal 'Initiate' request.
           
          p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_ 
           
          As for the normal 'Initiate' request. 
           
           
2_._2_._3_ _ _ _ _ _T_r_a_n_s_m_i_t_ _R_e_q_u_e_s_t_ 2.2.3
           
          The characters contained in the driver message are transmitted,
          cf. the general description of the TAsync driver. 
           
          c_o_d_i_n_g_: u1 = sbm x 8 + 2 (sbm = single byte mode) 
           
          If sbm = 1, the contents of u3 are transmitted. If sbm = 0, the
          bytes to be transmitted are taken from the data buffer in the
          standard way, see ref. 2. 
           
                   p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_ 
           
          successful   : u2 = 0 
           
          CTS time-out : u2 = 3 
           
           \f

2_._2_._4_ _ _ _ _ _T_e_r_m_i_n_a_t_e_ _C_o_m_m_u_n_i_c_a_t_i_o_n_ _R_e_q_u_e_s_t_ 2.2.4
           
          This request is only legal in the communication phase. It causes
          the TAsync driver to disable the SIO functions and both drivers
          to enter the idle phase. To resume communication an 'Initiate'
          request must be issued to the TAsync driver. 
           
          c_o_d_i_n_g_: u1 = 2 x 4 + 0 
           
          a_n_s_w_e_r_: u2 = 0 
           
           
         2_._2_._5_ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 2.2.5
           
          If an unintelligible driver message is received, the TAsync
          driver responds with u2 = 4. 
           
          A request which is illegal in the present phase, i.e. 
          - an 'Initiate' request in the communication phase, or 
          - a transmit, receive, or 'Terminate Communication' request in
            the idle phase 
          is answered with u2 = 1 x 8 + 4. 
           
           \f

F_       3_._ _ _ _ _ _ _ _ _R_A_s_y_n_c_ _D_R_I_V_E_R_ 3.
           
3_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _D_e_s_c_r_i_p_t_i_o_n_ 3.1
           
          The RAsync driver is controlled by the TAsync driver with respect
          to entering and leaving the communication phase. 
           
          In the communication phase the RAsync driver receives all char-
          acters arriving on the asynchronous communication line. When
          DCD=0 (no carrier signal) on the V.24 interface characters are
          not received. 
           
          Received characters are obtained from the driver by issuing 'Re-
          ceive' requests. 'Receive' requests are processed, i.e. used as
          receive buffers, in the order they arrive. The driver does not
          return a non-full buffer until an additional buffer has been re-
          ceived. Therefore double buffering should be used to avoid loss
          of incoming characters as well as unnecessary waiting when char-
          acters are already available. Each 'Receive' request is answered
          as soon as one of the following conditions hold: 
          - at least one character has been received into the buffer, and
            at least one more 'Receive' request has been received; 
          - the buffer is full and an additional character has been recei-
            ved. This character and any subsequent characters arriving be-
            fore the next 'Receive' request are lost; 
           
          Each received character is placed in one byte of the data buffer,
          right justified. If parity is enabled and the number of bits per
          character is less than 8 the parity bit is included in each char-
          acter byte. If the number of bits per character including parity
          is less than 8, the unused high order bits of each byte will be
          1. A character received with parity or framing error is replaced
          by the value 128. 
           
           \f

         3_._2_ _ _ _ _ _ _ _D_r_i_v_e_r_ _M_e_s_s_a_g_e_ _a_n_d_ _A_n_s_w_e_r_s_ 3.2
           
3_._2_._1_ _ _ _ _ _R_e_c_e_i_v_e_ _R_e_q_u_e_s_t_ 3.2.1
           
          c_o_d_i_n_g_: u1 = 1 
           
          The data buffer is used according to convention, see ref. 2. 
           
          p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_: 
           
          successful:       u2 = 0 
           
          The message contains one or more received characters as indicated
          by next, see ref. 2. 
           
          not processed : u2 = 1 
           
          This answer is used for requests which are queued when the driver
          leaves the communication phase. The contents of the data message
          are undefined. 
           
          overrun       : u2 = 2 
           
          The message is full of received characters, i.e. next=last+1. At
          least one character has been lost. 
           
          hard overrun: u2 = 2 x 8 + 2 
           
          An overrun occured in the SIO. Normally this will not be
          possible. 
           
           
     3_._2_._2_ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 3.2.2
           
          If an unintelligible driver message is received, the RAsync
          driver answers with u2 = 4. 
           
           \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          1  RCSL 31-D615: 
               The PI-1 Machine, Reference Manual 
           
          2  RCSL 31-D617: 
               PASCAL80 Driver Conventions 
           
          3  RCSL 31-D619: 
               LIS 701, V.24 Line Selector 
                
           \f

F_                                 
                          \f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  INTRODUCTION ...........................................   1 
           
          2.  DRIVER MESSAGES AND ANSWERS ............................   2 
              2.1  Initiate Request ..................................   2 
              2.2  Transmit Request ..................................   4 
              2.3  Wait Ready Request ................................   4 
              2.4  Illegal Requests ..................................   5 
           
           
          A_P_P_E_N_D_I_X_: 
           
          A.  REFERENCES .............................................   7 
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_                                                     1.
           
          This manual describes the PI-1 machine (ref. 1) printer driver
          which is intended for use on RC700 and RC850. The printer driver
          supports a serial printer connected to the RC700 or RC850 via the
          V.24 PRINTER interface using asynchronous transmission at speeds
          ranging from 110 to 9600 bps. The interface is handled by means
          of the Z80-SIO chip. 
           
          The printer driver incorporates RC standard use of V.24 signals
          as follows: 
           
          DCD indicates printer online/offline (1/0) 
          CTS indicates printer busy/not busy (0/1). 
           
          A number of parameters determining details of the mode of commu-
          nication are given in an 'Initiate' request, including transmis-
          sion speed, number of bits per character etc. 
           
          Characters are transmitted either in single byte or buffer mode.
          The driver is transparent with respect to character codes; in
          particular it gives no special treatment to CR, LF and FF. Re-
          gardless of the number of bits per character, each transmit
          character is taken from one byte of the data buffer (or single
          byte), right justified, i.e. using the least significant bit
          positions. 
           
          The driver supports timeout on the printer busy condition, accor-
          ding to a timeout parameter supplied in the 'Initiate' request.  
           
          The printer driver is coded in Z80 assembly language and must be
          included in a PASCAL80 system as part of its basic system. 
           
          The driver interface is specified in accordance with the general
          conventions for driver interfaces in PASCAL80 systems (ref. 2).
           
           \f

F_       2_._ _ _ _ _ _ _ _ _D_R_I_V_E_R_ _M_E_S_S_A_G_E_S_ _A_N_D_ _A_N_S_W_E_R_S_    2.
           
2_._1_ _ _ _ _ _ _ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_    2.1
           
          The 'Initiate' request is used to specify communication mode
          parameters. It must be issued as the first request to the driver
          and may subsequently be re-issued any time if the parameters must
          be changed. 
           
          c_o_d_i_n_g_: u1 = 1x4+0 
           
          Parameters are coded in the data buffer which is locked to the
          type: 
           
          comm _mode _type= RECORD 
              char _format: byte; 
              (*   nobc:   0..3;          (* bits 6-7 *) 
                   unused: 0..3;          (* bits 4-5 *) 
                   nosbc:  1..3;          (* bits 2-3 *) 
                   parity: (odd, even);   (* bit 1 *) 
                   parity _enable: BOOLEAN (* bit 0 *)      *) 
              CTS _timeout: byte; 
              transmission _speed: 0..6 
          END; 
           
          The effect of the communication mode parameters is described in
          the following paragraphs: 
           
          c_h_a_r_a_c_t_e_r_ _f_o_r_m_a_t_ (char _format field) 
           
          The value of nosbc determines the number of stop bits added to
          each transmitted character as follows: 
               1     1     stop bit/character 
               2     1 1/2 stop bit/character 
               3     2     stop bits/character 
           
          At least one stop bit is always expected in received characters. 
           \f

                   If parity is enabled (parity _enable is TRUE) a parity bit is
          added to each transmitted character (odd or even parity as indi-
          cated by the parity field). Otherwise no parity bit is added.  
           
          The value of nobc determines the number of bits per received or
          transmitted character, excluding start, stop and parity bits: 
           
             0     5 bits/character 
             1     7 bits/character     NB 
             2     6 bits/character     NB 
             3     8 bits/character 
           
          The normal value of char _format for RC printers (7 bits/charac-
          ter, even parity) is 79. 
           
          C_T_S_ _t_i_m_e_-_o_u_t_ _h_a_n_d_l_i_n_g_ (CTS _timeout field) 
           
          The value of CTS _timeout determines the reaction of the printer
          driver to the condition CTS=0 (printer busy) during the process-
          ing of a 'Transmit' request. 
           
          If CTS _timeout=0 this condition will cause the driver to wait
          (indefinitely) for CTS=1 before transmitting another character.
          Otherwise CTS _timeout indicates the CTS time-out period, measured
          in seconds. 
           
          t_r_a_n_s_m_i_s_s_i_o_n_ _s_p_e_e_d_ (transmission _speed field) 
           
          The speed is determined by the value of transmission _speed as
          follows: 
           
             0      110 bits/sec. 
             1      300 bits/sec. 
             2      600 bits/sec. 
             3     1200 bits/sec. 
             4     2400 bits/sec. 
             5     4800 bits/sec. 
             6     9600 bits/sec. 
           
          p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_: u2 = 0 
           \f

         2_._2_ _ _ _ _ _ _ _T_r_a_n_s_m_i_t_ _R_e_q_u_e_s_t_                                                    2.2
           
          The characters contained in the driver message are transmitted,
          cf. the general description given in chapter 1. 
           
          c_o_d_i_n_g_: u1 = 8*sbm+2 (sbm means single byte mode) 
           
          If sbm=1 the contents of u3 are transmitted as one character. If
          sbm=0 (buffer mode) the characters to be transmitted are taken
          from the data buffer in the standard way (ref. 2). 
           
          p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_ 
           
          successful:      u2 = 0 
          busy timeout:    u2 = 0*8+3 
          offline:         u2 = 1*8+3 
           
          If a 'Transmit' request is aborted because of timeout or printer
          offline, next (ref. 2) will indicate how many characters were
          transmitted before the abort. 
           
           
2_._3_ _ _ _ _ _ _ _W_a_i_t_ _R_e_a_d_y_ _R_e_q_u_e_s_t_ 2.3
           
          This request may be issued to wait for the printer to get ready
          after a 'Transmit' request abort. 
           
          c_o_d_i_n_g_: u1 = 0 
                  u3 = max. waiting time in seconds, 0 means indefinite 
           
          p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_ 
           
          successful:      u2 = 0 (DCD=1, CTS=1) 
          busy timeout:    u2 = 0*8+3 (DCD=1, CTS=0) 
          offline timeout: u2 = 1*8+3 (DCD=0, CTS=0) 
           
           \f

         2_._4_ _ _ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 2.4
           
          If an unintelligible driver message is received the printer
          driver answers with u2=4. 
           
           \f

F_                                 
                          \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          1  RCSL No 31-D615: 
               The PI-1 Machine, Reference Manual 
           
          2  RCSL No 31-D617: 
               PASCAL80 Driver Conventions 
           
           \f

F_                                 
                          \f

«eof»