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

⟦b40652add⟧ TextFile

    Length: 211328 (0x33980)
    Types: TextFile
    Names: »D24«

Derivation

└─⟦4233bed4d⟧ Bits:30005867/disk04.imd Dokumenter (RCSL m.m.)
    └─⟦this⟧ »D24« 

TextFile

  
      BOOK-KEEPING POSTINGS
 
   LIMITS
    COMMAND    VARIABLES                                  DESCRIPTION                COMMENTS
MIN.      MAX.

    tpb                                                      Test print. 
 
    ba         journal code           1         99           Open book-keeping          * Within currentcalen-
               date                   *         *                                       dar year but earlier
                                                                                        than system"sdate. Date
                                                                                        Date is typed ddmmyy.

    bb         type                   1         2            Debit or credit posting.   1 = debit 
                                                                                        2 = credit 
 
    bc         voucher no.            1         999 999                                 The account no. must
               account no.            0         9999999                                 satisfy a reminder
               sum                    1         9999999999                              7 check.              
                 text code              0         99
               text                   0         32 chars
               VAT                    0         99999999 
               VAT code               1         4 
 
    bd                                                       Debit sum, credit sum  
                                                             and balance appear on 
                                                             terminal display. 
 
    be                                                       Close book-keeping
                                                             postings. 
 
    b?                                                       Display book-keeping. 
 
    bx                                                       Cancel book-keeping. 
 
                                                                                         \f

  
      STOCK TRANSACTIONS 
 
   LIMITS
    COMMAND    VARIABLES                                  DESCRIPTION                COMMENTS
MIN.      MAX.

    tpl                                                      Test print. 
 
    lat                                                      Start stock transactions. 
 
    lb         type                   1         7            Entry of stock  
               marking                0         1            transactions. 
             article no. 
             quantity  
             "order ref." 
             "order date" 
 
    lc                                                       Close stock 
                                                             transactions. 
 
    l?                                                       Display stock 
                                                             transactions. 
 
    lx                                                       Cancel stock 
                                                             transactions. 
 \f

                   Program Name: POSTINGS                  Process Name.............
           
         1.0       INTRODUCTION 
           
           
          The following describes the procedure from the loading of the
          program (see Section 1.2) to the point where the program can be
          operated. The actual operation of the program POSTINGS is de-
          scribed in sections 1.1 and 1.2 of this appendix. (This program
          contains both book-keeping postings and stock transaction rou-
          tines). 
           
          P_r_o_g_r_a_m_ _I_n_i_t_i_a_l_i_z_a_t_i_o_n_ 
           
          N_o_t_e_:_ The following procedure can only be performed from the
          "process owner terminal", i.e. that terminal where the "process
          name" in Section 5.2.1 is entered. 
           
          1) Where the command to load the program has been given as de-
             scribed in Section 1.2.1, the following will appear on the
             terminal display: 
           
             # postings 
             RC 6000 Invoicing System Version 25.08.1976 
             postings or stock transaction date: system data' 
             country code' country name' 
           
          2) It will take approximately 1 minute for the program to ini-
             tialize after which the following will appear on the terminal
                  display: 
           
             initializing end 
             ESC and process name 
           
          3) Type: 
                    ESC 
             The text 
                    att # 
             will appear on the terminal display. 








          RCSL No. 42-i 0827 
          Page 1 of 22\f

          4) Type: 
                    process name'  RETURN   (Process name is given at the
                                              beginning of this appendix.) 
           
             The following will appear on the terminal display: 
           
              postings or stock transaction system date' 
              # 
           
          5) Type: 
                    id identification text' 
             The following will now appear on the terminal display: 
                    # 
           
                   6) Proceed to Section 1.1 or 1.2 of this appendix. 
           
                   R_e_m_o_v_i_n_g_ _t_h_e_ _P_O_S_T_I_N_G_S_ _P_r_o_g_r_a_m_ 
           
          1) When # appears on the terminal display, 
             Type: 
                    luk identification text'  RETURN 
           
          2) When the # appears on the terminal display, 
             Type: 
                    end 
           
          3) If the end command is accepted the following will appear on
             the terminal display: 
           
              postings or stock transactions terminated 
              end number' 
              # 
           
              Hereafter a new program can be loaded as described in Section
          5.2.1. 
                    
           










                   RCSL No. 42-i 0827
                   Page 2 of 22 \f

         1.1       Book-keeping Postings Routine 
           
          Insert the paper for book-keeping postings in the printer. 
           
         1.1.1      To OBTAIN A TEST PRINT OF A BOOK-KEEPING POSTINGS FORM 
           Type: 
           tpb      RETURN 
           
         1.1.2      To BEGIN BOOK-KEEPING POSTINGS 
           Type: 
           ba journal code' date'  RETURN 
           
          Journal code must be between 1 and 99. 
          The date must be within the current calender year and earlier
          than the system"s date. 
           
     1.1.3      ENTER TYPE OF POSTINGS - DEBIT OR CREDIT 
           Type: 
           bb type'  RETURN 
           
          If type' = 1 then the following are debit postings. 
          If type' = 2 then the following are credit postings. 
           
          N_o_t_e_:_ The most appropriate routine, timewise, is to type in all
          debit postings using the bc command (see 3.1.4), change the
          type' to credit using the bb command, and then continue with all
          credit postings. 
           
     1.1.4      To ENTER THE POSTINGS 
           Type: 
           bc voucher no.'account no.'sum'"text code'""text'" 
              "vat'""vat code'"  RETURN 
           
          Each posting will be written out consecutively on the printer. 
           
          Voucher no.         The number on the original voucher from which
                              the sum is quoted. Voucher no. must bebetween
                              1 and 999 999. 
           








                   RCSL No. 42-i 0827
          Page 3 of 22\f

                   Account no.         Number of the account where the sum is to be
                              debited or credited. If account number is
                              greater than 2 000 000 then the account must
                              exist in the RC account file. If the account
                              number is greater than 1 000 000 but less
                              than 2 000 000 then the amount will be col-
                              lected at account for creditors (account
                              number is fetched from company file field
                              45). The account number in the posting must
                              pass a remainder 7 check. If account number
                              is less than 1 000 000 it is a posting to a
                              debtor. The debtor must exist in the debtor-
                              file. 
                               
          Sum                 Sum (including VAT) must be within the limits
                              1 and 9 999 999 999. 
                               
               TEXT code           Text code must lie between 0 and 99. 
                               
               TEXT                Maximum 32 characters. 
                               
               VAT                 VAT must lie within the limits 0 and 99 999999.
                               
          VAT code            1 incoming VAT sum 
                              2 outgoing VAT sum 
                              3 incoming VAT % 
                              4 outgoing VAT % 
                               
          If VAT is stated then VAT code must also be stated and vice ver-
          sa. 
              
          Only one of the variables text code' and text' must be stated. 
           
          The postings are as follows: 
           
          VAT code = 0:       sum' is posted at account account no' or at
                              account for creditors. 
           
          VAT code = 1:       VAT' is posted at the account which number
                              is fetched from company file field 105. 
                              sum' - VAT' is posted at account account no.'
           
          VAT code = 2        VAT' is posted at the account which number 
                              is fetched from company file field 36. 
                              sum' - VAT' is posted at account account no.'
           

                   RCSL No. 42-i 0827
Page 4 of 22\f

                   VAT code = 3:       VAT' amount is calculated at basis on the
                              entered percent. If the entered percent is
                              not among the VAT-percents in company file 
                              field 35, 37, 39, 41, or 43 the postings is 
                              refused. 
                              VAT as amount is posted at account for in- 
                              coming VAT. Account no. is fetched from that 
                              to the percent corresponding field in company
                              file among field 105-109. 
                              sum' - calculated vat is posted at account 
                              account no.'. 
           
          VAT code = 4:       VAT' as amount is calculated at basis at the
                              entered percent. If the entered percent is
                              not among the VAT percents in company file
field 35, 37, 39, 41, or 43, the posting is
refused. 
                              VAT as amount is posted at the account for
                              outgoing VAT, which number is fetched from
                              the field in company file following the field
                              containing the percent. 
                              sum' - calculated vat is posted at account
                   account no.' 
                               
        If account no is less than 1000000 then it is a posting to a
          debtor. In this case a possible VAT code is disregarded. 
           
          If the amount in the posting is equal the balance on the debtor
          then the following changes are made on the debtor: 
                   balance is set to zero, 
                           paid in is set to old value plus amount from the posting,
         paid in date is set to date from the posting, 
                   cleaning mark is set to 1. 
           
          If the amount in the posting is less than the balance, there are
          several cases to take into consideration. 
           
          If we yield cash discount in this case and the difference is less
          than the cash discount then the difference is regarded as cash
          discount and on the debtor the following changes are made: 
           
                  "paid in"is set to old value + amount from the posting, 
                  "paid in date"is set to the date from the posting, 
                  "cash discount"is set to balance amount from the posting,
                 "balance"is set to zero, 
                  "cleaning mark" ist set to 1.
           
          RCSL No. 42-i 0827 
          Page 5 of 22 \f

                   "Cash discount"is debited at the account for cash discount. 
           
          If the balance after subtraction of the amount paid in and a
          possible cash discount is less than limit for small differences
          (company file field 63) then the rest is written off, and debited
          account for small differences (account no. in company file field
          62). 
           
          If the balance after subtraction of the amount paid in and a
          possible cash discount is greater than the limit for small
          differences we will no yield cash discount. On the debtor the
          following changes are made: 
                    balance is set to old value - amount in the posting, 
                    paid in is set to old value + amount in the posting, 
                    paid in date is set to date from the posting. 
           
          If the amount in the posting is greater than the debtors balance,
          the debtor has paid to much. If the difference is less than the
          limit for small differences in company file, then the difference
          is credit account for loss on debtors. If this is not the case,
          the debtor will remain with a negative balance. 
           
          If the postings is a debit posting to a debtor, it is regarded as
          a payment to the debtor. 
           
         1.1.5      IF DISPLAY OF BALANCE IS REQUIRED 
           Type: 
           bd       RETURN 
           
          The debit sum, credit sum and the balance will now appear on the
          terminal display. 
                















                   RCSL No. 42-i 0827 
          Page 6 of 22\f

         1.1.6      To CLOSE A SET OF POSTINGS 
           Type: 
           be       RETURN 
           
          If the balance is zero then book-keeping postings are closed.
          Hereafter the program may be ended or stock transactions may be
          entered. 
           
          If the balance is not zero, it will appear on the terminal dis-
          play, accompanied by a warning tone. The operator must then,
          using the commands bb and bc, debit or credit an appropriate
          account so that the balance becomes zero. 
           
          If the journal code is identical to that in the company file,
          field 56 then the debit/credit equality check is not made. There
          is, therefore, always a possibility of correcting earlier errors.
           
          N_o_t_e_: If the text: 
           
           change diskette 
           
          appears on terminal display after be command then the flexible
          disc is full. The program will now stop. the following procedure
          should then be followed: 
          1) Remove the flexible disc. 
          2) Insert new flexible disc which has already been named with
             flxdope program (see Section 1) and has color blue. 
               3) Repress WRITE PROTECT pushbutton. Light must be out. 
             Type: 
                    da flxname'  RETURN 
             This tells the postings program what the flexible disc is
             called. flxname' should appear on the flexible disc cover. 
           
          4) When the # character appears proceed with postings program -
             i.e. type the last postings once more. 
           
         1.1.7      To DISPLAY THE LAST ENTERED POSTINGS 
           Type: 
           b?   RETURN 
           
          Up to ten postings are displayed. 
           





RCSL No. 42-i 0827
                   Page 7 of 22\f

         1.1.8      To CANCEL THE LAST ENTERED POSTINGS 
           Type: 
           bx       RETURN 
           
          Only the postings which can be displayed by b? can be cancelled. 
           
           

























ry














         RCSL No. 42-i 0827
          Page 8 of 22 \f

       1.2       Stock Transactions 
           
          Insert the paper for stock transactions in the printer. 
           
       1.2.1      To OBTAIN A TEST PRINT OF THE STOCK TRANSACTION FORM 
           Type: 
           tpl      RETURN 
           
          The printer should now be adjusted, if required. 
           
       1.2.2      To OPEN STOCK TRANSACTIONS 
           Type: 
           lat      RETURN 
           
       1.2.3      To ENTER THE STOCK TRANSACTIONS 
           Type: 
           lb type'marking'article no.'quantity' 
           "order reference'""delivery date'"  RETURN 
           
          Type  from 1 to 7 inclusive (see meaning in RC 4000 User"s Guide)
          Marking    0 or 1           (see meaning in RC 4000 User"s Guide)
          Article no.                  must exist in article file 
          Delivery data written ddmmyy. Validity check made 
           
          If type = 1, 5 or 6 all variables are compulsory 
          If type = 2, 3 or 7 order no.' and delivery date' are unnecessary
          If type = 4 then the posting is rejected. 
           
          The transactions are written out consecutively on the printer so
          that only one terminal should be active during entry of stock
          transactions. 
           
         1.2.4      To CLOSE STOCK TRANSACTIONS 
           Type: 
           lc       RETURN 
           











RCSL No. 42-i 0827 
                   Page 9 of 22 \f

         1.2.5      To DISPLAY THE LAST ENTERED STOCKTRANSACTIONS 
           Type: 
           l?       RETURN 
           
          Up to ten stocktransactions are displayed. 
           
         1.2.6      To CANCEL THE LAST ENTERED STOCKTRANSACTION 
           Type: 
           lx       RETURN 
           
          Transactions can be cancelled from behing. Only transactions that
          can be displayed by l? can be cancelled. 
           
           
     1.3       Summary of Book-keeping Postings and Stock Transactions 
           
          The following pages contain a summary of all commands associated
          with book-keeping postings and stock transactions. The variables
          associated with the various commands are written in the correct
          order together with information on the upper and lower limits
          which these variables can take in practice. The description sec-
          tion states the function of the command and the comments section
          informs of any special requirements which may be valid for a par-
          ticular command or its variables. 























         RCSL No. 42-i 0827
          Page 10 of 22\f

                   BOOK-KEEPING POSTINGS 
           
           
          COMMAND   VARIABLES           LIMITS              DESCRIPTION                COMMENTS 
                                     MIN.   MAX. 
           
            tpb                                             Test print. 
 
            ba      journal code     1      99              Open book-keeping          *Within current calendar 
                    date             *      *                                          year but earlier than sys- 
                                                                                       tem"s date. Date is typed 
                                                                                       ddmmyy. 
 
            bb      type             1      2               Debit or credit posting.   1 = debit 
                                                                                       2 = credit 
 
            bc      voucher no.      1      999 999                                    *If the acount no. is greater 
                    account no.      0      200 000*                                   than 200 000 then the account 
                    sum              1      9 999 999 999                              no. must satisfy a remainder 7 
                    text code        0      99                                         check. 
                    text             0      32 chars. 
        VAT              0      99 999 999 
                    VAT code         1      4 
 
            bd                                              Debit sum, credit sum and 
                                                            balance appear on termi- 
                                                            nal display. 
 
            be                                              Close book-keeping 
                                                            postings. 
 
            bz                                              Display book-keeping. 
 
            bx                                              Cancel book-keeping. 

         RCSL No. 42-i 0827
Page 11 of 22\f

                   STOCK TRANSACTIONS 
           
           
          COMMAND   VARIABLES           LIMITS              DESCRIPTION                COMMENTS 
                                     MIN.   MAX. 
           
            tpl                                             Test print. 
 
            lat                                             Start stock transactions. 
             
            lb      type             1      7               Entry of stock trans- 
                    marking          0      1               actions. 
                    article no. 
                    quantity 
                    "order ref." 
                   "order date" 
 
            lc                                              Close stock transactions. 
 
            l?                                              Display stock transactions 
             
            lx                                              Cancel stock transactions. 










         RCSL No. 42-i 0827
Page 12 of 22\f

         1.4       Error Messages 
           
          The following error messages can occur during operation of the
          postings program. 
           
          Error messages will have the following general appearance: 
           
                    error error message no.' 
                    "error message text line 1'" 
                    "error message text line 2'" 
                    "error message text line 3'" 
                     
                    "figure 1'" 
                    "figure 2'" 
                             "figure 3'" 
 
          The following is a numerical list of error messages with further
          information together with suggestions for remedial action. 
           
           
                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _3_ 
           
          Text:     Command context incorrect.
           
          Information:        None 
           
          Cause:              e.g. da command used twice. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_8_ 
           
          Text:               Printer error. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _4_3_ 
           
          Text:               Incorrect flexible disc. 
           
          Information:        None 
           
          Cause:              Incorrect flexible disc or flxname' used. 
           
          Remedial action:    1) Insert the correct flexible disc. 
                              2) Type correct da command with correct 
                                      flxname' variable. 
                
           
          RCSL No. 42-i 0827
                   Page 13 of 22\f

                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _4_4_ 
           
          Text:               Incorrect use of flexible disc. 
           
          Information:        None 
           
          Cause:              Flexible disc color (flxcolor' parameter)
                              does not correspond to that typed in. 
                
          Remedial action:    Use the correct flexible disc. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _4_6_ 
           
                   Text:               No room on flexible disc. 
           
          Information:        None 
           
          Cause:              Insufficient storage space available on the
                              flexible disc. 
                
          Remedial action:    Insert another flexible disc with sufficient
                              storage space. 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _4_7_ 
           
          Text:               flx-name format illegal 
           
          Information:        None 
           
          Cause:              The diskettenumber contains other characters
                              than small letters and digits (maybe a
                                   space). The diskettenumber must be at exact 6
                                   small letters and digits. 
                
          Remedial Action:    Retype the command with the right number. 










          RCSL No. 42-i 0827
          Page 14 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _4_8_ 
                
          Text:               Impossible to create peripheral process. 
           
          Information:        The result of the monitor call. 
           
               Cause:              1. function forbidden in calling process 
                              2. calling process is not a user, catalog i/o
                                          error 
                             (3. name conflict) 
                              4. device number does not exist 
                              5. device is reserved by another user 
                             (6. name format illegal) 
           
               This error would only occur if the process was not created cor-
          rectly. 
                    
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_1_ 
           
          Text:               Incorrect date. 
           
          Information:        None 
           
          Cause:              The entered date does not comply with the
                                   rules for dates (e.g. 310476 or 401399 are
                              incorrect). The correct format is: 
                                       day'month'year' 
                             e.g. 130776. 
           
          Remedial action:    Retype command with the correct date. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_2_ 
           
          Text:               Post-dated postings. 
           
          Information:        None 
           
          Cause:              The entered date must not be post-dated
                              relative to the system date. 
           
          Remedial action:    Retype the command with the correct date. 
           



RCSL No. 42-i 0827
          Page 15 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_3_ 
           
          Text:               Illegal voucher no. 
           
          Information:        None 
           
          Cause:              Typed an illegal voucher no. 
           
          Remedial action:    Type the command with the correct variable. 
 
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_4_ 
           
          Text:               Account does not exist in account file. 
           
          Information:        None 
           
          Cause: 
           
                   Remedial action:    1) Check that account no. is typed correctly
                                 in. Or: 
                                       2) Note that this account no. must be opened
                                 when File Maintenance program is used. 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_5_ 
           
          Text:               Incorrect remainder 7 check 
           
          Information:        None 
           
          Cause:              The entered account no. cannot exist because
                              the remainder 7 check is incorrect. 
                
          Remedial action:    Enter the command once more with the correct
                              number, or return the order form to order
                                   administration for correction of the order
                              no. 
           
           







RCSL No. 42-i 0827
          Page 16 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_6_ 
           
          Text:               VAT or VAT code missing. 
           
          Information:        None 
           
          Cause:              If VAT is stated then VAT code must also be
                              stated and vice versa. 
           
          Remedial action:    Type command with both variables. 
                    
           
                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_7_ 
 
          Text:               VAT pct does not exist in company file 
 
          Information:        None 
 
          Cause:   
      
 
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_8_ 
           
               Text:               Text or Text code missing. 
 
          Information:        None 
 
          Cause:              One of the variables Text code or Text must
                                   be stated. 
 
          Remedial action:    Type command with both variables. 
           
      
E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_9_ 
 
          Text:               Article does not exist in article file. 
 
          Information:        None 
 
          Cause:              Error message occurs with command v? "display
                              article". 






          RCSL No. 42-i 0827 
          Page 17 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_0_ 
           
          Text:               Incorrect date. 
           
          Information:        None 
           
          Cause:              The entered date does not comply with the
                              rules for dates (e.g. 310476 or 401399 are
                              incorrect). The correct format is: 
                    day'month'year' 
                                       e.g. 130776. 
           
          Remedial action:    Retype command with the correct date. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_1_ 
                    
          Text:               All variables must be stated.
 
          Information:        None 
           
          Cause:              Some variables missing. 
           
          Remedial action:    Retype command with all necessary variables. 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_2_ 
           
          Text:               Marking must be 0 or 1. 
           
          Information:        None 
           
          Cause:              Wrong marking value. 
           
          Remedial action:    Type command with correct marking variable. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_3_ 
           
          Text:               Only one terminal is allowed. 
           
          Information:        None 
           
          Cause:              Attempted use of more than one terminal. 
           
          Remedial action:    None. 
           
                   RCSL No. 42-i 0827
          Page 18 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_4_ 
                    
          Text:               Code must not be 4. 
           
          Information:        None 
           
          Cause:              Wrong value. 
           
          Remedial action:    Type correct value. 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_5_ 
           
          Text:               No further lines to cancel. 
           
          Information:        None 
           
          Cause:              Only the lines which can be displayed by l?
                              or b? can be cancelled. 
           
          Remedial action: 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_6_ 
           
          Text:               Posting to a not existing debtor. 
           
          Information: 
           
          Cause: 
           
          Remedial action: 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_7_ 
           
          Text:               Debtor disappeared. 
           
          Information:        Debtor number. 
           
          Cause: 
           
          Remedial action: 




          RCSL No. 42-i 0827
          Page 19 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_8_ 
                    
          Text:               Error account does not exist in accountreg. 
           
                   Information:        Account no. from company file. 
           
          Cause: 
           
          Remedial action: 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_9_ 
           
          Text:               Collecting account for creditors does not
                              exist in company file. 
                
          Information:        Account no. from company file. 
           
          Cause: 
           
          Remedial action: 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_2_0_ 
           
          Text:               Account disappeared. 
           
          Information: 
           
          Cause:             Program or hardware error. 
           
          Remedial action: 
           
           













          RCSL No. 42-i 0827 
          Page 20 of 22\f

                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_2_1_ 
           
          Text:               Account for VAT does not exist in accountfile.
           
          Information:        Account no. from company file 
                             Accumulated part of VAT. 
          Accumulated cash discount. 
                              Accumulated small differences. 
                   Cause:
           
          Remedial action: 
           
           
                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_2_2_ 
                    
          Text:               Account for cash discount does not exist in
                              account file. 
           
          Information:        Account no. from company file. 
                             Accumulated cash discount. 
                                   Accumulated small differences. 
           
          Cause: 
           
          Remedial action: 
                
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_2_3_ 
                    
          Text:               Account no. for small differences does not 
                              exist in company file. 
                
          Information:        Account no. from company file. 
                                  Accumulated small differences. 
           
          Cause: 
           
          Remedial action: 
           
           







RCSL No. 42-i 0827
          Page 21 of 22\f

                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_2_4_ 
           
          Text:               Account for debtors does not exist in account.
                             file. 
          
          Information:        Account no. from company file. 
                              Amount to be posted at the account. 
 
          Cause:
           
          Remedial action: 
           
           


































RCSL No. 42-i 0827
          Page 22 of 22\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_1_0_ 
                
          Text:               Incorrect date. 
           
          Information:        None 
           
               Cause:              The entered date does not comply with the
                              rules for dates (e.g. 310476 or 401399 are
                                       incorrect). The correct format is: 
                    day'month'year' 
                              e.g. 130776. 
           
          Remedial action:    Retype command with the correct date. 
           
           
          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_2_ 
           
          Text:               Post-dated postings. 
           
          Information:        None 
           
          Cause:              The entered date must not be post-dated
                              relative to the system date. 
           
          Remedial action:    Retype the command with the correct date. 
           
                   E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_3_ 
           
          Text:               Illegal voucher no. 
           
          Information:        None 
           
          Cause:              Typed an illegal voucher no. 
           
          Remedial action:    Type the command with the correct variable. 












RCSL No. 42-i 0827
          Page 13 of 20\f

          E_r_r_o_r_ _M_e_s_s_a_g_e_ _N_o_._ _2_0_3_ 
           
          Text:               Illegal voucher no. 
           
          Information:        None 
           
          Cause:              Typed an illegal voucher no. 
           
          Remedial action:    Type the command with the correct variable. \f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  GENERAL DESCRIPTION ....................................   1 
           
          2.  SPECIFICATIONS .........................................   2 
              2.1  Performance Specifications ........................   2 
              2.2  Electrical Specifications .........................   2 
              2.3  Environmental Specifications ......................   2 
              2.4  Physical Specifications ...........................   2 
              2.5  Instruction Execution Times .......................   2 
           
          3.  INSTALLATION ...........................................   6 
              3.1  Installation of CPU811 ............................   6 
              3.2  CPU Device Address ................................   6 
              3.3  Deskew Delay Adjustments ..........................   8 
              3.4  PCBA Front Panel Switches .........................   9 
           
          4.  TECHNICIAN CONSOLE .....................................  11 
              4.1  Installation of Technician Console ................  11 
              4.2  Console Commands ..................................  11 
              4.3  Register Adresses .................................  13 
           
          5.  CHECK-OUT PROCEDURES ...................................  15 
              5.1  Test Operation from OCP ...........................  15 
           
           \f

                                                 ii 
           \f

F_       1_._ _ _ _ _ _ _ _ _G_E_N_E_R_A_L_ _D_E_S_C_R_I_P_T_I_O_N_    1.
           
          CPU811 is a compact medium performance processor for the small
          and medium size RC8000 models. The entire CPU occupies only a
          single printed circuit board of approximately 36 x 37 cm. 
           
          The CPU811 processing unit may be expanded with a hardware float-
          ing point unit, FPU801, which gives a high reduction in instruc-
          tion execution times for floating point instructions and integer
          multiplication. 
           
          CPU811 is a microprogrammed processor with the microprogram stor-
          ed in a control store consisting of fast bipolar programable read
          only memories, PROM's. In addition to the microcode for implemen-
          tation of the RC8000 instruction set the control store contains
          diagnostic routines for test of the CPU itself and for test of
          the main memory. 
           
              The System Bus, which is an asynchronous unified bus, intercon-
          nects the processing unit, the main memory and the peripheral de-
          vice controllers. One System Bus cycle transfers: 
               23 address bits + 1 parity bit, and 
               24 data bits + 3 parity bits. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _S_P_E_C_I_F_I_C_A_T_I_O_N_S_    2.
           
2_._1_ _ _ _ _ _ _ _P_e_r_f_o_r_m_a_n_c_e_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_    2.1
           
          Instruction execution times   See section 2.5 
          Microinstr. execution time    200 nsec. 
          Microinstr. word length       35 bits + 1 parity bit 
          Control store size            2048 words x 36 bits 
          Internal interrupt levels     8 
          External interrupt levels     24 (for device interrupts) 
          Real time clock 
               Resolution               0.1 msec. 
               Stability                Better than 4 sec./24 hours 
          Interval timer                Interrupt every 25.6 msec. 
           
           
2_._2_ _ _ _ _ _ _ _E_l_e_c_t_r_i_c_a_l_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_    2.2
           
          Supply voltage                5 V DC +_ 5% 
          Current requirement           11 A 
           
2_._3_ _ _ _ _ _ _ _E_n_v_i_r_o_n_m_e_n_t_a_l_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_    2.3
           
          Ambient temperature           10-35 C 
          Relative humidity             20-80% without condensation 
          Heat dissipation              55 W 
           
           
2_._4_ _ _ _ _ _ _ _P_h_y_s_i_c_a_l_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_    2.4
           
          Space requirements            1 slot in an RC8000 CPU chassis 
          Weight                        1.25 kg (2.8 lbs) 
           
           
2_._5_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _E_x_e_c_u_t_i_o_n_ _T_i_m_e_s_    2.5
           
          A number of factors such as memory access time, System Bus load,
          pending interrupts, etc. may influence the instruction execution
          times. The listed instruction execution times are based on the\f

                   following assumptions: 
           
               Main memory: MEM805 or equivalent 
               Normal instruction execution (no exceptions) 
               Not escape mode. 
               Memory address within lower and upper limits. 
               No pending interrupts. 
               System Bus not used by other units. 
                
          The instruction times apply to direct addressing. Times for ad-
          dress modifications are listed separately. 
           
          I_n_s_t_r_u_c_t_i_o_n_                   E_x_e_c_u_t_i_o_n_ _T_i_m_e_ _i_n_ __s_e_c_. 
              AM                            2.6 
          AL                            2.4 
          AC                            3.0 
          HL left/right halfword        5.2/5.0 
          HS                            6.8 
          RL                            4.2 
          RS                            5.0 
          RX                            6.0 
          DL                            6.2 
          DS                            6.8 
          XL left/right halfword        5.2/5.0 
          XS left/right halfword        7.0/6.8 
          BZ left/right halfword        4.6/4.4 
          BL left/right halfword        4.6/4.4 
          BA left/right halfword        5.4/5.2 
          BS left/right halfword        5.4/5.2 
          WA                            4.8 
          WS                            4.8 
          WM without/with FPU           15.0/8.2 
          WD                            18.4 
          AA                            7.2 
          SS                            7.2 
          CI                            8.2 + n x 0.6      1) 
          CF                            6.0 + n x 0.4      2) 
          FA without/with FPU 
          FS without/with FPU \f

          I_n_s_t_r_u_c_t_i_o_n_                   E_x_e_c_u_t_i_o_n_ _T_i_m_e_ _i_n_ __s_e_c_. 
          FM without/with FPU 
          FD without/with FPU 
          LA                            4.2 
          LO                            4.2 
          LX                            4.2 
          AS left shift                 4.6 + n x 0.6      1) 
             right shift                4.0 + n x 0.4      1) 
          AD left shift                 5.2 + n x 0.6      1) 
             right shift                4.4 + n x 0.4      1) 
          LS                            4.0 + n x 0.4      1) 
          LD                            4.0 + n x 0.4      1) 
          NS left/right halfword        7.8/7.6 + n x 0.6  1) 
          ND left/right halfword        8.8/8.6 + n x 0.6  1) 
          JL without/with link          3.6/3.8 
          SH no skip/skip               2.8/3.2 
              SL no skip/skip               2.8/3.2 
          SE no skip/skip               2.6/3.0 
          SN no skip/skip               2.6/3.0 
          SO no skip/skip               2.8/3.2 
          SZ no skip/skip               2.6/3.0 
          SX no skip/skip               3.0/3.4 
          SP no skip/skip               3.8/4.2 
          RE                            38.4 
          JE without/with link          4.8/5.0 
          JD without/with link          5.4/5.6 
          RI                            45.4 
          GP                            5.8 
          GG                            5.8 
          DO                            4.6                3) 
          DI                            4.6                3) 
           
          1) n = number of shifts 
          2) n = binary exponent of the FP number 
          3) Time depends on the response time of the addressed device.
             Specified time is for memory reference. 
           
              For address modifications add the following times to the instruc-
          tion times. 
               \f

          Address                                 After AM, 
          M_o_d_i_f_i_c_a_t_i_o_n_         A_d_d_ __s_e_c_.          A_d_d_ __s_e_c_. 
          None                 0                  0.6 
          Relative             0.2                0.8 
          Indexing             0.2                0.8 
          Relative + 
          Indexing             0.2                1.0 
          Indirect             3.2                3.0 
           
           \f

F_       3_._ _ _ _ _ _ _ _ _I_N_S_T_A_L_L_A_T_I_O_N_3.
                    
         3_._1_ _ _ _ _ _ _ _I_n_s_t_a_l_l_a_t_i_o_n_ _o_f_ _C_P_U_8_1_1_ 3.1
           
          The CPU811 may be in any standard RC8000 chassis, e.g. CHS8. If
          the CPU811 is expanded with the hardware floating point unit
          FPU801, a common RC8000 CPU-chassis with CPU Bus backplane, e.g.
          CHS806, is required. Signal cables to Operator's Control Panel
          (OCP802), Front-End Processor Adapter (FPA), and Technician Con-
          sole Adapter (TCA801) are connected as shown in fig. 2. The
          TCA801 is not intended for permanent connection to the CPU as it
          requires that the chassis is pulled a little out of the cabinet. 
           
           
3_._2_ _ _ _ _ _ _ _C_P_U_ _D_e_v_i_c_e_ _A_d_d_r_e_s_s_    3.2
           
          The System Bus address of the CPU is selectable by means of 3 x 2
          switches located on the CPU811 printed circuit board. The switch-
          es control the address bits (16:20) and the parity bit. The re-
          maining address bits are fixed. Odd parity is used. 
           
           
           
           
           
           
           
           
           
           
           
          Figure 1: titel???????????????????????????? 
           
          The standard CPU address is: 
           
          100 000 000 000 000 000 000 000 
           \f

F_                  
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 2: CPU811 interconnections. 
           \f

F_       3_._3_ _ _ _ _ _ _ _D_e_s_k_e_w_ _D_e_l_a_y_ _A_d_j_u_s_t_m_e_n_t_s_    3.3
           
          The deskew delays for DATARDY, SELIN and ACK are adjusted by
          means of the potentiometers P1, P2 and P3 on the PCBA. 
           
           
           
           
           
           
           
           
          Figure 3: Potentiometers for deskew delay adjustments. 
           
          The delays are activated by means of a microprogrammed test loop,
          which continously writes zeroes into memory location 8. A Tech-
          nician Console (TC) is required to start the loop. The loop is
          started by typing the following commands at the TC. The commands
          are terminated by a RETURN 
           
               T 4 
               0 <address (SIZEM)> 
           
          Address (SIZEM) is the microprogram address corresponding to the
          label SIZEM. Refer to microprogram listing for address. 
           
          The following procedure is recommended for an initial adjustment
          of the delays. 
           
          1) Turn the potentiometers fully clockwise corresponding to maxi-
             mum delay. 
              
          2) Start the test loop. 
              
          3) Adjust the delays according to the figures below. 
           
          The signals to be measured are available on test pins in position
          213. 
           \f

                   P3                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          SELIN, 213-1         1.5 V 
           
                            _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                 213-8                         1.5 V 
                                                _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                              _3_5_ _n_s_e_c_._ _ _ _ _ _ _ 
           
           
          P1                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          ACK,   213-2           1.5 V 
           
                               _ _ _ _ _ _ _ _ _1_0_0_ _n_s_e_c_._ _ _ _ _ _   _ _ _ _ _ _ _ _ _ _ 
          -,MASTER, 213-7                               1.5 V 
                            _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
               
           
          P2                     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          DATARDY,  213-3        1.5 V 
                             _ _ 
                                 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _   _ _ _ _ _ 
          DATARDYDEL, 213-6                        1.5 V 
                                 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           
    3_._4_ _ _ _ _ _ _ _P_C_B_A_ _F_r_o_n_t_ _P_a_n_e_l_ _S_w_i_t_c_h_e_s_    3.4
           
          The TEST and TEST MODE switches on the PCBA front panel are used
          to control execution of the microdiagnostics for CPU and main
          memory when started by means of the AUTOLOAD push button on the
          OCP 
           
          T_E_S_T_ _=_ _O_N_ 
                The microdiagnostics are started when the AUTOLOAD push but-
               ton is activated. TEST MODE switch selects test mode. 
                
          T_E_S_T_ _=_ _O_F_F_ 
               Autoload is performed without start of microdiagnostics. Po-
               sition of TEST MODE switch is irrelevant. 
            \f

          T_E_S_T_ _M_O_D_E_ _=_ _S_H_O_R_T_ 
               The CPU diagnostic and the short mode memory diagnostic are
               run before autoload. 
                
          T_E_S_T_ _M_O_D_E_ _=_ _C_O_N_T_I_N_U_O_U_S_ 
               The CPU and the normal mode memory diagnostics are repeated
               until stopped by operator intervention or by an error. 
           
          Detection of an error in the microdiagnostics is indicated by
          flashing of the AUTOLOADING lamp. 
           
           \f

F_       4_._ _ _ _ _ _ _ _ _T_E_C_H_N_I_C_I_A_N_ _C_O_N_S_O_L_E_    4.
           
          The technician console may be used to display and modify the con-
          tents of CPU registers and storage locations. In addition a num-
          ber of other functions may be controlled from the console. E.g.
          single instruction stepping and start and control of diagnostic
          programs. The technician console is not necessary for normal
          operation of the CPU, but it may facilitate trouble shooting. 
           
           
4_._1_ _ _ _ _ _ _ _I_n_s_t_a_l_l_a_t_i_o_n_ _o_f_ _T_e_c_h_n_i_c_i_a_n_ _C_o_n_s_o_l_e_    4.1
           
          A TTY compatible terminal with V.24 interface may be used as a
          technician console. The terminal must be able to operate at one
          of the following transmission speeds: 110, 300, 1200, 2400 or
          9600 bps. The console is connected to CPU811 by means of an
          adapter, TCA801, as shown in fig. 2. The flat-cable from the
          adapter is connected directly to connector 1004 on the PCBA.
          Transmission speed is selected by means of a rotary switch on the
          TCA801. The cable type which is used to connect adapter and con-
          sole depends on the type of the console. For connection of an
          RC822 or equivalent, cable type CBL447 may be used. 
           
           
4_._2_ _ _ _ _ _ _ _C_o_n_s_o_l_e_ _C_o_m_m_a_n_d_s_    4.2
           
          The formats of the console commands are described below. Par-
          ameters typed by the operator is shown as <parameter>. For some
          commands, e.g. LOAD NEXT, the processor calculates and displayes
          a parameter. This is shown as (parameter). Octal number represen-
          tation is used for addresses and contents of registers and memory
          locations. In the description of the commands cr = carriage re-
          turn and sp = space. 
           
          XR<sp><register address>: 
               EXAMINE REGISTER. Displays the contents of the addressed re-
               gister. 
                \f

                   LR<sp><register address>: (sp)(sp)<contents><cr> 
               LOAD REGISTER. The addressed register is loaded with <con-
               tents>. 
                
          XM<sp><memory address><cr> 
               EXAMINE MEMORY. Displays the contents of the addressed mem-
               ory location. 
                
          XN<sp><number of memory locations><cr> 
               EXAMINE NEXT. Displays the selected number of consecutive
               memory locations following the last referenced location. 
                
          LM<sp><memory address>:(sp)(sp)<contents><cr> 
               LOAD MEMORY. The addressed memory location is loaded with
               <contents>. 
                
               LN<sp>(next memory address)(:)(sp)(sp)<contents><cr> 
               LOAD NEXT. The memory location following the last referenced
               location is loaded with <contents>. 
                
          S<cr> 
               SINGLE INSTRUCTION. The instruction addressed by PC is ex-
               ecuted and the contents of the following registers are dis-
               played: W0, W1, W2, W3, STATUS, IC, CAUSE and SB. 
                
          C<cr> 
               CONTINUE. Starts instruction execution in the memory loca-
               tion addressed by PC. 
                
               R<sp><control store address><cr> 
               RUN. Starts microinstruction execution in the addressed con-
               trol store location. 
                
               X<sp><control store address><cr> 
               EXECUTE SUBROUTINE. Executes the addressed microprogram sub-
               routine. 
                \f

          T<sp><test number><cr> 
               TEST. This command is used to start one of the following
               microprogram tests. 
                
               T_E_S_T_ _N_o_         T_E_S_T_ 
               0               CPU test and memory test in normal mode. 
               1               CPU test. 
               2               Memory test, normal mode. 
               3               Memory test, short mode. 
               4               Initialize registers for test. 
               5               Clear and size memory. 
           
          For a detailed description of the test is referred to in the pub-
          lication: 
           
               RCSL No 30-M258: 
               CPU811 Microprogrammed Tests, User's Manual 
           
          O<sp><control store address><cr> 
               LOOP. The command is used to start testloops in the micro-
               programmed tests in loop mode. The addressed loop is con-
               tinuously repeated. 
                
               ESC 
               Activation of the ESCAPE key may be used to cancel a typed
               command. The processor responds to the command by displaying
               a ?. 
                
               Commands using the System Bus indicates a buserror by display-
          ing a ?. 
           
           
     4_._3_ _ _ _ _ _ _ _R_e_g_i_s_t_e_r_ _A_d_d_r_e_s_s_e_s_    4.3
           
          Addresses (octal) of CPU registers accessible by means of the XR
          and LR commands are listed below. The applicable commands are in-
          dicated for each register. 
           \f

                   A_D_D_R_E_S_S_     C_O_M_M_A_N_D_     R_E_G_I_S_T_E_R_ 
           0          XR,LR       GR(0) = W0 
           1          XR,LR       GR(1) = W1 
           2          XR,LR       GR(2) = W2 
           3          XR,LR       GR(3) = W3 
           4          XR,LR       GR(4) = STAT 
           5          XR,LR       GR(5) = IC 
           6          XR,LR       GR(6) = CAUSE 
           7          XR,LR       GR(7) = SB 
          10          XR,LR       SP(0) = CPA 
          11          XR,LR       SP(1) = BASE 
          12          XR,LR       SP(2) = LLIM 
          13          XR,LR       SP(3) = ULIM 
          14          XR,LR       SP(4) = ILIM COPY 
          15          XR,LR       SP(5) = INF 
          16          XR,LR       GR(10) = PC 
          17          XR,LR       SP(6) = SIZE 
          20          XR,LR       SP(7) = MONT 
          21          LR          SP(16) 
          22          LR          SP(17) 
          57          LR          Clear Interrupt Bit 
          60          XR          SP(16) 
          61          XR          SP(17) 
          62          XR          SP(10) = RTC 
           
          GR = General Register 
          SP = Scratchpad Memory. 
           
           \f

F_       5_._ _ _ _ _ _ _ _ _C_H_E_C_K_-_O_U_T_ _P_R_O_C_E_D_U_R_E_S_    5.
           
          Initial check-out of CPU811 and main memory may be performed by
          means of the microprogrammed tests. The tests may be operated
          from either the OCP802 or from the Technician Console. Operation
          from the Technician Console provides better error information and
          the possibility of looping on errors, etc. The CPU and the normal
          memory test should be run long enough to ensure at least 2 com-
          plete passes. The time for a pass depends on the memory size. 
           
          For a detailed description of the tests and operation of the
          tests from the Technician Console is referred to: 
           
               RCSL No 30-M258: 
               CPU811 Microprogrammed Tests, User's Manual. 
               
           
    5_._1_ _ _ _ _ _ _ _T_e_s_t_ _O_p_e_r_a_t_i_o_n_ _f_r_o_m_ _O_C_P_    5.1
           
          The tests are started in the following way: 
           
               TEST switch in position ON. 
               TEST MODE switch in position CONTINUOUS. 
               Activate AUTOLOAD push button. 
           
          The AUTOLOADING lamp will be lit and the CPU test and the normal
          mode memory test are repeated until an error is detected or until
          stopped by operator intervention. Detection of an error is indi-
          cated by flashing of the AUTOLOADING lamp. 
           
               \f

F_                  
           \f

                    
           \f

         1_._ _ _ _ _ _ _ _ _M_A_I_N_ _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S_ 1.
           
1_._1_ _ _ _ _ _ _ _D_e_s_c_r_i_p_t_i_o_n_ 1.1
           
          The SCC 705/706 is a binary synchronous communication controller
          consisting of a receiver and a transmitter. 
           
          Basicly it is two separate controllers each with its own control
          logics, intended to operate in full or half duplex mode. 
           
           
1_._2_ _ _ _ _ _ _ _D_a_t_a_ _F_o_r_m_a_t_s_ 1.2
           
          The SCC 705/706 receiver transfers information to the computer
          memory through the datachannel. 
           
          Each 16 bit word contains two 6, 7 or 8 bit characters. The bits
          are received from the modem in serial way with the least signifi-
          cant bit (LSB) received first. 
           
          The SCC 705/706 transmitter operates in a similar way but in the
          other direction of course. 
                    
M_m_m_           RC3600 
           
           
           
                                   TRANSMITTER 
                 LOGICS        DATACHANNEL 
                            SERIAL                         PARALLEL 
           MODEM                                   TRANSFER 
                           TRANSFER                       16 BITS WORDS 
           
            RECEIVER 
P_p_p_                                     LOGICS 
           
                                  Data Formats 
                                    Fig. 1.1 
           \f

         1_._3_ _ _ _ _ _ _ _A_p_p_l_i_c_a_b_l_e_ _D_o_c_u_m_e_n_t_s_ 1.3
           
          For further information about the RC3600-computer, refer to RC-
          3603 Reference Manual and concerning the technical structure of
          the datatransmission set refer to 
          C.C.I.T.T Recommendation V.24: "FUNCTIONS AND ELECTRICAL CHARAC-
          TERISTICS OF CIRCUITS AT THE INTERFACE BETWEEN DATA TERMINAL E-
          QUIPMENT AND DATA COMMUNICATION EQUIOMENT". 
           
           \f

         2_._ _ _ _ _ _ _ _ _P_E_R_F_O_R_M_A_N_C_E_ _S_P_E_C_I_F_I_C_A_T_I_O_N_S_ 2.
           
2_._1_ _ _ _ _ _ _ _T_r_a_n_s_m_i_s_s_i_o_n_ _S_p_e_e_d_ 2.1
           
          As the communications controller not contains any clocksource,
          the transmission speed alone depends on the modem in use. 
           
          The controller, however, accepts any clockfrequency until 20 kHz.
           
          If the modem has option for remote speed selection, e.g. 600/1200
          or 4800/9600 BPS then it is possible to select the speed from the
          controller, either hardwired, or selected by the software. 
           
           
2_._2_ _ _ _ _ _ _ _I_n_t_e_r_f_a_c_e_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_ 2.2
           
          All data- and controlsignals between modem and the communications
          controller is in accordance to the C.C.I.T.T. recommendation V.-
          24, which defines the interchange circuits, here the 100-series. 
           
          Following circuits are present: 
           
               Circuit 101  - Protective ground or earth 
               -       102  - Signal ground or common return 
               -       103  - Transmitted data 
               -       104  - Received data 
               -       105  - Request to send 
               -       106  - Ready for sending 
               -       107  - Data set ready 
                -       108/2- Data terminal ready 
               -       109  - Data channel received line signal detector 
               -       111  - Data signaling rate selector 
               -       114  - Transmitter signal element timing 
               -       115  - Receiver signal element timing 
               -       125  - Calling indicator 
           \f

         3_._ _ _ _ _ _ _ _ _R_E_C_E_I_V_E_R_ _O_P_E_R_A_T_I_O_N_ 3.
           
          Setting BUSY causes the receiver to monitor the received bit
          stream contineously until it receives two consecutive SYN-charac-
          ters. This synchronizes the receiver to the bit stream. When a
          character different from the SYN-character is received the recei-
          ver begins assembling pairs of characters into words which are
          transferred to the memory locations specified by the address
          counter. From this point the operation of the receiver depends on
          the receiver mode specified by bits 4 and 5 of the control word.
          See also flow diagram on the following page for description of
          receiver operation. 
           
          C_o_n_t_r_o_l_ _W_o_r_d_(_4_,_5_)_ _=_ _0_,_0_ 
           
          When a TERM character is received the receiver sets DONE after
          reception of further 2 or 3 characters depending on whether the
          TERM character is stored in the left or right byte of a word. The
          receiver remains synchronized and reception continues until ter-
          mination occurs, e.g. by word count overflow. 
           
          C_o_n_t_r_o_l_ _W_o_r_d_(_4_,_5_)_ _=_ _0_,_1_ 
           
          In this mode of operation SYN-characters are deleted by the re-
          ceiver and are not stored. When a TERM-character is received the
          receiver receives 2 more characters before it terminates recep-
          tion, sets DONE and clears BUSY. If the last stored word only
          contains one character, the right byte contains zeros and the
          character pointer is set to 1. 
           
          C_o_n_t_r_o_l_ _W_o_r_d_(_4_,_5_)_ _=_ _1_,_0_ 
           
          If the first character received after synchronization is an EOT-
          -character, the receiver will resynchronize, i.e. begin to look
          for 2 consecutive SYN-characters. The received EOT-character is
          stored in the left byte of the memory location addressed by the
          address counter. The right byte is set to zero. \f

                    
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
                              RECEIVER FLOW DIAGRAM \f

                   If an EOT-character is not received as the first character after
          synchronization, operation of the receiver is identical to the
          operation for control word (4,5) = 0,0. 
           
           
          C_o_n_t_r_o_l_ _W_o_r_d_(_4_,_5_)_ _=_ _1_,_1_ 
           
          If the first character received after synchronization is an EOT-
          -character, the receiver will resynchronize, i.e. begin to look
          for 2 consecutive SYN-characters. The received EOT-character is
          stored in the left byte of the memory location addressed by the
          address counter. The right byte is set to zero. If an EOT-charac-
          ter is not received as the first character after synchronization,
          operation of the receiver is identical to the operation for
          control word(4,5) = 0,1. 
           
           
         3_._1_ _ _ _ _ _ _ _D_e_v_i_c_e_ _S_e_l_e_c_t_i_o_n_ 3.1
           
          The receiver is controlled from the CPU by means of I/O instruc-
          tions. BUSY and DONE are controlled by bit (8) & (9) (Function
          Field) in all I/O instructions with the selected device code. The
          device code is alterable from 40 to 74 (octal) and the receiver
          will always get an even number - the transmitter the following
          odd number. 
           
          Interrupt Disable is controlled by interrupt priority mask bit (8).
           
          The CLR function (F = 10) clears BUSY and DONE. STRT (F = 01)
          sets BUSY and clears DONE and a reception will last as long as it
          is not terminated as described in 3.5. 
           
          In such case BUSY is cleared and DONE is set causing an interrupt
          if Interrupt Disable is clear. 
           
          The P function (F = 11) is not used. 
           
          The IORST instruction clears BUSY, DONE, and all the control lo-
          gics. \f

M_m_m_                                      NOVA CPUCORE 
                                                                MEMORY 
                    DIA           DOB DIB  DOC         DOA          DMA 
                                                                   TRANSFER
           
           
                STATUS          ADDRESS & WORD   CONTROL WORD 
                                   COUNTERS        REGISTER       DATA 
           
           
           
          RECEIVER CONTROL                RECEIVE 
          REGISTER 
           
P_p_p_                                           MODEM 
           
                               Receiver Survey Diagram 
                                     Fig. 3.1 
           
           
3_._2_ _ _ _ _ _ _ _A_d_d_r_e_s_s_ _a_n_d_ _W_o_r_d_ _c_o_u_n_t_e_r_s_ 3.2
           
3_._2_._1_ _ _ _ _ _A_d_d_r_e_s_s_ _C_o_u_n_t_e_r_ 3.2.1
           
          The DOB AC, REC instruction loads the address counter with the
          contents of AC - i.e. the 16 bit address for the location in the
          memory where the first two received characters are to be stored.
          Fig. 3.2. 
           
           ______________________________________________________ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _I_n_i_t_i_a_l_ _a_d_d_r_e_s_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 3.2 
           
          When the reception begins, the address counter is incremented by
          one every time two characters are stored as a word in the memory.
           \f

                   In this way the contents of the address counter is one greater
          than the address of the previous stored word if termination
          occurs. 
           
          This address can be read at any time by DIB AC, REC instruction
          and thus determine the length of an unknown blok. Fig. 3.3. 
           
          The DIB instruction will not alter the contents of the address
          counter. 
           
          _A_C____________________________________________________ 
           _ _ _ _A_d_d_r_e_s_s_ _o_n_e_ _g_r_e_a_t_e_r_ _t_h_a_n_ _t_h_e_ _l_a_s_t_ _s_t_o_r_e_d_ _w_o_r_d_ _ ____ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 3.3 
           
           
3_._2_._2_ _ _ _ _ _T_h_e_ _W_o_r_d_ _C_o_u_n_t_e_r_ 3.2.2
           
          The DOC AC, REC instruction loads the word counter with the con-
          tents of AC - i.e. the 16 bit negative word count. (two>s comple-
          ment) Fig. 3.4. 
           
          _A_C____________________________________________________ 
           _ _ _ _ _ _N_e_g_a_t_i_v_e_ _w_o_r_d_ _c_o_u_n_t_ _(_t_w_o_>_s_ _c_o_m_p_l_e_m_e_n_t_)_ __________ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 3.4 
           
          The word counter is incremented together with the address coun-
          ter, and if overflow occurs, the reception is terminated. (Ref.
          3.5.5.) 
           
          Before a receiving operation can take place, the word counter
          must be preset to the desired (negative) block length. 
           \f

         3_._3_ _ _ _ _ _ _ _C_o_n_t_r_o_l_w_o_r_d_ _R_e_g_i_s_t_e_r_ 
           
          The receiver is controled by the contents af the control word
          register. 
          It is loaded by a DOA AC, REC instruction in the following manner:
           
           
                 DOA AC, REC 
           AC 
           _0_ _ _1_ _ _2_ _ _3_ _ _4_ _ _5_ _ _6_ _ _7_ _ _8_ _ _9_ _ _1_0_ _ _1_1_ _ _1_2_ _ _1_3_ _ _1_4_ _ _1_5_ 
           _1_ _ _x_ _ _x_ _ _x_ _ _M_O_D_E_ _ _C_S_L_ _ _ _ _ _ _ _S_Y_N_-_C_H_A_R_A_C_T_E_R_ ___________ 
           
          Bit 4 and 5 determine the reciever mode. 
           
           
3_._3_._1_ _ _ _ _ _C_h_a_r_a_c_t_e_r_s_e_t_ _L_e_n_g_t_h_ _(_C_S_L_)_ 3.3.1
           
          The receiver can handle 6, 7 or 8-bit characters i.e. the bits in
          a received character are right adjusted in the hardware. 
                   Bit 6 and 7 in the control word determine the character length
          both in the receiver and the transmitter. 
           
                          ______________________________ 
                          Character length    bit(6,7)  
          ______________________________ 
                               6 bits           (1.0) 
                         ______________________________ 
                               7 bits           (0,1) 
                         ______________________________ 
                               8 bits           (1,1) 
                         ______________________________ 
           
           
           \f

3_._3_._2_ _ _ _ _ _S_Y_N_ _-_ _C_h_a_r_a_c_t_e_r_ 3.3.2
           
          The SYN - character in the controlword bit 8-15 determines which
          character the receiver must use for syncronisation. It must be
          right adjusted with leading zero>s if the character length is 6
          or 7 bits. 
           
           
3_._3_._3_ _ _ _ _ _C_h_a_r_a_c_t_e_r_ _C_l_a_s_s_ _T_a_b_l_e_ 3.3.3
           
          A character may be defined as a TERM-character, an EOT-character,
          or non of these. Information about the character class is stored
          in a 256 words by 2 bits Class Table. The table is loaded by
          means of DOA instructions. 
           
           DOA AC, REC 
           AC 
           _0_ _ _1_ _ _2_ _ _3_ _ _4_ _ _5_ _ _6_ _ _7_ _ _8_ _ _9_ _ _1_0_ _ _1_1_ _ _1_2_ _ _1_3_ _ _1_4_ _ _1_5_ _ 
                    _0_ _ _x_ _ _x_ _ _x_ _ _x_ _ _x_ _ _ _ _ _ _ _ _ _ _ _ _ _C_H_A_R_A_C_T_E_R_ _______________ 

   1_ _=_ _T_E_R_M_-_C_H_A_R_A_C_T_E_R_ 
                                   1_ _=_ _E_O_T_-_C_H_A_R_A_C_T_E_R_ 
                    
          The Class Table can only be loaded when BUSY = 0 and AC bit(0)= 0.
           
          Bit(6)    A 1 specifies that the character is an EOT-character. 
           
          Bit(7)    A 1 specifies that the character is a TERM-character. 
           
          Bit(8:15) Contain the bit pattern of the character. 
           \f

         3_._4_ _ _ _ _ _ _ _B_i_t_ _a_n_d_ _C_h_a_r_a_c_t_e_r_ _C_o_n_f_i_g_u_r_a_t_i_o_n_ 3.4
           
3_._4_._1_ _ _ _ _ _B_i_t_p_a_c_k_i_n_g_ 3.4.1
           
          The received bits are packed in characters consisting of either
          6, 7, or 8 bits, right justified, depending on the selected cha-
          racter code as shown in fig. 3.10 
           
           
           
          ________________________ 
                           _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ 
           
          serial _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          received ------' _0_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ 
          bits
          ________________________ 
                           _0_ _ _0_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ 
           
           
           
                              Fig. 3.10 
           
3_._4_._2_ _ _ _ _ _C_h_a_r_a_c_t_e_r_p_a_c_k_i_n_g_ 3.4.2
           
          The received characters are then packed two by two in one word,
          that is stored in the memory. Fig. 3.10. 
           
           
           _ _ _ _ _R_e_c_e_i_v_e_d_ _c_h_a_r_a_c_t_e_r_ _ _ 
                           _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ 
           
           
           
           _____________________________________________________ 
           _ _ _ _1_,_s_t_ _c_h_a_r_a_c_t_e_r_ _ _ _ _ _ _ _ _ _ _ _2_,_n_d_ _c_h_a_r_c_t_e_r_ _ _ _ _ _ _ _ _ _ _ _ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15
           
                               stored word 
                              Fig. 3.11 \f

         3_._5_ _ _ _ _ _ _ _T_e_r_m_i_n_a_t_i_o_n_ _o_n_ _e_r_r_o_r_s_ 3.5
           
3_._5_._1_ _ _ _ _ _D_a_t_a_s_e_t_ _N_o_t_ _R_e_a_d_y_ 3.5.1
           
          The receiver stops immediately by setting DONE and clearing BUSY
          if the modem control signal: Dataset Ready changes from ON to OFF
          during reception. 
           
          If the condition is OFF when applying a START pulse to the con-
          troller BUSY will still be zero, and DONE will be one. 
           
           3.5.2
3_._5_._2_ _ _ _ _ _C_a_r_r_i_e_r_ _O_f_f_ 
           
          The receiver terminates immediately by setting DONE and clearing
          BUSY, if the modem control signal: "Datachannel received line
          signal detector" (Carrier on) changes from ON to Off during re-
          ception. 
           
 
3_._5_._3_ _ _ _ _ _W_o_r_d_ _C_o_u_n_t_ _O_v_e_r_f_l_o_w_ 
           
          The receiver word counter has reached the specified number of
          words in a block, and a termination takes place by setting DONE
          and clearing BUSY, when the present word has been stored. 
           
           
3_._6_ _ _ _ _ _ _ _S_t_a_t_u_s_ _R_e_g_i_s_t_e_r_ 3.6
           
          If termination occurs during reception, or the receiver asks for
          an interrupt by setting DONE even if it is not BUSY, the reason
          can be read from the status register by a DIA AC, REC instructi-
          on. 
           
           _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _A_ _ _B_ _ _ _C_ _ _ _D_ _ _ _E_ _ _ _F_ _ _ _G_ __ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
 \f

         3_._6_._1_ _ _ _ _ _A_ _C_h_a_r_a_c_t_e_r_p_o_i_n_t_e_r_,_ _b_i_t_(_9_)_ 3.6.1
           
          If the last stored word in normal termination was the left byte
          only, the characterpointer bit (9) is logical 1. 
           
 
3_._6_._2_ _ _ _ _ _B_ _T_E_R_M_-_C_h_a_r_a_c_t_e_r_ _R_e_c_e_i_v_e_d_,_ _b_i_t_ _(_1_0_)_ 3.6.2
           
          Rececption of a TERM-Character character sets DONE, and statusbit
          (10) is then logical 1. 
           
 
3_._6_._3_ _ _ _ _ _C_ _C_a_r_r_i_e_r_ _O_f_f_,_ _b_i_t_ _(_1_1_)_ 3.6.3
           
          If the modem control signal Carrier On changes from ON to OFF
          during reception, there will be an interrupt and statusbit (11)
          is then logical 1. 
           
           
3_._6_._4_ _ _ _ _ _D_ _D_a_t_a_s_e_t_ _N_o_t_ _R_e_a_d_y_,_ _b_i_t_,_ _(_1_2_)_ 3.6.4
           
          If the modem control signal Dataset Ready changes from ON to OFF
          during reception there will be an interrupt and statusbit (12) is
          then logical 1. 
           
 
3_._6_._5_ _ _ _ _ _E_ _C_a_l_l_i_n_g_ _I_n_d_i_c_a_t_o_r_,_ _b_i_t_ _(_1_3_)_ 3.6.5
           
          If the modem control signal Calling Indicator changes from OFF to
          ON, whether the receiver is BUSY or not, there will be an inter-
          rupt and statusbit (13) is then logical 1. 
           
           
3_._6_._6_ _ _ _ _ _F_ _D_a_t_a_c_h_a_n_n_e_l_ _L_a_t_e_,_ _b_i_t_ _(_1_4_)_ 3.6.6
           
          If the datachannel has been in time to store the received word,
          statusbit (14) will be logical 1. Darachannel late is not a
          terminating error. 
           \f

         3_._6_._7_ _ _ _ _ _G_ _W_o_r_d_ _C_o_u_t_e_r_ _O_v_e_r_f_l_o_w_,_ _b_i_t_ _(_1_5_)_ 3.6.7
           
          If the word counter reaches the specified number of words, there
          will be an interrupt, and statusbit (15) is then logical 1. 
           
           \f

         4_._ _ _ _ _ _ _ _ _T_R_A_N_S_M_I_T_T_E_R_ _L_O_G_I_C_ _S_P_E_C_I_F_I_C_A_T_I_O_N_S_ 4.
           
4_._1_ _ _ _ _ _ _ _D_e_v_i_c_e_ _S_e_l_e_c_t_i_o_n_ 4.1
           
          The transmitter is controlled from the CPU by means of I/O in-
          structions. BUSY and DONE are controlled by bit (8) and (9)
          (function Field) in all I/O instructions with the selected device
          code, The device code is alterable from 41 to 75 (octal) and the
          transmitter will always get an odd number - the receiver the pre-
          ceding even number. 
          Interrupt Disable is controlled by interrupt mask bit (8). 
          The CLR function (F = 10) clears BUSY and DONE. STRT (F = 01)
          sets BUSY and clears DONE and a transmission will last as long as
          it is not terminated as described in 4.5. 
          In such case BUSY is cleared and DONE is set causing an interrupt
          Disable is clear. 
          The P function(F = 11) is not used. 
          The IORST instruction clears BUSY, DONE and all the control lo-
          gics. 
M_m_m_                                                            CORE 
                                       NOVA CPU                     MEMORY 
               DIA            DOB DIB DOC                       DMA 
                                                               TRANSFER 
           
            STATUS          ADDRESS & WORD                  DATA 
                               COUNTERS 
           
           
           
                            TRANSMITTER CONTROL            TRANSMIT 
          REGISTER 
           
P_p_p_                                        MODEM 
           
           
                         Transmitter Survey Diagram 
                              Fig. 4.1 
           \f

         4_._2_ _ _ _ _ _ _ _A_d_d_r_e_s_s_ _a_n_d_ _w_o_r_d_ _C_o_u_n_t_e_r_s_ 4.2
           
4_._2_._1_ _ _ _ _ _ _A_d_d_r_e_s_s_ _C_o_u_n_t_e_r_ 4.2.1
           
          The DOB AC, XMT instruction loads the address counter with
          contents of AC - i.e the 16 bit address pointing at the location
          of the first two characters that are to be transmitted. Fig. 4.2.
           
           _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _I_n_i_t_i_a_l_ _a_d_d_r_e_s_s_ ______________________ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 4.2 
           
          When the transmission begins, the address counter is incremented
          by one every time two characters are transferred from the memory
          to the transmitter register. 
           
          In this way, the contents of the address counter is one greater
          than the address of the last transferred word, if termination
          occurs. Fig. 4.3 
           
          This address can be read into the program be a DIB AC, XMT
          instruction and thus determine the length of an unknown block. 
           
          The DIB instruction will not alter the contents of the address
          counter. 
           
           _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _A_d_d_r_e_s_s_ _o_n_e_ _g_r_e_a_t_e_r_ _t_h_a_n_ _t_h_e_ _l_a_s_t_ _s_t_o_r_e_d_ _w_o_r_d_ _ _ _ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 4.3 
           
           \f

         4_._2_._2_ _ _ _ _ _W_o_r_d_ _C_o_u_n_t_e_r_ 4.2.2
           
          The DOC, XMT instruction loads the word counter with the contents
          of AC - i.e. the 16 bit negative word count. (two>s complement).
          Fig. 4.4 
           
           _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _N_e_g_a_t_i_v_e_ _w_o_r_d_ _c_o_u_n_t_ _(_t_w_o_>_s_ _c_o_m_p_l_e_m_e_n_t_)_ _ ________ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 4.4 
           
          The word counter is incremented together with the address coun-
          ter, and if overflow occurs, the transmission will terminate.
          (Ref. 4.5.3). 
           
          Before a transmission can take place, the word counter must be
          preset to the desired (negative) block length. 
           
           
4_._3_ _ _ _ _ _ _ _W_o_r_d_ _a_n_d_ _c_h_a_r_a_c_t_e_r_ _c_o_n_f_i_g_u_r_a_t_i_o_n_ 4.3
           
4_._3_._1_ _ _ _ _ _W_o_r_d_ _c_o_n_f_i_g_u_r_a_t_i_o_n_ 4.3.1
           
          The characters to be transmitted are transferred from the core
          memory two by two as shown in fig. 4.5. 
                DDDstUUU                      DDDndUUU 
           _ _ _ _ _1_ _ _c_h_a_r_a_c_t_e_r_ _ _ _ _ _ _ _ _ _ _ _ _2_ _ _c_h_a_r_a_c_t_e_r_ _________ 
           _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _ 
           
                       Transferred word 
                              Fig. 4.5 
           
          The characters are transferred to the transmitter register
          according to numbering. 
           \f

         4_._3_._2_ _ _ _ _ _C_h_a_r_a_c_t_e_r_ _c_o_n_f_i_g_u_r_a_t_i_o_n_ 
           
          The characters must consist of either 6, 7, or 8 bits, right
          adjusted as described in 3.3.1 and are then serial transmitted
          from the register. Fig. 4.6. 
           
                     _ _ _ _ _ _ _ _ _ _ _ _ _ _ __________      serial 
                    X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _      transmitted 
                                                  bits
                       Transferred character 
                 Fig. 4.6 
           
           
4_._4_ _ _ _ _ _ _ _T_r_a_n_s_m_i_t_t_e_r_ _C_o_m_m_a_n_d_s_ 4.4
           
4_._4_._1_ _ _ _ _ _D_a_t_a_t_e_r_m_i_n_a_l_ _R_e_a_d_y_ _C_o_m_m_a_n_d_ 4.4.1
           
          This signal goes ON by applying AC with 1 in bit (15) in a DOA
          AC, XMT instruction. 
           
           _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _X_ _ _ _X_ _ _ _X_ _ _ _X_ _ _ _X_ _ _ _1_ __ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 4.7 
           
          The signal goes OFF again if bit (15) is zero in a DOA AC, XMT
          instruction, or by an IORST instruction. 
           
           
4_._4_._2_ _ _ _ _ _T_r_a_n_s_m_i_t_t_e_d_ _s_p_e_e_d_ 4.4.2
           
          When using a modem with two data signaling rates e.g. 600/1200
          bps, it is possible to hardwire the transmitter to select the
          modem clock frequency. 
           
           \f

         4_._5_ _ _ _ _ _ _ _T_e_r_m_i_n_a_t_i_o_n_ 4.5
           
          The transmitter will stay in transmit mode until it is terminated
          by one of three reasons. 
           
          In every case BUSY is cleared and DONE is set causing an inter-
          rupt if Interrupt Disable is clear. 
           
          The reason for the termination can be read by the program from a
          Status Register. (Ref. 3.11) 
           
           
4_._5_._1_ _ _ _ _ _D_a_t_a_ _C_h_a_n_n_e_l_ _L_a_t_e_ 4.5.1
           
          If the datachannel is late in time to transfer the next word,
          SYNC is lost and the transmission will terminate. 
           
 
4_._5_._2_ _ _ _ _ _D_a_t_a_s_e_t_ _N_o_t_ _R_e_a_d_y_ 4.5.2
           
          The transmission will terminate if the modem control signal: 
          Dataset Ready changes from ON to OFF during transmission. 
           
           
4_._5_._3_ _ _ _ _ _W_o_r_d_ _C_o_u_t_e_r_ _O_v_e_r_f_l_o_w_ 4.5.3
           
          The specified number of transmitted words is passed and a termi-
          nation takes place. 
           
           
4_._6_ _ _ _ _ _ _ _S_t_a_t_u_s_ _R_e_g_i_s_t_e_r_ 4.6
           
          As mentioned above a termination will clear BUSY and set DONE
          causing an interrupt. 
           
          The reason for termination can then be read from a Status
          Register by a DIA AC, XMT instruction. Fig. 4.8. 
           \f

                    _ _ _A_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _0_ _ _ _A_ _ _ _B_ _ _ _0_ _ _ _C_ _ _ _D_ _ 
           0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  
           
                              Fig. 4.8 
           4.6.1
4_._6_._1_ _ _ _ _ _A_ _C_a_r_r_i_e_r_ _O_f_f_,_ _b_i_t_ _(_1_1_)_ 
           
          If the modem control signal Carrier On changes from ON to OFF
          then statusbit (11) is logical 1. 
          This statusbit can only be sensed. 
           
           
4_._6_._2_ _ _ _ _ _B_ _D_a_t_a_s_e_t_ _N_o_t_ _R_e_a_d_y_,_ _b_i_t_ _(_1_2_)_ 4.6.2
           
          If the modem control signal Dataset Ready changes from ON to OFF
          during transmission, there will be an interrupt and statusbit
          (12) will be logical 1. 
           
           
4_._6_._3_ _ _ _ _ _C_ _D_a_t_a_c_h_a_n_n_e_l_ _l_a_t_e_,_ _b_i_t_(_1_4_)_ 4.6.3
           
          If the datachannel is late in time to transfer the next two cha-
          racters to the transmitter, there will be an interrupt and sta-
          tusbit (14) will be logical 1. 
           
           
4_._6_._4_ _ _ _ _ _D_ _W_o_r_d_c_o_u_n_t_e_r_ _O_v_e_r_f_l_o_w_,_ _b_i_t_ _(_1_5_)_ 4.6.4
           
          If the wordcounter reaches the specified number of words, there
          will be an interrupt, when the present character has been trans-
          mitted, statusbit (15) will be logical 1. 
           
           \f

         5_._ _ _ _ _ _ _ _ _V_A_R_I_O_U_S_ _I_N_F_O_R_M_A_T_I_O_N_S_ 5.
           
5_._1_ _ _ _ _ _ _ _T_e_c_h_n_i_c_a_l_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_ 5.1
           
          The SCC 705/706 communications controller is designed for use in
          the RC modular system CHS 709. 
           
          In addition to the normal +5V power supply, both +12V and -12V
          power supplies must be present in CHS 701. 
           
          Power consumption: 
           
          From the   +5V bus    typ. 2.0 A 
          -    -    +12V -      -    25 mA 
          -    -    -12V -      -    15 mA 
           
          The mechanical specifications are: 
           
          Demensions: W x D x H: 380 x 390 x 23 mm 
          Weight: 1.25 kg                                DDDoUUU 
          Ambient temperature and humidity range: 0- + 45 C and 20 - 80%
          without condensation. 
           
           
5_._2_ _ _ _ _ _ _ _D_e_v_i_c_e_ _C_o_d_e_ _S_e_l_e_c_t_ _P_l_u_g_ 
           
          As mentioned in the logic specifications, it is possible to alter
          the device code. 
           
          In position 51 (139 on SCC 702 and 705) on the circuitboard a
           component adapter is placed in a dual-in-line socket. 
           
          The device code is changed by soldering as the following sheet
          shows. 
           \f

                   D_e_v_i_c_e_ _C_o_d_e_ _S_e_l_e_c_t_ _P_l_u_g_ 
           
            9          8       9         8      9         8     9         8
           10          7      10         7     10         7    10         7
           11          6      11         6     11         6    11         6
           12          5      12         5     12         5    12         5
           13          4      13         4     13         4    13         4
           14          3      14         3     14         3    12         3
           15          2      15         2     15         2    11         2
           16          1      16         1     14         1    10         1
           
           REC: 40             REC: 42         REC: 44         REC: 46 
           XMT: 41             XMT: 43         XMT: 45         XMT: 47 
           
            9          8      9          8      9         8     9         8
           10          7     10          7     10         7    10         7
           11          6     11          6     11         6    11         6
           12          5     12          5     12         5    12         5
           13          4     13          4     13         4    13         4
           14          3     14          3     14         3    14         3
           15          2     15          2     15         2    15         2
           16          1     16          1     16         1    16         1
           
           REC: 50           REC: 52           REC: 54         REC: 56 
           XMT: 51           XMT: 53           XMT: 55         XMT: 57 
           
           
           REC: 60           REC: 62           REC: 64         REC: 66 
           XMT: 61           XMT: 63           XMT: 65         XMT: 67 
           
           
           REC: 70           REC: 72           REC: 74         NOT 
           XMT: 71           XMT: 73           XMT: 75         USED 
           
           
           
           
           
           \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.  SYSTEM OUTLINE ........................................   2 
           
          3.  XDIF - A DDFR UTILITY PROGRAM .........................   6 
              3.1  xdif-Program Call Syntax .........................   6 
              3.2  Transfer of Discfiles ............................   8 
              3.3  Output from xdif .................................  10 
              3.4  Searching Catalogs ...............................  13 
              3.5  Scopes and Resources .............................  14 
              3.6  Examples .........................................  16 
                   3.6.1  Example 1 .................................  16 
                   3.6.2  Example 2 .................................  17 
                   3.6.3  Example 3 .................................  18 
                   3.6.4  Example 4 .................................  19 
           
          4.  DDFR - TRANSFER PROGRAM ...............................  21 
              4.1  Transfer Message Format ..........................  21 
              4.2  Transfer Session Example .........................  26 
                   4.2.1  Block Formats .............................  26 
                   4.2.2  Normal Execution ..........................  29 
                   4.2.3  Abnormal Termination ......................  31 
              4.3  Transfer Result - Answer Formats - Error Codes ...  33 
              4.4  Operator Messages from DDFR ......................  40 
                   4.4.1  Start Up Messages .........................  40 
                          4.4.1.1  Examples .........................  41 
                   4.4.2  Communication Line Messages ...............  41 
                   4.4.3  DDFR-Internal Errors ......................  42 
           
          5.  SYSTEM INSTALLATION ...................................  43 
              5.1  The DDFR Magtape .................................  43 
              5.2  Installation of DDFR .............................  43 
                   5.2.1  Configuration Parameters ..................  43 
                   5.2.2  Resources Needed to Run DDFR ..............  45 
           
          A_P_P_E_N_D_I_X_: 
           
          A.  REFERENCES ............................................  47 
           \f

                                                 ii 
           \f

                   B_l_o_c_k_n_a_m_e_ _ _ _ _ _ _ _ _ _ _ _ _b_l_o_c_k_t_y_p_e_ _ _ _ _ _ _p_a_r_a_m_ _0_ _ _ _ _ _ _p_a_r_a_m_ _1_ _ _ _ _ _ _p_a_r_a_m_ _2_ _ _ _ _ _ _i_n_f_o_r_m_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ 
           
          dummy                1              -            -            -            empty 
          convention-error     2              ST           cause2       terminate2   empty 
          disc-error           3              ST           16 or 25     discstatus   empty 
          setposition          *              -            -            -            empty 
M_          accept-create        5              aktual       copy         -            last 10 halfwords of entry tail
P_                                              blocklength  segments                  of local files 
                 close                6              ST           0            changeresult empty 
M_          create new           7              max          -            -            transfer description 
P_                                              blocklength 
                 reject create        8              -            cause8       explain8     empty 
          data                 9              segment no.  -            -            datasegments 
          a_c_c_e_p_t_ _c_l_o_s_e_ _ _ _ _ _ _ _ _1_0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_T_ _ _ _ _ _ _ _ _ _ _ _0_ _ _ _ _ _ _ _ _ _ _ _ _c_h_a_n_g_e_r_e_s_u_l_t_ _e_m_p_t_y_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
          Table 4.2  Blocktypes 
           
           
          This table explains the contents of the different blocktypes used in the DDFR-protocol. 
          *:  not implemented 
          -:  undefined field 
          ST: segments transferred 
           \f

                   R_e_s_u_l_t_ _ _T_C_ _ _H_O_S_T_ _ _ _ _ _T_E_X_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _2_ _ _ _ _ _ _ _ _ _ _ 
                   0       0   L        Datatransfer complete. The result of     local discfile          remote discfile 
                                        changeentry and changeentry base on      changeresult            changeresult 
                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_i_s_c_f_i_l_e_s_ _a_r_e_ _i_n_ _e_x_p_ _1_,_ _e_x_p_ _2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                   1       1   L        All busy. Every FDLC-line is occupied    no _of _FDLC lines        - 
              _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _b_y_ _t_r_a_n_s_f_e_r_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                   2       1   L        Monitor 70 alarm, user-parameterblock    monitor result          - 
             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _c_o_u_l_d_ _n_o_t_ _b_e_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(_s_e_e_ _r_e_f_._ _4_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            3       1   L        Length alarm, user-parameterblock        length                  - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _h_a_s_ _i_n_c_o_r_r_e_c_t_ _l_e_n_g_t_h_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          4       1   L        Remote hostid of discfiletransfer is     unknown hostid          - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _u_n_k_n_o_w_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          5       1   L        FDLC-line is not ready, state of FDLC    FDLC-state in DDFR      - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_s_ _i_n_ _e_x_p_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          6       1/2 L/R      Discfile placed at L/R-Host is used      "used by" hostid        - 
                               in a transfer between L/R-host and the 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _h_o_s_t_ _m_e_n_t_i_o_n_e_d_ _i_n_ _e_x_p_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          7       1/2 L/R      The L/R-host has discovered that the     discfile error cause    - 
                               discfiles does not fulfil all neccesary 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _c_o_n_d_i_t_i_o_n_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          8       2   R        Local DDFR contains a wrong hostid       remote name for R-host  - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _f_o_r_ _t_h_e_ _R_-_h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          9       2   R        Remote DDFR contains a wrong hostid for  remote name for L-host  - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _L_-_h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
          changeresult = remove areaprocess-result *100  (Results are explained in ref. 4) 
                       + change _entry _tail-result  *10   (If newscope was requested by user) 
                       + set _entrybase _result            (If change was requested by user) 
          changeresult should always be zero! 
           
          FDLC-state = 1: during initial startup 
                       2: ready (never returned as an error) 
                       3: input, going on 
                       4: line down 
                       5: output going on 
                       6: during reinitialization 
           
          Discfile error cause is explained in another table. 
           
                   Figur 4.3: Results (continued on next page) 
           \f

                   R_e_s_u_l_t_ _ _T_C_ _ _H_O_S_T_ _ _ _ _ _T_E_X_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _2_ _ _ _ _ _ _ _ _ _ _ 
                   1_1_ _ _ _ _ _ _7_ _ _ _L_ _ _ _ _ _ _ _ _F_D_L_C_-_l_i_n_e_ _e_r_r_o_r_ _o_n_ _i_n_p_u_t_b_l_o_c_k_ _f_r_o_m_ _F_D_L_C_ _ _F_D_L_C_-_s_t_a_t_u_s_ _ _ _ _ _ _ _ _ _ _ _ _ _-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                   12      5   L        Datablock expected at local host other   received blocktype      - 
              _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_o_t_ _l_e_g_a_l_ _b_l_o_c_k_t_y_p_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                   13      5   L        Datablock with segment number = X        Y-X (0=/5  0)               - 
                                 expected at local host                                                           
                                 Datablock with segment number = Y 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          14      5   L        Datablock received at local host should  length mod 512 (0=/5  0)    - 
                               have a length so that length modolus 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _5_1_2_ _=_ _8_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          15      5   L        Datablock received at local host should  Y-X (0=/5  0)               - 
                               contain X segments 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _D_a_t_a_b_l_o_c_k_ _r_e_c_e_i_v_e_d_ _c_o_n_t_a_i_n_e_d_ _Y_ _s_e_g_m_e_n_t_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          16      4   L        Discerror on outputdiscfile was          discerrorstatus         - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_e_t_e_c_t_e_d_ _a_t_ _t_h_e_ _l_o_c_a_l_ _h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          17      5   L        Closeblock expected at local host other  received blocktype      - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_o_t_ _l_e_g_a_l_ _b_l_o_c_k_t_y_p_e_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          18      6   R        Convention block received                cause2                  terminate2 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_a_t_a_b_l_o_c_k_ _(_o_r_ _c_l_o_s_e_)_ _e_x_p_e_c_t_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          19      4   R        Disc-error received from remote host,    discerror status        - 
                               datablock expected 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_a_t_a_b_l_o_c_k_ _i_s_ _o_n_ _t_h_e_ _i_n_p_u_t_ _d_i_s_c_ _f_i_l_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
          20      5   L        Unintelligent response to create _new     received blocktype      - 
                               received create-accept 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(_o_r_ _c_r_e_a_t_e_-_r_e_j_e_c_t_)_ _e_x_p_e_c_t_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          21      3   L        Call-Collision. Two create _new _blocks    received blocktype      - 
                               has been initiated from both ends at     = 7 = create _new 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _s_a_m_e_ _t_i_m_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
          cause2 and terminate2 are explained in table 4.2 in section 4.2. 
          The table in this section may explain why the convention-block was generated, if cause2 is interpreted as
          result, and terminate2 as exp 1. 
          The error-text found in this way explains the situation as seen from the other DDFR>s point of view. 
           
          Figur 4.3: Results (continued) 
           \f

                   R_e_s_u_l_t_ _ _T_C_ _ _H_O_S_T_ _ _ _ _ _T_E_X_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_ _2_ _ _ _ _ _ _ _ _ _ _ 
                   22      5   L        Block received from remote host while    received blocktype      - 
                                        sending data to host. 
              _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _B_l_o_c_k_t_y_p_e_ _i_s_ _n_o_t_ _s_e_n_s_i_b_l_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                   23      6   R        Convention block received from remote    cause2                  terminate2 
             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _h_o_s_t_,_ _w_h_i_l_e_ _s_e_n_d_i_n_g_ _d_a_t_a_ _t_o_ _h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            24      4   R        Discerrorblock received from remote      discerrorstetus         - 
                               host, while sending data to host, 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_i_s_c_e_r_r_o_r_ _i_s_ _o_n_ _o_u_t_p_u_t_d_i_s_c_f_i_l_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          25      4   L        Discerror on inputdiscfile was detected  discerrorstatus         - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _a_t_ _t_h_e_ _l_o_c_a_l_ _h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          26      6   R        Whole discfile is sent to remote host,   cause2                  terminate2 
                               close _block is sent 
                               accept-close is expected, but convention                                         
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _b_l_o_c_k_ _i_s_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          27      5   L        Whole discfile is sent to remote host,   received blocktype      - 
                               close _block is sent 
                               accept-close is expected, but another 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_i_g_n_a_l_ _i_s_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          28      5   L        Whole discfile is sent to remote host,   11                      - 
                               close _block is sent accept _close is 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_e_c_t_e_d_,_ _b_u_t_ _n_o_t_h_i_n_g_ _r_e_c_e_i_v_e_d_ _i_n_ _1_0_ _s_e_c_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          29      5   L        While sending data to remote host,       first block type        - 
                               two response-blocks are received         received 
                               faster than the sender is able to 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _p_r_o_c_e_s_s_ _t_h_e_m_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          30      5   L        While sending data to remote host,       illegal blocktype       - 
                               an illegal blocktype is received         received 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(_b_l_o_c_k_t_y_p_e_ _<_ _0_ _=_'_ _b_l_o_c_k_t_y_p_e_ _=_ _9_9_9_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          31      6   *        While waiting for create _new (in the     received blocktype      - 
                               ready state), some not sensible block 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_s_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          32      7   L        FDLC-line _error on output datablock to   FDLC-status             - 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _F_D_L_C_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          33      4   R        Whole discfile is sent to remote host,   local discfile          remote discfile 
                               close _block is sent accept _close is  
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_x_p_e_c_t_e_d_,_ _b_u_t_ _d_i_s_c_e_r_r_o_r_ _b_l_o_c_k_ _i_s_ _r_e_c_e_i_v_e_d_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
          * This result is never returned directly to the user. It can only appear as a cause2 value in a 
            convention _block (explained in section 4.2). 
           
  Figur 4.3 Results (continued) 
           \f

                   Discfile             explanation                                                                      
                   e_r_r_o_r_ _c_a_u_s_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                    
1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _o_u_t_p_u_t_f_i_l_e_ _i_s_ _i_n_v_i_s_i_b_l_e_ _t_o_ _t_h_e_ _u_s_e_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
              
2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _o_u_t_p_u_t_f_i_l_e_ _i_s_ _p_r_o_t_e_c_t_e_d_ _a_g_a_i_n_s_t_ _t_h_e_ _u_s_e_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                    
3_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_n_p_u_t_f_i_l_e_ _i_s_ _i_n_v_i_s_i_b_l_e_ _t_o_ _t_h_e_ _u_s_e_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
             
4_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_n_p_u_t_f_i_l_e_ _i_s_ _p_r_o_t_e_c_t_e_d_ _a_g_a_i_n_s_t_ _t_h_e_ _u_s_e_r_,_ _a_n_d_ _n_e_w_s_c_o_p_e_ _o_r_ _c_h_a_n_g_e_e_n_t_r_y_ _i_s_ _r_e_q_u_e_s_t_e_d_ _ 
             
5_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_n_p_u_t_f_i_l_e_ _a_n_d_ _o_u_t_p_u_t_f_i_l_e_ _i_s_ _s_p_e_c_i_f_i_e_d_ _t_o_ _b_e_ _l_o_c_a_t_e_d_ _a_t_ _t_h_e_ _s_a_m_e_ _h_o_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
6                    neither inputfile nor outputfile is specified to be located at the users computer  
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(_l_o_c_a_l_ _h_o_s_t_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
7_ _+_ _r_e_m_o_v_e_ _ _ _ _ _ _ _ _ _ _ _e_n_t_r_y_ _d_o_e_s_ _n_o_t_ _e_x_i_s_t_ _w_i_t_h_ _s_p_e_c_i_f_i_e_d_ _s_c_o_p_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
8_ _+_ _r_e_m_o_v_e_ _ _ _ _ _ _ _ _ _ _ _s_i_z_e_ _o_f_ _o_u_t_p_u_t_f_i_l_e_ _i_s_ _l_e_s_s_ _t_h_a_n_ _s_i_z_e_ _o_f_ _i_n_p_u_t_f_i_l_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
9 + remove           contents of tail is not as specified in the checkparameter.  
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _h_o_s_t_i_d_ _i_n_ _t_h_e_ _a_n_s_w_e_r_ _e_x_p_l_a_i_n_s_ _w_h_i_c_h_ _f_i_l_e_ _i_t_ _i_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
1_0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_e_w_s_c_o_p_e_ _i_s_ _r_e_q_u_e_s_t_e_d_ _f_o_r_ _t_h_e_ _o_u_t_p_u_t_f_i_l_e_,_ _b_u_t_ _t_h_e_ _n_e_w_ _s_c_o_p_e_ _i_s_ _i_l_l_e_g_a_l_ _ _ _ _ _ _ _ _ _ _ _ _ 
           
1_1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_e_w_s_c_o_p_e_ _i_s_ _r_e_q_u_e_s_t_e_d_ _f_o_r_ _t_h_e_ _i_n_p_u_t_f_i_l_e_,_ _b_u_t_ _t_h_e_ _n_e_w_ _s_c_o_p_e_ _i_s_ _i_l_l_e_g_a_l_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
72000 + result       set catalogbase for own process is not ok, result is explained in ref. 4. 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _w_r_o_n_g_ _s_c_o_p_e_ _p_a_r_a_m_e_t_e_r_s_ _o_r_ _D_D_F_R_ _p_r_o_c_e_s_s_ _n_o_t_ _s_t_a_r_t_e_d_ _w_i_t_h_ _s_y_s_t_e_m_-_s_c_o_p_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
52000 + result       create area process not ok, result is explained in ref. 4. 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _r_e_s_u_l_t_ _=_ _3_ _m_e_a_n_s_ _t_h_a_t_ _t_h_e_ _d_i_s_c_f_i_l_e_ _d_o_e_s_ _n_o_t_ _e_x_i_s_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
76000 + result +     lookup head and tail of discfile is not ok, but create area process was ok. 
          r_e_m_o_v_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _T_h_i_s_ _r_e_s_u_l_t_ _s_h_o_u_l_d_ _n_o_t_ _o_c_c_u_r_ _(_r_e_s_u_l_t_ _i_s_ _e_x_p_l_a_i_n_e_d_ _i_n_ _r_e_f_._ _4_._)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
8000 + result +      reservation of the outputfile was not ok (result explained in ref. 4) 
          r_e_m_o_v_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _r_e_s_e_r_v_e_-_(_a_r_e_a_)_-_p_r_o_c_e_s_s_ _i_s_ _n_o_t_ _p_o_s_s_i_b_l_e_ _i_f_ _t_h_e_ _a_r_e_a_ _i_s_ _r_e_s_e_r_v_e_d_ _b_y_ _a_n_o_t_h_e_r_ _p_r_o_c_e_s_s_._ 
           
          remove is 10 times the result of remove(area)-process(see ref. 4). Should always be zero. 
           \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
           
          This manual contains information about the D_isc to D_isc F_ile
          R_outer system. 
           
          Relevant information may be found by people, who are going to use
          the DDFR functions, operate or install the system. 
           
          DDFR makes it possible to exchange discfiles between RC8000 com-
          puters, if they are interconnected via a transmission line, which
          can be controlled by the FDLC-line control protocol (ref. 1). 
           
          The functions of DDFR may later be included in a general File
          Router module that combines the DDFR-facility with PRIMO and
          other facilities (ref. 2). 
           \f

F_       2_._ _ _ _ _ _ _ _ _S_Y_S_T_E_M_ _O_U_T_L_I_N_E_ 2.
           
          DDFR makes it possible to exchange discfiles between RC8000 com-
          puters via transmission lines. 
           
          DDFR is a distributed system. 
           
          It is possible to initiate file transfer between "your own" RC-
          8000 and some "other" RC8000 computer connected via an FDLC-like
          line control protocol. 
           
          At present it is n_o_t_ possible to initiate transport between two
          "other" RC8000 computers. 
           
          The connected computers have a fixed configuration. Computers are
          identified by their hostid. 
           
          DDFR in one RC8000 computer knows the hostid of the directly con-
          nected computers. 
           
           
           
          hostid hostid 
          128155 
           
           
           
           
           
           
           
          hostidhostid 
          130176 
           
          Fig. 1 Four hostcomputers and three communication lines. 
           
           
                   A process running in jobhost 176 may initiate datatransfer be-
          tween host 130 and 176 and between host 128 and 176. 
           \f

          From host 176 it is n_o_t_ possible to exchange data with host 155,
          because no transmission line exists. 
           
          From host 176 it is n_o_t_ possible to initiate a datatransfer be-
          tween host 130 and 155. 
           
          A process running in host 130 may transfer data from host 155 to
          host 176 in two steps: 
           
          1. request a filetransfer from host 155 to host 130. 
           
          2. request a filetransfer from host 130 to host 176. 
           
          The communication between DDFR-processes in different computers
          are at present implemented as shown in fig. 2. 
           
          The transmission speed of such lines is comparable to that of a
          typical disc: 
          approx 17 msec/block. 
           
          This has influenced the DDFR implementation in the following way:
           
          1. DDFR c_a_n_n_o_t_ transfer several files in "parallel"
             (multiplexing) on the same FDLC-line. 
           
          2. DDFR can handle input of the next block (from disc or FDLC) in
             parallel with output (to FDLC or disc) of the previous block. 
           
                   This makes the time for transfer of one file comparable to the
          time necessary for reading the file from disc. 
           
          Data can only be transferred if both input and output file exist
          and are legally accessible to the user that requests the
          transfer. 
           
          Inputsize <= outputsize must be fulfilled and further check on
          entry contents may be specified by the user (see 3.2 and 4.1). 
           \f

          The existence of the files and the size requirement is necessary
          because DDFR itself has no resources to create or extend output
          files. 
          Here follows a description of the DDFR system components. 
           
                    
M_m_                                           ca. 100 m 
                                       FOA  FOC   FOA 
          XDIF  DDFR  FDLC  FPAD  FPA                  FPA  FPAD  FDLC  DDFR  XDIF 
                                         ca. 18 m 
P_p_                                          CBL 
           
           
          Fig. 2 DDFR-system-components. 
                 Abbreviations, see below. 
           
                   XDIF:  Utility program xdif: (ex_change d_i_sc f_iles) 
          DDFR:  D_isc to d_isc f_ile r_outer. 
          FDLC:  F_PA d_ata l_ink c_ontrol. 
          FPAD:  F_P_A_ d_river complex in RC8000 monitor. 
          FPA:   F_rontend P_rocessor A_dapter. 
          FOA:   F_iber O_ptic A_dapter. 
          FOC:   F_iber O_ptic C_able. 
          CBL:   Cable. 
           
          XDIF   is called from an internal process running in RC8000. It
                 sends one output message to DDFR for each file transfer to
                 be executed. The block in the output message is called a
                 transfer description (TD). It specifies an input discfile
                 and an output discfile. One of the files is located at
                 another computer. XDIF receives an answer when the trans-
                 fer is finished. 
                  
          DDFR   moves data from the input file to the output file together
                 with DDFR in some other computer. It is checked that the
                 user of DDFR has access rights to the two disc files. Con-
                 trol- and datablocks are exchanged between two DDFR-pro-
                 cesses via the FDLC-module. 
                  \f

          FDLC   establishes a logical full duplex communication line be-
                 tween processes in two different RC8000 computers. 
                 FDLC uses the FPA-driver complex in the monitor to imple-
                 ment the communication. 
                 FDLC supports line initialization and performs error reco-
                 very. 
                 Blocks of any length may be transmitted, but FDLC divides
                 larger blocks into subblocks. 
                 FDLC is described in ref. 1 and ref. 6. 
                  
                   FPAD   sets up channel programs to the FPA-hardware, as stated in
                 the message from FDLC. 
           
          FPA    transmits or receives data as stated by the channel pro-
                 gram. 
                  
          CBL    the cable that connects two FPA-devices. 
                  
          FOA    converts the eletrical signals (used on a normal CBL) to
                 light signals and vice versa. 
                  
          FOC    fiber optical cable, which can transmit light signals. 
                  
                  
          FOA + FOC is an alternative to CBL. The CBL cannot be more than
          18 m. long. Using FOA + FOC it is possible to connect computers,
          with an up to 100 m. long FOC. 
           
           \f

F_       3_._ _ _ _ _ _ _ _ _X_D_I_F_ _-_ _A_ _D_D_F_R_ _U_T_I_L_I_T_Y_ _P_R_O_G_R_A_M_ 3.
           
          xdif (ex_change d_i_sc f_ile) is an algol program, which helps the
          user to define and execute disc-to-disc transfers via DDFR. 
           
          The program has two functions: 
           
          a) Transforms program parameters into a number of transport de-
             scriptions (TD). Each TD defines a transfer of data from one
             disc file to another. One of the files must be on the compu-
             ter, where xdif is called; the other file should be placed on
             a connected computer. These TD>s are sent - one at a time - to
             DDFR (which performs the actual transfer). The result of each
             transfer is displayed to the user. 
              
          b) Scans backing storage catalogs, to find disc files which ful-
             fil certain scope-conditions. Output from the program is a
             list of the files that fulfilled the conditions. 
              
             This listing may be used directly as an xdif-program call,
             which will request DDFR to transfer the files as described in
             a). 
              
          The program functions cannot be mixed in one call of the program.
           
           
3_._1_ _ _ _ _ _ _ _x_d_i_f_-_P_r_o_g_r_a_m_ _C_a_l_l_ _S_y_n_t_a_x_ 3.1
           
          The program-call must fulfil the normal fp-syntax rules (ref. 3).
           
          The detailed parameter-syntax is described below. The meaning of
          the parameters is explained in the next sections. Examples of
          calls are found in 3.6. 
           
M_m_m_                                            1                   <search format' 
           <xdif call'      ::=   <list'=   xdif <main param' 
P_p_p_                                          0                   <copy format' 
           
M_m_m_                                   take                       1 
           <main param'      ::=        .<hostid' .<ddfrproc' 
P_p_p_                                   give                       0 
           \f

                                                                   *DDD
M_m_m_                                  scope                     1 
             <search format'  ::=         .<limit' .<catfile' 
P_p_p_                                 base                      0 
                                                                   1UUU
                   
                                                              *DDD 
          inout. <filespec' 
          <copy format'    ::=   in.<filespec' out.<filespec' 
                                 out.<filespec' in.<filespec' 
                                                                   1UUU 

                                                                        *DDD 
                                                     change <halftail' 
          <filespec'       ::=   <discfile'.<limit'  check <halftail' 
                                                     newscope.<limit' 
                                                                             0UUU
           
                                 catalog 
                                 system 
                                 project 
M_m_m_                                 max 
          <limit'          ::=    
P_p_p_                                 user 
                                 std 
                                 catbase 
                                 <basenumber'.<basenumber'
           
                                              10DDD 
M_m_m_                                    .<value' 
          <halftail'       ::= 
P_p_p_                                  .no 
                                         1UUU 
           
M_M_               1 
          <basenumber'     ::=  neg.    <number' 
P_P_          0 
           
          <number' and <hostid' are numbers in the range 0 to 8.388.607 
          <value' is a number in the range 0 to 4095. 
          <list', <ddfrprocess', <catfile' and <discfile' are 
          standardnames: one small letter followed by up to 10 small
                         letters or digits. 
           \f

          If <list' is specified and the file does not exist a temporary
          file with the given name is created. 
          Note that a <search format' and a <copy format' cannot be used
          together. 
           
           
3_._2_ _ _ _ _ _ _ _T_r_a_n_s_f_e_r_ _o_f_ _D_i_s_c_f_i_l_e_s_ 3.2
           
          xdif may report DDFR to transfer files to/from another computer. 
           
          This is done when the program is called with parameters as speci-
          fied by <copy format' in section 3.1. 
           
          The meaning of the call is as follows: 
           
          <_m_a_i_n_ _p_a_r_a_m_'_ defines the direction of the dataflow. 
           
          t_a_k_e_ means that input files are placed on the other computer, and
          output files on this computer. 
           
          g_i_v_e_ means that output files are placed on the other computer and
          input files on this computer. 
           
          <_h_o_s_t_i_d_'_ is an integer defining the other computer. This value is
               used by DDFR to select the FDLC-line that connects the other
               computer. 
           
          <_d_d_f_r_p_r_o_c_'_ is an optional parameter. It gives the name of the
               process, in which DDFR is running. Default value is ddfr. 
               xdif sends request for transfer of data to the process with
               the specified name. 
           
                   <_c_o_p_y_ _f_o_r_m_a_t_'_ specifies pairs of input and output files of the
               transfer. 
           
          The i_n_ parameter defines an input file and 
           \f

          The o_u_t_ parameter defines an output file. 
           
          Values specifying the files are: 
           
          <_d_i_s_c_f_i_l_e_'_ gives the file name 
           
          <_l_i_m_i_t_'_ gives the file scope. 
           
          Note that <hostid' of the file is implicit defined by the <main-
          param'. 
           
          The transfer is not executed by DDFR, if no file with the given
          name and exact scope exists. Furthermore it is checked that the
          caller of xdif (the user) has the right to read or write the cor-
          responding file (according to the max- and standardbase of the
          user process). 
           
          After a transfer the last 10 halfwords of the output file, entry-
          tail, are the same as for the input file; except for a possible
          change (see below). 
           
          In connection with the data transfer some utility functions may
          be performed on the involved files. These are specified after the
          name and scope of the file(s). 
           
          As data transfers are initialized from o_n_e_ computer, no explicit
          agreement between two "user"-processes are necessary to transfer
          a file. However, there may be a need for some "end-to-end-control"
          at the "user-process-level". This may be implemented by the user,
          with the following utility-commands. 
           
          c_h_e_c_k_._<_h_a_l_f_t_a_i_l_'_. The user wants the last 10 halfwords of the
          entrytail of the file to be checked for certain values. Up to 10
          parameters may be specified for <halftail'. Omitted values are
          assigned to n_o_. The meaning of <halftail'-parameters are: 
           
          n_o_   specifies that the corresponding halfword should not be
               checked. 
           \f

                   <_v_a_l_u_e_'_  specifies that the corresponding halfword should have
               value checked. 
           
          If check is specified, the data transfer only takes place if the
          specified values match the contents of the entrytail. 
           
          c_h_a_n_g_e_._<_h_a_l_f_t_a_i_l_'_. If the data transfer is executed succesfully,
          the user wants the last 10 halfwords of the entrytail changed, as
          specified in <halftail'. 
          Up to 10 parameters may be specified for <halftail'. Omitted pa-
          rameters are assingned to n_o_. the meaning of <halftail'-parame-
          ters are: 
           
          n_o_  specifies that the corresponding halfword should not be
               changed. 
           
          <_v_a_l_u_e_'_ specifies that the corresponding halfword should be
               changed to this value after the data transfer. 
           
          n_e_w_s_c_o_p_e_._<_l_i_m_i_t_'_ defines a new scope for the file, which should
               be given to the file after transfer of data. 
               Note that only the scope is changed, but the permanentkey is
               n_o_t_ touched. 
           
               <limit' gives the new file scope. 
           
           
3_._3_ _ _ _ _ _ _ _O_u_t_p_u_t_ _f_r_o_m_ _x_d_i_f_ 3.3
           
          If the parameter to the xdif program is incorrect, no transfer is
          initiated but an alarm occurs, giving the number of the erroneus
          parameter. 
           
          If DDFR does not reply to messages by a normal-answer (monitor-
          result = 1), the program terminates immediately. This happens
          when the name of the DDFR-process is wrong (result = 5: unknown
          is returned). 
           \f

                   Under normal circumstances xdif outputs a number of lines, which
          explain the xdif interpretation of the next filetransfer-parame-
          ter set (see example in 3.6). 
           
          Then the messages requesting the transfer is sent to DDFR, and
          the answer is awaited. When this arrives, a line is output,
          giving the first 5 words of the answer (see 3.6). 
           
          The meaning of the answer values is given in 4.2. If the first
          word of the answer is not zero, the ok-bit will have the value
          false when the xdif program terminates. 
           
                   Here follows the exact format of the generated output. 

          The output is in three parts: 
          Output file information, 
          Input file information, and 
          Result information. 
           
          Output and input information format consist of a fixed and an
          optional part. 
           
          Fixed part: 
           
M_m_m_           out    : 
                     <file name' <low base' <high base' <host id' <function'
P_p_p_           in     :              DDD<low base' <high base'  0UU1DDDD0UU5 
                    
          Optional part, is only output if a change or a check is 
          specified. 
           
                   Optional part: 
           
M_m_m_           check  :                       10 
                       <halfword'.<value' 
P_p_p_              change :                        1 
              
          <filename'                    name of file 
                                         
                   <low base' <high base'        specifies the scope of the file 
                                         
               <host id'                     0 if own host 
                                            host number if foreign host 
                                         \f

              <function'                    depending on parameters in the
                                        <file spec' 
                                         
                                        bit 1  if change 
                                        bit 2  if check 
                                        bit 3  if newscope 
                                            bit 4  this bit is always set for
                                               the output file not for the
                                               input file. Specifies that
                                               the last 10 halfwords of the
                                               entrytail are copied from
                                               the input file to the output
                                               file, this is done after a
                                               possible check but before a
                                               possible change. 
                                                
          <low base' <high base'        only output if newscope is
                                        specified in <function' 
                                         
          <halfword'                    specifies the accessed halfword of
                                        the entrytail 
                                         
               <value'                       specifies the checked value and the
                                        new value of the accessed halfword.
                                         
               Result information format. 
                                         
               result : <transferno.'<result'<segments transferred'<host id'
                   <exp1'<exp2' 
                                         
          <transfer no.'                specifies the file number in a
                                        transfer, usually 1 
                                         
               <result'                      confer table 4.3 
                                         
               <segments transferred'        number of transferred segments 
                                         
               <host id'                     indicates own or foreign host.
                                        Depending on result (cf. table 4.3)
                                         \f

               <exp1'                        explanation depending on result
                                        (cf. table 4.3) 
                                         
               <exp2'                        explanation depending on result
                                        (cf. table 4.3) 
                                         
                                         
3_._4_ _ _ _ _ _ _ _S_e_a_r_c_h_i_n_g_ _C_a_t_a_l_o_g_s_ 3.4
           
          To help the user to transfer a group of files, related to a given
          scope or disc, xdif has a facility for scanning catalogs. This
          facility is called via the <search format'. 
           
          A catalog scan does not initiate any transfers, but it produces
          an output list that has the exact format of an xdif call. If this
          call is executed, the filetransfers will be initiated. 
           
          When using the <search format' the <main param' should be present
          in the call. It is not used but just copied into the output list
          for later use in the <copy format'. 
           
          The meaning of the search parameter is as follows: 
           
          s_c_o_p_e_ means that all files with the specified <limit' are written
          in the list. 
           
          b_a_s_e_ means that all files inside the specified <limit' are
          written in the output list. 
           
          <_c_a_t_f_i_l_e_'_ gives the name of the catalog to be searched. If it is
          left out the main catalog (named >catalog>) of this computer is
          searched. When a file name is specified, this should be a file
          containing a catalog, which f.ex. could have been transferred
          from the other computer in a previous call of xdif: 
               xdif take.101 in.catalog.catalog out.cat.user; get catalog 
               p = xdif take.101 scope.user.cat; search catalog put list in p
          (see example in 3.6) 
           
           \f

3_._5_ _ _ _ _ _ _ _S_c_o_p_e_s_ _a_n_d_ _R_e_s_o_u_r_c_e_s_ 3.5
           
          The user of xdif and DDFR should consider the following aspects: 
           
          DDFR allows a user to initiate a discfile transfer to/from an-
          other machine, without any activ permission from operating sys-
          tems or users situated at the remote computer. Instead the scope-
          rules that normally protects discfiles from unauthorized local
          access, is also used to allow/forbid access to remote files. 
           
          This scopecheck performed by DDFR is only sensible if "usercata-
          logs" on connected machines contains the same specification for
                   a user utilizing the DDFR-facility. 
           
                   DDFR checks whether the user has access-right to a given disc-
          file. The exact definition of access-rights is given in ref. 4
          and ref. 5. 
           
          N_o_t_e_: A process may have access-right to a discfile, but is un-
          able to read or write the file without changing its catalogbase.
          For example a projectfile cannot be read if a userfile of the
          same name exists, unless the process alters its own catalogbase.
          The exact definition of access-rights are "slightly broader" than
          recognized by the "typical" user. 
           
          DDFR expects that both input and outputfile exists, when a trans-
          fer is initiated and size of outputfile must be greater or equal
          to the size of the inputfile. As explained in section 3.2 it is
          possible to change the entrybase of an involved discfile via the
          newscope parameter to xdif. The change is done by DDFR after
          moving the contents of the inputfile to the outputfile. It is
          also possible to change the last part of the entrytail of the
          discfiles, if a change parameter is present in the xdif-call. 
           
          The new entrybase or entrytail given to a discfile is only ac-
          cepted by DDFR, when the user has write-access-rights to the
          file. The new scope must not remove this right. 
           \f

          These limitations to change of scope, and tail of a discfile are
          quite natural. 
           
          DDFR is at present not concerned with the permanent-key of the
          discfile-catalog-entries. 
           
          This affects the total RC8000 system in two ways 
           
          first:  The monitor refuses to set entrybase of an entry outside
                  the maxbase (projectscope) unless the file has a perma-
                  nent-key = 3. This rule can be suppressed if the user
                  requests DDFR to set the entrybase (new scope parameter).
          second: The user may request a transfer of data into a non-per-
                           manent file. This leads to reservation of the file by
                  DDFR, which will prevent the operating system BOSS2 from
                  removing the file, if the requesting job is killed during
                  the file transfer. This situation leads to a bossfault. 
                   
          The radical solution to the problem mentioned, is to refuse
          transfers between non-permanent discfiles. This is not the case
          at present, but practical experience with DDFR/xdif may change
          the present standard. 
           
          All the problems reflected in this section, follows from the
          fact, that DDFR does not control the backing storage claims of
          the requesting user. 
           
          Note once more the important role of the distributed usercatalogs
          in such a system. 
           
           \f

         3_._6_ _ _ _ _ _ _ _E_x_a_m_p_l_e_s_    3.6
           
3_._6_._1_ _ _ _ _ _E_x_a_m_p_l_e_ _1_ 3.6.1
           
          This example moves the local file f to the remote file f. 
           
          xdif give.102 inout.f.user     command typed by the user 
           
          output from xdif: 
          xdif  give.102.ddfr            This line specifies the remote host and the posi-
                                         tion of input and output. 
          out    : f 0 9 102 8           This line specifies the output file. 
          in     : f 0 9 0 0             This line specifies the input file. 
                    a b   c d 
          result :  1 0 1 101 0 -1       This line specifies the result. 
           
                    e f g  h  i  j 
           
          Output line 
          f    a: the name of the file. 
          0 9  b: the scope of the file specified as two integers. 
          102  c: the host of the file. Output is placed at the remote
                  host(102), while input is placed at the local host. 
          8    d: the function field. 8 means copy tail from other file to
                  this file. 
           
          Result line 
          1    e: transfer-number. There is only specified one transfer in
                  this example. 
          0    f: result, meaning explained in table 4.3, zero means
                  transfer completed. 
          1    g: segment transferred: This file had a size of one segment.
          101  h: hostid of the computer where xdif runs. When errors
                  occur, hostid will point to the computer where the error
                  was discovered. 
M_m_m_          0    i: exp1 in table 4.3 
                                       when result = 0 they will normally be zero. 
P_p_p_          -1   j: exp2 in table 4.3 
                    
           \f

3_._6_._2_ _ _ _ _ _E_x_a_m_p_l_e_ _2_ 3.6.2
           
          This example moves the remote file f to the local file p, but it
          should only be done if the contents field in the entry tail of
          the file p contains the value 11 (the check-parameter). After the
          transfer, this value should be changed to 0. 
           
          lookup p 
          p          =set 5 disc d.800408.1713 0 0 11.0 0  ;  temp 
                     ;  282 35 0 0 9 
           
          the user command: 
          xdif take.102 in.f.user out.p.user check.no.no.no.no.no.no.11, 
                                             change.no.no.no.no.no.no.0 
           
          output from xdif: 
          xdif  take.102.ddfr 
          out    : p 0 9 0 11        a 
          check  :  7.11             b 
          change :  7.0              c 
          in     : f 0 9 102 0 
          result :  1 0 1 101 0 0    d 
           
          lookup p 
          p          =set 5 disc d.800408.1709 0 0 0 0  ; temp 
                     ;  282 35 0 0 9 
           
          a: The function field of the output equals 11. This specifies
             check, copy, and change of the output file>s entrytail. 
           
          b: This line appears because check of the entrytail is specified.
             It tells that among the last 10 halfwords in the tail, the
             seventh will be checked to contain the value 11. 
              
          c: This line appears because change of the entrytail is spec-
             ified. It tells that among the last 10 halfwords in the tail,
             the seventh will be changed to 0 after the transfer. 
              \f

          d: contains local change result. Should be zero, which signals
             that change of the tail (and scope if specified in the call)
             has been done. 
              
          This example checks and changes the contents of a local file
          entrytail. This might be done manually by the utility programs
          lookup and changeentry. For remote files the utility programs
          cannot be accessed. 
           
           
3_._6_._3_ _ _ _ _ _E_x_a_m_p_l_e_ _3_ 3.6.3
           
          This example shows how the main catalog (with scope catalog) is
          transferred from the remote host to a local userfile called cat. 
          Then a search for all files with userscope is performed in the
          catalog and the result is put into the file p. Example 4 will
          show the transfer of the files in the list 
          a: take.102 is copied into the file p. Consequently a take from
             102 will be the result if p is later executed. 
           
          lookup cat 
          cat        =set 300 drum d.800408.1716 0 0 0 0  ; user 
                     ;  376 3 3 0 9 
          xdif take.102 in.catalog.catalog out.cat.user the user command
          xdif  take.102.ddfr 
          out    : cat 0 9 0 8 
          in     : catalog -8388607 8388606 102 0 
          result : 1 0 273  101 0 0 
           
          p=xdif take.102 scope.user.cat the user>s search command 
                     a 
          c=copy p 
          xdif  take.102.ddfr , 
             inout.eahstarlib.0.9                  , no     1 size=  22 
             inout.tddfr.0.9                       , no     2 size=  88 
             inout.rcmol.0.9                       , no     3 size= 170 
             inout.tstarlib.0.9                    , no     4 size=  21 
           
          p           segm.   1     323/17505               b        c 
               \f

          b: corresponds to b in example 4. 
          c: -           -  c -  -       -. 
           
           
3_._6_._4_ _ _ _ _ _E_x_a_m_p_l_e_ _4_ 3.6.4
           
          This example executes the commands generated in example 3. 
           
          i p   the user command (contents of p generated by a search command)  
          xdif  take.102.ddfr 
          out    : eahstarlib 0 9 0 8 
          in     : eahstarlib 0 9 102 0 
          result :  1 0 22 101 0 0 
                    b   c 
          out    : tddfr 0 9 0 8 
          in     : tddfr 0 9 102 0 
          result :  2 0 88 101 0 0 
                    b   c 
          out    : rcmol 0 9 0 8 
          in     : rcmol 0 9 102 0 
          result :  3 0 170 101 0 0 
                    b   c 
          out    : tstarlib 0 9 0 8 
          in     : tstarlib 0 9 102 0 
          result :  4 7 0 102 52003 0 
                    b   d  e   f 
          transfer     4  line 480-482 
           
          b: This number corresponds to b in the previous example. 
             The file transfer number. 
              
          c: Corresponds to c in example 3. The number of segments in the
             file. 
              
          d: The fourth transfer did not succeed. The result is 7. This
             means that some of the necessary conditions is not fulfilled
             by the file tstarlib (result codes explained in section 4.3). 
              \f

          e: The error was discovered at host 102 (the remote host). The
             error must relate to the file at the remote host. 
              
          f: For result = 7 this value explains what was wrong (exp1 codes
             are explained in section 4.3). 
             52003 means that the file does not exist. Somebody removed it
             between example 3 and 4. 
              
              \f

F_       4_._ _ _ _ _ _ _ _ _D_D_F_R_ _-_ _T_R_A_N_S_F_E_R_ _P_R_O_G_R_A_M_         4.
           
          This part of the manual explains the different interfaces between
          DDFR and the surroundings. These interfaces are: 
           
               User interface (transfer request interface) 
               DDFR-DDFR protocol 
               Operator interface (parent messages). 
                
          - An important part of the user interface is the explanation of
            the different error codes delivered to the user through the
            xdif program. 
             
          - The DDFR protocol is explained to give the user some idea of
            what is going on when files are transferred. This section also
            provides the reader with the information needed to program an
            alternative DDFR-program. Such a program may be constructed for
            other computers that communicate with RC8000 in an FDLC-like
            manner (cf. ref. 1). 
             
          - The operator interface - at present - consists of parent messa-
            ges, displayed on the "DDFR"-console by the operating system
            s. 
             
             
         4_._1_ _ _ _ _ _ _ _T_r_a_n_s_f_e_r_ _M_e_s_s_a_g_e_ _F_o_r_m_a_t_         4.1
           
          The normal way to request a file transfer, is to use the xdif-
          utilityprogram. xdif just converts the parameters into one or
          more transfer-request-messages, and sends them - one at a time -
          to DDFR. It is possible to send such a transfer-request - from an
          internal process - without using xdif. The exact format of such a
          transfer-request is given below. 
           
          A transfer request has the form of an output-message. The message
          just defines a parameter-area to be output to DDFR. The contents
          of the parameter-area defines the transfer. 
           
           \f

                   message:   5<12               outfile   parameter area to be out-
          send       first              para-     put to DDFR. 
             to         last               meters 
                   DDFR        .                           It defines the two files
                          .                 infile    involved in a filetrans-
                      .                 para-     fer. 
                         .                 meters 
           
           
          Figure 4.1 
               
           
          The parameter area - sent to DDFR by the output-message - speci-
          fies two discfiles. The first is the outputfile of the transfer,
          and the second is the inputfile of the transfer. One of the files
          must be on the computer where the userprocess and the local DDFR
          is running. The other file must be on another computer, connected
          to DDFR by some FDLC-line.  
           
          The dataflow-direction is implicitly defined by the location of
          the two discfiles. 
           
          Each of the two discfiles must be described - in the parameter
          area - as explained below. 
           
P_               f_i_e_l_d_ _n_a_m_e_              h_a_l_f_w_o_r_d_ _a_d_d_r_e_s_s_ 
M_                      name _of _file                 0-7 
               dummy                        8-9 
               scope _of _file               10-13 
               hostid _of _file              14-15 
               functions                   16-17 
               newscope                    18-21 
               change _value                22-31 
               change _mask                 32-41 
               check _value                 42-51 
               check _mask                  52-61 
                
          One filedescription consists of 62 halfwords, so the total para-
          meterarea sent to DDFR is 124 halfwords. 
                \f

                   The meaning of the different parameter fields is explained below:
           
               name _of _file  :          points to a catalog-entry - in the
                                        main catalog - which describes a
                                        discfile 
                                         
                    dummy         :          irrelevant 
                                         
                    scope _of _file :          two integers which must match with
                                        the entry base of the discfile 
                                         
                    hostid _of _file:          hostid of the computer to which the
                                        file belongs. hostid may be the
                                        exact number or zero. The latter is
                                        default for "ownhost" (the computer
                                        where the user requests the
                                        transfer) 
                                         
                    functions    :           DDFR may be requested to perform
                                        additional service together with
                                        the file transfer. At present four
                                        functions are available: 
                                         
                                        1) copy tail after transfer 
                                        2) change scope after transfer 
                                        3) check tail before transfer 
                                        4) check tail after transfer. 
                                            
                                        Functions are requested by
                                        "bitsetting" in the function
                                        field. The four least significant
                                        bits in the function field are
                                        composed as follows: 
                                           copy _tail shift 3 + 
                                           change _scope shift 2 + 
                                           check _tail shift 1 + 
                                           change _tail shift 0. 
                                        Parameters which further describe
                                        the functions, are present in the
                                        last three fields 
                     \f

               copy _tail        :       if "copy tail after transfer" is
                                        wanted, the last 10 halfwords of
                                        the entrytail from the "other" file
                                        are copied to the last 10 words of
                                        the entrytail of "this" file. The
                                        copying is done before a possible
                                        change of the entrytail. xdif
                                        always sets this bit in the
                                        function field for the output file.
                                        This makes it possible to transfer
                                        program files or other files where
                                        the entrytail has a special
                                        meaning. 
                                         
               newscope         :       if "change scope after transfer" is
                                        requested in the function field,
                                        this field contains the new entry-
                                        base. Only the entrybase can be
                                        changed. Changing the permanentkey
                                        cannot be done by DDFR, because
                                        this involves backing-storage-
                                        claims. 
                                         
                                        DDFR changes the entrybase of the
                                        discfile if the filetransfer is
                                        successfully ended. 
                                         
                    change _value and 
               change _mask      :       if "change tail after transfer" is
                                        requested in the function field,
                                        these fields define the details. It
                                        is possible to change parts or all
                                        of the last 10 halfwords in the
                                        catalogentry that describes the
                                        discfile. 
                                         \f

                                        Change _value and change _mask are
                                        two 10-halfword-fields. If the da-
                                        tatransfer is completed without any
                                        errors, the l_a_s_t_ 10 halfwords of
                                        the catalogentry will be changed
                                        according to the following algo-
                                        rithm: 
                                         
                                        if change _requested by function
                                          then 
                                        for hwcount:= 1 step 1 until 10 do 
                                        for bitcount:= 1 step 1 until 12 do 
                                        if change _mask(hwcount, bitcount)= 1
                                        then 
                                        entry(hwcount, bitcount):= 
                                        change _value(hwcount, bitcount); 
             
                        check _value and           
               check _mask       :       if "check _tail before transfer" is
                                        requested in the function field,
                                        these fields define the details. It
                                        is possible to check parts or all
                                        of the last 10 halfwords in the
                                        catalogentry that describe the
                                        discfile. The transfer is only exe-
                                        cuted if the entry contains the ex-
                                        pected values. Check _value and
                                        check _mask are two 10-halfwords-
                                        fields. The last 10 halfwords of
                                        the catalogentry are checked before
                                        the transfer is started, according
                                        to the following algorithm: 
                                         
                                        if check _requested by function then
                                        for hwcount:= 1 step 1 until 10 do 
                                        for bitcount:= 1 step 1 until 12 do
                                         \f

                                        if check _mask(hwcount, bitcount)= 1 
                                        then 
                                          if entry(hwcount, bitcount)0=/5
                                            check _value(hwcount, bitcount) 
                                          then reject _transfer; 
                                         
               Note: As can be seen from the above algorithms, as well the chan-
                ge- as the check-routine works on the "bit-level". When the
                user requests a transfer using the xdif-program it is only
                possible to express mask- and valuepatterns on the "half-
                word-level". This restriction is not serious in most cases.
           
                    
     4_._2_ _ _ _ _ _ _ _T_r_a_n_s_f_e_r_ _S_e_s_s_i_o_n_ _E_x_a_m_p_l_e_     4.2
           
          This section describes the protocol, that is executed on the
          FDLC-link (cf. ref. 1), that connects two DDFR-modules. 
           
           
4_._2_._1_ _ _ _ _ _B_l_o_c_k_ _F_o_r_m_a_t_s_ 4.2.1
           
          DDFR exchanges information in different block-types. 
           
                   These blocktypes are described in the following table. 
           
          All blocks have a common head, and has the following format: 
           
               block + 0: param 0 
                     + 2: blocktype 
                     + 4: param 1 
                     + 6: param 2 
                     + 8: information 
                      
          The length of a block is 8 halfwords + length of the
          information-field. 
                    \f

F_                 (skema A) \f

F_                 The different fields contain: 
           
          empty:                        The field is omitted 
                   ST:                           Segments transfered at the moment
                                        when the blocktype is generated 
               max blocklength:              When a new transfer is started the
                                        initiator gives the maximum
                                        blocklength that can be used during
                                        the transfer. The other DDFR - (the
                                        responder) should accept this, or
                                        return a smaller value. This is
                                        done in the 
               actual blocklength:           This blocklength (in segments) is
                                        used when data is transfered from
                                        inputdisc through the FDLC-link to
                                        the output disc. 
               copy segments:                Defines the total number of
                                        segments to be copied. 
               segment no:                   Segmentno of the first segment in a
                                        datablock. The number defines where
                                        the datablock came from, and where
                                        to put it. Data is transfered
                                        sequentially (increasing segment
                                        numbers). 
               change result:                Contains the result of a requested
                                        change to the catalogentry made
                                        after transfer of the data. The
                                          value is 
                                                  
                                        remove _process _result *100 + 
                                        change _entry-_result *10    + 
                                            set _entry _base _result      ; 
                                        the result values can be found in
                                        ref. 4. 
          discstatus:                   If any error occurs during transfer
                                        to or from disc, this is signaled
                                        to the other DDFR together with the
                                        errorstatus. \f

                                        param 1 holds the value 16 if the
                                        error was on the outputdisc, and 25
                                        for an error on the inputdisc. 
          Transfer description:         When a new transfer is initiated
                                        all the parameters defining the
                                        transport is transferred to the
                                        other DDFR. The exact format is 
                                        TD+  0: hostid of other DDFR 
                                          +  2: size of inputfile (if known) 
                                          +  4: size of outputfile (if known)
                                          +  6: outfile parameters as defined
                                                by the user (see 4.1)* 
                                          + 68: in file parameters as defined
                                                by the user (see 4.1)* 
                                          +130: maxbase and standardbase of
                                                the userprocess requesting
                                                this transfer. 
                                         
                                            *  If the file is local, the
                                           contents of check _value is
                                           replaced with the last 10
                                           halfwords of the entry tail of
                                           that file. 
                                            
                                            
         4_._2_._2_ _ _ _ _ _N_o_r_m_a_l_ _E_x_e_c_u_t_i_o_n_ 4.2.2
           
          A n_o_r_m_a_l_ session executes as follows: 
           
          userprocess        initiator DDFR       responder DDFR 
           
          xdif program 
          request 
                   transfer           check parameters 
                             against local 
                                      file and send a 
                             "create new"         check parameters against
                                                  local file and return
                                                  "create reject" or
                                                  "create accept" 
                                                   \f

                             Now the DDFR which has the inputfile starts
                             sending data, and the DDFR which has the out-
                             putfile receives data. In the following we
                             assume that the inputfile is placed at the
                             initiator. 
                              
                             input from disc 
                             send datablock       receive datablock 
                             input from disc      output to disc 
                                      send datablock       receive datablock 
                                      input from disc      output to disc  
M_M_                                    .                           . 
                                   .                           . 
P_P_                               .                           . 
                             send last datablock  receive last datablock 
                                                   
                             change entry and     output last datablock to 
                                 change entrybase     disc 
                              
          userprocess        initiator DDFR       responder DDFR 
                    
                   report changeresult 
                                  in a closeblock      receive closeblock change
                                                  entry and change entryba-
                                                  se report change _result 
                                  return local-        in the accept _closeblock 
                             and remote 
                             change result 
               xdif program       to the user 
          reports the 
          transfer result 
           
          Note: The c_l_o_s_e_block is a_l_w_a_y_s_ sent by the h_o_l_d_e_r_ of the
                i_n_p_u_t_discfile, and the a_c_c_e_p_t_-_c_l_o_s_e_block a_l_w_a_y_s_ sent by the
                h_o_l_d_e_r_ of the o_u_t_p_u_t_discfile. 
                 
                This final handshake is defined by the dataflow direction
      and n_o_t_ by the initiator/responder-relationship. 
                 
                 \f

         4_._2_._3_ _ _ _ _ _A_b_n_o_r_m_a_l_ _T_e_r_m_i_n_a_t_i_o_n_ 4.2.3
           
          Abnormal termination of the transfer may happen in the following
          situations: 
           
          1) The initiator-DDFR refuse to start the transfer because of
             some error condition. The responder-DDFR knows nothing about
             the transfer. The error is reported to the user. 
              
          2) The responder-DDFR rejects the transfer because of some error
             conditions. The error is signaled to the initiator DDFR in the
             reject-create-block, and the user is informed. 
              
          3) Call-collision: if two DDFR try to initiate a transfer at
             exactly the same moment, two create-new-blocks may cross
                      each other on the FDLC-link. This situation is recognized at
             both ends, and both transfers are rejected to the user. 
              
          4) If one DDFR finds a discerror, it is reported to the other
             DDFR in a discerror block and the transfer is terminated. The
             initiator DDFR informs the user. 
              
          5) If one DDFR finds that the other DDFR fails to communicate ac-
             cording to the protocol standard it sends a convention-error-
             block to the other DDFR, and terminates the transfer. If it
             was the initiator that gave up, it informs the user of the
             result. 
              
          6) If a DDFR receives a convention-error-block it should termina-
             te the transfer and in case it is the initiator inform the
             user. 
              
          7) If the FDLC-link fails, the transfer is terminated. The initi-
             ator reports the error to the user. 
              
          In the list of possible results from DDFR to the user (cf. 4.3),
          the errors are classified from 1-7 corresponding to the groups
          mentioned above. 
              \f

          Errors of class 5 and 6 should not occur. If they do a whole
          block is lost on the FDLC-link or there is an error in the
          DDFR-program. 
           
          N_o_t_e_ that DDFR never returns convention-error on a received
          convention-error-block, but sometimes reply with a dummy block.
DDFR ignores dummy blocks in the "idle" state (no transfer going
on). 
           
          In r_e_j_e_c_t_-_c_r_e_a_t_e_-_b_l_o_c_k_s_ the cause8 and explain8 (cf. table 4.2)
may be 
           
              cause8                           explain8 
             6      area _in _use            hostid of user 
             7      user parameter error   error cause 
             8      hostmix2              wrong hostid 
             9      hostmix1               wrong hostid 
 
                   These are reported to the user by the initiator-DDFR. Result 8
          and 9 occurs if the DDFR-programs disagree about each others
          hostid (wrong options during system generation). 
                    
          In c_o_n_v_e_n_t_i_o_n_-_e_r_r_o_r_-_b_l_o_c_k_s_ cause2 and terminate2 may be 
           
          cause2    expected              received              terminate2 
                             block                 block                  
                                                                     
                12      datablock             other blocktype       blocktype 
                13      datab. segmno=x       datab. segmno=y       y-x 
                14      blocklength modulus   512 should be 8 but   is not 
                15      datab. segmlength=x   datab. segmlength=y   y-x 
                17      closeblock            other blocktype       blocktype 
                27      accept closeblock     other blocktype       blocktype 
                28      accept closeblock     nothing in 10 sec.    0 
                29      nothing expected      block received        blocktype 
            30      one legal blocktype   illegal blocktype     blocktype 
                31      create-new-block      other blocktype       blocktype 
           \f

          If the initiator-DDFR s_e_n_d_s_ a convention-error-block, the cause2
          is reported to the user as the result (cf. 4.3: answer format). 
           
          If the initiator DDFR r_e_c_e_i_v_e_s_ a convention-error-block the
          result defines what was expected, and the cause2 and terminate2
          are additional parameters to the result (cf. 4.3: answer format).
           
           
        4_._3_ _ _ _ _ _ _ _T_r_a_n_s_f_e_r_ _R_e_s_u_l_t_ _-_ _A_n_s_w_e_r_ _F_o_r_m_a_t_s_ _-_ _E_r_r_o_r_ _C_o_d_e_s_         4.3
           
          As described in section 4.1 the user requests a disc file
          transfer by sending an output-message to the DDFR-process. 
           
          The answer from DDFR on the output-message contains several
          parameters that inform the user of the result of the transfer. 
           
          These parameters - of course - are only valid if the answer was a
          normal-answer and not a dummy-answer (ref. 4). 
           
                   Dummy answer = 5 tells the user that the DDFR-process does not
          exist in this computer. 
           
          A normal answer has the following format: 
           
          answer + 0 : Result 
                 + 2 : ST     (segments transferred) 
                 + 4 : Hostid (local or remote) 
                 + 6 : exp 1   additional information 
                 + 8 : exp 2   to the result-parameter 
                  
          When the xdif-program is used to request transfers, the five
          parameters are displayed to the user on the current outputfile
          (cf. section 3.6). 
           
          The possible answers are in the following table. 
           
          The Termination Class (TC) in the table explains why an error was
          reported as explained in section 4.2 (Abnormal Termination). The
          TC-value may help the user to find out which part of the system
          that failed during the transfer. 
           \f

          ST is always reported to the user, and explains how many segments
          that were transferred before the answer was sent. 
           
          ST equals zero when the answer contains an error-result of 1
          through 9, 20 or 21, because these errors occur before the actual
          datatransfer is initiated by DDFR. 
           
          ST equals the size of the input file, if the datatransfer was OK
          (Result = 0). 
           
          In case of a discerror, ST is the segmentno of the block transfer
          that went wrong, and hostid points out the machine (together with
          Result). 
           
          In other results ST may vary from zero to size of inputfile. 
           
                   Hostid in the answer is one of the following: 
           
          L (local) : hostid of the "user machine" is returned 
          R (remote): hostid of the "other machine" is returned. 
                       
          "L- and R-answers" can be found in the table. 
           \f

F_                 (skema A) \f

F_                 (skema B) \f

F_                 (skema C) \f

F_                 Results of class 5 and 6 should not occur under normal
          conditions. They report disagreement of the protocol used between
          two DDFR-components. 
           
          Result = 7 means that the discfile to be used in the transfer,
          does not fulfil all necessary conditions. 
           
          The reason normally is that the user has specified wrong or
          illegal parameters in the transfer. 
           
          When result = 7 is returned to the user, hostid tells who
          discovered the error, and exp1 is a discfile error cause, which
          explains exactly what is wrong. The possible values for discfile
          error cause is given in the following table. 
           
          Some of the errors cannot be generated (5 and 6) if the xdif
          program is used to request the transfer. 
           
          Result 1, 2, 3, 4, 10, and 11 are violation of the scope rules
          that protects backing storage files in the RC8000 system. The
          rules are explained in ref. 4. 
           
          If a discfile does not exist, discfile error cause will be 52003
          or 7. 
           
          In the last 4 entries of the table, result means the result
          delivered by the RC8000 monitor (ref. 4), when some monitor
          function is called. 
           \f

F_                 (skema E) \f

F_       4_._4_ _ _ _ _ _ _ _O_p_e_r_a_t_o_r_ _M_e_s_s_a_g_e_s_ _f_r_o_m_ _D_D_F_R_                                         4.4
           
          DDFR does not interact with any operator during normal
          operations. No function carried out by DDFR calls upon operator
          assistance. 
           
          However, special situations are reported to an operator. 
           
          Messages are sent in form of a parent print message. The parent
          is expected to be the basic operating system called s (ref. 5).
          The operating system s will print the contents of the message on
          the terminal where DDFR was started by some operator. 
           
          The messages from DDFR falls into three groups: 
           
               1) start up messages 
               2) communication line messages 
               3) DDFR-internal errors. 
                
           
4_._4_._1_ _ _ _ _ _S_t_a_r_t_ _U_p_ _M_e_s_s_a_g_e_s_                                                   4.4.1
           
          When DDFR is started, it reports a list of necessary resources if
          the process where DDFR is running has not been created with the
          exact amount. 
           
          After this report, DDFR just enters the normal runmode in case
          sufficient amounts are present. If not DDFR terminates the start
          up. 
           
          The following examples show how the messages look if 
                
               a) amount is sufficient 
               b) amount is insufficient 
               c) ddfrtest is not ok. 
                
          ddfrtest is a backing storage area, that is used by DDFR, to
          output testreports during normal operation. This testreport is
          only created if requested (see section 5.2). 
               
           \f

         4_._4_._1_._1_ _ _ _E_x_a_m_p_l_e_s_ 4.4.1.1
           
          The note letters confer to description on previous page. 
           
          ready 
          message ddfr ***size 10214          b) 
          message ddfr ***ddfrtest 41         c) 
          pause ddfr   ***init troubles 
           
           
           
           
           
          att s 
          remove size 10300 
          ready 
           
          att s 
          perm disc 41 1 run 
          ready 
          message ddfr    size 10214          a) 
          message ddfr started 
           
          att s 
          remove size 10214 run 
           
          ready 
          message ddfr started                a) 
           
           
          Note that *** are output when there are too few resources. 
           
           
         4_._4_._2_ _ _ _ _ _C_o_m_m_u_n_i_c_a_t_i_o_n_ _L_i_n_e_ _M_e_s_s_a_g_e_s_         4.4.2
           
          If the communication line to another DDFR-process fails or
          recovers, then a message is displayed to the operator telling the
          hostid of the other DDFR-process, and the communication line
          state. 
           \f

          Two examples are shown below 
           
               a) line break down, caused by some error 
               b) later line recovery, when the line is reinitialised by
                  DDFR (this is always tried). 
           
                   
          message ddfr 17.06 host 102 down        a) 
          message ddfr       fdlc status-6291454 
           
           
           
           
           
          message ddfr 17.08 host 102 up          b) 
           
           
           
           
4_._4_._3_ _ _ _ _ _D_D_F_R_-_I_n_t_e_r_n_a_l_ _E_r_r_o_r_s_                                                4.4.3
           
          If DDFR violates the normal protection rules in the RC8000
          system, this generates an internal interrupt in the DDFR-process.
           
          The interrupt-response-routine in DDFR prints out the first seven
                   words of the interrupt area, which contain the registers as they
          appear at the moment of the interrupt. DDFR then stops normal
          processing immediately. 
           
          Internal errors should not occur. The following example shows the
          error message as it may appear after a "provoked interrupt" (the
          break command). 
           
           
          att s 
          remove proc ddfr break 
          ready 
          message ddfr  86770 83928 0 0 0 84158 8 
          pause ddfr ***fault 
           
           \f

F_       5_._ _ _ _ _ _ _ _ _S_Y_S_T_E_M_ _I_N_S_T_A_L_L_A_T_I_O_N_    5.
           
5_._1_ _ _ _ _ _ _ _T_h_e_ _D_D_F_R_ _M_a_g_t_a_p_e_ 5.1
           
          The DDFR system is distributed on a magnetic tape containing the
          DISC - DISC File Router Package. The package contains the
          subpackages FDLC and DDFR. For further information consult the
          package description (ref. 7) for the SW8701/1 DISC - DISC File
          Router Package. 
           
           
5_._2_ _ _ _ _ _ _ _I_n_s_t_a_l_l_a_t_i_o_n_ _o_f_ _D_D_F_R_ 5.2
           
5_._2_._1_ _ _ _ _ _C_o_n_f_i_g_u_r_a_t_i_o_n_ _P_a_r_a_m_e_t_e_r_s_                                            5.2.1
           
          DDFR can be configurated and translated if the commandfile
          mentioned in ref. 7 is executed. 
           
          To do this some configuration-parameters must be edited as
          explained. 
           
          This section explains the meaning of these parameters. 
           
          testbufsize:                  This parameter gives the size in
                                        segments of the internal
                                        testbuffer. A large testbuffer
                                        occupies more corestore, but
                                        minimize the time "wasted" each
                                        time the buffer runs full, and must
                                        be written to disc. The value may
                                        not be set to zero. 
                                         
          testsegments:                 This parameter gives the size in
                                        segments of the discarea used to
                                        save the testreport in. The area is
                                        used in a cyclic manner. Conse-
                                        quently the larger the area is the
                                        longer the reports would stay in
                                        the file. 
                                         \f

                                        If no testreport is wanted, this
                                        parameter is set to zero. 
                                         
          thishost:                     This parameter gives the hostid of
                                        the computer where DDFR is running.
                                        This number should be unic among
                                        DDFR-Hosts. It is recommanded that
                                        the host numbers, used in "RCNET-
                                        numbering" of the hosts, are also
                                        selected as DDFR-host-numbers. 
 
                   blocklength:                  This parameter gives the maximum
                                        blocklength in segments, that can
                                        be used in a transfer involving
                                        this DDFR. Larger blocklength gives
                                        a faster transfer, but requires
                                        more corestore. 
                                         
               Connections to other hosts: 
           
          The line 
           
               !***! 
           
          should be replaced by parameters which describe the other DDFR-
          Hosts in the network. 
           
          Each host is described by its hostid, and the name of the FDLC-
              process in this computer, that supports the communication link
          leading to that host. 
           
          The definition of a host must obey the syntax for the language
          RCMOL. 
           
          The general format is: 
           
          word id<hostid' := <hostid'; 
          text(11) name<hostid' := <fdlcname'; 
           
          This text should be inserted for each connected host. 
           \f

          An example with two hosts is given below: 
           
          word id105 := 105; text(11) name105 := "fdlc105"; 
          word id134 := 134; text(11) name134 := "fdlc134"; 
           
          Hostnumbers and fdlc-process names can be found in the
          system-generation descriptions for the monitors running on the
          involved RC8000 computers. 
           
           
         5_._2_._2_ _ _ _ _ _R_e_s_o_u_r_c_e_s_ _N_e_e_d_e_d_ _t_o_ _R_u_n_ _D_D_F_R_                                        5.2.2
           
          Backing storage: If testoutput is generated 
               (testsegments ' 0) one backing storage area 
               (discfile) is created and permanented. 
               The size of the area is: 
                    testsegments//testbufsize * testbufsize. 
           
          Area processes: One area process for each active transfer. This
               means one area process for each connected computer. 
                
               One extra area process is needed if test output is generated
               (testsegments ' 0) 
                
          Message buffers: One message buffer is needed for communication
               with internal user processes. 
                
               Four message buffers are used for each active transfer. 
                
               One extra message buffer is needed if testoutput is genera-
               ted (testsegments ' 0). 
                
                   Internal store: The size of the running DDFR-program is less than
               5000 halfwords. 
                
               Each communication line occupies descriptions for one commu-
               nication line, two coroutines and three databuffers. One set
               of descriptions occupies less than 200 halfwords. 
                \f

               Each communication line uses three databuffers. Their size
               is determined by the configuration parameter called block-
               length. If testoutput is generated (testsegments ' 0) a
               testbuffer is allocated. The size of this buffer is describ-
               ed by the configuration-parameter called testbufsize. If
               testsegments = 0 the allocated testbuffer occupies zero
               halfwords. 
                
                        The above statements may be expressed in a formula: 
                
                    size _in _halfwords := 5000 + size _of _testbuffer +(200 + (512
               * blocklength * 3)) * no _of _connected _hosts; 
                
               Resources for FDLC-processes and monitordescriptions are n_o_t_
               included in the rules above. 
                
          E_x_a_m_p_l_e_: 
           
          DDFR should be installed in a computer with communication lines
          connected to two other computers. Blocklength used in transfers
          is set to three segments, and testoutput is generated (testseg-
          ments := 250 ' 0) via an internal testbuffer of four segments. 
           
          Backing storage: one area at 250//4*4= 248 segments. 
          Area processes:  2 + one extra = 3 area processes. 
          Message buffers: 4 * 2 + 1 + one extra = 10 message buffers. 
          Internal store:  is less than 
               5000 + (512 * 4) + (200 + (512 * 3 * 3)) * 2 = 
                        5000 + 2048 + 400 + 9216   16500 halfwords 
               code   test  descr. buffers 
                
          The minimum size for a DDFR-process without testoutput is aprox.
          6500 halfwords. 
           
          N_o_t_e_: Resources for fpa-drivers in the monitor or FDLC-processes
                are n_o_t_ included. 
                 \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          Ref. 1   RCSL No 43-GL 7810: FDLC Reference Manual 
          Ref. 2   RCSL No 31-D 571:   PRIMO 
          Ref. 3   RCSL No 31-D 364:   Utility Programs, Part 1 
          Ref. 4   RCSL No 31-D 477    Monitor Manual, Part 2 
          Ref. 5   RCSL No 31-D 476    Monitor, Part 1 
          Ref. 6   RCSL No 31-D 592:   FDLC User>s Manual 
                   Ref. 7   RC Information Note BOL800627 
                   Package Description for SW8701/1 
           \f

«eof»