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

⟦7b2027fd4⟧ TextFile

    Length: 150656 (0x24c80)
    Types: TextFile
    Names: »D57«

Derivation

└─⟦6966c2393⟧ Bits:30005867/disk08.imd Dokumenter (RCSL m.m.)
    └─⟦this⟧ »D57« 

TextFile

                                                 i 
           
          F_O_R_E_W_O_R_D_ 
           
          This manual describes the logic functioning of the VDC201 con-
          troller. However, as the VDC291 is functionally equivalent to the
          VDC201 please read VDC201/VDC291 wherever VDC201 is mentioned. 
           
           
          Jens Peter Jakobsen 
          A/S Regnecentralen af 1979, June 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.  MAIN CHARACTERISTICS .................................   1 
              1.1  Short Description ...............................   1 
              1.2  Data Formats ....................................   3 
              1.3  Applicable Documents ............................   3 
           
          2.  PERFORMANCE CHARACTERISTICS ..........................   4 
           
          3.  LOGIC SPECIFICATION ..................................   5 
              3.1  Logic Survey ....................................   5 
              3.2  Controller Registers ............................   6 
                   3.2.1  Subdevice Registers ......................   8 
                   3.2.2  Low Level Registers ......................  12 
                   3.2.3  High Level Registers .....................  13 
                   3.2.4  Internal Registers .......................  14 
              3.3  Low Level Commands ..............................  14 
                   3.3.1  Start/Stop Scan ..........................  14 
                   3.3.2  Set Retry count/Timeout ..................  15 
                   3.3.3  Reset Subdevice ..........................  16 
                   3.3.4  Set TX-State .............................  16 
                   3.3.5  Set Read Buffer ..........................  17 
                   3.3.6  Write Buffer .............................  18 
                   3.3.7  Secondary Write ..........................  19 
                   3.3.8  Secondary Read ...........................  20 
                   3.3.9  Read Controller Register .................  21 
                   3.3.10 Controller Reset .........................  21 
              3.4  High Level Status/Events ........................  22 \f

                                             iv 
           \f

         1_._ _ _ _ _ _ _ _ _M_A_I_N_ _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S_ 1.
           
1_._1_ _ _ _ _ _ _ _S_h_o_r_t_ _D_e_s_c_r_i_p_t_i_o_n_ 1.1
           
          The VDC201 is a data communication controller intended for data
          transportation between the RC3503/RC3502 computer and up to 8 -
          RC850 data terminals connected to a common twisted pair. A
          minimum configuration is shown in fig. 1.1. 
           
          The VDC201 contains a microprogrammed controller which executes
          most of the functions in connection with polling the terminals,
          retransmission of unacknowledged data blocks, and DMA-transfer of
          data between memory and controller. The two-wire communication
          line operates in a high speed (250 K BAUD) half duplex polling
          mode as defined in the Reference manual for the VDC201 line
          protocol. 
           \f

                    
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 1.1: Minimum configuration. \f

         1_._2_ _ _ _ _ _ _ _D_a_t_a_ _F_o_r_m_a_t_s_ 1.2
           
          The VDC201 transfers data blocks between CPU - memory and a
          device connected to the high speed serial line. 
          The correspondance between data placement in memory and order of
          transmission is as indicated in fig. 1.2.1. 
           
           
           
           
           
           
           
           
           
                         MEMORY                    LINE 
           
          Figure 1.2.1 
           
          The line format is further described in the "CIRCUIT Protocol, 
          Reference Manual". 
           
          The memory is always read and written (by VDC201) one full word
          at a time therefore the buffer start address must be an even
          address. 
           
           
1_._3_ _ _ _ _ _ _ _A_p_p_l_i_c_a_b_l_e_ _D_o_c_u_m_e_n_t_s_ 1.3
           
          PHILIPS/SIGNETICS, MULTI-PROTOCOL COMMUNICATIONS CONTROLLER
          (MPCC) 2652/2652-1 
           
          RCSL No 31-D 598: Circuit Protocol, Reference Manual. 
           \f

         2_._ _ _ _ _ _ _ _ _P_E_R_F_O_R_M_A_N_C_E_ _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S_ 2.
           
          The number of terminals connected to a single controller can be
          up to 8 dependant on cable length and response time requirements.
           
          Transmission speed: 250 k baud 
          Data rate:          26-31 k bytes/sec dependant on data
                              (automatic zero insertion). 
           
          Poll-response exchange 
          time/terminal:      0,5 mS + Terminal response time 
                                     + Data transfer time 
           \f

         3_._ _ _ _ _ _ _ _ _L_O_G_I_C_ _S_P_E_C_I_F_I_C_A_T_I_O_N_ 3.
           
3_._1_ _ _ _ _ _ _ _L_o_g_i_c_ _S_u_r_v_e_y_ 3.1
           
          The VDC201 is operated from the host CPU (RC3502 or RC3503) by
          the normal I/O Instructions Read Status, Write Control, R/W
          Word, and R/W Block of Words. VDC occupies two of the 128 device
          numbers in the CPU selected by switches on the VDC201 circuit
          board.  
          In the following the two interrupt levels (interrupt level =
          device number) will be referred to as LEVEL LOW and LEVEL HIGH
          corresponding to level 2*P+0 and 2*P+1 where P is 0,1,2...,63. 
           
          Each level consists of four 16 bit registers of which only the
          read registers are used on the high level. 
           
                   0                      15 
                   MSB                   LSB 
          WCC      WRITE COMMAND 
           
          RSC      READ STATUS 
           
          WWC/WBW  WRITE DATA 
           
          RWC/RBW  READ DATA 
           
          The registers are used for communicating between controller and
          driver program. The LOW LEVEL registers are used to receive
          commands from the driver and to deliver controller information
          that is subdevice independent such as the contents of controller
          work registers. 
          The LOW LEVEL interrupt is set by the controller when it has
          accepted a command or part of a command. 
          To prevent loosing interrupts, the controller will not try to set
          an interrupted level before it has been cleared by the CPU. 
           
          The HIGH LEVEL is used to signal controller events such as data
          buffer received or errors to the driver program. The controller
          writes an event/error code in the high level status register and\f

                   then sets the high level interrupt. Until this level has been
          cleared by the driver no further events can be signalled. 
           
          Internally the controller contains a state and receive buffer
          description for each of the eight possible subdevices (terminals,
          secondary stations). 
          By scanning these descriptions the controller services each sub-
          device in succession. The operation performed on a subdevice de-
          pends on its state variable and will be one of the following: 
           
               1.  I_F_ _i_n_a_c_t_i_v_e_  then go on to next subdevice. 
                
               2.  I_F_ _r_e_s_e_t_  then send a reset frame to the terminal which
                   should answer within a timeout time if it is active. 
                
               3.  I_F_ _a_c_t_i_v_e_  then perform a Poll-Response exchange i.e.
                   send frame, change line direction, wait, and receive
                   answer frame. 
                
          Before the controller goes on to the next subdevice, it executes
          any command that may have been received while servicing the last
          subdevice. 
          Most commands will only indirectly change the controller opera-
          tions by modifying subdevice state descriptions. 
           
           
3_._2_ _ _ _ _ _ _ _C_o_n_t_r_o_l_l_e_r_ _R_e_g_i_s_t_e_r_s_ 3.2
           
          The controller contains a register file of 64 words (16 bits). 32
          of these are used for saving the state and buffer description of
          up to eight subdevices (see fig. 3.2.1). 
           
          Each subdevice has four registers, one state register and 3
          buffer description registers. 
           
          The last 32 registers are used as work area by the controller and
          are normally not of interest to the driver program. 
          Of these the registers 56 to 63 serve as data exchange registers
          for the host I/O-instructions. \f

                    
           
                    
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
                   Figure 3.2.1: Controller registers. \f

         3_._2_._1_ _ _ _ _ _S_u_b_d_e_v_i_c_e_ _R_e_g_i_s_t_e_r_s_ 3.2.1
           
          The state register has the following layout: 
           
          R_E_G_I_S_T_E_R_ _N_U_M_B_E_R_:  SUBDEV * 4 + 0 
           
           
           
           
           
           
           
          B_i_t_ _0_-_4_:_ _T_X_-_S_T_A_T_E_ 
           
          These bits will be transmitted as C-field next time the control-
          ler starts to operate on the subdevice. 
           
          R_R_ _(_B_i_t_ _0_)_ _R_e_c_e_i_v_e_ _R_e_a_d_y_ 
           
          0 :  Controller is unable to receive data. 
          1 :  Controller has a valid receive buffer and will accept data. 
           
          RR is initially reset, it is set when the controller receives a
          Set Read Buffer command. It is reset again when the buffer con-
          tains data from an error free transfer. 
           
          S_R_ _(_B_i_t_ _1_)_ _S_e_n_d_ _R_e_a_d_y_ 
           
          0 :  Controller has no transmit data (buffer) 
                 1 :  Transmit data buffer exists and will be sent if RRDdTUu
                       (Rx-state bit 8) is set. 
          SR in initially reset, it is thereafter set or reset by the dri-
          ver using the commands Set Tx-state or Write Buffer. 
           \f

                   S_N_ _(_B_i_t_ _2_)_ _S_e_q_u_e_n_c_e_ _N_u_m_b_e_r_ 
           
          Reset to 0 at power up and when a reset subdevice is issued. 
          It is updated by the controller each time an error free answer is
          received from the terminal. SN is then set to the opposite of the
M_M_m_          SN  (bit 11) received from the terminal. 
P_P_p_            T 
           
          U_ _a_n_d_ _X_ _(_B_i_t_ _3_ _a_n_d_ _4_)_ _U_s_e_r_ _B_i_t_s_ 
           
          These bits are not used by the controller and do not affect its
          operation. 
           
          They are exclusively controlled by driver software using a write
          TX-state or write buffer command. 
           
          D_5_ _(_B_i_t_ _5_)_ _D_a_t_a_ _S_e_n_t_ 
           
          Indicates wether information has been transmitted, but not ac-
          knowledged. It is reset by a write TX-state, write buffer, or
          reset subdevice command. 
           
          R_ _(_B_i_t_ _6_)_ _T_r_y_ _R_e_s_e_t_ 
           
          If A = 1 R has no effect. 
           
          1 :  After power up, normal state. 
          0 :  The controller will issue a reset to the subdevice (termi-
               nal) in each 8>th scanning round until the terminal
               responds. When this happens R is reset and High Level is
               interrupted. The error/event code tells wether the subdevice
               responded correctly (Answer reset) or not. 
           
          A_ _(_B_i_t_ _7_)_ _A_c_t_i_v_e_ 
           
          0 :  Subdevice is inactive and will not be polled, but may try
               reset if R = 0 
          1 :  Subdevice will be polled and data transferred if allowed by
M_M_m_               RR and RR  state bits. 
P_P_p_                        T 
          A is reset by any event causing interrupt at the high level. 
           \f

                   B_i_t_ _8_-_1_2_:_ _R_X_-_S_T_A_T_E_ 
           
          These bits hold the five most significant bits of the C-field in
          the last received error free frame. 
          They reflect the data buffer flags in the subdevice (terminal) 
           
          R_R_ _ _(_B_i_t_ _8_)_ _R_e_c_e_i_v_e_ _R_e_a_d_y_ _(_T_e_r_m_i_n_a_l_)_ 
           
          0 :  Terminal is unable to receive data, i.e. Data Field in next
               frame out must be empty. 
          1 :  Terminal has a data buffer ready to accept data. 
           
          S_R_ _ _(_B_i_t_ _9_)_ _S_e_n_d_ _R_e_a_d_y_ _(_T_e_r_m_i_n_a_l_)_ 
           
          0 :  Terminal has no data. 
          1 :  Terminal has input data but the controller RR (bit 0) must
               be set before data can be transferred. 
           
          S_N_ _ _(_B_i_t_ _1_0_)_ _S_e_q_u_e_n_c_e_ _N_u_m_b_e_r_ _(_T_e_r_m_i_n_a_l_)_ 
           
          Received Sequence number must be equal to the transmitted
          sequence number (bit 3), else the frame will be rejected. 
           
          U_ _a_n_d_ _X_ _(_b_i_t_s_ _1_1_ _a_n_d_ _1_2_)_ _U_s_e_r_ _b_i_t_s_ _f_r_o_m_ _t_e_r_m_i_n_a_l_ 
           
          Equivalent to bits 3 and 4: 
           
          B_i_t_ _1_3_-_1_5_ _N_o_t_ _d_e_f_i_n_e_d_ 
           
          Used internally by the controller. 
           
          Read buffer description consists of the following 3 registers. 
           
           
           
           
           
           \f

                   B_i_t_ _0_-_1_0_ _a_n_d_ _1_5_  are not defined. 
           
          B_u_f_f_e_r_ _S_e_g_m_e_n_t_ _(_b_i_t_ _1_1_-_1_4_)_ 
           
          Buffer segment (= 64 K byte) is the four most significant bits of
          the buffer address. 
           
          - The first and last addresses of a buffer must be within the
            same memory segment. 
          - NOT changed by the controller. 
           
           
           
             0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_5_ 
              _ _ _ _ _ _ _ _B_U_F_F_E_R_ _S_T_A_R_T_ _ _ _ _ _ _ _ _ _ _ _0_   Reg No = SUBDEV * 4 + 2 
           
             BUFFER  START ADDRESS (bit 0-15) 
           
          -  Must be an even address 
           
          - NOT changed by the controller 
           
             0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_5_ 
              _ _ _ _ _ _ _ _B_U_F_F_E_R_ _S_I_Z_E_ _ _ _ _ _ _ _ _ _ _ _ _ _   Reg No = SUBDEV * 4 + 3 
           
          Buffer Size is the maximum number of bytes the controller may
          place in memory from Buffer Start address and up. 
          Buffer size must be an even number of bytes (bit 15 = 0) as the
          controller will not access less than one word (16 bit) at a time.
           
          Memory module, Buffer Start address and Buffer Size can be
          changed by a Set Read Buffer command. 
           \f

         3_._2_._2_ _ _ _ _ _L_o_w_ _L_e_v_e_l_ _R_e_g_i_s_t_e_r_s_ 3.2.2
           
          The internal registers 56 to 59 can be accessed directly both
          from the controller and from low level I/O-instructions. 
          They are used for delivering commands to the controller and for
          passing the associated data as determined by the command. 
          The registers have the following general layout: 
           
          WRITE CONTROL REGISTER 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          The control register commands are described in section 3.3. 
           
          The status register shows in bit 12-15 which subdevice is being
          serviced by the controller at the time it is read. 
           
          Bit 8, scan on allows the controller to service subdevices. If it
          is 0 then the controller will only receive commands. 
           
          Bit 0 and 4-7 are used during a write buffer command to restore
          the scan sequence after the Write command is completed. 
           \f

         3_._2_._3_ _ _ _ _ _H_i_g_h_ _L_e_v_e_l_ _R_e_g_i_s_t_e_r_s_ 3.2.3
           
          Like the low level registers these registers can be accessed both
          from the controller and from high level I/O-instructions. The two
          read registers are used as follows: 
           
          READ STATUS REGISTER 
           
           
           
           
           
           
           
          READ WORD REGISTER 
           
           
           
          The controller will only update these registers when a value of
          all ones has been written in Write Control Register. After updat-
          ing the registers the high level interrupt is set. 
          Following this interrupt the Write Control Register should be set
          to all ones as soon as the register information has been used
          otherwise the controller will be delayed in its operation. 
           
          Read status Register contents are described in section 3.4. Read
          Word Register normally contains the last (in time) command which
          need not concern the interrupting subdevice. Only in case of an
          illegal command will the correspondance be certain. 
           
          If a a new interrupt situation occurs before the last interrupt
          has been acknowledged then the controller will be halted (unable
          to receive commands) until high level is released. 
           
          If a valid data block has been received from a subdevice then bit
          6, RXDAT in the status register will be set and the read word re-
          gister will contain the number of unused bytes in the buffer. The
          Write Data Register is not used. 
           \f

         3_._2_._4_ _ _ _ _ _I_n_t_e_r_n_a_l_ _R_e_g_i_s_t_e_r_s_ 3.2.4
           
          Registers No 32 to 55 are reserved for internal use by the con-
          troller as workspace. Some of them are modified by commands from
          low level (TX-buffer, Retry, and Timeout). 
           
          They can be read by a Read Controller Register command, but are
          normally not of interest to the driver. 
           
           
3_._3_ _ _ _ _ _ _ _L_o_w_ _L_e_v_e_l_ _C_o_m_m_a_n_d_s_ 3.3
           
          The WCC commands have the following layout: 
           
                        0_ _ _ _ _ _ _ _ _ _ _ _ _ _7_ _8_ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_5_ 
          WCC    _ _ _P_A_R_A_M_E_T_E_R_ _ _ _ _C_O_M_M_A_N_D_ _ _ _S_U_B_D_E_V_._   Reg No = 59 
           
           
          Depending on the command this may be followed by a write- or
          read block of words. 
           
           
3_._3_._1_ _ _ _ _ _S_t_a_r_t_/_S_t_o_p_ _S_c_a_n_ 3.3.1
           
          FORMAT: 
           
           
           
           
          S_ _=_ _0_ :  Stops scanning when current subdevice terminates its
          operation (which may or may not interrupt High Level). 
          Low Level is interrupted when scanning has been stopped. 
          Subdevice registers can now be read by a Read Controller Register
          command. 
           \f

                   Controller does nothing until a new command is received. 
          Scan is stopped after power up. 
           
          S_ _=_ _1_ _:_ _S_t_a_r_t_ _s_c_a_n_: 
           
          Scanning starts at the point it was last stopped. 
           
          Low Level is interrupted when scan has started. 
           
           
3_._3_._2_ _ _ _ _ _S_e_t_ _R_e_t_r_y_ _c_o_u_n_t_/_T_i_m_e_o_u_t_ 3.3.2
           
          FORMAT: 
           
           
           
           
          T_ _(_b_i_t_ _1_3_)_ _=_ _0_,_ _S_e_t_ _R_e_t_r_y_ _C_o_u_n_t_ : 
           
          Sets the number of times an erroneous transaction should be
          repeated before an error interrupt is given. 
          Does not start or stop scanning. 
          Interrupts Low Level when count is set. 
          All subdevices use the same retry count. 
          Default value = 0 i.e. no errors allowed. 
           
          T_ _=_ _1_,_ _S_e_t_ _t_i_m_e_o_u_t_: 
           
          Sets the timeout variable (in milliseconds * 0.5) which deter-
          mines maximum response time of the terminals. 
          Does not start or stop scanning. 
          Interrupts Low Level when TIME is set. 
           
          All subdevices use the same timeout time. 
          Timeout can be between 0.5 ms and 126 ms, default: 10 ms. 
           
           \f

3_._3_._3_ _ _ _ _ _R_e_s_e_t_ _S_u_b_d_e_v_i_c_e_ 3.3.3
           
          FORMAT: 
           
           
           
           
          Function: 
          The specified subdevice state register will be prepared for reset
          (R, bit 6 = 0) Low Level is interrupted. Next time the scanning
          services this subdevice it will try to reset it. 
          If the terminal responds to reset then High Level is interrupted
          else the controller will try a reset later. 
          Does not start or stop scanning. 
           
           
3_._3_._4_ _ _ _ _ _S_e_t_ _T_X_-_S_t_a_t_e_ 3.3.4
           
          FORMAT: 
           
           
           
           
          Function: 
          TX-state register (bit 0-7) of the specified subdevice is loaded
          with bit 0-7 of the command word except the sequence bit SN, bit
          2 which is determined by the controller itself. 
          Low Level is interrupted after state has been changed. 
          Does not start or stop scanning. 
           
           \f

         3_._3_._5_ _ _ _ _ _S_e_t_ _R_e_a_d_ _B_u_f_f_e_r_ 3.3.5
           
          FORMAT: 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Function: 
          Loads a new buffer description to the specified subdevice and
          sets RR in TX-state. 
           
          Low level is interrupted after each word in the command. 
          Afterwards scanning is resumed. 
           \f

         3_._3_._6_ _ _ _ _ _W_r_i_t_e_ _B_u_f_f_e_r_ 3.3.6
           
          FORMAT: 
           
           
           
           
           
           
           
           
           
           
           
           
           
          Function: 
          TX-State is set according to bit 0-7 in command. 
          Scanning is suspended (if not already stopped). 
           
          The contents of the buffer is immediately transmitted. 
          When completed or if anything goes wrong an interrupt will be set
          at the high level. 
           
          Scanning is then resumed from where it was suspended (if not
          stopped). 
           
           \f

         3_._3_._7_ _ _ _ _ _S_e_c_o_n_d_a_r_y_ _W_r_i_t_e_ 3.3.7
           
          FORMAT: 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Function: 
          A frame is immediately sent with subdevice number as address and
          TX-state from the specified subdevice. The I-field will contain
          the TX-buffer data if any. When the closing flag has been sent
          the carrier will be removed. High level is not interrupted. 
           
          Bit 0-7 of the command word are transmitted directly as C-field. 
           \f

         3_._3_._8_ _ _ _ _ _S_e_c_o_n_d_a_r_y_ _R_e_a_d_ 3.3.8
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Function: 
          Sets a Read buffer at the specified subdevice description and
          immediately starts searching for a valid frame. 
          If device No <_ 7 then only a frame with this address will be
          read. 
          If bit 12-15 = 1,0,0,0 then any valid frame will be read. 
          High level will be interrupted when a valid frame has been
          received. 
          RX - change is always set. 
          Writing a new command at the Low Level will abort the read
          operation if the controller has not detected the start of a
          frame. 
           \f

         3_._3_._9_ _ _ _ _ _R_e_a_d_ _C_o_n_t_r_o_l_l_e_r_ _R_e_g_i_s_t_e_r_ 3.3.9
           
                0_ _ _ _2_ _ _ _ _ _ _ _ _ _ _ _7_ _8_ _ _ _ _1_1_ _ _ _ _ _ _1_5_ 
          WCC   X_ _X_ _ _R_e_g_i_s_t_e_r_ _N_O_ _ _0_ _1_ _0_ _0_ _X_ _X_ _X_ _X_ 
           
          RWC        Register Contents. 
           
          Function:  The Controller transfers the contents of the specified
          internal register to the Low Level Read data register and then
          sets the Low level interrupt. 
           
           
3_._3_._1_0_ _ _ _ _C_o_n_t_r_o_l_l_e_r_ _R_e_s_e_t_ 3.3.10
                    
          FORMAT: 
           
           
           
           
          Function: 
          The controller is reset as after power up. 
          Scan is started but all devices are inactive. 
          All subdevice registers are zeroed and the internal variables
          reinitialized. When completed low level is interrupted. 
           
           \f

         3_._4_ _ _ _ _ _ _ _H_i_g_h_ _L_e_v_e_l_ _S_t_a_t_u_s_/_E_v_e_n_t_s_ 3.4
           
          As long as high level is set by an interrupt from the controller
          the read status register contains information on the reason for
          interrupt. 
           
          Interrupts are caused by errors or events that cannot be handled
          by the controller itself. 
           
          The status register has the following layout: 
           
           
           
           
           
          Bit 0-4:  Rx-state (c-field) of the last error free frame
                    received. 
          Bit 5  :  Rx-state change. Set by a 0 to 1 transition of RRDdTUu
M_m_m_                    or SR . 
P_p_p_                         T 
          Bit 6   : Rx-Data. Set when a frame with a non empty I-field is
                    received, and Rx-buffer contains data. 
          Bit 7   : Tx-Data. Set when Tx-buffer has been (or should have
                    been) transmitted, indicates completion of a write
                    buffer or secondary write command. 
          Bit 8-11: Error/Event - code. 
           
           \f

                   CODE        DESCRIPTION 
          (DECIMAL) 
           
               0      No error, one of the bits 5 to 7 must indicate the
                      cause of interrupt. 
               1      An "Answer Reset" C-field was received. 
               2      A "Reset" C-field was received. 
                       
               4      Illegal command was presented at the low level. The
                      command word can be read from low level Read Word
                      register if a new command has not already been
                      received. 
           
          *)   8      Timeout. Subdevice did not answer within the time set
                      by the timeout variable. 
                       
          *)   9      Frame error. A CRC check error or an abort was
                      detected. 
                       
          *)  10      Hardware Underrun. Controller was unable to get bus
                      access and read data in time for transmission. 
                       
          *)  11      Hardware Overrun. Like error 10 except when
                      receiving. 
                       
          *) Error 8 to 11 will not be issued until the controller has at-
             tempted to repeat the poll - response exchange and exhausted
             the retry counter. If retry ' 0 then only the last error type
             will be indicated. 
              
          12          No Receive buffer. Data was received but not stored. 
                       
          13          Receive buffer overrun. The received I-field con-
                      tained more data than receive buffer size allowed. 
                       
M_M_m_          14          Sequence number error. Received SN  was different
P_P_p_                                                        T 
                      from transmitted SN . 
           \f

          15          Hard error. Controller was unable to get access to
                      the line for transmission within 1 second, i.e. a
                      carrier signal was detected during 1 second. 
                       
          Bit 12-15:  Interrupting subdevice. 
                      This subdevice is inactivated (A = 0) by the
                      interrupt. \f

                    
           \f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
                   1.  INTRODUCTION ...........................................   1 
           
          2.  COMPONENTS OF THE CONSOLE DRIVER .......................   2 
              2.1  Display Buffer ....................................   2 
              2.2  Display Position (DP) .............................   2 
              2.3  Cursor Mode .......................................   2 
              2.4  Last Key ..........................................   3 
              2.5  Input-conversion Table ............................   3 
              2.6  Output-conversion Table ...........................   3 
           
          3.  FUNCTIONS SUPPORTED BY THE DRIVER ......................   4 
              3.1  Input Line ........................................   4 
              3.2  Input Field .......................................   5 
              3.3  Input Character ...................................   8 
              3.4  Output ............................................   8 
              3.5  Input/Output Display Buffer .......................   9 
              3.6  Input/Output Display Buffer - No Conversion .......   9 
              3.7  Set/Read Display Position (DP) ....................   9 
              3.8  Set Cursor Mode ...................................  10 
              3.9  Sense Keyboard ....................................  10 
              3.10 Attention Request .................................  10 
              3.11 Provoke Attention .................................  11 
              3.12 Set input Conversion ..............................  11 
              3.13 Set Output Conversion .............................  11 
           
          4.  THE OUTPUT CHARACTER SET ...............................  12 
              4.1  Control Characters ................................  12 
              4.2  Field Attribute Characters ........................  15 
                   4.2.1  Field Attribute Character Format ...........  16 
              4.3  Displayable Characters ............................  16 
           
          5.  CONVERSION TABLES ......................................  20 
              5.1  Reverse Output Conversion .........................  21 
           
          6.  INITIALIZATION OF DRIVER ...............................  22 
           \f

                                        ii 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _(_c_o_n_t_i_n_u_e_d_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
                   7.  DRIVER INTERFACE .......................................  23 
              7.1  Input Line ........................................  24 
              7.2  Input Field .......................................  24 
              7.3  Input Character ...................................  24 
                       7.4  Output ............................................  24 
              7.5  Input Display Buffer ..............................  24 
                  7.6  Output Display Buffer .............................  25 
              7.7  Input Display Buffer - No Conversion ..............  25 
              7.8  Read Display Position .............................  25 
              7.9  Read Display Position .............................  25 
              7.10 Set Display Position ..............................  25 
              7.11 Set Cursor Mode ...................................  26 
              7.12 Sense Keyboard ....................................  26 
              7.13 Attention Request .................................  26 
                 7.14 Provoke Attention .................................  26 
              7.15 Set Input Conversion ..............................  26 
7.16 Set Output Conversion .............................  27 
 
          8.  DECLARATION OF CONSOLE DRIVER PROCESS ..................  28 
 
 
          A_P_P_E_N_D_I_C_E_S_:
 
          A.  REFERENCES .............................................  29 
 
          B.  INITIALIZATION OF ASSOCIATED DEVICE CONTROLLER .........  30 
              B.1  CRT Controller ....................................  30 
              B.2  Parallel I/O (PTO) Interface Controller ...........  31 
              B.3  Direct Memory Access (DMA) Controller .............  31 
               \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_         1.
           
          The Console Driver will operate the RC721 Keyboard and RC752
          CRT-Display.  
           
          The driver is implemented in Z80 assembly code, to run on the
          PI-1 Machine 1. The implementation adheres to the driver
          conventions defined by 2. 
           
          The driver can be used immediately by a single process. If
          several processes wish to communicate with the console, a
          scheduling process should probably be inserted in front of the
          Console Driver, administering the queue of input and/or output
          requests. 
           
           \f

F_       2_._ _ _ _ _ _ _ _ _C_O_M_P_O_N_E_N_T_S_ _O_F_ _T_H_E_ _C_O_N_S_O_L_E_ _D_R_I_V_E_R_         2.
           
          The Console Driver contains the following central data
          structures, which may be accessed and/or manipulated by request
          messages to the driver: 
           
               - Display Buffer 
               - Cursor Position (CP) 
               - Cursor Mode 
               - Last Key 
               - Input-conversion Table 
               - Output-conversion Table 
           
           
2_._1_ _ _ _ _ _ _ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_ 2.1
           
          This buffer holds the picture shown on the CRT. The picture
          contains 25 x 80 = 2000 characters/bytes. 
           
           
2_._2_ _ _ _ _ _ _ _D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _(_D_P_)_ 2.2
           
          The DP contains the line and column number of the location in
          which the next displayable character is placed. During input, the
          cursor is displayed at the DP. 
           
           
         2_._3_ _ _ _ _ _ _ _C_u_r_s_o_r_ _M_o_d_e_         2.3
           
          The Cursor Mode defines the appearance of the cursor on the
          display as: 
           
               1: a blinking underline 
               2: a blinking reverse video block 
               3: a non-blinking underline 
               4: a non-blinking reverse video block. 
           
          The cursor is displayed only during input mode. 
           
           \f

2_._4_ _ _ _ _ _ _ _L_a_s_t_ _K_e_y_ 2.4
           
          The Last Key contains the value of the last typed character from
          the keyboard, regardless of whether the console performs input or
          output. 
           
                    
2_._5_ _ _ _ _ _ _ _I_n_p_u_t_-_c_o_n_v_e_r_s_i_o_n_ _T_a_b_l_e_ 2.5
           
          The Input-conversion Table is used for converting character
          values delivered by the keyboard hardware into "internal"
          character values. 
           
          The use of an Input-conversion Table is optional. No core storage
          is allocated if no table is used. 
           
           
2_._6_ _ _ _ _ _ _ _O_u_t_p_u_t_-_c_o_n_v_e_r_s_i_o_n_ _T_a_b_l_e_ 2.6
           
          The Output-conversion Table is used to convert "internal"
          character values before placing them in the Display Buffer. 
           
          The use of an Output-conversion Table is optional. No core
          storage is allocated if no table is used. 
           
                \f

F_       3_._ _ _ _ _ _ _ _ _F_U_N_C_T_I_O_N_S_ _S_U_P_P_O_R_T_E_D_ _B_Y_ _T_H_E_ _D_R_I_V_E_R_         3.
           
          The Console Driver performs the following functions: 
           
                      - Input Line 
                      - Input Field 
               - Input Character 
               - Output 
               - Input or Output Display Buffer 
               - Input or Output Display Buffer - no conversion 
                      - Set or Read Display Position (DP) 
               - Set Cursor Mode 
               - Sense Keyboard 
               - Attention Request. 
               - Provoke Attention 
           
           
    3_._1_ _ _ _ _ _ _ _I_n_p_u_t_ _L_i_n_e_                                                          3.1
           
          An application may request one line of input (80 characters) by
          sending an Input Line message to the Console Driver.  
           
          During "lineinput" characters typed on the keyboard are echoed on
          the display. The cursor is displayed at the DP. 
           
          Lineinput is terminated when: 
                  
          (1) the ENTER key is pressed (normal termination), 
                 (2) the ESC key is pressed (attention). 
           
          Data for the input message buffer is taken from that line of the  
   display which the cursor currently points out. The characters
          thus retrieved are converted ("reverse" output-conversion, cf.
section 5.1) before they are placed in the message buffer. 
    
          The following control characters have special effects during\f

          lineinput (the ISO-value of the character is stated in
          parentheses): 
           
                   CR (13)           E_n_t_e_r_. Terminates input. The input message
                            buffer is returned to the requesting appli-
                            cation with the contents of the line currently
                            pointed out by the cursor. CR is not echoed. 
                 
          ESC (27)          E_s_c_a_p_e_. If an "attention request" message is
                            available at the console driver this message
                            will be returned to the requesting application.
                            Furthermore the input will be terminated and
                            the input message returned empty to the sender
                            with an attention status. 
           
          RUBOUT (127)      R_u_b_o_u_t_. The DP is moved one position to the 
                            left (if possible), and a space is inserted in
                                     the character position pointed out. A RUBOUT-
                            character has no effect if the DP is located at
                            the leftmost position of the display. 
 
          All other characters are echoed as described in chapter 4. 
           
           
         3_._2_ _ _ _ _ _ _ _I_n_p_u_t_ _F_i_e_l_d_ 3.2
           
          An application may input a specified field of the display by
          sending an Input Field message to the Console Driver. 
           
          When processing such a request, the display should be regarded as
          one continuous line of 2000 characters (starting at the upper
          left corner of the display, and ending at the lower right). 
           
          A field consists of a part of this 2000 character line. The field
          start is defined by the current DP (at the time of reception of
          the request). The field length is defined in the request.  
           
          The maximum field length is 80 characters. Consequently, a field
          may very well exceed the physical end of a display line and
          continue at the start of the next display line. 
           \f

          The data area of a received Input Field request buffer defines
          the length of the input field. The first action of the driver is
          to output this data area on the display (without affecting the
          DP). The data area may be filled with prompt characters (or
          whatever).  
           
          Now the user may edit the content of the input field by
          overwriting with new characters. It is not possible to type any
          character outside the input field. This means that whenever it is
          attempted to move the cursor outside the input field, the DP will
          not be moved (but a "bell"-character is output). There is one
          exception to this rule: if the cursor is positioned at the end of
          the input field and a character is typed, then a BEL-character is
          output and the cursor is moved one position to the right (i.e. to
          the position immediately following the input field). The
          character in this position remains unaffected. In this situation
          all keys but  RUBOUT ,  <-  or  ENTER  (ISO-values 127, 8 and 13
          respectively) are echoed by a BEL-character. 
           
                   The Input Field request is terminated when: 
           
                  (1) the ENTER key is pressed (normal termination) 
                  (2) the ESC key is pressed (attention) 
           
          At termination the data area of the Input Field request is filled
          with the current characters of the input field of the display
          (possibly after "reverse" output-conversion cf. section 5.1). 
           
          The following control characters have special effects during
          processing of an Input Field request (the ISO-value of the
          character is stated in parentheses): 
           
                    N_o_t_e_: The input field should always be regarded as one
                    unbroken sequence of characters, no matter if it spans
                    part of two physical display lines. 
                     
          ENQ(5)    D_e_l_e_t_e_ _i_n_ _l_i_n_e_. The character pointed out by the DP is
                    deleted and all characters in the input field "to the
                    right" of this position are moved one position "to the\f

                    left" (so that the gap is filled up) and a space is
                    inserted in the last position of the field. 
                     
          BS(8)     D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _l_e_f_t_. The DP is moved one position "to
                    the left". If the DP is located at the first position
                    of the input field, a BS-character will simply be
                    echoed as a BEL-character. 
                     
                   HT(9)     I_n_s_e_r_t_ _i_n_ _l_i_n_e_. All characters of the input field to
                    the right of the DP, including the character pointed
                    out by the DP, are moved one position "to the right". A
                    space is inserted at the empty position. The character
                    in the last position of the field is lost. 
                     
          CR(13)    E_n_t_e_r_. Terminates input. The input message buffer is
                    returned to the requesting application with the current
                    contents of the input field. CR is not echoed.  
                     
          CAN(24)   D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _r_i_g_h_t_. The DP is moved one position
                    "to the right". If the DP is located at the last
                    position of the input field, a CAN-character will
                    simply be echoed as a BEL-character. 
                     
          ESC(27)   E_s_c_a_p_e_. If an "attention request" message is available
                    at the console driver this message will be returned to
                    the requesting application. Furthermore the input will
                    be terminated and the input message returned empty to
                    the sender with an attention status. 
                     
          RUBOUT(127) R_u_b_o_u_t_. The DP is moved one position "to the left"
                    and a space is inserted in the character position
                    pointed out. A RUBOUT-character has no effect (but echo
                    of a BEL-character) if the DP is located at the first
                    position of the input field.  
                     
          All other control characters are regarded as illegal during an
          Input Field request and are consequently echoed as a
          BEL-character.  
           
          Displayable characters are echoed as described in chapter 4.  
           
           \f

3_._3_ _ _ _ _ _ _ _I_n_p_u_t_ _C_h_a_r_a_c_t_e_r_                                                     3.3
           
          An Input Character message simply returns the next (converted)
          character typed on the keyboard. The character is n_o_t_ echoed. The
          cursor is displayed at the DP. 
           
           
3_._4_ _ _ _ _ _ _ _O_u_t_p_u_t_                                                           3.4
           
          An application may display a buffer of data by sending an
          "output" message to the Console Driver. The buffer may contain
          control characters. 
           
          Immediately before the characters are put in the Display Buffer
          they will be converted, according to the Output-conversion Table
          (cf. chapter 5). 
           
                   The cursor is not displayed during output. 
           
                   The following character has special effect during output (the
          decimal ISO-value of the character is stated in parentheses):  
           
          LF (10)               N_e_w_ _L_i_n_e_. The DP is moved to the leftmost
                                position of the line below the current
                                (possibly involving a "roll" of the
                                Display).  
                                 
          All other characters are treated as described in chapter 4. 
           
          The output is terminated immediately if an "attention" occurs
          (that is: if the ESC key is pressed). If an Attention Request
          message is available at the Console Driver, this message will be
          returned to the requesting application. The output message will
          be returned with an attention status, and the number of output
          characters defined.  
           
           \f

         3_._5_ _ _ _ _ _ _ _I_n_p_u_t_/_O_u_t_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_                                         3.5
           
          The whole display buffer may be read or written in a single
          operation. 
           
          A message containing a buffer of (exactly) 2000 characters may be
          sent to the console driver. Depending upon the function
          specification of the message, the whole buffer will be copied
          into the display buffer (after output-conversion), or
          alternatively, the display buffer copied into the message (after
          reverse output-conversion). 
           
          DP remains unchanged. 
           
          A field of characters (cf. section 4.2) is designated by a field
          attribute character before the field. The coding of this
          character is as described in section 4.2.1. 
           
           
         3_._6_ _ _ _ _ _ _ _I_n_p_u_t_/_O_u_t_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_ _-_ _N_o_ _C_o_n_v_e_r_s_i_o_n_    3.6
           
          These functions have the same effects as the functions of the
          previous section, Input Display Buffer and Output Display Buffer,
          but for one thing: no conversion is performed. That is: Input
          Display Buffer - No Conversion and Output Display Buffer - No
          Conversion retrieves, respectively updates, the whole of the
          Display Buffer as it is, without any output-conversion or reverse
          output-conversion.  
           
          Tables 4.1 and 4.2 show the character values of the unconverted
          (Danish ASCII) character set. 
           
           
3_._7_ _ _ _ _ _ _ _S_e_t_/_R_e_a_d_ _D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _(_D_P_)_    3.7
           
          The DP may be changed or read by means of a message to the
          console driver. Note that the DP may be changed by means of
          control characters during ordinary output, too (cf. section 4.1).
           
           \f

3_._8_ _ _ _ _ _ _ _S_e_t_ _C_u_r_s_o_r_ _M_o_d_e_    3.8
           
          The Cursor Mode -- as described in section 2.4 -- may be changed
          by means of a message to the console driver. 
           
          The display will otherwise remain unchanged. 
           
                   N_o_t_e_: The screen-image may be unstable for a short period of time
                (1-2 seconds), after a Set Cursor Mode message has been
                processed by the console driver. 
           
           
3_._9_ _ _ _ _ _ _ _S_e_n_s_e_ _K_e_y_b_o_a_r_d_ 3.9
           
          A Sense Keyboard message is always returned immediately to the
          sender, containing the last typed character on the keyboard,
          (after conversion). Please notice that processing of this type of
          message never involves waiting. Thus, an application may "access"
          the keyboard, even during a stream of output messages. 
               
          The read-operation of a Sense Keyboard message is "destructive",
          that is: If no character has been typed at the keyboard between
          two subsequent calls of Sense Keyboard, the last call will be
          returned empty (i.e. with a NUL-character and a "rejected"
          status). This ensures that a given character will be read only
          once (at most).  
           
          A Sense Keyboard message does not affect the status-variables of
          the console driver.  
           
           
3_._1_0_ _ _ _ _ _ _A_t_t_e_n_t_i_o_n_ _R_e_q_u_e_s_t_                                                   3.10
           
          An Attention Request message is returned to the sender when an
          attention occurs, that is: when the ESC-key is pressed. 
           
          There is one exception: an attention does not affect the
          Attention Request message during processing of an Input Character
          message. The ESC-character is simply returned normally in the
          Input Character message. 
           \f

          At most one Attention Request at a time, may be pending at the
          console driver. If an additional Attention Request is sent to the
          console driver it will be returned with a "rejected" status. 
           
           
         3_._1_1_ _ _ _ _ _ _P_r_o_v_o_k_e_ _A_t_t_e_n_t_i_o_n_    3.11
           
          An operator generated attention (hitting the ESC-key of the key-
          board) may be simulated by sending a Provoke Attention message to
          the driver. 
           
           
3_._1_2_ _ _ _ _ _ _S_e_t_ _I_n_p_u_t_ _C_o_n_v_e_r_s_i_o_n_ 3.12
           
          An input-conversion table (cf. chapter 5) may be attached to the
          driver by sending a Set Input Conversion message to it. The data
          buffer of the message must contain the conversion table (the
          exact format is described in section 7.14). 
           
           
3_._1_3_ _ _ _ _ _ _S_e_t_ _O_u_t_p_u_t_ _C_o_n_v_e_r_s_i_o_n_ 3.13
           
          An output-conversion table (cf. chapter 5) may be attached to the
          driver by sending a Set Output Conversion message to it. The data
          buffer of the message must contain the conversion table (the
          exact format is described in section 7.15). 
           
           \f

F_       4_._ _ _ _ _ _ _ _ _T_H_E_ _O_U_T_P_U_T_ _C_H_A_R_A_C_T_E_R_ _S_E_T_    4.
           
          Characters may be output either by an explicit output message, or
          by echoing of input characters. This chapter defines the effects
          of different characters, when output. The definition adheres to
          the standards of the RC822 Display Terminal 3 whenever
          possible. 
           
          Characters with ISO value in the range 0 to 31 are considered
          c_o_n_t_r_o_l_ _c_h_a_r_a_c_t_e_r_s_. Some of these control characters cause a
          change of status in the console driver (moving of DP, deleting or
          inserting, etc.). Control characters are not displayed as single
          visible characters. 
           
          Characters which may be included in the Display Buffer are
          d_i_s_p_l_a_y_a_b_l_e_ _c_h_a_r_a_c_t_e_r_s_. Each displayable character occupies a
          single display position. 
           
          A f_i_e_l_d_ _a_t_t_r_i_b_u_t_e_ _c_h_a_r_a_c_t_e_r_ is not a control character, because
          it does occupy one display position. Field attribute characters
          are, however, not visual characters either (they are displayed as
          blanks): they affect the visual characteristics of the following
          characters. 
           
          Notice that both input- as well as output-conversion may take
          place, cf. chapter 5. 
           
           
4_._1_ _ _ _ _ _ _ _C_o_n_t_r_o_l_ _C_h_a_r_a_c_t_e_r_s_ 4.1
           
          Characters with value in the range 0 to 31 are by definition
          control characters. 
           
          Control characters do not occupy any display buffer positions;
          their functions are restricted to display buffer r_e_o_r_g_a_n_i_z_a_t_i_o_n_.
          This means that these characters are not included in an Input
          Line message buffer. 
           \f

          Some control characters may cause a single "roll" of the display.
          A "roll" means that all characters are moved one line up. The
          characters of the uppermost line are lost. The bottom line is
          filled with spaces. 
           
          The following control characters have special effects:  
           
          ENQ (5)           D_e_l_e_t_e_ _i_n_ _l_i_n_e_. The character pointed out by
                            the DP is deleted and all characters to the
                            right of this position on the line are moved
                            one position to the left (so that the gap is
                            filled up) and a space is inserted in the last
                            position of the line. 
                            (Not RC822 compatible). 
                             
          ACK (6)           C_h_a_n_g_e_ _D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_. This character -- to-
                            gether with the two characters immediately fol-
                            lowing it -- changes the DP arbitrarily. The
                                     two characters following the ACK-characters
                            determine the column and line position (respec-
                            tively) of the new DP, according to following: 
                             
                            x = first ISO value, 
                            y = second ISO value. 
                             
                            column = i_f_ 95 < x a_n_d_ x < 128 t_h_e_n_ 
                                         x - 95 
                                     e_l_s_e_ i_f_ 63 < x t_h_e_n_ 
                                             x - 31 
                                          e_l_s_e_ i_f_ 31 < x a_n_d_ x < 48 t_h_e_n_ 
                                                   x + 33. 
                                               e_l_s_e_ 1. 
                             
                            line = i_f_ 95 < y a_n_d_ y < 121 t_h_e_n_ 
                                       y - 95 
                                   e_l_s_e_ 1 
                             \f

                            No actual display buffer position is occupied
                            by any of the three characters in a "Change DP"
                            sequence. 
                             
              BEL (7)           B_e_l_l_. Activates an audible signal. 
                             
          BS (8)            D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _l_e_f_t_. The DP is moved one po-
                            sition to the left. If the DP is located at the
                            leftmost position of the display, a BS-charac-
                            ter will move it to the rightmost position of
                            the previous line. A BS-character has no effect
                            if the DP is located at the leftmost position
                            of the uppermost line. 
                             
              HT (9)            I_n_s_e_r_t_ _i_n_ _l_i_n_e_. All characters to the right of
                            the DP, including the character pointed out by
                            the DP, are moved one position to the right,
                            and a space is inserted at the empty position.
                            The character in the rightmost position of the
                            line will be lost. 
                            (Not RC822 compatible). 
                             
              LF (10)           L_i_n_e_ _f_e_e_d_. Moves the DP one line down. If the
                            DP is at the bottom line of the display, a LF-
                            character will cause a single "roll" of the
                            display. 
                             
              FF (12)           C_l_e_a_r_. Moves the DP to the leftmost position of
                            the uppermost line and replaces all characters
                            of the Display by spaces. 
           
          CR (13)           C_a_r_r_i_a_g_e_ _r_e_t_u_r_n_. Moves the DP to the leftmost
                            position of the current line. 
                             
                   CAN (24)          D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _r_i_g_h_t_. The DP is moved one position
                            to the right. If the DP is located at the righ-
                            tmost position of the display, a CAN-character
                            will move it to the leftmost position of the
                            line below. A CAN-character has no effect if DP\f

                            is located at the rightmost position of the
                            bottom line of the display. 
               
          SUB (26)          D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ _u_p_. The DP is moved one line
                            up. A SUB-character has no effect if the DP is
                            located at the uppermost line of the display.
           
          GS (29)           H_o_m_e_. The DP is moved to the leftmost position
                            of the uppermost line. 
                             
              RS (30)           D_e_l_e_t_e_ _t_o_ _e_n_d_ _o_f_ _l_i_n_e_. All characters to the
                            right of the DP, including the character
                            pointed out by the DP, are replaced by spaces. 
                             
          US (31)           D_e_l_e_t_e_ _t_o_ _e_n_d_ _o_f_ _D_i_s_p_l_a_y_. All characters from
                            the DP to the end of the Display, including the
                            character pointed out by the DP, are replaced
                            by spaces.  
                             
           
    4_._2_ _ _ _ _ _ _ _F_i_e_l_d_ _A_t_t_r_i_b_u_t_e_ _C_h_a_r_a_c_t_e_r_s_    4.2
           
          A field attribute character marks the beginning of a field of
          characters. A field of characters may have special visual
          characteristics, such as graphic representation, reverse video,
          blinking or underlining. 
           
          A field consists of all characters between two subsequent field
          attribute characters, i.e. the characters following the field
          attribute character, up to -- and including -- the character
          preceding the next field attribute character. 
           
          A character is recognized as a field attribute character if its
          value lies in the interval from 128 to 191. The exact format is
          shown in the next subsection. 
           
           \f

     4_._2_._1_ _ _ _ _ _F_i_e_l_d_ _A_t_t_r_i_b_u_t_e_ _C_h_a_r_a_c_t_e_r_ _F_o_r_m_a_t_    4.2.1
           
          The attributes are coded by individual bits of the field
          attribute character (bit 0 is the least significant). Bits 6 must
          be cleared and bit 7 must be set to discriminate from non-field
          attribute characters. 
           
               bit 0 = 1:       highlight 
               bit 1 = 1:       blink 
               bit 2 = 1:       semigraphic representations 
               bit 3:           not used 
               bit 4 = 1:       reverse video 
               bit 5 = 1:       underline 
               bit 6 = 0:       m_u_s_t_ be cleared. 
               bit 7 = 1:       m_u_s_t_ be set. 
           
          E_x_a_m_p_l_e_: 
           
          Code = 'R' +128 specifies:
           
               'R' +128 = 10010010 
                                    blinking 
                                    reverse video 
           
           
4_._3_ _ _ _ _ _ _ _D_i_s_p_l_a_y_a_b_l_e_ _C_h_a_r_a_c_t_e_r_s_         4.3
           
          The (unconverted) displayable characters are shown in the tables
          4.1 and 4.2. These are the characters and associated values, as
          defined in the hardware character generator PROM. 
           
          Obviously, tables 4.1 and 4.2 are not valid if an output-conver-
          sion table is attached to the Console Driver. Please refer to the
          specific reference manuals for the relevant conversion tables. 
           
          As seen in the table even the control character values have as-
          sociated displayable images. That is: if the value of a control
          character is put into a position of the display buffer, an actual
          image w_i_l_l_ be shown.  
           \f

          The Console Driver may be forced to output the actual value of a
          control character by adding 192 to the value. Characters in the
          interval 192 to 223 are not skipped: 192 is subtracted and the
          resulting value inserted into the display buffer. 
           
          These remarks are valid for both non-graphic and graphic char-
          acter fields. 
           
           \f

F_                  
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
                   Table 4.1: Alfanumeric characters, Danish ASCII - ROA 327 
                     (no outputconversion). \f

F_                  
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Table 4.2: Semigraphic characters, Danish ASCII - ROA 327 (not
                     outputconversion). \f

F_       5_._ _ _ _ _ _ _ _ _C_O_N_V_E_R_S_I_O_N_ _T_A_B_L_E_S_                                                   5.
           
          In order to support differing nationalities' character sets, the
          console driver may perform input- as well as output-conversion of
          characters. 
           
          Input-conversion is effected i_m_m_e_d_i_a_t_e_l_y_ _a_f_t_e_r_ receiving a char-
          acter typed at the keyboard. It is thus the converted charact
            which may be treated as a possible control character during input
           described in the previous chapters. 
           
                   Output-conversion is effected i_m_m_e_d_i_a_t_e_l_y_ _b_e_f_o_r_e_ placing a char-
          acter in the Display Buffer. It is thus the character value be-
          fore output-conversion, which is regarded as a possible control
          character during output.  
           
             In general, it is the character values after input-conversion, but
              before output-conversion -- the so-called internal values -- which
             the users of the software recognize and manipulate. 
             
          At the present time, conversion tables to support following
          nationalities' character sets, exist: 
           
          - Denmark 
               - Sweden 
          - United Kingdom (UK-ASCII) 
               - United States (US-ASCII) 
               - Germany 
          - France 
      
For details, please refer to seperate reference manuals for these. 
      
          The use of conversion tables is optional -- for input as well as
output. If no conversion table (input or output) is present at the
Console Driver, danish ASCII character set -- as described in
tables 4.1 and 4.2 -- is assumed. 
           \f

          A conversion table is attached to the driver by using the Console
          Driver functions: 
           
          - Set Input Conversion 
          - Set Output Conversion. 
           
           
         5_._1_ _ _ _ _ _ _ _R_e_v_e_r_s_e_ _O_u_t_p_u_t_ _C_o_n_v_e_r_s_i_o_n_ 5.1
           
          The presence of the input functions Input Line and Read Display
          Buffer (cf. section 3.2 and 3.5), gives rise to some special pro-
          blems. 
           
          The Input Line, Input Field and Input Display Buffer functions
          take data from the Display Buffer. The data of the Display Buffer
          has been converted through the output-conversion table (if pre-
          sent). Since the user obviously wants "internal" character values
          in response from the Input Line request, the output-converted
          characters of the Display Buffer must be converted "back". 
           
          Consequently reverse output-conversion must be possible. 
           
          Unambiguous reverse conversion is possible if and only if the
          conversion mapping is b_i_j_e_c_t_i_v_e_, that is: the conversion table
          may map no two character values into identical values. 
           
          When an output-conversion table is received at the Console Dri-
          ver, a "reverse" conversion table is initialized according to the
          following algorithm (in Pascal-like notation): 
           
              (* conv: output-conversion table (0..127)              *) 
          (* reverse: "reverse" output-conversion table (0..127) *) 
             f_o_r_ i : = 0 t_o_ 127 d_o_ 
               reverse( conv(i)) : = i; 
           
               \f

F_       6_._ _ _ _ _ _ _ _ _I_N_I_T_I_A_L_I_Z_A_T_I_O_N_ _O_F_ _D_R_I_V_E_R_         6.
           
          The central datastructures (cf. chapter 2) of the console driver
          are initialized as follows: 
           
          D_i_s_p_l_a_y_ _b_u_f_f_e_r_: 
          Space characters (byte value 32) in all positions. 
           
          D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_: 
          Leftmost position of uppermost line. 
           
          C_u_r_s_o_r_ _m_o_d_e_: 
          Blinking reverse video block (2). 
           
          L_a_s_t_ _k_e_y_: 
          Null character (byte value 0). 
                    
          I_n_p_u_t_-_c_o_n_v_e_r_s_i_o_n_ _T_a_b_l_e_: 
                   Empty (i.e. danish ASCII). 
           
          O_u_t_p_u_t_-_c_o_n_v_e_r_s_i_o_n_ _T_a_b_l_e_: 
          Empty (i.e. danish ASCII). 
           
           \f

F_       7_._ _ _ _ _ _ _ _ _D_R_I_V_E_R_ _I_N_T_E_R_F_A_C_E_    7.
           
          Below are listed the exact formats for function requests and
          answers. 
           
          The formats are in agreement with the conventions for PASCAL80
          drivers 1. 
           
          A message will always be of the following form: 
           
M_                   _ _ _ _ _ _     R_e_q_u_e_s_t_                 A_n_s_w_e_r_ 
           
                   _ _ _ _ _ _ 
          Header   _ _u_1_ _ _     function                (unchanged) 
                   _ _u_2_ _ _     -                       result 
                   _ _u_3_ _ _     (data byte)             (data byte) 
                   _ _u_4_ _ _ 
           
                   _ _ _ _ _ _ 
M_                       0 
          Data               first                   (unchanged) 
P_                     _ _ _1_ _ _ 
M_          buffer     2 
                             last                    (unchanged) 
P_                   _ _ _3_ _ _ 
M_                            4 
                             -                       next 
P_                   _ _ _5_ _ _ 
                  
P_                             i/o data                i/o data 
           
                 Results are coded as follows: 
           
          0: Processed succesfully 
          2: Timeout 
          4: Illegal function, i.e. unintelligible driver message 
          10: Attention 
          14: Rejected 
           
          The data buffer declaration may look like this in PASCAL80:  
                      buffer80-type = RECORD 
                             first, 
                            last, 
                            next: integer; 
                            data: ARRAY (6..data _length+5) OF byte 
                            END 
           
           \f

7_._1_ _ _ _ _ _ _ _I_n_p_u_t_ _L_i_n_e_                                                          7.1
           
          Function: 5 (read + 1 * 4)  
          Possible results: 0, 4, 10 
          Data _length of the data buffer must be equal to 80. 
 
 
7_._2_ _ _ _ _ _ _ _I_n_p_u_t_ _F_i_e_l_d_ 7.2

Function: 37 (read + 9 * 4)  
          Possible results: 0, 4, 10 
          The bytes from first to next are output. 
          Data _length of the data buffer must be equal to 80. 
 
 
7_._3_ _ _ _ _ _ _ _I_n_p_u_t_ _C_h_a_r_a_c_t_e_r_                                                     7.3
           
          Function: 9 (read + 2 * 4)  
          Possible results: 0  
          No data buffer necessary. u3 will hold the character value upon
          return. 
           
           
7_._4_ _ _ _ _ _ _ _O_u_t_p_u_t_                                                              7.4
           
          Function: 2 (write + 0 * 4) 
          Possible results: 0, 4, 10.
          Data _length of the data buffer must be equal to 80. 
          Output is taken from 'data(.first..last.). 
           
           
7_._5_ _ _ _ _ _ _ _I_n_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_    7.5
           
          Function: 13 (read + 3 * 4) 
          Possible results: 0, 4 
          Data _length of the data buffer must be equal to 2000. 
           
           \f

7_._6_ _ _ _ _ _ _ _O_u_t_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_    7.6
           
          Function: 14 (write + 3 * 4) 
          Possible results: 0, 4 
          Data _length of the data buffer must be equal to 2000. 
           
           
7_._7_ _ _ _ _ _ _ _I_n_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_ _-_ _N_o_ _C_o_n_v_e_r_s_i_o_n_    7.7
           
          Function: 29 (read + 7 * 4)   
          Possible results: 0, 4 
          Data _length of the data buffer must be equal to 2000. 
           
           
7_._8_ _ _ _ _ _ _ _O_u_t_p_u_t_ _D_i_s_p_l_a_y_ _B_u_f_f_e_r_ _-_ _N_o_ _C_o_n_v_e_r_s_i_o_n_ 7.8
           
          Function: 30 (write + 7 * 4) 
          Possible results: 0, 4. 
          Data _length of the data buffer must be equal to 2000. 
           
           
7_._9_ _ _ _ _ _ _ _R_e_a_d_ _D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_ 7.9
           
          Function: 17 (read + 4 * 4) 
          Possible results: 0, 4. 
          The data buffer holds the line and column number of the DP (in
          bytes 6 and 7, respectively), upon return. 
           
           
         7_._1_0_ _ _ _ _ _ _S_e_t_ _D_i_s_p_l_a_y_ _P_o_s_i_t_i_o_n_                                                7.10
           
          Function: 18 (write + 4 * 4) 
          Possible results: 0, 4 
          The data buffer should hold the line and column number of the DP
          in bytes 6 and 7, respectively. 
           
           \f

7_._1_1_ _ _ _ _ _ _S_e_t_ _C_u_r_s_o_r_ _M_o_d_e_ 7.11
           
          Function: 0 (control + 0 * 4) 
          Possible results: 0, 4 
          No data buffer is necessary. The cursor mode (cf. section 2.4) is
          held in u3 of the message header. 
           
           
7_._1_2_ _ _ _ _ _ _S_e_n_s_e_ _K_e_y_b_o_a_r_d_ 7.12
           
          Function: 25 (read + 6 * 4) 
          Possible results: 0, 14 
          No data buffer is necessary. u3 will hold the value of Last Key
          upon return. 
           
           
         7_._1_3_ _ _ _ _ _ _A_t_t_e_n_t_i_o_n_ _R_e_q_u_e_s_t_                                                   7.13
           
          Function: 4 (control + 1 * 4) 
          Possible results: 0, 14 
          No data buffer is necessary. 
          Result 14 (rejected) is given if an attention request message is
          already present at the driver. 
           
           
7_._1_4_ _ _ _ _ _ _P_r_o_v_o_k_e_ _A_t_t_e_n_t_i_o_n_ 7.14
           
          Function: 16 (control + 4*4) 
          Possible results: 10 
          No data buffer is necessary. 
           
           
7_._1_5_ _ _ _ _ _ _S_e_t_ _I_n_p_u_t_ _C_o_n_v_e_r_s_i_o_n_ 7.15
           
          Function: 8 (control + 2 * 4) 
          Possible results: 0, 4 
          The data part of the data-buffer must contain a table of 256
          bytes, such that data(i) is equal to the "internal" character
          value associated with the keyboard value i. 
           
           \f

7_._1_6_ _ _ _ _ _ _S_e_t_ _O_u_t_p_u_t_ _C_o_n_v_e_r_s_i_o_n_                                               7.16
           
          Function: 12 (control + 3 * 4) 
          Possible results: 0, 4 
          The data part of the data-buffer must contain a table of 128
          bytes, such that data(i) (i in 0..127) is equal to the value
          which should be output for the "internal" value i. 
           
           \f

F_       8_._ _ _ _ _ _ _ _ _D_E_C_L_A_R_A_T_I_O_N_ _O_F_ _C_O_N_S_O_L_E_ _D_R_I_V_E_R_ _P_R_O_C_E_S_S_                               8.
                    
          The parent of the Console Driver process is a progenitor process,
          created by the Eve process (cf. 7). 
           
          The PASCAL80 process heading of the Console Driver is defined as
          follows: 
           
          PROCESS console-driver (VAR console _sem: semaphore; 
                                  key _int _vector: channel _number; 
                                  keyboard _priority: 1..254) 
           where 
          - console _sem is the request semaphore of the Console Driver, 
           
          - key _int _vector is the interrupt vector of the Keyboard Driver
            (which is a child process of the Console Driver). 
           
          - keyboard _priority is the time-slicing priority for the Keyboard
            Driver. 
           
           \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_                                                          A.
           
          1  RCSL No 31-D615: 
               The PI-1 Maschine, Reference Manual 
           
          2  RCSL No 31-D617: 
               PASCAL80 Driver Conventions 
           
          3  Datamedia Corporation: Datamedia Elite 1521A Video Terminal,
               Operator's Handbook, April 1978 
           
          4  Intel Component Data Catalog, 1979. Santa Clara 1979 
           
          5  Zilog Z80 Component Book, Zilog 1977 
           
          6  Advanced Microdevices: The Designer's Guide '80, 1980 
           
          7  RCSL No 31-D618: 
               PI-1 PASCAL80, Reference Manual 
           
           \f

F_       B_._ _ _ _ _ _ _ _ _I_N_I_T_I_A_L_I_Z_A_T_I_O_N_ _O_F_ _A_S_S_O_C_I_A_T_E_D_ _D_E_V_I_C_E_ _C_O_N_T_R_O_L_L_E_R_S_ B.
           
          The Console Driver initializes following controllers: 
           
          - CRT Controller 
             - one channel of the Parallel I/O (PIO) Interface Controller
               (for the keyboard) 
          - one channel of the Direct memory Access (DMA) Controller. 
           
          The initialization of each of these is shortly described beneath.
           
           
B_._1_ _ _ _ _ _ _ _C_R_T_ _C_o_n_t_r_o_l_l_e_r_ B.1
           
          The Intel8275 Programmable CRT Controller 4 is used. 
           
          The controller is initialized with the following options: 
           
          - normal (non-spaced) rows 
          - 80 horizontal characters per row 
          - 2 row counts per vertical retrace 
          - 25 rows per frame 
          - underline placed in line number 8 
          - 10 lines per character row 
          - non-offset line counter mode 
          - non-transparent field attribute mode 
          - cursor format is optional. Blinking reverse video block is
            default 
          - 28 character counts per horizontal retrace. 
           
          The controller is started with the following options: 
           
          - no character clocks between DMA requests 
          - 8 DMA cycles per burst. 
           
           \f

         B_._2_ _ _ _ _ _ _ _P_a_r_a_l_l_e_l_ _I_/_O_ _(_P_I_O_)_ _I_n_t_e_r_f_a_c_e_ _C_o_n_t_r_o_l_l_e_r_ B.2
           
          The Z80A PIO 5 is used. 
           
          Only one channel (channel a) of the controller's two channels is
          used for keyboard input. 
           
          The mode of this channel is initialized to "input". 
           
           
B_._3_ _ _ _ _ _ _ _D_i_r_e_c_t_ _M_e_m_o_r_y_ _A_c_c_e_s_s_ _(_D_M_A_)_ _C_o_n_t_r_o_l_l_e_r_ B.3
           
          The Am9517 Multimode Direct Memory Access Controller 6 is used.
           
           
          This controller has four individual channels. The Console Driver
          utilizes channel 4 for transfer of the Display Buffer to the
          CRT-controller. 
           
          The following options are output to the Command Register: 
           
          - memory-to-memory disable 
          - master enable 
          - normal timing 
          - fixed priority 
          - extended write selection 
          - DREQ sense active high 
          - DACK sense active low. 
           
          The following options are output to the Mode Register: 
           
          - read transfer 
          - autoinitialize enable 
          - address increment select 
          - single mode select. 
           
          Observe that the DMA-controller is put into autoinitialize mode. This
    means that the address and size of the Display Buffer is output only
    once -- by initialization. Thus, no display interrupt routine is
    needed. 
           \f

F_                  
           \f

                                                 i 
           
          I_N_D_H_O_L_D_S_F_O_R_T_E_G_N_E_L_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_I_D_E_ 
           
          1.  INTRODUKTION ...........................................   1 
           
          2.  PROGRAMSTRUKTUR ........................................   2 
              2.1  Hjælpeprogramsystem ...............................   2 
                  2.2  Hjælpeprogram .....................................   5 
              2.3  Hjælpeprogramfunktion .............................   7 
                   2.3.1  Standard funktionsparametre ................  10 
                   2.3.2  Funktionsafbrydelser og repetition .........  11 
                        
          3.  DISKETTE FUNKTIONSPROGRAM ..............................  12 
              3.1  Formattering ......................................  12 
              3.2  Checklæsning ......................................  13 
              3.3  Kopiering .........................................  15 
                    
          4.  KATALOG FUNKTIONSPROGRAM ...............................  17 
              4.1  Initialisering ....................................  17 
              4.2  Listning ..........................................  19 
           
          B_I_L_A_G_: 
           
          A.  REFERENCER .............................................  21 
           
          B.  SIKKERHEDSKOPIERING ....................................  22 
           
          C.  MAXI-DISKETTE BESKRIVELSE ..............................  27 
           
          D.  MINI-DISKETTE BESKRIVELSE ..............................  29 
           
          E.  KONFIGURERING - STANDARDKONFIGURATION ..................  31 
           
          F.  AUTOLOAD PROCEDURE .....................................  33 
           
          G.  SPECIALTEGN ............................................  34 
           
H.  FEJLSITUATIONER - FEJLKODETABEL ........................  35 \f

                                                 ii 
           
           \f

F_       1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_K_T_I_O_N_    1.
           
                   Hjælpeprogrampakken til RC700 er udviklet til understøttelse af
          COMAL80-systemer og indeholder funktioner til generering af sys-
          tem og katalogdisketter samt systemkonfigurering. 
           
          Konfigurering omhandler valg af konverteringstabel, definition af
          transmissionshastighed (Baud rate) på kommunikationslinien og
          hermed ligestillede funktioner samt fastlæggelse af systemprogram
          (dvs. COMAL80, hjælpeprogramsystem eller andet). 
           
          Systemkonfigurering er omtalt nærmere i bilag E, der endvidere
          beskriver den standardkonfigurering, der anvendes af RC ved di-
          stibution af hjælpeprogrampakken. I COMAL80-systemer anvendes
          samme standardkonfiguration - med undtagelse af systemprogramvalg
          (COMAL80). 
           
          Hjælpeprogrampakken leveres på en hjælpeprogramdiskette, der an-
          vendes som autoload diskette. Autoload proceduren er beskrevet i
          bilag F. 
           
          Det anbefales, at brugeren som det første producerer en sikker-
          hedskopi af distibutionsdisketten. Fremgangsmåden er specielt be-
          skrevet i bilag B, der kan benyttes som et eksempel på anvendelse
          af programfunktionerne. Det tilrådes at anvende samme beskrivelse
          ved generering af nye systemer - såvel COMAL80-systemer som hjæl-
          peprogramsystemer - indtil der opnåes fortrolighed med anvendelse
          af programfunktionerne. 
           
          Hjælpeprogrampakken indeholder ud over hjælpefunktioner til
          COMAL80 også selvstændige programmer - som f.eks. en terminal-
          emulator. Indholdsfortegnelsen kan benyttes som index til funkti-
          onerne. 
           
          N_æ_r_v_æ_r_e_n_d_e_ _u_d_g_a_v_e_ _a_f_ _m_a_n_u_a_l_e_n_ _b_e_s_k_r_i_v_e_r_ _f_ø_r_s_t_e_ _u_d_g_a_v_e_ _a_f_ _s_y_s_t_e_-
          m_e_t_,_ _d_e_r_ _a_l_e_n_e_ _i_n_d_e_h_o_l_d_e_r_ _f_u_n_k_t_i_o_n_e_r_n_e_ _t_i_l_ _d_i_s_k_e_t_t_e_-_ _o_g_ _k_a_t_a_l_o_g_-
          i_n_i_t_i_a_l_i_s_e_r_i_n_g_,_ _l_i_g_e_s_o_m_ _s_y_s_t_e_m_g_e_n_e_r_e_r_i_n_g_ _s_k_a_l_ _u_d_f_ø_r_e_s_ _s_o_m_ _e_n_ _s_i_k_-
          k_e_r_h_e_d_s_k_o_p_i_e_r_i_n_g_,_ _s_e_ _b_i_l_a_g_ _B_._ _U_d_s_k_r_i_v_n_i_n_g_ _a_f_ _'_d_e_f_a_u_l_t_'_-_p_a_r_a_m_e_t_r_e_
          u_n_d_e_r_s_t_ø_t_t_e_s_ _h_e_l_l_e_r_ _i_k_k_e_ _i_ _f_ø_r_s_t_e_ _u_d_g_a_v_e_. 
               
           \f

F_       2_._ _ _ _ _ _ _ _ _P_R_O_G_R_A_M_S_T_R_U_K_T_U_R_ 2.
           
         2_._1_ _ _ _ _ _ _ _H_j_æ_l_p_e_p_r_o_g_r_a_m_s_y_s_t_e_m_ 2.1
           
          Hjælpeprogrampakken er opdelt i en række hjælpeprogrammer, der
          hver især omfatter beslægtede programfunktioner, hvorfor program-
          systemet får den på fig. 1 viste overordnede struktur. 
           
          Der findes for øjeblikket følgende hjælpeprogrammer: 
           
               1) Diskette Maintenance Utility 
               2) Directory Maintenance Utility 
               3) System Maintenance Utility 
               4) System Configuration Utility 
               5) Terminal Emulator Utility 
           
          Efter autoload af hjælpeprogramdisketten, vil skærmbilledet give
          information om de mulige valg af hjælpeprogrammer i form af en
          udskrift - en men - som vist i fig. 2. 
           
          Det ønskede program udvælges ved indtastning af det tilhørende
          nummer i 'Function number'-feltet, dvs. på markørpositionen,
          efterfulgt af et 'return', altså '<-'. 
           
          De enkelte hjælpeprogrammer findes omtalt i de følgende kapitler,
          hvor de tilhørende programfunktioner omtales nærmere. I det føl-
          gende afsnit omtales den generelle struktur på programniveau. I
          bilag G er der angivet en liste over specialtegn, der understøt-
          tes i brugerkommunikationen. 
           
           \f

F_                                      Programsystem 
           
                              _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
                                 Program- 
                                   men 
                              _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           
          Program                                           Program 
           
                                                            _ _ _ _ _ _ _ _ _ _ _ _ 
           
                                                            Funktions- 
                                                            men 
                                                            _ _ _ _ _ _ _ _ _ _ _ _ 
           
           
           
           
                                 Funktion                   Funktion 
           
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
                                 Funktions 
                                  dialog 
                              (parametervalg) 
                             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           
           
           
          Figur 1: Programsystem, overordnet struktur. 
           \f

F_                  
           
           
           
           
           
           
          RC700 UTILITY SYSTEM vers.xx.yy 
          -------------------- 
           
           
           
          Select function: 
           
             1. Diskettes Maintenance Utility 
             2. Directory Maintenance Utility 
             3. End 
           
          Function number: / 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 2: Skærmbillede 
                   Programmen. 
           \f

F_2_._2_ _ _ _ _ _ _ _H_j_æ_l_p_e_p_r_o_g_r_a_m_ 2.2
           
          Efter valg af hjælpeprogram udskrives en funktions-men, hvor de
          enkelte programfunktioner hørende til hjælpeprogrammet listes, se
          eksemplet i fig. 3. Det bemærkes, at der er angivet en speciel
          funktion 'END'. Indtastes det hertil hørende nummer i 'Function
          number'-feltet, efterfulgt af 'return', vil det valgte program
          blive afsluttet, dvs. kontrollen overgives til programsystemet.
          På denne måde kan man aktivere flere hjælpeprogrammer efter hin-
          anden. 
           
          Efter valg af programfunktion, vil der blive udskrevet en række
          forespørgsler, som skal besvares, førend funktionen kan udføres.
          Når funktionen er udført, vil den enkelte programfunktion over-
          give kontrollen til hjælpeprogrammet, hvorefter den tidligere
          listede funktions-men gentages. Samtidig vil funktionsresultatet
          blive anført i kontrolfeltet - det tomme felt i fig. 3. 
           
          Angående parameterdialog henvises til de enkelte beskrivelser for
          en detaljeret gennemgang af de specifikke parametre, hvorimod der
          i det følgende omtales en række generelle problemstillinger angå-
          ende parameterformat, valg af defaultværdier, fejlindtastning,
          funktionsafbrydelse og fejlsituationer, hvorfor der senere vil
          blive henvist hertil. 
           
           \f

F_                  
           
           
           
           
          DISKETTES MAINTENANCE UTILITY vers.xx.yy 
          ----------------------------- 
           
           
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
          Select function: 
           
             1. Diskette Format 
             2. Diskette Verify 
             3. Diskette Copy 
             4. End 
           
          Function number: / 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 3: Skærmbillede. 
                   Eksempel på funktionsmen. Den tomme ramme udfyldes
                   efter funktionskald med information om resultatet. 
                
           \f

F_       2_._3_ _ _ _ _ _ _ _H_j_æ_l_p_e_p_r_o_g_r_a_m_f_u_n_k_t_i_o_n_    2.3
           
          Efter udvælgelse af en programfunktion overgives kontrollen her-
          til, hvorefter funktionsparametrene kan defineres. Dialogen er
          enkel, idet funktionen udskriver en forespørgsel og afventer svar
          herpå i form af en enkelt parameterværdi (en streng eller et hel-
          tal) efterfulgt af 'return'. Herefter udskriver programfunktionen
          næste forespørgsel og afventer svar. Således fortsættes, indtil
          alle parametre er blevet defineret. I fig. 4 er vist et eksempel
          på en sådan parameterdialog. 
           
          De enkelte parametre er tildelt en defaultværdi, der udskrives
          sammen med parameterforespørgslen. Såfremt brugeren nu vælger
          blot at taste 'return', vil den angivne defaultværdi blive an-
          vendt. 
           
          Til de enkelte forespørgsler svarer et værdiområde for parame-
          tren, f.eks. to tegn eller et tcifret heltal, se eksemplet i
          fig. 4. Der er således tilknyttet et inddatafelt til hver para-
          meter. Enhver indtastning, der sker til et område uden for feltet
          afvises, og fejlen indikeres ved et advarselssignal (BELL). Dog
          vil indtastning af 'venstre pil' blive accepteret, således at re-
          digering i en allerede indtastet tekst er tilladt. Det bør bemær-
          kes at brug af markørtegn (venstre pil, højre pil) intet ændrer
          ved feltindholdet. Et indtastet tegn slettes således ved markør-
          positionering og efterfølgende indtastning af et nyt tegn, se
          iøvrigt bilag G. 
           
          Inddatafelterne er i denne beskrivelse markeret efter anvendelse
          således: 
           
               aa..     : små bogstaver forventes. 
               AaAa..   : tegnfølgen defineres frit af brugeren. 
               xx../yy..: et heltal forventes. 
               
          Herudover er der i fig. 4 markeret en række tomme felter. Det
          første angiver markørposition, når funktionen er i udførelsesfa-
          sen. De to næste felter indeholder navnet på hjælpeprogrammet.  \f

          Det næstsidste felt benyttes til fejlstatus. Det angivne fejlnum-
          mer benyttes som index i fejlkodetabellen i bilag H. 
           
          Det sidste felt benyttes som parameterfelt i forbindelse med
          fejl. Her kan angives om operationen ønskes gentaget eller om
          funktionen ønskes afbrudt, se iøvrigt underafsnit 2.3.2. 
           
          De her beskrevne felter er for overskuelighedens skyld udeladt i
          de enkelte figurer. 
           
           \f

F_                 / 
           
          DISKETTES MAINTENANCE UTILITY vers.xx.yy 
          ----------------------------- 
                                        
                                        
                                        
           
          Function: Diskette Format 
           
           
          Mini/maxi (mi/ma):             aa 
          Drive number (1..2):           x 
          Single/double density (sd/dd): aa 
          Single/double sided (ss/ds):   aa 
          Sectorlength (128/256/512):    xxx 
           
           
           
           
           
           
           
           
           
          Insert diskette, type 'return': 
           
          Format active on cylinder xxx 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           
           
           
          Figur 4: Skærmbillede. 
                   Eksempel på funktionsdialog. I fejlsituationer udfyldes
                   de tomme rammer med fejlstatusinformation. 
               
           \f

F_       2_._3_._1_ _ _ _ _ _S_t_a_n_d_a_r_d_ _f_u_n_k_t_i_o_n_s_p_a_r_a_m_e_t_r_e_    2.3.1
           
          Som antydet i de forrige afsnit følger der med gennemgangen af
          den enkelte programfunktion en detaljeret beskrivelse af det mu-
          lige parametersæt. 
           
          Imidlertid indeholder de enkelte funktioner en række fælles para-
          metre, som f.eks. angivelse af en diskettestations nummer. Disse
          fælles funktionsparametre er beskrevet i dette underafsnit. Her-
          udover findes en enkelt fælles forespørgsel 'Function number',
          som udskrives på henholdsvis system- og programniveau. Endelig
          indeholder systemet en række kommandolinier, som anvendes ved
          programkontrol af disketteskift. Disse er medtaget nedenfor. 
           
          I_n_s_e_r_t_ _d_i_s_k_e_t_t_e_,_ _t_y_p_e_ _'_r_e_t_u_r_n_'_: 
            Generelt skal brugeren sikre sig, at en passende diskette nu
            sættes i den eller de valgte diskettestation(er). Såfremt den
            ønskede diskette allerede sidder i, tastes blot 'return'. 
             
            Et specialtilfælde optræder ved kopiering fra en diskette til
            en anden i et enkeltdrive system. Man må her skifte diskette
            under programkontrol, dvs. 'Insert source ...' henholdsvis
            'Insert destination ...' kommandoerne aktiveres. 
             
          I_n_s_e_r_t_ _s_o_u_r_c_e_ _d_i_s_k_e_t_t_e_,_ _t_y_p_e_ _'_r_e_t_u_r_n_'_: 
            Source diskette: den diskette, hvorfra data hentes. 
            Kommentar, se ovenfor. 
             
          I_n_s_e_r_t_ _d_e_s_t_i_n_a_t_i_o_n_ _d_i_s_k_e_t_t_e_,_ _t_y_p_e_ _'_r_e_t_u_r_n_'_: 
            Destination diskette: den diskette, hvortil data skrives. 
            Kommentar, se ovenfor. 
             
          M_i_n_i_/_m_a_x_i_ _(_m_i_/_m_a_)_: 
            Den angivne tekst 'mi' eller 'ma' definerer, hvorvidt den på-
            gældende installation er et MINI- eller MAXI-system. 
             
          S_e_l_e_c_t_ _d_r_i_v_e_ _n_u_m_b_e_r_ _(_1_._._2_)_: 
            Det angivne nummer referer direkte til diskettestationens num-
            merangivelse. Tilladte værdier er 1 og 2. Defaultværdien er 1. 
               \f

          S_o_u_r_c_e_ _d_r_i_v_e_ _n_u_m_b_e_r_ _(_1_._._2_)_: 
            Kommentar som ovenfor. Default-værdien er 1. 
             
          D_e_s_t_i_n_a_t_i_o_n_ _d_r_i_v_e_ _n_u_m_b_e_r_ _(_1_._._2_)_: 
            Kommentar som ovenfor. Defaultværdien er 2. Generelt anføres at
            valg af 'source'='destination' medfører, at programfunktionen
            efter hver transport beder brugeren om et disketteskift. 
             
             
2_._3_._2_ _ _ _ _ _F_u_n_k_t_i_o_n_s_a_f_b_r_y_d_e_l_s_e_r_ _o_g_ _r_e_p_e_t_i_t_i_o_n_  2.3.2
           
          Såfremt der indtastes en uønsket parameterværdi, eller såfremt
          funktionskaldet af andre årsager ønskes afsluttet, benyttes
          'escape'-tasten. Den igangværende parameterforespørgsel afbrydes
          og kontrol overgives til hjælpeprogrammet. 
           
          En afbrydelse under funktionsudførelse er ikke tilladt. Såfremt
          der under afvikling af funktionen optræder fejl på de ydre enhe-
          der (f.eks. diskettestation offline, diskette skrivebeskyttet),
          eller der på anden vis optræder systemfejl, vil udførelsen blive
          afbrudt, og en fejlmeddelelse udskrives sammen med en forespørg-
          sel, om funktionen ønskes genoptaget. I fig. 5 er vist et eksem-
          pel på en fejlsituation. Såfremt man vælger at stoppe afvikling-
          en, overgives kontrollen til hjælpeprogrammet. 
           
          I de enkelte drivprogrammoduler til de ydre enheder (f.eks. di-
          skettedrivprogrammet) findes indbygget automatiske repetitions-
             mekanismer for fejl af temporær art. 
           
           
           
          Bad cylinder number: xxx 
          ERROR yyy 
          Repeat (y/n): / 
           
           
           
          Figur 5: Eksempel på funktionsfejldialog. 
           \f

F_3_._ _ _ _ _ _ _ _ _D_I_S_K_E_T_T_E_ _F_U_N_K_T_I_O_N_S_P_R_O_G_R_A_M_    3.
           
          De nødvendige funktioner til formattering, checklæsning og kopi-
          ering af disketter er indeholdt i dette program og gennemgåes i
          de følgende afsnit. De understøttede funktioner er listet i fig.
          6. 
           
           
           
          DISKETTES MAINTENANCE UTILITY vers.xx.yy 
          ----------------------------- 
           
           
          Select function: 
           
            1. Diskette Format 
            2. Diskette Verify 
            3. Diskette Copy 
            4. End 
           
          Function number: / 
           
          Figur 6: Men for diskette funktionsprogram 
           
           
3_._1_ _ _ _ _ _ _ _F_o_r_m_a_t_t_e_r_i_n_g_ 3.1
           
          Programfunktionen til formattering af disketter kan anvendes til
          generering af en række forskellige formater. En kort beskrivelse
          af standardformater er givet i bilagene C og D, der generelt om-
          handler MAXI- og MINI-disketter. 
           
          Funktionen stiller en række spørgsmål som vist samlet i fig. 8.
          Nedenfor er angivet på tabelform de mulige parameterkombinationer
          samt et standard ('default') sæt. 
           
          Det bemærkes, at MINI-disketter skal formatteres før brug, mens
          MAXI-disketter leveres formatterede. Det anbefales, at man kon-
          trollerer sine MAXI-disketter for korrekt format som beskrevet i
          bilag C. Er resultatet negativt, kan disketten reformatteres. 
           \f

             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _P_a_r_a_m_e_t_r_e_ _ _ _ _ _S_t_a_n_d_a_r_d_ _ _ _ _ _ _ _ _ _ _ _V_æ_r_d_i_-_o_m_r_å_d_e_ _ _ _ _ _ _ _ _ _ _ _ 
           (mi/ma)       Som diskette-      Mini (mi), Maxi (ma) 
                         station 1 
           Drive number  Diskettestation 1  Diskettestation 1 og 2 
           Density       Dobbelt density    Enkelt/dobbelt tæthed 
           Side          Dobbeltsidet       Enkelt/dobbelt sidet 
             _S_e_c_t_o_r_l_e_n_g_t_h_ _ _5_1_2_ _b_y_t_e_s_ _ _ _ _ _ _ _ _ _ _1_2_8_*_,_ _2_5_6_,_ _5_1_2_ _ _ _ _ _ _ _ _ _ 
           
                 * 128 bytes må ikke anvendes i dobbelt density systemer. 
           
          Figur 7: Parametertabel for funktionen 'format'. 
           
           
           
          Function: Diskette Format 
           
           
          Mini/maxi (mi/ma):             aa 
          Drive number (1..2):           x 
          Single/double density (sd/dd): aa 
          Single/double sided (ss/ds):   aa 
          Sectorlength (128/256/512):    xxx 
           
           
          Insert diskette, type 'return': 
           
          Format active on cylinder xxx 
           
           
          Figur 8: Parameterdialog for funktionen 'format'. 
           
           
         3_._2_ _ _ _ _ _ _ _C_h_e_c_k_l_æ_s_n_i_n_g_    3.2
           
          Programfunktionen kan benyttes til såvel formatkontrol som til
          datakontrol. Parameterdialogen er vist i fig. 10. Vælges para-
          metren 'rc' udføres formatchecklæsning. Vælges parametren 'wr'
          udskrives et testdatamønster og herefter checklæses disse testda-
          ta. 
               \f

                   Formatchecklæsning anvendes dels til kontrol af preformatterede
          disketter (MAXI-disketter) dels til kontrol af programfunktionen
          'format'. Normalt skal en checklæsning kunne udføres på hele dis-
          ketten uden fejl. Fejler en checklæsning inden for det anbefalede
          brugsområde (se bilagene C og D), må disketten kasseres. 
           
          Datachecklæsning anvendes til generel medie- og systemtest. En
          datachecklæsning vil ofte ikke kunne gennemføres for hele disket-
          ten uden fejl. Dette gælder specielt for MAXI-disketternes ved-
          kommende. Fejler en læsning inden for det anbefalede brugsområde,
          kan man enten kassere disketten eller anvende den med det reduce-
          rede område. I sidstnævnte tilfælde s_k_a_l_ man anvende den fundne
          maksimale sidestørrelse som parameter til kataloginitialiserings-
          funktionen i stedet for standardværdien. 
           
          Funktionen stiller en række forespørgsler som vist samlet i fig.
          10. I bilagene C og D er anført en række sammenhørende størrelser
          for diskettetype, -format og det maksimale antal sider  512 by-
          tes, brugeren har rådighed over. De øvrige parameterværdier frem-
          går af fig. 9. 
                    
             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _P_a_r_a_m_e_t_r_e_ _ _ _ _ _S_t_a_n_d_a_r_d_ _ _ _ _ _ _ _ _ _ _ _V_æ_r_d_i_-_o_m_r_å_d_e_ _ _ _ _ _ _ _ _ _ _ _ 
           (rc/wr)       wr                 rc (format-check) og 
                                            wr (data-check) 
           (mi/ma)       Som diskette-      Mini (mi), maxi (ma) 
                         station 1 
           Drive number  Diskettestation 1  Diskettestation 1 og 2 
           First page    400/1200*          Fra 1 til last page 
           Last page     540/1830*          Fra 1 til max* 
             Cylinder zero Nej (n)            Y (medtages) og 
             _(_y_/_n_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_ _(_u_d_e_l_a_d_e_s_)_*_*_ _ _ _ _ _ _ _ _ _ 
           
                 *  Se fig. 19 og 20 i bilagene C og D. Ovenfor er anført værdier-
             ne svarende til standardformattering. B_e_m_æ_r_k_: der checklæses
             ikke på den yderste del af disketten. 
           
          ** First/last påvirkes ikke af, hvorvidt cylinder 0 medtages
             eller ej. 
            
          Figur 9: Parametertabel for funktionen 'verify'. 
           \f

            
          Function: Diskette Verify 
           
           
          Read crc or write and read (rc/wr):  aa 
          Mini/maxi (mi/ma):                   aa 
          Drive number (1..2):                 x 
          First page (pagesize 512):           xxx 
          Last page (pagesize 512):            xxx 
          Include cylinder zero (y/n):         a 
           
           
          Insert diskette, type 'return': 
           
          Verify active on page xxx 
           
          Figur 10: Parameterdialog for funktionen 'verify'. 
           
           
3_._3_ _ _ _ _ _ _ _K_o_p_i_e_r_i_n_g_    3.3
           
          Denne programfunktion benyttes til kopiering af data fra en dis-
          kette til en anden. Som standardparameter anvendes diskettesta-
          tion nummer 1 til originaldisketten og diskettestation nummer 2
          til kopidisketten. Man kan naturligvis frit vælge diskettestation
          til henholdsvis original og kopi - også samme diskettestation -
          om det måtte ønskes. Parameterdialogen er vist i fig. 12. 
           
          Specielt bemærkes, at kopiering af en systemdiskette skal inclu-
          dere cylinder 0. Kopiering iøvrigt sker fra første side og frem
          til 'antal sider' ('amount of pages'). Kopiering bør principielt
          omfatte hele brugerområdet som defineret i bilagene C og D. Pa-
          rameterværdierne fremgår af fig. 11. 
           \f

             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _P_a_r_a_m_e_t_r_e_ _ _ _ _ _S_t_a_n_d_a_r_d_ _ _ _ _ _ _ _ _ _ _ _V_æ_r_d_i_-_o_m_r_å_d_e_ _ _ _ _ _ _ _ _ _ _ _ _ 
           (mi/ma)       Som diskette-      Mini (mi), maxi (ma) 
                         station 1 
           Source        Diskettestation 1  Diskettestation 1 og 2 
           Destination   Diskettestation 2  Diskettestation 1 og 2 
           Amount of     540/1830*          Fra 1 til max* 
           pages 
             Cylinder zero Nej (n)            Y (medtages) og 
             _(_y_/_n_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n_ _(_u_d_e_l_a_d_e_s_)_ _ _ _ _ _ _ _ _ _ _ _ _ 
           
                 * Se fig. 19 og 20 i bilagene C og D. Ovenfor er anført værdierne
            svarende til standardformattering. 
            
          Figur 11: Parametertabel for funktionen 'copy'. 
           
           
           
           
           
           
           
            
          Function: Diskette Copy 
           
           
          Mini/maxi (mi/ma):                   aa 
          Source drive (1..2):                 x 
          Destination drive (1..2):            x 
          Amount of pages:                     xxx 
          Include cylinder zero (y/n):         a 
           
                   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          Insert   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  diskette, type 'return': 
           
          Copy active on page xxx 
           
          Figur 12: Parameterdialog for funktionen 'copy'. 
           
           \f

F_       4_._ _ _ _ _ _ _ _ _K_A_T_A_L_O_G_ _F_U_N_K_T_I_O_N_S_P_R_O_G_R_A_M_    4.
           
          De nødvendige funktioner til initialisering af katalogdisketter
          og listning af katalogindhold er indeholdt i dette program og
          gennemgåes i de følgende afsnit. De understøttede funktioner er
          listet i fig. 13. 
           
           
           
          DIRECTORY MAINTENANCE UTILITY vers. x. y 
          ----------------------------- 
           
           
          Select function: 
           
             1. Generate Directory System (initialise volume) 
             2. List Directory 
             3. End 
           
          Function number / 
           
          Figur 13: Men for katalog funktionsprogram. 
           
           
4_._1_ _ _ _ _ _ _ _I_n_i_t_i_a_l_i_s_e_r_i_n_g_ 4.1
           
          Programfunktionen til initialisering af katalogdisketter skriver
          et nyt katalog på disketten. Det samme filsystem anvendes af
          hjælpeprogramsystemet og COMAL80, og funktionen kan derfor benyt-
          tes generelt for disse systemer. 
           
          Funktionen stiller en række forespørgsler som vist samlet i fig.
          15. De enkelte parametre er indbyrdes uafhængige. Bindenavnet
          ("volume name") kan vælges frit. Antallet af sider, som filsyste-
          met råder over, må vælges inden for det anbefalede brugerområde,
          se bilagene C og D. Det bemærkes, at der ikke kan oprettes mere
          end et katalog pr. diskette. 
           \f

          Parametren 'slice-size' definerer den enhed, som filsystemet ar-
          bejder med, når der tildeles sider til filen. En fil indeholder
          altid et helt antal 'slices'. Parametren har betydning specielt i
          forbindelse med store filsystemer, men kan her vælges frit inden
          for intervallet. Endelig angives det maksimale antal filer,
          systemet kan oprette. 
           
          De mulige parameterværdier er angivet i fig. 14. 
           
             _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _P_a_r_a_m_e_t_r_e_ _ _ _ _ _S_t_a_n_d_a_r_d_*_ _ _ _ _ _ _ _ _ _ _V_æ_r_d_i_-_o_m_r_å_d_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           Name          SYS                16 alfanumeriske 
                                            tegn 
           Number of     540/1830**         1 til max** 
           pages 
             Slice size    1                  1 til max 
           Number of     40                 1 til (max div 'slice size')
           _f_i_l_e_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
                 *  Standard refererer til de værdier, der er valgt for hjælpe-
             programsystemets filsystem. 
           
          ** Se bilagene C og D. Ovenfor er anført værdierne svarende til
             standard disketteformattering. 
           
          Figur 14: Parametertabel for funktionen 'initialise volume'. 
           
           
           
          Function: Initialise Volume 
           
          Name of volume:                         aAaAaAaAaAaAaAaA 
          Number of pages on volume:              xxxx 
          Slice size (in pages):                  xx 
          Maximum number of files on volume:      xxx 
            
          Drive number (1..2): 
          Insert diskette, type 'return': 
           
          Initialisation in progress 
           
             Figur 15: Parameterdialog for funktionen 'initialise volume'. 
           
               \f

         4_._2_ _ _ _ _ _ _ _L_i_s_t_n_i_n_g_    4.2
           
          Denne programfunktion benyttes til listning af katalogindhold.
          Funktionen kræves kun med en parameterangivelse: diskettestation
          nummer, se fig. 17. De mulige parameterværdier er angivet på
          tabelform i fig. 16. 
           
          Det bemærkes, at formatet for listningen kan blive ændret.
          Listningen er selvforklarende (se fig. 18). 
           
           
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
           _P_a_r_a_m_e_t_e_r_ _ _ _ _ _S_t_a_n_d_a_r_d_ _ _ _ _ _ _ _ _ _ _ _V_æ_r_d_i_o_m_r_å_d_e_ _ _ _ _ _ _ _ _ _ _ _ _ 
             _D_r_i_v_e_ _n_u_m_b_e_r_ _ _D_i_s_k_e_t_t_e_s_t_a_t_i_o_n_ _1_ _ _D_i_s_k_e_t_t_e_s_t_a_t_i_o_n_ _1_ _o_g_ _2_ _ 
           
          Figur 16: Parametertabel for funktionen 'list directory'. 
           
           
           
           
           
          Function: List Directory 
           
           
          Drive number (1..2): 
          Insert diskette, type 'return': 
           
          Listing in progress 
           
           
          Figur 17: Parameterdialog for funktionen 'list directory'. 
           
                    \f

                   list of Volumedirectory, unit x 
           
          --NAME-- --TYPE--- 
          ------------------ 
           
          voldescr   file 
          .          directory 
           
M_          . 
          . 
          . 
P_          . 
                  
           
          * End of list * 
           
           
          Type 'return' to continue: / 
           
           
          Figure 18: Format for kataloglistning. 
           
           \f

F_       A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_R_ A.
           \f

F_       B_._ _ _ _ _ _ _ _ _S_I_K_K_E_R_H_E_D_S_K_O_P_I_E_R_I_N_G_ B.
           
          Som omtalt i indledningen, indeholder dette bilag en detaljeret
          beskrivelse af en procedure til anvendelse ved kopiering af dis-
          ketter og hermed systemer. I proceduren beskrives følgende hoved-
          funktioner: 
           
               1) autoload 
               2) valg af diskette funktionsprogram 
               3) valg af funktionen 'format' 
               4) valg af funktionen 'copy' 
           
          For disketterne anvendes følgende betegnelser: 
                
               1) systemdisketten:    hjælpeprogramdisketten 
               2) originaldisketten:  den diskette, der ønskes kopieret 
               3) kopidisketten:      den diskette, der kopieres til
                                      (ny/tom) 
           
          Ved at anvende systemdisketter (f.eks. hjælpeprogramdisketten
          eller COMAL80-disketten) fås en sikkerhedskopi, der kan auto-
          loades. 
           
          1.1  Indsæt systemdisketten i diskettestation 1 og tryk 'reset'. 
                
               Udskrift efter ca. 5 sekunder: 
               'RC700 UTILITY SYSTEM vers.xx.yy' 
M_               . 
               . (se fig. 2, kapitel 2) 
P_               . 
               'Function number:' 
                
          2.1  Tast '1' og herefter '<-'. 
                
               Udskrift med det samme: 
                
               'DISKETTES MAINTENANCE UTILITY vers.xx.yy' 
M_               . 
               . (se fig. 6, kapitel 3) 
P_                      . 
               'Function number:' 
           \f

          Hvis minidisketter anvendes, fortsættes med 3.1. I modsat fald
          kan man gå direkte til punkt 4.1. Udføres punkt 3 også for maxi-
          disketter, anvendes de i parentes anførte parametre. 
           
                   3.1  Tast '1' og herefter '<-'. 
                
               Udskrift med det samme: 
               'Function: Diskette Format' 
               'Mini/maxi (mi/ma):' 
               Kommunikationen er vist i fig. 7, kapitel 3. 
                         
          3.2  Tast 'mi' og herefter '<-'. 
               (Tast 'ma' og herefter '<-') 
                
               Udskrift med det samme: 
               'Drive number (1..2):' 
                
          3.3  Tast '1' samt '<-'. 
                
               Udskrift med det samme: 
               'Single/double density (sd/dd):' 
                
          3.4  Tast 'dd' samt '<-'. 
                
               Udskrift med det samme: 
               'Single/double sided (ss/ds):' 
                
          3.5  Tast 'ds' samt '<-'. 
                
               Udskrift med det samme: 
               'Sectorlength (128/256/512):' 
                
          3.6  Tast '512' samt '<-'. 
                
               Udskrift med det samme: 
               'Insert diskette, type <return':' 
                
          3.7  Udtag systemdisketten og indsæt kopidisketten af type 0 i
               diskettestation 1. Tast '<-'. Typen er defineret i bilag D. 
                \f

               (Udtag systemdisketten og indsæt kopidisketten af type 2 i
               diskettestation 1. Tast '<-'. Typen er defineret i bilag
               C). 
                
               Udskrift med det samme: 
               'Format active on cylinder xxx' 
                
          3.8  Vent indtil funktionen er afsluttet. 
                
               Udskrift efter ca. 30 sekunder: 
               (Udskrift efter ca. 60 sekunder:) 
               'DISKETTES MAINTENANCE UTILITY vers.xx.yy' 
               '* function completed *' 
M_               . 
               . (se fig. 6, kapitel 3) 
P_               . 
               'Function number:' 
                
          4.1  Tast '3' samt '<-'. 
                
               Udskrift med det samme: 
               'Function: Diskette Copy' 
               'Mini/maxi (mi/ma):' 
               Kommunikationen er vist i fig. 12, kapitel 3. 
                
          4.2  Tast 'mi' samt '<-'. 
               (Tast 'ma' samt '<-') 
                
               Udskrift med det samme: 
               'Source drive (1..2):' 
                
          4.3  Tast '1' samt '<-'. 
                
               Udskrift med det samme: 
               'Destination drive (1..2)' 
                
          4.4  Tast '1' samt '<-' eller '2' samt '<-', hvis der er to dis-
               kettestationer til rådighed. 
                
               Udskrift med det samme: 
               'Amount of pages:' 
                \f

                   4.5  Tast '540' samt '<-'. 
               (Tast '1830' samt '<-') 
                
               Udskrift med det samme: 
               'Include cylinder zero (y/n):' 
                
          4.6  Tast 'y' samt '<-'. 
                
               Udskrift med det samme: 
               'Insert source diskette, type 'return':' 
                
          4.7  Indsæt originaldiskette i diskettestation 1. 
               Tast '<-'. 
                
               Såfremt 'destination' er forskellig fra 'source', vil syste-
               met bede om 'destination'-disketten - punkt 4.4. 
                
               I modsat fald læses fra 'source' disketten og dernæst skal
               'destination'-disketten sættes i diskettestation 1, hvoref-
               ter systemet automatisk beder om disketteskift, indtil kopi-
               ering er tilendebragt. 
                
               Den videre sekvens ser da således ud, idet situationen med 1
               diskettestation benævnes a). 
                
            a  Udskrift efter ca. 5 sekunder: 
               'Insert destination diskette, type 'return':' 
                
          4.8a Udtag originaldisketten og sæt kopidisketten i diskettesta-
               tion 1. 
                
               Udskrift efter ca. 5 sekunder: 
               'Insert source diskette, type 'return':' 
                
          4.9a Udtag kopidisketten og sæt originaldisketten i diskettesta-
               tion 1. 
                \f

                        Således fortsættes indtil funktionen er afsluttet. Herefter
               fås udskriften: 
               'DISKETTES MAINTENANCE UTILITY vers.xx.yy' 
               '* function completed *' 
               Fortsæt med punkt 5. 
                
            b  Udskrift med det samme: 
               'Insert destination diskette, type 'return':' 
                
          4.8b Indsæt kopidisketten i diskettestation 2. 
                
          4.9b Vent indtil funktionen er afsluttet. Herefter fås
               udskriften: 
               'DISKETTES MAINTENANCE UTILITY vers.xx.yy' 
               '* function completed *' 
               Fortsæt med punkt 5. 
                
          5.   Den nye diskette (kopidisketten) er nu genereret. Udfør
               autoload med kopidisketten i diskettestation 1. 
                
               Alternativt kan man vælge at fortsætte genereringen. I så
               fald fortsættes med punkt 3. 
                
                \f

F_       C_._ _ _ _ _ _ _ _ _M_A_X_I_-_D_I_S_K_E_T_T_E_ _B_E_S_K_R_I_V_E_L_S_E_    C.
           
          En 8" diskette benævnes en 'MAXI'-diskette. Der findes forskelli-
          ge typer såvel enkelt som dobbelt sidede og enkelt henholdsvis
          dobbelt density formatterede (med forskellig sektorlængde). Ne-
          denfor er listet en række forskellige disketter, der er godkendt
          af RC. 
           
               1) 3M 743-0-512 
               2) VERBATIM ('DATALIFE'), DD34-4015 (-18664) 
           
          Disse disketter (eller hermed kompatible) kan bestilles gennem
          RC. Typebetegnelsen er 'Type 2', der dækker over dobbelt density,
          dobbelt sidede, 512 bytes pr. sektor disketter. Som det fremgår
          af ovenstående leveres MAXI-disketter som preformatterede disket-
          ter, dvs. sektormærker og cylindermærker er skrevet på disketten.
          Det står brugeren frit at formattere disketten under anvendelse
          af funktionen 'format'. Det vil dog altid være hensigtsmæssigt at
          checklæse disketten før brugen (funktionen 'verify'), idet leve-
          randørkvaliteten er lidt svingende, ligesom der er konstateret
          direkte formatfejl på enkelte disketter. 
           
          Såfremt en checklæsning afslører fejl, vil en formattering kunne
          udføres med parametre som antydet i fig. 19, der iøvrigt beskri-
          ver sammenhængen mellem fysiske disketteparametre og brugerværdi-
          er (dvs. kapacitet i antal sider  512 bytes samt sektorlængde i
          bytes), som refereret i beskrivelsen af de enkelte programfunkti-
          oner. 
           
          Det anbefales at anvende 512 bytes/sektor formatet, som er opti-
          malt i COMAL80-systemer, hvor der anvendes en sidestørrelse i ka-
          taloget på 512 bytes. 
           
          Som det fremgår af fig. 19 udnyttes diskettens fulde kapacitet
          ikke p.t. Dette forhold skyldes dels reservering af cylinder 0
          til systemformål dels den kendsgerning, at dobbelt density forma-
          tet stiller store krav til mediet. For at undgå problemer med for
          lille levetid af lagrede data og/eller medieselektering, anvendes
          de sidste 15 cylindre ikke. 
           \f

           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           Dobbelt density, dobbelt sidet MAXI-diskette 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           Diskette     Sektorlængde  Antal sektorer  Cylindre  Kapacitet i
                        (bytes)       pr. cylinder    (max 76)  sider  512
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _b_y_t_e_s_ _ _ _ _ _ _ _ _ _ 
                        256           2*26            1-61      1586 (793 Kb) 
           _R_C_ _s_t_a_n_d_a_r_d_ _ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _2_*_1_5_ _ _ _ _ _ _ _ _ _ _ _ _1_-_6_1_ _ _ _ _ _ _1_8_3_0_ _(_9_1_5_ _K_b_)_ _ 
           
          Figure 19: MAXI-diskette, fysisk og logisk beskrivelse. 
           
           \f

F_       D_._ _ _ _ _ _ _ _ _M_I_N_I_-_D_I_S_K_E_T_T_E_ _B_E_S_K_R_I_V_E_L_S_E_ D.
           
          En 5 1/4" diskette benævnes en 'MINI'-diskette. Der findes for-
          skellige typer såvel enkelt som dobbeltsidede af forskellig kva-
          litet. Det anbefales at benytte den bedste kvalitet med henblik
          på dobbelt-density anvendelse. Nedenfor er listet en række for-
          skellige disketter der er godkendt af RC. 
           
               1) MEMOREX 3201-3421 
               2) VERBATIM ('DATALIFE'), MD550-01 (-18191) 
           
          Disse disketter (eller hermed kompatible) kan bestilles gennem
          RC. Typebetegnelsen er 'Type 0', der dækker over dobbelt density,
          dobbelt sidede MINI-disketter. 
           
          MINI-disketter leveres altid uformatterede, dvs. der skal skrives
          sektormærker og cylindermærker før anvendelse. Denne funktion
          skal udføres af brugeren før enhver anvendelse af disketterne ved
          brug af funktionen 'format'. 
           
          Det står brugeren frit at vælge mellem en række forskellige for-
          mater som antydet i fig. 20, der iøvrigt beskriver sammenhængen
          mellem fysiske disketteparametre og brugerværdier som refereret i
          beskrivelsen af de enkelte funktioner. 
           
          Det anbefales at anvende 512 bytes/sektor formatet, som er opti-
          malt i COMAL80-systemer, hvor der anvendes en sidestørrelse i
          kataloget på 512 bytes. 
           
               Som det fremgår af fig. 20 udnyttes diskettens fulde kapacitet
          ikke p.t. Dette forhold skyldes dels reservering af cylinder 0
          til systemformål dels den kendsgerning, at dobbelt density for-
          matet stiller store krav til mediet. For at undgå problemer med
          for lille levetid af lagrede data og/eller medieselektering, an-
          vendes de sidste 5 cylindre ikke. 
           \f

           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           
           Dobbelt density, dobbeltsidet MINI-diskette (TYPE 0) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           Diskette     Sektorlængde  Antal sektorer  Cylindre  Kapacitet i
                        (bytes)       pr. cylinder    (max 35)  sider  512
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _b_y_t_e_s_ _ _ _ _ _ _ _ _ _ 
                        256           2*16            1-30      480 (=240 Kb) 
           _R_C_ _s_t_a_n_d_a_r_d_ _ _5_1_2_ _ _ _ _ _ _ _ _ _ _ _2_*_9_ _ _ _ _ _ _ _ _ _ _ _ _ _1_-_3_0_ _ _ _ _ _ _5_4_0_ _(_=_2_7_0_ _K_b_)_ _ 
           
          Figure 20: MINI-diskette, fysisk og logisk beskrivelse. 
           
           \f

F_       E_._ _ _ _ _ _ _ _ _K_O_N_F_I_G_U_R_E_R_I_N_G_ _-_ _S_T_A_N_D_A_R_D_K_O_N_F_I_G_U_R_A_T_I_O_N_ E.
           
                   Hjælpeprogrampakken er konfigureret fra RC med konverteringstabel
          svarende til dansk standardtastatur. Herudover anvendes standard
          konfigurering for de ydre enheder som vist i fig. 21, der beskri-
          ver filen 'SYSCONFI'. Under autoloadproceduren læses filen og de
          angivne filnavne opsøges i kataloget. 
           
          I den gældende udgave af hjælpeprogramsystemet er 'SYSCONFI' fast
          defineret. Det er således ikke muligt at ændre på de angivne pa-
          rametre. Det samme forhold gør sig gældende for COMAL80-systemer.
          Hjælpeprogramsystemet kan derfor p.t. ikke anvendes til rekonfi-
          gurering af hverken COMAL80-systemer eller hjælpeprogramsystemet
          selv. 
           
          I fig. 22 er der givet en beskrivelse af de mulige konfigure-
          ringsværdier, der tænkes supporteret. 
           
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _F_i_l_n_a_v_n_ _ _ _ _ _ _F_u_n_k_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _B_e_m_æ_r_k_n_i_n_g_e_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           SYSSA        Basissystem           Indeholder drivprogrammer
                                              for de ydre enheder 
            
           SYSCDKS      Konverteringstabel    Understøtter standard dansk 
                                              tastatur 
            
           SYSUTSYS     Systemprogram         Hjælpeprogramsystem 
            
           PRINTER      Device-descriptor     Indeholder parametre for
                                              linie-skriver således: 
                                              1200 Baud, 2 stopbits 
                                              lige paritet, 7 databits 
            
           INLINE       Device-descriptor     Indeholder indparametre for 
                                              kommunikationslinien således:
                                              1200 Baud, 2 stopbits 
                                              lige paritet, 7 databits
           
           OUTLINE      Device-descriptor     Indeholder udparametre for 
                                              kommunikationslinien som 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _o_v_e_n_f_o_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
           
          Figur 21: 'SYSCONFI' format og indhold ifølge RC standard. 
           \f

                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           _F_u_n_k_t_i_o_n_ _ _ _ _ _ _ _ _ _ _B_e_m_æ_r_k_n_i_n_g_e_r_ _ _ _ _ _K_o_n_f_i_g_u_r_a_t_i_o_n_s_l_i_s_t_e_ _(_=_ _f_i_l_n_a_v_n_e_)_ _ _ _ _
           Basissystem                        SYSSA: et 'stand-alone' system (SA)
                                              SYSMA: et 'master' system (MA) 
                                              SYSSL: et 'slave' system (SL) 
            
           Konverterings-                     SYSCDKS: Dansk standard 
           tabel                              SYSCDKB: Dansk bibliotek 
                                              SYSCUK:  UK-ascii 
                                              SYSCUS:  US-ascii 
                                              SYSCS:   Svensk 
                                              SYSCD:   Tysk 
            
           Systemprogram                      SYSUTSYS: Hjælpeprogramsystem 
                                              SYSCOMAL: COMAL80 
            
           Device-descriptor 
           PRINTER                            aAaA...: 
                                              alle mulige kombinationer af 
                                              BR, DL, P, S 
            
           Device-descriptor 
           INLINE                             bBbB...: 
                                              alle mulige kombinationer af 
                                              BR, DL, P, S
           
           Device-descriptor 
           OUTLINE                            cCcC...: 
                                              alle mulige kombinationer af  
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _B_R_,_ _D_L_,_ _P_,_ _S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
          BR - transmissionshastighed: 
               50, 75, 110, 300, 600, 1200, 2400, 4800 eller 9600 bps. 
          DL - tegnlængde (antal bits/tegn): 5, 6, 7 eller 8 bits pr. tegn 
          P -  paritet: ingen, lige eller ulige paritet 
          S -  stopbits: 1, 1 1/2 eller 2 stopbits/tegn 
           
          Figur 22: 'SYSCONFI' - parametertabel. 
           
           \f

F_       F_._ _ _ _ _ _ _ _ _A_U_T_O_L_O_A_D_ _P_R_O_C_E_D_U_R_E_ F.
           
          Tænd for strømmen (tryk på den røde 'POWER' afbryder). 
          Indsæt systemdisketten i diskettestation 1 (1 af 2). 
          Tryk på 'RESET'-switchen. 
          Kommentar: Systemet autoloades og nedenfor stående tekst skrives
                     på skærmen: 
                      
                     'RC700 UTILITY SYSTEM vers.xx.yy' 
M_                     . 
                     . 
P_                     . 
                     'Function number: /' 
                      
                      
                     Herefter vælges funktion som beskrevet i kapitel 3 og
                     fremefter. 
           
           \f

F_       G_._ _ _ _ _ _ _ _ _S_P_E_C_I_A_L_T_E_G_N_ G.
           
          I forbindelse med programafviklingen anvendes en række kontrol-
          tegn med overordnet betydning for kommunikationen. 
           
          1.  Carriage-return eller blot return (vognretur): '<-' 
               
              Indtastning af dette tegn markerer afslutning af indtastet
              linie. 
               
          2.  Cursor-positionering (markørflytning): '<-' eller '->' 
               
              Indtastning af disse tegn henholdsvis venstrepil eller højre-
              pil er lovlig, såfremt resultatet er en markørposition inden
              for det aktive inddatafelt, se fig. 23. 
               
               
                               Markørposition 
               
               
              Linie: '......':     
                     Udskrift  Inddatafelt 
               
              I denne situation er '->' lovlig mens '<-' er ulovlig. 
               
              Figur 23: Inddatafelt, eksempel med 3 positioner. 
               
               
          3.  Afbrydelse (escape): 'ESC' 
               
              Aktivering af denne tast medfører afbrydelse af aktiv dialog.
              Funktionstasten har derfor alene speciel betydning under pa-
              rameterindtastning til en aktiv funktion. Funktionen afbrydes
              og kontrollen overgives til det aktive program. Teksten
              '* function aborted *' udskrives, og herefter listes som sæd-
              vanligt en funktionsmen. 
               
              Det bemærkes, at der p.t. ikke gives mulighed for afbrydelse
              af en aktiv funktion. I forbindelse med fysiske operationer
              på en diskettestation er det dog muligt at stoppe udførelsen
              ved simpelthen at fjerne disketten. 
               
               \f

F_       H_._ _ _ _ _ _ _ _ _F_E_J_L_S_I_T_U_A_T_I_O_N_E_R_ _-_ _F_E_J_L_K_O_D_E_T_A_B_E_L_ 
           
          Fejlindtastninger til hjælpeprogram systemet besvares generelt
          ved 'BELL', dvs. brugeren informeres ved et hørbart fejlsignal.
          Konsekvensen af en fejlindtastning er generelt beskrevet i
          kapitel 2. 
           
          Herudover kan der optræde konfigurationsfejl, dvs. den valgte
          funktion kan ikke udføres med det aktuelle parametersæt på den
          givne fysiske konfiguration. Eksempel: kopiering fra diskettesta-
          tion 1 til diskettestation 2 i et system med 1 diskettestation. 
           
          Endvidere kan der opstå funktionsfejl, dvs. fejl på de ydre en-
          heder eller mediefejl af enten temporær eller blivende karakter.
          Eksempel: CRC-fejl på diskette (temporær) eller skrivning på
          skrivebeskyttet diskette (blivende - også kaldet 'hård' fejl). 
           
          Endelig kan der optræde systemfejl med en af følgende 2 fejlsitu-
          ationer til følge: 
           
               1) systemet er låst 
               2) en systemfejl udskrives 
           
          Funktions- og konfigureringsfejl udskrives af funktionen i fejl-
          kode (se kapitel 2). Betydningen fremgår af fig. 24. 
           \f

                    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           Fejl         Fejl       Bemærkninger 
           kategori     kode 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _n_r_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
               Systemfejl              1) Låst system: ingen information 
                                   2) Systemfejltekst: 
                                      '*** EXCEPTION: xxxx yyyy ***' 
                                    
                                   1) og 2) søges afhjulpet ved kontrol af
                                   alle ledningsforbindelser og genstart
                                   med skrivebeskyttet sikkerhedskopi. Af-
                                   hjælpes fejlen ikke, rapporteres fejlen
                                   med angivelse af såvel 'xxxx' og 'yyyy'
                                   i_ _t_i_l_f_æ_l_d_e_ _2_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           Konfigure- 
           ringsfejl 
                        211        Timeout: Ingen diskettestation, ingen
                                   diskette 
           FD:*         203        Hård fejl: Som 11, inklusiv kabelfejl 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _2_0_1_ _ _ _ _ _ _ _ _R_e_p_e_t_i_t_i_o_n_s_f_e_j_l_:_ _F_e_j_l_e_n_ _i_k_k_e_ _a_f_h_j_u_l_p_e_t_ _ _
           Funktions- 
           fejl 
                        227        Diskettefejl. Formatet er fejlbehæftet 
           FD:          219        Diskettefejl. Skrivebeskyttet 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _2_0_2_ _ _ _ _ _ _ _ _D_i_s_k_e_t_t_e_f_e_j_l_._ _C_R_C_-_f_e_j_l_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
           
          * FD: diskettedrivprogram. 
           
           
              Figur 24: Fejlkodetabel. 
           
           \f

«eof»