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

⟦ff60637c0⟧ TextFile

    Length: 147584 (0x24080)
    Types: TextFile
    Names: »D26«

Derivation

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

TextFile





















RC 8000
BASIC SOFTWARE 




















                               First Edition
A/S REGNECENTRALEN             February 1979
     Information Department RCSL 42 - i 0848\f

         AUTHOR:             Kjeld Christensen 
          
 
 
 
 
 
 
         KEY WORDS:         Textbook, educational, operating systems, BOSS, S,
                   file processor, utility programs, monitor, RC 8000,
                   resource administration.  
 
 
 
ABSTRACT:          This is one of a series of educational textbooks to be
                   used as a first-step learning gradient to understand
                   topics of edp. This textbook deals with operating  
                   systems and a knowledge of programming in general is
                   preassumed. The textbooks are used in Regnecentralen>s
                   Education Program, but they are as well qualified for
                   private self-study.  
 
 
 
 
 
 
 
 
 
Users of this manual .... 
 
 
 
 
         
 
 
 
 
 
Copyright   A/S REGNECENTRALEN, 1979  
Printed by A/S REGNECENTRALEN, Copenhagen  \f

         1         PREFACE 
           
          For a long time it has been Regnecentralen>s wish to have educa-
          tional textbooks which we could make available as a first step to
          learning basic software systems. This would give us the possibi-
          lity of introducing systems with an easier learning gradient than
          one could get from reading manuals as a first step. As the number
          of RC>s business customers has increased, so has this need grown
          more urgent. 
           
          Therefore it is a great pleasure for RC to start the publication
          of an educational textbook series with this book. 
           
          The book has been written by programmer Kjeld Christensen from
          The Commercial College in Århus. We are greatful to Kjeld Chris-
          tensen for his good and constructive cooperation in connection
          with his work on this book as well as to The Commercial College>s
          Datacenter for a positive attitude to the project, 
           
          The book is meant for use in connection with Regnecentralen>s
          Education Program, but at the same time it has been written so
          that it is possible to read it as a private study. For this rea-
          son solutions to the exercises are included in the contents of
          this book. 
           
          We must point out that this book is a textbook and not a manual,
          which means that the book does not describe all possibilities of
          the basic software, but on the contrary only a limited number of
          items. Therefore it is highly advisable that as soon as possible
          after studying this book, you make it your duty to use the rele-
          vant manuals in your daily work so that you may graduate beyond
          the limits of this textbook. Nevertheless you can always refer to
          this textbook if you should have difficulty when working with the
          manuals. 
           
          We hope to have covered the actual need concerning the operating
          systems with this publication and with future publications we
          will cover the remaining parts. 
           
          I_m_p_o_r_t_a_n_t_ _n_o_t_e_: While studying this book make sure you do not go
          past a word you do not fully understand. Look the word up in a
          dictionary or get it defined somehow. For  technical terms we
          refer you to RC>s terminology lists. 
           
          November 1978 
          A/S Regnecentralen\f

                   TABLE OF CONTENTS 
           
           
          1 PREFACE                                                page  9
           
          2 INTRODUCTION10

          3 BOSS12
           3.1 Operating System12
                3.1.1 Administration of Resources13
                3.1.2 Job Execution13
                3.1.3 Priviledged Function14
            3.2 A Job15
            3.3 User Catalog20
            3.4 Job File20
                3.4.1 Cancel Characters21
                3.4.2 Correction Commands21
                      3.4.2.1 Insertion21
                      3.4.2.2 Deletion22
                      3.4.2.3 Modify22
                3.4.3 Printing23
                      3.4.3.1 VERIFY23
                      3.4.3.2 LIST24
                      3.4.3.3 Notation24
                3.4.4 Job File Handling25
                      3.4.4.1 GET25
                      3.4.4.2 CLEAR25
                      3.4.4.3 SAVE26
                3.4.5 Examples26
                      3.4.5.1 Line Numbering26
                      3.4.5.2 Last Line27
                      3.4.5.3 NO ROOM27
                      3.4.5.4 Transferring to the BASIS FILE28
                3.4.6 Execises28
            3.5 Resources29
                3.5.1 Requesting Resources30
                3.5.2 Primary Store31
                3.5.3 Computation Time31
                3.5.4 Peripheral Devices32
                3.5.5 Reader32\f

                               3.5.5.1 Mode page35
                3.5.6 Printer35
                3.5.7 Punch36
                3.5.8 Magnetic Tape Station37
            3.6 BOSS Commands38
                3.6.1 Job File Manipulation38
                3.6.2 Job Enrollment39
                3.6.3 Requesting Resources40
                3.6.4 Printing40
                3.6.5 Information40
                3.6.6 Backing Store42
                3.6.7 Operator Intervention42
                3.6.8 Restrictions43
                3.6.9 Exercises43
            3.7 Messages from BOSS43

          4 THE BACKING STORE46
            4.1 Area46
            4.2 Catalog48
                4.2.1 Catalog Entry48
                4.2.2 Catalog Handling50
            4.3 Scope50
            4.4 The Catalog and BOSS54
                4.4.1 Create55
                4.4.2 Change55
                      4.4.2.1 SCOPE55
                      4.4.2.2 RENAME56
                4.4.3 Delete56
                4.4.4 Print57
            4.5 The Catalog and Utility Programs57
                4.5.1 Creation58
                4.5.2 Change58
                      4.5.2.1 SCOPE58
                      4.5.2.2 RENAME59
                4.5.3 Clearing59
                4.5.4 Print60
                4.5.5 Exercises60
            4.6 Catalog Entry61
                4.6.1 The First Slice61
                4.6.2 Name Key63\f

                         4.6.3 Catalog Key page  63
                4.6.4 Base63
                4.6.5 Name64
                4.6.6 Size64
                4.6.7 Document Name64
                4.6.8 Date65
                4.6.9 Miscellaneous65
            4.7 Additional Disc Units65
           4.8 Resources68
                4.8.1 TEMP68
                4.8.2 PERM68
            4.9 Examples69
           
          5 MONITOR71
            5.1 Process72
                5.1.1 Internal Process72
                      5.1.1.1 Process Hierarchy72
                      5.1.1.2 Process State74
                5.1.2 Peripheral Process74
                5.1.3 Area Process75
                5.1.4 Process Handling75
            5.2 Internal Communication76
            5.3 Resources78
                5.3.1 Internal Process78
                5.3.2 Peripheral Process78
                5.3.3 Area Process78
                5.3.4 Message Buffer79
            5.4 The Catalog79
            5.5 Division of Work80
                5.5.1 CPU - time80
                5.5.2 Supervision80
                5.5.3 Resources80
                5.5.4 Data Transfer81
                5.5.5 Policy81
           
          6 FILE PROCESSOR82
            6.1 Execution of a Program82
            6.2 FP Command84
                6.2.1 Simple FP Command84
                6.2.2 Compound FP Command87\f

            6.3 Files page 88
                6.3.1 CURRENT INPUT FILE 89
                6.3.2 CURRENT OUTPUT FILE 90
                6.3.3 Zones IN and OUT91
                6.3.4 Exercises91
                6.3.5 PRIMOUT92
            6.4 Job Programming92
                6.4.1 State Variables93
                6.4.2 Programming94
                6.4.3 Exercises95
            6.5 Auxiliary Functions97
            6.6 Error Messages97
           
          7 UTILITY PROGRAMS 99
            7.1 Job Control 99
            7.2 Catalog Handling100
            7.3 Data Handling100
            7.4 Conventions101
            7.5 Modekind102
            7.6 File Descriptors102

          8 JOB CONTROL104
            8.1 Control of Current Input/Output104
                8.1.1 I104
                8.1.2 END105
                8.1.3 O106
                8.1.4 Exercise106
                8.1.5 ONLINE107
            8.2 Job Programming108
                8.2.1 MODE108
                8.2.2 IF109
                8.2.3 REPEAT110
                8.2.4 Exercises111
            8.3 Dialogue with BOSS111
                8.3.1 Job111
                      8.3.1.1 Job Enrollment112
                      8.3.1.2 REPLACE112
                      8.3.1.3 NEWJOB113
                      8.3.1.4 Job termination114
                8.3.2 Printer114\f

                  8.3.3  Discpage 115
                  8.3.4  Magnetic tape116
                         8.3.4.1  MOUNT118
                         8.3.4.2  RELEASE119
                  8.3.5  Operator120
                         8.3.5.1  OPCOMM120
                         8.3.5.2  OPMESS121
           
          9  THE CATALOG HANDLING122
             9.1  SET122
             9.2  RENAME123
             9.3  SCOPE124
             9.4  CLEAR 126
             9.5  Printing127
                  9.5.1  LOOKUP127
                  9.5.2  SEARCH 129
             9.6  Exercises130
           
          10 DATA HANDLING131
             10.1 Data Transfer131
                  10.1.1 COPY131
                  10.1.2 MOVE133
                  10.1.3 Exercises134
                  10.1.4 SAVE135
                  10.1.5 LOAD 137
                  10.1.6 Exercises139
             10.2 Print Out139
                  10.2.1 HEAD140
                  10.2.2 HEADPUNCH140
           
           11 THE TERMINATION142
             11.1 The Virtual Store142
             11.2 More Operating Systems144
             11.3 More Computers145
          
          12 ANSWER LIST146

                   INDEX157\f

F_2         INTRODUCTION 
           
           
          The basic software of the RC 8000 is divided into the following
          groups: 
           
          Operating System 
                    File Processor 
                    Utility Programs 
           
          The division of the basic software into these groups is note-
          worthy for more reasons. First, the division clearly marks the
          border lines in the basic software, whereby maintenance and execu-
          tion is simplified. Second, when using the computer it must be
          made clear which parts of the basic software one wishes to add-
          ress. Third, a number of functions can be executed by different
          parts of the basic software. Fourth, there is an interchange of
          information between the different programs. 
           
 
T_BOSS      RC 8000 is usually equipped with the operating system BOSS. BOSS"
          mission is to make the computer attractive and easy to use plus
          to ensure a reasonable utilization of the computer resources.
&_          BOSS thus maintains the traditional tasks of an operating system
          such as resource administration, job execution, and supervising.
          This means that a number of functions only can be executed by the
T_PRIVI-    operating system. These functions are called priviledged and can
LEDGED    only be executed by the central part of the operating system.
FUNCTIONS This part formes an independent unit, called MONITOR. As an in-
          stance of priviledged functions, in/output operations can bemen-
MONITOR   tioned. When an operation of this kind is to be executed, it can
&_          only be done by asking MONITOR to execute the function. 
           
          The separation of the kernel of the operating system into an
          independent unit makes it relatively easy to implement new ope-
          rating systems as a replacement or a supplement to BOSS, as MONI-
          TOR is able to support any operating system. 
           \f

T_FILE       
PROCESSOR FILE PROCESSOR is used during the job execution to read and inter-
          pret the control commands (Job Control Language) and to start the
          wanted programs. FP, which FILE PROCESSOR normally is called,
                   furthermore contains a sequence of subroutines, which can be used
&_          by assembler- programming. 
           
T_UTILITY    
PROGRAM   The utility programs are divided into the following three groups
&_          corresponding to their functions: 
           
                    - Job control 
                      Programs which influence the execution of the job. 
                     
                    - Catalog handling 
                      Programs which modify or print the catalog. 
                     
                    - Data handling 
                      Programs which modify or print data. To this group
                    compilers are also reckoned. 
                       
          Only the most frequently used utility programs and their ordinary
          usage are mentioned in this book. A treatment of the different
          programming languages (ALGOL, FORTRAN and SLANG) and the diffe-
          rent file handling systems (INDEXSEQUENTIAL FILES and CONNECTED
          FILES SYSTEM) is also outside the scope of this book. 
           
           
T_APPLICA-  Programs, which are worked out by the users, are placed in the
TIONsoftware structure at the same level as the utility programs.
          Thus it is easy to supplement this group of programs with new
&_          ones.\f

F_       3         BOSS 
           
           
          This chapter begins with a short account of which jobs an opera-
          ting system normally is expected to attend to. As this is a ge-
          neral account, the operating system is regarded as a whole and
          the specific division of the jobs in RC 8000 between MONITOR and
          BOSS is not touched on, but is saved for chapter 5. In the remai-
          ning part of chapter 3 BOSS is discussed. This discussion inclu-
          des the use of the most important BOSS commands and the execution
          of jobs  
           
          The use of the terminal occupies a central position. 
           
           
T_3.1       OPERATING SYSTEM 
           
          By an operating system is understood a control and supervisor
          program, which has the function of facilitating and making the
          use of the computer effective. 
           
            These functions require that the operating system is permanently
          active in the primary store, and this naturally causes less
          available room for the user programs. 
           
T_          Figure 3.1 
           
          PRIMARY STORE 
           
           
           
          O . S 
           
           
           
           
&_           
                   Among the most important functions of the operating system could
          be mentioned: \f

                    - Administration of the resources of the computer 
                       
                    - Supervising and execution of jobs. 
                          
-Execution of priviledged functions. 
Including execution and supervising of data 
transports. 
   
T_3.1.1     A_d_m_i_n_i_s_t_r_a_t_i_o_n_ _o_f_ _R_e_s_o_u_r_c_e_s_ 
          This administration includes all the resources of the computer of
&_          which the following could be mentioned: 
           
                    - Calculation Time 
                    - Primary Store 
                    - Backing Store
          - Peripheral Devices 
             
                   
T_          All the resources of the computer are owned by the operating sys-
          tem, but they can be lend out separately. A job always need dif-
          ferent resources. Thus calculation time is always necessary. The
            job has to request the operating system for the necessary resour-
JOB SPE- ces. This is normally done in a socalled JOB SPECIFICATION. Is
CIFICA-  this omitted the job is assigned resources anyway, but then on
TIONthe basis of information found in a USER CATALOG. The USER
CATALOG contains information about everybody who is allowed to
USERuse the computer. Furthermore information about which resources
CATALOGthat are to be assigned is found, if it is not explicity stated
in the JOB SPECIFICATION. This default value is called standard
STANDARDvalue in the manuals. In the USER CATALOG is also described
VALUE maximum values for the amount of resources which each user can
request. 
 
T_      3.1.2     J_o_b_ _E_x_e_c_u_t_i_o_n_ 
          On basis of a priority algorithm the operating system decides in
which sequence the different, enrolled jobs are to be executed.
&_During the execution the operating system supervises the job and
prevents any illegal attempts such as using resources which are\f

not allocated or disturbing other jobs. The operating system
furthermore enters the resource consumption of any job on an
T_ACCOUNTaccount file. If the information in the account file is related
FILEto the information in the user catalog, the necessary basis for
payment calculation for the use of the computer is available. It
&_          also gives material for elaboration of run statistics.
          
T_3.1.3     P_r_i_v_i_l_e_d_g_e_d_ _F_u_n_c_t_i_o_n_ 
          To make it possible for the operating system to carry out full
          control of the computer, it is necessary that certain functions
          can only be executed by the operating system. Input/output execu-
          tion is as mentioned a priviledged function. This is explained
&_          further in chapter 5.
T_           
          EXERCISE 3.1 
          In a computer where the operating system is able to execute two
          jobs simultaneously an order to execute five jobs is given. The
          five jobs require the following resources: 
           
          Job           Run time in           Tape station 
          minutes 
          1               15                       0 
           2              180                       1 
           3                3                       2 
           4                3                       0 
           5                1                       1 
&_ 
          Determine a reasonable priority algorithm. Determine the sequence
          of the job execution when the computer has two tape stations. 
           
            During the execution of a single job with an estimated run time
          of one hour, the operating system receives a request to execute
          the following jobs: 
           
T_          Job           Run time inTape stations 
          minutes 
          650 
&_             7100 
           \f

          Determine the sequence of execution for the jobs in the following
          positions: 
           
T_           1. The running job has used 179 min. of the estimated
                       run time. 
                        
                    2. The running job has used 30 min. of the estimated
&_                       run time. 
                        
                   If necessary modify the proposed priority algorithm. 
           
            Several jobs may happen to request exactly the same resources.
          Which jobs should first be executed in this situation. 
           
                   Modify if necessary the priority algorithm. 
           
           
T_3.2       A JOB 
           
          By a job is meant a defined task, which the computer must execu-
JOB       te. This has the effect that one or more programs have to be
          used. Before it can be effectuated the job must be entered in the
&_          computer. It could for instance be done by use of a terminal. 
           
          Example 3.1 shows how a very simple job can be entered and execu-
                 ted by the operating system BOSS. The jobis only to compile and
T_          run a small Algol program. To make the necessary terminal conver-
          sation explicit the lines keyed in are marked with an arrow. 
           
                            -' 
&_           
T_          The first contact with the operating system is obtained by sen-
          ding an ATTENTION - signal, marked by the following symbol:  
                     
                    X 
&_           \f

T_          Ex. 3.1 
                     X att -' boss 
                    type user name and project number 
          -' kc 1234 
                    in: 1977.09.15 13.10 
                    boos 2 operating system 
&_           
           
T_          This first conversation is called the LOGIN-routine. By stating a
LOGIN     user identification permission to use the terminal is obtained.
          Hereby a socalled JOB FILE is made available for the user of the
          terminal. The actual job may now be typed to the JOB FILE and this
          is done by typing the different information line by line. Each
          line must be opened with a line number, which is kept separate
          from the actual contents with a space. 
           
T_                           -'   10 p = algol 
                    -'   20 begin integer a,b; 
                    -'   30 read(in,a,b); 
                    -'   40 write(out,a,b); 
                    -'   50 end 
                             -'   60 p 
                    -'   70 3 4 
                    -'   80 finis 
&_           
          The job consists of a control command (line 10), which activates
          the ALGOL compiler. The program which is to be compiled is found
          in the following four lines. It is a limited program which can
          only read in 2 figures and print the same two figures. 
           
          Line 60 contains a control command which activates the compiled
          program. Input for this is found on the following line. 
           
          Line 80 consists of a control command which tells that the job
          should be terminated. 
           
            After typing the lines 10-80 the actual job is available and it
          should now be executed. \f

                          -' go 
                    finis kc0 at 13.12 
&_           
           
T_GO        The GO command tells BOSS that the job should be transferred to
          the JOB QUEUE. BOSS now makes a priority calculation (analog to
          exercise 3.1) for all jobs in the JOB QUEUE and selects the jobs
          which should be executed first. An estimated time of termination
          is also calculated and printed on the terminal.  
           
T_JOB NAME  In the printout it furthermore appears under which name the job
          is being executed, i.e. KC0. This name is formed by the user name
&_          and an index, which can be stated between the user name and the
          project number in the LOGIN routine. When this index is omitted 0
          is allocated automatically. 
           
          It only remains to wait for the printout produced by the job, as
                   new jobs cannot be entered before the enrolled job is terminated.
           
           \f

T_          When the index is also stated the total terminal conversation
                   appears as follows: 
           
                      X  att -' boss                      LOGIN routine 
                    type user name and project number 
                    -' kc 0 1234            
                    in: 1977.09.15   13.10 
                             boss2 operating system 
           
                      -'  10 p = algol                    JOBFILE 
                    -'  20 begin integer a,b; 
                    -'  30 read(in,a,b); 
                    -'  40 write(out,a,b); 
                    -'  50 end 
                    -'  60 p 
                    -'  70 3 4 
                      -'  80 finis 
           
                                                           job enrollment 
               -'go 
                           finis kc0 at 13.12 
           
                          1: begin                        run messages 
                        2: end                          from ALGOL 
                          algol end 17 
           
                          3 4 
                                                        printout from 
                        end 9                           the program 
             
                          end 2 sec job kc0 log op date 1977.09.15 13.11.10
                        ''                              message from BOSS   
                         
                    -'  logout                          terminating BOSS 
                        logged in 3 min. operations 3   command and message 
 
&_                  
          As shown above the use of the terminal is terminated with the\f

          LOGOUT command. BOSS answers this command by printing, in
          minutes, the duration of the terminal use and the amount of
          operations which have been executed. This information is
          furthermore stored in the account file. 
           
           
T_FP COM-   In example 3.1 different commands were used. The control commands
MANDS     which were part of the job, are called FP commands, as they are
&_          interpreted by FP. This is why the treatment of the conventions
                   for program calls and data statements in the JOB FILE are saved
          for chapter 6, where FP and FP commands are discussed.
 
T_BOSS      Several BOSS commands are discussed in this chapter. By a BOSS
    COMMANDS  command is meant an instruction to BOSS to execute a given action.
&_             This action is executed instantly. 
           
          BOSS commands are used for several purposes. As shown
          in example 3.1 GO enrolls a job, and LOGOUT terminates the use of
          the terminal. 
           
             
T_KILL      The KILL command terminates an enrolled job. 
           
          Ex. 3.2 
                     X 
                    '' 
                    -'  kill 
&_                  
          Permission to type the command is achieved by sending an ATTENTI-
          ON signal. The enrolled job is instantly terminated. 
           
          A number of BOSS commands will be discussed in this and the follow-
          ing chapters. 
           
           \f

T_3.3       User Catalog 
           
           
          All the users of the computer are registered in the user catalog.
PROJECT   The users are divided into groups called projects, which are iden-
USER      tified by a project number. Each user is equipped with a user na-
NAME      me, which must be stated together with the project number in the
&_          LOGIN routine. A user>s affiliation to a project determines the
          user>s access to magnetic tapes and the backing store. Thus mem-
T_PROTEC-   bers of the same project can use each other>s magnetic tapes,
TION      while others are prevented from doing this. In the backing store
          the resources of the project are even better protected, as only
&_          members of the project have access to the resources.
           
           
T_          For each project the user catalog contains information about the
RESOURCES resources available to the members of the project. Additional
&_          information concerning restrictions in the resource consumption
          or standard allocation of resources, may be specified both for
          the project as a whole, and for the individual user. 
           
          In this way the USER CATALOG contributes to prevent abuse and to
          faciliteting the use of the computer. 
           
           
T_3.4       Job File 
           
USE       As it appears from the name, the JOB FILE is primarily used to
          contain a job. During typing (cf ex. 3.1) mistakes are easily
          made. The harm done is limited, however, as correction commands
          are at the user>s disposal, making a modification of the contents
          of the JOB FILE possible. 
           
          This facility can be used for several purposes, as it is possible
          to transfer the contents of an area to the JOB FILE, as well as a
          transfer in the opposite direction is possible. 
           \f

T_3.4.1     C_a_n_c_e_l_ _C_h_a_r_a_c_t_e_r_s_ 
          Errors, detected while typing, can be changed by means of cancel
          characters. 
           
                    % deletes a line 
           
          & deletes the last character typed 
           
          Ex. 3.3
                    10 this line is deleted % 
                    20 p = ag&lgol 
                    30 bigin&&&&egin 
&_           
          In the last line in example 3.3 the cancel character has been
          used several times. 
           
          The cancel character deletes the original characters on the line
          successively, from right to left.  
 
T_3.4.2     C_o_r_r_e_c_t_i_o_n_ _C_o_m_m_a_n_d_s_ 
          It is possible 
          to insert 
                    to delete 
                    to modify 
&_          lines in the JOB FILE. 
                  
          All the lines in the JOB FILE are equipped with a line number.
          During typing, the terminal user can choose the line numbering
          himself. The lines are stored in increasing numerical order,
          regardless of the order in which they are typed.  
T_ 
3.4.2.1   I_n_s_e_r_t_i_o_n_. The typing of the job in example 3.1 consisted of inser-
          ting a number of lines in an empty JOB FILE. New lines are inser-
          ted by typing the line number and the contents of the line sepa-
          rated by a space. 
           
&_          Ex. 3.435 a:=a+b; 
             
          If a line with the line number specified already exists, the line\f

          last typed will replace the original line. 
           
T_          Exercise 3.2 
          Determine the contents of the JOB FILE, when the following has
          been entered: 
           
          10 p=algol 
                    20 integer sum,a,b; 
                    30 write(out,sum); 
                    15 begin 
                    40 end 
                    10 u=algol list.yes 
                    25 read(in,a,b); 
                    26 sum:=a+b 
           
&_          Insert an empty line immediately after line 10. 
           
T_       3.4.2.2   D_e_l_e_t_i_o_n_. Typing a line number alone causes the line specified to
          be deleted from the JOB FILE. 
           
          Ex. 3.540
&_           
T_3.4.2.3   M_o_d_i_f_y_. A line can be modified, and the following has to be sta-
          ted then: 
           
                   the line number 
                    the graphical picture to be replaced 
                    the new graphical picture which is to replace the old
&_                    one
             
          The information must be separated with the same delimiter. The
          delimiter must not, of course, be part of the graphical pictures 
           
T_          Ex. 3.6 
                    50 sum:=a+b; 
                    50/sum/amount 
                    The graphical picture "sum" is replaced by "amount" in
&_                     line 50. / has been used as delimiter. \f

DELIMITER A delimeter may freely be choosen under consideration of the
          following restrictions:
                     
                    1. As a space immediately after the line number causes
                       an insertion of the whole line, this symbol cannot
                       be used. 
           
                    2. The delimiter must not be part of the graphical pic-
                       tures. 
           
                    / > " can be selected as delimiters, for instance. 
                 
           
T_  FUNCTION  The graphical picture first stated is searched for from left to
          right on the line. The first time it is met, the correction is
&_                 made, and the modification is completed.  
           
T_          Exercise 3.3 
           
          The JOB FILE from exercise 3.2 is to be changed, so the variable
          name "a" is replaced by "sale" everywhere it is found.  
             
T_3.4.3     P_r_i_n_t_i_n_g_ 
          The whole JOB FILE or parts of it can be printed by means of va-
&_          rious commands. 
           
T_3.4.3.1   V_e_r_i_f_y_. The line last typed or modified can be printed with the
          VERIFY command. 
           
          Ex. 3.7verify
           
          A specific number can be printed by stating the line number. 
           
&_          Ex. 3.8verify 10 
           \f

T_          A limited group of lines can furthermore be printed by adding the
          number of lines to be printed.  
           
            Ex. 3.9verify 10 4 
           
&_          Line 10 and the 3 following lines are printed. 
              
T_3.4.3.2   L_i_s_t_. The whole JOB FILE can be printed with the LIST command. 
           
&_          Ex. 3.10           list 
           
T_          Stating a line number furthermore, the line specified and all the
          lines with a higher number will be printed. 
                 
&_                 Ex. 3.11list 30 
           
T_           A line interval can be printed by stating the upper and lower
          limits of the interval. 
           
&_          Ex. 3.12          list 30 97 
             
T_ 3.4.3.3   N_o_t_a_t_i_o_n_._ The different ways of using the LIST command is describ-
          ed in ref. 1 as follows: 
          1  1
&_                    list  first line' last line' 0  0 
           
T_          The different symbols have the following significance: 
           
                     ' The contents of the brackets contains an
                        explanatory text. Thus first line' states 
                        that the line number of the first line in the
&_                        interval must be stated. 
          1
T_                    The contents of the braces may appear the specified
                    0number of times. 
                    0 signifies that the contents can be omitted 
                    1 signifies that the contents must not appear more
&_                    than once. \f

  SPACE     Delimiters between the different parameters are not stated, as
          space always are used in connection with BOSS commands. 
           
            Exercise 3.4 
           
                    Describe the VERIFY command by means of the
&_                    abovementioned notation. 
             
T_3.4.4     J_o_b_ _F_i_l_e_ _H_a_n_d_l_i_n_g_ 
          A backing store area can be transferred to the JOB FILE by means
BASIS     of the GET command. The area is then called a BASIS FILE. The
FILE      CLEAR command releases a BASIS FILE, returning the area to normal
&_          status. With the SAVE command the contents of the JOB FILE
          is copied to an area. Areas are identified by names. The rules
          governing these are described in chapter 4.
          
T_3.4.4.1   G_e_t_ 
          Ex. 3.13       get text 
           
&_          The area TEXT is transferred to the JOB FILE. 
           
T_          SYNTAX 
&_           get area name' 
           
          FUNCTION 
T_          A possible BASIS FILE is released, and the area specified is made
               into a BASIS FILE, transferring the contents to the JOB FILE. The
&_          lines are numbered 10,20,30... etc. This sequence is interrupted
          when a FORM FEED character is met. The next line number becomes
          the immediately higher multiple of 1000 plus 10. 
           
T_3.4.4.2   C_l_e_a_r_ 
          Ex. 3.14           clear 
           
            The contents of the JOB FILE is deleted and a BASIS FILE, if any,
&_          is released. \f

            SYNTAX 
&_          clear 
           
          FUNCTION 
T_           The contents of the JOB FILE is deleted and a BASIS FILE, if any,
          is released. The command can be employed in several ways as de-
&_          scribed in chapter 4. 
           
T_3.4.4.3   S_a_v_e_ 
          Ex. 3.15        save rctext 
           
&_          The JOB FILE is transferred to the area RCTEXT. 
             
T_          SYNTAX 
&_          save area name' 
           
          FUNCTION 
T_          The contents of the JOB FILE is transferred to the backing store
          to an area with the specified name. If a LOGIN area exists (cf.
&_          chapter 4) with the specified name, the contents is transferred
          to this area. If a LOGIN area does not exist, a new one will be
          created with the specified name, and the contents will be trans-
          ferred to this area. A LOGIN area is characterized by being pre-
          served, until the terminal user deletes it, by for instance using
          the LOGOUT command. 
T_ 
3.4.5     E_x_a_m_p_l_e_s_ 
           
         3.4.5.1   L_i_n_e_ _N_u_m_b_e_r_i_n_g_. A job is entered as follows: 
           
                             1 p=algol 
                    2 begin 
                    3 write(out,:example:'); 
                    4 end 
&_                    5 finis 
           \f

T_          Using the commands: 
           
                    save rcarea 
                    get rcarea 
&_                    list 
           
T_          The following printout will appear: 
           
                    10 p=algol 
                    20 begin 
                    30 write(out,:example:'); 
                    40 end 
                    50 finis 
           
&_          The new line numbers are from now on valid. 
             
T_3.4.5.2   L_a_s_t_ _L_i_n_e_. If the VERIFY command is used immediately after a
          BASIS FILE has been connected, the number of the last line in the
&_          JOB FILE is printed. 
           
T_          The commands: 
           
                    save rcarea 
                    get rcarea 
&_                    verify 
           
T_          used after the typing in section 3.4.5.1, will thus produce the
          printout below: 
&_50 
             
T_       3.4.5.3   N_O_ _R_O_O_M_. The message NO ROOM appears, when it is impossible to
          perform more changes in a JOB FILE because the capacity cannot
&_          cope any more. In order to proceed the JOB FILE must be trans-
          ferred to the backing store, and the area used made into a BASIS
          FILE. Thus the use of GET and SAVE solves the capacity problem,
          and more changes can now be performed. The command, which caused
          the message, was not executed and will have to be repeated. If
          the message appears during the typing, the VERIFYcommand ensures,\f

                   in a easy way, continued typing, as shown in the following se-
          quence: 
           
T_                    .... 
                 -' 136 begin 
                 -' 137 integer 
                    NO ROOM 
                 -' save rcjob 
                 -' get rcjob 
                 -' verify 
                    510 
                 -' 510 integer 
&_                   .... 
             
T_3.4.5.4   T_r_a_n_s_f_e_r_r_i_n_g_ _t_o_ _t_h_e_ _B_A_S_I_S_ _F_I_L_E_. When a LOGIN area is a BASIS FILE
          the contents of the JOB FILE will be deleted after it has been re-
&_          turned to the BASIS FILE with the SAVE command. 
           
T_          The last command in the series: 
           
                    get rctext 
                    save rctext 
                      save rctext 
             
          thus transfers an empty JOB FILE back to RCTEXT and the original
&_          contents has disappeard. 
           
T_3.4.6     E_x_e_r_c_i_s_e_s_ 
          Exercise 3.5In the area PROGRAMTEXT the following ALGOL
                              text is found: 
           
                    begin 
                    write (out,:another example:'); 
&_                    end 
           
          Modify the area, so that it finally contains a job that can com-
          pile and run the small program. 
             \f

T_                 Exercise 3.6    An area TEXT is to be printed on a terminal.
&_                              Write the necessary BOSS commands. 
                               
T_          Exercise 3.7        The ALGOL compiler reads the source text from
                              the area TEXT, by means of the following
                              call: 
                               
                              u=algol text 
                               
                              Store a small algol program in the area
                              PROGRAMTEXT and create a JOB FILE which can
&_                              compile and execute the program. 
                                    
           
T_   3.5       Resources 
           
          In the previous job examples no resources were requested and the
          jobs were allocated a standard assignment of resources (cf. 3.3).
          Among other things a job requires the following: 
                     
Primary store 
                    Computation time 
&_                    Backing store 
           
T_          A job might also want access to peripheral devices: 
           
                    A reader (tape/cards) 
                    A printer 
                    A magnetic tape station 
&_                    A punch 
                  
          The following sections describe how the abovementioned resources
          can be requested, except for the backing store which is described
          in chapter 4. The abovementioned resources are only a selection,
          and in chapter 5,6 and 7 further examples will be found. 
           \f

T_  3.5.1     R_e_q_u_e_s_t_i_n_g_ _R_e_s_o_u_r_c_e_s_. 
JOB SPE-  The requestion of resources is stated in the beginning of the
CIFICA-   JOB FILE. This part is called the JOB SPECIFICATION and consists
&_TION      of the following: 
           
                    A job identification 
                    A list of options 
                    A list of load specifications 
                   
T_                 The JOB SPECIFICATION begins with the job identification and con-
          sists of the word JOB and the USER IDENTIFICATION known from the
          LOGIN routine. 
           
&_                    10 job kc 1234 .... 
           
          The list of options describes the various resources which are re-
          quested. For each resource there exists a corresponding OPTION,
          which must be stated, when the resource is requested. 
           
T_          Ex. 3.17            10 job kc 1234 size 20000 
           
          The load specification specifies the use of the paper tape reader
&_          (cf. 3.5.5). 
           
T_          Ex. 3.18            10 job kc 1234 size 20000 load trf data 
               
          The three parts of which the JOB SPECIFICATION consists must be
          stated in the order described above, and the individual elements
&_          must be separated by a space. 
           
T_          Ex. 3.19 
                    10 job kc 1234, 
                    20 size 20000, 
&_                    30 load trf data 
             
          The comma signifies that the JOB SPECIFICATION is continued on
          the next line. 
           \f

          Resources, which are not stated in the JOB SPECIFICATION, are al-
          located a standard assignment. The JOB SPECIFICATION will only
          be effective, if the job is enrolled with the RUN command. 
           
T_             Ex. 3.20 
                    10 job kc 1234 load trf data 
                    20 scope login data 
                    30 finis 
&_                    run 
             
T_3.5.2     P_r_i_m_a_r_y_ _s_t_o_r_e_.  
          The primary store consists of a number of 24 bit words. A 12 bit
          halfword is the smallest addressable unit. This unit is called a
&_          BYTE in older manuals. 
                    
SIZE      The primary store is ordered with the SIZE option. 
           
T_          SYNTAX 
          size number of halfwords' 
           
&_          Ex. 3.21            size 50000 
T_ 
3.5.3     C_o_m_p_u_t_a_t_i_o_n_ _T_i_m_e_. 
          By computation time is meant the total run time and not just the
&_          CPU-time. The TIME option specifies the demand on time. 
           
T_          SYNTAX11
&_          time   hours' 0minutes' 0 seconds' 
               
T_          Ex. 3.22             
                    time 3600 
                    time 60  0 
&_                    time 1 0 0 
             
T_          The same demand on time specified in: 
           
                    seconds 
                    minutes and seconds 
&_                    hours, minutes, and seconds \f

            When the time specified is exceeded, BOSS willl normally (depen-
          dent on the installation) terminate the job, so it is important
          to specify a time span which is large enough. 
           
          Regarding the influence of the time request on the job priority,
          see exercise 3.1. 
           
T_3.5.4     P_e_r_i_p_h_e_r_a_l_ _D_e_v_i_c_e_s_.
          A peripheral device is identified either by a device number or by
&_          a name. 
           
T_          In order to ensure an efficient utilization of the computer, BOSS
SPOOLING  may simulate different devices, so that transfer to these devices
          takes place via an intermediary store handled by BOSS. This tech-
&_          nique is called SPOOLING. 
           
          When a printer and a reader is being used, it can be stated, whe-
          ther the job itself wants to control the devices, or BOSS is to
                   control them. Thus there is a distinction between the two types
          of usage, i.e.: 
           
                       BOSS controlled 
                    JOB controlled 
             
          When the device is JOB controlled it is reserved for the job
          throughout the run time, regardless of whether the device is used
                   or not. When the device is BOSS controlled it is only engaged
          during the period of activity. 
           
T_3.5.5     R_e_a_d_e_r_. 
          A BOSS controlled reading is stated with the LOAD specifications.
           
            Ex. 3.23 
                    load tro data1 
&_                    load crc data2 
             \f

T_LOAD      A paper tape and a card deck are read to the areas DATA1 and
          DATA2 respectively. 
           
T_          SYNTAX 
&_          load mode specification' area name' 
           
          A LOAD specification is stated for each paper tape or card deck
          to be read in. The MODE specification states the tape or card ty-
          pe. Input is stored in a temporary area with the name stated. As
          temporary areas are deleted by the termination of the job, it is
          necessary to make the areas used permanent in order to preserve
          the input for longer time. Example 3.24 illustrates this. 
           
T_          Ex. 3.24 
                    10 job kc 1234 load tro data1 load trf data2 
                    20 scope user data1 data2 
&_                    30 finis 
             
          The FP command in line 20 makes the ares DATA1 and DATA2
          permanent, thus preserving them. 
           
          All the LOAD specifications are executed before the job proper is
          begun. In this way the number of resources being reserved, during
          the read in, is minimized. 
                    
T_TAPES     A JOB controlled reading requires reservation of the reader.  
             
          Ex. 3.25   
                    tapes 3 
&_                    device cardreader 
             
          The TAPES option reserves the paper tape reader throughout the
          execution of the job and should therefore only be used when it is
          absolutely necessary. 
           
T_          SYNTAX 
&_          tapes number of tapes' 
           \f

          The paper tape reader is reserved and the specified number of
          tapes can be read. The job must handle the processing of the tape
          itself. 
           
T_          Ex. 3.26 
                      job kc 1234 tapes 1 
                    data = copy tro 
                    scope user data 
                    finis 
           
                    job kc 1234 load tro data 
                    scope user data 
                    finis 
           
&_          The 2 jobs perform the same task, but the latter is recommended. 
             
           
         DEVICE    The card reader can be requested with the DEVICE option. 
           
T_          SYNTAX 
&_          device cardreader 
           
          The job will have to handle the processing of the cards itself. 
           
T_          Ex. 3.27 
                    job kc 1234 device cardreader 
                    data = copy crc 
                    scope user data 
                    finis
                              
                    job kc 1234 load crc data 
                    scope user data 
&_                    finis 
             
          The 2 jobs perform the same task. Note that the card reader can
          only be used by jobs which themselves have been read in on the
          card reader. For a more detailled description of the card reader
          e.g. on separating cards, see the BOSS User>s Manual. \f

T_3.5.5.1   M_o_d_e_. The list below contains the most commonly occuring MODE
          specifications. 
           
                   trf  Tape in f_lexowriter code. 
                   tre  Tape in iso code. E_ven parity. 
                   tro  Tape in iso code. O_dd entry. 
                    trn  Tape in n_o parity. 
           
                    crb  B_inary cards. 
&_                    crc  EBCDIC_ cards. 
             
T_3.5.6     P_r_i_n_t_e_r_. 
          The use of the PRINTER can either be BOSS controlled or JOB con-
&_          trolled. 
           
          By BOSS controlled printouts the job will have to inform BOSS
          when an area is to be printed. The transmitted information is sto-
          red in a CONVERT buffer, and when the printer becomes vacant, the
          area is printed. 
           
           
T_CBUF      For each area to be printed the job must have a CONVERT buffer at
          its disposal. 
           
            Ex. 3.28            cbuf 3 
           
&_          CONVERT buffers are requested with the CBUF option. 
                    
T_          SYNTAX 
&_          cbuf number' 
           
          The specified number of CONVERT buffers are requested. For each
          area to be printed, a CONVERT buffer is used for storing the area
          name and paper type. The CBUF is seldomly used as the standard
          assignment usually allocates a sufficient number of CONVERT
          buffers  \f

T_                 Ex. 3.29 
                    job kc 1234 cbuf 1 load tro data 
                    convert data 
                    finis 
           
&_          A paper tape is read and listed on the printer. 
             
           
T_DEVICE    The printer is reserved for JOB controlled printing with the
          DEVICE option. 
           
          Ex. 3.30            device printer 
           
          SYNTAX 
&_          device printer name' 
           
          By JOB controlled printing the specified printer is at the dispo-
          sal of the job and cannot be used by others. 
           
T_           Ex. 3.31 
                    job kc 1234 tapes 1 device printer 
                    lp = copy tro 
&_                    finis 
             
          A paper tape is read and printed. Instead of using this approach,
          the one shown in example 3.29 should be used. 
           
T_3.5.7     P_u_n_c_h_. 
          The PUNCH can only be used JOB controlled and is reserved with
DEVICE    the DEVICE option. 
           
&_          Ex. 3.32            device punch 
           
T_          SYNTAX 
&_          device punch name' 
           \f

T_          Ex. 3.33 
                    job kc 1234 device punch load tro data 
                    tpo = copy data 
                    finis 
           
&_                    A paper tape is copied 

T_       3.5.8     M_a_g_n_e_t_i_c_ _T_a_p_e_ _S_t_a_t_i_o_n_ 
          Different types of tape stations can be connected to the RC 8000,
          and there is a distinction betweenstandard tape stations and
&_          special tape stations.  
           
           
DEVICE    Special stations are ordered separately with the DEVICE option. 
           
T_          Ex. 3.34            device 8 
           
          SYNTAX 
          device device number' 
           
&_          Ex. 3.35            job kc 1234 device 8 
           
           
T_STATIONS  Standard tape stations are ordered from the pool with the STATI-
          ONS option. The vacant tape stations are selected to the assign-
&_          ment. 
           
          Ex. 3.36            stations 4 
           
T_          SYNTAX 
&_          stations number' 
           
          The conventions concerning the tape label etc. does not affect
          the reservation and is therefore not discussed till chapter 8. 
           
           \f

T_3.6       BOSS Commands 
           
          In ref. 1 and ref. 2 BOSS commands are found described under the
          name ONLINE commands. Terminal users can type instructions to
&_          BOSS by means of BOSS commands, and BOSS will instantly execute
          the specified actions. The BOSS commands can be divided into
          groups according to their function, for handling: 
           
                    . The JOB FILE 
                    . The job enrollment 
                    . The resource ordering 
                    . Printing 
                    . Information 
                    . Backing store 
                    . Operator intervention 
                    
             The following sections only describe a selection:  
 
T_3.6.1     J_O_B_ _F_I_L_E_ _M_a_n_i_p_u_l_a_t_i_o_n_. 
          SAVE, GET, LIST, VERIFY and edit commands are wellknown. For ge-
          neration of automatic line numbering the AUTOLINE command is
&_          used. 
           
          Ex. 3.37 
                    autoline 
                    autoline 10 
&_                    autoline 10 10 
             
T_          SYNTAX 
&_          first line' 1  1 
          autoline    last         interval span'0  0 
           
          It is not necessary to type line numbers, when the AUTOLINE
          command has been used, as each line then automatically is equip-
          ped with a line number. When AUTOLINE alone is used the lines are
          numbered 10, 20, 30, etc. As an alternative it is possible to 
          specify the starting number and the interval. LAST indicates that
          the line numbers are to be generated in continuation of the \f

                   already existing ones. 
           
          The generation of numbers ceases, when an ATTENTION signal is
          transmitted. 
           
T_          Ex. 3.38
                    autoline 30 7 
&_                    the lines are numbered 30, 37, 44 .... etc. 
             
T_          Ex. 3.39 
                    get data 
&_                    autoline last 
                 
T_3.6.2     J_o_b_ _E_n_r_o_l_l_m_e_n_t_. 
          The GO and RUN commands are wellknown. 
           
           
NEWJOB    A job, which must be described in a permanent area, is enrolled
&_          with the NEWJOB command. 
           
          Ex. 3.40            newjob rcjob 
           
T_                 SYNTAX 
&_          newjob area name' 
           
          A job is enrolled with the NEWJOB command and the specified area
          is made a JOB FILE. The job will not be connected to the terminal
          and the output of the job is delivered on the printer. The termi-
          nal is released immediately. 
           
          The user index, which was used by the LOGIN routine, cannot be u-
          sed by the new job. 
           
          Job enrollment is described further in section 8.3.1.1. 
           \f

T_       3.6.3     R_e_q_u_e_s_t_i_n_g_ _R_e_s_o_u_r_c_e_s_. 
          Resources can also be requested by means of BOSS commands. These
          BOSS commands have the same names as the corresponding options
&_          known from the JOB SPECIFICATION. 
             
T_       3.6.4     P_r_i_n_t_i_n_g_. 
CONVERT   An area can be printed on the printer with the CONVERT command. 
           
          Ex. 3.41            convert area37 1 
           
          SYNTAX1
&_          convert area name'   paper type'0 
             
          The area specified is printed on the printer on the paper type
          stated. Type 0 is used when nothing is stated. The CONVERT com-
          mand is not to be confused with the FP command CONVERT! (cf. 3.43).
           
          Ex. 3.42            convert rcdata 
           
          RCDATA is printed on the printer by means of the BOSS command CON-
          VERT. Paper type 0 is used. 
           
T_          Ex. 3.43 
                    10 job kc 1234 cbuf 1 
                    20 convert rcdata 
                    30 finis 
                    run 
             
&_          In this small job the CONVERT program is used to print RCDATA. 
           
T_       3.6.5     I_n_f_o_r_m_a_t_i_o_n_ 
          Terminal users can inform themselves about the activities of the
          computer by using the DISPLAY command. 
           
          EX. 3.44 
                    display 
                    display login 
&_                    display kc0 \f

            Syntax         
&_          login1 
          display  job name'  0  
           
T_DISPLAY   If the command is used alone a list of all the jobs in the JOB
&_          QUEUE is printed. 
           
          With DISPLAY LOGIN a list of all active terminal users are prin-
          ted. 
           
          By stating the JOB NAME it is possible to obtain information
          about a specific job. 
           
          To be able to understand the printout which is produced, it is
          necessary to know the following characteristics about the job: 
           
           
JOB NAME  User name and index determine the JOB NAME 
           
T_          Ex. 3.45 
                    type user name and project number 
                    kc 5 1234 
             
          This LOGIN routine effects that the jobs are executed under the
&_          name KC5. 
           
           
T_JOB CLASS To prevent time consuming jobs from using all the resources, the
          jobs are divided into 4 classes. Short jobs are placed in class
&_          0, somewhat more time consuming jobs are placed in class 1 etc.
          The time limits, which determine the placement, are installation
          specific. 
           
T_       CONTROL   A job can be connected to control point A or to control point B.
POINT     At each control point one job can be executed at the time.  
T_           
&_       STATE     The following states are possible: \f

                    loading     The job>s LOAD specifications are being
                                executed. 
                    reserving   The job is waiting for resources. 
                    swopped out The job has been "swopped" (cf. exercise 3.1)
                    in core     The job is running 
                    waiting     The job is waiting for e.g. tape mounting
                 
          This means that for each control point only one job can have the
          condition "in core", while several others can have the rest of
          the conditions. 
           
          The DISPLAY printout has the following format: 
           
T_          job name' class' control point' priority' condition' time
          of termination' 
           
T_3.6.6     B_a_c_k_i_n_g_ _S_t_o_r_e_. 
          BOSS commands concerning the backing store are described in chap-
&_          ter 4. 
           
T_ 3.6.7     O_p_e_r_a_t_o_r_ _I_n_t_e_r_v_e_n_t_i_o_n_. 
          BOSS only requires intervention from the operator in the following
&_          situations: 
           
                    By enrollment of an OFF-LINE job. 
                     
                    By change of paper, mounting of tapes etc. 
                     
                    The operator cankill a job and prevent new jobs from
                    being enrolled. 
                     
                    Furthermore the operator can broadcast informative
                    messages to the terminal users, as well as the jobs can
                    communicate with the operator. 
                     
                    There exists a number of BOSS commands for these purpo-
                    ses (cf. ref. 2) 
                       \f

T_3.6.8     R_e_s_t_r_i_c_t_i_o_n_s_. 
          To prevent abuse a number of restrictions can be laid down for
          each terminal user, so that the user only can use a subset of
                   the existing BOSS commands. It is perfectly normal that a number
&_          of commands are reserved for the operator. 
           
T_  3.6.9     E_x_e_r_c_i_s_e_s_. 
&_          Exercise 3.8        Print the JOB FILE on the printer. 
           
T_          Exercise 3.9        The area TEXT contains the following: 
           
                    u=algol 
                    begin integer a; 
                        read(in,a);write(out,a); 
                    end 12' 
                    u 
                    7 
&_                    finis 
              
          12' marks the presence of a form feed character. Determine the
          line numbers when the area is made into a BASIS FILE. 
           
                 
T_    3.7       Messages from BOSS 
           
          It appeared from section 3.2 that BOSS delivers certain informati-
&_          ve printouts to the terminal user. Erroneous typing may likewise
          cause different messages. The list below only contains a selec-
          tion of the possible messages. 
           
T_          END JOB NAME'...   This message terminates a job. 
           
&_          FILE IN USE         The area is connected as a BASIS FILE. 
           
            FILE NOT PERMANENT  The NEWJOB command has not been accepted. 
           
          FILE PROTECTED      It is illegal to change the area. \f

          FINIS...            The message shows the expected time of ter- 
                              mination. 
           
          FORBIDDEN           A BOSS command has been typed illegally.
&_                              A running job has to be terminated first. 
           
T_          ILLEGAL IDENTIFICATION 
&_                              Wrong project number or user name. 
                    
          IN:...              Shows the hour of the LOGIN routine. 
           
          KILLED BY OPERATOR  The job has been terminated by the operator. 
           
          KILLED BY USER      The job has been killed with the KILL command.
           
T_          LAST INPUT LINE SKIPPED 
                              The last line typed was not received, and
&_                              will have to be repeated. 
           
T_          LOGGED IN...        The message shows what is being posted by
                              LOGOUT. 
           
          LOGIN CLAIMS EXCEEDED 
&_                              No LOGIN resources are available. 
           
T_          NO RESOURCES        There are not resources enough available in
                              the backing store. 
&_                              Some more must be ordered. 
                    
T_          NO ROOM             The capacity of the JOB FILE is exhausted. By
                              using SAVE and GET the capacity can be renewed.
           
          NOT FOUND           The graphical picture stated is not found in
&_                              the line. 
           
T_          OPTION UNKNOWN OPTION' 
                              The OPTION shown does not exist, and the job
&_                              is not enrolled. \f

          OUTPUT EXCEEDED     The job has exceeded the limit for output and
T_                              is terminated. 
           
&_          PARAM               A command is accompanied by wrong parameters.
           
T_          PARAM AT OPTION'   The job is not enrolled, as an OPTION is accom-
                              panied by wrong parameters. 
           
          SYNTAX              An attempt has been made to type an unknown 
&_                              BOSS command 
           
T_          SYNTAX AT OPTION'  An unknown OPTION has been specified in the
                              JOB SPECIFICATION. The job is not enrolled.
                    
          TEMP EXCEEDED...    The job has been terminated due to a lack of 
&_                              resources in the backing store. 
           
T_          TEMPLATE TOO LONG   The graphical picture stated is too long. 
           
          TIME EXCEEDED       The job has been terminated, because the run-
&_                              time ordered has been exceeded. 
           
T_          TYPE USER NAME AND PROJECT NUMBER 
&_                              Appears in the LOGIN routine. 
           
T_          USER INDEX CONFLICT Most commonly appears when a job is enrolled
                              with the NEWJOB command, and the new job uses
                              the same index, used in the LOGIN routine. 
           
&_          WHAT?               An unknown command has been typed.\f

F_       4         THE BACKING STORE 
           
           
DISC      The backing store in RC 8000 is a shared store, where the diffe-
          rent users can store data. It may consist of one or more discs,
          in this first approach we will confine our attention to the most
          simple instance, a backing store consisting only of one disc. 
           
           
4.1       Area 
           
          Data stored on the backing store is located in socalled areas on
          the disckit (discpack). 
           
KIT       Figure 4.1 shows a kit containing 5 different areas. 
           
T_          Figure 4.1 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
&_           \f

T_AREA NAME One can see from figure 4.1 that each area is equipped with a
          name. The name is applied, when the area is to be used (read/
 PROGRAM   write). When an area contains a program, the area name is iden-
NAME      tical with the program name. It was shown in chapter 3 that the
          program name is used in the program call. 
           
          Ex. 4.1        p = algol text 
           
          The ALGOL compiler is activated by stating the program name ALGOL
          accompanied by different parameters. 
           
T_          The names must comply with certain rules: 
           
                    A name consists of up to 11 characters
                    (letter/digits). 
                    They must begin with a letter. 
&_                    Only small letters are allowed. 
           
T_          Ex. 4.2 
           
          The left column consists of correct names, while the right one
&_          contains wrong names: 
           
T_          algol         9data 
          fortran       da ta 
                    rcjob         debtorlogicalfile 
&_                            data910       Data 
           
T_          Exercise 4.1 
&_          Find the errors in the wrong names in example 4.2 
           
T_          There is a distinction between two area types: 
           
                    A text area 
&_                    A binary area 
           
           \f

T_TEXT AREA A text area is readable and can be printed directly, as it con-
          tains a character string. It is terminated by an END OF MEDIUM
&_          character. 
           
           
T_BINARY    The data in binary area consists of a number of double words,
         AREA      which cannot be printed directly. A compiled program is stored in
&_          a binary area, for instance. 
T_ 
 
4.2       Catalog 
           
          The areas are located different places in the backing store, and
          they may also differ in size. This information, together with
&_          other pieces of information, is collected in a special catalog, 
          (Directory). 
           
T_4.2.1     C_a_t_a_l_o_g_ _E_n_t_r_y_. 
          Figure 4.2 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
&_           \f

T_CATALOG   Figure 4.2 is an expansion of figure 4.1, as the catalog is now
ENTRY     included. For each area a record describing it exists in the ca-
          talog. A record in the catalog is called a catalog entry, and
&_          consists of two parts, the head and the tail. 
           
          Among other things the following information will be found: 
           
T_                           HEAD             TAIL 
           
                      Location Size 
                    Class 
&_                    Name 
           
          The location indicates where, in the backing store the area begins.
           
           
T_CLASS/    The catalog entries are split up into 5 classes (SCOPE) with the
&_SCOPE     names. 
           
                    SYSTEM 
                    PROJECT 
                    USER 
                    LOGIN 
                    TEMP 
           
          The SCOPE concept will be dealt with more thoroughly in section
          3.4. 
           
NAME      The area name is identical with the name of the catalog entry. 
           
T_SIZE      The area size is stated in segments. One segment can contain: 
           
                    768 characters     (text area) 
&_                    128 double words   (binary area) 
           \f

T_4.2.2     C_a_t_a_l_o_g_ _H_a_n_d_l_i_n_g_. 
          The creation and deletion of catalog entries is synonymous with
&_          the creation and deletion of the described areas; this can be done
          according to requirement. It is a priviledged function to update
          the catalog. (cf. 5.4) 
           
           
T_4.3       Scope 
           
          The SCOPE concept is closely connected with the division of the
            users into projects in the USER CATALOG, as a catalog entry is
&_          attached to a project, or a user in a project. 
           
           
T_SCOPE     Each project has a pool of catalog entries attached to it. The
PROJECT   catalog entries in these pools are characterized with the SCOPE
&_          denomination PROJECT. 
T_        
SCOPE     Likewise, each user has a pool of catalog entries attached to him
USER      These catalog entries are characterized with the SCOPE denomina-
          tion USER. 
           
           
T_    SCOPE     Each terminal user also has a pool of catalog entries attached to
LOGIN     him with the SCOPE denomination LOGIN. This pool is deleted, when
&_          the user leaves the terminal (LOGOUT). 
           
           
  SCOPE     A pool of catalog entries is attached to the job during execution-
 TEMP      its. The SCOPE denomination is TEMP, and the pool is deleted when
            the job is terminated. 
           
           
T_PROTEC-   In the attachment of the pools there is a buildt in security me-
TION      chanism to prevent unwanted access to an area. Catalog entries,
          which are attached to another project or another user, are invisib-
&_          le, implying that both reading and writing is impossible.  
           
           \f

T_SCOPE     The pool division for 2 different users attached to the same pro-
&_DIAGRAM   ject is shown in the SCOPE DIAGRAM in figure 4.3. 
           
           
T_Figure 4.3          SCOPE DIAGRAM 
           
SYSTEM                        
          POOL 
                  
          PROJECT 
          POOL 
           
             USERUSER
                   POOL              POOL
           
           
          LOGIN       TEMP                        TEMP  LOGIN
POOL       POOL                        POOL           POOL 
           
            JOB                         JOB 
                      USER XUSER Y 
&_                      PROJECT Z                   PROJECT Z
                    
           
           
           
          Starting from a job, and following the path in the direction of
          the arrows, all the pools, to which the job has access, are
          passed. 
          The pools not passed are completely hidden from the job. As one
          can see the SYSTEM- and the PROJECT pools are shared. 
           
          The LOGIN pools are framed to indicate that these pools only
          exist in connection with jobs which are enrolled with GO or RUN. 
           
          Figure 4.4 is a further illustration of the division into pools, 
          as more jobs and projects have been incorporated. The LOGIN pools
          have been omitted though. 
           \f

T_          Figure 4.4 
          SCOPE DIAGRAM 
           
          SYSTEM     
          POOL 
         PROJECT                        PROJECT 
        POOL                           POOL 
           
           
          USER        USER                     USER 
          POOL        POOL                     POOL 
           
           
           TEMP    TEMP    TEMP                    TEMP 
           POOL    POOL    POOL                    POOL 
           
           
          JOB 1    JOB 2     JOB                    JOB 
          USER X    USER X    USER Y                 USER W 
&_          PROJECT Z PROJECT Z PROJECT Z              PROJECT Q 
           
T_          Exercise 4.2 
          Determine by means of figure 4.4 the shared pools. 
           
          1. For users attached to the different projects. 
          2. For users attached to the same project. 
&_          3. For jobs attached to the same user. 
           
           
T_WRITTING  Areas in a pool, which are accessible, are also readable. The ac-
PERMIS-   cess is not an unconditional writting permission, though, the
&_SION      SYSTEM pool, among others, is protected. 
           
           
TEMPORARY Catalog entries with SCOPE TEMP are called temporary. 
                    
           \f

T_PERMANENT Catalog entries with SCOPE USER, SCOPE PROJECT, or SCOPE SYSTEM
&_          are called permanent. 
T_           
          Exercise 4.3 
          Imagine a user who is a member of 2 different projects. Which
&_          SCOPE pools are accessible from both projects? 
           
          If the paths in a SCOPE DIAGRAM are followed, the pools will al-
          ways be passed in the following order: TEMP, LOGIN, USER, PROJECT,
          and SYSTEM. 
           
           
T_SCOPE     The SCOPE classes hereby appear in increasing order according to
WIDTH     the SCOPE WIDTH. The concept of SCOPE WIDTH is illustrated in
&_          exercise 4.9. 
           
          The names in each pool in the SCOPE DIAGRAM are unambigous, i.e.
          a name can only appear once in each pool. Likewise the same name
          cannot appear both in the TEMP- and the LOGIN pool associated to
          one job (see fig. 4.5). 
           
T_          Figure 4.5 
          SYSTEM                    SYSTEM 
          DATA                      DATA 
           
           
          PROJECT                   PROJECT 
          DATA                       DATA 
           
           
          USER                      USER  
          DATA                      DATA 
           
           
            LOGIN     TEMP                     TEMP    LOGIN 
          DATA                             DATA 
           
&_          ALTERNATIVE 1                     ALTERNATIVE 2 
           \f

T_    4.4       The Catalog and BOSS 
           
          The handling of files consists of 4 basic operations: 
                             Create 
                    Change 
                    Delete 
&_                    Print 
          As the CATALOG is a file recording the use of the backing store,
          it is obvious that the basic operations must be able to work on
          the CATALOG. The sections below describe how BOSS supports those
          operations and section 5.4 describes the relations to MONITOR. 
           
T_BOSS      The operation and the catalog entry, which are to be dealt with,
COMMAND   are specified by means of different BOSS commands. The handling
          is of course limited to the catalog entries to which the user has
          access and the SYSTEM pool can o_n_l_y_ be printed. 
           
          It is possible to have more catalog entries with identical names.
          Using a BOSS command, the catalog entry located in the first pool
          passed in the SCOPE diagram is affected. This means that the
          catalog entry with the narrowest SCOPE is affected. 
           
T_          Figure 4.6 
           SYSTEM
            
           
           
 
PROJECT
 
 
 
 
 USER
  
  
  
  
 LOGIN\f

T_4.4.1     C_r_e_a_t_e_ 
          It is not explicitly possible to create catalog entries through
          BOSS. It does happen implicity though, by using the SAVE command
&_          and by BOSS controlled read in (LOAD). 
           
T_4.4.2     C_h_a_n_g_e_. 
&_          Changes are made with the SCOPE andRENAME commands. 
           
T_4.4.2.1   S_c_o_p_e_. A catalog entry can be transferred to another pool in the
&_          SCOPE DIAGRAM with the SCOPE command. 
                    
T_          Ex. 4.1 
                    scope user data 
&_                    The catalog entry DATA is placed in the USER pool. 
           
T_          SYNTAX 
          login 
          scopeusername' 
&_                    project 
           
          FUNCTION 
T_          The catalog entry with the narrowest SCOPE and the specified name
          is placed in the SCOPE pool stated. To secure the transfer to the
          new pool, a possible catalog entry with the specified name in the
&_          new pool will be deleted at the outset. 
           
T_          Exercise 4.4 
          In each of the SCOPE pools LOGIN, USER, and PROJECT, there is a
          catalog entry with the name DATA. Describe what happens when the
&_          following is entered: 
           
              scope project data 
                    scope login data 
           \f

T_       4.4.2.2   R_e_n_a_m_e_. A catalog entry is renamed with the RENAME command. 
           
          Ex. 4.2 
                    rename old new 
&_                    The catalog entry OLD is renamed to NEW. 
           
T_          SYNTAX 
&_          rename name' new name' 
           
          FUNCTION 
T_           The specified catalog entry is equipped with the new name with
&_          the RENAME command. 
           
          The command operates on the catalog entry with the narrowest SCO-
          PE, and if a catalog entry with the new name already exists in
          this pool, the renaming is not carried out. 
           
T_          Exercise 4.5 
          In each of the SCOPE pools LOGIN, USER and PROJECT, there is a
          catalog entry with the name DATA. 
&_                 Transfer the catalog entry in the USER pool to the PROJECT pool. 
              
T_       4.4.3     D_e_l_e_t_e_ 
          Catalog entries are deleted with the CLEAR command. 
           
          Ex. 4.3 
                    clear login data 
&_                    The catalog entry DATA is deleted from the LOGIN pool. 
           
T_          SYNTAX 
            login1
          clear     username'
&_                    project0 
           
          FUNCTION 
T_          The specified catalog entry in the SCOPE pool stated is deleted.
          If the parameters are omitted the contents of the JOB FILE is
&_          deleted and a BASIS FILE, if any, is released (cf. 3.4.4.2). \f

T_4.4.4     P_r_i_n_t_ 
           
LOOKUP    Printing of a catalog entry can be accomplished with the LOOKUP
&_          command. 
           
T_          Ex. 4.4 
                    lookup data 
&_                    The catalog entry DATA is printed. 
           
T_          SYNTAX 
                    login1
          lookup    username'
&_                    project0 
           
          FUNCTION 
          When the SCOPE has been specified, the catalog entry, with the
          specified name in the SCOPE pool stated, is printed. Otherwise
          the catalog entry with the specified name and the narrowest
          SCOPE, is printed.
           
T_          The printout has the following appearance: 
           
                    name' = set tail' ; scope specification'   
&_          ;head' 
             
T_          Ex. 4.5
                    data=set 18 disc d.770415.1623 0 0 0 0 ; user 
&_                    ; 100 17 3 100 109 
           
                   Section 4.6 contains a more detailed description of the catalog
          entries. 
           
           
T_4.5       The Catalog and Utility Programs 
           
          There are a number of utility programs to handle the catalog, in
&_          order that the different jobs can create, change, delete and\f

          print catalog entries. These UTILITY programs often have the name
          of a corresponding BOSS command. The execution of a program re-
          quires that a JOB FILE is written/typed, and that the job is exe-
          cuted. The program descriptions below are not exhaustive, and
          only show alternatives to the BOSS commands discussed above. 
           
T_4.5.1     C_r_e_a_t_i_o_n_. 
&_SET       Temporary catalog entries are created with the SET program. 
           
T_          Ex. 4.6              
                    10 data=set 18 
                      20 finis 
                     
                    A temporary area DATA is created with a size of 18
&_                    segments. 
           
T_          SYNTAX 
&_          name' = set size' 
           
          FUNCTION 
T_          A temporary catalog entry is created with the specified name, and
&_          the size stated determines the area size in segments. 
           
T_4.5.2     C_h_a_n_g_e_. 
          The contents of a catalog entry can be changed with the SCOPE and
&_          RENAME programs. 
           
T_4.5.2.1   S_c_o_p_e_. A catalog entry can be transferred to another pool in the
&_          SCOPE DIAGRAM with the SCOPE program. 
           
T_          Ex. 4.7 
                    10 scope user data 
&_                    20 finis 
           
          The catalog entry DATA is tranferred to the USER pool. \f

T_                 SYNTAX 
                    temp 
          scope     loginname' 
                    user 
&_                    project 
           
                FUNCTION 
T_          The catalog entry, with the narrowest SCOPE and the specified
          name, is placed in the SCOPE pool stated. To secure the transfer
          to the new pool, a possible catalog entry with the specified name
&_          in the new pool will be deleted from the outset. 
                    
T_4.5.2.2R_e_n_a_m_e_. A catalog entry is renamed with the RENAME program. 
           
            Ex. 4.8 
                    10 rename old.new 
&_                    20 finis 
           
          The catalog entry OLD is renamed NEW (cf. 6.3) 
           
T_          SYNTAX 
&_          rename name'.new name' 
           
          FUNCTION 
T_          The specified catalog entry is renamed with the new name specified.
          The RENAME program operates on the catalog entry with the narrow-
          est SCOPE, but if a catalog entry with the new name already exists
&_          in this pool the renaming is not carried out. 
           
T_4.5.3     D_e_l_e_t_e_. 
&_          Catalog entries are deleted with the CLEAR program. 
           
T_          Ex. 4.9 
                    10 clear user data 
&_                    20 finis 
           
          The catalog entry in the USER pool is deleted. \f

          SYNTAX 
                    temp 
          clear     login     name' 
                    user 
&_                    project 
                    
          FUNCTION 
          The specified catalog entry in the pool stated is deleted. 
           
T_4.5.4     P_r_i_n_t_ 
LOOKUP    Catalog entries can be printed with the LOOKUP program. 
           
&_          Ex. 4.10            lookup data 
          All accessible catalog entries with the name DATA is printed. 
           
T_          SYNTAX 
&_          lookup name' 
           
FUNCTION 
          All accessible catalog entries with the specified name is printed.
           
T_          The printing is performed as previously discussed (cf. section
          4.4.4 and section 4.6) 
           
&_          name'=set tail' ; scope specification'  
          ; head'
T_ 
4.5.5     E_x_e_r_c_i_s_e_s_. 
                    
          Exercise 4.6 
          Examine how many catalog entries with the name RCDATA there
          exist. 
           
                    1. With the LOOKUP command 
&_                    2. With the LOOKUP program 
           
T_          Exercise 4.7 
&_          Create a catalog entry and place it in the LOGIN pool.  
           \f

T_          Exercise 4.8 
          A member of a project wishes to make a temporary area, DATA, ac-
          cessible for another member of the project. How can this be done,
&_          and who will afterwards have access to the area? 
           
               
T_4.6       Catalog Entry 
           
          All the information in the catalog entry appears, when the entry
&_          is printed with LOOKUP. 
                    
T_          Ex. 4.11 
                    lookup data 
                    data = set 72 disc d.770415.1673  0 0 0 0 ; user 
&_                    ; 100 17 3 100 109 
           
T_          The information is divided into two groups the head and the tail.
           
          HEAD                          TAIL 
                   First slice                   Size
                    Name key                      Document name 
                    Catalog key                   Date 
                    Base                          Miscellaneous
&_                    Name 
           
          In the printout in example 4.11 the information is stated in the
          following order: 
           
T_          name' = set size'document name'date'miscellaneous' ;scope'
                   ; first slice'name key'catalog key'base' 
           
&_          The items are described in the section below. 
           
T_4.6.1     T_h_e_ _F_i_r_s_t_ _S_l_i_c_e_. 
          The backing store is divided into a number of units of equal si-
          ze. These units are called SLICES, and always consist of an even
&_          number of segments. The number is installation dependent. 
             \f

T_          Figure 4.7 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
&_           
           
                   Figure 4.7 shows the backing store divided into SLICES. In addi-
          tion to the catalog two more areas have been drawn, hatched diffe-
          rently. 
           
          It appears from the figure that: 
           
                    An area always consists of an entire number of SLICES. 
                    An area may consist of connected SLICES. 
                    An area may consist of disconnected SLICES. 
           
          Each slice is numbered, and the FIRST SLICE element of the
          catalog entry selects the number of the first SLICE, which is
          part of the area. The chaining together of the SLICES is handled
          by MONITOR. 
           
          A catalog entry can be used for different purposes, and does not
          inevitably describe an area, as it has been assumed up till now.
          The interpretation of the FIRST SLICE element depends on the use
          of the catalog entry. (cf. 4.6.6). 
           \f

T_4.6.2     N_a_m_e_ _K_e_y_. 
          This piece of information is used by MONITOR for managing in the
&_          catalog. 
           
T_4.6.3     C_a_t_a_l_o_g_ _K_e_y_. 
          The SCOPE information is determined by the catalog key and the
&_          base (cf. exercise 4.9). 
           
T_4.6.4     B_a_s_e_. 
          The base consists of a pair of numbers, stating the lower base
          limit and the upper base limit. The SCOPE specification is deter-
&_          mined by the base and the catalog key. 
           
T_          Exercise 4.9 
          A user has printed different catalog entries and achieved there-
T_          sult seen below: 
           
T_                    data=set 36 disc 0 0 0 0 0 ; project 
&_                    ; 1207 72 3 5 154 
           
T_                    data=set 18 disc 0 0 0 0 0 ; user 
&_                    ; 1199 72 3 15 24 
           
T_                    data=set 18 disc 0 0 0 0 0 ; temp 
&_                         ; 1197 72 0 16 16 ; 
                              
T_                    d100=set 36 disc 0 0 0 0 0 ; login 
&_                    ; 1310 72 2 16 16 
           
          How are the concepts temporary, LOGIN, and permanent reflected in
          a catalog entry? 
           
          Find a connection between the bases in the 4 SCOPE pools. 
           
          Another user belonging to the same project likewise prints
          different catalog entries and achieves the result seen on the
            following page: 
           \f

T_                    data=set 36 disc 0 0 0 0 0 ; project 
&_                         ; 1207 72 3 5 154 
 
T_                    data=set 72 disc 0 0 0 0 0 ; user 
&_                         ; 900 72 3 35 44 
           
T_                    data=set 18 disc 0 0 0 0 0 ; temp 
&_                    ; 501 72 1 40 40 
           
          How does it appear from the base, whether a user has access to a
          catalog entry or not? 
           
          How are the relation between the bases of two different projects?
           
T_4.6.5     N_a_m_e_. 
           The name complies with the following rules: 
           
                    A name consists of up to 11 characters, (letters/digits).
                    It must begin with a letter. 
&_                    Only small letters must be used. 
           
           
T_IDENTIFI- A catalog entry is identified by its name and base. This implies
CATION    that more catalog entries with identical names and bases cannot
&_          exist. 
           
T_4.6.6     S_i_z_e_. 
          When size is positive the catalog entry describes an area and
          size specifies the number of segments. By alternative uses size
          is negative. A catalog entry can, for instance, describe a file
&_          on a magnetic tape. 
           
T_       4.6.7     D_o_c_u_m_e_n_t_ _N_a_m_e_. 
          The data is situated on physical documents. These can, for instan-
          ce, be a kit or a magnetic tape. Documents also have names, which
&_          comply with the established rules. When a catalog entry is crea-
          ted, it may furthermore be specified on which document an area is
          to be placed. 
           \f

T_          Ex. 4.12 
                    10 data1 = set 18 disc 
&_                    20 finis 
           
          An area, DATA1, is created on the kit called DISC. 
           
          A catalog entry can be a reference to an area, and the area is
          then considered to be a document. 
           
T_                    UTILITY = SET 126 DISC D.770227.0208 0 43 0 
&_                              14.1024 ; SYSTEM 
           
T_                    LOOKUP  = SET BS UTILITY D.770227.0206 0 43 
&_                    2.1332 2474 ; SYSTEM 
           
          The LOOKUP program is located in the area (on the document)
          UTILITY, which again is located on the document DISC. 
           
T_4.6.8     D_a_t_e_. 
          This piece of information may contain a date and an hour, but it
&_          may also be omitted. 
           
T_4.6.9     M_i_s_c_e_l_l_a_n_e_o_u_s_. 
          Different kinds of information can be placed in 4 integers. The
          interpretation of the information depends on the programs using
          the catalog entries. The information can, for instance, tellthat
&_          an area contains a compiled program. 
           
           
T_4.7       Additional Disc Units 
           
          All the disc units, attached to the computer are organized as de-
&_          scribed in the previous sections.\f

T_                 Figure 4.8 
           
          DISC 
           
           C 
                               C        A 
          MAT 
          ATA 
          IAL 
          NLO 
          OG 
          G1 
            
            
           
           


          CC 
          AA 
            TT 
            AA 
            LL 
            OO 
            GG 
            23 
           
&_          DK123456DK789101 
           
          Furthermore a main catalog is placed on one of the kits. Themain
catalog contains copies of all the catalog entries in the
catalogs, belonging to the mounted kits. 
           
          The kit containing the main catalog cannot be dismounted; but if
it is to be dismounted the catalog must be moved to another kit.
This can be done on request. 
           \f

T_                 Figure 4.9 
           
          SYSTEM DISC                PRIVATE DISC 
           
           
           

           C
          CMAC 
          AATA 
          T  1IAT2 
          ANLA 
          LOL 
          OGO 
          GG 
           
&_          DISCDK123456 
           
           
T_     PRIVATE   The document name of the kit containing the basic software is
KIT       DISC and is referred to as the system disc. The rest of the kits
&_          are called private and usually have a name of the type DKXXXXXX. 
T_CHANGE    When a kit is mounted all the catalog entries in the catalog of
         KIT       the kit will become incorporated in the main catalog, which then
          contains a complete description of the backing store. When a pri-
          vate kit is dismounted all catalog entries concerning the kit are
&_          removed from the catalog. 
           
T_          Ex. 4.13 
                    10 x=set 200 dk123456 
                    20 scope user x 
&_                    30 finis 
           
          A temporary catalog entry X is created in the main catalog on the
          system disc, describing an area in the kit DK123456. 
           
          The catalog entry is then placed in the USER pool, which at the\f

          same time incorporates it in the catalog on DK123456. 
           
          The area will now be able to survive a dismounting of the kit. 
           
T_          Exercise 4.10 
                    Set up an extended syntax for the SAVE command, so
&_                    more disc units can be used.
T_ 
 
4.8       Resources 
           
          Distinction is made between temporary and permanent resources in
&_          the backing store. 
           
&_4.8.1     T_e_m_p_. 
          Temporary resources are ordered with the TEMP option/command. 
           
            Ex. 4.14 
                    temp disc 500 10 
&_                    job kc 1234 temp disc 500 10 
           
T_          SYNTAX 
&_          temp disc segments' catalog entries' 
           
          The specified number of temporary segments and catalog entries
          are requested on the system disc. When a temporary resource is
          deleted, the released capacity is transferred to the job. When
          the job is terminated all temporary resources are released. 
           
T_   4.8.2     P_e_r_m_. 
          Permanent resources are ordered with the PERM option/command. 
           
            Ex. 4.15 
                    perm dk123456 3000 30 
&_                    job kc 1234 perm dk123456 3000 30 
           
T_          SYNTAX 
&_          perm document name' segments' catalog entries' 
           
          The specified number of permanent segments and catalog entries\f

          are requested on the specified kit. The part of the permanent
          resources, which have been used, survive the job. This is exactly
          what distinguishes this resource from the other resources. When a
          permanent resource is deleted by a job, the released capacity is
          transferred to the job. It is allowed to use the permanent
          resources for temporary or LOGIN areas. 
           
           
T_4.9       Examples 
           
          This section contains different examples of the most frequently
&_          used BOSS commands for the handling of the catalog. 
T_          Ex. 4.15 
          Enter a job and store it in a permanent area. 
                     
  10 job kc 1234 time 10 0 
                    20 p = algol text 
                    30 finis 
                    save kcjob 
&_                     scope user kcjob 
           
T_          Ex. 4.16 
                    The job stored in example 4.15 is to be modified and
&_                    then stored again. 
           
T_                    get kcjob 
                    15 p = set 50 dk791399 
                    save kcjob 
                    clear 
&_                    scope user kcjob 
           
          When the SAVE command has been used, there exist two areas with
          the name KCJOB. As the permanent area KCJOB is a BASIS FILE it
          must be released with the CLEAR command, before the SCOPE command
          can be used for transferring the modified JOB FILE to the USER
          pool. 
           \f

T_          Ex. 4.17 
                    When the SCOPE command is used the necessary resources
                    must be available. 
           
                    perm disc 1000 10 
&_                    scope user kcjob 
           
          Resources are requested with the PERM command, before the SCOPE
          command is used. 
           \f

F_       5         MONITOR 
           
           
          In order to let the operating system carry out full control over
          the computer, it is necessary that certain functions are executed
          by the operating system alone. Several of these functions will be
          common irrespective of the selected operating system. Due to this
          fact these functions are gathered in an independent unit which is
          called MONITOR. Figure 5.1 shows the location of MONITOR and BOSS
          in the primary store. 
           
T_          Figure 5.1 
           
          Primary Store 
           
          MONITOR 
           
           
           
          BOSS 
           
           
&_           
           
          Besides the priviledge functions MONITOR contains different va-
          riables and tables describing the state of the computer. The
          description consists of a sequence of process descriptions, as
          the activities of the computer are performed in processes. It is
          not strictly necessary to know the process concept, but in order
          to understand some error messages, it can be essential to be
          acquainted with this concept. On your first reading of the book
          the rest of chapter 5 could be skipped. 
           
           \f

T_ 5.1       Process 
           
PROCESS   To the caretaking of different functions different process types
NAME      exist. A process is named according to the wellknown rules. In
          the following sections the three most important process types are
&_          treated. 
           
T_5.1.1     I_n_t_e_r_n_a_l_ _P_r_o_c_e_s_s_. 
          By an internal process is meant a well-defined area in the primary
          store where the programs are executed. A job is thus executed in
          an internal process and the job name is identical with the
&_          process name. 
           
          To each internal process a process description exists which among
          other things contains the following information: 
           
                    - Processname 
                    - Location in the primary store 
                    - Resources claim 
                    - Time consumption
                    -Hierarchial placing 
                    - State 
           
          The description contains both fixed and variable information. The
          process name is fixed information while i.e. the time consumption
          is continuously accumulated. 
           
          The updating is carried out by MONITOR. 
           
T_  5.1.1.1   P_r_o_c_e_s_s_ _H_i_e_r_a_r_c_h_y_. After the initial loading the primary store
          contains MONITOR and an internal process S, which is the basic
          operating system. All resources are allocated to S. This is shown
&_          in figure 5.1 
           \f

T_          Figure 5.2 
           
          Primary store 
           
          MONITOR 
           
           
            
          S
&_           
           
T_           
          A subset of a process can be laid out as an independent process
CHILD     and resources can be transferred to the new process. The new pro-
         PROCESS   cess is called a CHILD PROCESS while the name of the original is
&_          PARENT PROCESS. 
           
          Usually the operating system S is used only for creation of BOSS,
          alone causing all resources to be transferred to BOSS. 
           
          Figure 5.3 shows that S is PARENT and BOSS is CHILD. 
T_                                
                              Primary store  
           
           
           
          MONITOR 
           
           
&_          S         BOSS 
           
          
           
           
           
          When a job is to be executed by BOSS an internal process is crea-
          ted in which the execution takes place. The execution of two jobs
          simultaneously is shown in figure 5.4. 
           \f

T_          Figure 5.4 
           
          MONITOR 
                                         
                                      JOB 1 
           
                              S       BOSS 
           
                                      JOB 2 
           
&_           
           
T_          BOSS is now PARENT PROCESS for the two CHILD-processes and S is
ANCESTOR  called ANCESTOR PROCESS. When a job is terminated the internal
&_          process is removed. 
           
T_       5.1.1.2   P_r_o_c_e_s_s_ _S_t_a_t_e_. The process state reflects the immediate activity
          of the process. A distinction between two primary states is made.
           
                    - Running 
&_                    - Waiting 
           
          By MONITOR CPU time is in turns assigned all processes, which are
          in the state RUNNING (ROUND ROBIN). 
           
          A process can be in the state WAITING for several reasons. A pro-
          cess waiting for data transports is in this state and so is a
          process which is swopped by BOSS. 
           
          Two factors are thus essential concerning the sharing of CPU
          time:
                             1. BOSS>s priority strategy. (JOB SCHEDULING)
                    2. MONITOR>s ROUND ROBIN strategy. 
           
T_5.1.2     P_e_r_i_p_h_e_r_a_l_ _P_r_o_c_e_s_s_. 
          The data transfer between peripheral devices and the primary sto-
&_          re is carried out by the peripheral processes. A peripheral pro-
          cess is a part of the MONITOR. To each peripheral device a\f

          peripheral process belongs, including a process description which
          among other things contains the following information: 
           
                    - Process name 
                    - Device number 
                    - Reservation 
                    - Potential users (internal processes) 
           
          A potential user can reserve a peripheral process which could be
          necessary before writing. The various processes are described in
          ref. 13. 
           
T_       5.1.3     A_r_e_a_ _P_r_o_c_e_s_s_. 
          Data transfer between areas of thebacking store and the primary
          store is carried out by area processes. As the number of areas
&_          can vary a pool of area processes is found in MONITOR. These can
          be attached to the desired areas. In the area process description
          the following information is included: 
           
                    - Process name 
                    - Device number 
                    - Reservation 
                    - Potential users (internal processes) 
           
          An area is located on a peripheral device (DISC). In the process
          description there is referred to the device number. A potential
          user may reserve an area process which is necessary before writ-
          ing. 
           
T_5.1.4     P_r_o_c_e_s_s_ _H_a_n_d_l_i_n_g_. 
          Monitor supports the process handling by a set of priviledged
          functions. 
           
&_          The list below gives an impression of the possibilities: 
           \f

T_                           CREATE     INTERNAL  PROCESS
                    CREATE     PERIPHERALPROCESS
                    CREATE    AREAPROCESS
                    RESERVE  PROCESS 
                    RELEASE  PROCESS 
                    REMOVE   PROCESS 
                    START      INTERNAL  PROCESS
&_                    STOP       INTERNAL  PROCESS
           
           
T_5.2       Internal Communication 
           
     MESSAGE   In MONITOR a pool of MESSAGE BUFFERS exists, they are used for
&_   BUFFERtransfer of information between the different processes. The
exchange of information should take place according to a well-
defined protocol, and the following functions are made available
by MONITOR: 
           
T_                    SEND MESSAGE 
                    WAIT MESSAGE 
                    SEND ANSWER 
&_                    WAIT ANSWER 
           
          A message is transferred to a MESSAGE BUFFER by use of the func-
          tion SEND MESSAGE. From here the message is transferred to the
          wanted process when this calls the function WAIT MESSAGE. The
          answer of the message is returned via the same MESSAGE BUFFER by
          calling SEND ANSWER. By calling the function WAIT ANSWER the an-
          swer from the MESSAGE BUFFER is transferred to the process. The
          communication outline below shows this: 
           
T_                    SENDER                        RECEIVER 
                    SEND MESSAGE
                                                  WAIT MESSAGE 
                                  SEND ANSWER 
&_                    WAIT ANSWER 
           \f

          An internal process which waits for an event (MESSAGE, ANSWER) is
          by MONITOR set into the state WAITING until the event occurs. 
           
T_          A more advanced communication between processes is supported by
          the functions: 
           
                    GET EVENT 
&_                    WAIT EVENT 
                   The processes arrange individually the exchange of information.
          To the relevant peripheral / area process messages containing the
          necessary information are sent by way of input / output. The pro-
          cesses return an answer concerning the success of the data trans-
          fer. 
           
T_          Ex. 5.1 
                    begin integer a,b ; 
                    read (in,a,b); 
                    write (out,a,b) ; 
&_                    end 
           
          In this wellknown program input as well as printout is carried
          out. The necessary internal communication is not reflected in the
          program, but is unnoticed attended to by the READ and WRITE pro-
          cedures. A message concerning input / output typically contains
          the following information: 
           
                    1. Operation code 
                    2. Statement of data buffer 
                     
          By reading, data is transferred from the device to the specified
          data buffer, and by writing, data is transferred from the data
          buffer to the device. 
           
          In the answer the following information is typically found: 
           
                    1. Statusword 
                    2. Number of transferred halfwords. 
           \f

T_5.3       Resources 
           
          Process descriptions and message buffers are regarded as resour-
          ces and thus by run under BOSS the necessary resources must be
&_          requested in the JOB SPECIFICATION or by BOSS commands. 
           
T_5.3.1     I_n_t_e_r_n_a_l_ _p_r_o_c_e_s_s_. 
           
         INTERNAL  The internal process descriptions are requested by the command /
&_          option INTERNAL. 
           
T_          Ex. 5.2 
                    internal 1 
&_                    job kc 1234 internal 1 
T_                 SYNTAX 
&_          internal number' 
           
          FUNCTION 
T_          The specified number of internal process descriptions are ordered.
&_          By the creation of a CHILD PROCESS a description is required. 
           
T_     5.3.2     P_e_r_i_p_h_e_r_a_l_ _P_r_o_c_e_s_s_. 
          By ordering a peripheral device (cf. 3.5.4) the belonging
&_          peripheral process is also requested.  
T_ 
5.3.3.    A_r_e_a_ _P_r_o_c_e_s_s_. 
           
&_       AREA      By the command / option AREA the area processes are ordered. 
           
T_          Ex. 5.13 
                    area 10 
&_                    job kc 1234 area 10 
           
              SYNTAX 
          area number' 
             
           
           \f

           FUNCTION 
          The specified number of area processes are ordered. Each process
          can be attached to one area at the time. Simultaneous use of two
          areas thus demands two area processes. By successive use one area
          process is sufficient, as the area process in sequence can be
          attached to the areas. 
           
T_5.3.4     M_e_s_s_a_g_e_ _B_u_f_f_e_r_. 
           
&_       BUF       By means of the BUF command / option MESSAGE BUFFERS are ordered.
           
          Ex. 5.4 
                    buf 7 
&_                    job kc 1234 buf 7 
           
T_          SYNTAX 
&_          buf number' 
           
          FUNCTION 
          The specified number of MESSAGE BUFFERS are ordered. By sending
          a message a MESSAGE BUFFER is used. By the reception of the an-
          swer the MESSAGE BUFFER is returned and a new message can be send
          off. The number of MESSAGE BUFFERS thus determines how many mes-
                   sages can be send simultaneously. 
           
           
T_ 5.4       The Catalog 
           
          The handling of the catalog is entrusted to MONITOR which is sup-
&_          ported by the following functions: 
           
T_                    CREATE ENTRY 
                    LOOKUP ENTRY 
                    CHANGE ENTRY 
                    REMOVE ENTRY 
                    PERMANENT ENTRY 
                    SET ENTRY BASE 
&_                    LOOKUP HEAD AND TAIL 
           \f

          The use of the wellknown BOSS-commands and utility programs (chap-
          ter 4) thus results in the call of one or more of the MONITOR
          functions. 
           
          A MONITOR function is performed from the ALGOL-programs by calling
          the procedure MONITOR. 
           
           
T_5.5       Division of Work 
           
          The division of work between MONITOR and BOSS may seem a little
          dim and thus the matter is illustrated in a sequence of examples
&_          in the following sections. 
           
T_5.5.1     C_P_U_ _-_ _t_i_m_e_. 
          BOSS selects the jobs which are to be executed, and can start and
          stop the CHILD PROCESSES. MONITOR distributes CPU-time to the ac-
          tive (RUNNING) processes and can change the state of process by
&_          the execution of certain functions. (cf. 5.2). 
           
T_5.5.2     S_u_p_e_r_v_i_s_i_o_n_ 
PROTEC-   Protection of the primary store is made by MONITOR to secure the
TION OF   internal processes and to prevent illegal disturbance in the form
STORE     of unwanted writing in the process area. 
           
           
T_RUN-      The used run time is on the other hand surveyed by BOSS which al-
&_TIME      so decides what should happen to a job that exceeds the time limit.
          
T_5.5.3     R_e_s_o_u_r_c_e_s_. 
          The ordering of resources is addressed to BOSS, and the wanted
&_          resources are transferred to the CHILD PROCESS. 
           
          MONITOR prevents a process from using more resources (MESSAGE
          BUFFER, AREA PROCESS, PERIPHERAL PROCESS, CATALOG ENTRY, SLICE)
          than it has been given at its creation. 
           \f

T_5.5.4     D_a_t_a_ _t_r_a_n_s_f_e_r_. 
          MONITOR attends to the data transfer whereas BOSS decides whether
&_          "spooling" should take place. 
           
T_5.5.5     P_o_l_i_c_y_. 
          From the section mentioned you can conclude that the political
          decisions (job scheduling, job termination, resource allocation,
          spool strategy) are left to BOSS. The noon political decisions
          are made by MONITOR. 
           \f

F_       6         FILE PROCESSOR 
           
           
          In the previous chapters our attention has almost solely been con-
          centrated on the reservation of resources, and we have only to a
          small extent dealt with the use of the resources, we have order-
          ed. We have already seen, though, how programs can be activated.
          Before dealing with this subject in detail, chapter 6 contains a
          short description of the sequence of events when a job is execu-
          ted. 
           
             
T_6.1       Execution of a Program 
           
          When BOSS has selected a job, a internal process is created,
          through which the job can be executed. From the backing store
          BOSS then loads a program which handles the execution of the pro-
          grams wanted. This program is called a FILE PROCESSOR, and is
&_          named FP. 
           
T_          Figure 6.1 
          MONITOR 
           
           
B           FP                              
                             ORC0 
                             S 
                             SFP 
&_                                        RC1 
           
           
          Figure 6.1 illustrates the simultaneous execution of the two jobs
          RC0 and RC1. Each job is executed in an internal process and
          there is a copy of FP in each process. 
           
          During the execution of the job FP is situated permanently in the
          primary store and can support the execution in different ways. FP
          handles the following: \f

                    Reads and interprets control commands (FP commands) 
                    Activates programs 
                    Updates state variables 
                    Makes auxiliary functions available 
           
T_                 Ex. 6.1 
                    10 job kc 1234 temp disc 900 5 
                    20 data = set 900 disc 
&_                   30 finis 
           
          When this job is to be executed, BOSS begins by reading the JOB
          SPECIFICATION, then an internal process is created and the resour-
          ces needed are transferred to the process. FP is loaded and
          further execution of the job is left to FP. This is what happens:
           
                    1. FP reads the first FP command from the JOB FILE. 
                        
T_                    2. The command is interpreted, and the SET program is
&_                       loaded into the free part of the process. 
                        
                    3. The SET program is activated and executed. 
                        
T_                    4. The execution of the program is terminated by a call
&_                       of the FP auxiliary function END PROGRAM. 
                        
T_                    5. The control is now returned to FP which updates its
                       state variables concerning the execution of the SET
&_                       program. 
                        
                    6. The next FP command is read from the JOB FILE. 
                        
T_                    7. The command is interpreted, and the FINIS program is
&_                       loaded, hereby overwriting the SET program 
                        
T_                    8. The FINIS program is executed. FINIS sends a message
                       instructing BOSS to terminate the job, and the con-
&_                       trol is returned to BOSS, which terminates the job.\f

          Figure 6.2 
           
          RC0          RC0          RC0          RC0 
           
          FP           FP           FP 
           
          SET FINIS 
           
&_           
           
          Figure 6.2 illustrates the sequence of events, when the job in
                   example 6.1 is executed. As shown, FP permanently occupies space
          in the primary store, but as FP utilizes the primary store vir-
          tually it is only a few halfwords (1536) which are being occupied
          permanently. Thus regarding space, it is not of much importance
          that each job contains a copy of FP. As FP only has to attend to
          one job, FP is a comparatively simple program, which may easily
          be replaced by another one. 
           
           
T_6.2       FP Command 
           
          There is a distinction between simple FP commands and compound FP
&_                 commands. 
           
T_6.2.1     S_i_m_p_l_e_ _F_P_ _C_o_m_m_a_n_d_. 
          Ex. 6.2 
                    finis 
                    lookup data 
&_                    data = set 900 disc 
           
          A program is activated with a simple FP command, and different
          parameters may be transferred to the program. 
           
T_          SYNTAX11 
&_          result file'= 0 program name'  parameter list'0 
           \f

          FP reads an FP command, performs a check of the syntax, inter-
          prets the command, and activates the specified program. The inter-
          pretation of the optional parts of the command are left to the
          specified program. 
           
           
T_LEFT      The part of the command to the left of the program name is called
     HAND SIDE the left hand side and usually specifies the name of a catalog
          entry. 
           
T_          Ex. 6.3 
                    u = set 18 
&_                    u = algol text 
           
          SET creates a catalog entry called U, and ALGOL stores the com-
          piled program in this area. 
           
T_       PARAMETER  
LIST      The parameter list to the right of the program name consists of
          one or more parameters separated by spaces. 
          N
&_                    parameter list' :: =  s' parameter'   
          1
                    
T_PARAMETER Each parameter consists of one or more elements separated by a
            full stop. 
          N
&_                    parameter':: = elements'  .element' 
          0
T_          Ex. 6.4 
                    scope user data 
&_                    u = algol txt list.yes xref.yes 
           
           
           
           \f

T_ELEMENT   An element can be either a name or an integer. 
                   name'
          element'::=
&_          integer' 
          The names, which are stated, comply with the wellknown rules.
          The integers are limited to the interval 0 to 8388607. 
           
T_          Ex. 6.5 
                    save mt123456.1.mt471100 
                    ud = copy ind 3 
&_                    u = algol text 
           
          The interpretation of the parameter list is done individually by
          the single programs. A common convention is adhered to, as the
          first parameter usually states an input file, that is, only if it
          consists of a name. 
           
          A space in an FP command may be replaced by a comma and a new
          line, thus a command can be spread over more lines. 
           
T_          Ex. 6.6 
                    u = algol, 
                    list.yes, 
&_                    xref.yes 
           
          The contents to the right of a semicolon is regarded as a com-
          ment. 
           
            Ex. 6.7        u = fortran txt list.yes ; activate FORTRAN 
           
T_                 Exercise 6.1 
                    1. u.yes = fortran text 
                    2. 2 = algol txt 
                    3. 3 list.yes 
                    4. x = copy 9000000 
&_                    5. u = algol programtext3  
Detect the errors. \f

T_6.2.2     C_o_m_p_o_u_n_d_ _F_P_ _c_o_m_m_a_n_d_. 
          A compound FP command is a sequence of FP commands within a paren-
&_          thesis. 
           
T_          Ex. 6.8              
                    (u = algol 
&_                      u) 
           
T_          SYNTAX 
          compound command'::= 
          (simple command'  NL' simple command' N)  
&_                                      compound command'  0 
           
T_          Ex. 6.9 
                    (u = algol txt 
                    if warning.yes 
                    (u = algol list.yes 
                    finis) 
&_                    ) 
           
           
T_COMMAND   FP always reads one command at the time, regardless of it is a
STACK     simple or a compound command. A command is saved in the command
          stack, and the next command is not read before all simple com-
&_          mands in the stack have been executed. 
           
T_          Exercise 6.2 
          Reshape the JOB FILE in example 3.1, so all the FP commands are
          gathered. 
&_          What is gained by this reshaping? 
           
           \f

T_6.3       Files 
           
FILE      By a file is meant an unbroken string of data, such as a paper
          tape, a card deck, an area, or a magnetic tape file. A file is
          described by a catalog entry. When a job is executed, it has
          immediate access to different files. These files are called
          standard files and comprise the following files: 
           
T_          1. The JOB FILE contains the job wishes. Except for the JOB SPE-
PRIMARY      CIFICATION the JOB FILE is handed over to the job by BOSS, and
&_INPUT FILE   is called PRIMARY INPUT FILE. 
              
           
T_          2. FP commands and different kinds of input are read from CUR-
CURRENT      RENT INPUT FILE. During the execution of the job it is possib-
INPUT FILE   le to alternate between different input files. At job start
             PRIMARY INPUT FILE is selected to be CURRENT INPUT FILE inor-
             der that the first FP command always is read from the JOB
&_             FILE. 
              
              
T_CURRENT   3. Output and error messages are printed on the CURRENT OUTPUT
OUTPUT FILE  FILE. During the job execution it is possible to alternate
PRIMARY      between different files. The first one selected is called 
&_       OUTPUT FILE  PRIMARY OUTPUT FILE. 
              
              
T_          4. The area PRIMOUT is selected by BOSS as PRIMARY OUTPUT FILE. 
&_       PRIMOUT      PRIMOUT is a SPOOL AREA, and BOSS forwards the data. 
              
          PRIMARY INPUT FILE and PRIMARY OUTPUT FILE are described in the
          catalog by the catalog entries V and C respectively; these names
          should therefore not be used for other purposes. 
           \f

T_6.3.1     C_u_r_r_e_n_t_ _I_n_p_u_t_ _F_i_l_e_. 
          I 
          The CURRENT INPUT FILE is selected with the I program. 
           
            Ex. 6.10 
                    10 i commandfile 
&_                    20 finis 
           
          The I program changes COMMANDFILE to CURRENT INPUT FILE. The
          following commands are now read from this file; and it remains
          CURRENT INPUT FILE, until it is exhausted. 
           
T_          SYNTAX 
&_          i name' 
           
                   FUNCTION 
          The name of the CURRENT INPUT FILE and its position is saved, in
          order that reading from the file later may be resumed from the
                   correct position. The specified file is chosen as CURRENT INPUT
          FILE. The return information is stored in a stack capable of con-
          taining an arbitrary number of elements. 
           
T_          Ex. 6.11 
                                        STACK 
                              NAME                POSITION 
                (i ind 1        C                     - 
           i ind 2        ind1              - 
&_                 i ind 3)       ind2    - 
           
          The compound command selects a new CURRENT INPUT FILE 3 times,
          and each time stores the necessary return information in the
          stack. 
           
           
T_UNSTACK-  When the CURRENT INPUT FILE is exhausted, i.e. an END OF MEDIUM
ING       character has been read, the last element in the stack is extrac-
          ted. The file described is selected as CURRENT INPUT FILE, and
&_          reading continues from the specified position. A complete un-\f

          stacking has thus taken place. When the stack is empty FP resumes
          reading from PRIMARY INPUT FILE. 
           
          END 
          CURRENT INPUT FILE is unstacked with the END program. 
           
T_          Ex. 6.12 
                    end 
&_                    The CURRENT INPUT FILE is unstacked. 
           
T_          SYNTAX 
&_          end 
           
          FUNCTION 
T_          END performs a function similar to the one performed when an
&_          END OF MEDIUM character is used. 
           
T_6.3.2     C_u_r_r_e_n_t_ _O_u_t_p_u_t_ _F_i_l_e_ 
                   O
          The CURRENT OUTPUT FILE is selected with the O program. 
           
                   Ex. 6.13 
                    10 o outfile 
                    20 u = algol txt list.yes 
                    30 o c 
                    40 convert outfile
&_                    50 finis 
          CURRENT OUTPUT FILE is selected, and printing from ALGOL is done
          on the specified file. 
           
T_          SYNTAX 
&_          o name' 
           
          FUNCTION 
          The use of CURRENT OUTPUT FILE is terminated by an END OF MEDIUM
          character, and the specified file is then chosen as CURRENT OUT-
          PUT FILE. If there exists no file with the specified name an area
          is created with the name, and it is chosen as CURRENT OUTPUT
          FILE. No return information is stored. \f

T_6.3.3     Z_o_n_e_s_ _I_N_ _a_n_d_ _O_U_T_._ 
          In ALGOL and FORTRAN programs the zone IN is connected with the
          CURRENT INPUT FILE, and the zone OUT is connected with the
&_          CURRENT OUTPUT FILE. 
           
T_6.3.4     E_x_e_r_c_i_s_e_s_. 
          Exercise 6.3
&_                    Why is line 30 in example 6.13 necessary? 
           
T_          Exercise 6.4
          Alter the JOB FILE in example 3.1, so that output is listed on
&_          the printer and input read from a file called INPUT.  
           
T_          Exercise 6.5 The areas KOM1 and KOM2 contain the FP commands
          below: 
           
                                K_O_M_1_                K_O_M_2_ 
                            u = algol txt         o outfile 
                            i kom2                u data 
&_                            convert outfile       o c 
           
T_          Determine the order of execution, when the following job is en-
          rolled: 
                    10 i kom1 
&_20 finis 
T_                  
          Exercise 6.6 
          The areas FPKOM1 and FPKOM2 contain the FP commands below:
                                       
F_P_K_O_M_1_  F_P_K_O_M_2_                   
&_u = algol txt1      p = algol txt2                   
           
T_          Explain what happens when the jobs below are enrolled: 
           
                    1. 10 i fpkom1 
                       20 i fpkom2 
&_                    30 finis 
           \f

T_                    2. 10 (i fpkom1 
                    20 i fpkom2) 
&_                    30 finis 
           
T_       6.3.5     P_R_I_M_O_U_T_. 
                   The area PRIMOUT, which at job start is selected as PRIMARY
OUTPUT FILE, is a resource; the size may be specified with the
&_option/ command OUTPUT. 
           
T_          Ex. 6.14: 
                    output 768000 
&_                    job kc 1234 output 768000 
           
T_          SYNTAX 
&_          output number of characters' 
           
          FUNCTION 
T_          The amount of output wanted is specified in characters, and
&_PRIMOUT gets the size characters/786 segments. 
           
           
T_6.4       Job Programming 
           
          From section 6.1 we know that a program is terminated by a call
          of the auxiliary function END PROGRAM. In the call of the auxi-
&_          liary function some information concerning the success of the
          execution of the program is forwarded to FP, which stores the
          information in different state variables. The value of the state
          variables may be used to modify the job execution, and by means
          of different utility programs it is possible to program in FP
          commands. 
           \f

T_       6.4.1     S_t_a_t_e_ _V_a_r_i_a_b_l_e_s_. 
MODE BITS FP has an integer to register various information. In each of the
          24 bits, information may be stored about a state which can have
           the value YES or NO. The bits are called MODE BITS and 12 of them
          are reserved for special purposes, while the remaining 12 are
          placed at the disposal of the job. The 3 most important bits are
&_          listed below. 
           
T_          L_I_S_T_ 
          When the LIST bit has the value YES, each FP command is listed
&_          on CURRENT OUTPUT FILE before execution. 
           
T_          O_K_ 
          Together with the WARNING bit this bit reflects the execution of
&_          the program. 
           
T_          W_A_R_N_I_N_G_ 
          Together with the OK bit, this bit reflects the success of the
&_          execution of the program. 
           
          Both the OK bit and the WARNING bit is adjusted after each execu-
          tion of a program. The rest of the bits are only changed on request.
           
T_          M_O_D_E_ 
          The MODE BITS can be assigned values with the MODE program. 
           
            Ex. 6.15 
                    mode list.yes 
                    mode list.no 
                    The list bit is assigned the value YES in the first call
&_                    and NO in the second. 
           
T_          SYNTAX 
          mode bit'.  yes 
&_                    no 
           \f

T_            FUNCTION 
          The value stated, YES or NO, is assigned to the specified bit. A
          bit may either be represented by a name or a number. 
           
T_          Ex. 6.16 
                    mode 8.no 
&_                    Bit 8 is assigned the value NO. 
           
          The free bits are numbered from 0 to 11.
          
T_6.4.2     P_r_o_g_r_a_m_m_i_n_g_. 
          The job control language consists of the following basic elements:
           
                    Sentence e.g. a simple FP command. 
                    The sentence parenthesis (). 
                    IF sentence 
                    REPEAT Sentence 
           
&_          The two first elements are wellknown. 
           
          I_F_
T_          The execution of the next FP command can be made dependent on the
&_          value of the MODE BITS with the IF program. 
           
T_          Ex. 6.17 
                    u=algol txt 
                    if ok.no 
                    finis 
                    u 
&_                    finis 
           
          The first call of FINIS is only executed if the OK bit has the
          value NO. 
           
T_          SYNTAX 
          if mode'. yes 
&_                     no \f

T_           FUNCTION
          The next FP command is executed, if the specified MODE BIT has
          the value stated. A MODE BIT can be identified with a number or a
          name. As opposed to all other programs, the MODE BITS are not
          updated after the execution of the IF program. 
           
T_          R_E_P_E_A_T_ 
          A command can be executed several times with the REPEAT program. 
           
            Ex. 6.18 
                    (repeat 5 
&_                    u) 
           
          The command is executed 5 times. 
           
T_                 SYNTAX 
          (repeat number' 
&_           command') 
           
          The command stated is executed the specified number of times. The
          repetition must be specified in a compound command. 
           
T_6.4.3     E_x_c_e_r_c_i_s_e_s_. 
          The answers to the exercises presupposes a knowledge of the call
          of ALGOL, and the updating of the OK and WARNING bits done by
&_          ALGOL. 
           
          A_L_G_O_L_ 
T_          ALGOL compiles a source text to an object program, which can be
          executed. Different modifications can be specified in the program
&_          call. 
           
T_          SYNTAXNYES1
          object file'=algol  source file'    list.     
          0NO0
&_
          YES 1  YES1
boss line.  ref.
NO 0  NO0\f

          The compiled program is stored in the object file. Error messages
          etc. are listed on CURRENT OUTPUT FILE. The ALGOL TEXT is read
          from the specified source files or from the CURRENT INPUT FILE,
          when nothing else is stated. 
           
          LIST.YES states that the ALGOL TEXT is to be listed. 
           
          BOSSLINE.YES states that each line is to be equipped with a num-
          ber, which can be used when editing with BOSS. 
           
          XREF.YES states that a cross reference map of the use of the va-
          riables is to be listed. 
           
          The values of the OK and WARNINGbits have the following signifi-
          cance: 
           
T_                    OK. 
                    YES The compiled program can be executed, perhaps only
                    partially. 
                    NO  The compiled program cannot be executed. 
                     
                    WARNING 
                    YES A syntactic error has been detected. 
&_                    No  No syntactic error has been detected. 
           
          It is assumed in the exercises that an ALGOL TEXT is found in the
          area TEXT. 
           
T_                 Exercise 6.7 
          Write a job which can compile the program and execute it, if pos-
&_          sible. 
           
T_          Exercise 6.8 
          Extend the job from exercise 6.7,causing the program text and a
          cross reference map to be listed on the printer, if syntactical
          errors are detected. 
           \f

T_          Exercise 6.9 
          Extend the job from exercise 6.8 in order that the compiled pro-
          gram only is to be executed when no errors have been detected,
          and then it is to be executed 6 times. 
           
           
T_6.5       Auxiliary Functions 
           
          There exist different kinds of auxiliary functions which the pro-
          grams can use. The assembler program takes particular advantages
&_          of this. 
           
           
T_    6.6       Error Messages 
           
&_          The most important error messages from FP is listed below: 
           
T_          xxx BREAK explanation' 
          A severe error effected that the job was broken off. The job is
          restarted by initializing FP and continues with the execution of
&_          the next command in the JOB FILE. 
           
T_          xxx FP CALL program' 
&_          The name stated is not a program name. 
           
T_          xxx FP NAME program' 
&_          The name stated does not exist in the main catalog. 
           
T_          xxx FP JOB TERMINATION 
          The job was terminated after 10 syntactic errors had been detec-
&_          ted. 
           
T_          xxx FP REINITIALIZED 
&_          Fp has been reinitialized due to severe errors. 
           
T_          xxx FP SYNTAX some characters' 
          Syntactic errors in input for FP. The erroneous characters are
&_          listed.  \f

          Exercise 6.10 
          Explain the error messages in the 3 jobs below: 
           
                    1. 10 testprogram1 
                    20 2 3 
                    30 finis 
                       go  
&_                    FINIS 
T_                    xxx FP SYNTAX TESTPROGRAM1 
                      x READ FROM PRIMARY INPUT 
                    xxx FP REINITIALIZED 
                    xxx FP SYNTAX 2 
                    x READ FROM PRIMARY INPUT 
                    xxx FP REINITIALIZED 
&_                    END ... 
           
T_                    2. 10 testprogram 
                    20 finis 
                       go 
                    FINIS 
&_                       xxx FP NAME TESTPROGRAM 
           
T_                    3. 10 testprogram 
                    20 finis 
                    go 
                    FINIS 
                       xxx FP CALL TESTPROGRAM 
&_                    END ...\f

                                                            Diskette 26 
                                                            81.09.24 
 
1   830.0           21  848.22          53  848.54          85  848.86
2   830.1           22  848.23          54  848.55          86  848.87
3   830.2           23  848.24          55  848.56          87  848.88
4   830.3           24  848.25          56  848.57          88  848.89
5   830.4           25  848.26          57  848.58          89  848.90
6   830.5           26  848.27          58  848.59          90  848.91
7   830.6           27  848.28          59  848.60          91  848.92
8   830.7           28  848.29          60  848.61          92  848.93
9   830.8           29  848.30          61  848.62          93  848.94
10  830.9           30  848.31          62  848.63          94  848.95
11  830.10          31  848.32          63  848.64          95  848.96
                    32  848.33          64  848.65          96  848.97
1   FORSIDE.0       33  848.34          65  848.66          97  848.98
2   FORSIDE.1       34  848.35          66  848.67
3   PREFACE.0       35  848.36          67  848.68          1   INDEX.0
4   CONTENTS.0      36  848.37          68  848.69
5   CONTENTS.1      37  848.38          69  848.70          1   HEAD.0
6   CONTENTS.2      38  848.39          70  848.71
7   CONTENTS.3      39  848.40          71  848.72          1   FOREWORD.1
8   CONTENTS.4      40  848.41          72  848.73          2   FOREWORD.2
9   848.10          41  848.42          73  848.74          3   CONT.3
10  848.11          42  848.43          74  848.75          4   CONT.4
11  848.12          43  848.44          75  848.76          5   269.1
12  848.13          44  848.45          76  848.77          6   269.2
13  848.14          45  848.46          77  848.78          7   269.3
14  848.15          46  848.47          78  848.79          8   269.4
15  848.16          47  848.48          79  848.80          9   269.5
16  848.17          48  848.49          80  848.81          10  269.6
17  848.18          49  848.50          81  848.82          11  269.7
18  848.19          50  848.51          82  848.83          12  269.8
19  848.20          51  848.52          83  848.84
20  848.21          52  848.53          84  848.85\f

                    
           \f

«eof»