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

⟦fd4eec752⟧ TextFile

    Length: 179840 (0x2be80)
    Types: TextFile
    Names: »D105«

Derivation

└─⟦2520239fd⟧ Bits:30005867/disk13.imd Dokumenter (RCSL m.m.)
    └─⟦this⟧ »D105« 

TextFile

                                                 i 
          
         T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
          
         1.   INTRODUCTION ...................................................   1 
          
         2.   THE LOAD MODULE ................................................   2 
          
         3.   LOADER .........................................................   3 
              3.1  Loader Activation .........................................   3 
              3.2  Load Module Processing ....................................   3 
                   3.2.1  User Labels ........................................   4 
                   3.2.2  Module Header ......................................   4 
                   3.2.3  Date Label .........................................   4 
                   3.2.4  Revision Label .....................................   4 
                   3.2.5  Fp Program Label ...................................   4 
                   3.2.6  Pagefile Label .....................................   5 
                   3.2.7  Section Header .....................................   5 
                   3.2.8  Relocatable Code Record ............................   7 
                   3.2.9  Module Terminus ....................................   8 
              3.3  Layout of the Job Process Area ............................   8 
              3.4  Program Start .............................................  10 
              3.5  Error Handling ............................................  11 
          
         4.   PAGING SYSTEM ..................................................  12 
              4.1  Addressing Modes ..........................................  12 
                   4.1.1  Relative Adressing Mode ............................  13 
                   4.1.2  Resident Addressing Mode ...........................  14 
                   4.1.3  Virtual Addressing Mode ............................  14 
                   4.1.4  Comment on Indirect Addressing .....................  15 
              4.2  Paging System Central Logic ...............................  16 
              4.3  Paging System Procedures ..................................  18 
                   4.3.1  How to Call a Procedure ............................  19 
                   4.3.2  Procedure Get Address ..............................  21 
                   4.3.3  Procedure Get Point ................................  22 
                   4.3.4  Procedure Get Addresses ............................  23 
                   4.3.5  Procedure Reserve Area .............................  25 
                   4.3.6  Procedure Release Area .............................  27 
                   4.3.7  Procedure Extension Claim ..........................  28 
                   4.3.8  Procedure Change Rewrite ...........................  29 
                   4.3.9  Procedure Change Size ..............................  30 
                   4.3.10 Procedure Change Fixed Place .......................  32 
          \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_
          
                   4.3.11 Procedure Write Section ............................  34 
                   4.3.12 Procedure Lock Section .............................  35 
                   4.3.13 Procedure Unlock Section ...........................  39 
                   4.3.14 Procedure Create Section ...........................  40 
                   4.3.15 Procedure Define User Procedures ...................  42 
                   4.3.16 Procedure Get Paper Address ........................  44 
                   4.3.17 Procedure Remove Pagefile ..........................  45 
              4.4  Statistics ................................................  46 
              4.5  Error Handling ............................................  47 
          
         5.   PROGRAM TERMINATION ............................................  50 
          
         6.   REQUIREMENTS ...................................................  51 
          
         A_P_P_E_N_D_I_C_E_S_: 
          
         A.   REFERENCES .....................................................  53 
          
         B.   ERROR MESSAGES FROM LOADER .....................................  54 
          
         C.   SEGMENTTABLE ...................................................  57 
          
         D.   FRAMETABLE .....................................................  59 
          
         E.   PAGING SYSTEM VARIABLES ........................................  61 
          \f

         1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
                    
                   The RC8000 Loader/Paging System is a system capable of loading
                   relocatable programs for execution and of assisting the programs
                   during their execution in maintaining the contents of the job
                   process area. The system makes it possible to run large programs
                   in a limited amount of primary memory. 
                    
                   The Loader/Paging System can be used for execution of programs
                   being load modules produced by the RC8000 Linker - and for execu-
                   tion of programs residing in a format compatible with that of a
                   load module. 
                    
                   This manual describes the Loader/Paging System called SYSLDR000.
                   The manual is primarily directed to users writing their programs
                   in the Macro Assembly Language, but may also be used to get a
                   more detailed knowledge of the Loader/Paging System than that
                   provided in reference manuals for programming languages which may
                   produce relocatable programs to run under control of the
                   Loader/Paging System. 
                    
                    \f

         2_._ _ _ _ _ _ _ _ _T_H_E_ _L_O_A_D_ _M_O_D_U_L_E_ 2.
                    
                   A relocatable program to be loaded by the Loader/Paging System is
                   contained in a backing storage file. The file consists of vari-
                   able length records defining the code and data of the program to-
                   gether with relocation information. The file is said to contain a
                   l_o_a_d_ _m_o_d_u_l_e_. 
                    
                   Usually, a load module has been produced by the RC8000 Linker.
                   However, a l_i_n_k_ _m_o_d_u_l_e_ (which is normally intended as input modu-
                   le to the linker) may be used directly as a load module provided
                   it contains neither external definitions nor external references
                   and provided it contains information about program start address.
                   For further information, and for details about the syntax of a
                   load module as well as the format of its records, see ref. 7. 
                    
                   All code and data of a program is grouped into s_e_c_t_i_o_n_s_, the
                   grouping being defined in the load module. The Loader/Paging
                   System named SYSLDR000 allows the following types of sections: 
                    
                   -  The r_e_s_i_d_e_n_t_ _s_e_c_t_i_o_n_ contains code and data to be relocated in
                      the job process. 
                    
                   -  The v_i_r_t_u_a_l_ _s_e_c_t_i_o_n_s_ which contain code and data to reside in
                      a v_i_r_t_u_a_l_ _m_e_m_o_r_y_. Each virtual section will be placed on one
                      or more segments of a backing storage file and transports be-
                      tween virtual memory and the job process area are at execution
             time handled by the Paging System. Throughout this manual the
             term >(virtual) p_a_g_e_> is often used synonymously to virtual
             section. 
                       
                   -  The i_n_i_t_ _s_e_c_t_i_o_n_ containing code to be executed once at the
                      beginning of program execution. The section is relocated in
                      that part of the job process area which is later to be used as
                      workspace for virtual memory.
                       
                   For details about the generation of code and data, see descrip-
                   tions of relevant compilers and assemblers, e.g. ref. 6. 
           
           \f

         3_._ _ _ _ _ _ _ _ _L_O_A_D_E_R_ 3.
                    
                   This chapter describes how to activate the Loader-Paging System
                   in order to load and execute a relocatable program and how the
                   load module is processed by the Loader. Furthermore, the situa-
                   tion is described, as it is just before execution of the loaded
                   program. 
                    
           
         3_._1_ _ _ _ _ _ _ _L_o_a_d_e_r_ _A_c_t_i_v_a_t_i_o_n_ 3.1
                    
                   The Loader/Paging System is a utility program to be loaded by the
                   File Processor, fp, and then in its turn perform the loading of
                   the program wanted. 
                    
                   When the name of the backing storage file holding the loadmodule
                   is used as programname in an fp command, and when the catalog
                   entry tail of that name contains: 
                   - a contents key of 15 in the left half of word 9, and 
                   - a zero in the right half of the same word, 
                   then fp will load the contents of the backing storage file named
                   >sysldr000> into the job process area. 
                    
                   The name of the load module is found by the Loader as the program
                   name in current command in the fp-command stack. 
                    
                   For further details, see ref. 3 and ref. 4. 
                    
           
         3_._2_ _ _ _ _ _ _ _L_o_a_d_ _M_o_d_u_l_e_ _P_r_o_c_e_s_s_i_n_g_ 3.2
                    
                   This section lists the load module records recognized by
                   SYSLDR000 and describes the processing involved when read by the
                   loader. The processing of the load module starts at the first
                   record contained in the load module file. 
                    
           \f

         3_._2_._1_ _ _ _ _ _U_s_e_r_ _L_a_b_e_l_s_ _(_R_e_c_o_r_d_t_y_p_e_ _2_0_-_2_9_)_ 3.2.1
                    
                   The user label records may be placed anywhere in the load module
                   and are ignored by the Loader. 
               
           
         3_._2_._2_ _ _ _ _ _M_o_d_u_l_e_ _H_e_a_d_e_r_ _(_R_e_c_o_r_d_t_y_p_e_ _2_)_ 3.2.2
                    
                   The module name is picked up from the record and stored. During
                   program execution it may be accessed through the Paging System. 
                    
                   The record may be placed anywhere in the load module. If more
                   than one record of this type occurs, then the latest record read
                   will be valid. 
                    
                    
         3_._2_._3_ _ _ _ _ _D_a_t_e_ _L_a_b_e_l_ _(_R_e_c_o_r_d_t_y_p_e_ _1_0_)_ 3.2.3
                    
                   The date is picked up from the record and stored. Otherwise as
                   Module Header. 
                    
                    
         3_._2_._4_ _ _ _ _ _R_e_v_i_s_i_o_n_ _L_a_b_e_l_ _(_R_e_c_o_r_d_t_y_p_e_ _1_1_)_ 3.2.4
                    
                   The revision information is picked up from the record and stored.
                   Otherwise as Module Header. 
                    
                    
         3_._2_._5_ _ _ _ _ _F_p_ _P_r_o_g_r_a_m_ _L_a_b_e_l_ _(_R_e_c_o_r_d_t_y_p_e_ _1_7_)_ 3.2.5
                    
                   This record signifies that the program uses the File Processor,
                   i.e. nothing must be relocated to that area of the job process
                   which contains the resident part of fp, and buffers for current
                   input and output as well as the command stack must be preserved. 
                    
                   The record may occur only once in the load module and always
                   before the records described in the rest of this section. 
                    
                    \f

         3_._2_._6_ _ _ _ _ _P_a_g_e_f_i_l_e_ _L_a_b_e_l_ _(_R_e_c_o_r_d_t_y_p_e_ _1_8_)_ 3.2.6
                    
                   This record signifies that the program uses virtual memory and it
                   secures that the Paging System is included in the final module. 
                    
                   The pagefile name, i.e. the name of the backing storage area to
                   hold virtual code and data, is picked up from the module and
                   stored. If the first word of the name is zero then a workname is
                   generated and stored as pagefile name. During execution the name
                   may be accessed through the Paging System. 
              
                   If the pagefile name is not found in the catalog or if the pro-
                   cess is not allowed to write in an existing backing storage area
          with that name, then a temporary backing storage area is created.
          The name is looked up, and the entry tail is stored, available
          during execution through the Paging System. 
                    
                   Finally an empty segmenttable is established in the job process
                   area. The segmenttable is used for describing the contents of the
                   pagefile (see app. C). 
                    
                   The pagefile record may occur only once in the load module and
                   always before the records described in the rest of this section. 
                    
                    
         3_._2_._7_ _ _ _ _ _S_e_c_t_i_o_n_ _H_e_a_d_e_r_ _(_R_e_c_o_r_d_t_y_p_e_ _4_)_ 3.2.7
                    
                   The relocation information of the load address contained in the
                   record determines the sectiontype: 
                    
                   The section header for an a_b_s_o_l_u_t_e_ _s_e_c_t_i_o_n_ is ignored. 
                    
                   The section header for r_e_s_i_d_e_n_t_ _s_e_c_t_i_o_n_ is used for setting room
                   aside in the job process area for resident code and data. The
                   loadaddress must be equal to zero, meaning that resident section
                   start equals start of job process area. 
                    \f

                   The section header for i_n_i_t_ _s_e_c_t_i_o_n_ is used for setting room
                   aside in the job process area for init code and data. The load
                   address is irrelevant - the section will be placed somewhere in
                   the part of the job process area intended as workspace for vir-
          tual memory.  
                    
          A section header for a v_i_r_t_u_a_l_ _s_e_c_t_i_o_n_ defines a virtual page.
          Its position in virtual memory is given by the load address,
          which must be greater than or equal to zero and divisible by 512
          halfwords. Its size, which will be rounded up to the first number
          divisible by 512 halfwords (if necessary), implies the number of
          (consecutive) backing storage segments transferred to/from memory
          when needed during program execution. Any virtual section is thus
          placed on an integral number of backing storage segments, and the
          virtual sections may be of unequal size - greatest possible size
          is 1048064 halfwords corresponding to 2047 backing storage seg-
          ments. The processing of a virtual section header involves a pos-
          sible extension of the pagefile and the initialization of seg-
          menttable entries, one per backing storage segment occupied by
          the section. 
                    
                   The rewrite and overlay base information contained in the record
                   is relevant only for virtual sections. If the rewrite field is 1,
                   then the section is born as a section which should be rewritten
                   onto the pagefile whenever the section is removed from the job
                   process area during execution. If the rewrite field is zero, it
                   signals to the Paging System that no rewrite is wanted. 
                    
                   If the overlay base is non-zero, then it must be a resident relo-
          catable address denoting that the section, which is then called
          on overlay section or overlay page, is always to be brought into
          the job process area at the same position (i.e. to the area
          starting at overlay base) during execution. If an fp-label is
          present in the load module, then the overlay base must not be
          within the part of resident section containing the File Processor
          code and tables. The rewrite information and the overlay base are
          stored in the segmenttable, if a non-zero overlay base is present
          then a zero rewrite field is stored. 
                    \f

                   The section name contained in a section header record is not used
                   by the Loader. 
                    
                   A section header specifying a section of size zero, is ignored. 
                    
                   The loadmodule is allowed to contain at most one resident section
                   header and at most one init section header, neither of which may
                   occur after the first virtual section header. The virtual section
                   headers need not be ordered in ascending loadaddress - the load
                   module may contain none or, theoretically, an infinite number of
                   virtual section headers. 
                    
           
         3_._2_._8_ _ _ _ _ _R_e_l_o_c_a_t_a_b_l_e_ _C_o_d_e_ _R_e_c_o_r_d_ _(_R_e_c_o_r_d_t_y_p_e_ _1_)_ 3.2.8
                    
                   A relocatable code record holds the initial contents of a conti-
                   nous block of words within an address space previously defined by
                   a section header record. Records containing code for different
                   sections may be mixed, and the records need not be ordered ascen-
                   dingly with respect to loadaddress. 
                    
                   Depending on the relocation modifier attached to it, the load-
          address contained in the record is the first address of the block
          relatively to resident-, init-, or virtual memory start (load-
          address '_ 0). Records containing a non-relocatable (i.e. an
          absolute) load address are skipped. 
                    
                   The record may contain none (in which case the record is ignored)
                   or up to 15 loadvalues. Before storing a loadvalue, it is adjus-
                   ted according to its relocation modifier (not mentioned modifiers
                   are treated as illegal modifiers): 
                    
                   Loadvalues with >absolute> modifier or >page displacement> modi-
                   fier are stored directly. 
                    
                   To loadvalues with >resident> modifier are added first address of
                   resident section. 
                    \f

                   The leftmost bit is set to 1 in loadvalues with >virtual> modi-
                   fier thus giving a negative value. However, if the loadvalue ta-
                   ken as an address in virtual memory is an address within an over-
                   lay section, and if the loadvalue itself is to be stored within
                   that same section, then the loadvalue will be converted to an ab-
                   solute address once and for all in accordance with overlay base
                   of the section. 
                    
                   If the modifier is >pagetable address> then the loadvalue is ta-
                   ken as an address in virtual memory and the value stored will
                   then equal the address of that segmenttable entry describing the
                   backing storage segment holding the word addressed. 
                    
                   Loadvalues to be relocated in the part of resident section nor-
                   mally occupied by File Processor code and tables are temporarily
                   stored somewhere in the part of the job process area intended as
                   workspace for virtual memory and are moved to their final positi-
                   on just before execution (unless the load module contains an fp
                   program label in which case no value can be relocated to the fp
                   area). 
               
           
         3_._2_._9_ _ _ _ _ _M_o_d_u_l_e_ _T_e_r_m_i_n_u_s_ _(_R_e_c_o_r_d_t_y_p_e_ _3_)_ 3.2.9
                    
                   This record signifies that the end of the load module has been
                   reached. The start address, which must be a resident or virtual
                   address, is picked up from the record and stored. It may later,
                   e.g. during initcode execution, be accessed through the Paging
                   System. 
                    
                   The record must be present in the load module. 
                    
                    
         3_._3_ _ _ _ _ _ _ _L_a_y_o_u_t_ _o_f_ _t_h_e_ _J_o_b_ _P_r_o_c_e_s_s_ _A_r_e_a_ 3.3
                    
                   Upon loading, and before initcode- and program execution, the job
                   process area is organized as described in figure 1. The frametab-
                   le mentioned in the figure is used by the Paging System in the
                   administration of workspace in virtual memory (see app. D). 
                    \f

M_                 first offp code and
                   job process              tables       1536 halfw.  size as specified 
                   area          RESIDENT                             in load module 
                                 SECTION
                    
                                SEGMENTTABLE            (no. of virtual bs-segments) * 6 halfw. 
                    
                                 UNUSED                             n-(n//(512+6)*(512+6))halfw. 
                    
                    
                    
                                 WORKSPACE 
                                 FOR VIRTUAL 
                                 MEMORY 
                                                         n halfw.     n//(512+6)*(512+6)halfw. 
                    
                    
                    
P_                               FRAMETABLE 
                               PAGING SYSTEM 
                        CODE AND VARIABLES      appr. 3200 halfw. 
                         FP COMMANDSTACK         variable size 
M_                        BUFFER FOR CURRENT      512 halfw. 
P_          last of       INPUT 
          job process   BUFFER FOR CURRENT      512 halfw. 
          area          OUTPUT
           
          F_i_g_u_r_e_ _1_: Layout of the job process area for a program using both 
                    the File Processor and virtual memory. The init code is 
                    placed somewhere in the area called workspace for vir-
                    tual memory.  
           
          The segmenttable is placed in continuation of resident section,
          however, if a program which uses the File Processor does not con-
          tain a resident section or contains a resident section of less
          than 1536 halfwords (i.e. fp size), then the table is placed in
          continuation of fp codes and tables. 
                    
                   If the program uses virtual memory, but has not assigned any ini-
                   tial code to it (no virtual section header present in the load
                   module) then the segmenttable will be empty. Still, the frame
                   table and the Paging System will be included in the final module
                   and a pagefile will exist. 
                    
                   If the program does not use virtual memory then the Paging\f

          System, the segmenttable, and the frametable will not be included
          in the final module. 
                    
                   If the program does not use the File Processor then the area for
                   fp code and tables (i.e. the first part of the job process area),
                   m_a_y_ have been overwritten by resident code, init code, and/or
                   segmenttable entries - if virtual memory is used then the frame-
                   table and the Paging System code and variables will be allocated
                   to the last part of the process area thus overwriting the fp com-
                   mandstack and the buffers for current input and output.  
                   For further details, especially concerning the organization of fp
                   and the fp commandstack, see ref. 3 and ref. 4. 
                    
           
         3_._4_ _ _ _ _ _ _ _P_r_o_g_r_a_m_ _S_t_a_r_t_ 3.4
                    
                   When the program is entered from the Loader, the situation is as
                   follows: 
                    
                   - Integer and floating point overflow/underflow interrupts are
                     masked off. 
                   - Full precision of floating point operation is selected. 
                   - If the program uses neither the File Processor nor virtual me-
                     mory, then the interrupt address is zero. Otherwise, if the
            program uses virtual memory then the address is within the Pag-
            ing System, or, if the program does not use virtual memory,
            then equal to the interrupt address of fp. 
                   - The address of the routine to be entered when exceptions occur,
                     which during execution cannot be handled by the Paging System,
                     will equal the interrupt address of fp, if the program uses the
                     File Processor, or will otherwise be zero. 
                   - The use of the file containing the load module has been termi-
                     nated. The termination includes current program zone of fp. 
                   - The buffer for current output has been emptied if the program
                     does not use fp. 
                    
                   If the program contains initcode, then the init section is ente-
                   red at its first word with working register w1 containing the
                   absolute address of job process area start (which is also fp
          start). 
                    \f

                   For obvious reasons, the initcode must n_o_t_ refer virtual memory
                   nor activate any paging system procedure which may cause innova-
tions in workspace for virtual memory. 
                    
                   Return from initcode is performed by executing the first instruc-
                   tion following the init code. The contents of the working regis-
                   ters is irrelevant. 
                    
                   The program is entered at its startaddress with the following
                   contents in the working registers: 
                    
                   w1 : Absolute address of job process area start (which is also fp
                        start). 
                   w2 : Absolute address of the first item of current command in the
                        fp commandstack, i.e. absolute address of command stack top
                        (see ref. 4). 
                   w3 : Absolute address of the item in the command stack which con-
                        tains the program name (see ref. 4). 
                         
                
         3_._5_ _ _ _ _ _ _ _E_r_r_o_r_ _H_a_n_d_l_i_n_g_ 3.5
           
If an error occurs, during program loading, e.g. if the job pro-
cess area is to small to load the program, if i/o troubles occur,
or if the load module contains spurious information, an errortext
is printed on current output and the fp program termination rou-
tine is entered (with >ok> = no and >warning> = yes) instead of
the program. 
                    
If a pagefile has been created using a workname to identify it,
then the file will be removed from the catalog. 
 
Appendix B contains the list of error messages. \f

F_4_._ _ _ _ _ _ _ _ _P_A_G_I_N_G_ _S_Y_S_T_E_M_ 4.
 
This chapter describes the Paging System, i.e. the tools
available to a program using virtual memory. 
 
The chapter describes the addressing modes for resident and
virtual objects, the central logic of the Paging System as well
as the set of Paging System procedures available to the program.
Finally, collection of statistics and the handling of errors are
described. 
 
Throughout the chapter, the Macro Assembly Language (see ref. 6)
is used, when needed, to support the descriptions. 
 
 
     4_._1_ _ _ _ _ _ _ _A_d_d_r_e_s_s_i_n_g_ _M_o_d_e_s_ 4.1
 
Programs using virtual memory must be coded according to some
rules which makes it possible for the Paging System to trap
addressing of virtual objects and possibly transfer a virtual
page to the job process area. The addressing modes given in this
section secure that resident and virtual objects may be addressed
uniformly. 
 
First some basic definitions: 
 
The resident memory addresses (RM) are represented by: 
     the non negative integers, 
while the virtual memory addresses (VM) are represented by: 
     2**23 + the non negative integers. 
The virtual addresses may also be expressed: 
     2**23 + bs segment * 2**9 + relative. 
 
The set of program points (or shortly: p_o_i_n_t_s_), PP, can thus be
defined as: 
 
     PP = RM   VM 
 
The segmenttable (T) built by the Loader contains one entry per\f

          backing storage segment (s) in VM. During execution, the first
            word (0) each entry in T is used as follows: 
             
                                  first (absolute) address of s, if s is in 
                                   workspace for virtual memory. 
                 T(s,0)= 
                                 first virtual address of s, if s is not in 
                             workspace for virtual memory. 
            
               0 <_ s <_ number of bs segments in virtual memory - 1 
               
              From this definition follows that T(s,0) always contains the vir-
            tual address of s, if s belongs to an overlay page (overlay pages
             are always loaded into fixed areas outside workspace for virtual
          memory). 
             
           Finally, regardless of the contents of T(s,0), the following is
           valid if s and s+1 belong to the same virtual page: 
                T(s+1,0)= T(s,0)+ number of halfwords per bs segment. 
            
          When addressing code or data within a running program, different
          addressing modes may be used: the relative addressing mode, the
          resident addressing mode, or the virtual addressing mode. 
                    
           
     4_._1_._1_ _ _ _ _ _R_e_l_a_t_i_v_e_ _A_d_d_r_e_s_s_i_n_g_ _M_o_d_e_ 4.1.1
           
          The relative addressing mode is used, when addressing objects
          within the same section (resident or virtual). A jump to a label
          LAB may be coded: 
             
                      JL     LAB        ;  GOTO LAB; 
            or 
M_                   AM     *=LAB-2-.  ;  GOTO LAB; 
P_                 JL     .          ;   
            
            depending on, whether the distance to LAB can be held in the
            displacement field of the instruction or not. 
                  \f

          In the relative addressing mode, the effective address will
          always be non-negative, thus never involving the Paging System. 
           
           
  4_._1_._2_ _ _ _ _ _R_e_s_i_d_e_n_t_ _A_d_d_r_e_s_s_i_n_g_ _M_o_d_e_ 4.1.2
           
          The resident addressing mode which uses a program point as effec-
          tive address is often used when addressing resident objects, and
          it can be used when addressing virtual objects. A jump to a label
          LAB may be loaded: 
           
               JL    *=LAB    ; GOTO LAB; 
           
          When addressing resident objects, or when virtual objects placed
          on an overlay page are addressed from the very same page by refe-
          rences relocated by the Loader (see section 3.2.8), then the ef-
          fective address will be non-negative, and the Paging System will
          not be involved. 
           
          Otherwise, when addressing virtual objects, the effective address
          will be negative, an interrupt will occur (even if the referenced
          page is already in the job process area), and the Paging System
          will be entered. The instruction causing the interrupt will be
          re-executed, this time with a correct effective address corre-
          sponding to the actual position of the page - possibly, or if an
          overlay page is referenced, always after loading the referenced
          page. 
           
           
        4_._1_._3_ _ _ _ _ _V_i_r_t_u_a_l_ _A_d_d_r_e_s_s_i_n_g_ _M_o_d_e_ 4.1.3
           
          The virtual addressing mode should be used when addressing virtu-
          al objects (in particular those placed on non-overlay pages), and
           it can be used when addressing  resident objects. The addressing
          mode may be illustrated by the following sequence of instructi-
          ons, executing jump to a label LAB: 
           
               AM    *=P(LAB) ;  GOTO LAB; 
               AM    *0       ; 
               JL    D(LAB)   ; 
           \f

          At execution time, the contents of the word holding P(LAB) must
          be: 
            - the (absolute) address of a word containing the (absolute)
              address of LAB, if LAB is resident, in which case the instruc-
              tion displacement of the instruction (D(LAB)) must be zero.
               Or: 
             - the (absolute) address of a segmenttable entry if LAB is virtu-
              al. If LAB belongs to a non-overlay page already in workspace
               for virtual memory then the first word of the segmenttable en-
               try addressed will contain an (absolute) address, P>(LAB), so
                that P>(LAB) + D(LAB) is the (absolute) address of LAB - other-
            wise an interrupt will occur (as the address contained in the
            segmenttable is negative), and the Paging System will transfer
            the section to the job process area, set P>(LAB) properly and
            re-execute the instruction causing the interrupt (the third
            instruction in above sequence) with a correct effective
            address. 
             
          The advantage of this addressing mode is that addressing of vir-
          tual memory only causes interrupt and Paging System assistance
          when the referenced page is not in the job process area. However,
          this advantage can not be utilized in connection with objects
          reading on overlay pages as segmenttable entries describing an
          overlay page always contain negative addresses. 
            
           
        4_._1_._4_ _ _ _ _ _C_o_m_m_e_n_t_ _o_n_ _I_n_d_i_r_e_c_t_ _A_d_d_r_e_s_s_i_n_g_ 4.1.4
           
           Indirect addressing of objects by means of a virtual (i.e. nega-
           tive) address for pointing out the indirect address can not be
            used as the system will not be able to see whether an interrupt
             is caused by the primary address or the indirect one. 
               \f

          For this reason, constructions like: 
            
                AM     *=LABREF 
                 JL     *0 
            or: 
                 AM     *=P(LABREF) 
                 AM     *0 
                 JL     *D(LABREF) 
           
          are n_o_t_ _r_e_c_o_m_m_e_n_d_a_b_l_e_, unless you are certain of the relocation
            of the word containing the indirect address. 
           
           
      4_._2_ _ _ _ _ _ _ _P_a_g_i_n_g_ _S_y_s_t_e_m_ _C_e_n_t_r_a_l_ _L_o_g_i_c_ 4.2
           
          As mentioned in section 3.4, the interrupt address of the process
          will be within the Paging System, meaning that any internal in-
          terrupt will be trapped by this system. 
           
           Interrupts which are neither caused by virtual memory addressing
           nor by Paging System procedure calls (section 4.3), are handed
           over to the interrupt routine of the program (see section 4.5) -
           this includes interrupts caused by execution of an illegal in-
            struction thus allowing for utilization of the File Processor
           testoutput facility (see ref. 4). 
             
           When an interrupt is caused by virtual memory addressing (i.e.
            when the execution of an instruction causes instruction violation
             due to the use of a negative effective address), then the Paging
            System will load all the segments of the relevant page into con-
             secutive locations within the job process area, (unless the page
           is a non-overlay page already present in workspace for virtual
             memory), calculate a correct (i.e. non-negative) address, and re-
          execute the interrupt-causing instruction with the calculated
          address as effective address using return-escape facility for
          skipping address calculation at re-execution (see ref. 1). 
 \f

          If the interrupt is caused by the execution of an instruction be-
          longing to a non-overlay page, then it is guaranteed that the
          page in question will not be removed from workspace for virtual
          memory during the servicing of the interrupt. However, the page
          may be moved to another position in the workspace in order to
          make room for the one to be loaded - if the page is moved, then
          the instruction counter, ic, will be adjusted before the re-exe-
          cution of the interrupt-causing instruction, according to the new
          position of the page. This means that subroutine jumps may be
          coded without knowledge of where the subroutine is actually plac-
          ed. 
            
          The workspace for virtual memory is regarded as an integral num-
          ber of 512 halfword frames - each frame able to hold one backing
          storage segment from virtual memory, and each frame described by
          an entry in the frametable. 
           
          A search for room in workspace for virtual memory is performed as
           a search in the frametable. A Paging System variable, >victim>,
          points to the frametable entry where to start the search - when a
          (non-overlay) page has been loaded, then this variable is set to
          point to the frame following the one holding the last segment of
          the page loaded. 
           
          The search is performed cyclically - if the entire workspace has
           been searched unsuccessfully, i.e. if it does not contain a ne-
            cessary number of consecutive frames being empty and/or only hol-
            ding pages which are neither locked (section 4.3.12) nor contai-
              ning the interrupt-causing instruction, then the following is
            performed: 
             
           The workspace for virtual memory is searched from its low end for
           an area of consecutive frames placed between two pages which are
            as well non-removable as non-moveable (see below) to find an area
          which can room as well the page to be loaded as those pages which
             are present in the area and which must not be removed from work-
             space for virtual memory but which may be moved to another posi-
            tion. The limits of the workspace serve in this context as non-
             (re)moveable pages. 
           \f

If a suitable area is found, then the moveable pages contained in
it are pushed together towards the low end of workspace, to the
extent necessary for making room for the page to be loaded. 
 
Pages which can neither be removed from virtual memory nor can be
moved to another place are: 
- pages hardlocked by procedure Lock Section (section 4.3.12), and
- fixed place pages (section 4.3.10) (hard- or soft)locked also
  by procedure Lock Section, and 
- a fixed place page containing the interrupt-causing instruction. 
             
The loading of a fixed place page (see section 4.3.10) does not
involve the above described search for room - if the frames in-
tended to hold the page contains pages which must not be removed
from workspace for virtual memory, but which may be moved to a-
nother place, then the Paging System will attempt to make room
for the page to be loaded by pushing the other pages away from
the frames in question (towards one or either end of the work-
space) - the pushing will not be able to cross a non-moveable
page. 
 
The loading of overlay pages always takes place into fixed
addresses and will cause no changes in the frametable. 
 
The removal of a page from virtual memory may involve the rewri-
ting of it onto the pagefile. Overlay pages are never rewritten
automatically. 
 
If a page cannot be loaded, then the Paging System will assume
that workspace for virtual memory does not contain sufficient
room, and the reaction will be as described in section 4.5. 
 
 
    4_._3_ _ _ _ _ _ _ _P_a_g_i_n_g_ _S_y_s_t_e_m_ _P_r_o_c_e_d_u_r_e_s_ 4.3
 
The Paging System contains a set of procedures available to the
program during execution. 
 \f

The procedures include facilities for explicit page demanding,
space reservation for private use in workspace for virtual memory,
page creation, control of page rewriting, pagesize alteration,
page allocation to fixed places in workspace for virtual memory
and page locking, statistics- and interrupt procedure definition,
and pagefile removal. 
 
          
4_._3_._1_ _ _ _ _ _H_o_w_ _t_o_ _C_a_l_l_ _a_ _P_r_o_c_e_d_u_r_e_ 4.3.1
 
Having loaded the working registers with appropriate information,
a procedure is entered by executing an illegal instruction with
the following format: 
 
     0              5  6  7  8  9 10 11 12                 23 
     1  1  0  0  1  1  0  0  0  1  0  0          P 
 
The displacement of the instruction, P, is the two>s complement
of the procedure number to be entered. The instruction, when exe-
cuted, will cause an interrupt, the interrupt will be trapped by
the Paging System, and the procedure wanted will be executed.   
 
An instruction, intended for calling procedure number one, may be
written as follows in the Macro Assembly Language: 
 
     KS     *-1 
 
Return from a procedure takes place to the instruction following
the interrupt-causing instruction. 
 
The following example shows the notation used for defining the
call of a procedure: 
 
     change fixed place (point, fixed place, result) 
     w0    : result(return) 
     w1    : point(call) 
     w2    : fixed place(call) 
     procno: 15 
              \f

The procedure change fixed place, procedure number 15, is called
              with working register w1 containing a point (resident or virtual
memory address) and w2 containing another parameter for the pro-
cedure. Upon return from the procedure, register w0 contains a
result while the other registers are unchanged. 
 
The examples in the rest of this chapter use the macros defined
in SYSMACLIB (see ref. 6) for Paging System procedure calls. 
 
 \f

  4_._3_._2_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _G_e_t_ _A_d_d_r_e_s_s_ 4.3.2
 
C_a_l_l_: 
One of four procedures may be selected depending on which working
register is wanted for call and return information: 
 
get address(point, address) 
                   w0    : / w1    :  / w2    :  / w3    : point(call), address(return) 
 procno:1/ procno:2 / procno:3 / procno: 4 
 
F_u_n_c_t_i_o_n_: 
The procedure computes the (absolute) address of the point. For
non-negative points, the address returned equals the point. 
 
The procedure may cause innovations in workspace for virtual
memory. However, a non-overlay page calling the procedure will
remain in memory, but way at return time have been moved to
another position. 
 
A point specifying the (negative) address of an overlay object
will always cause a page to be loaded. 
 
E_x_a_m_p_l_e_: 
; COMMENT: W2 = PROGRAM POINT; 
     SH   W2,   -1   ; IF W2 VIRTUAL 
     GETADDR    W2   ; THEN W2:= ABS ADDR(W2); 
                     ; COMMENT: W0, W1, W3 UNCHANGED. 
 
(see also section 4.3.4) 
 
 \f

  4_._3_._3_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _G_e_t_ _P_o_i_n_t_ 4.3.3
 
C_a_l_l_: 
One of four procedures may be selected depending on which working
register is wanted for call and return information: 
 
get point(address, point) 
w0:  /w1    :  / w2    :  / w3    : address(call), point (return) 
procno:5 / procno:6 / procno:7 / procno: 8 
 
F_u_n_c_t_i_o_n_: 
Computes the point corresponding to the address. If the address
refers to a location within workspace for virtual memory contai-
ning a word from a page, then the point corresponding to the vir-
tual address of that word is returned. Otherwise the address is
returned.  
 
E_x_a_m_p_l_e_: 
Subroutine which may cause innovations in workspace for virtual
memory: 
 
SUBR:     GETPOINT   W3 
          RS W3,     X2+RETURN 
          . 
          . 
          . 
          JL         *X2+RETURN 
 
A call of the subroutine may be coded: 
 
          JL W3,     *=SUBR\f

  4_._3_._4_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _G_e_t_ _A_d_d_r_e_s_s_e_s_ 4.3.4
 
C_a_l_l_: 
get addresses (tableaddress, result) 
w0    : result (return) 
w1    : tableaddress (call) 
procno: 9 
 
tableaddress: First (absolute) address of a table containing con-
              secutive entries holding parameters to the proce-
              dure, each entry consisting of two words: 
                    +0: point (call) 
                    +2: address (return) 
              The last table entry must be followed by a word
              containing -1. If the table is empty, then table-
              address points to this word. 
               
         F_u_n_c_t_i_o_n_: 
The procedure will perform the same, as if procedure Get Address
(procno 1, 2, 3, or 4) were called a number of times, one per en-
try in the table. 
 
The procedure may cause innovations in workspace for virtual me-
mory. However, a non-overlay page calling the procedure will re-
main in memory, but may at return time have been moved to another
position. This also counts for that page holding the parameter
table if the table is situated in workspace for virtual memory at
call time. 
 
The procedure does not check whether the table contains points
belonging to different overlay pages with overlapping overlay
base, nor is checked, if the parameter table might be over-
written by the loading of an overlay page if the table itself
belongs to a such page. 
 \f

Result 0: All addresses calculated - it is guaranteed that all
          pages involved are present in the job process area. 
       2: One or more addresses have not been calculated (due to
          insufficient room in workspace for virtual memory) and
          -1 is stored for the missing address(es). 
           
         E_x_a_m_p_l_e_: 
Compared to the example in 4.3.2, the following example catches a
case of insufficient room directly, but at the cost of loss of
register contents: 
 
          AL   W1,   PARAM   ;   COMMENT: W2 = PROGRAM POINT; 
          RS   W2,   X1+0    ;   PARAM(0):= POINT; 
          GETADDRS           ;   GET ADDRESSES(PARAM, RESULT) 
          SE   W0,   0       ;   IF RESULT <' 0 
          JL         ...     ;   THEN JUMP AWAY; 
RL   W2,   X1+2    ;   W2:= PARAM (2); 
          . 
          . 
          . 
PARAM:    BLK. 2 
          DATA. -1 \f

         4_._3_._5_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _R_e_s_e_r_v_e_ _A_r_e_a_ 4.3.5
 
C_a_l_l_: 
reserve area (position, size, result, new top) 
w0    : result (return) 
w1    : position (call) 
w2    : size (call) 
w3    : new top, or, if result 0_=/5_ 0, destroyed (return) 
procno: 10 
 
F_u_n_c_t_i_o_n_: 
The procedure attempts to reserve an area of the specified size
(a number of halfwords, must be even and non-negative) for priva-
te use by the program in workspace for virtual memory. 
 
If position equals 0, then the area will be situated adjacently
to the low limit of workspace for virtual memory, otherwise, if
position equals 1, adjacently to high limit, or, in either case,
in continuation of already reserved areas in low or high end of
workspace, respectively. 
 
To make space for the reservation, the procedure may cause inno-
vations in workspace for virtual memory. However, a page calling
the procedure will remain in memory, but may at return time have
been moved to another position. 
 \f

m_The following figure shows a situation where areas have been
reserved in either end of workspace for virtual memory: 
 
                + 0 
                      reserved areas (pos. 0) 
              + 512 
                                              new top 
             + 1024                                               workspace 
                                                      available   for 
                                                      for         virtual 
                                                      pages       memory 
 
          + n -1024 
          + n  -512                           new top 
                       
                      reserved areas (pos. 1) 
 
The value returned as new top is the (absolute) address of the
left halfword of the word following (pos. 0) or preceding (pos.
1) the reserved areas. 
 
It is the user>s responsibility to use the reservation facility
properly. 
 
Result 0: The area has been reserved. 
       2: The area has not been reserved due to insufficient room
          in workspace for virtual memory. The result also covers
          the situation where the area to be reserved contains a
          page which must neither be removed from workspace for
          virtual memory nor be moved to another position. 
           
E_x_a_m_p_l_e_: 
The following piece of code reserves SIZE halfwords in low end of
workspace and stores the size in the last of the reserved words. 
 
          AL    W1,    0     ; 
          AL    W2,    SIZE  ; 
          RESERVEAREA        ; RESERVE AREA(0,SIZE,RESULT,NEWTOP); 
          SE    W0,    0     ; IF RESULT <' 0 
          JL           ...   ; THEN JUMP AWAY 
          RS    W2,    X3-2  ; STORE SIZE IN NEWTOP - 2; 
           
(See also section 4.3.6) 
           
p_           \f

         4_._3_._6_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _R_e_l_e_a_s_e_ _A_r_e_a_ 4.3.6
 
C_a_l_l_: 
release area (position, size, new top) 
w1    : position (call) 
w2    : size (call) 
w3    : new top (call) 
procno: 11 
 
F_u_n_c_t_i_o_n_: 
The procedure is used for releasing areas reserved through calls
of procedure Reserve Area. 
 
The size-parameter specifies the number of halfwords (which must
be even and non-negative) to be cut off of the end of the
reserved areas nearest to the workspace area part available for
pages. If position equals 0, then the release takes place from
the reserved areas situated in low end of workspace for virtual
memory, otherwise, if position equals 1, from the reserved areas
in high end. 
 
The value returned as new top equals the previous top of reserved
areas minus (pos. 0) or plus (pos. 1) the size parameter. A full
release of the reserved areas in the specified position may be
obtained by specifying a size greater than what has been
reserved. The area released is returned to the Paging System and
may be included in the workspace area used for pages. 
 
E_x_a_m_p_l_e_: 
If executed after the example in section 4.3.5 (with register w3
unchanged), the following piece of code will release what was re-
served: 
 
          AL   W1,  0     ; COMMENT: W3 = TOP OF RESERVED; 
          RL   W2,  X3-2  ; FETCH SIZE FROM TOP - 2; 
          RELEASEAREA     ; RELEASE AREA (0, SIZE, NEW TOP) 
 
               \f

         4_._3_._7_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _E_x_t_e_n_s_i_o_n_ _C_l_a_i_m_ 4.3.7
 
C_a_l_l_: 
extension claim (entries, result) 
w0    : result (return) 
w1    : entries (call) 
procno: 12 
 
F_u_n_c_t_i_o_n_: 
The procedure is intended for use by a program, which, at a later
point in time, extends virtual memory through calls of procedures
Change Size and Create Section. 
 
When the procedure has been called and given result 0, then it is
guaranteed that the segmenttable later can be extended by the
number of entries specified in the call. 
 
Using this procedure prevents: 
- reserved areas in low end of workspace for virtual memory, and 
- pages, which can neither be removed from the workspace nor can
  be moved to another position, 
from making a segmenttable extension impossible. 
 
The procedure may cause innovations in workspace for virtual
memory. However, a page calling the procedure will remain in
memory, but may at return time have been moved to another
position. 
 
Result 0: ok (see above) 
       2: Insufficient room in workspace for virtual memory. The
          result also covers the situation where areas have been
          reserved in low end of workspace or where a
non-removable page is present in the beginning of work-
space. 
           
     \f

         4_._3_._8_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _C_h_a_n_g_e_ _R_e_w_r_i_t_e_ 4.3.8
           
C_a_l_l_: 
change rewrite (point, rewrite) 
          w1    : point (call) 
          w2    : rewrite (call) 
          procno: 13 
 
F_u_n_c_t_i_o_n_: 
          If point is a resident (i.e. non-negative) address or is the
          point of an overlay object, then the procedure performs nothing. 
           
          Otherwise, the rewrite parameter is inserted in the segmenttable
          entries of the page specified by the point - a rewrite parameter
          of 1 signifies that the page, whenever removed from workspace of
          virtual memory, is to be rewritten onto the pagefile, while a re-
          write parameter equal to zero means that no rewrite is wanted. \f

4_._3_._9_ _ _ _ _ _P_r_o_c_e_d_u_r_e_ _C_h_a_n_g_e_ _S_i_z_e_ 4.3.9
           
          C_a_l_l_: 
                   change size (point, size, result) 
          w0       : result (return) 
          w1       : point (call) 
          w2       : size (call) 
          procno   : 14 
           
          F_u_n_c_t_i_o_n_: 
          The procedure may be used for re-defining the size of a virtual
          section - the section being the one holding the object addressed
          by parameter point. If point is a resident (i.e. non-negative)
          address, then the procedure performs nothing but returning with a
          result of zero. 
           
          The new size is specified in the call as a number of halfwords,
          and will, if necessary, be rounded up to the first number divisi-
          ble by 512. The new size must be non-negative, and must not ex-
          ceed 1048064 halfwords corresponding to 2047 backing storage
          segments. 
           
          A new size smaller than the old one will cause the system to
          >cut> off the last segment(s) of the section thus introducing a
          >hole> in virtual memory. Any reference to this >hole> (as well
          implicitly by the effective address of an instruction or expli-
          citly by a parameter in a procedure call) will be treated as an
          error (see section 4.5). A new size equal to zero means that the
          >hole> will include the entire section. 
           
          If the new size is greater than the old one then the system will
          try to extend the section by the necessary number of segments. If
          the section is situated as the last section of virtual memory,
          then the extension may include extension of the segmenttable and
          the pagefile. 
           \f

          If not situated as the last section, an extension is only possi-
          ble if the section precedes a >hole> in virtual memory (created
          by a previous call of change size or existing because the load-
          module did not contain virtual section headers covering the en-
          tire virtual memory). For an overlay section it is checked that
          the section is still able to be roomed within resident section. 
           
          It is not possible to change the size of a virtual section locked
          in wordspace memory by procedure lock, nor is a non-overlay sec-
          tion allowed to change its own size. 
           
          The procedure may cause innovations in workspase for virtual me-
          mory including removal of the section specified by point if pre-
          sent in the workspace. However, a page calling the procedure will
          remain in memory, but may at return time have been moved to an-
          other position in workspace for virtual memory. 
           
          The new size of the section specifies the amount of backing
          storage segments later to be transferred, whenever necessary,
          between the page file and the job process area. 
           
          Result 0 : The size of the specified virtual section has been
                     changed. 
                 2 : Insufficient room in workspace for virtual memory to
                     extend the segmenttable (or areas reserved in low end
                     of workspace or a non-removable page present in low
                     end of workspace). 
                 4 : The new size is too large for a section which is not
                     the last section of virtual memory. 
                 6 : The section specified is locked in workspace for vir-
                     tual memory or is the same section that has called the
                     procedure. 
           
               \f

         4_._3_._1_0_ _ _ _ _P_r_o_c_e_d_u_r_e_ _C_h_a_n_g_e_ _F_i_x_e_d_ _P_l_a_c_e_ 4.3.10
           
          C_a_l_l_: 
          change fixed place (point, fixed place, result) 
          w0     : result (return) 
          w1     : point (call) 
          w2     : fixed place (call) 
          procno : 15 
           
          F_u_n_c_t_i_o_n_: 
          This procedure may be used when it is desired that a non-overlay
          page is always to be brought into a fixed place in workspace for
          virtual memory whenever the page is loaded (parameter fixed place
          = 1) and it may be used to cancel this attribute again (parameter
          fixed place = 0). 
           
          The page concerned is the one holding the object addressed by pa-
          rameter point - if point is a resident (i.e. non-negative)
          address or is the point of an overlay, then the procedure
          performs nothing but returning with a result of zero. 
           
          If the procedure is called with parameter fixed place equal to 1,
          then the specified page must be present at call time in workspace
          for virtual memory, and its actual place will then be the one to
          use whenever the page is needed in the job process area. 
           
          It is the user>s responsibility to use the fixed place facility
          properly. 
           
          Result 0 : OK (this result is always returned if parameter fixed
                     place = 0). 
                 8 : The specified page is not present in workspace for
                     virtual memory (parameter fixed place = 1). 
           
           \f

                   E_x_a_m_p_l_e_: 
          It is desired that a given page (addressed by contents of POINT)
          is always to be loaded into the third frame (and following fra-
          mes) of workspace for virtual memory. It is assumed that no areas
          have been reserved in low end of workspace for virtual memory and
          that no hardlocked section prevents the following: 
           
               AL      W1,      0       ;    COMMENT: RESERVE TWO FRAMES; 
                    AL      W2,      2*512   ; 
               RESERVEAREA              ;    RESERVE AREA(0,2*512,RESULT,NEWTOP); 
               SE      W0,      0       ;    IF RESULT <' 0 
               JL               ...     ;    THEN JUMP AWAY; 
               RL      W1,      POINT   ;    COMMENT: FORCE PAGE INTO 
               AL      W2,      0       ;             THIRD FRAME; 
               AL      W3,      1       ; 
               LOCKSECTION              ;    LOCK SECTION(POINT,0,1,RESULT); 
               SE      W0,      0       ;    IF RESULT <' 0 
               JL               ...     ;    THEN JUMP AWAY; 
               AL      W2,      1       ; 
               CHANGEFIXEDPLACE         ;    CHANGE FIXED PLACE(POINT,1,RESULT); 
               UNLOCKSECTION            ;    UNLOCK SECTION(POINT); 
               AL      W1,      0       ; 
               AL      W2,      2*512   ; 
               RELEASEAREA              ;    RELEASE AREA(0,2*512); 
           
           \f

4_._3_._1_1_ _ _ _ _P_r_o_c_e_d_u_r_e_ _W_r_i_t_e_ _S_e_c_t_i_o_n_ 4.3.11
           
          C_a_l_l_: 
                   write section (point, mode) 
          w1      : point (call) 
          w2      : mode (call) 
          procno  : 16 
           
          F_u_n_c_t_i_o_n_: 
          A call of this procedure causes a virtual page, if present in the
          job process area at call time, to be rewritten into the pagefile.
          The page is given by the point specified in the call - if point
          is a resident (i.e. non-negative) address or if it is a point
          within a non-overlay page which at call time is not present in
          workspace for virtual memory, then the procedure returns
          immediately. 
           
          Otherwise, for non-overlay pages, the mode parameter is used as
          follows: 
           
          Mode 0 : The page is rewritten immediately. If the page is a re-
                   write-page, then it will be rewritten also when it, at
                   a later point in time, is removed from workspace for
                   virtual memory. 
           
               1 : The page is rewritten immediately. If the page is a re-
                   write-page, then it will not be rewritten the first time
                   it is to be removed from workspace for virtual memory.
           
               2 : The page is rewritten the first time it is to be removed
                   from workspace for virtual memory. 
           
          For overlay pages, the mode parameter is not used (yet must be
          valid) - the part of the job process area, which holds the page
          (or which will hold the page when present) is immediately and
          unconditionally rewritten onto the pagefile. 
           
 \f

         4_._3_._1_2_ _ _ _ _P_r_o_c_e_d_u_r_e_ _L_o_c_k_ _S_e_c_t_i_o_n_ 4.3.12

          C_a_l_l_: 
                   lock section (point, position, mode, result, address) 
          w0      : result (return) 
          w1      : point (call) 
          w2      : position (call) 
          w3      : mode (call), address (return) 
          procno  : 17 
           
          F_u_n_c_t_i_o_n_: 
          If the section specified by the point is a non-overlay page, then
          a call of this procedure will secure that the page at return time
          will be present in workspace for virtual memory and that it will,
          whatever happens, not be removed from the workspace until after
          having been unlocked by procedure Unlock Section. 
           
          If the point is a resident (i.e. non-negative) address or is the
          point of an overlay object, then a call of this procedure will
          equivalate a call of procedure Get Address, i.e. the procedure
          will return the (absolute) address corresponding to the point,
          and a result of zero. The parameters position and mode will in
          this case be irrelevant, yet they must be valid. 
           
          Otherwise, the parameters position and mode are used as follows: 
           
          Position  0 : The section will be placed as near as possible to
                        the low end of workspace for virtual memory. 
                     
                    1 : The section will be placed as near as possible to
                        the high end of workspace for virtual memory. 
                     
                    2 : The section may be placed anywhere in workspace for
                        virtual memory (if the section is already present,
                        then it will remain in the actual place). 
                         \f

                   mode    0 : The section will be >softlocked>, meaning that it
                      will remain in workspace for virtual memory until
                      unlocked, but that the Paging System is free to move
                      it to another place at a later point in time, if
                      needed. 
                   
                  1 : The section will be >hardlocked>, meaning that it
                      will remain in workspace for virtual memory at the
                      very place where it resides when the procedure
                      returns. 
                       
          A page to be hardlocked with position equal to 0 or 1 will always
          by the procedure be attempted placed nearer to the specified end
          of workspace for virtual memory than any existing softlocked page
          (see the example below) through using a technique where
          softlocked pages are pushed towards the opposite end of the
          workspace. This pushing can not cross over a hardlocked page. 
           
           If the page to be locked is a fixed place page, then the position
          parameter is irrelevant (yet must be valid), as the section will
          be locked into that place which has been chosen in an earlier
          point in time by a call of procedure Change Fixed Place. Please
          note, that softlocking a fixed place section is equivalent to
          hardlocking it. 
           
The procedure may cause innovations in workspace for virtual me-
          mory. However, a page calling the procedure will remain in memory
          (unless it locks itself in which case it may be removed and re-
          loaded, see below), but may at return time have been moved to
          another position in workspace for virtual memory. 
           
          Please note, that if a section, present in workspace for virtual
          memory at call-time, is to be locked with position equal to 0 or
          1, then that section may be removed (possibly after a rewrite
          action) and reloaded from virtual memory, even if the section is
          already locked. 
           \f

                   The address given as return parameter will be the (absolute) ad-
          dress of the point. 
           
          It is the user>s responsibility to use the lock facility proper-
          ly. 
           
          Result  0 : OK, the address of the point has been calculated. 
                  2 : Insufficient room in workspace for virtual memory to
                      load the page when not present at call time. 
           
          E_x_a_m_p_l_e_: 
          Assume that the points A, B, C, D, and E are placed on separate
          non-overlay, non-fixed place pages and that these pages are of
          equal size except for the page holding D, which is assumed to be
          of greater size than the other ones. 
           
          Below is listed a sequence of Paging System procedure calls
          together with layouts of the workspace for virtual memory after
          each call (the low end of workspace is to the left). It is
          assumed, that no pages have been locked previously. 
           \f

                   lock section (A,0,0, result, addr);  _ _A_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          soft
           
          lock section (B,0,1, result, addr);  _ _B_ _ _ _ _A_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          hard soft
 
          lock section (C,0,1, result, addr);  _ _B_ _ _ _ _C_ _ _ _ _A_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          hard hard soft
 
          lock section (A,0,1, result, addr);  _ _B_ _ _ _ _C_ _ _ _ _A_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          hard hard hard
 
          unlock section (C)                   _ _B_ _ _ _ _C_ _ _ _ _A_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          hard      hard
 
          lock section (D,0,1, result, addr);  _ _B_ _ _ _ _C_ _ _ _ _A_ _ _ _ _D_ _ _ _ _ _ _ _ _ _ _ 
          hard      hard hard
 
          lock section (E,0,0, result, addr);  _ _B_ _ _ _ _E_ _ _ _ _A_ _ _ _ _D_ _ _ _ _ _ _ _ _ _ _ 
          hard soft hard hard
 
          lock section (A,0,1, result, addr);  _ _B_ _ _ _ _E_ _ _ _ _A_ _ _ _ _D_ _ _ _ _ _ _ _ _ _ _ 
          hard soft hard hard
 
          unlock section (E)                   _ _B_ _ _ _ _E_ _ _ _ _A_ _ _ _ _D_ _ _ _ _ _ _ _ _ _ _ 
          hard      hard hard
 
          lock section (A,0,1, result, addr);  _ _B_ _ _ _ _A_ _ _ _ _ _ _ _ _ _D_ _ _ _ _ _ _ _ _ _ _ 
          hard hard      hard
 \f

F_4_._3_._1_3_ _ _ _ _P_r_o_c_e_d_u_r_e_ _U_n_l_o_c_k_ _S_e_c_t_i_o_n_ 4.3.13
           
          C_a_l_l_: 
          unlock section (point) 
          w1     : point (call) 
          procno : 18
                              
          F_u_n_c_t_i_o_n_: 
          If the section specified by the point is a non-overlay page which
          has been locked into workspace for virtual memory by procedure
          Lock Section, then the page will be unlocked, i.e. it may, if
          relevant at a later point in time, be removed from the workspace.
          Otherwise, the procedure performs nothing. 
           
          E_x_a_m_p_l_e_: 
          See section 4.3.12. 
 
 \f

F_       4_._3_._1_4_ _ _ _ _P_r_o_c_e_d_u_r_e_ _C_r_e_a_t_e_ _S_e_c_t_i_o_n_ 4.3.14
           
          C_a_l_l_: 
          create section (size, rewrite, overlay base, result, point) 
          w0     : size (call), result (return) 
          w1     : rewrite (call), point (return) 
          w2     : overlay base (call) 
          procno : 19 
           
          F_u_n_c_t_i_o_n_: 
          The procedure may be used for extending virtual memory by crea-
          ting a page which will be placed as the last section in virtual
          memory - if virtual memory ends by a >hole> introduced by proce-
          dure Change Size, then the new section will be placed after that
          >hole>. The point of the first halfword of the new section is gi-
          ven as return parameter. 
           
          The size of the new section is specified in the call as a number
          of halfwords, and will, if necessary, be rounded up to the first
          number divisible by 512. The size must be a positive number and
          must not exceed 1048064 halfwords corresponding to 2047 backing
          storage segments. 
           
                   If the rewrite parameter is 1, then the section will be created
          as a section which should be rewritten into the page file when-
          ever the section is removed from workspace for virtual memory. If
          the rewrite parameter is zero, it signals to the Paging System
          that no rewrite is wanted. 
           
          If the overlay base is non-zero, then it must be an absolute
          address within the resident section of the program denoting that
          the section is an overlay page always to be brought into the job
          process area at the same position (i.e. to the area starting at
          overlay base) - it is checked that the section, if loaded, will
          not exceed resident section. If overlay base is non-zero, then
              the rewrite parameter is irrelevant. 
           
          The procedure may cause innovations in workspace for virtual me-
          mory. However, a page calling the procedure may at return time\f

          have been moved to another position in workspace for virtual
          memory. 
           
                   Result  0 : The section has been created, and the point of the
                      first location of the section is returned. 
                  2 : Insufficient room in workspace for virtual memory to
                      extend the segmenttable (or areas reserved in low end
                      of workspace or a non-removable page present in low
                      end of workspace). 
           
             E_x_a_m_p_l_e_: 
          The following piece of code creates a new non-overlay page with-
          out rewrite attribute and fills some code and data into it: 
           
                             RL   W0,   SIZE     ; 
                    AL   W1,   0        ; 
                    AL   W2,   0        ; 
                    CREATESECTION       ; CREATE SECTION (SIZE,1,0, RE-
                                        ; SULT, POINT); 
                    SE   W0,   0        ; IF RESULT <' 0 
                    JL         ...      ; THEN JUMP AWAY; 
                    RS   W1,   POINT    ; STORE POINT; 
                    GETADDR    W1       ; GETADDRESS (POINT, ADDRESS); 
                    .                   ; COMMENT: NOW FILL SOMETHING 
                    .                   ;          INTO THE AREA POINTED 
                    .                   ;          TO BY ADDRESS; 
                    RL   W1,   POINT    ;
                    AL   W2,   1        ; MODE:= WRITE IMMEDIATELY; 
                    WRITESECTION        ; WRITE SECTION (POINT, MODE); 
                       
                         \f

F_4_._3_._1_5_ _ _ _ _P_r_o_c_e_d_u_r_e_ _D_e_f_i_n_e_ _U_s_e_r_ _P_r_o_c_e_d_u_r_e_ 4.3.15
             
          C_a_l_l_: 
                   define user procedures (interrupt mask, interrupt addr, statproc
          addr). 
          w0     : interrupt mask (call) 
          w1     : interrupt addr (call) 
          w2     : statproc addr (call) 
          procno : 20 
           
          F_u_n_c_t_i_o_n_: 
          If a non-zero interrupt address is specified in the call, then
          this address must be an a_b_s_o_l_u_t_e_ address pointing to a routine to
          be entered when exceptions occur, which cannot be handled by the
          Paging System (see section 4.5). 
           
                   If an interrupt address of zero is specified, then the handling
          of exceptions will be limited to what is performed by the Paging
          System (see also section 4.5). 
           
          The interrupt mask bits of the process, concerning integer and
          floating-point overflow, are set according to the specified in-
          terrupt mask, provided the interupt address parameter is non-zero
          (see ref. 2). 
           
          If a non-zero statproc address is specified in the call, then
          this address must be the a_b_o_s_o_l_u_t_e_ address of a statistics proce-
          dure to be called each time a page is transferred to or from vir-
          tual memory, and each time a page is moved from one place in
          workspace for virtual memory to another. A statproc address of
          zero signifies that the program does not contain a procedure for
          statistics. For further information, see section 4.4. 
           \f

          E_x_a_m_p_l_e_: 
                   A program, which uses the File Processor, wants to define a
          procedure for statistics, but also wants to keep the interrupt
          routine of fp for exception-handling. This can be achieved as
          follows (it is supposed that Define User Procedures has not been
          called before or that it has only been called from the following
          code): 
           
                    AL   W0,  12        ; INF: = INTERRUPT INF; 
                    GETPAGERADDR        ; GET PAGER ADDR (INF, ADDRESS); 
                    DL   W1,  X1 + 2    ; PICK UP INTERR MASK AND ADDR; 
                    RL   W2,  = STATPROC;
                    DEFINEUSERPROCS; DEFINE USERPROCS (MASK, ADDR,
                                         ; STATPROC); 
                     
                     \f

F_       4_._3_._1_6_ _ _ _ _P_r_o_c_e_d_u_r_e_ _G_e_t_ _P_a_g_e_r_ _A_d_d_r_e_s_s_ 4.3.16
           
          C_a_l_l_: 
                   get pager address 
          w0     : information code (call) 
          w1     : address (return) 
          procno : 21 
           
          F_u_n_c_t_i_o_n_: 
          The procedure delivers the (absolute) address of a variable (or
          the first address of a sequence of variables) placed within the
          Paging System. The variable, of which the address is wanted, is
          given by the contents of the information code parameter. 
           
          The possible values of information code, together with descrip-
          tions of what is pointed to by the address returned, may be found
          in app. E. 
           
          E_x_a_m_p_l_e_: 
          The following sequence of instructions forces the Paging System
          to start looking for room from the beginning of the available
          workspace for virtual memory next time a page is to be loaded
          (see also app. D and E): 
           
                    AL   W0,  3         ; INFCODE: = FRAMETABLE INF; 
                    GETPAGERADDR        ; GET PAGER ADDR (INFCODE, ADDRESS);
                    RL   W2,  X1 + 10   ; FETCH AVAILABLE FRAMETABLE FIRST; 
                    AL   W0,  14        ; INFCODE: = VICTIM INF; 
                    GETPAGERADDR        ; GET PAGER ADDR (INFCODE, ADDRESS);
                    RS   W2,  X1 + 0    ; STORE AVAILABLE FRAMETABLE FIRST
                                        ; IN VICTIM; 
           
           \f

F_       4_._3_._1_7_ _ _ _ _P_r_o_c_e_d_u_r_e_ _R_e_m_o_v_e_ _P_a_g_e_f_i_l_e_ 4.3.17
           
          C_a_l_l_: 
          remove pagefile 
          procno : 22 
           
          F_u_n_c_t_i_o_n_: 
          The name of the pagefile is removed from the catalog. 
           
          The Paging System variables >no. of segments> and >pagefile name>
          are zeroized thus prohibiting future references to virtual
          memory.  
           
          If the pagefile has already been removed, then the procedure
          performs nothing. 
           \f

F_4_._4_ _ _ _ _ _ _ _S_t_a_t_i_s_t_i_c_s_ 4.4
           
          Each time a page is read from virtual memory, is written onto
          virtual memory, or is moved from one place to another within
          workspace for virtual memory then the Paging System increments
          one of three counters by 1. How to access these counters may be
          seen in section 4.3.16 and app. E. 
           
          If the program contains a procedure for collection of statistics
          (see section 4.3.15) then the procedure will be entered at its
          first address each time a page is read, written or moved, the
          working registers containing the following: 
           
          w0: cause * 4096 + size 
          w1: address 
          w2: link 
          w3: segment number 
           
                   The left half of working register w0 specifies the c_a_u_s_e_ of why
          the procedure has been called: 1 = move, 3 = read, 5 = write. 
           
          The section is identified by its first s_e_g_m_e_n_t_ _n_u_m_b_e_r_ within vir-
          tual memory (0 <_ segment number <_ number of backing storage
          segments in virtual memory -1), and the s_i_z_e_ of the section is
          given as the number of backing storage segments occupied by it. 
           
          The (absolute) a_d_d_r_e_s_s_ of the first location to receive the sec-
          tion (cause 1 or 3) or of where the section is presently placed
          (cause 5) is supplied in working register w3. 
           
          The procedure is entered before the section is read, written, or
          moved, but after the updating of above mentioned counters. 
           
          The procedure should not cause any internal interrupt to avoid
          inconsistency in the Paging System variables. 
           
          Return from the procedure is performed by executing a jump to the
              address contained in register w2 - the contents of the registers
          is irrelevant at return. 
               
           \f

F_4_._5_ _ _ _ _ _ _ _E_r_r_o_r_ _H_a_n_d_l_i_n_g_ 4.5
           
          If the Paging System runs into a serious error then the interrupt
          routine of the program (see section 4.3.15) will be entered - if
          a program using the File Processer has not called Define User
          Procedures then the interrupt routine will be the interrupt
          routine of fp. 
           
            The Paging System will copy the contents of the register dump,
          originating from the activation of the Paging System interrupt
          routine, to the interrupt routine of the program and will con-
          tinue within that routine: 
           
                        interrupt address +  0: w0 
                                 +  2: w1 
                                 +  4: w2 
                                 +  6: w3 
                                 +  8: status 
                                 + 10: ic 
                                 + 12: cause 
                                 + 14: addr 
                                 + 16: first instruction to be executed 

          The routine is entered with working register w0 containing a re-
          sult (see below, only relevant for causes 102, 104, and 106) -
          the contents of the other working registers is indefined. 
           \f

T_          The cause specifies the reason for activating the routine: 
           
              0   protection violation, illegal virtual address (including
                  references to >holes> in virtual memory introduced by
                  procedure Change Size or existing because the load module
                  did not cover the entire virtual memory with virtual sec-
                  tion headers). 
              2   integer overflow. 
              4   floating point overflow/underflow. 
              6   parameter error in monitor call. 
              8   breakpoint forced by parent. 
             10   zone stack error. 
            100   insufficient room in workspace for virtual memory (inclu-
                  ding the situation where a fixed place section cannot be
                  loaded due to reservation of areas or the presence of a
                  non-removable page). 
            102   discerror, w0 contains a logical statusword packed as
                  described in ref. 5. 
            104   pagefile extension error, w0 contains a result from moni-
                    tor procedure Change Entry (see ref. 2 ). 
                     106   pagefile removal error, w0 contains a result from
                  monitor procedure Remove Entry (see ref. 2 ). 
            108   parameter error in Paging System procedure call. 
            110   illegal overlay base specified as parameter to procedure
                  Create Section or procedure Change Size. 
            112   interrupt address or statproc address not a resident
                  (i.e. positive) address in a call of procedure Define
                  User Procedures. 
            114   bufferclaim exceeded. 
           
          The causes 100 through 114 are generated by the Paging System. A
          situation leading to an error giving cause 100 may posibly be re-
          paired by releasing reserved areas, or unlocking locked pages or
          suspending fixed place attributes on pages. 
           
          The instruction causing activation of the Paging System interrupt
          routine is the one preceding the word pointed to by the dumped
               value of ic. 
 \f

          If the program has specified that it does not contain an inter-
          rupt routine - or if a program not using the File processor has
          not called Define User Procedures, then a serious error will be
          handled as follows: 
           
          The pagefile will be removed if it had been created with a work-
          name to identify it. The registerdump of the Paging System inter-
          rupt routine will be copied to the second word of the job process
          area and foreward, and the result (which is only relevant for
          causes 102, 104, and 106) will be stored in the tenth word of the
          job process area (i.e. after the dumped addr register). Finally a
          break-message, containing the text >break> is sent to parent and
          an endless loop is entered by the Paging System. 
           
          For further information, see ref. 1 and ref. 2. 
           
                 \f

F_       5_._ _ _ _ _ _ _ _ _P_R_O_G_R_A_M_ _T_E_R_M_I_N_A_T_I_O_N_ 5.
           
          The Loader/Paging system does not contain facilities for termina-
          ting the execution of a program, once started. 
           
          This means, that it is entirely up to the program how to
          terminate the run (possibly except in connection with certain
          errors, see section 4.5). A proper action for a program using the
          File Processor would be to enter the fp program termination
          routine, see ref. 4. 
           
          A program using virtual memory may, prior to termination, remove
          the pagefile through calling a Paging System procedure. 
           \f

F_6_._ _ _ _ _ _ _ _ _R_E_Q_U_I_R_E_M_E_N_T_S_ 6.

          For the File Processor, fp, to load SYSLDR000, the process size
          must be at least appr. 8250 halwords. 
           
          In a process of this size: 
          -  can only be loaded programs which do not use virtual memory, 
          -  and at most appr. 3400 halfwords of code and data may be re-
             located into the job process area (if the program does not use
             fp, then a resident section of 1536 + 3400 halfwords may be
             specified, but nothing can be relocated to the first 1536
             halfwords to protect the resident part of fp). 
           
          The process size must be at least appr. 8350 halfwords to load a
          program, which uses as well fp as virtual memory. When the pro-
          gram is started, the workspace for virtual memory will always
          contain at least 4 frames. 
           
                   To load a program which does not use fp, but which uses virtual
          memory, a process size of at least appr. 9850 halfwords must be
          used. When the program is started, the workspace for virtual
          memory will always contain at least 9 frames (not including
          possible frames within the first 1536 halfwords of the process -
          workspace for virtual memory may start in that area if the length
          of the resident code and data together with the length of the
          segmenttable does not exceed 1536 halfwords). 
           
          At least 2 message buffers and 3 area processes must be avail-
          able. 
           \f

 
 \f

F_A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
           
          1.  RCSL No 42-i 1235 
          RC8000 Computer Family, Reference Manual 
           
          2.  RCSL No 31-D477 
          RC8000 Monitor, Part 2 Reference Manual 
           
          3.  RCSL No 31-D364 
              System 3 Utility Programs, Part One 
           
          4.  RCSL No 31-D379 
              System 3 Utility Programs, Part Three 
           
          5.  RCSL No 42-i 0781 
          Algol 7, User>s Manual, Part One 
           
          6.  RCSL No 31-D566 
              RC8000 Macro Assembler, Reference Manual 
           
          7.  RCSL No 31-D567 
              RC8000 Linker, Reference Manual 
           
           \f

F_       B_._ _ _ _ _ _ _ _ _E_R_R_O_R_ _M_E_S_S_A_G_E_S_ _F_R_O_M_ _L_O_A_D_E_R_ B.

          A hard error on the file containing the load module or on the
          page-file causes an error message in the format: 
           
          *** device status <filename' <statusword' 
           
          Where the statusbits are given as text lines. The statusbit
          >checksum error> in connection with the load module file indica-
          tes that a record in the load module contains a checksum error -
          this statusbit is likely to occur if the file does not contain a
          load module, but something else. 
           
          Other error messages from the loader have the format: 
           
              *** sysldr error: <errortext' 
           
          Messages given in a format varying from this one, will originate
          from the File Processor and concern the loading of SYSLDR000 (see
          ref. 3). 
           
          Below is found an alphabetical list of errortexts. Some error-
          texts include a <recordno.' part giving the record mumber of the
          load module record causing the errormessage (the first record in
          the load module has record number 1). 
           
          connect <result' 
              The file containing the load module could not be connected
              due to the specified result: 
              1:  No resources 
              2:  Document malfunction 
              3:  Not user, entry not found 
              4:  Convention error (modekind trouble, too many entry le-
                  vels) 
              5:  Document reserved 
              6:  Name format illegal 
 \f

F_                 fp area <recordno.' 
          The presence of an fp program label in the load module prohi-
          bits relocation of code to the fp-area of the process. 
 
          illegal <recordno.' 
          A number of cases may cause this error text: 
          - Illegal recordtype or -length of a loadmodule record. 
          - Illegal relocation modifier of load address in a section
                header record or of loadvalue in a relocatable code record.
              - Illegal sectionsize (size < 0 or size of a virtual section
                ' 1048064 halfwords). 
          - Illegal rewrite field in a (virtual) section header (must
                be 0 or 1). 
           
          loadaddr <recordno.' 
                       A number of cases may cause this error text: 
              - The load address in the section header record for resident
                section differs from zero, or is not divisible by 512 in
                the section header for a virtual section. 
              - The load address in a relocatable code record is an address
                which has not been defined by any previous section header. 
              - Unknown relocation modifier of load address in a relo-
                catable code record. 
                 
          overlay <recordno.' 
                The overlay base in a (virtual) section header is not resi-
                dent relocatable, overlay base or overlay base + size of
                section - 2 is an address outside resident section, or the
                presence of an fp program label in the load module pro-
                hibits an overlay base within the fp-area of the process. 
                 
          overwrite <recordno.' 
                The load module contains more than one section header for
                resident section, init section, or a given address space in
                virtual memory. 
                 \f

F_                 pagefile err <result' 
              An error, which is specified by result, has occurred during
              generation of the pagefile: 
              2:  Document malfunction 
              3:  Entry not found 
              4:  Entry protected 
              5:  Area process reserved 
              6:  Claims exceeded; name format or new size (at file
                  extension) illegal 
              7:  Maincat not present 
               
          pfl missing 
              The load module does not contain a page file label although
              containing virtual code. 
               
          sequence <recordno.' 
              The load module contains an illegal record sequencing, i.e.
              an fp program label occurs later than pagefile label of sec-
              tion headers, a pagefile label occurs later than section
              headers, or the section header for resident or virtual sec-
              tion occurs later than virtual section headers. 
               
          size <recordno.' 
              The job process area is too small to load the program. 
               
          startaddr <recordno.' 
              Startaddress is neither resident nor virtual relocatable, or
              startaddress is outside resident or virtual address space. 
               
               \f

F_C_._ _ _ _ _ _ _ _ _S_E_G_M_E_N_T_T_A_B_L_E_ C.
               
                   Each segmenttable entry consists of 6 halfwords describing a
          segment in virtual memory. 
           
                           +0 : address 
          +2 : rank, +3: attributes 
          +4 : loadaddress 
           
          A negative a_d_d_r_e_s_s_ is the first virtual address of the segment,
          a non-negative one is an (absolute) address of the first halfword
          of the segment when present in workspace for virtual memory, see
          section 4.1. 
           
          A r_a_n_k_ of zero denotes an empty segmenttable entry, i.e. the en-
          try decribes a >hole> in workspace for virtual memory. A hole may
          exist if the load module does not contain virtual section headers
          covering the entire virtual memory - and holes may be introduced
          by Paging System procedure Change Size. Otherwise rank contains: 
              1 + number of preceding entries belonging to the same page,
          i.e. the first entry of a page has rank equal to 1.  
           
          The a_t_t_r_i_b_u_t_e_s_ contain: 
           
              kind*4 + last*2 + rewrite, 
           
          where k_i_n_d_ 2 denotes that the segment belongs to an overlay page
          and kind 1 that it belongs to a non-overlay page to be brought
          into a fixed place in workspace for virtual memory. Otherwise
          kind is zero. If l_a_s_t_ equals 1, then the segment is the last
          segment within the section. If r_e_w_r_i_t_e_ equals 1, then the segment
          belongs to a section which is rewritten onto the pagefile when it
          is to be removed from workspace of virtual memory (unless the
          rewrite attribute has been overridden by a call of Paging System
          procedure Write Section). 
           \f

F_                 If the segment belongs to an overlay page (kind 2) then
          l_o_a_d_a_d_d_r_e_s_s_ is the (absolute) address where to load the segment.
          If the segment belongs to a non-overlay page to be loaded into a
          fixed place in workspace for virtual memory (kind 1) then load-
          address is the (absolute) address the frametable entry describing
          the frame where to load the segment. Otherwise loadaddress is
          irrelevant. 
           
          The first word in the segmenttable is pointed to by the Paging
          System variable >segmenttable first>, and the word following the
          table is pointed to by >segmenttable top>. Number of entries in
          the table is contained in the variable >no. of segments>. If vir-
          tual memory is empty, then >no. of segments> equals zero, and
          >segmenttable top> equals >segmenttable first>. 
           
          \f

F_D_._ _ _ _ _ _ _ _ _F_R_A_M_E_T_A_B_L_E_ D.
           
          Each frametable entry consists of 6 halfwords decribing a frame
          (which is a block of 512 halfwords) in workspace for virtual me-
          mory: 
          +0 : contents 
          +2 : rank _a, +3 : rank _b 
          +4 : attributes, + 5 : priority 
           
          If the frame contains a segment from virtual memory, then the
          c_o_n_t_e_n_t_s_ field is the (absolute) address of the segmenttable en-
          try decribing the segment. Otherwise contents is zero, i.e. the
          entry decribes a frame which is currently empty. 
           
          If contents is zero, then r_a_n_k_ _a_ and r_a_n_k_ _b_ are both 1. otherwi-
          se, rank _a contains: 
              1 + number of preceding entries belonging to the same page,
          and rank _b contains: 
          1 + number of following entries belonging to the same page,
          i.e. the frametable entries of a page residing in workspace for
          virtual memory have rank _a equal to the ranks of the segment-
          table entries. The last frametable entry of the page has rank _b
          equal to 1. 
           
                   The a_t_t_r_i_b_u_t_e_s_ contain: 
           
              lock*16 + demanded*8 + kind*4 + irrel*1 + rewrite. 
           
          If the page is softlocked then l_o_c_k_ equals 1, if it is hardlocked
          then lock equals 2, otherwise lock is zero. The d_e_m_a_n_d_e_d_ - field
          is used by the Paging System during the processing of an inter-
          rupt (including procedure execution) - the field equals 1 for
          pages which must not be removed from workspace for virtual memory
          during the processing (e.g. used in connection with interrupts
          caused by execution of an instruction situated in workspace for
          virtual memory). The k_i_n_d_ field is 1 if the page is not allowed
          to reside in other frame(s) than the actual one(s), the contents\f

          of the i_r_r_e_l_ field is irrelevant, and a r_e_w_r_i_t_e_ field of 1 sig-
          nals that the page must be rewritten onto the pagefile when it is
          removed from virtual memory. 
           
          The entry has p_r_i_o_r_i_t_y_ 0 if: 
              contents = 0   (contents 0=/5  0   demanded = 0   lock = 0),
          meaning that the corresponding frame is empty or may be emptied
          (together with possible neighbouring frames of the same page) by
          removing the page from workspace for virtual memory (possibly
          after rewriting it). The entry has priority 2 if: 
              contents 0=/5  0   ((kind = 1   (demanded = 1   lock = 1))  lock = 2) 
          meaning that the frame cannot be made empty at the moment. Other-
          wise priority is 1, and the frame (together with possible neigh-
          bouring frames) may be made empty by moving the page to another  
          position in workspace for virtual memory. 
           
          The Paging System variable >frametable base> points to a ficti-
          tious entry preceding the first table entry, which is pointed to
          by >frametable first>. The last entry in the table is pointed to
          by >frametable last> and the word following the table by
          >frametable top>. If the job process does not contain room for
          even a single frame then >frametable top> equals >frametable
          first>; >frametable base> and >frametable last> will equal this
          value less the entrylength. 
           
                   Furthermore a set of pointers exists for that part of workspace
          for virtual memory which is available for pages (i.e. the part not
          reserved by procedure Reserve Area) so that: 
              >available frametable base>  '_ >frametable base>, 
              >available frametable first> '_ >frametable first>, 
              >available frametable last>  <_ >frametable last>, and  
              >available frametable top>   <_ >frametable top>. 
           
          The variable >victim> points to the frametable entry from where
          the Paging System will start searching for room when a page of
          kind 0 (see app. C) is to be loaded. The following must be ful-
          filled: 
              >available frametable first> <_ >victim> <_ >available top>, and
              frametable (>victim>, rank _a) = 1 
          (>victim> equal to >available frametable top> will cause the
          search to start at >available frametable first>). 
           
           \f

F_E_._ _ _ _ _ _ _ _ _P_A_G_I_N_G_ _S_Y_S_T_E_M_ _V_A_R_I_A_B_L_E_S_ E.
           
          Below are listed the Paging System information codes (see section
          4.3.16) and what is contained in the area pointed to by the
          addresses corresponding to the codes. Each Paging System
          variable is contained in one word. 
           
          C_o_d_e_      a_d_d_r_e_s_s_ 
           
          1         +0 : resident first (abs.addr of job process area
                           first). 
          +2 :   size of resident section (from load module). 
          +4 :   init first (abs.addr of init section first). 
          +6 :   size of init section (from load module). 
           
          2         +0 :   abs.addr of first of workspace for virtual
                           memory. 
          +2 :   abs.addr of top of workspace for virtual memory.
           
                   3         +0 : frametable base,see app. D. 
                    +2 : frametable first,                 -   -   - 
                    +4 : frametable last,-   -   - 
                    +6 : frametable top,-   -   - 
                    +8 : available frametable base,-   -   - 
                    +10: available frametable first,-   -   - 
                    +12: available frametable last,-   -   -  
                    +14: available frametable top,-   -   - 
           
          4         +0 : segmenttable first, see app. C 
          +2 : segmenttable top,    -   -   - 
                    +4 : no. of segments,     -   -   -. This word is also
                         the first word of the entrytail of the pagefile. 
           The entrytail consists of 10 words. 
           
          5         +0 : abs.addr of the halfword following reserved areas
          in low end of workspace for virtual memory. 
                    +2 : abs.addr of the left half of the word preceding\f

                          reserved areas in high end of workspace for
                          virtual memory. 
           
          6         +0 : module title (4 words, from the load module). 
           
          7         +0 : module date (from the load module). 
           
          8         +0 : module revision (from the load module). 
           
          9         +0 : contains 1 if an fp program label was present in
                         the load module - is zero otherwise. 
           
          10        +0 : module start address (from the load module, but
                         has been relocated). 
           
                   11        +0 : pagefile name (4 words). 
                    +8 : name table address of pagefile name. 
                    +10: contains 0 if the pagefile has a workname, is
otherwise different from zero. 
           
          12        +0 : interrupt mask (initially zero). 
                    +2 : interrupt address for interrupts not handled by
                         the Paging System (intially zero or equal to
                         interrupt address of the File Processor). 
          +4 : address of statistics procedure (intially zero). 
           
          13        +0 : number of pages read. 
                    +2 : number of pages written. 
                    +6 : number of pages moved. 
           
          14        +0 : victim, see app. D. 
           
          15        Paging System interrupt routine, 
                    +0 : register dump area. 
                    +16: interrupt routine entry point. 
           \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.  BEJTENING ..............................................   2 
              2.1  Betjeningspanel ...................................   2 
              2.2  Papirfremføring ...................................   4 
              2.3  Indstillinger vedrørende udskrift .................   5 
              2.4  Vertikal formatstyring (VFU) ......................   7 
              2.5  Farvebånd .........................................   7 
           
          3.  BETJENINGSVEJLEDNING ...................................   8 
              3.1  Start/Stop ........................................   8 
              3.2  Isætning af VFU strimmel ..........................   8 
              3.3  Isætning af papir .................................   9 
           
          4.  SUPPLERENDE INFORMATION ................................  12 
              4.1  Fremstilling af VFU strimmel ......................  12 
              4.2  Skift af farvebånd ................................  13 
              4.3  Vedligeholdelse ...................................  15 
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_K_T_I_O_N_                                                        1.
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 1: Linieskriver. 
           
          Linieskriveren skal altid tændes/slukkes med hovedafbryderen, der
          er placeret på forsiden af understellet (se figuren). Bemærk, at
          linieskriveren altid skal tændes e_f_t_e_r_ at selve datamatsystemet
          er tændt (på grund af startstrøm). 
           
          Der er direkte adgang til betjeningspanelet, hvorimod linieskri-
          verens topdæksel og tromlelågen skal åbnes for at isætte papir,
          foretage indstillinger vedrørende udskrivninger, etc. A_d_v_a_r_s_e_l_:
          Når tromlelågen åbnes, vil der være fri adgang til roterende
          dele; vent derfor indtil disse dele har stoppet deres rotation,
          før egentlige betjeningsforløb påbegyndes. 
           \f

F_       2_._ _ _ _ _ _ _ _ _B_E_T_J_E_N_I_N_G_ 2.
           
2_._1_ _ _ _ _ _ _ _B_e_t_j_e_n_i_n_g_s_p_a_n_e_l_ 2.1
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 2: Betjeningspanel. 
           
          1) POWER ON                 - lyser, når der er tændt for linie-
             indikator                  skriveren med hovedafbryderen (se
                                        fig. 1). Linieskriveren skal altid
                                        tændes/slukkes særskilt. 
                                         
          2) ALARM                    - lyser, når der indtræffer en fejl-
             indikator                  tilstand. Linieskriveren kobles
                                        derved off-line. 
                                         
          3) CLEAR                    - når kontakten trykkes ned, slettes
             kontakt                    en eventuel ALARM indikation. 
                                         \f

          4) READY                    - lyser, når linieskriveren er klar
             indikator                  til at blive koblet on-line. 
                                         
          5) ON/OFF LINE              - med denne kontakt kobles linieskri-
             kontakt/indikator          veren on-/off-line. Når kontakten
                                        trykkes ned og den indbyggede in-
                                        dikator derved tændes, kobles li-
                                        nieskriveren on-line - og vice
                                        versa. Umiddelbart når linieskri-
                                        veren startes, vil indikatoren være
                                        slukket. 
                                         
          6) TOP-OF-FORM              - når kontakten trykkes ned, føres
             kontakt                    papiret frem til begyndelsen af ny
                                        side. Denne funktion kan kun benyt-
                                        tes, når linieskriveren er off-
                                        line. 
                                         
          7) PAPER STEP               - når kontakten trykkes ned, føres
             kontakt                    papiret frem til ny linie. Denne
                                        funktion kan kun benyttes, når
                                        linieskriveren er off-line. 
                                         
          8) FORMS RESET              - med kontakten i nederste stilling
             kontakt                    kan VERTIKAL INDSTILLING (GROV)
                                        benyttes til trinvis indstilling af
                                        papirpositionen. Linieskriveren
                                        skal være tændt. 
                                         
          9) 6 LPI / 8 LPI            - med kontakten vælges linietætheden
             kontakt                    til henholdsvis 6 eller 8 linier
                                        pr. tomme. 
                                         
         10) Fejlindikatorer          - når en af fejlindikatorerne lyser,
                                        er der indtruffet en af følgende
                                        fejlsituationer: 
                                         \f

                       HAMMER         - fejl vedrørende hammer; 
                                         
                       FORMAT         - fejl vedrørende formatstyring - kan
                                        anulleres med FORMS RESET (8); 
                                         
                       RIBBON         - fejl vedrørende farvebånd
                                        (fremføring/farvebånd itu); 
                                         
                       GATE           - lågen til skrivetromlen ikke
                                        ordentligt lukket; 
                                         
                       PAPER          - fejl vedrørende papir (mangler
                                        papir/papir itu); 
                                         
                       TAPE (option)  - fejl vedrørende VFU. 
                                         
                                         
2_._2_ _ _ _ _ _ _ _P_a_p_i_r_f_r_e_m_f_ø_r_i_n_g_ 2.2
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
          Figur 3: Papirfremføring (højre side). 
                                         
          Papiret føres fra linieskriverens forside under tromlelågen op
          til papirfremføringen og forlader linieskriveren bagtil. 
           \f

                   Papiret sættes i fremføringsenhederne, idet modholderpladerne
          åbnes, papiret sættes på fremføringsbælterne og modholderpladerne
          lukkes ned over papiret. 
           
          Fremføringsenhederne kan flyttes sideværts, når drejelåsen åbnes.
          Små ændringer i indstillingen, især med henblik på justering af
          den tværgående papirstramning, kan udføres med fingerhjulet på
          siden af fremføringsenheden. Korrekt papirstramning medfører, at
          fremføringshullerne deformeres let. 
           
           
2_._3_ _ _ _ _ _ _ _I_n_d_s_t_i_l_l_i_n_g_e_r_ _v_e_d_r_ø_r_e_n_d_e_ _u_d_s_k_r_i_f_t_ 2.3
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 4: Indstilling af papirposition. 
           
          Papiret kan indstilles, således at udskriften placeres i forud-
          valgte positioner. Indstillingen sker ved at flytte papiret ver-
          tikalt og horisontalt ved hjælp af de håndhjul, der beskrives i
          det følgende (håndhjulene er placeret til højre for betjenings-
          panelet som vist i fig. 4): 
           \f

                   VERTIAL INDSTILLING         - tillader trinvis grovindstilling.
          (GROV)                        FORMS RESET kontakt skal trykkes
          håndhjul                      ned medens indstillingen foretages.
                                         
          VERTIKAL INDSTILLING        - tillader finindstilling indenfor de
          (FIN)                         trinvise indstillinger, der kan
          håndhjul                      opnås ved grovindstillingen. FORMS
                                        RESET kontakten skal være i øverste
                                        stilling, når indstillingen fore-
                                        tages. 
                                         
          HORISONTAL INDSTILLING      - tillader finindstilling i sideværts
          håndhjul                      retning (grovindstillinger skal
                                        foretages ved at flytte fremfø-
                                        ringsenhederne direkte). 
                                         
          Desuden findes følgende indstillingsmuligheder: 
                                         
          PAPIRTYKKELSE               - placeret neden under håndhjulet til
          håndhjul                      VERTIKAL INDSTILLING (GROV) - se
                                        fig. 4. Benyttes til at regulere
                                        afstanden mellem skrivetromlen og
                                        konsollen med anslagshamrene, hvor-
                                        imellem papiret føres under ud-
                                        skrivningen. Denne regulering er
                                        nødvendig for at kompensere for
                                        tykkelsesforskelle, når der f.eks.
                                        benyttes flerlags formularer. Antal
          (MULTI-COPY)                  af lag (kopier) indikeres på MULTI-
          skala                         COPY skalaen. 
                                         
          FASE INDSTILLING            - placeret ovenpå styreskab (se fig.
          drejeknap                     5). Tillader indstilling af ham-
                                        meranslag, således at både øverste
                                        og nederste del af tegnene udskri-
                                        ves ensartet kraftigt. 
                                         \f

                    
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
          Figur 5: Indstilling af hammeranslag. 
                                         
 
2_._4_ _ _ _ _ _ _ _V_e_r_t_i_k_a_l_ _f_o_r_m_a_t_s_t_y_r_i_n_g_ _(_V_F_U_)_ 2.4
           
          Se 4.1: Fremstilling af VFU strimmel og 3.2: Isætning af VFU
          strimmel. 
           
           
2_._5_ _ _ _ _ _ _ _F_a_r_v_e_b_å_n_d_ 2.5
           
          Se 4.2: Skift af farvebånd. 
           \f

F_       3_._ _ _ _ _ _ _ _ _B_E_T_J_E_N_I_N_G_S_V_E_J_L_E_D_N_I_N_G_                                             3.
           
3_._1_ _ _ _ _ _ _ _S_t_a_r_t_/_S_t_o_p_ 3.1
           
          Linieskriveren tændes/slukkes med hovedafbryderen og når den er
          tændt, lyser POWER ON indikatoren på betjeningspanelet. 
           
          Bemærk: Linieskriveren tændes altid e_f_t_e_r_, at selve systemet er
                  blevet tændt. For at bibeholde denne rækkefølge slukkes
                  linieskriveren, f_ø_r_ selve systemet slukkes. 
                   
          Hvis farvebånd, VFU strimmel og papir er isat i linieskriveren,
          kobles denne on-line med ON/OFF LINE kontakten. 
           
           
3_._2_ _ _ _ _ _ _ _I_s_æ_t_n_i_n_g_ _a_f_ _V_F_U_ _s_t_r_i_m_m_e_l_ 3.2
           
          VFU strimlen fremstilles som anført i 4.1. Strimlen sættes i VFU
          læseren som følger: 
           
          1. Linieskriveren kobles off-line med ON/OFF LINE kontakten. 
              
                   2. Linieskriverens topdæksel åbnes. Modholdet på VFU strim-
             mellæseren åbnes, således at fremføringshjulet er frit. 
              
          3. VFU strimlen sættes i læseren, således at k_a_n_a_l_ _1_ på strimlen
             vender mod linieskriverens frontside, (se fig. 6). Sørg for,
             at fremføringshullerne fanger tænderne på fremføringshjulet. 
              
          4. Luk modholdet ned over strimlen. 
              
          5. Tryk på TAPE START kontakten. VFU strimlen bliver derefter
             indlæst. 
              
          6. Sørg for, at papir og farvebånd er klar til drift. 
              
          7. Luk topdækslet. Linieskriveren er nu klar til drift. 
              \f

                   B_e_m_æ_r_k_: 
          Hvis der ikke isættes en VFU strimmel, opfattes dette af
          linieskriveren, som om der var isat en strimmel med alle huller
          udstandset i alle spor. 
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 6: Isætning af VFU strimmel. 
           
           
3_._3_ _ _ _ _ _ _ _I_s_æ_t_n_i_n_g_ _a_f_ _p_a_p_i_r_ 3.3
           
          1. Tænd for linieskriveren, men lad den forblive off-line. 
              
          2. Tryk på TOP-OF-FORM kontakten (hvorved fremføringsenhederne
             drejes frem til en position svarende til positionen for ny
             side). 
              
          3. Åben topdækslet og tromlelågen (låsearmen til tromlelågen ses
             på fig. 4). 
              
             A_D_V_A_R_S_E_L_: 
             Vent indtil skrivetromlen har stoppet sin rotation, før næste
             trin påbegyndes. 
              
          4. Modholderpladerne på fremføringsenhederne åbnes. 
              \f

                   5. Papiret isættes i fremføringsenhederne og modholderpladerne
             lukkes ned over papiret. Om nødvendigt løsnes drejelåsene til
             fremføringsenhederne og der foretages justeringer med hensyn
             til papirbredde og med hensyn til grovindstilling af papirets
             position i sideværts retning. Herefter låses fremføringsenhe-
             derne igen. Til slut justeres papirstramningen i tværgående
             retning (fremføringshuller let deformerede) ved brug af
             fingerhjulene. 
              
          6. Papiret indstilles med afrivningslinien i ny side position,
             idet FORMS RESET kontakten holdes nedtrykket og papiret
             flyttes ved at dreje på VERTIKAL INDSTILLING (GROV) håndhju-
             let. 
              
          7. Finindstilling af papiret foretages med VERTIKAL INDSTILLING
             (FIN) og HORISONTAL INDSTILLING håndhjulene. Til støtte ved
             indstillingen findes indeksmærker for udskriftsliniens place-
             ring og en skala ved venstre margen (jævnfør fig. 7). 
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
             Figur 7: Papirindstilling; indeksmærke, skala. 
              \f

          8. Kontrollr ligeledes om PAPIRTYKKELSE håndhjulet er indstillet
             svarende til den formulartykkelse, der er i brug. Indstillin-
             gen indikeres på MULTI-COPY skalaen. 
              
          9. Luk tromlelågen og topdækslet. 
              
         10. READY indikatoren skulle nu være tændt og linieskriveren er
             klar til at blive koblet on-line. 
              \f

F_       4_._ _ _ _ _ _ _ _ _S_U_P_P_L_E_R_E_N_D_E_ _I_N_F_O_R_M_A_T_I_O_N_                                          4.
           
4_._1_ _ _ _ _ _ _ _F_r_e_m_s_t_i_l_l_i_n_g_ _a_f_ _V_F_U_ _s_t_r_i_m_m_e_l_ 4.1
           
          Linieskriveren benytter en 12-kanal hulstrimmel. Strimlen kan
          programmeres som følger ved hjælp af et håndhulleudstyr: 
           
          1. Længden af VFU strimlen beregnes efter følgende formel: 
              
             a) antal huller i VFU strimmel = 6 x længden af formularen i
                tommer, hvis der skal arbejdes med 6 linier pr. tomme,  
                 
                eller 
                 
             b) antal huller i VFU strimmel = 8 x længden af formularen,
                hvis der skal arbejdes med 8 linier pr. tomme. 
                 
          2. Strimlen placeres i håndhulleudstyret og der hulles et hul i
             k_a_n_a_l_ _1_ svarende til ny side position. 
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
             Figur 8: Håndhulleudstyr. 
              \f

                   3. Skal der arbejdes med vertikal tabulering, tælles frem til det
             sted, hvortil tabuleringen skal ske, og der hulles et hul i en
             af kanalerne u_n_d_t_a_g_e_n_ i kanal 1. Hvilken kanal, der skal be-
             nyttes, afhænger af det aktuelle udskriftsprogram. 
              
          4. Gentag trin 3 for eventuelle yderligere vertikale tabulerin-
             ger. 
              
             B_e_m_æ_r_k_: 
             En VFU strimmel bør være mindst 10 tommer i omkreds. Medfører
             den aktuelle formular en korte VFU strimmel, skal der laves en
             strimmel svarende til 2 eller 3 formularer i forlængelse af
             hinanden. VFU strimlen skal danne en sløjfe stor nok til at
             kunne beværes uhindret i strimmellæseren. 
              
          Strimlen kan herefter splejses på følgende måde: 
              
          5. Strimlens to ender placeres over hinanden, så perforeringshul-
             lerne falder sammen og strimmelenderne ligger korrekt i for-
             længelse af hinanden. 
              
          6. Lim enderne sammen, eller brug tape til splejsningen - undgå
             at huller tildækkes. 
              
          VFU strimlen sættes i læseren som beskrevet i 3.2. 
              
              
4_._2_ _ _ _ _ _ _ _S_k_i_f_t_ _a_f_ _f_a_r_v_e_b_å_n_d_ 4.2
              
          Gå frem som følger: 
           
          1. Åben topdækslet og tromlelågen. Sving tromlelågen helt ud til
             siden. 
              
             A_D_V_A_R_S_E_L_: Vent indtil skrivetromlen har stoppet sin rotation,
             før næste trin påbegyndes. 
              \f

          2. Papirstrammeren (se fig. 9) holdes med den ene hånd og udlø-
             serknappen trækkes ud med den anden, hvorefter papirstrammer-
             bjælken kan fjernes. 
              
          N_B_: 
          Sammen med farvebåndet leveres et par plastikhandsker - det skal
          kraftigt tilrådes at bruge disse, nårsomhelst man arbejder med
          farvebåndet. 
              
          3. Farvebåndsrullerne frigøres nu, idet den enkelte rulle skubbes
             mod venstre som angivet på figuren. Den fjederbelastede holder
             flyttes derved og rullen kan løftes fri af den fastmonterede
             holder. Begge ruller fjernes på denne måde. 
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
             Figur 9: Skift af farvebånd. 
              
          4. De to nye ruller tages frem og holdes således, at det nye
             farvebånd afrulles fra overkanten af den øverste rulle. 
              
          5. Den nye båndrulle isættes øverst, idet enden af båndrullen
             skubbes mod den fjederbelastede holder, hvorved den modsatte
             ende kan placeres i den fastmonterede holder. Man skal sikre
             sig, at medbringerstiften i holderen fanger i udfræsningen i
             enden af båndrullen. 
              \f

          6. Der afrulles nu så meget farvebånd, at den nederste båndrulle
             kan isættes. Det afrullede farvebånd trækkes ned over skrive-
             tromlen via farvebåndsføringerne. Selve båndrullen sættes i
             som anvist i trin 5. 
              
          7. Papirstrammerbjælken sættes i igen; først sættes den på plads
             i konsolenden, derefter skubbes den ind i føringen i modsatte
             side. Udløserknappen trækkes ud, mens bjælken sættes ind i
             føringen. Når papirstrammeren er isat, kan den indstilles ved
             hjælp af indekseringshakkene i føringsskinnen. 
              
          8. Er der papir i linieskriveren, lukkes og låses tromlelågen og
             topdækslet lukkes. Hvis der er tændt for linieskriveren,
             trykkes på CLEAR kontakt. 
              
           
4_._3_ _ _ _ _ _ _ _V_e_d_l_i_g_e_h_o_l_d_e_l_s_e_ 4.3
              
          1_ _g_a_n_g_ _h_v_e_r_ _u_g_e_ _(_h_v_e_r_ _4_0_ _d_r_i_f_t_s_t_i_m_e_r_)_ 
           
          Papirfremføringsmekanisme m.m. rengøres med støvsuger. 
           
          Printtromlen rengøres med en børste vædet i isopropyl alkohol, og
          aftørres med en fnugfri klud. 
           
          Brug ikke for megen rensevæske, da denne kan trænge ind i lejerne
          og ødelægge disse. 
           
          Farvebåndsstyret rengøres med isopropyl alkohol på en klud. 
           \f

F_                  
           \f

F_                 Figurtekst 42-i1529 
           
          1) Inspektionsrude                 PAPIRTYK- 
                                             KELSE 
             Betjeningspanel 
                                          5) FASE 
                                             INDSTILLING 
             Tromlelåge 
           
             Hovedafbryder                6) TAPE START 
           
          3) Lås                          7) Indeksmærke, 
                                             udskrivnings- 
             Fingerhjul                      linie 
           
          4) MULTI-                          Indeksskala, 
             COPY                            venstre margin 
           
             HORISONTAL                   9) Udløserknap 
             INDSTILLING 
              
             Tromlelåge-                     Papirstram- 
             låsearm                         merbjælke 
              
             VERTIKAL                        Konsol 
             INDSTILLING 
             (FIN) 
              
             VERTIKAL                        Skubberetning 
             INDSTILLING                     ved skift af 
             (GROV)                          båndrulle 
              \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.  OPERATING CONTROLS .....................................   2 
              2.1  Control Panel .....................................   2 
              2.2  Paper Transport Unit ..............................   4 
              2.3  Printing Adjustment Controls ......................   5 
              2.4  Vertical Format Unit ..............................   7 
              2.5  Colour Ribbon .....................................   7 
           
          3.  OPERATING PROCEDURES ...................................   8 
              3.1  Power On/Off ......................................   8 
              3.2  Loading the VFU Tape ..............................   8 
              3.3  Loading the Paper Form ............................   9 
           
          4.  SUPPLEMENTARY INFORMATION ..............................  12 
              4.1  VFU Tape Programming ..............................  12 
              4.2  Colour Ribbon Replacement .........................  13 
              4.3  Maintenance .......................................  15 
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 1: The line printer. 
           
          The mains power is switched on/off by means of the mains power
          circuit breaker located as shown. Note that the power-on
          switching always must be manually performed a_f_t_e_r_ having switched
          power on to the computer system (due to start peak currency). 
           
          The control panel can be attended directly whereas the top cover
          and the drum gate have to be opened in order to load paper, to
          adjust print position, etc. C_a_u_t_i_o_n_: Opening the drum gate will
          expose rotating parts; wait for the rotation to stop before
          entering any operating procedures. 
           \f

F_       2_._ _ _ _ _ _ _ _ _O_P_E_R_A_T_I_N_G_ _C_O_N_T_R_O_L_S_ 2.
           
2_._1_ _ _ _ _ _ _ _C_o_n_t_r_o_l_ _P_a_n_e_l_ 2.1
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 2: Control panel. 
           
          1) POWER ON                 - lights when power is applied to
             indicator                  printer. Power must always be
                                        manually switched on/off with the
                                        mains power circuit breaker (see
                                        fig. 1). 
                                         
          2) ALARM                    - when lit indicates that a fault
             indicator                  condition exists. A fault condition
                                        takes the printer off-line. 
                                         
          3) CLEAR                    - pressing the CLEAR switch will
             switch                     master clear the printer logic. 
                                         \f

                   4) READY                    - when lit indicates that no fault
             indicator                  condition exists and that the
                                        printer is ready to be placed
                                        on-line. 
                                         
          5) ON/OFF LINE              - switches the printer on-line or
             push-button/indicator      off-line. The printer is on-line
                                        when the switch is illuminated. At
                                        initial power up the indicator will
                                        be off. 
                                         
          6) TOP-OF-FORM              - pressing the TOP-OF-FORM push-
             push-button                button advances the paper to the
                                        top of the next form. This control
                                        functions only when the printer is
                                        off-line. 
                                         
          7) PAPER STEP               - pressing the PAPER STEP switch
             push-button                advances the paper to the next
                                        line. This control only functions
                                        when the printer is off-line. 
                                         
          8) FORMS RESET              - when held in the down position
             switch                     allows the paper to be repositioned
                                        with the VERTICAL ADJUSTMENT
                                        (COARSE) control when power is on. 
                                         
          9) 6 LPI / 8 LPI            - for selecting vertical spacing of
             selector switch            six lines per inch or eight lines
                                        per inch. 
                                         
         10) Fault indicators         - when lit the fault conditions
                                        indicated are as follows: 
                                         \f

                               HAMMER          - fault in the hammer circuitry; 
                                         
                      FORMAT          - fault condition in the format
                                        controller - to reset use the FORMS
                                        RESET switch (8); 
                                         
                      RIBBON          - fault in ribbon motor or torn
                                        ribbon; 
                                         
                      GATE            - drum gate is unlacthed; 
                                         
                      PAPER           - paper is out or paper is torn; 
                                         
                      TAPE (optional) - fault in VFU (Vertical Format
                                        Unit). 
                                         
                                         
2_._2_ _ _ _ _ _ _ _P_a_p_e_r_ _T_r_a_n_s_p_o_r_t_ _U_n_i_t_ 2.2
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 3: Paper transport; right-hand tractor. 
           \f

                   The supply of print forms is positioned at the printer front
          below the drum gate. During printing the paper is advanced
          through the printer by means of the tractors and the print-outs
          leave the printer to the rear. 
           
          Paper is loaded to the sprocket belts of the tractors by opening
          the pressure plates, inserting the paper, and closing the
          pressure plates. 
           
          The tractors can be moved laterally when unlocking the tractor
          locks. Small corrections of the tractor positions, especially to
          achieve correct horizontal paper tension, can be accomplished
          using the tension adjustment wheels. Correct paper tension will
          cause the sprocket holes to be slightly deformed. 
           
           
2_._3_ _ _ _ _ _ _ _P_r_i_n_t_i_n_g_ _A_d_j_u_s_t_m_e_n_t_ _C_o_n_t_r_o_l_s_ 2.3
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 4: Printing adjustment knobs. 
           \f

                   The position of the print form can be adjusted to obtain printing
          at precisely predetermined positions. The print form can be moved
          vertically and horizontally by means of the following adjustment
          knobs (located to the right of the control panel as shown in fig.
          4): 
           
          VERTICAL ADJUSTMENT         - allows the operator to position the
          (COARSE)                      form in predetermined increments.
          handwheel                     To make a coarse adjustment, the
                                        FORMS RESET switch must be held in
                                        the down position. 
                                         
          VERTICAL ADJUSTMENT         - permits adjustment between the
          (FINE)                        increments of the coarse adjust-
          handwheel                     ment. To make a fine adjustment,
                                        the FORMS RESET must be in the up
                                        position. 
                                         
          HORIZONTAL ADJUSTMENT       - permits fine adjustments of the
          handwheel                     horizontal position of the form
                                        (coarse adjustments should be
                                        obtained by moving the tractors). 
                                         
          Controls are further provided for the following adjustments: 
                                         
          FORMS THICKNESS             - located below the VERTICAL ADJUST-
          handwheel                     MENT (COARSE) handwheel (see fig.
                                        4). Used to adjust the spacing
                                        between the character drum and the
                                        hammer bank between which the paper
                                        moves. This adjustment is used to
                                        compensate for the thickness of
          (MULTI-COPY)                  multipart forms. Position is indi-
          scale                         cated by MULTI-COPY indicator. 
                                         \f

          PHASE ADJUSTMENT            - located above the logic enclosure
                                        (see fig. 5). Allows the operator
                                        to adjust the hammer firing to
                                        maintain equal print density at the
                                        top and bottom of the character. 
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                         
          Figure 5: Phase adjustment. 
           
           
2_._4_ _ _ _ _ _ _ _V_e_r_t_i_c_a_l_ _F_o_r_m_a_t_ _U_n_i_t_ 2.4
           
          See 4.1: VFU Tape Programming, and 3.2: Loading the VFU Tape. 
           
           
2_._5_ _ _ _ _ _ _ _C_o_l_o_u_r_ _R_i_b_b_o_n_ 2.5
           
          See 4.2: Colour Ribbon Replacement. 
           \f

F_       3_._ _ _ _ _ _ _ _ _O_P_E_R_A_T_I_N_G_ _P_R_O_C_E_D_U_R_E_S_ 3.
           
3_._1_ _ _ _ _ _ _ _P_o_w_e_r_ _O_n_/_O_f_f_ 3.1
           
          Power on/off is controlled with the mains power circuit breaker
          and is indicated at the control panel by the POWER ON indicator. 
           
          Note: Power to the printer must always be switched on a_f_t_e_r_
                having switched on power to the computer sytem. To maintain
                this succession, power should be switched off at the
                printer b_e_f_o_r_e_ switching off the system. 
                 
          If the colour ribbon, the VFU tape and the paper forms are ready
          for operation, the printer is taken on-line using the ON/OFF LINE
          push-button. 
           
           
3_._2_ _ _ _ _ _ _ _L_o_a_d_i_n_g_ _t_h_e_ _V_F_U_ _T_a_p_e_ 3.2
           
          Having programmed the VFU tape as outlined in 4.1, the tape is
          loaded as follows: 
           
          1. Using the ON/OFF LINE push-button, the printer is taken
             off-line. 
              
          2. Open the printer top cover. Lift the tape loop reader handle
             until the drive sprocket shoe clears the drive sprocket teeth.
              
          3. Place the tape loop over the tape loop reader capstan and fit
             the tape drive holes over the drive sprocket teeth with
             channel 1 towards the front of the printer (see fig. 6). 
              
          4. Close the tape loop reader and ensure that the tape remains
             properly attached to the drive sprocket while the drive
             sprocket shoe clamps it in place. 
              
          5. Press the TAPE START switch, and the tape will load. 
              \f

                   6. Ensure that paper and ribbon are properly installed. 
              
          7. After the cover is secured and the door closed, the printer is
             ready to operate. 
              
          N_o_t_e_: With no tape loop installed, tape loop instructions will
                behave as if all holes are punched in all channels. 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
          Figure 6: Loading the VFU tape. 
                 
                 
3_._3_ _ _ _ _ _ _ _L_o_a_d_i_n_g_ _t_h_e_ _P_a_p_e_r_ _F_o_r_m_ 3.3
           
          1. Switch power on, but let the printer stay in the off-line
             mode. 
              
          2. Press and release the TOP-OF-FORM push-button (whereby the
             tractors are advanced to the top of form position). 
              
          3. Lift the printer cover and open the drum gate (for position of
             drum gate latch, see fig. 4). 
              
             C_A_U_T_I_O_N_: Wait for character drum to stop rotation before
             proceeding to the next step. 
              
          4. Open the spring-loaded pressure plates on the tractors. 
              \f

                   5. Place the paper in the tractors and close the pressure plates.
             If necessary, loosen the tractor locks and move the tractors
             laterally to adjust for correct paper width and for coarse
             horizontal positioning of paper form. Thighten the tractor
             locks. Adjust for correct lateral paper tension (sprocket
             holes slightly deformed) using thumbwheels. 
              
          6. Align the paper perforation to the top of form position by
             depressing FORMS RESET switch and rotating the tractor shaft
             using the VERTICAL ADJUSTMENT (COARSE) handwheel. 
              
          7. Fine adjustments of the paper form can be accomplished using
             the VERTICAL ADJUSTMENT (FINE) and the HORIZONTAL ADJUSTMENT
             handwheels. To support the adjustments the print line index
             and the left margin index are provided as indicated in fig. 7.
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
          Figure 7: Adjustment indexes. 
              
          8. Also check that the FORMS THICKNESS control as indicated by
             the MULTI-COPY scale (see fig. 4) is set correctly for the
             form being used. 
              \f

          9. Close the drum gate and lower the printer cover. 
              
         10. The READY indicator should now light and the printer is ready
             to be taken on-line. 
              \f

F_       4_._ _ _ _ _ _ _ _ _S_U_P_P_L_E_M_E_N_T_A_R_Y_ _I_N_F_O_R_M_A_T_I_O_N_ 4.
           
4_._1_ _ _ _ _ _ _ _V_F_U_ _T_a_p_e_ _P_r_o_g_r_a_m_m_i_n_g_ 4.1
           
          The printer applies a 12-channel tape in the vertical format unit
          (VFU). The VFU tape can be programmed as follows using a hand
          punch device: 
           
          1. Calculate the length of the VFU tape using the following: 
              
             a) number of holes in VFU tape = 6 x length of the form in
                inches for forms requiring 6 lines per inch,  
              
             or 
              
             b) number of holes in VFU tape = 8 x length of the form in
                inches for forms requiring 8 lines per inch. 
              
          2. Place the VFU tape in the hand punch device and punch a hole
             in c_h_a_n_n_e_l_ _1_ corresponding to top of form. 
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
             Figure 8: Hand punch device. 
              \f

                   3. If vertical tab hole(s) are required then count forward to the
             desired point and punch a hole in any other channel except
             channel 1. The actual channel used depends on the print-out
             program. 
              
          4. Count forward to the next vertical tab position, if more are
             required, and punch a hole in another channel. 
              
          N_o_t_e_: The VFU tape loop should be a minimum of 10 inches in
                circumference. If the form is too short, make the VFU tape
                loop two or three form lengths long to permit the tape loop
                to ride freely on the tape loop reader. 
                 
          Having programmed the tape, it is spliced the following way: 
           
          5. Overlap the two ends of the tape so that the sprocket holes
             coincide to properly align the two ends. Take care to ensure
             that the length of the tape (in number of holes) is equal to
             (or a multiple of, in the case of two or more forms on one VFU
             tape) the form length in lines. 
              
          6. Glue the ends of the tape together or secure with adhesive
             splicing tape. 
              
          The VFU tape can then be loaded as described in 3.2. 
           
           
4_._2_ _ _ _ _ _ _ _C_o_l_o_u_r_ _R_i_b_b_o_n_ _R_e_p_l_a_c_e_m_e_n_t_ 4.2
           
          To remove the old ribbon and load a new one, proceed as follows: 
           
          1. Lift the printer cover, and swing the drum gate fully open. 
              
             C_A_U_T_I_O_N_: Wait for the character drum to stop rotating before
             proceeding to the next step. 
              
          2. Holding the paper tensioner with one hand (see fig. 9), pull
             the paper tensioner plunger knob, and remove the paper
             tensioner from drum gate. 
              \f

                   3. Using the gloves provided, remove the old ribbon by pushing
             the upper ribbon core against the ribbon core spring. Repeat
             for lower ribbon core. 
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
          Figure 9: Drum and ribbon assembly. 
              
          4. Still using the gloves provided, hold the ribbon cores
             together and remove the new ribbon from the box. 
              
             N_o_t_e_: The ribbon is installed so that it unwinds from top of
                   core. 
              
          5. Place the fully wound ribbon core over the top floating ribbon
             holder. 
              
          6. Push the ribbon core against the floating ribbon holder spring
             and place the opposite ribbon core end over the top fixed
             ribbon holder. Ensure that the holder guide pin slips into the
             slot on the core end. 
              
          7. Unwind the second ribbon core and bring the ribbon down over
             the character drum and the ribbon guide bars. Once in
             position, install the ribbon core on bottom ribbon holders as
             outlined for the upper ribbon core. 
              \f

                   8. Install the paper tensioner by inserting the paper tensioner
             block into position and pushing the tensioner against the
             tensioner knob indexing slot while pulling the knob to allow
             slot engagement. Once engaged, release knob. 
              
          9. If printer paper is installed, close and latch drum gate;
             lower printer cover. If power is on, press the CLEAR switch. 
              
              
4_._3_ _ _ _ _ _ _ _M_a_i_n_t_e_n_a_n_c_e_ 4.3
           
          1_ _t_i_m_e_ _p_e_r_ _w_e_e_k_ _(_p_e_r_ _4_0_ _r_u_n_n_i_n_g_ _h_o_u_r_s_)_ 
           
          The paper transport mechanism and the area around it is cleaned
          using a vacuum-cleaner. 
           
          The print drum is cleaned using a brush damped with isopropyl
          alcohol. Afterwards the drum is wiped with a lintfree cloth. 
           
          Do not use too much fluid; the excessive fluid may easily
          penetrate the bearings and damage these. 
           
          The colour ribbon guides are cleaned using a cloth damped with
          isopropyl alcohol. 
           \f

F_                  
           \f

F_                 figurtekst 42-i1528: 
           
          1) Window                        MULTI-COPY 
           
             Control                       Drum Gate 
             Panel                         Latch 
           
          Drum Gate 
           
          Mains Power                     5) PHASE 
          Circuit Breaker                    ADJUSTMENT 
           
          3) Tractor Lock                 6) TAPE START 
           
          Tension                         7) Print Line 
          Adjustment                         Index 
           
          4) VERTICAL                      Left Margin 
             ADJUSTMENT                    Index 
             (COARSE) 
           
          VERTICAL                         9) Tensioner 
          ADJUSTMENT                          Plunger 
          (FINE)                              Knob 
           
          HORIZONTAL                          Paper 
          ADJUSTMENT                          Tensioner 
                                              Block 
           
          FORMS                               Paper 
          THICKNESS                           Tensioner 
           
          To remove 
          or replace 
          ribbon core 
          - push as 
          shown. 
           \f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  CONTROL PANEL ..........................................   1 
           
          2.  OPERATING PROCEDURES ...................................   2 
              2.1  Paper Tape Loading ................................   2 
              2.2  Paper Tape Unloading ..............................   3 
           
          3.  SUPPLEMENTARY INFORMATION ..............................   5 
              3.1  Paper Tapes .......................................   5 
              3.2  Maintenance .......................................   6 
           \f

                                                 ii 
           \f

  1_._ _ _ _ _ _ _ _ _C_O_N_T_R_O_L_ _P_A_N_E_L_ 1.
           
           
           
           
           
           
             
           
           
           
           
            Figure 1: Control panel. 
             
             Power On/Off             - power is automatically switched
             (no operator control)      on/off as the system is switched
                                        on/off. 
 
                   1) RESET                    - when pressed down, clears the paper
             push-button                tape reader buffer and reads the
                                        first characters of the paper tape
                                        into the reader buffer. Then the
                                        reader waits for a system command
                                        before continuing to read. 
                                                    
          2) READ                     - when pressed down, reads the first
             push-button                characters of the paper tape into
                                        the buffer without clearing the
                                        buffer first. This enables
                                        additional tapes to be read in di-
                                        rect continuation of the first
                                        without loss of information.  
                                         
          3) SKIP                     - when pressed down, the tape runs
             push-button                out at full speed without any
                                        characters being read.  
                                         
              4) UP                       - when pressed down, raises the
             push-button                pressure lid. 
 
           \f

F_2_._ _ _ _ _ _ _ _ _O_P_E_R_A_T_I_N_G_ _P_R_O_C_E_D_U_R_E_S_ 2.
           
2_._1_ _ _ _ _ _ _ _P_a_p_e_r_ _T_a_p_e_ _L_o_a_d_i_n_g_ 2.1
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
           Figure 2: Tape loading. 
            
           To load a paper tape preceed as follows: 
  
          1. Push the TAPE DOOR BUTTON. This opens TAPE DOOR and PRESSURE
             LID simultaneously. 
              
          2. Before loading the tape, adjust the two TAPE GUIDE SELECTOR
             knobs to the width of the tape to be read (refer to fig. 3).
             Make sure that both knobs are set to the same SELECTOR index. 
              
             The SELECTOR settings '8', '7', '5', or 'OL', respectively,
             correspond to tape widths of 1, 7/8, 11/16 inches, or Olivetti
             Tape (see 3.1: Paper Tapes). 
           
           
                     
               \f

                   3. Insert the roll of paper tape into the TAPE ROLL ROOM, pull
               the free tape end over the ROLLER and close the TAPE DOOR. 
              
          4. Now position the paper tape between PRESSURE LID and TAPE
             GUIDE and carefully close the PRESSURE LID. 
              
             The paper tape must be loaded with the reference edge facing
             the operator (see 3.1: Paper Tapes). 
              
                       
              
              
              
              
              
              
              
              
              
              
              
          Figure 3: Tape guide; reading facility. 
              
          5. Depends on the circumstances, either: 
           
             a) when reading a paper tape independent of other tapes: 
                Push the RESET button. Thereby characters are read into the
                buffer and the reader will wait for a command from the
                system before continuing to read, or 
                 
             b) when reading a paper tape in direct continuation of a
                previously read tape: Push the READ butten. The reader will
                proceed reading according to system commands. 
              
              
         2_._2_ _ _ _ _ _ _ _P_a_p_e_r_ _T_a_p_e_ _U_n_l_o_a_d_i_n_g_                                                2.2
           
          In normal operation the tape will be ejected on its own when
          reading comes to the tape end. 
           \f

          If the tape reading otherwise has to be terminated and the tape
          removed from the reader, then press the SKIP button. The tape not
          read so far will then run out at full speed without being read. 
           
          Should tape breakage occur, then open the TAPE DOOR by pressing
          the TAPE DOOR BUTTON and remove the remainder of the tape from
          the reader. 
           \f

F_       3_._ _ _ _ _ _ _ _ _S_U_P_P_L_E_M_E_N_T_A_R_Y_ _I_N_F_O_R_M_A_T_I_O_N_ 3.
           
3_._1_ _ _ _ _ _ _ _P_a_p_e_r_ _T_a_p_e_s_ 3.1
           
          The paper tapes to be used with the reader are shown below
          including some specifications regarding TAPE GUIDE SELECTOR
          settings (refer to fig. 3). 
           
           
           
           
           
           
                                                    Reference edge 
          Nominal width:       25.4 mm 
          Width of tape guide: 25.5 + 0.05/-0.00 mm 
           
          Figure 5: 1-inch tape, 8 tracks. 
           
           
           
           
           
           
                                                    Reference edge 
          Nominal width:22.2 mm 
          Width of tape guide: 22.3 + 0.05/-0.00 mm 
           
          Figure 6: 7/8-inch tape, 7 tracks. 
           
                   
 
 
 
 
 
                                                        Reference edge 
Nominal width:17.5 mm 
Width of tape guide: 17.6 + 0.05/-0.00 mm 
 
Figure 7: 11/16-inch tape, 5 tracks. \f

 
 
 
 
 
 
                                                        Reference edge 
Nominal width:20.5 mm 
Width of tape guide:20.6 + 0.00/-0.05 mm 
Longitudinal spacing: 3 mm minimum between characters 
 
Figure 8: Olivetti tape, rectangular holes, 6 tracks 
           
           
3_._2_ _ _ _ _ _ _ _M_a_i_n_t_e_n_a_n_c_e_ 3.2
           
          1_ _t_i_m_e_ _p_e_r_ _w_e_e_k_ _(_p_e_r_ _4_0_ _r_u_n_n_i_n_g_ _h_o_u_r_s_)_ 
           
          Clean the tape roll room, the tape guide, and the read-head using
          a soft brush and a vacuum-cleaner. The paper guide and the read
          head is further wiped with a soft lint free cloth damped with
          isopropyl alcohol. 
           \f

F_                 Figurtekst til 42-i1768 
           
          2) Deflection                      3) PRESSURE 
             Post                               LID 
           
          Roller                                SELECTOR 
           
          TAPE DOOR                             SELECTOR 
          BUTTON 
           
          Opening for 
          Strips of Tape 
           
          TAPE CORRIDOR 
           
          TAPE DOOR 
           
          Tape Roll Room 
           
          TAPE 
          GUIDE 
           
          PRESSURE 
          LID 
           \f

                                                 i 
           
          T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 
           
          1.  CONTROLS ...............................................   1 
           
          2.  OPERATING PROCEDURE ....................................   3 
           
          3.  SUPPLEMENTARY INFORMATION ..............................   4 
              3.1  Maintenance .......................................   4 
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _C_O_N_T_R_O_L_S_                                                            1.
           
            
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figure 1: Control panel. 
           
          1) POWER                    - lights when the reader is switched
             indicator                  on, which automatically takes pla-
                                        ce when the system is switched on. 
                                         
                                        Note: The power switch on the rear
                                         side of the reader should be
                                        switched ON at first time of ope-
                                         ration. It should then be used for
                                         servicing purposes only. 
                                           
          2) LOAD/RUN                 - for raising and lowering the tape 
           lever                      guide when inserting or removing
                              paper tape. 
          \f

        3) RESET                    - clears the reader buffer and
      push-button                reads the first characters of the
                                       paper tape into the reader buffer.
                              The reader then waits for a system
                              command to continue reading.  
  
4) READ                     - reads characters into the cha-
   push-button                racter buffer without clearing
                              the buffer first. This enables
                              additional tapes to be read in
                              direct continuation of the first
                              without loss of information. 
                                         \f

F_       2_._ _ _ _ _ _ _ _ _O_P_E_R_A_T_I_N_G_ _P_R_O_C_E_D_U_R_E_    2.
           
          The tape is loaded as follows: 
           
          1. Select the LOAD/RUN lever to LOAD. 
           
          2. Place the tape roll in the tape roll box. The tape must
             unwind from bottom of tape roll. The reference edge of the
             tape must be facing the front of the reader. Inser the tape
             (8-track tapes only) into the tape guide. 
              
              
              
              
              
              
              
              
              
          Figure 2: Paper tape, 8-track. 
              
          3. Select the LOAD/RUN lever to RUN. 
              
          4. Depress the RESET or the READ push-button depending on the
             circumstances (refer to the description of these two control
             functions). 
              
             The paper tape reader is now controlled by the system and
             will await system commands before reading further characters.
              
              \f

F_       3_._ _ _ _ _ _ _ _ _S_U_P_P_L_E_M_E_N_T_A_R_Y_ _I_N_F_O_R_M_A_T_I_O_N_ 3.
 
3_._1_ _ _ _ _ _ _ _M_a_i_n_t_e_n_a_n_c_e_                                                        3.1
 
1_ _t_i_m_e_ _p_e_r_ _w_e_e_k_ _(_p_e_r_ _4_0_ _r_u_n_n_i_n_g_ _h_o_u_r_s_)_ 
 
Clean the tape roll box, the tape guide and the read-head using
a soft brush and a vacuum-cleaner. Further the read-head is
cleaned by damping a piece of paper tape with isopropyl alcohol
and moving it through the reading mechanism a couple of times. 
 \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.  BETJENINGSPANEL ........................................   1 
           
          2.  BETJENINGSVEJLEDNING ...................................   3 
           
          3.  SUPPLERENDE INFORMATION ................................   4 
              3.1  Vedligeholdelse ...................................   4 
           \f

                                                 ii 
           \f

         1_._ _ _ _ _ _ _ _ _B_E_T_J_E_N_I_N_G_S_P_A_N_E_L_ 1.
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          Figur 1: Betjeningspanel. 
           
          1) POWER                    - lyser, når læseren er tændt, hvil-
             indikator                  ket sker automatisk, når systemet
                                        tændes. 
                                         
                                        Bemærk: På bagsiden af læseren fin-
                                        des en afbryder; denne bør stilles
                                        på ON første gang læseren betjenes
                                        og herefter kun bruges i service
                                        øjemed. 
                                         
          2) LOAD/RUN                 - vippearmen bruges til at sænke/hæve
             vippearm                   føringsskinnen til hulstrimlen un-
                                        der ilægning/udtagning af strim-
                                        len. 
                                         \f

                   3) RESET                    - når der trykkes på denne knap, bli-
             trykknap                   ver læserens buffer nulstillet og
                                        indlæsning påbegyndes. På denne
                                        måde startes læsning af en ny
                                        strimmel uden sammenhæng med en
                                        tidligere indlæst strimmel. 
                                         
          4) READ                     - når der trykkes på denne knap,
             trykknap                   fortsættes indlæsning i direkte
                                        forlængelse af en tidligere indlæst
                                        strimmel. 
                                         \f

F_       2_._ _ _ _ _ _ _ _ _B_E_T_J_E_N_I_N_G_S_V_E_J_L_E_D_N_I_N_G_                                             2.
           
          En hulstrimmel lægges i læseren på følgende måde: 
           
          1. LOAD/RUN vippearmen stilles på LOAD. 
           
          2. Strimmelrullen placeres i plastboxen. Strimlen skal afrulles
             fra bunden af strimmelrullen. Strimlens reference kant skal
             vende ind mod læserens frontpanel. Strimlen føres gennem
             strimmelføringen. Bemærk: Der kan kun anvendes strimler med 8
             spor. 
              
              
              
              
              
              
              
              
          Figur 2: Hulstrimmel, 8 spor. 
              
          3. LOAD/RUN vippearmen stilles på RUN. 
              
          4. Tryk på RESET eller RUN trykknappen afhængig af situationen
             (jævnfør beskrivelsen af disse to betjeningsfunktioner). 
              
             Strimmellæseren er nu styret af systemet og afventer system-
             ordre, før der indlæses flere tegn. 
              \f

F_       3_._ _ _ _ _ _ _ _ _S_U_P_P_L_E_R_E_N_D_E_ _I_N_F_O_R_M_A_T_I_O_N_                                             3.
           
3_._1_ _ _ _ _ _ _ _V_e_d_l_i_g_e_h_o_l_d_e_l_s_e_ 3.1
           
          U_G_E_N_T_L_I_G_T_ _(_h_v_e_r_ _4_0_ _d_r_i_f_t_s_t_i_m_e_r_)_ 
           
          Papirkammer, papirstyr og læsehoved rengøres med en blød pensel
          og støvsuger. Desuden renses læsehovedet ved at føre et stykke af
          en hulstrimmel fugtet med isopropyl alkohol nogle gange frem og
          tilbage gennem læsemekanismen. 
           \f

F_                 Figurtekst 42-i1770 
           
          2) REFERENCE KANT 
           
          FREMLØBSRETNING 
           
          SPOR 1 
          SPOR 2 
          SPOR 3 
          FREMFØRINGSHULLER 
          SPOR 4 
          SPOR 5 
          SPOR 6 
          SPOR 7 
          SPOR 8 
           \f

«eof»