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

⟦88e76d790⟧ TextFile

    Length: 172416 (0x2a180)
    Types: TextFile
    Names: »D7«

Derivation

└─⟦e61e7d03c⟧ Bits:30005867/disk01.imd Dokumenter (RCSL m.m.)
    └─⟦this⟧ »D7« 

TextFile

        CO_T_H_E_R_ _I_N_T_E_R_A_C_T_I_V_E_ _U_S_E_S_ _O_F_ _R_C_ _B_A_S_I_C_ 
 
 
C.1C_o_m_m_a_n_d_s_ _d_e_r_i_v_e_d_ _f_r_o_m_ _R_C_ _B_A_S_I_C_ _s_t_a_t_e_m_e_n_t_s_ 
 
The interactive use of RC BASIC for source program maintenance
is described in Chapter 9. This appendix describes other
interactive uses of RC BASIC. 
 
Many RC BASIC statements (see Chs. 3, 6, and 8) can be used as
keyboard commands. When a statement is used as a command, it is
entered without a preceding line number and terminated by pres-
sing the RETURN key; the system then executes it immediately. 
 
This facility is useful for: 
 
    Performing desk calculator functions, e.g. PRINT EXP(2.13) 
 
    Debugging programs dynamically 
 
    Performing file input/output, e.g. OPEN FILE(6,9) "<PTR" 
 
Certain RC BASIC statements, which are meaningful only within
the context of a program, cannot be used as keyboard commands.
These statements are: 
 
    CASE-WHEN-ENDCASE               ELSE 
     
    DATA                            ON-ERR  
 
    DEF                             ON-ESC 
     
    DELAY                           ON-GOTO/GOSUB 
     
    END                             PRINT USING 
     
    EXEC                            PROC-ENDPROC 
     
    FOR-NEXT                        REM 
     
    GOSUB and RETURN                REPEAT-UNTIL 
     
    GOTO                            STOP 
     
    ENDIF                           WHILE-ENDWHILE 
     \f

C.2D_e_s_k_ _c_a_l_c_u_l_a_t_o_r_ _f_u_n_c_t_i_o_n_s_ 
 
Calculations can be performed using the PRINT command. A
semicolon (;) may be used instead of the word PRINT. 
 
The items in the argument list may be numeric or relational
expressions, string literals, or string variables. 
 
Values can be assigned to variables by means of the LET, INPUT,
or READ command, or the current values of variables in a loaded
program can be used. 
 
T_E_x_a_m_p_l_e_                             C_o_m_m_e_n_t_s_ 
 
* TAB=10 
* K=SYS(14)/180                     K is the factor used when 
* ;SIN(45*K),COS(45*K);TAN(45*K)    converting radians to
 .707107   .707107  1               degrees.  
* ;SQR(169);SQR(27.45) 
 13  5.23927 
* ;"12'"                             This PRINT command will
                                    clear the display screen on
*                                   the RC 822 or RC 823
                                    terminal. 
 
&_ 
T_      C.3P_r_o_g_r_a_m_ _d_e_b_u_g_g_i_n_g_ 
 
The use of RC BASIC statements as keyboard commands permits
programs to be debugged dynamically. 
&_ 
If, for example, a running program is producing the wrong
output, it can be interrupted (ESCape key); the current values
of the variables can then be examined (PRINT command) and
changed (LET command) as required, before program execution is
continued (see the CON or RUN line no.' command, Ch. 9).
 \f

T_      E_x_a_m_p_l_e_                                       C_o_m_m_e_n_t_s_ 
 
0010 LET K=180/SYS(14) 
0020 FOR I=0 TO 45 STEP 5 
0030   PRINT USING "### #.####",I,SIN(K*I), 
0040 NEXT I 
 
* RUN 
  0 0.0000       5 0.5597      10 0.9277      The results indi-
 15 0                                         cate that the
   STOP value of K is  
AT 0030wrong. 
* K=SYS(14)/180                            
* RUN 20                                  The user presses
0 0.0000        5 0.0872     10 0.1736  the ESCape key, 
 15 0.2588       20 0.3420     25 0.4226      assigns the right
30 0.5000       35 0.5736     40 0.6428  value to K, and   
 45 0.7071    resumes program
END    execution from
AT 0040line 20.
*

 
        C.4F_i_l_e_ _i_n_p_u_t_/_o_u_t_p_u_t_ 
 
With the exception of PRINT FILE USING, the file input/output
statements described in Chapter 8 can be used as keyboard
commands to create a file, open a file, write data to a file,
and so on. 
 
If, for example, the error message 0044: FILE NOT OPENED is
output, the user can open the file by means of the command 
 
    OPEN FILE(file',mode') filename'
 
and program execution can then continue. 
 
Use of the RELEASE command (see Ch. 7) may cause the error
message 0115: OPEN FILES ON LD to appear, in which case the user
should first give the command CLOSE and then RELEASE. 
F_ \f

T_      DA_S_C_I_I_ _C_H_A_R_A_C_T_E_R_ _S_E_T_ 
 
        D.1A_S_C_I_I_ _c_h_a_r_a_c_t_e_r_s_ _w_i_t_h_ _t_h_e_i_r_ _d_e_c_i_m_a_l_ _a_n_d_ _o_c_t_a_l_ _v_a_l_u_e_s_ 
 
        D_E_C_  O_C_T_  C_H_A_R_    D_E_C_  O_C_T_  C_H_A_R_    D_E_C_  O_C_T_  C_H_A_R_    D_E_C_  O_C_T_  C_H_A_R_ 
 
  0  000  NUL      32  040  SP       64  100  Æ        96  140 
  1  001  SOH      33  041  "        65  101  A        97  141  a 
  2  002  STX      34  042  "        66  102  B        98  142  b 
  3  003  ETX      35  043  #        67  103  C        99  143  c 
 
  4  004  EOT      36  044  <        68  104  D       100  144  d 
  5  005  ENQ      37  045  %        69  105  E       101  145  e 
  6  006  ACK      38  046  &        70  106  F       102  146  f 
  7  007  BEL      39  047  !        71  107  G       103  147  g 
 
  8  010  BS       40  050  (        72  110  H       104  150  h 
  9  011  HT       41  051  )        73  111  I       105  151  i 
 10  012  LF       42  052  *        74  112  J       106  152  j 
 11  013  VT       43  053  +        75  113  K       107  153  k  
 
 12  014  FF       44  054  ,        76  114  L       108  154  l 
 13  015  CR       45  055  -        77  115  M       109  155  m 
 14  016  SO       46  056  .        78  116  N       110  156  n 
 15  017  SI       47  057  /        79  117  O       111  157  o 
 
 16  020  DLE      48  060  0        80  120  P       112  160  p 
 17  021  DC1      49  061  1        81  121  Q       113  161  q 
 18  022  DC2      50  062  2        82  122  R       114  162  r 
 19  023  DC3      51  063  3        83  123  S       115  163  s 
 
 20  024  DC4      52  064  4        84  124  T       116  164  t 
 21  025  NAK      53  065  5        85  125  U       117  165  u 
 22  026  SYN      54  066  6        86  126  V       118  166  v 
 23  027  ETB      55  067  7        87  127  W       119  167  w 
 
 24  030  CAN      56  070  8        88  130  X       120  170  x 
 25  031  EM       57  071  9        89  131  Y       121  171  y 
 26  032  SUB      58  072  :        90  132  Z       122  172  z 
 27  033  ESC      59  073  ;        91  133   (@)   123  173    (æ) 
         
 28  034  FS       60  074          92  134    (Ø)   124  174    (ø) 
 29  035  GS       61  075  =        93  135   (Å)   125  175    (å) 
 30  036  RS       62  076  '        94  136    ()   126  176 
&_ 31  037  US       63  077  ?        95  137    (_)   127  177  DEL \f

        N_o_t_e_: Decimal values 91 through 93 and 123 through 125 can be  
used for Danish or other national characters.  
 
        D.2O_u_t_p_u_t_ _o_f_ _n_o_n_-_p_r_i_n_t_i_n_g_ _c_h_a_r_a_c_t_e_r_s_ 
 
Non-printing characters, i.e. characters which do not appear as keys
on the terminal keyboard, can be output by means of the following
sequence: 
 
          PRINT "x'" 
 
          where x is the decimal value of the character to be
          output. 
 
Only a few of the non-printing characters are used ordinarily,
e.g. to move the paper on the line printer or to position the cursor
on a video terminal. 
 
The non-printing characters that occur most frequently are: 
 
          12  FF  Form Feed. On the line printer, feeds the form
                  to the top of the next page and positions to  
                  the leftmost character position on the print
                  line. 
 
          13  CR  Carriage Return. On the terminal, positions to 
.                  the leftmost character position on the print  
                  line. 
 
          10  LF  Line Feed. On the terminal, feeds one line  
                  vertically. 
 
                  N_o_t_e_:  To output positioning to the leftmost
                  character position on the print line a_n_d_ a line
                  feed, the sequence PRINT "13'10'" must be 
                  used.   
 
           7  BEL Bell. On the terminal, causes the bell to ring
                  once. 
 
The characters used to position the cursor on a video terminal
will depend on the terminal in question and may be found in the
 operating guide for the terminal.
F_ \f

        E R_E_S_E_R_V_E_D_ _W_O_R_D_S_ 
 
This appendix contains an alphabetical list of the reserved  
words in the RC BASIC language. These words have special  
meanings and may not be used as variables. 
 
ABS               ENDCASE           LOCK              RND 
AND               ENDIF             LOG               RUN 
ATN               ENDPROC           LOOKUP            RUNL 
AUTO              ENDWHILE 
                  ENTER              
                  EOF               MATSAVE 
        BATCHEOJMODSCRATCH 
BYEERRSGN 
ESCSIN 
EXECNEWSIZE 
CALL EXPNEXTSQR 
CASENOTSTEP 
CHAINSTOP 
CHRFALSESYS 
CLOSEFILEOF  
CONFNA ... FNÅON 
CONLFOROPENTAB 
CONNECTORTAN 
COPYORDTHEN 
COSGOSUBTIME 
CREATEGOTOTINPUT 
PAGETO 
PRINTTRN 
DATAIDNPROCTRUE 
DEFIFPUNCH 
DELAYINIT 
DELETEINPUTUNTIL 
DETINTRANDOMIZEUSERS 
DIMINVREADUSING 
DIVRELEASE 
DOREM 
RENAMEWHEN 
LENRENUMBERWHILE 
LETREPEATWRITE 
ELSELISTRESTORE 
ENDLOADRETURNZER
 
N_o_t_e_: FNA ... FNÅ represents the 29 reserved words FNA, FNB, 
..., FNZ, FN@, FNØ, and FNÅ.
F_\f

F         S_U_M_M_A_R_Y_ _O_F_ _S_T_A_T_E_M_E_N_T_S_,_ _C_O_M_M_A_N_D_S_,_ _A_N_D_ _F_U_N_C_T_I_O_N_S_ 
 
 
        F.1R_C_ _B_A_S_I_C_ _s_t_a_t_e_m_e_n_t_s_ _(_C_h_a_p_t_e_r_ _3_)_ 
 
F_o_r_m_a_t_/_D_e_s_c_r_i_p_t_i_o_n_                                    S_e_c_t_i_o_n_/_U_s_e_
      
  CASE expr' OF                                               3.2
   statements-0'
 WHEN expr' ,expr' ... 
    statements-1'
      . 
      . 
      . 
 WHEN expr' ,expr' ... 
    statements-n'
 ENDCASE comment'
 
        The expression following CASE is evaluated  STATEMENT 
        and compared with the expressions following 
        WHEN. If there is a match in the ith WHEN 
        statement, statements-i is executed. If no 
        match is found, statements-0 is executed. 
        Control is then transferred to the first 
        statement following ENDCASE. 
 
 CHAIN filename' THEN GOTO lineno.'                       3.3
 
        Runs the SAVEd program referred to by a     STATEMENT 
        filename when the statement is encountered  or COMMAND 
        in the user"s program. When used as a    
        command, CHAIN will LOAD, but not execute, 
        the SAVEd program. 
 
  val'    ,val'3.4
 DATA  slit'   ,slit'   ...
 
        Provides values to be read into variables   STATEMENT 
        appearing in READ or MAT READ statements. 
 
 DEF FNa'(d') = expr'                3.5
 
        Used with the f_u_n_c_t_i_o_n_ FNa(d) to define a   STATEMENT 
        user function. 
 \f

DELAY = expr'                             3.6
 
       Interrupts program execution for a            STATEMENT 
        specified number of seconds. 
 
      svar'(m')      svar'(m')                    3.7
 DIM  array'(m')   ,array'(m')          ...
      array'(row',col')array'(row',col')
 
        Defines the size of string variables or     STATEMENT 
        numeric variable arrays.                    or COMMAND 
 
 END comment'                                              3.8
 
        Terminates execution of the program.        STATEMENT 
 
 EXEC name'                                                 3.10
  
        Executes a procedure defined by             STATEMENT 
        PROC-ENDPROC. 
 
 FOR control var' = expr1' TO expr2' STEP expr3'       3.11
statements'
 NEXT control var'
 
        FOR begins a FOR-NEXT loop and defines the  STATEMENT 
number of times a block of statements is  
to be executed. NEXT is the last statement  
in the loop and changes the value of the  
control variable. 
 
 GOSUB lineno.'                                             3.12
 .
 .
 .
 statements'    
RETURN comment'  
 
       GOSUB transfers control to the first state-   STATEMENT 
        ment of a subroutine. RETURN is the last  
        statement in a subroutine and returns            
        control to the first statement following 
        the GOSUB statement that called the sub- 
        routine. 
 
 GOTO lineno.'                                              3.13
 
        Transfers control unconditionally to aSTATEMENT 
        statement not in normal sequential order.\f

        IF expr' THEN statement'                                 3.14
 
        Executes a single statement depending on    STATEMENT 
        whether an expression is true or false.     or COMMAND 
 
IF expr' THEN DO                                        3.15
  statements'
ENDIF comment'
 
        Executes a block of statements depending on STATEMENT 
        whether an expression is true or false. 
 
IF expr' THEN DO                                        3.16
statements-1'
ELSE comment'
  statements-2'
ENDIF comment'
 
        Executes statements-1 if an expression is   STATEMENT
  true, otherwise statements-2. 
 
 var',var'3.17
INPUT slit-0', svar'  ,slit-n' ,svar'   ...
 
        Assigns values entered from the user"s      STATEMENT 
        terminal to numeric or string variables.    or COMMAND 
 
var'var'3.18
LET svar'  = expr'  ; svar'  = expr'  ...   
 
        Assigns the value of an expression to a       STATEMENT 
        variable.                                   or COMMAND 
 
        ON ERR THEN statement'                                      3.20
 
        Enables the programmer to take special      STATEMENT 
        action, if an error occurs during program 
        execution. 
 
ON ESC THEN statement'                                      3.21
 
        Enables the programmer to take special      STATEMENT 
        action, if the ESCape key is pressed 
        during program execution. \f

GOTO                                  3.22
ON expr' THEN  GOSUB  lineno.' ,lineno.' ...

        Transfers control to one of several lines   STATEMENT 
        in a program depending on the computed 
        value of an expression when the statement 
        is executed. 
 
expr'     expr'                                  3.24
;slit'  ,  slit'          ,
 PRINT    svar'  ;  svar'   ...    ;

        Prints specified items on the user"s        STATEMENT
                terminal.                                   or COMMAND 
 
expr'      expr'                     3.25
PRINT USING format', slit'   ,  slit'   ...   ,
svar'   ;  svar'; 
 
        Outputs the values of items in the          STATEMENT 
        argument list using a specified format.
 
PROC name'                                                  3.26
  statements'
ENDPROC comment'
 
        Defines a procedure. When the procedure is  STATEMENT 
        called by EXEC, control is transferred to 
        the first statement following PROC. ENDPROC  
        is the last statement in a procedure and  
        returns control to the first statement fol- 
        lowing the EXEC statement that called the 
        procedure. 
 
RANDOMIZE                                                    3.27
 
        Causes the random number generator to start STATEMENT 
        at a different point in the sequence of     or COMMAND 
        random numbers generated by the f_u_n_c_t_i_o_n_ 
        RND(X). 
 
              var'    ,var'                                        3.28
READ  svar'   ,svar'   ...
 
        Reads in values from DATA statements and    STATEMENT 
        assigns the values to the variables listed  or COMMAND \f

        in the statement. 
 
REM comment'                                              3.29
 
        Inserts explanatory comments within a       STATEMENT 
        program. 
 
REPEAT comment'                                           3.30
  statements'
UNTIL expr'
 
        Executes a block of statements repetitively STATEMENT 
        until an expression is true. The block of 
        statements is always executed at least once.  
 
RESTORE lineno.'                                          3.31
 
        Resets the data element pointer to the      STATEMENT 
        beginning of the data list or to a         or COMMAND 
        particular DATA statement.
 
STOP comment'                                             3.33
 
        Terminates execution of the current         STATEMENT
program. 
 
TAB(expr')                                                  3.35
 
        Used in PRINT statements to tabulate the    F_U_N_C_T_I_O_N_ 
        printing position to the column number 
        evaluated from an expression. 
 
WHILE expr' THEN DO                                       3.36
  statements'
ENDWHILE comment'
 
        Executes a block of statements repetitively STATEMENT 
        while an expression is true. If the expres- 
        sion is false the first time WHILE is en- 
        countered, the block of statements is not 
        executed even once.
 
 

 \f

F.2       R_C_ _B_A_S_I_C_ _f_u_n_c_t_i_o_n_s_ _(_C_h_a_p_t_e_r_ _4_)_ 
 
ABS(expr')                                                   4.2
 
        Returns the absolute (positive) value of    FUNCTION 
        an expression. 
 
ATN(expr')                                                   4.3
 
        Calculates the angle, in radians, whose     FUNCTION 
        tangent is an expression. 
 
COS(expr')                                                   4.4
 
        Calculates the cosine of an angle which is  FUNCTION 
        expressed in radians. 
 
EXP(expr')                                                   4.5
 
        Calculates the value of e (2.71828) to the  FUNCTION 
        power of an expression. 
 
FNa'(d')                                                    4.6
 
        A user function which is defined by DEF     FUNCTION 
        (see Sect. F.1) and returns a numeric value.  
 
INT(expr')                                                   4.7
 
        Returns the value of the nearest integer    FUNCTION 
        not greater than an expression. 
 
LOG(expr')                                                   4.8
 
        Calculates the n_a_t_u_r_a_l_ logarithm of an      FUNCTION 
        expression. 
 
RND(expr')                                                   4.9
 
        Produces a pseudo random number between     FUNCTION 
        0 and 1. 
 
SGN(expr')                                                  4.10
 
        Returns the algebraic sign of an            FUNCTION 
        expression.\f

SIN(expr')4.11
 
        Calculates the sine of an angle which is    FUNCTION 
        expressed in radians. 
 
SQR(expr')                                                  4.12
 
        Computes the square root of an expression.  FUNCTION 
 
SYS(expr')                                                  4.13
 
        Returns system information, based on an     FUNCTION 
        expression which is evaluated to an  
        integer, as follows: 
 
         0   Time of day. 
         1   Day. 
         2   Month. 
         3   Year. 
         4   Terminal port number. 
         5   Time used since terminal was logged   on. 
         6   Number of file I/O statements execu  ted. 
         7   Error code of last run-time error. 
         8   File number of last file referenced  . 
         9   Page size. 
        10   Tab size. 
        11   Hour. 
        12   Minutes past last hour. 
        13   Seconds past last minute. 
        14   Constant  . 
        15   Constant e. 
 
TAN(expr')                                                  4.14
 
        Calculates the tangent of an angle which    FUNCTION
                is expressed in radians. 
 
The following functions are described in other sections: the
printing function TAB(X) in F.1; the string functions CHR(X),
LEN(X<), and ORD(X<) in F.3; the matrix function DET(X) in F.4; 
and the function EOF(X) in F.6. \f

T_      F.3S_t_r_i_n_g_ _f_u_n_c_t_i_o_n_s_ _(_C_h_a_p_t_e_r_ _5_)_ 

CHR(expr')                                                   5.2
 
        Returns the character corresponding to      FUNCTION 
        the number found as an expression modulo 
        128. 
&_ 
svar'                        5.3
LEN( slit' )

        Returns the current number of characters    FUNCTION 
        in a string. 
 
svar'                      5.4
ORD( slit' )
                   
        Returns the decimal number of the first     FUNCTION 
        character of a string. 
   
 
        F.4M_a_t_r_i_x_ _s_t_a_t_e_m_e_n_t_s_ _(_C_h_a_p_t_e_r_ _6_)_ 
 
        MAT mvar1' = mvar2'                                         6.3
 
        Copies the elements of one matrix to        STATEMENT 
        another matrix.                             or COMMAND 
 
 
MAT mvar1' = mvar2' UUU+DDD mvar 3'                     6.4
                      UUUU-DDDD
        Performs the scalar addition or             STATEMENT 
        subtraction of two matrices.                or COMMAND 
 
 
MAT mvar1' =   UUUmvar2'DDD   * mvar3'                  6.5
                UUUU(expr')DDDD  
        Performs the multiplication of one          STATEMENT 
        matrix by another matrix or by a scalar.or COMMAND
 
var' = DET(expr')                                           6.6
 
        Returns the determinant of the last         F_U_N_C_T_I_O_N_ 
        matrix inverted by a MAT INV statement. 
 \f

MAT mvar' = CON 6.7
 
        Initializes a matrix such that all          STATEMENT 
        elements are set to one.or COMMAND
 
MAT mvar' = IDN                                              6.8
 
        Initializes a matrix such that all          STATEMENT
                elements (i,i) are set to one and the       or COMMAND 
        remaining elements are set to zero. 
 
MAT INPUT mvar1' ,mvar2', ... ,mvar-n'                   6.9
 
        Assigns numeric values entered from the     STATEMENT 
        user"s terminal to the elements of one      or COMMAND 
        or more matrices. 
 
MAT mvar1' = INV(mvar2')                                   6.10
 
        Inverts a matrix and assigns the resultant  STATEMENT 
        element values to another matrix.           or COMMAND 

;
MAT PRINT mvar'   , mvar'  ... ;                          6.11

        Outputs the values of the elements of one   STATEMENT 
        or more matrices on the user"s terminal.    or COMMAND 
 
MAT READ mvar' ,mvar' ...                                6.12
 
        Reads in numeric values from DATA state-    STATEMENT 
        ments and assigns the values to the         or COMMAND 
        elements of one or more matrices. 
 
MAT mvar1' = TRN(mvar2')                                   6.13

        Transposes a matrix and assigns the         STATEMENT 
        resultant element values to another         or COMMAND 
        matrix. 
 
MAT mvar' = ZER                                             6.14
 
        Initializes a matrix such that all          STATEMENT 
        elements are set to zero.                   or COMMAND
 
 \f

T_      F.5L_o_g_i_c_a_l_ _d_i_s_c_ _c_o_m_m_a_n_d_s_ _(_C_h_a_p_t_e_r_ _7_)_ 
 
CONNECT ldname' ,expr'                                    7.2
 
        Connects the user"s terminal to a logical   COMMANDor
        disc for reading or, if the protection key  STATEMENT
        is correctly specified, for both reading 
        and writing. 
&_ 
COPY "ldname':filename1'","filename2'"                     7.3
 
        Copies a file (filename1') from any        COMMAND 
        logical disc (ldname') to a file      
        (filename2') in the logical disc to  
        which the terminal is connected. 
 
INIT device'                                                 7.4
 
        Initializes the main catalog in a device    COMMAND 
        containing logical discs. 
 
LOCK device'                                                 7.5
 
        Locks a device, when changing discs or      COMMAND 
        closing down the system, so that no user 
        can connect his terminal to a logical disc 
        in that device. 
 
LOOKUP "<LPT"                                               7.6
 
        Returns a listing of the files in the       COMMAND 
        logical disc to which the terminal is 
        connected. 
 
RELEASE                                                       7.7
 
        Disconnects the user"s terminal from the    COMMANDor
        logical disc to which it is connected.STATEMENT
 
USERS device'                                                7.8
 
        Returns the number of users whose           COMMAND 
        terminals are connected to any logical 
        disc in a device. 
 \f

        F.6F_i_l_e_ _s_t_a_t_e_m_e_n_t_s_ _(_C_h_a_p_t_e_r_ _8_)_  
 
CLOSE FILE(file')                                          8.2  
 
        Dissociates a filename and a user file      STATEMENT 
        number (see OPEN FILE) so that the file     or COMMAND 
        no longer can be referenced. The CLOSE 
        form of the statement closes all open files.
 
CREATE filename',size',recl'                             8.3
 
Creates a file in the logical disc to       STATEMENT 
        which the user"s terminal is connected.     or COMMAND 
 
DELETE filename'                                             8.4
 
        Deletes a file in the logical disc to which STATEMENT 
        the user"s terminal is connected.           or COMMAND 
 
EOF(file')                                                   8.5
 
        Returns a value of +1, if an end of file    F_U_N_C_T_I_O_N_ 
        condition was detected in the last INPUT 
        FILE or READ FILE statement; otherwise, a 
        value of 0 is returned. 
 
var'var'
INPUT FILE(file') ,  svar'  , svar'   ...                8.6
 
        Reads data in ASCII format from a           STATEMENT 
        sequential access file for the variables    or COMMAND 
        in the argument list. 
 
MAT INPUT FILE(file') , mvar' ,mvar' ...               8.7   
 
        Reads data in ASCII format from a           STATEMENT 
        sequential access file for the matrix       or COMMAND 
        variables in the argument list. 
 
MAT PRINT FILE(file') , mvar' ,mvar' ...               8.8   
 
        Writes matrix data in ASCII format to a     STATEMENT 
        sequential access file.                     or COMMAND 
 \f

        MAT READ FILE(file',recno') , mvar' ,mvar' ...      8.9
 
        Reads data in binary format from a          STATEMENT 
        sequential access file or record of a       or COMMAND 
        random access file for the matrix  
        variables in the argument list. 
 
MAT WRITE FILE(file',recno') , mvar' ,mvar' ...    8.10
 
        Writes matrix data in binary format to a    STATEMENT 
        sequential access file or record of a       or COMMAND 
        random access file. 
 
OPEN FILE(file',mode') , filename'                      8.11
 
        Associates a filename, i.e. a disc file or  STATEMENT 
        a device, with a user file number so that   or COMMAND 
        the file can be referenced in other file  
        I/O statements; also specifies how the file
        is to be used. 
 
expr'   ,  expr'         ,
PRINT FILE(file') ,  slit'   ;  slit'   ...   ;         8.12
svar'      svar'
 
        Writes data in ASCII format to a            STATEMENT 
        sequential access file.                     or COMMAND 
 
expr'    expr'
PRINT FILE(file') , USING format', slit'  , slit'   ...  ,
svar'  ; svar'        ; 

8.13
Writes data in ASCII format to a            STATEMENT 
        sequential access file, using a specified
        output format.
 
var'var'
READ FILE(file',recno') ,  svar'  , svar'   ...      8.14
 
        Reads data in binary format from a          STATEMENT 
        sequential access file or record of aor COMMAND
        random access file for the variables in 
        the argument list. 

 \f

RENAME filename1',filename2'8.15
 
        Renames a file in the logical disc to       STATEMENT 
        which the user"s terminal is connected.     or COMMAND 
 
expr'    expr'
WRITE FILE(file',recno') , slit'  , slit'   ...      8.16
svar'    svar'
 
        Writes data in binary format to a           STATEMENT 
        sequential access file or record of a       or COMMAND 
        random access file. 
 
   
        F.7S_y_s_t_e_m_ _c_o_m_m_a_n_d_s_ _(_C_h_a_p_t_e_r_ _9_)_

         line n1',line n2'                                          9.2
line n1'
 line n1', 
 ,line n2'
 
        Deletes one or more statements in a         COMMAND 
        program. 
 
 
       line n1'                                              9.3
STEP
AUTO    ,    line n2'
STEP 
       line n1' ,    line n2'
 
        Provides automatic line numbers in a        COMMAND 
        program, thereby making it easier to
        enter programs from a terminal.
 
BATCH "<LPT" 9.4
 
        Places the terminal in batch mode and       COMMAND 
        causes the system to start reading cards 
        from the mark-sense card reader. Job out- 
        put will appear on the terminal or, if the 
        BATCH "<LPT" form of the command is used,  
        on the line printer. 
 \f

T_BYE                                                           9.5
 
        Logs the terminal off the system.           COMMANDor 
                                                      STATEMENT 
&_ 
 CON                                                          9.6
 CONL 
 
        Continues execution of the current program  COMMAND 
        after the execution of a STOP statement in 
        the program, after the ESCape key has been 
        pressed, or after an error has occurred. 
        Output from PRINT statements will appear on 
        the terminal or, if the CONL form of the 
        command is used, on the line printer. 
 
ENTER filename'                                              9.7
 
        Merges the statement lines from the disc    COMMAND or 
        file or the device specified by a filename  STATEMENT 
        into the current program storage area. 
 
line n1'                     9.9
TO
LIST    ,  line n2'            filename'
TO
line n1' ,  line n2'
 
        Outputs part or all of the currently        COMMAND 
        loaded program in ASCII format to the        
        disc file or the device specified by a   
        filename or, if no filename is specified,
        to the terminal.
 
LOAD filename'                                              9.10
 
        Loads a previously SAVEd program in binary  COMMAND 
        format from the disc file or the device 
        specified by a filename into the user"s 
        program storage area. 
 
NEW                                                          9.11
 
        Clears all currently stored program state-  COMMAND or 
        ments and variables from core memory and    STATEMENT 
        closes any open files. \f

PAGE=expr'                                                  9.12
 
        Sets the right-hand margin of the terminal. COMMAND or 
                                                      STATEMENT 
 
  line n1'                                         9.13
TO
PUNCH    ,  line n2'
TO 
        line n1' ,  line n2'
 
        Outputs part or all of the currently loaded COMMAND 
        program in ASCII format to the terminal    
        punch (when present). 
 
          line n1'                                         9.14
        STEP
RENUMBER    ,    line n2'
STEP 
           line n1' ,    line n2'
 
        Renumbers the statements in the current     COMMAND 
        program. 
 
 RUN     line no.'                                          9.15
 RUNL    filename'
 
        Executes the current program, either from   COMMAND 
        the lowest numbered statement or from a 
        specified line number, or loads and executes   
        a previously SAVEd program as the current 
        program. Output from PRINT statements will 
        appear on the terminal or, if the RUNL form    
        of the command is used, on the line printer.
 
SAVE filename'                                              9.16
 
        Writes the currently loaded program,        COMMAND or 
        including the current values of all         STATEMENT 
        variables and parameters, in binary format 
        to the disc file or the device specified 
        by a filename. 
 
SIZE                                                         9.18
 
        Returns the number of bytes used by the     COMMAND 
current program and the numbers of bytes
left.\f

TAB=expr'                                                  9.19
 
        Sets the zone spacing between the print     COMMAND or 
        elements output by PRINT statements.        STATEMENT 
 
 
        F.8B_a_t_c_h_ _m_o_d_e_ _c_o_m_m_a_n_d_s_ _(_A_p_p_e_n_d_i_x_ _B_)_         
         
EOJ                                                          B.4 
 
        Terminates a job.                           COMMAND 
 
SCRATCH text'                                             B.5 
 
        Initiates a job.                            COMMAND 
 
TIME=val'                                                   B.6 
 
        Specifies how many seconds a job may run.   COMMAND 
F_ \f

R_E_S_E_R_V_E_D_ _W_O_R_D_S_ _I_N_ _T_H_E_ _R_C_ _B_A_S_I_C_ _L_A_N_G_U_A_G_E_ 
 
The use of the words is denoted by the following abbreviations: AO (arithmetic
operator), C (command), F (function), LO (logical  operator), NI (not
implemented), and S (statement). 
 
The section (chapter) number indicates where the sole, first, or principal
explanation of the word will be found. 
 
W_o_r_d_      U_s_e_   S_e_c_t_i_o_n_     W_o_r_d_      U_s_e_   S_e_c_t_i_o_n_     W_o_r_d_      U_s_e_   S_e_c_t_i_o_n_ 

ABS       F     4.2         FALSE     NI                RANDOMIZE S,C   3.27 
AND       LO    2           FILE      S,C   8           READ      S,C   3.28 
ATN       F     4.3         FNA - FNÅ F     3.5         RELEASE   C,S   7.7 
AUTO      C     9.3         FOR       S     3.11        REM       S     3.29 
                                                        RENAME    S,C   8.15 
BATCH     C     9.4         GOSUB     S     3.12        RENUMBER  C     9.14 
BYE       C,S   9.5         GOTO      S     3.13        REPEAT    S     3.30 
                                                        RESTORE   S,C   3.31 
CALL      NI                                            RETURN    S     3.12 
CASE      S     3.2         IDN       S,C   6.8         RND       F     4.9 
CHAIN     S,C   3.3         IF        S,C   3.14        RUN       C     9.15 
CHR       F     5.2         INIT      C     7.4         RUNL      C     9.15 
CLOSE     S,C   8.2         INPUT     S,C   3.17 
CON       S,C   6.7         INT       F     4.7 
CON       C     9.6         INV       S,C   6.10        SAVE      C,S   9.16 
CONL      C     9.6                                     SCRATCH   C     B.5 
CONNECT   C,S   7.2                                     SGN       F     4.10 
COPY      C     7.3         LEN       F     5.3         SIN       F     4.11 
COS       F     4.4         LET       S,C   3.18        SIZE      C     9.18 
CREATE    S,C   8.3         LIST      C     9.9         SQR       F     4.12 
                            LOAD      C     9.10        STEP      S     3.11 
DATA      S     3.4         LOCK      C     7.5         STOP      S     3.33 
DEF       S     3.5         LOG       F     4.8         SYS       F     4.13 
DELAY     S     3.6         LOOKUP    C     7.6 
DELETE    S,C   8.4 
DET       F     6.6                                     TAB       C,S   9.19 
DIM       S,C   3.7         MAT       S,C   6           TAN       F     4.14 
DIV       AO    2           MOD       AO    2           THEN      S,C   3.14 
DO        S     3.36                                    TIME      C     B.6 
                            NEW       C,S   9.11        TINPUT    NI 
ELSE      S     3.16        NEXT      S     3.11        TO        S     3.11 
END       S     3.8         NOT       LO    2           TRN       S,C   6.13 
ENDCASE   S     3.2                                     TRUE      NI 
ENDIF     S     3.15        OF        S     3.2          
ENDPROC   S     3.26        ON        S     3.22        UNTIL     S     3.30 
ENDWHILE  S     3.36        OPEN      S,C   8.11        USERS     C     7.8 
ENTER     C,S   9.7         OR        LO    2           USING     S     3.25 
EOF       F     8.5         ORD       F     5.4          
EOJ       C     B.4                                     WHEN      S     3.2 
ERR       S     3.20        PAGE      C,S   9.12        WHILE     S     3.36 
ESC       S     3.21        PRINT     S,C   3.24        WRITE     S,C   8.16 
EXEC      S     3.10        PROC      S     3.26         
EXP       F     4.5         PUNCH     C     9.13        ZER       S,C   6.14 \f

        GA_D_V_A_N_C_E_D_ _P_R_O_G_R_A_M_M_I_N_G_ _E_X_A_M_P_L_E_S_
 
              In course of preparation.\f

H         C_A_L_L_I_N_G_ _A_N_ _A_S_S_E_M_B_L_Y_ _L_A_N_G_U_A_G_E_ _S_U_B_R_O_U_T_I_N_E_ _F_R_O_M_ _R_C_ _B_A_S_I_C_ 
 
In course of preparation.\f

                                                            Diskette 007 
                                                            80.10.07 
 
1   CONTENTS.0      33  BASIC9.10       65  INDEX.9         19  10388.15
2   CONTENTS.1      34  BASIC9.11                           20  10388.16
3   CONTENTS.2      35  BASIC9.12       1   HEAD.0          21  10388.17
4   CONTENTS.3      36  BASIC9.13                           22  10388.18
5   CONTENTS.4      37  BASIC9.14       1   1378.1          23  10388.19
6   BASIC6.0        38  BASIC9.15       2   1378.2          24  10388.20
7   BASIC6.1        39  BASIC9.16       3   1378.3          25  10388.21
8   BASIC6.2        40  BASIC9.17       4   1378.4          26  10388.22
9   BASIC6.3        41  BASIC9.18       5   1378.5          27  10388.23
10  BASIC6.4        42  BASIC9.19       6   1378.6          28  10388.24
11  BASIC6.5        43  BASIC9.20       7   1378.7          29  10388.25
12  BASIC6.6        44  BASIC9.21       8   1378.8          30  10388.26
13  BASIC6.7        45  BASIC9.22       9   1378.9          31  10388.27
14  BASIC6.8        46  BASIC9.23                           32  10388.28
15  BASIC6.9        47  BASICC.0        1   SIDE21.0
16  BASIC6.10       48  BASICC.1        2   SIDE22.0        1   CONT.1
17  BASIC6.11       49  BASICC.2        3   SIDE23.0        2   CONT.2
18  BASIC6.12       50  BASICD.0        4   SIDE26.0        3   617.1
19  BASIC6.13       51  BASICD.1        5   10388.1         4   617.2
20  BASIC6.14       52  BASICE.0        6   10388.2         5   617.3
21  BASIC6.15       53  RESERV-WORDS.0  7   10388.3         6   617.4
22  BASIC6.16       54  BASIC-G.0       8   10388.4         7   617.5
23  BASIC9.0        55  BASIC-H.0       9   10388.5         8   617.6
24  BASIC9.1        56  INDEX.0         10  10388.6         9   617.7
25  BASIC9.2        57  INDEX.1         11  10388.7         10  617.8
26  BASIC9.3        58  INDEX.2         12  10388.8         11  617.9
27  BASIC9.4        59  INDEX.3         13  10388.9         12  617.10
28  BASIC9.5        60  INDEX.4         14  10388.10
29  BASIC9.6        61  INDEX.5         15  10388.11
30  BASIC9.7        62  INDEX.6         16  10388.12
31  BASIC9.8        63  INDEX.7         17  10388.13
32  BASIC9.9        64  INDEX.8         18  10388.14\f

- time limit on jobs, B.3.3 
- use of ESCape key, B.3.4
BATCH "<LPT", 9.4, B.1, B.3.1 
Block sizes. See Devices 
Boolean arguments. See Operators, Boolean 
Branching, conditional, 3.2, 3.14, 3.15, 3.16, 3.22
- unconditional, 3.13 
BYE, 9.5 
Bytes used and bytes left, command to return, 9.18 
 
CASE, 3.2 
CASE-WHEN-ENDCASE, 3.2 
Catalog, main, 7.1, 7.4; initialization of, 7.4 
- structure, 7.1 
- subcatalog, 7.1 
CHAIN, 3.3, 8.1.5 
Character corresponding to specified number, function to  
  return, 5.2
CHR(X), 5.2 
Clearing programs from core memory, 9.11 
CLOSE FILE, 8.1.5, 8.1.7, 8.2 
Commands, 1.2 
- derived from RC BASIC statements, C.1 
- desk calculator functions, C.2 
- file input/output, C.4 
- logical discs, 7 
- program debugging, C.3 
- program development and execution, 9, 9.1 
Comments, explanatory, within program, 3.29 
CON/CONL, 9.6, C.3 
CONNECT, 7.1, 7.2, 8.1.6, 8.1.8, 8.3, 8.4, 8.15 
Control structures, 3.2, 3.11, 3.13, 3.14, 3.15, 3.16, 3.22,  
  3.30, 3.33
COPY, 7.3 
Corrections, program statements, 1.2 
Cosine of X, where X is in radians, function to return, 4.4 
COS(X), 4.4 
CREATE, 8.1.4, 8.3 
 
DATA, 3.4, 3.31 
Data element pointer, resetting of. See RESTORE 
Debugging, program, C.1, C.3 
DEF, 3.5 
DELAY, 3.6 
DELETE, 8.4 \f

Deletion, files, 8.4 
- program statements, 1.2, 9.2, 9.7 
Descriptions of statements, commands, and functions, 1.4 
Desk calculator functions, C.1, C.2 
DET(X), 6.6 
device', 1.5 
Devices, 7.1, 8.1.1 
- block sizes, 8.1.3 
- reserved names, 8.1.2 
DIM, 3.7, 5.1.3, 6.2 
Dimensioning, matrices, 6.2 
- numeric arrays, 2.4.2, 3.7 
- string variables, 5.1.3 
DIV. See Operators, arithmetic 
DO, 3.15, 3.16, 3.36 
 
ELSE, 3.16 
END, 3.8 
ENDCASE, 3.2 
ENDIF, 3.15, 3.16 
ENDPROC, 3.10, 3.26 
ENDWHILE, 3.36 
ENTER, 8.1.5, 9.7 
Entering data for program from terminal. See INPUT 
EOF(X), 8.5 
EOJ, B.1, B.4 
ERR, 3.20 
Error messages, during command execution, A.1, A.2 
- during file (input/output) operations, A.1, A.3 
- during program entry, A.1, A.2 
- during program execution, A.1, A.2 
- during reading of program from file, A.1, A.2 
ESC, 3.21 
ESCape key, 1.2, 1.3, 3.21, 9.3, 9.5, B.3.4, C.3 
E-type notation. See Numbers in RC BASIC 
Examples of statements, commands, and functions, 1.4 
EXEC, 3.10, 3.26 
Execution, program. See Program execution 
Exponential form. See Numbers in RC BASIC 
expr', 1.5 
Expressions, 2.5. See also Operators 
- numeric, 2.5.1; evaluation of, 2.5.3 
- relational, 2.5.5 
- relational string, 5.1.7 
- string, 2.5.8 
EXP(X), 4.5\f

Facilities, RC BASIC, 1.1 
file', 1.5 
filename', 1.5 
Filenames, 8.1.1, 8.1.4 
Files, 8.1. See also Logical disc files, Random access files,
  Sequential access files 
- closing, 8.2 
- end of file condition, function to detect, 8.5 
- input/output, commands for, C.4 
- modes, 8.1.5, 8.11 
- opening, 8.11 
- sizes, 8.1.4 
- uses, 8.1.5 
Floating-point numbers. See Numbers in RC BASIC 
FNa(d), 3.5 
FOR, 3.11 
Formats (syntax) of statements, commands, and functions, 1.4 
FOR-NEXT, 3.11 
Functions, arithmetic, 4.2, 4.5, 4.7, 4.8, 4.9, 4.10, 4.12 
- file, 8.5 
- matrix, 6.6 
- printing, 3.35 
- RC BASIC, 4 
- string, 5.2, 5.3, 5.4 
- system, 4.13 
- trigonometric, 4.3, 4.4, 4.11, 4.14 
- user-defined, 3.5 
 
GOSUB, 3.12, 3.22 
GOTO, 3.3, 3.12, 3.13, 3.22 
 
Idle mode. See Modes, terminal operation 
IF, 3.14, 3.15, 3.16 
IF-THEN, 3.14 
IF-THEN-ELSE-ENDIF, 3.16 
IF-THEN-ENDIF, 3.15 
INIT, 7.4, 8.1.2 
Initialization of main catalog. See Catalog, main 
INPUT, 3.17, 5.1.2, 5.1.5, C.2 
INPUT FILE, 8.6 
Integer division, 2.5.2.1 
Integers. See Numbers in RC BASIC 
Interactive mode. See Modes, terminal operation 
Interactive uses of RC BASIC, 9, 9.1, C 
Interruption, program execution. See Program execution 
INT(X), 4.7\f

ldname', 1.5  
Length of specified string, function to return, 5.3  
LEN(X<), 5.3 
LET, 3.18, 5.1.2, 5.1.5, 5.1.6, C.2, C.3 
line no.', 1.5 
LIST, 9.9 
- LISTing versus SAVEing, 9.16 
LOAD, 8.1.5, 9.10 
Loading, SAVEd program in binary from disc file or device into 
  program storage area, 9.10 
LOCK, 7.5, 8.1.2 
Logarithm of X, natural, function to return, 4.8 
Logging off. See Terminal 
Logical disc files, 7.1, 8.1.1. See also Files 
- copying, 7.3 
- creating, 8.3 
- deleting, 8.4 
- listing, 7.6 
- renaming, 8.15 
Logical discs, 7.1 
- commands, 7 
- connection of terminal, 7.2 
- exclusive users, 7.1, 7.2 
- formatting program, 7.1 
- read access, 7.1, 7.2 
- release of terminal, 7.7 
- removal of device containing logical discs from drive unit,  
    7.5, 7.8 
- write protection, 8.1.8 
LOG(X), 4.8 
LOOKUP "<LPT", 7.6 
Loops, program, 3.11, 3.30, 3.36 
 
Maintenance, source programs, 9.1 
Mark-sense cards, B.2 
- FORMULA section, B.1, B.2.4 
- STATEMENT NUMBER section, B.2.1 
- STATEMENT 1 section, B.2.2 
- STATEMENT 2 section, B.2.3 
Master terminal. See Terminal 
MAT CON, 6.7 
MAT IDN, 6.8 
MAT INPUT, 6.9 
MAT INPUT FILE, 8.7 
MAT INV, 6.10\f

MAT PRINT, 6.11 
MAT PRINT FILE, 8.8 
MAT READ, 6.12 
MAT READ FILE, 8.9 
Matrices, addition, 6.4 
- assignment (copying), 6.3 
- determinants, 6.6, 6.10; determinant of last matrix inverted,  
  function to return, 6.6 
- dimensioning, 6.2 
- initialization, 6.7, 6.8, 6.14 
- inversion, 6.10 
- multiplication, 6.5 
- operations, 6.1 
- subtraction, 6.4 
- transposition, 6.13 
MAT TRN, 6.13 
MAT WRITE FILE, 8.10 
MAT ZER, 6.14 
Merging, program statements from disc file or device into program
  storage area, 9.7 
MOD. See Operators, arithmetic 
Modes, file usage. See Files 
Modes, terminal operation, batch, 1.1, 1.3, 9.4, B, B.3. See also
Batch mode 
- idle, 1.3, 9.5 
- interactive, 1.1, 1.3, 3.8, 3.33, B.3.5 
Modulus calculation, 2.5.2.2 
mvar', 1.5 
 
Names, arrays, 2.4 
- numeric variables, 2.3 
- string variables, 5.1.2 
Nesting, 3.2, 3.5, 3.11, 3.12, 3.15, 3.16, 3.26, 3.30, 3.36 
NEW, 1.2, 9.7, 9.10, 9.11, B.4, B.5 
NEXT, 3.11 
NOT. See Operators, Boolean 
Numbering, program statements, automatic, 9.3 
Number of first character in specified string, function to
  return, 5.4 
Numbers in RC BASIC, 2.1 
- internal representation, 2.2, 3.14 
- printing, 2.1, 3.24 \f

OF, 3.2 
ON, 3.20, 3.21, 3.22 
ON-ERR, 3.20, 9.11 
ON-ESC, 3.21, 9.11 
ON-GOTO/GOSUB, 3.22 
OPEN FILE, 8.1.6, 8.1.7, 8.11 
Operating systems, 1.1, A.3 
Operators, arithmetic, 2.5.2; DIV, 2.5.2.1; MOD, 2.5.2.2 
- Boolean, 2.5.4 
- priorities, arithmetic operators, 2.5.3; arithmetic, Boolean,  
  and relational operators, 2.5.7 
- relational, 2.5.6 
OR. See Operators, Boolean 
ORD(X<), 5.4 
Output, current program in ASCII to disc file, device, or
  terminal, 9.3; to terminal punch, 9.12; in binary to disc 
  file or device, 9.16 
 
PAGE, 9.12 
PRINT, 3.24, 3.25, C.2, C.3 
PRINT FILE, 8.12 
PRINT FILE USING, 8.13 
Printing, blank lines, 3.24 
- compact spacing, 3.24 
- data at terminal, 3.24, 3.25, 3.35, 9.12, 9.19 
- length of print line (page width), command to set, 9.12 
- non-printing characters, 5.1.1, D.2 
- numbers, 2.1, 3.24 
- spacing to next line, 3.24 
- tabulation of printing position, function for, 3.35 
- using specified format, 3.25 
- zone spacing, 3.24; command to set, 9.19 
PRINT USING, 3.25 
Priorities of operators during program execution. See Operators 
PROC, 3.26 
Procedures, 3.5, 3.10, 3.26 
- calling, 3.10 
- defining, 3.26 
PROC-ENDPROC, 3.26 
Program execution, 3.3, 9.15 
- interruption of, 1.3, 3.3, 3.6, 3.20, 3.21 
- resumption of, 1.3, 9.6 
- termination of, 3.8, 3.33 
Programming examples, advanced, G 
Programming on mark-sense cards, B.1 \f

Programs, RC BASIC, 1.2 
Protection key, 7.1, 7.2, 7.3 
PUNCH, 9.13 
 
Random access files, 8.1.6. See also Files 
- reading data in binary from record of, 8.14 
- reading matrix data in binary from record of, 8.9 
- writing data in binary to record of, 8.16 
- writing matrix data in binary to record of, 8.10 
RANDOMIZE, 3.27 
- different starting points in sequence of random numbers
  generated, 3.27 
Random number between 0 and 1, function to return, 4.9 
Range of numbers. See Numbers in RC BASIC 
READ, 3.28, 5.1.2, 5.1.5, C.2 
READ FILE, 8.14 
recl', 8.3 
recno', 8.9, 8.10, 8.14, 8.16 
RELEASE, 7.7 
REM, 3.29 
Removal of device containing logical discs from drive unit. 
  See Logical discs 
RENAME, 8.15 
RENUMBER, 9.14 
Renumbering, program statement lines, 9.14 
REPEAT, 3.30 
REPEAT-UNTIL, 3.30 
Reserved names, devices. See Devices 
Reserved words in RC BASIC, E 
RESTORE, 3.28, 3.31 
- resetting data element pointer, 3.31 
Resumption, program execution. See Program execution 
RETURN, 3.10, 3.12, 3.26 
RETURN key, 1.2, C.1 
RND(X), 3.27, 4.9 
RUBOUT key, 1.2 
RUN/RUNL, 1.2, 8.1.5, 9.15, C.3 
 
SAVE, 8.1.5, 9.16 
- conserving space on SAVE device, 9.16 
- SAVEing versus LISTing, 9.16 
SCRATCH, B.1, B.5 
Sequential access files, 8.1.7. See also Files 
- reading data in ASCII from, 8.6; in binary from, 8.14 
- reading matrix data in ASCII from, 8.7; in binary from, 8.9\f

- writing data in ASCII to, 8.12; using specified format, 8.13; 
  in binary to, 8.16 
- writing matrix data in ASCII to, 8.8; in binary to, 8.10 
SGN(X), 4.10 
Sign of X, algebraic, function to return, 4.10 
SIN(X), 4.11 
              Sine of X, where X is in radians, function to return, 4.11 
size', 8.3 
SIZE, 9.16, 9.18 
slit', 1.5 
Special action, if error occurs, 3.20 
- if ESCape key is pressed, 3.21 
Square root of X, function to return, 4.12 
SQR(X), 4.12 
statements', 1.5 
Statements, 1.2 
- file input/output, 8 
- matrix, 6 
- RC BASIC, 3 
- sequential execution of, 1.2 
- which cannot be used as commands, C.1 
STEP, 3.11, 9.3, 9.14 
STOP, 3.12, 3.33 
Strings, 5.1 
- comparison, 5.1.7 
- concatenation, 5.1.6 
- constants, 5.1.1 
- literals, 3.25, 5.1.1 
- variables, 5.1.2; dimensioning, 5.1.3 
- substrings, 5.1.4 
Subcatalog. See Catalog 
Subroutines, 3.5, 3.12 
- calling, 3.12 
- calling an assembly language subroutine from RC BASIC, H 
- entry into, inadvertent, avoidance of, 3.12 
Subscripts. See Arrays 
Summary of statements, commands, and functions, F 
svar', 1.5 
System information, functions to return, 4.13 
SYS(X), 4.13 

TAB, 9.19 
TAB(X), 3.35 
Tangent of X, where X is in radians, function to return, 4.14 
TAN(X), 4.14\f

Terminal, connection to logical disc, 7.2 
- log-off from system, 9.5 
- master, 7.4, 7.5 
- release from logical disc, 7.7 
Termination, program execution. See Program execution 
THEN, 3.3, 3.14, 3.15, 3.16, 3.20, 3.21, 3.22, 3.36 
TO, 3.11, 9.9, 9.13 
TIME, B.5 
 
UNTIL, 3.30 
User functions, defining, 3.5 
USERS, 7.8, 8.1.2 
USING, 3.25, 8.13 
 
val', 1.5 
Value of e to the power of X, function to return, 4.5 
Value of X, absolute, function to return, 4.2 
Value of X, integer, function to return, 4.7 
var', 1.5 
Variables, assignment of values to, 3.17, 3.18, 3.28, 5.1.2,
  5.1.5,6.9, 6.12, 8.6, 8.7, 8.9, 8.14; provision of values 
  for, 3.4 
- numeric, 2.3 
- string, 2.3 
 
WHEN, 3.2 
WHILE, 3.36 
WHILE-ENDWHILE, 3.36 
WRITE FILE, 8.16 \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.  INSTALLATION ...........................................   2 
           
           
          A_P_P_E_N_D_I_C_E_S_: 
           
          A.  REFERENCES .............................................   3 
           
          B.  FUNCTION KEYS ..........................................   4 
           
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_    1.
           
          CalcStar runs under the control of CP/M, which is assumed to be
          installed on your ITT 3290 Intelligent Terminal Work Station. 
           
          The CalcStar package you have received contains the following: 
           
          - this manual "CalcStar for the ITT 3290 Intelligent Terminal
          Work Station, Installation Guide". 
           
          - MicroPro documentation of CalcStar: 
            "CalcStar User's Guide" 
           
          - One 8" diskette containing the CalcStar system. 
           
          Do not write on your distribution diskette as it is your master
          copy, and serves as a last resort backup in case of grave errors.
           
           \f

         2_._ _ _ _ _ _ _ _ _I_N_S_T_A_L_L_A_T_I_O_N_ 2.
           
          Start by making a copy of the original CalcStar distribution
          diskette, see ref. 1, backup, and continue in the following
          way: 
           
          1) Transfer all CalcStar files to your CP/M diskette by means of
             either PIP or TRANSFER 
              
             NOTE: The help menu 'cursor movements' is misleading, because
                   the the control commands are replaced by corresponding
                   function keys. 
           
             Function keys are implemented as shown in appendix B. 
               
            \f

         A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          1  RCSL No 42-i2134: 
               ITT 3290 Intelligent Terminal Work Station 
               CP/M Operating System, User's Guide 
                \f

         B_._ _ _ _ _ _ _ _ _F_U_N_C_T_I_O_N_ _K_E_Y_S_ B.
           
          K_E_Y_:              F_U_N_C_T_I_O_N_:                  C_O_M_M_A_N_D_: 
           
          ->               GOTO                       @G 
           
          <-               NEXT ROW, FIRST COL        @Z 
           
          DEL CHAR          DELETE CHAR LEFT           DEL 
           
          @                 CURSOR UP                  @E 
           
                            CURSOR DOWN                @X 
           
          <-                CURSOR LEFT                @S 
           
          ->                CURSOR RIGHT               @D 
           
               Note: The control commands are substituted by the function keys. 
           
           \f

F_                                               i 
           
          F_O_R_E_W_O_R_D_ 
           
          This manual describes how to use release 1.2 of the program
          NCPSIZE. 
           
          Release 1.2 differs from release 1.1 as follows: 
          Constants related to NCP have been changed to fit with NCP
          release 5.0. 
           
          The possibility to get an estimate of coredemands in systems
          supporting IBM3270 compatible terminals has been added. 
           
          Karsten Dindorp 
          A/S Regnecentralen af 1979, November 1980 
           
           \f

                                                 ii 
           \f

                                                 iii 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  INTRODUCTION ..........................................   1 
           
          2.  INPUT .................................................   2 
              2.1  Interface Specifications .........................   2 
              2.2  Aministrative Commands ...........................  10 
           
          3.  ERROR MESSAGES ........................................  12 
           
           
           
          A_P_P_E_N_D_I_C_E_S_: 
           
          A.  REFERENCES ............................................  15 
           
          B.  EXAMPLES ..............................................  16 
           
          C.  SURVEY OF PARAMETER GROUPS ............................  25 
           \f

                                                 iv 
           \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
           
              NCPSIZE is an ALGOL program (in RC8000), which can give an ap-
          proximate estimate of the storage demand in a device controller
          for the basic system, the NCP and the drivers for a number of job
          host interfaces, devices, RCLC lines, and ROUTER connections in a
          frontend or a concentrator. 
           
          The storage demand for the NCP is computed according to the rules
          described in >NCP revision 4 lagerstørrelser> (ref. 1, Danish
          edition). 
           
          The storage demand for drivers is computed by a simplified algo-
          rithm: For each type of device the driver size is computed as  
               
              prim _driver (devtype) + (n-1) * sec _driver (devtype) 
          where 
              n = number of devices of this type 
              prim _driver (devtype) = size of the first driver for a device
                   of this type 
              sec _driver (devtype) = size of the greatest driver needed for
                   the following devices of the same type. 
           
          All storage demands are printed as a number of decimal bytes. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _I_N_P_U_T_ 2.
           
              All input for the NCPSIZE program is specified as fp-parameters
          organized in groups. The different parameter groups must be sepa-
          rated by one or more space-characters, while the parameters in-
          side a group must be separated by a point. If the parameter spe-
          cification uses more than one line, all lines except the last one
          must end with a comma. 
           
          Each parameter group is either a specification of a device, or an
          administrative command. The parameter groups can be specified in
          any sequence, but no group may appear more than once in the para-
          meter list. 
           
          A parametergroup contains a keyword, possibly followed by some
          more parameters. The program will only check the six first cha-
          racters of a keyword, but up to 11 characters may be used. Only
          small letters and digits may appear in the parameters. 
           
          During the interpretation of the fp-parameters the program writes
          these on current output together with possible error messages. If
          any errors are found in the parameter list, the program is termi-
          nated before the computation. 
           
          Section 2.1 describes in details the parameters for specifying
          interfaces, whereas section 2.2 defines the administrative com-
          mands. Appendix C contains an alphabetical ordered survey of all
          parameter groups. 
           
           
2_._1_ _ _ _ _ _ _ _I_n_t_e_r_f_a_c_e_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_2.1
           
          This section describes the parameter groups to be used for speci-
          fying the devices and other interfaces connected to the device
          controller. 
           \f

                   The parameter keywords are, as far as possible, the same as the
          macro calls used in the NCP option text (ref. 2), and the des-
          cription of the parameter groups is organized in the same se-
          quence as these macro calls (though they may be specified in any
          order). 
           
          All parameter groups containing a parameter denoted <no _of _dev'
          can be left out, meaning <no _of _dev' = 0. When the keyword of the
          parameter group is specified <no _of _dev' can be suppressed, mean-
          ning <no _of _dev' = 1.  So these two default values are not men-
          tioned explicitly in the following description of the parameter
          groups. 
           
          The description of some of the parameter groups mentiones a name
          for <no _of _dev', e.g. M8 for number of printers. These names re-
          fer to the computation formulas in ref. 1. 
           
          The following parameter groups can be used: 
           
          frontend 
              This parameter is used when the device controller is a front-
              end. It must not appear together with the parameter >concen-
              trat>. If neither >frontend> nor >concentrat> are used, the
              default value is frontend. 
               
          concentrat 
              This parameter is used when the device is a concentrator.
              (The name >concentrator> would be too long for a parameter
              keyword). See also the description of the parameter >front-
              end>. 
               
          tapeload 
              This parameter is used when autoload of the system shall be
              performed from magnetic tape instead of from disc. 
               
M_M_                                                      1    1 
          rc4000   .<no _of _dev'  . <testbuffer'
P_P_                                                  0    0 
              This parameter group is used when the device controller is
              connected to one or more RC4000 job hosts. \f

                       <no _of _dev' indicates the number of SCC connections (MSC1)
              from the device controller to the RC4000 job host(s). Max 2. 
           
              <testbuffer' indicates the length in words of a testoutput
                  buffer for each SCC connection. Default value is 1000. 
           
M_M_          1    1 
          rc8000  .<no _of _dev'  .<testbuffer' 
P_P_          0    0 
               
              This parameter group is used when the device controller is
              connected to one or more RC8000 job hosts. 
           
              <no _of _dev' indicates the number of fpa connections (MFPA)
              from the device controller to the RC8000 job host(s). Max 4. 
               
              <testbuffer' indicates the length in words of a testoutput
              buffer for each fpa connection. Default value is 1000. 
               
          tester 
              This parameter is used if the device controller shall contain
              the NCPTESTER. 
               
M_M_          1 
          host   .<no _of _dev' 
P_P_              0 
               
              This parameter group indicates the number of entries (N) in
              the job host name table. 
               
M_M_          1 
          console  .<no _of _dev' 
P_P_              0 
               
              This parameter group indicates the number of terminals con-
              nected via TTY interface (M0). Max 2. 
               \f

                   term .<no _term' 
              This parameter group indicates the number of terminals con-
              nected via an AMX or a TMX controller (M1). One AMX control-
              ler can contain 8 terminals and/or printers. 
               
M_M_          1 
          telex  .<no _of _dev' 
P_P_              0 
               
              This parameter group indicates the number of telex lines con-
              nected via a TMX controller (M3). 
               
M_M_ 1    1 
          cardreader  .no _of _dev'  .ms. <no _of _ms' 
P_P_              0    0 
               
              This parameter group is specified when the device controller
              contains one or more cardreaders. 
                        
              <no _of _dev' indicates the total number of cardreaders (M7).
              Max. 2. If some of these read marke-sence cards, this must be
              specified by ms.<no _of _ms'. Default value is 0. 
               
               
                                                    DDD4UUU 
                             .amx.<no _lpamx' 
M_m_m_                             .lpt.<no _lpt' 
          printer .<no _pr'    
P_p_p_                             .cpt.<no _cpt' 
                             .sp.<no _sp' 
                                                   UUU1DDD 

               
              This parameter group is specified, if the system contains one
              or more printers. 
               
              <no _pr' is the total number of printers in the system (M8). 
               
              amx.<no _lpamx' indicates the number of printers connected via
              an AMX controller. \f

                       lpt.<no _lpt' indicates the number of directly connected line
              printers. 
           
              cpt.<no _cpt' indicates the number of directly connected cha-
              raband printers. 
           
              sp.<no _sp' indicates the number of directly connected serial
              printers. 
              The program checks that 
              <no _amx' + <no _lpt' + <no _cpt' + <no _sp' = <no _pr'. 
           
              All number of printers have the default value 0. 
 
M_M_          1 
          reader  .<no _of _dev' 
P_P_          0 

              This parameter group indicates the number of paper tape
              readers (M9). Max 1. 
           
M_M_          1 
          punch  .<no _of _dev' 
P_P_          0 
           
              This parameter group indicates the number of paper tape
              punches (M10). Max 2. 
           
M_M_          1    1 
          tapes  .<no _of _dev'. <segments'  .tr7. <no _of _7 _track' 
P_P_          0    0 
           
          This parameter group is specified if the system contains one
          or more magnetic tape stations. 
           
          <no _of _dev' is the total number of tape stations (M11). Max 8.
          <segments' indicates the maximum blocklength in segments of
              768 characters. Max 10, default value is 4. 
           \f

                   tr 7.<no _of _7 _track' indicates the number of 7-track stations.
              Default value is 0. 
               
M_M_               1 
          diablo  .<no _of _dev' 
P_P_          0 
           
          This parameter group indicates the number of Diablo disc
              drives (M12). Max 2. 
               
M_M_          1 
          cassette  .<no _of _dev' 
P_P_              0 
           
              This parameter group indicates the number of cassette tape
              stations (M15). Max 2. 
               
M_M_          1 
          plotter  .<no _of _dev' 
P_P_              0 
               
              This parameter group indicates the number of plotters (M16).
              Max 1. 
               
M_M_           1
          hdlc.<no _hdlc'.<no _chan'.<ntqb'.<stqb'.<nrqb'.<srqb' .<inhdlcmax'
P_P_              0
               
              This parameter group is used when the system contains one or
              more hdlc controllers. 
               
              <no _hdlc' indicates the number of HDLC controllers. Max 4. 
              <no _chan' indicates the total number of HDLC channels (M18).
              Max 4 * <no _hdlc'. 
              <ntqb' = number of transmission queue buffers. 
              <stqb' = size--            -     - 
              <nrqb' = number of receive queue buffers. 
              <srqb' = size-  -       -     - 
               \f

                       <inhdlcmax' indicates the number of buffers in the input buf-
              fer pool, which can be reserved by the HDLC driver at any
              time. Default value = 2. 
               
M_M_                  rc36501 
          floppy.          .no _of _dev' 
P_P_                  rc3751                0 

              This parameter group indicates the number of flexible disc
              drives (M19). The maximum value depends on the type of
              flexible disc: 
              for rc3650 max <no _of _dev' is 1, and 
              for rc3751 max <no _of _dev' is 4. 
               
M_M_          .bsc. <no_bsc'   2 
          rclc. <no _rclc' 
P_P_              .smx. <no _smx'   1 
               
              This parameter group is used if the device controller is a
              concentrator, or if it is a frontend connected to one or more
              concentrators. 
               
              <no _rclc' indicates the total number of RCLC connections
              (MRTCO) 
              <no _bsc' indicates the number of BSC devices, max 2 of 1
              line. 
               
              <no _smx' indicates the number of SMX devices, max 2 of 4
              lines. 
               
M_M_          1 
          rcrouter.<nrout'.<nrub1'  .<srub1' 
P_P_              0 
               
              This parameter group is used if NCP has an interface to
              ROUTER. 
               \f

                       <nrout' indicates the number of output coroutines. 
              <nrub1' indicates the number of input coroutines and buffers.
              <srub1' indicates the size of the input buffers. Default
              value is 258. 
           
M_M_                             1 
          amx  .no _of _dev' 
P_P_                             0 
           
              This parameter group indicates the number of AMX controllers,
              max 4. 
           
M_M_                            1 
          cx .<no _of _dev' 
P_P_                            0 
           
              This parameter group indicates the number of AMX controllers
              with RC800/20 concentrators, max 4. 
           
          tmx.<no _of _lines' 
              This parameter group is used if the system contains a TMX
              controller to indicate the number of lines in the TMX. 
              <no _of _lines' must be one of the values 8, 12, 16, 20, or 32.
           
M_M_                                                      1   1   1 
                    .smx.<dev'  .<dev'  .<dev'  .<dev' 
P_P_M_                                                      0   0   0 
          format 
M_M_P_                                       1 
                           .bsc.<dev'  .<dev' 
P_P_                                       0 
                    
M_M_                          8 
                   <dev'::= 
P_P_                    16 
                
              This parameter group is used if the system contains IBM3270
                       compatible terminals. <dev' indicates the number of terminals
                       on controlunit 1, 2, 3, and 4. 
                       <dev' must be specified in descending orders. 
                        
                       Ex.: format.smx.16.8.8 
                        
                        \f

         2_._2_ _ _ _ _ _ _ _A_d_m_i_n_i_s_t_r_a_t_i_v_e_ _C_o_m_m_a_n_d_s_2.2
           
          This section describes the parameter groups to be used for speci-
          fying output. 
           
M_M_          yes 
               list. 
P_P_               no 
               
              This parameter group defines how much output should be prin-
              ted. 
               
              list.no means that only the total number of bytes used in the
              device controller is printed, as shown in example 1 in ap-
              pendix B. 
               
              list.yes means that a survey of contributions from all inter-
              faces, devices, and drivers is printed. See example 2 in ap-
              pendix B. 
               
              Default value of this parameter group is list.yes 
               
          listout .<area _name' 
               
              This parameter group can be used to specify a disc area on
              which the output is to be written. If the area does not exist
              already, it will be created as a temporary file, which is
              automatically converted on the local printer. If the area
              exist already, the user himself must provide for the conver-
              ting. 
               
              If this parameter group is not specified, the output will be
              written on current output. 
               \f

M_m_m_                 <boss _paper _format' 
              paper. 
P_p_p_              <lines _pr _page'.<dummy _no' 
               
              This parameter group can be used for specifying the output
              format. 
               
              If one number is specified in the paper parameter group, it
              denotes a Boss paper type: 
                  0 = monitor paper (62 lines pr. page) 
                  1 = A4 upright    (62 -     -   -   ) 
                  2 = A4 across     (40 -     -   -   ) 
               
              If two numbers are specified, the first one indicates the
              wanted number of lines pr. page, while the other one is
              dummy.  
              Default value of this parameter group is paper.2 \f

F_       3_._ _ _ _ _ _ _ _ _E_R_R_O_R_ _M_E_S_S_A_G_E_S_ 3.
           
          Syntactical errors in the input parameters are printed on current
          output in the form of: 
           
              <*<   if a new parameter group appears as an illegal termina-
                    tion of the previous parametergroup, or 
                     
              <*'   if an error is found in a keyword or in a parameter
                    inside a parameter group. 
                     
          When a semantical error in a parameter group is detected, a
          further explanation of the error is given: 
           
          * double specified interface 
              the parameter group appears more than once in the parameter
              list. 
               
          * frontend and concentrator specified together 
              only one of the parameters >frontend> and >concentrat> must
              appear in the parameter list. 
               
          * illegal no. of devices on cu 
              no. of devices on a cu must be 8 or 16. 
           
          * illegal no. of lines in tmx 
              the parameter group is specified with a number of lines <' 8,
              12, 16, 20, or 32. 
               
          * illegal no. of printers 
              in the parameter group printer. ... the sum of printers of
              each type is not equal to the total number of printers. 
               
          * illegal no. of rclc 
              either no bsc and/or smx devices are specified, or too many
              devices compared to the total number of RCLC connections. 
               \f

          * too many of this device 
              a <no _of _dev' parameter has been stated with a too large
              value. See section 2.1 for definition of maximum values. 
               
                  * too many segments in mt-buffer 
              max 8 segments allowed. 
               
          * unknown floppy type 
              floppy type must be >rc3650> or >rc3751>. 
               
          * unknown printer type 
              printer type must be >amx>, >lpt>, >cpt>, or >sp>. 
               
          * unknown rclc type 
              rclc type must be >bsc> or >smx>. 
               
          When an error is found in a parametergroup, the following parame-
          ters in the group are not checked, and after reading of all para-
          meter groups the run is terminated by the following message: 
           
              ***fp-parameter error: xx errors detected 
          ***alarm 
           
          and the ok-bit is set to false. 
                    
           \f

F_                 
           \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          Ref. 1:   NCP revision 4 Lagerstørrelser 
                    RCSL No 43-GL 8954 
           
          Ref. 2:   NCP revision 4, Generering af NCP og selektering af
                    binære NCP moduler 
                    RCSL No 43-GL 8952 
           
           \f

F_       B_._ _ _ _ _ _ _ _ _E_X_A_M_P_L_E_S_ B.
           
          The following five examples show the call of the NCPSIZE program
          and the output generated from each call. 
           
          E_x_a_m_p_l_e_ _1_ 
           
          The call: 
           
            ncpsize, 
              list.yes  paper.1, 
              frontend rc8000.1  console.1 term.7, 
              amx.1 reader.1  punch.1  printer.3.lpt.1.sp.1.amx.1, 
              tapes.1.4  floppy.rc3751 
               
          gives the following output: 
           
          START NCP-SIZE, REL.1.2, 01.10.80  01.10.1980 - 16.55 
          NCPSIZE LIST.YES PAPER.1 FRONTEND RC8000.1 CONSOLE.1 TERM.7  , 
              AMX.1 READER.1 PUNCH.1 PRINTER.3.LPT.1.SP.1.AMX.1 TAPES.1. , 
                4 FLOPPY.RC3751 
           \f

      F_           NCP-SIZE            01.10.1980 - 16.55            PAGE 1 
           
          FIXED CONTRIBUTIONS: 
           
             BASISSYSTEM                                       9996 
             FRONTEND                                          8249 
           
          INTERFACES:    NUMBER     OTHER PARAMETERS 
           
             RC8000           1     1000                       3888 
                DRIVER                                          972 
             CONSOLE          1                                4013 
             TERM             7                                1743 
             PRINTER          3     AMX.1.LPT.1.SP.1            956 
                DRIVER                                         1868 
             READER                                            1928 
                DRIVER                                          460 
             PUNCH            1                                 158 
                DRIVER                                          198 
             TAPES            1     4                          1462 
                DRIVER                                         1174 
             FLOPPY           1     RC3751                      738 
                DRIVER                                         6432 
             AMX DRIVER       1                                2258 
           
          BUFFER POOLS 
           
          MESS.POOL 0                                           120 
          ANSW.POOL 0                                            72 
          MESS.POOL 1                                           684 
          ANSW.POOL 1                                           220 
          MESS.POOL 2                                          1430 
          ANSW.POOL 2                                           282 
          MESS.POOL 3                                          1208 
          ANSW.POOL 3                                          1200 
          MESS.POOL 4                                           798 
          MESS.POOL 5                                          3120 
          NET POOL                                                0 
          RTCI POOL                                               0 
           
          T_O_T_A_L_ _N_O_._ _O_F_ _B_Y_T_E_S_5_5_6_2_7_ 
           
          MAX STORAGE IN ONE DEVICE CONTROLLER                65000 
           
          END NCP-SIZE, REL.1.2, 01.10.80 01.10.1980 - 16.55 CPU: 1 
          END       64 
                    
               \f

F_                 E_x_a_m_p_l_e_ _2_ 
           
          The call: 
           
             ncpsize, 
               list.no, 
               frontend rc8000.1  tapeload, 
               console reader cardreader, 
               term.26  cx.2 printer.6.lpt.1.amx.5, 
               tapes.2.4 
                
          gives the following output: 
           
          START NCP-SIZE, REL.1.2, 01.10.80  01.10.1980 - 16.59 
          NCPSIZE LIST.NO FRONTEND RC8000.1 TAPELOAD CONSOLE READER CARDREADER  , 
              TERM.26 CX.2 PRINTER.6.LPT.1.AMX.5 TAPES.2.4 
           
           
          T_O_T_A_L_ _N_O_._ _O_F_ _B_Y_T_E_S_                                   6_8_0_2_0_ 
           
          MAX STORAGE IN ONE DEVICE CONTROLLER                 65000 
           
          END  NCP-SIZE, REL.1.2, 01.10.80  01.10.80 - 16.59 CPU: 0 
          END        51 
           
          Note that the device controller is too small for this configura-
          tion. 
           \f

F_                 E_x_a_m_p_l_e_ _3_: 
           
          This example shows the configuration of a concentrator: 
           
             ncpsize, 
               list.yes, 
               concentrat host.2, 
               console reader cardreader, 
               term.8 amx.1 printer.1.lpt.1, 
               rclc.1.bsc.1 
                
          Output: 
           
          START NCP-SIZE, REL.1.2, 01.10.80  01.10.1980 - 17.02 
          NCPSIZE LIST.YES CONCENTRAT HOST.2 CONSOLE READER CARDREADER  , 
              TERM.8 AMX.1 PRINTER.1.LPT.1 RCLC.1.BSC.1 
           \f

F_                                                                   PAGE 1 
           
          FIXED CONTRIBUTIONS: 
           
             BASISSYSTEM                                       9996 
             CONCENTRATOR                                      8415 
           
          INTERFACES:    NUMBER     OTHER PARAMETERS 
           
             HOST             2                                  32 
             CONSOLE          1                                4013 
             TERM             8                                1992 
             CARDREADER       1                                 956 
                DRIVER                                         1346 
             PRINTER          1     LPT.1                       732 
                DRIVER                                          880 
             READER                                            1928 
                DRIVER                                          460 
             RCLC             1     BSC.1                      1422 
                DRIVER                                        11130 
             AMX DRIVER       1                                2258 
           
          BUFFER POOLS 
           
             RCTI POOL                                         1932 
             ANSW.POOL 0                                         80 
             ANSW.POOL 1                                        252 
             ANSW.POOL 2                                        596 
             ANSW.POOL 3                                          0 
             MESS.POOL 4                                          0 
             MESS.POOL 5                                          0 
           
          T_O_T_A_L_ _N_O_._ _O_F_ _B_Y_T_E_S_                                  4_8_4_2_0_ 
           
          MAX STORAGE IN ONE DEVICE CONTROLLER                65000 
           
          END  NCP-SIZE, REL.1.2, 01.10.80 01.10.1980 - 17.02 CPU: 0 
          END        62 
           \f

F_                 E_x_a_m_p_l_e_ _4_ 
           
          The call: 
           
             ncpsize, 
               list.yes, 
               frontend rc8000.1  host.1, 
               console reader, 
               format.bsc.8.8 
                
          gives the following output: 
           
          START NCP-SIZE, REL.1.2, 01.10.80  01.10.1980 - 10.52 
          NCPSIZE LIST.YES FRONTEND RC8000.1 HOST.1 CONSOLE READER FORMAT. , 
              BSC.8.8 
           
           \f

      F_           NCP-SIZE            01.10.1980 - 10.51            PAGE 1 
           
          FIXED CONTRIBUTIONS: 
           
             BASISSYSTEM                                       9996 
             FRONTEND                                          8249 
           
          INTERFACES:    NUMBER     OTHER PARAMETERS 
           
             RC8000           1     1000                       3888 
                DRIVER                                          972 
             HOST             1                                  16 
             CONSOLE          1                                4013 
             READER                                            1928 
                DRIVER                                          460 
             FORMAT TERM     16     CU: 2, CONTROLLER: BSC    26046 
                DRIVER                                         2904 
              
          BUFFER POOLS 
           
          MESS.POOL 0                                            48 
          ANSW.POOL 0                                            48 
          MESS.POOL 1                                           228 
          ANSW.POOL 1                                           220 
          MESS.POOL 2                                          1144 
          ANSW.POOL 2                                           282 
          MESS.POOL 3                                             0 
          ANSW.POOL 3                                             0 
          MESS.POOL 4                                             0 
          MESS.POOL 5                                             0 
          NET POOL                                                0 
          RTCI POOL                                               0 
           
          T_O_T_A_L_ _N_O_._ _O_F_ _B_Y_T_E_S_6_0_4_4_2_ 
           
          MAX STORAGE IN ONE DEVICE CONTROLLER                65000 
           
          END NCP-SIZE, REL.1.2, 01.10.80 01.10.1980 - 10.52 CPU: 0 
          END       57 
                    
               \f

F_                 E_x_a_m_p_l_e_ _5_ 
           
          The call: 
           
             ncpsize, 
               list.yes, 
               frontend rc8000.1  host.1, 
               console  
               format.smx.8.8.8.8 
                
          gives the following output: 
           
          START NCP-SIZE, REL.1.2, 01.10.80  01.10.1980 - 10.47 
          NCPSIZE LIST.YES FRONTEND RC8000.1 HOST.1 CONSOLE FORMAT.SMX.8, 
              8.8.8 
           
           \f

      F_           NCP-SIZE            01.10.1980 - 10.47            PAGE 1 
           
          FIXED CONTRIBUTIONS: 
           
             BASISSYSTEM                                       9996 
             FRONTEND                                          8249 
           
          INTERFACES:    NUMBER     OTHER PARAMETERS 
           
             RC8000           1      0                         3888 
                DRIVER                                          972 
             HOST             1                                  16 
             CONSOLE          1                                4013 
                      FORMAT TERM     32     CU: 4, CONTROLLER: SMX    32160 
                DRIVER                                         3144 
              
          BUFFER POOLS 
           
          MESS.POOL 0                                            24 
          ANSW.POOL 0                                            48 
          MESS.POOL 1                                           228 
          ANSW.POOL 1                                           220 
          MESS.POOL 2                                          1144 
          ANSW.POOL 2                                             0 
          MESS.POOL 3                                             0 
          ANSW.POOL 3                                             0 
          MESS.POOL 4                                             0 
          MESS.POOL 5                                             0 
          NET POOL                                                0 
          RTCI POOL                                               0 
           
          T_O_T_A_L_ _N_O_._ _O_F_ _B_Y_T_E_S_6_4_1_0_2_ 
           
          MAX STORAGE IN ONE DEVICE CONTROLLER                65000 
           
          END NCP-SIZE, REL.1.2, 01.10.80 01.10.1980 - 10.47 CPU: 0 
          END       57 
                    
               \f

F_       C_._ _ _ _ _ _ _ _ _S_U_R_V_E_Y_ _O_F_ _P_A_R_A_M_E_T_E_R_ _G_R_O_U_P_S_       C.
           
M_M_          1 
          amx   .<no _of _dev' 
P_P_          0 
           
M_M_          1     1 
          cardreader   .<no _of _dev'   .ms.<no _of _ms' 
P_P_          00 
           
M_M_           1 
          cassette  .<no _of _dev' 
P_P_          0 
           
          concentrat 
               
M_M_          1 
          console   .<no _of _dev' 
P_P_          0 
           
M_M_          1 
          cx   .<no _of _dev' 
P_P_          0 
           
M_M_          1 
          diablo   .<no _of _dev' 
P_P_          0 
           
M_M_          rc36501 
          floppy. .<no _of _dev' 
P_P_          rc3751                   0 
           
          fronted 
           
M_M_                                                                             1 
          hdlc. <no _hdlc'.<no _chan'.<ntqb'.<stqb'.<nrqb'.<srqb' .<inhdlcmax' 
P_P_                                                                              0 
           
M_M_              1 
          host   .<no _of _dev' 
P_P_          0 
           
M_M_           yes 
          list. 
P_P_          no 
           
          listout. <area _name' 
           
M_m_m_          <boss _paper _format' 
          paper. 
P_p_p_          <lines _pr _page'.<dummy _no' 
           
M_M_          1 
          plotter   .<no _of _dev' 
P_P_          0 
           \f

              DDD4UUU 
          .amx. <no _lpamx 
M_m_m_                           .lpt. <no _lpt' 
                 printer.<no _pr' 
P_p_p_                           .cpt. <no _cpt' 
          .sp.  <no _sp' 
              UUU1DDD 
           
M_M_            1 
          punch   .<no _of _dev' 
P_P_          0 
           
M_M_          1     1 
          rc4000   .<no _of _dev'   .<testbuffer' 
P_P_          0     0 
           
M_M_           11 
          rc8000   .<no _of _dev'   .<testbuffer' 
P_P_          0     0 
           
           
M_M_              .bsc.<no _bsc'2 
          rclc.<no _rclc' 
P_P_          .smx.<no _smx'1 
           
M_M_          1 
          rcrouter.<nrout'.<nrub1'  .<srub1' 
P_P_          0 
           
M_M_          1 
          reader  .<no _of _dev' 
P_P_          0 
           
          tapeload 
           
M_M_          1     1 
          tapes   .<no _of _dev'.<segments'  .tr7.<no _of _7 _track' 
P_P_          00 
           
M_M_           1 
          telex   .<no _of _dev' 
P_P_          0 
           
M_M_           1 
          term   .<no _of _dev' 
P_P_          0 
           
           
          tester 
           
          tmx. <no _of _lines' 
           
           \f

M_M_                                                      1   1   1 
                    .smx.<dev'  .<dev'  .<dev'  .<dev' 
P_P_M_                                                      0   0   0 
          format 
M_M_P_                                       1 
                           .bsc.<dev'  .<dev' 
P_P_                                       0 
                    
M_M_                          8 
                   <dev'::= 
P_P_                    16 
                \f




                  IBM          3M          MEMOREX      VERBATIM    (Nashua)       RC     RC    RC701   RC702 
Preformatted                                                          ODP          3650   3751  (uPD    (uPD 
M_A_X_I_-_d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _7_6_5_)_ _ _ _ _7_6_5_)_ 
 
Single density     Diskette I               Markette 1S 
Single sided       IBM3740 
(fm)               data entry 
 
      26, 128     @2_3_0_5_8_3_0_     @740-0       32013060    @FD-34-9000  FD-1(2200)    @      @     @       @ 
 
(Flippy 26, 128)               @740/2-0     3201/729     FF-34-2000  FD-2(2200-22) @      @     @       @ 
 
      15, 256                                                                             X             @ 
 
 _ _ _ _ _ _ _8_,_ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ _ _ _ _ _ _ _ _ _@_ _ _ _ _ 
 
Single density     Diskette 2               Markette 2S 
Dual sided         IBM serie 1 
(fm) 
      26, 128                   None        None         FD10-4026   None                 @             @ 
 
      15, 256     @2_7_3_6_7_0_0_     @742-0      @32013106    @FD10-4015   None                 @             @ 
 
 _ _ _ _ _ _ _8_,_ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _ _F_D_1_0_-_4_0_0_8_ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ _ _ _ _ _ _ _ _ _@_@_ _ _ _ 
 
Dual density       Diskette 2D              Markette 2D 
Dual sided 
(mfm) 
      26, 256     @1766872     @743-0-256  @32013103    @DD34-4026                                      @ 
       
      15, 512     @1669044     @743-0-512   None        @DD34-4015   FD-2D                              @@
 
 _ _ _ _ _ _ _8_,_ _1_0_2_4_ _ _ _ _ _1_6_6_9_0_4_5_ _ _ _ _ _ _7_4_3_-_0_-_1_0_2_4_ _ _3_2_0_1_3_1_0_4_ _ _ _ _ _D_D_3_4_-_4_0_0_8_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ 
 
 
X: Driver and controller capability.   @: System support available, refer to table C.2.   @@: Recommended format  
 
 
(Flippy 26, 128): This diskette is a reversible, single sided diskette, refer to appendix E. 
 
 
Table C.1: MAXI-diskette guide. 
 \f

                   
               
               
                  IBM          3M          MEMOREX      VERBATIM    (Nashua)       RC     RC    RC701   RC702 
MAXI-diskettes                                                                      ODP          3650   3751  (uPD    (uPD 
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _7_6_5_)_ _ _ _ _7_6_5_)_ 
                                                         Markette 1D 
Non-pre-      Dual density 
formatted     Single sided      None         741-0       32013090     FD34-8000   FD-1D 
    (mfm) 
      26, 256     None         None        None         None        None                                @ 
Prefor-              
matted              15, 512     None         None        None         None        None                                @ 
 
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _8_,_ _1_0_2_4_ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _N_o_n_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ 
 
 
              Note: In the original scheme of table C.1 no attention is paid to non-preformatted diskettes. Never the less
                    such diskette-types do exist for dual density, single sided applications as indicated here. 
               
                   
               
              Table C.1: MAXI-diskette guide cont. 
               \f

     
 
 
Preformatted      IBM          RC3600      RC8000       RC3600      BASIC/         ID           COMAL 
                  3740         MUS         APP          DOMUS       COMAL          COMAL        80 
M_A_X_I_-_d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _G_E_N_+_A_P_P_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(_R_C_3_6_0_0_/_7_0_0_0_)_ _ _R_C_7_0_1_/_7_0_2_ _ _ _ _(_R_C_7_0_2_)_ 
 
Single density 
Single sided 
      26, 128     RC3650/3751  RC3650/3751 RC3650/3751              RC3650/3751    uPD765       uPD765 
      15, 256                                                                                   uPD765 
       8, 512                                                                                   uPD765  
IBM, 3M, MEMOREX, 
V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
(Flippy 26, 128) 
3M                RC3650/3751  RC3650/3751 RC3650/3751              RC3650/3751    uPD765       uPD765 
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
Single density 
Dual sided 
      26, 128                                                       RC3751 1)                   uPD765 
      15, 256                                           RC3751                                  uPD765 
       8, 512                                                                                   uPD765  
IBM, 3M, MEMOREX, 
V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
Dual density 
Dual sided 
      26, 128                                                                                   uPD765 
      15, 512                                                                                   uPD765 
       8, 1024 
IBM, 3M, MEMOREX, 
V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
Notes are given on the following page. 
 
 
Table C.2: System application scheme. 
 \f

     
    
    
                       IBM    RC3600            RC8000    RC3600    BASIC/ 
                       3740      MUS            Appl.     DOMUS     COMAL 
 
                              GEN, S, MUSIL/                                              Title        Process- 
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _E_D_I_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _            block           name   
 
FD205, FD304, -         X                          X                  X 
FL003, FL003 + FL100                                                                      *FD200          FD0 
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _            *FD300          FD1 
 
  MT-emulator:                                                                               FD205          FD0 
*FD200, FD300  (RC3650)         X   X    X          XFD304FD1 
*FD205+KIT(RC3650)              X   X    X                                                   
FD205+FM002(RC3650)            X   X                                                       FL003          FD0 
FL003+FM002(RC3751)            X   X               X                                       FL100          FD1 
FL003+FM101(RC3751) 
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _FM002          FD5 
FM101FD6 
FL003                                                       X                               
                                                                                          *KIT            KIT 

 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
  * Older versions, system support is no longer available. 
   
  FD200/FD300: MT-e.driver for RC3650-systems, device 0/1 
  FD205/FD304: General driver for RC3650-systems, device 0/1. Deleted sector support 
  FL003      : General driver for RC3751-systems, device 0, unit 0-3. Deleted sector support 
  FL100      : General driver for RC3751-systems, device 1, unit 0-3. Deleted sector support 
  FM002/KIT  : MT-e.predriver for RC3650 systems, device 0 
  FM002/FM101: MT-e.predriver for RC3751-systems, device 0, unit 0/1 
   
   
  Table D.2: Driver application scheme. 
 \f




                  IBM          3M          MEMOREX      VERBATIM    (Nashua)       RC     RC    RC701   RC702 
RC-formatted                                                          ODP          3650   3751  (uPD    (uPD 
 _M_I_N_I_-_d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _7_6_5_)_ _ _ _ _7_6_5_)_ 
 
Single density 
Single sided       None         744-0       32013401      MD 525-01
(fm) 
 
      26, 128                                                                                           X 
       9, 256                                                                                           X-_
 _ _ _ _ _ _ _5_,_ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ 
 
Single density     None         None       @32013421     @MD 550-01  @OPD-5-2D-S00 
Single sided 
(fm) 
      16, 128                                                                                           @ 
       9, 256                                                                                           @@ 
 _ _ _ _ _ _ _ _5_,_ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _@_ _ _ _ _ 
 
Dual density       None         None        32013421     @MD 550-01   OPD-5-2D-S00 
Single sided 
(mfm) 
      16, 256                                                                                           @ 
       9, 512                                                                                           @@ 
 _ _ _ _ _ _ _ _5_,_ _1_0_2_4_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _X_ _ _ _ _ 
 
 
X: Driver and controller capability.   @: System support available, refer to table C.2    @@: Recommended format. 
 
 
Table G.1: MINI-diskettes guide. 
            
   \f

     
 
IDCOMAL 
RC-formatted                                                                       COMAL        80 
M_I_N_I_-_d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _R_C_7_0_1_/_7_0_2_ _ _ _ _(_R_C_7_0_2_)_ 
 
Single density 
Single sided 
 
      16, 128 
       9, 256 
       5, 512 
3_M_,_ _M_E_M_O_R_E_X_,_ _V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
Single density 
Dual sided 
 
      16, 128                                                                      uPD765       uPD765 
       9, 256                                                                                   uPD765 
       5, 512                                                                                   uPD765  
M_E_M_O_R_E_X_,_ _V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
Dual density 
Dual sided 
 
      16, 256                                                                                   uPD765 
       9, 512                                                                                   uPD765 
       5, 1024 
M_E_M_O_R_E_X_,_ _V_E_R_B_A_T_I_M_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
 
Table G.2: System application scheme. 
            
   \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.  DISKETTES - FORMATS OF ................................   2 
              2.1  Formats Used in RC3650/3751-Systems ..............   3 
              2.2  Formats Used in RC701/702-Systems ................   4 
           
          3.  RC3650/3751-SYSTEMS ...................................   5 
              3.1  The MT-emulator Format ...........................   5 
                   3.1.1  MUS-System Application and Generation .....   8 
                   3.1.2  RC8000-System Application and Generation ..   9 
              3.2  The Catalog Diskette .............................  10 
                   3.2.1  DOMUS System Application ..................  10 
                   3.2.2  BASIC/COMAL-System Application and 
                              Generation ................................  10 
           
          4.  RC701/702-SYSTEMS .....................................  12 
           
          A_P_P_E_N_D_I_C_E_S_: 
           
          A.  REFERENCES ............................................  13 
           
          B.  PHYSICAL TRACKIMAGE (MAXI-DISKETTES) ..................  16 
           
          C.  MAXI-DISKETTE GUIDE ...................................  18 
           
          D.  RC3650/3751 SYSTEM DRIVERS ............................  23 
           
          E.  DISKETTE IDENTIFICATION ...............................  25 
              E.1  Diskette Types ...................................  25 
           
          F.  PHYSICAL TRACKIMAGE (MINI-DISKETTES) ..................  27 
           
          G.  MINI-DISKETTE GUIDE ...................................  31 
           
          H.  FM/MFM-DATA REPRESENTATION ............................  34 \f

                                                 ii 
           \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_         1.
           
          In the past a great number of diskette applications have been
          introduced in RC-systems (the RC3600- and the RC8000-system), and
          in the future the development of the RC700/RC850 - micro-compu-
          ters calls for new system-applications. 
           
          For this reason a short description is given of the various
          standards and diskettes available on the market compared to the
          demands made by RC-equipment and -systems. 
           
          This paper should inform the system programmers as well as the
          system consultants about the overall structure in this area.
          Besides this goal great efforts have been carried out to present
          the material in a schematical form to improve the readability for
          other groups. This is the reason why the different tables and
          figures are grouped in appendices. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _D_I_S_K_E_T_T_E_S_ _-_ _F_O_R_M_A_T_S_ _O_F_         2.
           
          The overall accepted standard for MAXI-diskettes (8"-diskettes)
          talking about physical dataformats is given according to ECMA-
          standards and known as the physical IBM-format, see ref. 1 and
          2. 
           
          This format involves the use of physical sector, head, and cylin-
          der identifiers and specifies gab-layout-areas before, after, and
          between the data- and address marks etc. as indicated in appendix
          B. The standard applies to softsectored MAXI-diskettes, and we
          will not deal with the hardsectored diskettes here (one physical
          hole per sector), as this field is not covered by the RC-equip-
          ment at all. 
            
          The international standards define three data formats for use
          with the single density application (FM encoding of data) as
          shown on table form in appendix B for both single and dual sided
          diskettes. Traditionally the 128 bytes per sector diskette is the
          most widely used and forms the base for the RC diskette-systems.
          A detailed description of the various systems together with a
          positive list for those diskettes available on the market is
          given in appendix C. 
           
          The dual density application - in the following known as the MFM
          encoding of data - is shown schematically too, but not commented
          upon, as the application is not supported by the RC3650/3751-
          controller system.  
           
          The MINI-diskette (5 1/4"-diskettes) used for RC702-systems are
          commented upon in appendix F. Details concerning the standard
          formatting of the MINI-diskette is not yet fully agreed upon
          because of which the diskettes on today>s market are non-prefor-
          matted ones. A preformatting program is included in RC702-system
          software, and the resulting physical layout of the diskette is
          chosen according to the drive-manufacturer>s specifications as
          schematically shown. 
           
           \f

         2_._1_ _ _ _ _ _ _ _F_o_r_m_a_t_s_ _U_s_e_d_ _i_n_ _R_C_3_6_5_0_/_3_7_5_1_-_S_y_s_t_e_m_s_    2.1
           
          The RC3650-system does not include formatting programs. 
           
          The RC3751-system offers to the user the possibility of applying
          any standard single density format onto a single or double sided
          MAXI-diskette. A number of formatting programs are available
          running different systems, but a common generalized all purpose
          program is given in ref. 8. 
           
          The formatting program is capable of introducing a screwed format
          too talking about the physical sectors. In this case the sector
          identifiers are not written in a sequential manner as was the
          case with the standard format. In a screwed format consecutive
          ID-fields are given non-consecutive sector-address, please refer
          to fig. B.1. This format is called >hard-screwed>. 
           
          In this way the system-applications running on the diskette may
          be speeded up being aware of the fact, that the gap-space between
          adjacent sectors is too small to allow for continously accessing
          sector after sector without loosing a whole revolution of the
          diskette in between. For multisector-transfers, the number of
          sectors asked for in one transport are supplied at max. data-
          transfer-rate on non-screwed diskettes. 
           
          It should be mentioned here that a third form of access strategy
          is used for the MT-emulator application, the >soft-screwed>-ap-
          plication, which has nothing at all to do with the physical lay-
          out of the diskette. In softscrewed applications the logical
          block number input to the diskette driver is screwed according to
          the description given in chapter 3 using random access strategy. 
           
          Please notice that a >hard-screwed>-strategy allows you to handle
          non-screwed diskettes too but at a lower data-transfer rate. This
          is not the case with >soft-screwed>-applications. 
           
           \f

         2_._2_ _ _ _ _ _ _ _F_o_r_m_a_t_s_ _U_s_e_d_ _i_n_ _R_C_7_0_1_/_7_0_2_-_S_y_s_t_e_m_s_    2.2
           
          The RC701-system does not include formatting programs. 
           
          In the RC702-systems a formatting program will be available to
          the user, as the MINI- diskettes are delivered non-preformatted.
          This program may be used for the MAXI-diskette too to select a
          suitable recordlength of 512 bytes. 
           
          At present it is not possible to give any reliable information
          about which kind of diskette to use for the MINI-drive apart from
          the fact that a dual sided, dual density diskette should be used.
           
          The formatting program is capable of introducing a screwed format
          too talking about the physical sectors. In this case the sector
          identifiers are not written in a sequential manner as was the
          case with the standard format. In a screwed format consecutive
          ID-fields are given non-consecutive sector-address, please refer
          to fig. B.1. This format is called >hard-screwed>. 
           
          In this way the system-applications running on the diskette may
          be speeded up being aware of the fact, that the gap-space between
          adjacent sectors is too small to allow for continously accessing
          sector after sector without loosing a whole revolution of the
          diskette in between. For multisector-transfers, the number of
          sectors asked for in one transport are supplied at max. data-
          transfer-rate on non-screwed diskettes. 
           
          At present no >soft-screwed>-application is planned. 
           
          Please notice that a >hard-screwed>-strategy allows you to handle
          non-screwed diskettes too but at a lower data-transfer rate. This
          is not the case with >soft-screwed>-applications. 
           
           \f

F_       3_._ _ _ _ _ _ _ _ _R_C_3_6_5_0_/_3_7_5_1_-_S_Y_S_T_E_M_S_    3.
           
          The RC3751 is a (new) flexible disc controller capable of dealing
          with any single density diskette available single or dual sided.
          The controller deals with the standard IBM-format, ref. 1 and 2
          for recognizing data or address marks and cylinder side or
          sector-identifiers and so on. The controller is capable of
          formatting a diskette according to this format description as
          shown in appendix B. 
           
          The user interface to RC3751 is described in the >Driver
          Reference Manual> for the FL-driver, ref. 4. The FL-driver
          communicates by means of a logical blocknumber (sectornumber) as
          was the case with the old RC3650 system driver FD. 
           
          The FD-driver is only capable of dealing with the single density,
          single sided 128 bytes/sector diskette, whereas the FL-driver
          automatically recognizes the actual diskette format in use. 
           
          Traditionally the diskette was looked upon as a new >magtape
          media> and because of that a so-called magtape-emulator-format
          was introduced for the RC3650 via the FD200-driver, see fig. 1.
          The MT-emulator format is at present defined using predriver-
          processes for FD/FL and in this combination constitutes the
          MUS-system diskette format. The FL-driver then serves as a
          general purpose diskette driver and constitutes the system driver
          for the RC3600 CAT file handler and the BASIC/COMAL-system,
          please refer to appendices C and D for further details. 
           
           
3_._1_ _ _ _ _ _ _ _T_h_e_ _M_T_-_e_m_u_l_a_t_o_r_ _F_o_r_m_a_t_ 3.1
           
          The emulator format is described and commented upon in fig. 1 and
          fig. 2 following. 
           
                    \f

                    
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 1a: An RC3751 MT-e. diskette. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 1b: An RC3650 MT-e. diskette. 
           
               \f

          File No 
           
           1           +26                26                26 
           2           -26               131               131 
           3           -26               154               154 
           4           -26               300               300 
           5           -26               304               304 
           6           -26              -304               360 
           7           -26              -304               372 
           8           -26              -304               400 
           9           -26              -304               602 
            
            
            
            
          61           -26              -304              1730 
          62           -26              -304              1820 
          63           -26              -304              1930 
                       -26              -304              2002 
           
                        a                b                 c 
           
               File index table. 
               a) Initialized file table (no files written). 
               b) Partly used disc. 
                  Files 1 to 4 are written. 
               c) Full disc. All files are written. 
                
          Figure 2: Format of indexblocks. 
           \f

          The file index table entries are logically increasing block-num-
          bers counting from zero with blocksize = physical sectorlength. 
           
          The emulator strategy involves a mapping of logical blocks into a
          screwed blocknumber transferred to the actual system-driver as
          follows: 
           
                   B_l_o_c_k_m_a_p_p_i_n_g_: 
          Blocknumber, input to the emulator process: BU. 
          Filenumber, input to the emulator process: FU. 
          Internal emulator blocknumber: BI:=Index(FU)+(BU-1) 
          Internal screwed blocknumber: B 
           
               B:=BI/cylsize * cylsize + sector; 
               sector:= (BI*n +1) modulus cylsize. 
               If sector evaluates to zero, then sector:= cylsize. 
                
          The parameter n takes on different values according to the actual
          diskette format used as specified below for both single and dual
          sided diskette: 
           
               128/26 : n=7 
               256/15 : n=4 
               512/8  : n=3        ; n = screwing factor 
           
          The internal screwed blocknumber B is used for communication with
          the systemdriver one block at a time with block length equal to
          physical sector length. The user blocksize (bytecount) may call
          for multiple sector transfer in which case the emulator processes
          one sector a time. 
           
           
         3_._1_._1_ _ _ _ _ _M_U_S_-_S_y_s_t_e_m_ _A_p_p_l_i_c_a_t_i_o_n_ _a_n_d_ _G_e_n_e_r_a_t_i_o_n_         3.1.1
           
          The MT-emulator format is used for system generation purposes
          using the flexible disc as installation media. 
           
          The MT-emulator format is used too for system applications using
          the MUS-operating system whereas the DOMUS Operation System uses
          the normal backing storage disc format, please refer to section
          3.2. 
           \f

                   The generation program is capable of handling all single density,
          single sided diskette types (128,256, 512 bytes/sector). 
          For system purposes (bootstrap load, system load) the available
          number of different diskette formats reduces to: 
           
               The single sided, single density, 
               128 bytes per sector diskette; 
           
          The emulator-catalog is automatically initialized before use and
          regardless of the more sophisticated RC3751 system possibilities,
          the RC3650/3751 system and application programs are restricted
          for use with this very diskette. 
           
          The diskette is automatically given a softscrewed format, in that
          the FM-preprocess is used for generation, see section 3.1. If
          hardscrewed diskettes are used (which is not recommended as the
          softscrewed format ensures maximum system throughout), cylinder
          no zero must be left untouched. This cylinder must be readable to
          older prom-autoload-programs. 
           
           
    3_._1_._2_ _ _ _ _ _R_C_8_0_0_0_-_S_y_s_t_e_m_ _A_p_p_l_i_c_a_t_i_o_n_ _a_n_d_ _G_e_n_e_r_a_t_i_o_n_    3.1.2
           
          FM:    The RC8000 installation procedure is based on a number of
                 installation-diskettes readable to the MT-emulator process
                 FM. The i_n_s_t_a_l_l_a_t_i_o_n_-_d_i_s_k_e_t_t_e_s_ are generated using the
                 RC3600 GEN-program. The available diskette formats are
                 restricted to those accessible for the MUS-system i.e. the
                 single sided, single density, 128 bytes per sector disket-
                 te. 
                  
          APFX:  The RC8000 utilities FDload, FDsave, FDinit, and FDsurvey
                 are based on the APFX-process capable of handling all dis-
                 kette formats for s_i_n_g_l_e_ _d_e_n_s_i_t_y_ _d_i_s_k_e_t_t_e_s_ including hard-
                 screwed diskettes. The FDinit procedure initializes the
                 diskettes according to the IBM-soft-format used for Cata-
                 log access. The APFX-process does not support softscrewed-
                 diskettes. 
                  \f

                 The APFX-process makes use of a local buffer to speed up
                 the non-hardscrewed-diskette access in minimizing the num-
                 ber of access to the FL-driver for a given transfer
                 sequence of read/write-operations. 
           
          For further information please refer to ref. 10, 11, 12, and 13. 
           
           
           
           
           
                    
           
           
           
           
           
           
           
          Figure 3: Diskette access in an RC8000-system. 
           
           
3_._2_ _ _ _ _ _ _ _T_h_e_ _C_a_t_a_l_o_g_ _D_i_s_k_e_t_t_e_     3.2
           
          In this field the diskette drivers FD/FL are used directly as
          system drivers in random mode with no support of deleted sectors.
          Before use the catalog must be initialized as usual. The applica-
          tion is non-screwed. 
           
                
3_._2_._1_ _ _ _ _ _D_O_M_U_S_ _S_y_s_t_e_m_ _A_p_p_l_i_c_a_t_i_o_n_ 3.2.1
           
          The normal RC3600 DOMUS Operating and Utility System is available
          with the RC3751-system as the catalog device. The system supports
          the non-screwed single density, double sided 256 bytes per sector
          diskette with the FL-driver running up to four units. Single
          density, double sided 128/512 bytes per sector diskettes may be\f

          generated too, but the restriction to the 256 bytes per sector
          diskette is made because of the bootstrap loader. The FLOPPY-COPY
          program could be used for generating a system diskette using an
          already existing system diskette. The GEN-program >GENOD> may be
          used too, please refer to ref. 14 a + b. 
           
           
3_._2_._2_ _ _ _ _ _B_A_S_I_C_/_C_O_M_A_L_-_S_y_s_t_e_m_ _A_p_p_l_i_c_a_t_i_o_n_ _a_n_d_ _G_e_n_e_r_a_t_i_o_n_3.2.2
           
          The BASIC/COMAL-system may be delivered with an RC3650/3751 flex-
          ible disc system as the catalog device. The system supports the
                   single density single sided 128 bytes per sector diskette. 
           
          With the RC3751-system the single density, double sided 128 bytes
          per sector diskette is supported too, and any double sided
          diskette should be reformatted according hereto, when initialized
          as a catalog diskette. A special formatting program is available
          for this purpose introducing a general non-screwed format. 
           
           \f

F_       4_._ _ _ _ _ _ _ _ _R_C_7_0_1_/_7_0_2_-_S_Y_S_T_E_M_S_ 4.
           
          In the future the RC701/702-systems will contribute with a number
          of diskette-applications for different diskette-types. 
           
          The diskette-controller (the uPD765) is capable of handling all
          kinds of diskettes ranging from the single sided, single density
          application to the dual density, dual sided application for both
          MAXI- and MINI-diskettes. 
           
          At present the existing system diskette driver for the RC701-sys-
          tem is restricted to run the MAXI-diskette only. The diskette
          must be preformatted as single sided (possibly reversible - the
          flippy-diskette) in the (26, 128)-format, please refer to
          appendix B. 
           
          The new RC702-system will be introduced with a more generalized
          catalog system, and the diskette system driver will therefore be
          capable of handling all diskette-formats available today. To
          ensure maximum system throughput, the RC702-system will however
          be recommended for use with a dual density, dual sided MAXI- or
          MINI-diskette (depending on the actual drive used) with a record-
          length of 512 bytes or lower. 
           
           \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_         A.
           
           1.  The IBM Diskette, General Information Manual. 
               IBM document GA21-9182-2 
                
           2.  IBM Two-sided Diskette Original Equipment, Manufactures
               Information. 
               IBM document GA21-9257-1 
                
           3.  RCSL No 44-RT1664:  
               FDC705 Flexible Disc Controller, Programmer>s Reference
               Manual. 
                
           4.  RCSL No 43-GL8537: 
               RC3751 Floppy Disc Driver, Rev. 2, 
               which must be updated according to:  
                    KDH 79.04.01, Bulletin No 17.  
                
           5.  RCSL No 43-GL7420: 
               Flexible Disc MT-Emulator, Reference Manual, 
               which must be updated according to:  
                    EJ  79.02.16, Bulletin No 16. 
                    KDH 79.02.21, Bulletin No 16. 
                
           6.  RCSL No 43-GL7778: 
               FDBOT, Flexible Disc Bootstrap Loader. 
                
           7.  RCSL No 43-GL7894: 
               Diskette Formatting Program, User>s Guide. 
                
           8.  RCSL No 43-GL7940: 
               Diskette Formatting System RC8000/RC3600, Operator>s Guide. 
                
           9.  RCSL No 43-GL9588: 
               FLOCO, User>s Guide. 
                
          10.  RCSL No 31-D517: 
               RC8000 BASIC Software Installation Using Diskettes. 
                \f

                   11.  RCSL No 31-D543: 
               Flexible Disc Process. 
                
          12.  RCSL No 31-D515: 
               FDSAVE, FDLOAD, FDINIT, FDSURVEY, Utility Programs for
               Flexible Disc Handling, 
               which must be updated according to: 
                             RCSL No 31-D545. 
                
          13.  RCSL No 31-D459: 
               Flexible Disc Handling within the ALGOL System, User>s
               Manual, 
               which must be updated according to: 
                    RCSL No 31-D531. 
                
          14a. RCSL No 43-GL7805: 
               RC3600 System Generation with DOMUS GEN, User>s Guide. 
                
          14b. RCSL No 43-GL10401: 
               RC3600 DOMUS System Generation on Flexible Disc. 
                
          15.  Standard ECMA-54. 
                
          16.  Standard ECMA-58. 
                
          17.  Standard ECMA-59. 
                
                
          N_o_t_e_ _1_: 
          Ref. 15 corresponds to ref. 1 and describes the physical diskette
          layout - the so-called physical IBM-format for single sided,
          single density 128 bytes per sector diskettes (IBM 3740). In
          additional ref. 1 describes single sided, single density
          diskettes with variable sectorlength. 
           
          N_o_t_e_ _2_: 
          Ref. 16 corresponds to ref. 1 and describes the logical diskette
          layout on file level according to IBM 3740. 
           \f

          N_o_t_e_ _3_: 
          Ref. 17 corresponds to ref. 15 concerning dual sided, single
          density 128 bytes per sector diskettes. 
                    
          N_o_t_e_ _4_: 
          The overall agreed upon physical formatting of dual sided,
          single/dual density MAXI-diskettes with variable sectorlength is
          given in ref. 2. 
           
           \f

F_       B_._ _ _ _ _ _ _ _ _P_H_Y_S_I_C_A_L_ _T_R_A_C_K_I_M_A_G_E_ _(_M_A_X_I_-_D_I_S_K_E_T_T_E_S_)_B. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure B.1: MAXI-diskette data structure (RC3751).  
           \f

F_                 All table entries display actual cylindersize and sectorlength
          given in (sectors per cylinder) and (bytes per sector). 
           
          S_i_n_g_l_e_ _d_e_n_s_i_t_y_ _f_o_r_m_a_t_t_i_n_g_: 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _S_i_n_g_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _D_o_u_b_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ 
            
             Cyl. 1-76   (Cyl. 0)          Cyl. 1-76      (Cyl. 0) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
           * 26, 128   (26, 128)           2 x 26, 128    (2 x 26, 128) 
             15, 256   (26, 128)           2 x 15, 256    (2 x 26, 128) 
              8, 512   (26, 128)           2 x  8, 512    (2 x 26, 128) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
          D_u_a_l_ _d_e_n_s_i_t_y_ _f_o_r_m_a_t_t_i_n_g_: 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _S_i_n_g_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _D_o_u_b_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
             Cyl. 1-76   (Cyl. 0,          Cyl. 1-76      (Cyl. 0) 
                         s. dens.)                        (head 0     head 1) 
                                                          (s. dens.   d. dens) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
             26,  256  (26, 128)         * 2 x 26,  256   (26, 128   26, 256) 
             15,  512  (26, 128)           2 x 15,  512   (26, 128   26, 256) 
              8, 1024  (26, 128)           2 x  8, 1024   (26, 128   26, 256) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
              
                   * The IBM system standard diskette. 
           
          s./d. dens: single/dual density 
           
           
           
           
          Table B.2: MAXI-diskette data formats. 
           \f

F_       C_._ _ _ _ _ _ _ _ _M_A_X_I_-_D_I_S_K_E_T_T_E_ _G_U_I_D_E_    C.
           
          In this section a detailed description is given of the various
          diskette formats available according to the physical IBM-standard
          as compared to the identification used by the distributors. All
          listed materials apply to preformatted diskettes. 
           
          In table C.1 those diskette types used in system support today
          are marked out. As is seen from the scheme some constraints are
          made upon formats and vendors too, according to some problems
          concerning diskette reliability and controller tolerances. 
           
          In the following table C.2 the actual RC79 System application is
          listed according to the diskette format used. As indicated here
          the system complexity is reduced in dealing with the same disket-
          te for different applications. The standard IBM-application dis-
          kette is followed in single as well as dual sided systems. 
           
          Table C.2 should inform about the existing application-possibili-
          ties. In this field it is very important to  realize the fact,
          that regardless of the existence of some manufacturers diskette
          preformatted the right way, you may often prefer to buy a reli-
          able non-matching diskette thereafter running a formatting pro-
          gram yourself. E.g. this the case with the BASIC/COMAL system
          application on RC3751 concerning the dual sided (128, 26)-
          diskette. 
           \f

F_                  
           \f

F_                  
           \f

F_                  
           \f

F_                 1) Please notice that this diskette format is not covered amongst
             those diskettes recommended for RC-systems. The formatting
             program must be used on a single density, dual sided diskette,
             e.g. the >3M, 742-0>. Any user of RC3600/7000 BASIC/COMAL
             systems will have this program known as "Logical Disc Format-
             ting Program". 
              
              \f

F_       D_._ _ _ _ _ _ _ _ _R_C_3_6_5_0_/_3_7_5_1_ _S_Y_S_T_E_M_ _D_R_I_V_E_R_S_    D.
           
          In this chapter a review of old and new system drives concerning
          the MT-emulator format as well as the general diskette appli-
          cation is given. This comparison should be used together with the
          detailed diskette/system survey of appendix C to form a deeper
          understanding of the system support given. 
           
          If a strictly sequential access method is used by the actual dis-
          kette application, the user should pay attention to the so-called
          >deleted sector>-feature. As was pointed out in appendix B, the
          standard diskette format defines a deleted data field address
          mark. Usage of this identification when writing data onto the
          diskette causes the sector to be skipped in a following read-skip
          transfer. (The sector is regarded as a bad sector). 
           
          This feature is supported by the FD/FL-drivers but not often
          used. The application may use the >write with read check>-mode to
          create a bad sector, if the read check fails after writing a
          sector on to the diskette. The MUS-system then offers automatic
          error-recovery in giving an >erase>-message which is used to
          redefine the actual sector as a deleted sector then followed by
          the earlier aborted write transfer. 
           
          Actually the MT-emulator does not use this error recovery feature
          and the catalog systems application runs in random access mode.
          Consequently any preformatted diskette with deleted sectors on it
          must not be used for any RC-system application. 
           
           \f

F_                  
           \f

F_       E_._ _ _ _ _ _ _ _ _D_I_S_K_E_T_T_E_ _I_D_E_N_T_I_F_I_C_A_T_I_O_N_ E.
           
          At present 3 types of MAXI-diskettes are generally available for
          use with the RC3751 Flexible Disc Drive. 
           
          The RC3650 Flexible Disc Drive is capable of handling diskette
          types 1 and 3 defined below. 
           
          The MINI-diskettes, the single sided (type 1) and the dual sided
          diskette (type 2), do not differ in physical layout of the index
          holes. 
           
           
E_._1_ _ _ _ _ _ _ _D_i_s_k_e_t_t_e_ _T_y_p_e_s_ 
           
          1. The single-sided diskette which has 1 recording surface con-
             stituting 1 logical disc storage area. It is identified by a
             small hole in its cover positioned approximately 5 degrees
             right when holding the diskette vertically. 
              
              
          2. The dual head, double-sided diskette which has 2 recording
             surfaces, one on each side, constituting 1 logical disc
             storage area with twice the capacity of the single-sided
             diskette. It is identified by a small hole in its cover
             positioned approximately 1 o>clock when holding the diskette
             vertically. 
              
          3. The single head, double-sided diskette which has got 2
             recording surfaces, one on each side, constituting 2 logical
             disc storage areas. The diskette has to be flipped over to use
             the second recording surface. It is identified by 2 small
             holes in its cover which are at positions of approximately
             15 degrees left and 15 degrees right when holding the diskette
             vertically. 
              
          The manufacturers> labels on the diskettes may then identify the
          actual kind of diskette used according to the scheme given in
          appendix C. The user>s label may be used for system/application
          notes. 
           
          In fig. E.1 the diskette is graphically described. 
           
           \f

F_                  
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure E.1: MAXI-diskette identification. 
           \f

F_       F_._ _ _ _ _ _ _ _ _P_H_Y_S_I_C_A_L_ _T_R_A_C_K_I_M_A_G_E_ _(_M_I_N_I_-_D_I_S_K_E_T_T_E_S_) F.
           
          FM: 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          MFM: 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          The formats are identical to the MAXI-IBM format with the number
          of bytes of G1 and G4 modified and the index mark omitted. 
           
          Notes on the following page. 
           
          Table F.1: MINI-diskette data structure (YD-274, YE data). 
           \f

                   Notes: 1  ID Address Mark A1.A1.A1.FE 
                 2  Cylinder No. (Track No.) Head No., Record No. 
                      (Sector No.), Record Length 
M_M_m_                                                           16    12    5 
P_P_p_                 3  Generated by CRC Generator (G(x) = X   + X   + X  + 1)
                 4  A1.A1.A1.FB for Data Field or A1.A1.A1.F8 for Deleted
                      Data Field. 
                 5  User Data 
                  .   Missing Clock Pattern 
                       
                       
                      1   0   1   0   0   0   0   1 
                       
                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
                      D       D     C       C     D 
                                        Missing Clock 
                       
6  Formatting parameter for UPD765 (GPL  2 ), includes  
                      >WG-OFF>. 
                       \f

F_                 All table entries display actual cylindersize and sectorlength
          given in (sectors per cylinder) and (bytes per sector). 
           
          S_i_n_g_l_e_ _d_e_n_s_i_t_y_ _f_o_r_m_a_t_t_i_n_g_: 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _S_i_n_g_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _D_o_u_b_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
             Cyl. 1-35   (Cyl. 0)          Cyl. 1-35      (Cyl. 0) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
           * 16, 128   (16, 128)           2 x 16, 128    (2 x 16, 128) 
              9, 256   (16, 128)           2 x  9, 256    (2 x 16, 128) 
              5, 512   (16, 128)           2 x  5, 512    (2 x 16, 128) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
          D_u_a_l_ _d_e_n_s_i_t_y_ _f_o_r_m_a_t_t_i_n_g_: 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _S_i_n_g_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _D_o_u_b_l_e_-_s_i_d_e_d_ _d_i_s_k_e_t_t_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
             Cyl. 1-35   (Cyl. 0)          Cyl. 1-35      (Cyl. 0) 
                       s. dens.                           (head 0     head 1) 
                                                          (s. dens.   d. dens) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
            
             16,  256  (16, 128)         * 2 x 16,  256   (16, 128   16, 256) 
              9,  512  (26, 128)           2 x  9,  512   (16, 128   16, 256) 
              5, 1024  (26, 128)           2 x  5, 1024   (16, 128   16, 256) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
              
          The MINI-diskette formats are not yet agreed upon as standard
          formats, because of which preformatting is done by the
          distributor. 
           
           
           
           
           
          Table F.1: MINI-diskette data formats. 
              \f

                   The available number of cylinders on the MINI-diskette differ
          according to the actual drive-manufacturer chosen. The standard
          drive includes 36 or 40 cylinders with the same track-density,
          that is: the 40-cyl-versions are in fact the 36-cyl-versions
          augmented with 4 cylinders. 
           
          Available too is the so-called quadrouble-density diskette drive,
          which is designed with a doubled-up track-density. The capacity
          is then increased from 36 to 70 cylinders per diskette, and the
          distance between adjacent cylinders is reduced with a factor 2.
          The quadrouble-density diskette for use with such drives differ
          from the normal one used in the quality of the surface coating
          which too is tested more critically. 
           
           \f

         G_._ _ _ _ _ _ _ _ _M_I_N_I_-_D_I_S_K_E_T_T_E_ _G_U_I_D_E_                                              G.
           
                   In this section a detailed description is given of the various
          diskette formats available according to the physical IBM-MAXI-
          standard converted to MINI-diskettes. 
           
          In table G.1 those diskette types used in system support today
          are marked out. As is seen from the scheme some constraints are
          made upon formats and vendors too, according to some problems
          concerning diskette reliability and controller tolerances.  
           
          In the following table G.2 the actual RC79 System application is
          listed according to the diskette format used. As indicated here
          the system complexity is reduced in dealing with the same
          diskette for different applications. 
           
          Table G.2 should inform about the existing application-possi-
          bilities. In this field it is very important to realize the fact,
          that the diskettes available today are all non-preformatted ones.
           
           \f

                    
           \f

                    
           \f

F_       H_._ _ _ _ _ _ _ _ _F_M_/_M_F_M_-_D_A_T_A_ _R_E_P_R_E_S_E_N_T_A_T_I_O_N_H. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          FM, MFM and MuU2dDFM CODE COMPARISONS 
           
          FM   = Single density encoding.  
          MFM  = Standard dual density encoding. 
          MuU2dDFM = Available dual density encoding. 
           
          Please notice that the MuU2dDFM-format is not supported by 
          RC-equipment. 
           
           
           
           
          Figure H.1: Data encoding. 
           \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.  PROCEDURES ............................................   2 
           
          3.  FORMATS ...............................................   3 
              3.1  Header Message ...................................   4 
                   3.1.1  Driver Message ............................   4 
                   3.1.2  Answer ....................................   6 
              3.2  Data Buffer ......................................   7 
           
          4.  DRIVER MANUALS ........................................  10 
           \f

                                                 ii 
           \f

F_1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
           
          This note deals with the procedures and formats used for communi-
          cation between a driver and one or more process incarnations in a
          PASCAL80 system which use(s) the driver to provide i/o functions.
           
          The standard described in this note applies to drivers written in
          PASCAL80 as described in the P_A_S_C_A_L_8_0_ _R_e_p_o_r_t_ (RCSL No 52-AA964)
          as it stands at the present date. Future revisions of the
          PASCAL80 language will most likely entail revisions of the driver
          conventions as well. 
           
          The conventions described here apply not only when the driver
          process and the process(es) using the driver are programmed com-
          pletely in PASCAL80, but also when one or more of the processes
          are programmed in machine code, as long as they communicate by
          using the PASCAL80 message exchange mechanisms (signal, wait,
          etc.). 
           
          By definition a PASCAL80 driver is (an incarnation of) a process
          containing a CHANNEL statement. This definition indicates that a
          driver performs i/o functions, but it does not characterise the
          amount of processing, such as e.g. error correction or data
          structuring, which is performed. The functions related to i/o may
          therefore in different cases be distributed differently between
          the driver and the process incarnation(s) which make use of the
          driver. In order that the present conventions should not intro-
          duce undesirable restrictions on this functional distribution
          they have been kept fairly minimal. 
           
          Procedures and formats which need not be adhered to in all cases,
          but which should be followed whenever they are appropriate, are
          included as recommendations. 
           
          The note also contains some hints on the structure and contents
          of driver manuals. 
           \f

F_2_._ _ _ _ _ _ _ _ _P_R_O_C_E_D_U_R_E_S_ 2.
           
          By convention each driver incarnation has a unique request sema-
          phore. A request to the driver is made in the form of a message,
          called a d_r_i_v_e_r_ _m_e_s_s_a_g_e_, signalled to this semaphore. 
           
          When a driver has processed a request the message is returned
          (i.e. signalled to its answer semaphore). When returned, the
          message is referred to as an a_n_s_w_e_r_. 
           
          If a driver does not process and answer requests in the same
          order as the driver messages are received this should be
          explained in the driver manual. 
           
          When a driver maintains internal request (buffer) queues it shall
          in general be possible to recall the pending requests by means of
          a "regret" request. 
           \f

F_3_._ _ _ _ _ _ _ _ _F_O_R_M_A_T_S_ 3.
           
          In the following we use the term i/o-data to mean data which is
          actually transferred to or from an input or output device (notice
          that a communication line is also considered an i/o device). The
          term "data buffer" is used with the same meaning as "message
          data" in the PASCAL80 Report. 
           
          The "user" bytes u1, u2, and u3 of the header of a driver mes-
          sage/answer are used to specify the function requested from a
          driver and after processing of a request to provide result
          information. When u1-u3 are not sufficient to hold the request/-
          result information, part of this information may also be placed
          in the data buffer. 
           
          I/o data, including address information to indicate the precise
          amount of data, are held in the data buffer of the driver
          buffer/answer. 
           
          The general format is illustrated below: 
           
                     d_r_i_v_e_r_ _m_e_s_s_a_g_e_                      a_n_s_w_e_r_ 
           
                     message header                      message header 
           
          u1         function                            unchanged 
          u2         no standard use                     result 
          u3         device address or data byte         data byte if needed 
                     if needed 
           
           
                     data buffer with output data        data buffer with input data  
           
          byte 0-1   first                               unchanged 
          byte 2-3   last                                unchanged 
          byte 4-5   (lastw)                             next 
          (from      function or address information     result/status information) 
          (byte 6    not held in u1-u3                   not held in u1-u3)       ) 
          remaining 
          bytes      output data                         input data 
           \f

           
3_._1_ _ _ _ _ _ _ _H_e_a_d_e_r_ _M_e_s_s_a_g_e_ 3.1
           
          The "user" bytes u1-u4 are used in driver messages and answers as
          described in this section. 
           
           
3_._1_._1_ _ _ _ _ _D_r_i_v_e_r_ _M_e_s_s_a_g_e_ 3.1.1
           
          u_1_:_ _f_u_n_c_t_i_o_n_ 
           
          The byte u1 is used to specify the f_u_n_c_t_i_o_n_ to be performed by
          the driver as shown below (bit 7 is most significant, bit 0 least
          significant), i.e. u1=basic function+4*function modification. 
           
          bit              7                   2   1            0 
                           function modification   basic function 
           
          The basic function is coded as follows: 
           
          v_a_l_u_e_    m_e_a_n_i_n_g_ 
            0    control operation, i.e. any operation that does not
                 involve an actual transfer of data, 
            1    read (receive) data operation, 
            2    write (transmit) data operation, 
            3    write and read data operation, i.e. write followed by read
                 using the same buffer. 
           
          There is no standard for the coding of the f_u_n_c_t_i_o_n_ _m_o_d_i_f_i_c_a_t_i_o_n_.
          When necessary, this field is used in a driver dependent way to
          distinguish between different function requests with the same
          basic function code. The following coding is recommended
          (bf=basic function, fm=function modification): 
           
          bf=0, fm=0: get device status, 
          bf=0, fm=1: initiate/connect/open device, 
          bf=0, fm=2: terminate/disconnect/close device, 
          bf=0, fm=3: regret request, 
          bf=0, fm=5: pause (release channel to test program), 
          bf<'0,fm=0: block transfer of binary data to/from data buffer. 
           \f

          u_2_:_ _n_o_t_ _u_s_e_d_ 
           
          Normally u2 is not used to hold information t_o_ a driver. 
           
          u_3_:_ _d_e_v_i_c_e_ _a_d_d_r_e_s_s_ _o_r_ _s_i_n_g_l_e_ _b_y_t_e_ _i_/_o_ _d_a_t_a_ 
           
          There are two alternative uses of the u3 byte. 
           
          When a driver services more than one device, u3 is used to hold
          device address information. 
           
          When data is transferred in single byte mode, i.e. a driver
          request causes the transfer of only one byte, u3 is used to hold
          this byte, so that a header message (message without data buffer)
          may be used. 
           
          u_4_:_ _n_o_t_ _u_s_e_d_ 
           
          The byte u4 must not be used in driver messages. 
           
          N_o_t_e_s_ 
           
          These conventions do not rule out the use of u3 for other
          purposes than described, nor the use of u2, in a driver message.
          However, such use is not standardised. 
           
          When the bytes u1-u3 are not sufficient to hold a driver request,
          additional information may be placed in the data buffer. In the
          case of a data transfer request, i.e. when the data message is
          used for i/o data, such information should start in byte 6,
          otherwise there are no restrictions. Using the PASCAL80 LOCK
          statement such information can freely be given a suitable
          type-definition (as opposed to u1-u3 which are restricted to the
          type 0..255 by the language definition). 
           
           \f

3_._1_._2_ _ _ _ _ _A_n_s_w_e_r_ 3.1.2
           
          u_1_:_ _u_n_c_h_a_n_g_e_d_ 
           
          When a driver message is returned as an answer u1 is unchanged. 
           
          u_2_:_ _r_e_s_u_l_t_ 
           
          The byte u2 is used to give r_e_s_u_l_t_ information from a driver to
          the requesting incarnation (actually the incarnation to which the
          request message is returned) as shown below, i.e.
          u2=result+8*result modification: 
           
          bit              7                 3   2    0 
                           result modification   result 
           
          The result is coded as follows: 
           
          v_a_l_u_e_    m_e_a_n_i_n_g_ 
            0    processed succesfully, 
            1    not processed because of a previous error not yet repaired
                 (used with multi-buffering), 
            2    transient error, i.e. error which may be corrected by the
                 driver; accompanying data may contain errors, e.g. parity
                 errors. 
            3    persistent error, i.e. error which must be corrected by
                 operator intervention and/or a suitable driver request to
                 reset the device, 
            4    illegal function, i.e. unintelligible driver message, 
           5-6   reserved, not used presently. 
            7    not used; this value may be used to indicate that a
                 message does not contain an answer from a driver. 
           
          The result modification is used in a driver dependent way to
          provide additional information needed to distinguish different
          results, e.g. different kinds of transient error requiring
          different repair. As a general recommendation, only distinctions
          which will be useful for the requesting process incarnation
          should be provided. 
           \f

          u_3_:_ _u_n_c_h_a_n_g_e_d_ _i_f_ _d_e_v_i_c_e_ _a_d_d_r_e_s_s_ _o_r_ _s_i_n_g_l_e_ _b_y_t_e_ _i_/_o_ _d_a_t_a_ 
           
          When u3 is used in a driver message to hold a device address it
          should not be changed by the driver. 
           
          If data is transferred in single byte mode u3 is used to hold
          data read from a device. 
           
          Other uses of u3 are not ruled out, but they are not
          standardised. 
               
          u_4_:_ _n_o_t_ _u_s_e_d_ 
           
          The byte u4 must not be changed by a driver. This allows the user
          of a driver to use u4 for purposes other than communication with
          the driver. 
           
          N_o_t_e_ 
           
          Result information which cannot be placed in u1-u3 may be held in
          the data buffer of an answer in the same way as request
          information in the data buffer of a driver message. 
           
3_._2_ _ _ _ _ _ _ _D_a_t_a_ _B_u_f_f_e_r_ 3.2
           
          The format of the data buffer is standardised for block data
          transfer requests, i.e. when the buffer is used to hold i/o data.
          Other uses of the data buffer, e.g. for device status information
          are not standardised. 
           \f

          When all request/result information needed in a driver
          message/answer can be held in u1-u3 the data buffer (of size n
          bytes) is treated by a driver as a record of the type: 
           
          data _buffer=RECORD 
                          first:      INTEGER; 
                          last:       INTEGER; 
                          lastw/next: INTEGER; 
                          (* when necessary, additional request/result *) 
                          (* information is placed here                *) 
                          data:       ARRAY(6..n-1) OF byte (* i/o data *) 
                      END(*RECORD*); 
           
          The locations ("sub-array") data(first..last) is called the data
          area of the buffer. 
           
          The output data for a write/transmit operation are taken from the
          data area. Note that in the case of a write and read data oper-
          ation lastw (not last) is used as the index of the last data byte
          to be written. If the write operation completes normally,
          next=last+1 (or lastw+1) afterwards. 
           
          Similarly the input data of a read/receive operation are placed
          in the data area. If this area is not sufficient for the received
          data, buffer overrun will occur. If the read/receive operation
          completes normally, next, in the answer, will be the index of the
          location following the last received byte. Thus next indicates
          the length of the block that was actually received into memory. 
           
          A driver must not change first or last. 
           
          Some drivers may accept a data buffer stack. As a general rule
          each data buffer in the stack is formatted as described above,
          and the concatenation of the data areas of the buffers, from top
          to bottom, is considered one logical i/o data record. Only the
          top message header is interpreted according to the conventions
          spelled out in section 3.1. When a driver supports stacked data
          buffers it should be explicitly mentioned in the driver manual. 
           \f

          When request/result information in addition to what can be held
          in u1-u3 is needed, such information should be placed between
          lastw/next and the data array; the min bound of this array (6)
          should be incremented accordingly. The formatting of such
          request/result information is not standardised. 
           
           \f

F_     4_._ _ _ _ _ _ _ _ _D_R_I_V_E_R_ _M_A_N_U_A_L_S_ 4.
           
          The following contents are suggested for driver manuals. 
           
          Section 1: Introduction 
           
          Section 2: Functions Supported by the xxx Driver 
              
             This section contains a thorough description of the functions
             provided by the driver. 
              
          Section 3: Driver Interface 
              
             This section contains explicit specifications of all formats
             and codes used in driver messages as well as the answers that
             may occur for each type of request. The actions caused by a
             particular request need not be explained in detail, but
             references to section 2 should be given whenever appropriate. 
              
             The material in this note need not be repeated in all driver
             manuals, a reference is sufficient. 
              
          Section 4: Parent Process Responsibilities 
              
             This section contains information on how to declare, link,
             create, and start the driver. Specifically all process
             parameters of the drivers should be decribed. Suggested values
             of the storage and priority parameters needed for create and
             start should also be given. 
           
           \f

«eof»