|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 176640 (0x2b200) Types: TextFile Names: »D34«
└─⟦017e68d2c⟧ Bits:30005867/disk05.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D34«
F_ 7 UTILITY PROGRAMS The computer is equipped with a sequence of utility programs. Some of these have been mentioned in the previous chapters in order to illustrate the various possibilities of utilization. In the following 3 chapters more extensive description of the most important utility programs exist. The descriptions are in no way thorough and only the most important (usual) possibilities of use are described. In this chapter a short survey of the utility programs is given, and different common conventions are mentioned. The utility programs are on basis of their functions separated in three groups: - Job control - Catalog handling - Data handling &_7.1 Job Control Programs which can influence the job execution in different ways are reckoned in this group. Furthermore the group includes pro- &_ grams which communicates with BOSS (cf. 5.2). At the present the group includes 27 programs. Job control programs are naturally separated in the following groups: T_ - Management of input / output &_ END, I and O T_ - Job programming &_ IF, MODE and REPEAT T_ - Print enrollment &_ CONVERT \f - Job enrollment NEWJOB and REPLACE - Operator communication OPCOMM, OPMESS, KIT, MOUNT and RELEASE The listed programs are described in chapter 8. T_7.2 Catalog Handling The wellknown operations on the CATALOG are carried out by the ca- &_ talog handling programs. The group includes at present 22 programs of which the following are mentioned: T_ CLEAR LOOKUP RENAME SCOPE SEARCH SET &_ The listed programs are described in chapter 9. T_7.3 Data Handling By data handling is meant: - Data transfer - Data printout &_ - Data modification To solve these problems a sequence of programs exist of which so- me have several applications. In the following grouping the pro- grams are placed according to their primary function. T_ - Data transfer &_ COPY, LOAD, MOVE, and SAVE \f T_ - Data printout HEAD, HEADPUNCH and PRINT - Data modification &_ EDIT The stated programs in the first and second group are described in chapter 10. EDIT is a text editing program, which makes it possible to modify program texts and data. EDIT holds more facilities than BOSS - editor. The group includes at present 13 programs. T_7.4 Conventions All utility programs work on the basis of a common set of conven- tions, so the error messages are standardized and delivered on &_ the same file, which is CURRENT OUTPUT FILE. Error messages have the following format: xxx program name' explanation' T_ Ex. 7.1 xxx CLEAR CALL &_ Illegal call of the CLEAR - program resulted in the errormessage. PRIMARY OUTPUT FILE is used for error messages when it is impossib- le to use CURRENT OUTPUT FILE. The catalog handling programs have by creation and printout of ca- talog entries several abbreviations in common. When the size is negative, a catalog entry refers to a document and the type is determined by a MODEKIND statement which replaces\f the size. MODEKIND is described by a coordinate, but for the sake of convenience it may be replaced by different MODEKIND abbrevia- tions. T_7.5 Modekind The following list includes the most used MODEKIND abbreviations. Abbreviation MODE KIND EXPLANATION ip 00Input/output via internal process bs 0 4 Backing store tro010Tape reader, odd, parity tre210Tape reader, even, parity &_ trf 6 10Tape reader, flexo- writercode. T_ tpo 0 12 Punch, odd parity tpe 2 12 Punch, even parity tpf 6 12 Punch, flexowriter- code lp 0 14 Printer crc 10 16Cardreader, EBCDIC mto 0 18 Magnetic tape, odd parity. &_ T_ 7.6 File Descriptors A sequence of frequently used documents is described by different permanent catalog entries which often have the same name as the MODEKIND abbreviation for the document. The list below is not &_ complete. \f T_ NAME DOCUMENT MODEKIND-ABBREVIATION tro reader tro tre reader tre trf reader trf tpo punch tpo tpe punch tpe tpf punch tpf lp printer lp &_ crc cardreader crc \f F_ 8 JOB CONTROL Programs which influence the job execution or communicate with BOSS are called job controlling programs. Some of these programs have already been introduced in chapter 6 without any actual pro- gram description. In this chapter a sequence of program descrip- tion exist supplemented with different examples and exercises which show the most frequently occuring use of the programs. Se- veral of these programs deal with new aspects and the needed concepts are introduced currently. T_8.1 Control of Current Input/Output To this purpose the already mentioned programs I, END and O exist. In the next three sections there is a thorough program descrip- tion for each programs. This section finishes with a description of the ONLINE program, which makes it possible to run conversa- &_ tional jobs. T_8.1.1 I With the I program CURRENT INPUT FILE is selected. Ex. 8.1 &_ i komfile The file which is described by the catalog entry KOMFILE, is chosen for CURRENT INPUT FILE. T_PROGRAM &_CALL i filename' FUNCTION The CURRENT INPUT FILE is stacked and by this information about the name and position is stored. This done, the file which is specified in the program call is chosen as CURRENT INPUT FILE. \f T_ERROR xxx I CALL &_MESSAGE A left hand side in the program call occurs. T_ xxx I PARAM &_ There is a parameter error in the program call. T_ xxx I file name' reason' &_ The file can>t be attached because of the reason stated. T_8.1.2 E_N_D_. With the END program CURRENT INPUT FILE is unstacked. Ex. 8.2 &_ end T_PROGRAM &_CALL end FUNCTION T_ The CURRENT INPUT FILE is unstacked and FP continues reading from the previous input file in the position where the file was left. ERROR In spite of a wrong program call the END program is executed. T_ERROR xxx END CALL &_MESSAGES A left hand side occurs in the program call T_ xxx END PARAM parameter' &_ The stated parameter must not occur. \f T_8.1.3 O_ With the O program CURRENT OUTPUT FILE is selected. Ex. 8.3 o output &_ The file OUTPUT is selected as CURRENT OUTPUT FILE. T_PROGRAM &_CALL o filename' FUNCTION An END OF MEDIUM character is written on CURRENT OUTPUT FILE and the use is terminated. This done, the file which is specified in the program call is selected as CURRENT OUTPUT FILE. If no file with the name stated exists, an area is created and is selected as CURRENT OUTPUT FILE.The area gets the name, which was specified in the program call. ERROR By error PRIMARY OUTPUT FILE is selected as CURRENT OUTPUT FILE. T_ERROR xxx O CALL &_MESSAGES A left hand side occurs in the program call. T_ xxx O PARAM parameter' &_ The stated parameter must not occur. T_ xxx O filename' reason' &_ For the reason given the specified file could not be attached. T_8.1.4 E_x_e_r_c_i_s_e_. Exercise 8.1 Let the area TEXT have the following content: begin integer i ; read (in,i) ; write (out,i) end &_ 7 \f Please explain what happens, when the following two jobs are enrolled: T_ 1. (i text u = algol ) u 5 &_ finis T_ 2. (i text u = algol end) u 5 &_ finis T_8.1.5 O_n_l_i_n_e_. With the ONLINE program the job is made conversational, and the terminal is selected as CURRENT INPUT FILE. Ex. 8.4 10 online &_ go The terminal is selected as CURRENT INPUT FILE and the next com- mand must be typed directly on the terminal. T_PROGRAM &_CALL online FUNCTION T_ PRIMARY INPUT FILE is redefined for the terminal which was used for the job enrollment. The terminal is also chosen for CURRENT INPUT FILE. The following FP commands can now be typed directly, &_ and they will be performed concurrently with the typing. The conversational form of a run can only be used when permission to this is stated in the USER CATALOG because this form of run de-\f mands more resources than others. When the permission is given the resource can be ordered with the command / option ONLINE. T_ Ex. 8.5 online yes &_ job kc1234 online yes T_ERROR xxx ONLINE CONNECT TERMINAL &_MESSAGES The job has not ordered the ONLINE resource. T_8.2 Job Programming To this purpose the earlier mentioned programs MODE, IF and REPEAT exist. In the next three sections each program is described in &_ details. T_8.2.1 M_o_d_e_. With the MODE program the state variables may be changed. Ex. 8.6 &_ mode list.yes 0.no The value YES is assigned to the LIST bit, and the value NO is assigned to the 0-bit. T_ PROGRAM mode sp' modebit' . yes N CALL no 1 mode' :: = integer' list &_ integer' :: = 0 - 11 FUNCTION The specified MODE BITS are provided with the stated values. \f T_ERROR xxx MODE CALL MESSAGES A lefthand side occurs in the program call. The execution of the &_ program is not affected. T_ xxx MODE PARAM parameter' The parameter stated is illegal in the program call and is thus &_ ignored. The other parameters are treated normally. T_8.2.2 I_F_. With the IF program the performance of the next FP command is determined by the value of one or more MODEBITS. T_ Ex. 8.7 if ok.no warning.no &_ finis The FINIS program is only called if both the OK- and WARNING bit have the value NO. T_ PROGRAM if sp' modebit' . yes N CALL no 1 &_ T_ list modebit' :: = ok warning integer' &_ integer' :: = 0 - 23 FUNCTION The next FP command is only performed, if the values of all the specified MODE BITS are in accordance with the stated values. As the execution of the IF program does not affect the MODE BITS IF can be used several times. \f T_ERROR xxx IF CALL MESSAGES The left hand side occurs in the program call, which does not &_ affect the execution of the program. T_ xxx IF PARAM parameter' The stated parameter is illegal and is ignored. The other parame- &_ ters are treated normally. T_8.2.3 R_e_p_e_a_t_. The REPEAT program makes it possible to execute a sequence of FP- &_ commands several times. T_ Ex. 8.8 u = algol (repeat 5 &_ u) The compound command is executed 5 times. T_PROGRAM &_CALL repeat integer' The program call must occur in a compound command. FUNCTION The program makes amendments in FP>s command stack, so the FP commands following REPEAT in the compound command are executed the number of times specified. ERROR By error the rest of the commands are executed once. T_ERROR &_MESSAGES Only the general error messages are stated. T_ xxx REPEAT NO FACTOR &_ The repeat parameter is missing. \f T_ xxx REPEAT FACTOR 0 &_ The repeat parameter is 0. T_ xxx REPEAT NOTHING TO REPEAT &_ REPEAT does not enter into a compound command. T_8.2.4 E_x_e_r_c_i_s_e_s_. Exercise 8.2 Three programs P1, P2 and P3 should be executed in the given se- &_ quence. Write the necessary job when P3 is only to be executed, if both P1 and P2 have been correctly executed. The OK-bit has the value YES after correct execution of a program. T_8.3 Dialogue with BOSS. From an internal process messages can be send to another internal process (cf. 5.2). Thus a CHILD process (job) under BOSS can send messages to BOSS, and in reference 1 a description of the diffe- &_ rent messages, accepted by BOSS, exist. The dialogue between a job and BOSS is mostly concerned with the following subjects: - Job - Printer - Disc - Magnetic tape station - Operator The following sections contain program descriptions of the most important programs which can be used for dialogues with BOSS. The program descriptions are supplemented with descriptions of the corresponding BOSS-commands. T_8.3.1 J_o_b_. From a job a new job can be enrolled, and a job must be termina- &_ ted with a FINIS message. \f T_8.3.1.1 J_o_b_ _e_n_r_o_l_l_m_e_n_t_. There are three separate job types represented at the enrollment. T_OFFLINE An OFFLINE JOB is enrolled by the operator and the job is on &_ papertape or card deck. T_ONLINE An ONLINE JOB is enrolled with GO or RUN from a terminal, and the &_ job is in the JOB FILE. INTERNAL An INTERNAL JOB is enrolled with the NEWJOB command or from another job. The job is in a permanent area. T_JOB SPE- A job is always described in the wellknown way as demonstrated in CIFICA- the earlier chapters. Only when it is an ONLINE JOB the job spe- TION cification may be omitted, and the linenumbers are only stated &_ from terminals. T_PRIMARY PRIMARY OUTPUT FILE (PRIMOUT) is listed on the terminal for an OUTPUT ONLINE JOB, whereas the printer is used for the other job types. FILE A particular printer can be selected, if there are several avail- able. When one job is enrolled from another it can be done in two dif- ferent ways by means of the programs REPLACE and NEWJOB. T_8.3.1.2 R_e_p_l_a_c_e_. With the REPLACE program a job enrollment is send to BOSS. Ex. 8.9 replace rcjob A job which is described in the area RCJOB is enrolled &_ to BOSS. T_PROGRAM &_CALLreplace file name'\f FUNCTION A job enrollment including the specified file name is sent to BOSS. The existing job must be in a permanent area and its running will not be effectuated until the enrollment job is terminated. REPLACE should not be used from an ONLINE JOB. ERROR In case of error no job is enrolled. T_ERROR xxx REPLACE CALL &_MESSAGES The left hand side occurs in the program call. T_ xxx REPLACE parameter list' PARAMETER ERROR &_ Parameter error in the program call. T_ xxx REPLACE parameter list' NOT ALLOWED FROM ONLINE JOB &_ REPLACE can not be used from an ONLINE JOB. T_8.3.1.3 N_e_w_j_o_b_. With the NEWJOB program a job enrollment is sent to BOSS. Ex. 8.10 newjob rcjob A job is enrolled to BOSS. &_ The job is in the permanent area RCJOB. T_PROGRAM 1 &_CALL newjob filename' printername' 0 FUNCTION The present job in the specified area is enrolled in BOSS. The area must be permanent. PRIMARY OUTPUT FILE is listed on the gi- ven printer and if nothing else is stated on the nearer printer. The new job is immediately included in the normal priority routine. ERROR In case of error no job is enrolled. \f T_ERROR xxx NEWJOB CALL &_MESSAGES The left hand side occurs in the program call. T_ xxx NEWJOB filename' reason' &_ For the reason stated the job could not be enrolled. T_ Exercise. 8.3 &_ State the extended syntax for the NEWJOB command. T_8.3.1.4 J_o_b_ _t_e_r_m_i_n_a_t_i_o_n_ FINIS With the FINIS program a termination message is sent to BOSS. &_ Ex. 8.11 finis T_ PROGRAM &_CALL finis FUNCTION A termination message is sent to BOSS which will abort the job. T_8.3.2 P_r_i_n_t_e_r_ A BOSS controlled printing is activated by sending a message to BOSS with the CONVERT program. Ex. 8.12 convert data 1 T_PROGRAM 11 &_CALL convert area name' printername' paper type' 00 The paper type is specified with an integer. FUNCTION T_ A message containing area name, printer name and paper type is &_ sent to BOSS, which will perform the printing of the area on the\f specified paper and the printer stated. If the optional parame- ters are omitted, printing is performed on standardpaper (type 0) and on the nearer printer. The area must not belong to the LOGIN pool. Temporary areas are adopted by BOSS and become invisible to the job. ERROR In case of error the area is not printed. T_ERROR xxx CONVERT parameter list' reason' &_MESSAGES Parameter error in the program call. T_ xxx CONVERT parameter list' reason' &_ For the reason stated the area could not be printed. T_ Exercise 8.4 &_ State the extended syntax of the CONVERT command. T_8.3.3 D_i_s_c_. K_I_T_ On a private disc the kit may be changed and with the KIT program a message about this is sent to BOSS. &_ Ex. 8.13 kit 12 dk123456 T_PROGRAM &_CALL kit device number' kitname' Each disc station is equipped with a device number, and this device number is stated. T_ FUNCTION A message containing the device number and the kit name is sent to BOSS which will print the necessary information to the opera- tor, in order that the specified kit is mounted on the stated disc station. In order to demand a kit change the job must reserve the disc sta- tion with the DEVICE option. Furthermore it is a demand that the\f job has access to the wanted kit. This must be stated in the USER CATALOG. T_ Ex. 8.14 job kc 8000 device 12 &_ kit 12 dk123456 ERROR In case of an error the needed operator message is not printed. T_ xxx KIT CALL &_ Left hand side occurs in the program T_ xxx KIT parameter list' PARAMETER ERROR &_ Parameter error in the program call T_ xxx KIT parameter list' NOT AVAILABLE &_ The job has no access to the specified kit. T_ 8.3.4 M_a_g_n_e_t_i_c_ _t_a_p_e_. The magnetic tapes are subject to a security system similarly to &_ the backing store in order to avoid unautorized access to the mag- netic tape. On each tape there is on the first file a lable con- taining a tape number, an access code and a project number. T_TAPE The tape number has six ciphers which identify the tape and BOSS NUMBER allows access to the tape under the document name MTtape number'. &_TAPE NAME T_ACCESS The access code determines together with the project number ac- &_CODE cess to the tape. T_PROJECT &_NUMBER The project number is known from the USER CATALOG. T_ ACCESS There are four different access codes and they have the following &_ meaning: \f T_ WThe tape is a work tape which may be reserved &_under the job running. T_ P All jobs have access to read the tape. Writing can only be made by a job, which belongs to the &_ project whose number is applied the tape. T_ R Only a job, which belongs to the project, whose number is applied the tape, has access to the tape. &_space'Any job can use the tape. On figure 8.1 different users> access to two magnetic tapes are shown. It is seen that jobs in project 8000 can read both tapes but only write on the tape, which belongs to the project. Jobs in project 7000 on the other hand may only use the magnetic tape be- longing to the project, as the other tape is protected with the access code R. Figure 8.1 T_ PROJECT NO PROJECT NO 80007000 ACCESS CODE ACCESS CODE RP RWRW ERER AIAI DTDT IIII NNNN GGGG PROJECT PROJECT 8000 7000 &_ JOB JOB MOUNTING When a job wants a tape, it has to send a message to BOSS con- taining the tape name. BOSS passes on the message to the operator.\f Normally the user does not have to consider this dialogue, as all utility programs and ALGOL/FORTRAN programs automatically handle this. Should the user want to handle the dialogue himself, he can use the MOUNT program. RELEASEA job, which has reserved a tape station, may need to have a sequence of tapes mounted tape by tape, before each new tape mounting the tape station must be released. This can be done by using the RELEASE program which sends the necessary message to BOSS. T_8.3.4.1M_o_u_n_t_. With the MOUNT program a MOUNT message is sent to BOSS. &_ Ex. 8.15 mount mt123456 The tape name is given to BOSS which passes it on to the operator with the message that the tape is to be mounted. T_PROGRAM &_CALL mount name' The name must specify a tape name or a catalog entry which descri- bes a magnetic tape. FUNCTION The specified tape name is sent to BOSS, which passes it on to the operator with the message that the tape is to be mounted. If the specified name indicates a catalog entry, the document name is sent on. T_ Ex. 8.16 file = set mto mt123456 0 1 &_ mount file The document name MT123456 is sent on. An unspecified work tape is mounted when the document name is 0. After the mounting the delivered tape name is returned, and the MOUNT program places the tape name in the catalog entry. \f T_ Ex. 8.17 worktape = set mto 0 0 1 &_ mount worktape An unspecified work tape is delivered, and the document name in the catalog entry WORKTAPE is updated to describe the delivered tape. ERROR In case of error no message is sent to BOSS. T_ERROR xxx MOUNT CALL &_MESSAGES Left hand side occurs in the program call. T_ xxx MOUNT parameter list' PARAMETER ERROR &_ Parameter error in the program call. T_8.3.4.2 R_e_l_e_a_s_e_. When a tape no longer is to be used, it can be released by means of the RELEASE program. Ex. 8.18 release mt123456 &_ PROGRAM CALL release name' The name must specify a tape name or a catalog entry that describes a magnetic tape. FUNCTION A message containing the specified tape name is sent to BOSS which then will release the tape and make the tape station avail- able to others. ERROR In case of error no messages are send to BOSS. \f T_ERROR xxx RELEASE parameter list' PARAMETER ERROR &_MESSAGES Parameter error in the program. xxx RELEASE name' TAPE NAME MISSING The specified catalog entry indicates no tape name. T_8.3.5 O_p_e_r_a_t_o_r_. On the operator console information is listed, so the operator can see whenever interference is necessary. The programs auto- matically send the messages to BOSS, which sends on the messa- &_ ges. T_ Ex. 8.19 text = set mto mt123456 0 1 &_ u = algol text The source text is read from file 1 on tape MT123456, and ALGOL manages to send a message about tape mounting, when the job is run. In various situations a more private dialogue between job and operator may be appropriate. The programs OPCOMM and OPMESS are for this purpose. T_ 8.3.5.1 O_p_c_o_m_m_. With the OPCOMM program an operator message is sent to BOSS. &_ Ex. 8.20 opcomm give me a tape T_PROGRAM &_CALL opcomm message' Messages should of course obey the general syntax of FP commands. FUNCTION The first 21 characters of the specified message are sent to BOSS which passes it on to the operator. An answer is required, when the answer is received, the sender job will again get CPUTIME. The answer is listed on CURRENT OUTPUT FILE. \f ERROR In case of an error no message is sent. T_ERROR xxx OPCOMM CALL &_MESSAGES Left hand side occurs in the program call. T_8.3.5.2 O_p_m_e_s_s_. With the OPMESS program an operator message is sent to BOSS. &_ Ex. 8.21opmess everything is ok T_PROGRAM &_CALL opmess message' The message should of course obey the general syntax of FP com- mands. FUNCTION The first 21 characters of the specified message are sent to BOSS which passes it on to the operator. ERROR In case of an error no message is sent. T_ERROR xxx OPMESS CALL &_MESSAGES Left hand side occurs in the program call.\f F_ 9 THE CATALOG HANDLING The most important catalog handling programs were introduced in chapter 4, and chapter 9 merely contains program descriptions. 9.1 Set A temporary catalog entry is created with the SET program. Ex. 9.1 data = set 18 data = set 18 dk123456 data = set mto mt123456 0 1 T_PROGRAM size' 1 1 &_ name' = set mode kind' document name' date'file number' 0 0 FUNCTION The parameter list is read and interpreted, and an attempt is ma- de to create a temporary catalog entry with the specified name and contents. If this is not possible, because a temporary cata- log entry with the specified name already exists, the latter is altered in accordance with the parameter list. The first parameter can be an area size or a MODE KIND specifica- tion; the remaining parameters are interpreted in accordance with this (cf. 7.5). The default value for parameters is 0, but for date d.0, i.e. the moment of execution. ERROR In case of errors no catalog entries are created or changed. \f T_ERROR xxx SET CALL &_MESSAGES The left hand side missing in the program call. T_ xxx SET PARAM parameter' &_ Parameter error in the program call. T_ xxx SET name' CHANGE KIND IMPOSSIBLE &_ Changing the MODE KIND was impossible. T_ xxx SET result' CHANGE BS DEVICE IMPOSSIBLE &_ The kit name cannot be changed. T_ xxx SET result' NO RESOURCES &_ There were not sufficient resources available for the creation. T_ xxx SET result' ENTRY IN USE The catalog entry could not be changed as it was used by somebody &_ else. T_9.2 Rename The name of one or more catalog entries is changed with the RE- &_ NAME program. T_ Ex. 9.2 rename honk.toot &_ rename gammel.ny old.new T_PROGRAM N &_CALL rename sp' old name'.new name' 1 FUNCTION For each parameter the name of the catalog entry old name' with the narrowest SCOPE is changed to new name' \f T_ERRORS Parameters struck by errors are ignored, and it is only after the &_ two first error messages listed below that the program is aborted. T_ERROR xxx RENAME CALL &_MESSAGES The left hand side appears in the program call T_ xxx RENAME PARAM parameter' &_ A parameter error in the program call T_ xxx RENAME old name'.new name' NAME CONFLICT The new name exists already, thus the change cannot be carried &_ through. T_xxx RENAME old name'.new name' UNKNOWN There exists no catalog entry with the name, which is to be &_ changed. T_ xxx RENAME old name'.new name' ENTRY IN USE &_ The specified catalog entry is protected. T_ xxx RENAME old name'.new name' ENTRY IN USE The specified catalog entry is being used by somebody else and &_ therefore cannot be changed. T_9.3 Scope Catalog entries are transferred to a specified SCOPE pool with &_ the SCOPE program. T_ Ex. 9.3 scope user rcdata scope login rcdata1 rcdata2 rcdata3 &_ scope user.dk123456 data T_PROGRAM N CALL scope scope specification' sp' name' &_ 1 \f 1 scope specification'::=scope specification' .kit name' 0 T_ temp scope specification' ::= login user &_ project FUNCTION The catalog entries stated are transferred to the specified SCOPE pool; to avoid a conflict of names, already existing, catalog entries with the specified names are deleted in advance. A catalog entry, which does not describe an area, may be made permanent on a private kit by stating the kit name after the SCOPE specification. ERRORS Parameters struck by errors are ignored, and it is only after the first four error messages in the list below that the program is aborted. T_ Error Messages xxx SCOPE CALL &_ The left hand side appears in the program call. T_ xxx SCOPE scope spec.' ILLEGAL SCOPE &_ An illegal scope specification. T_ xxx SCOPE scope spec.' BS DEVICE UNKNOWN &_ The specified kit has not been mounted. T_ xxx SCOPE PARAM parameter' Parameter errors in the program call. The remaining part of the &_ parameter list is ignored. T_ xxx SCOPE scope spec.' name' UNKNOWN &_ There is no catalog entry with the name specified. \f T_ xxx SCOPE scope spec.' name' PROTECTED The catalog entry specified is protected and therefore cannot be &_ changed. T_ xxx SCOPE scope spec.' name' ENTRY IN USE The catalog entry is being used by somebody else, and therefore &_ cannot be changed. T_ xxx SCOPE scope spec.' name' NO RESOURCES There are not sufficient resources available to carry through the &_ change of SCOPE. T_ xxx SCOPE scope spec.' name' CHANGE BS DEVICE IMPOSSIBLE The catalog entry stated cannot be made permanent on the kit &_ specified, as it already describes an area on another kit. T_9.4 Clear Specified catalog entries are deleted with the CLEAR program. Ex. 9.4 clear login data1 data2 &_ clear user.dk123456 descriptor T_PROGRAM N CALL clear scope specification' sp' name' 11 &_ scope specification'::= scope specification' . kit name' 0 T_ temp scope specification'::= login user &_ project The catalog entries stated are deleted from the specified SCOPE pool. \f The program ignores error struck parameters, but it is aborted by errors causing one of the first four error messages listed below. T_Error Messages xxx CLEAR CALL &_ The left hand side appears in the program call. T_ xxx CLEAR scope spec.' ILLEGAL SCOPE &_ An illegal SCOPE specification. T_ xxx CLEAR scope spec.' BS DEVICE UNKNOWN &_ The specified kit has not been mounted. T_ xxx CLEAR PARAM parameter' An illegal parameter in the program call. The remaining part of &_ the parameter list is ignored. T_ xxx CLEAR scope spec.' name' UNKNOWN &_ The specified catalog entry does not exist. T_ xxx CLEAR scope spec.' name' ENTRY IN USE The catalog entry cannot be deleted as it is being used by somebo- &_ dy else. T_9.5 Printing &_ Specified catalog entries are listed with the LOOKUP program, and SCOPE pools with the SEARCH program. T_9.5.1 L_o_o_k_u_p_. Specified catalog entries are printed with the LOOKUP program. Ex. 9.5 lookup data &_ lookup data1 data2 \f T_PROGRAM N &_CALL lookup sp' name' 1 FUNCTION Accessible catalog entries with the specified names are printed on CURRENT OUTPUT FILE. T_ Printing format: name' = SET tail' ; scope spec.' &_ ; head' The first line in the printout has the same lay-out as the call of the SET program, which is necessary to create the catalog entry. The scope specification contains both a scope specification and a kit name. 1 scope spec.'::= scope specification' .kit name' 0 T_ temp login scope specification'::= user project &_ system The information in the head is stated in the order it is found in the catalog entry (cf. 4.6). first slice' name key' catalog key' l.base' u.base' T_ Error Messages xxx LOOKUP CONNECT output file' It was not possible to connect the specified output file, the &_ CURRENT OUTPUT FILE is used instead. \f T_ xxx LOOKUP PARAM parameter' A parameter error. The remaining part of the parameter list is &_ ignored. T_ xxx LOOKUP name' UNKNOWN There are no accessible catalog entries with the specified name. &_ The rest of the parameters are processed normally. T_ xxx LOOKUP name' NO RESOURCES &_ The program is aborted as too few area processes are available. T_ 9.5.2 S_e_a_r_c_h_. Specified SCOPE pools are printed with the SEARCH program Ex. 9.6 search temp search system &_ search own T_PROGRAM 1 CALL output file' = search scope spec.' 01 &_ scope spec.':: = scope specification' .kit name' 0 T_ temp login scope specification':: =user project system &_ own FUNCTION All catalog entries in the specified SCOPE pool are printed. OWN states that the TEMP, LOGIN, USER and PROJECT pools are to be prin- ted. The printing is done on CURRENT OUTPUT FILE, if no other output file has been specified. The printout has the same format as the one used by the LOOKUP program. \f T_ Error Messages xxx SEARCH CONNECT output file' It was not possible to connect the output file, and CURRENT &_ OUTPUT FILE was used instead. T_ xxx SEARCH PARAM parameter' Parameter errors in the program call and the program is broken &_ off. T_ xxx SEARCH scope spec.' NO ENTRIES FOUND &_ There are no catalog entries in the specified pool. T_ xxx SEARCH scope spec.' ILLEGAL SCOPE &_ An illegal SCOPE was stated and no catalog entries are printed. T_ 9.6 Exercises Exercise 9.1 There is an ALGOL program in the area TEXT, which is to be com- piled and listed on the seventh file on the magnetic tape MT123456. Write the necessary job. T_ Exercise 9.2 Print all temporary catalog entries on a permanent area OUTFILE &_ on the kit DK123456. T_ Exercise 9.3 Delete in the easiest way all accessible catalog entries with the &_ names DATA1, DATA2, DATA3, DATA4, and DATA5. \f F_ 10 DATA HANDLING On many occasions there is a need for transfer of data from one part of the computer to another, to modify data or to print data on a readable medium. Various utility programs are available to perform these transactions; only the most frequent applications are described in this chapter. Usually the utility programs are so flexible that they are only difficultly placed in different groups; so the grouping in the following sections is made on the basis of the main functions of the programs. As said in chapter 7 the actual data modifying programs are not mentioned, but the program description exist in reference 4. T_10.1 Data Transfer CHARACTER By data transfer a destinction between character transfer and block transfer is made. Only text files can be copied by cha- racters, because a transfer like that will stop by the reading of an END OF MEDIUM character. A character transfer implies that BLOCKevery character must be read so a block transfer is usually quicker. With the COPY program copying of text files by charac- ters can be performed. The MOVE program makes the copying by blocks. Safety copying of files represents some special problems, SAFETYas it should without any trouble, be possible to reestablish COPYINGfiles from a safty copy. This is done in the easiest way by copying both catalog entries and their belonging files. With the SAVE program both catalog entries and areas are transferred to magnetic tapes, and with the LOAD program the catalog entries and areas on a SAVE - tape can be reestablished. T_10.1.1 C_o_p_y_ With the COPY program copying from specified input files to a &_ stated output file is made. \f T_ Ex. 10.1 outputfile = copy inputfile tpe = copy data1 data2 &_ data = copy 3 T_ PROGRAM CALL output file' = copy input file'N &_ number of lines'1 FUNCTION The specified input files are transferred to the output file in their stated sequence. The copying is performed character by cha- racter. The transfer from an input file ceases when the END OF MEDIUM character is read, this character is however, not trans- ferred to the output file. The copying is terminated by the writing of an END OF MEDIUM character. When the input statement is a number, the specified number of visible lines are copied from the CURRENT INPUT FILE to the output file. ERROR The WARNING bit has the value TRUE after an error. Error Messages T_ xxx COPY CONNECT output file' reason' For the reason given the output file could not be attached. The OK - bit gets the value NO. T_ xxx COPY CONNECT input file' reason' For the reason given the specified input file could not be attached. &_ The parameter is ignored. T_ xxx COPY PARAM parameter' &_ Illegal parameter syntax. The parameter is ignored. T_ xxx COPY END OF MEDIUM The input file is exhausted and COPY continues with the next para- &_ meter. \f T_ xxx COPY NO CORE &_ The internal process size is too small. T_ 10.1.2 M_o_v_e_. With the MOVE program files are copied block by block on discs or magnetic tapes. Ex. 10.2 copyfile = move data tapefile = move data &_ tapecopy = move message.yes file.4 T_PROGRAM &_CALL A distinction between two program calls is made depending on whether the output file is on a disc or on magnetic tape. T_ 1 disc file' = move message . yes disc file' &_ 0 mt. file' T_ 1disc file'N mt.file' = move message.yes mt.file' 0mt.file'.number' 1 &_ FUNCTION The specified input files are copied by blocks to the output file in the same sequence, in which they appear in the program call. Each input file is written on a separate output file. When the MESSAGE - parameter occurs, a report about the course of the copying is printed. ERROR As the parameters are handled separately, one or more of the in- put files could have been copied before an unintended termination of the program. \f T_ xxx MOVE : NO CORE &_ The internal process size is too small T_ xxx MOVE CALL &_ Left hand side missing in the program T_ xxx MOVE PARAM : parameter list' &_ There is an error in the parameter list. T_ xxx MOVE : INPUT KIND xxx MOVE : OUTPUT KIND The specified file is neither a disc file nor a magnetic tape file. T_ xxx MOVE : CONNECT INPUT xxx MOVE : CONNECT OUTPUT &_ The specified file could not be attached. T_ xxx MOVE : TOO MANY PARAMS T_ Transfer of more files to one disc file has been attempted. T_ xxx MOVE : CHANGE ERROR It is illegal to change the catalog entry which describes the &_ output file. T_10.1.3 E_x_e_r_c_i_s_e_s_. Exercise 10.1 Two paper tapes which are punched in iso code with even parity are to be copied into one paper tape with identical format. Write &_ two different jobs which can solve the problem. Change the jobs so the paper tapes are listed on the printer instead. T_ Exercise 10.2 &_ Why can the MOVE program not be used in exercise 10.1? \f T_ Exercise 10.3 &_ Move the temporary area TEXT from kit DK123456 to kit DK123400. T_ Exercise 10.4 Move the files 7, 8, 9, 10, on magnetic tape MT123456 to the fi- &_ les 1, 2, 3, and 4 on magnetic tape MT123400. T_ Exercise 10.5 Insert three lines from CURRENT INPUT FILE between the files F1 &_ and F2 and store the result in RFILE. T_ Exercise 10.6 The temporary area OUTPUT contains data in text form. List the datas five times on the printer with three different jobs and ma- &_ ke an estimation of what is most suitable. T_10.1.4 S_a_v_e_. With the SAVE program catalog entries as well as areas are saved on magnetic tapes. This program has n_o_t_h_i_n_g_ in common with the &_ BOSS command SAVE. T_ Ex. 10.3 save mt123456.1 scope.user &_ The USER - pool is stored on file 1 on MT123456. T_ Ex. 10.4 save mt123456.last save mt123456.2.label.rcdump save mt123456.last scope.temp &_ save mt123456.last data1 data2 data3 T_PROGRAM CALL save tape spec.' dump spec.' 1 &_ tape spec.' ::= tape name'.file number' .label'.label spec.' 0\f T_ last filenumber':: = integer' label spec.':: = name' 1N &_ dump spec.' :: = scope.scope statement' name' 00 T_ temp scope statements' :: = login user &_ project FUNCTION The catalog entries and areas stated in the dump specification are saved on the specified magnetic tape. The tape specification states tape name and file number and may also contain a LABEL pa- rameter. SAVE always checks whether the magnetic tape file has been written with the SAVE program earlier, if this is the case, the file is only written over, if the LABEL parameter occurs in the program call. The specified dump-label or a standard label is written on the file followed by the current moment. When LAST states the file number, the first file on the tape, which has not been used by SAVE before is used. The dump specification states, which catalog entries and areas that should be saved. Both SCOPE pools and single names may be sta- ted. Is the dump specification omitted, the LOGIN - pool is sa- ved. SAVE prints a survey of the saved catalog entries and areas on CURRENT OUTPUT FILE. ERROR If one of the first three error messages in the list below occurs, the program is aborted, and the tape remains unaffected. \f T_ Error Messages xxx SAVE ERROR IN TAPE PARAM parameter' The wrong and the remaining tape parameters are printed, and the &_ program is aborted. T_ xxx SAVE ERROR PARAM parameter' The error struck and the remaining parameters are printed, and &_ the program is aborted. T_ xxx SAVE DUMPLABEL specification' &_ The specified dumplabel is illegal. T_ name' ENTRY IN USE &_ The specified catalog entry is used by some other user. T_ name' NOT ALLOWED &_ The specified catalog entry must not be saved. T_ xxx NOT FOUND : name' &_ The mentioned catalog entry does not exist. T_ xxx SAVE NOT OK number of errors' &_ This print out occurs when errors are recorded. T_ 10.1.5 L_o_a_d_. The catalog entries and areas which were saved with the SAVE pro- &_ gram are reestablished with the LOAD program. T_ Ex. 10.5 load mt123456.1 load mt123456.last load mt123456.1 scope.temp load mt123456.1 scope.user data1 data2 load mt123456.1 load.no &_ load mt123456.last survey.yes \f T_PROGRAM CALL load tape spec.' dump spec.' special param' tape spec.' :: = tape name'.file number' last file number' :: integer' 4N &_ dump spec.' :: = scope.scope statement' name' 00 T_ temp scope statement' :: = login user &_ project 11 T_ special param' :: = load.no survey.yes &_ 00 FUNCTION The catalog entries and areas mentioned in the dump specification are reestablished from the specified magnetic tape. As well tape name as file number is stated in the tape specification. If the dump specification is omitted the entire file is reestablished, but on the other hand the stated scope-pools, catalog entries and areas are reestablished. A survey of the reestablished catalog entries is printed on CURRENT OUTPUT FILE When the LOAD.NO parameter is stated no reestablishment is made, but the run-report is printed. If the parameter SURVEY.YES is used, surveys of the contents of all files from 1 to the one stated are printed. Only the first file is reestablished. T_ERROR If one of the first three error messages in the list below occurs, &_ the program is aborted. \f T_ Error Messages xxx LOAD : ERROR IN TAPE PARAM parameters' &_ An error struck tape parameter and the remaining parameters are printed. T_ xxx LOAD : ERROR IN PARAM parameters' &_ An error struck parameter and the remaining parameters are printed. T_ xxx LOAD : NO DUMPLABEL ON FILE file number' &_ The specified file is not generated with the SAVE program. T_ xxx name' MONITOR integer' RESULT integer' year' The specified catalog entry could not be reestablished for the &_ reason stated. T_ xxx NOT FOUND name' &_ The stated catalog entry does not exist on the file. T_ xxx LOAD NOT OK number of errors' &_ This print out occurs when an error has been recorded. T_ 10.1.6 E_x_e_r_c_i_s_e_s_. Exercise 10.7 Write a job which can find out which catalog entries are saved on &_ magnetic tape MT123456 with the SAVE program. Exercise 10.8 Make a safety copy of the catalog entries TXT, DATA, PROGRAM, and &_ PDATA on file 7 on the MT123456. T_10.2 Print out Output on CURRENT OUTPUT FILE can be neatly organized with the &_ HEAD program, and by means of the HEADPUNCH program readable- character are punched on the punch. \f T_10.2.1 H_e_a_d_. With the HEAD program are form feed, job name, date, hour and cpu time used by the job printed on the CURRENT OUTPUT FILE. T_ Ex. 10.6 head 1 cpu One form feed, jobname, date, hour and used cpu time are printed. 2 PROGRAM head sp' integer' CALL sp' cpu 0 When an integer is stated the specified number of form feed cha- racters is printed. Then job name, date and hour are printed. Is CPU stated the used CPU - time is printed, too. The printout is made on the CURRENT OUTPUT FILE. T_ Ex. 10.7 p1 head 1 &_ p2 The printouts from P1 and P2 are separated by call of HEAD. T_ ERROR xxx HEAD PARAM parameter' &_ MESSAGE Parameter error in the program call. T_10.2.2 H_e_a_d_p_u_n_c_h_. With the HEADPUNCH program readable texts are punched on the punch. Identical information is printed on CURRENT OUTPUT FILE. T_ Ex. 10.8 headpunch tape 1 In a readable way "tape 1" is punched on the punch &_ and the text is printed on CURRENT OUTPUT FILE. \f T_PROGRAM 1 &_CALL headpunch text' 0 The text must of course obey the general FP - syntax. The stated text is printed on CURRENT OUTPUT FILE as well as punched on the paper tape, where it occurs in a readable way. Furthermore the job name and hour are printed. T_ERROR xxx HEADPUNCH CALL &_MESSAGE Left hand side occurs in the program call. T_ xxx HEADPUNCH CONNECT TPN &_ The punch could not be attached. \f F_ 11 THE TERMINATION In the first chapters we omitted discussing a number of interest- ing cases, as a knowledge of these were not necessary to use the computer. In this chapter we will discuss different cases, which throw light on the utilization of the computer and the possibili- ties for extending the basic software. 11.1 The Virtual Store The ALGOL/FORTRAN programs utilize the primary store virtually; thus it is only necessary to have a few program sections at the same time in the primary store. Programs are divided into segments of 256 machine instructions each, and only room for 2 program segments is required, at the same time, in the primary store. When a need arises for a program segment, which is not present in the primary store, it is automatically loaded, and may hereby overwrite a previously loaded program segment. Figure 11.1 shows a snapshot of an internal process, which besides the program itself also contains FP, FP"s command stack and the zones IN and OUT. \f T_ Figure 11.1 FP PROGRAM ADMINISTRATION PRO- GRAM- SEG- MENTS PROGRAM VARIABLES FP-COMMAND STACK IN &_ OUT The zones IN and OUT, FP, the command stack and the program ad- ministration take up space for about 5000 halfwords dependent on the command stack and the size of the program. In RUNNING SYSTEM, which is the name of the program administration section, there is a table outlining the location of all the program segments out- side and within the primary store. A word is enclosed in the table for each segment, so the variations in the table size are limited. It is obvious that the processing time is extended considerably, if program segments will have to be loaded every now and then; each execution of a program is therefore concluded with a print out of the number of program segment transfers, which have been performed. \f Ex.11.1 u END 300 &_ 300 program segment transfers have been performed. The optional processing size is most easily determined by executing a program with different process sizes and then comparing the num- ber of program segment transfers with the number of segments in the program, which is printed by the compiler. T_ 11.2 More Operating Systems The process concept makes it possible to implement more operating &_ systems in a simple way. T_ Figure 11.3 S P BOSS &_ A B Figure 11.3 depicts the process hierarchy, when an additional ope- rating system P exists on the same level as BOSS. An operating system such as this could e.g. handle a group of terminals for real time input or inquiries. Different operating systems have in the past been developed for quite explicit purposes, and the in- vestments have been comparatively limited, as MONITOR can support all the internal processes, and messages can be sent from one process to another. The second operating system can thus send messages to BOSS and have BOSS execute different things e.g. have a job executed. \f T_11.3 More Computers Several computers can be connected via a RCNET, which is handled &_ by a set of minicomputers. When a terminal is being used, a LINK is created, connecting it to the computer wanted. An internal process in one computer can via the RCNET communicate with an- other computer, which is connected to the net. The data transfers will normally follow the shortest route or the least busy route, and in case of a drop out the traffic is automatically rerouted. Figure 11.3 depicts a RCNET linking 2 RC 8000 computers and an alien computer. In connection with each RC 8000 there is a FRONT END minicomputer, and each node in the RCNET consists of an independent minicomputer. T_ Figure 11.4 RC 8000 FRONT END TERMINAL TERMINAL FRONT END &_ RC 8000 COMPUTER \f F_ 12 ANSWER LIST E_x_e_r_c_i_s_e_ _3_._1_ Smallsize jobs are usually given a high priority. This can be done by letting the priority be inversely proportional with the estimated run time. Priority = 1/estimated run time The selection of the jobs to be executed is now simpel, as one on- ly has to take into consideration whether the necessary number of tape stations are available. A more just execution is achieved, when the estimated remaining run time is made the basis for calculating the priority. Priority = 1/(estimated run time - used run time) By letting the priority be directly proportional with the time a job has spent waiting to be executed, the job execution is se- cured. Priority = (hour of arrival)/(estimated time - usedtime) The priority algorithm implies that a job, which is being proces- sed can be rolled out to allow a job with higher priority to be executed. The job thus rolled out is swopped on the backing store and is pulled forward again, when it has obtained a high enough priority. T_ Exercise 3.2 10 u = algol list.yes 15 begin 20 integer sum, a,b; 25 read (in,a,b); 26 sum:= a+b; 30 write (out, sum); &_ 40 end An empty line is one without contents, and it can be typed by\f An empty line is one without contents, and it can be typed by specifying the line number and a space. T_ Exercise 3.3 20/a/sales 25/a,/sales, &_ 26/a/sales T_ Exercise 3.411 &_ verify line number' number of lines 00 T_ Exercise 3.5 get programtext verify 5 p = algol 40 p 50 finis &_ save programtext T_ Exercise 3.6 get text &_ list T_ Exercise 3.7 10 begin 20 write (out, : exercise 3.7:') 30 end save programtext clear 10 u = algol programtext 20 u 30 finis &_ go T_ Exercise 3.8 save rcjob &_ convert rcjob \f T_ Exercise 3.9 10 u = algol 20 begin integer a; 30 read (in, a) ; write (out, a); 40 end 12' 1010u 1020 7 &_ 1030 finis T_ Exercise 4.1 9data The name erroneously begins with a number da ta Spaces are not allowed in names debtorlogicalfile The name consists of more than 11 characters &_ Data Capital letters are not allowed in names. T_ Exercise 4.2 1. The SYSTEM pool. 2. The SYSTEM and the PROJECT pools. &_ 3. The SYSTEM, the PROJECT, and the USER pools. T_ Exercise 4.3 &_ The SYSTEM pool. T_ Exercise 4.4 DATA is removed from the PROJECT pool, then the catalog entry DA- &_ TA is transferred from the LOGIN pool to the PROJECT pool. The USER pool is now the first containing the name DATA, and this catalog entry is transferred to the LOGIN pool. T_ Exercise 4.5 rename data data1 scope project data &_ rename data1 data \f T_ Exercise 4.6 lookup login rcdata lookup user rcdata lookup project rcdata 10 lookup rcdata &_ 20 finis T_ Exercise 4.7 10 x = set 18 20 scope login x &_ 30 finis T_ Exercise 4.8 Transfer the catalog entry to the PROJECT pool, and it is acces- &_ sible by all members of the project. T_ Exercise 4.9 CATALOG KEY 0 Temporary 1 Not used 2 LOGIN &_3 Permanent The upper and lower basis determine an interval, and the inter- vals are included within one another. T_ PROJECT USER &_ TEMP/LOGIN LOGIN and TEMP catalog entries have the same base. A job has access to a catalog entry, if its base includes the interval, which constitute the base for the job>s temporary\f catalog entries. T_ BASE ACCESS NO ACCESS &_ TEMP BASE As two different projects only share the system areas, the PROJECT bases are disjunct intervals. T_ PROJECT USER TEMP/LOGIN &_ PROJECT 1 PROJECT 2 T_ Exercise 4.10 & save area name' kit name' If the kit name is omitted, the system disc is used. T_ Exercise 6.1 1. YES.NO is illegal 2. 2 is not a legal name 3. 3 is not a legal program name 4. 9000000 is an illegal number &_ 5. PROGRAMTEXT3 is an illegal name (12 characters) T_ Exercise 6.2 10 (p = algol 20 p 30 finis) 40 begin integer a,b; 50 read (in, a, b); 60 write (out, a, b); 70 end &_ 80 3 4 \f When the job is executed, the compound command is read by FP. AL- GOL is activated and reads the following lines 40, 50, 60, 70. The compiled program is activated and reads line 80. FINIS is activated, and the job is terminated. The separation of commands and data lines implies that FP reads the first part of the JOB FILE, and the remaining part is read by the programs. In error situations this is a great advantage, as it is avoided that FP attempts to interpret data lines as commands. T_ Exercise 6.3 The use of OUT is terminated by selecting a new file as CURRENT OUTPUT FILE, the necessary END OF MEDIUM character is inserted. T_ Exercise 6.4 (o outdata p = algol (i input p end) finis ) begin integer a, b; read (in, a, b); write (out, a, b); end (i input p &_ end) T_ can be replaced by the program call: &_ p input as it is a convention that the first element in the parameter list is chosen as CURRENT INPUT FILE, when it is a name. \f T_ Exercise 6.5 i kom1 u = algol txt i kom2 o outfile u data o c convert outfile &_ finis T_ Exercise 6.6 In the first event the compilations are executed in the following order: u = algol txt1 &_ p = algol txt2 In the second event the order is reversed as the compound command effects a stacking of the CURRENT INPUT FILE. T_ Exercise 6.7 u = algol text if ok.yes u &_ finis T_ Exercise 6.8 u = algol text if warning.yes (output = set 100 o output u = algol text list.yes xref.yes o c convert output ) if ok.yes u &_ finis \f Exercise 6.9 u = algol text if warning.yes (output = set 100 o output u = algol text list.yes xref.yes o c convert output &_ finis) T_ if ok.yes (repeat 6 u) finis Exercise 6.10 1. TEXTPROGRAM1 consists of 12 characters, and this is the first &_ syntactic error. FP then informs the user that the error has been read from PRIMARY INPUT FILE; FP is then reinitialized. A number is then read, this is another syntactic error, as 2 is not a program name. 2. The error message is produced, as there exists no catalog en- try with the name specified. 3. The error message is produced because the catalog entry with the specified name does not describe a program. T_ Exercise 8.1 1. This is what happens: a. The compound command is read. b. TEXT is selected as CURRENT INPUT FILE. c. ALGOL is called and reads the source text from &_ CURRENT INPUT FILE. The word last read is END. d. FP reads the next FP command and produces an error message, as 7 is not a legal command. e. CURRENT INPUTis unstacked, when an END OF MEDIUM character is read, and the next command is read from the JOB FILE. \f f. The compiled program is called, and it reads the number, 5, and prints it. 2. This sequence of events is identical with (1) except that CUR- RENT INPUT FILE is unstacked after the ALGOL compilation, and the number 7 is not read. T_ Exercise 8.2 p1 if ok.yes mode 0.yes p2 if 0.yes ok.yes p3 &_ finis T_ Exercise 8.3 1 &_ newjob file name' printer name' 0 T_ Exercise 8.411 &_ convert file name' printer name' paper type' 00 T_ Exercise 9.1 file7 = set mto mt123456 0 7 o file7 p = algol text list.yes &_ o c T_ Exercise 9.2 outfile = set 18 dk123456 scope user outfile &_ outfile = search temp T_ Exercise 9.3 clear login data1 data2 data3 data4 data5 &_ clear user data1 data2 data3 data4 data5 \f T_ Exercise 10.1 1. job kc 1234 device punch load tre d1 load tre d2 tpe = copy d1 d2 &_ finis 2. job kc 1234 device punch tapes 2 tpe = copy tre tre &_ finis The first job is recommended with regard to the resource comsumption. T_ 3. job kc 1234 cbuf 1 load tre d1 load tre d2 d3 = copy d1 d2 convert d3 &_ finis T_ 4. job kc 1234 device printer tapes 2 lp = copy tre tre &_ finis The first job is recommended with regard to the resource con- sumption. T_ Exercise 10.2 MOVE cannot copy to a punch or a printer. Copying in the backing store cannot be made with MOVE, as MOVE transfer whole blocks with &_ no regard to END OF MEDIUM characters. T_ Exercise 10.3 workfile = set 1 dk123400 workfile = move text clear temp text &_ rename workfile.text \f T_ Exercise 10.4 fromfile = set mto mt123456 0 7 tofile = set mto tm123400 0 1 &_ tofile = move fromfile.4 T_ Exercise 10.5 &_ rfile = copy f1 3 f2 T_ Exercise 10.6 1. job kc 1234 cbuf 5 (repeat 4 h = move output convert h) convert output &_ finis T_ 2. job kc 1234 cbuf 1 h = copy output output output output output convert h &_ finis T_ Exercise 10.7 job kc 1234 stations 1 load mt123456.1 survey yes &_ finis T_ Exercise 10.8 job kc 1234 stations 1 save mt123456.7 txt data program pdata &_ finis.\f INDEX Access code............................ 8.3.4 Account file........................... 3.1.2 ACCOUNTFILE............................ 3.1.2 ALGOL.................................. 6.4.3 ANCESTOR PROCESS....................... 5.1.1.1 AREA................................... 5.3.3 Area................................... 4.1 binary.............................. 4.1 creation............................ 4.4.1, 4.5.1, 9.1 deletion............................ 4.4.3, 4.5.3, 9.4 name................................ 4.1 text................................ 4.1 Area process........................... 5.1.3, 5.3.3 ATTENTION-signal....................... 3.2 AUTOLINE............................... 3.6.1 Aux. catalog........................... 4.7 Backing store.......................... 3.5, 4 Base................................... 4.6, 4.6.4 BASISFILE.............................. 3.4.4 release of.......................... 3.4.4.2, 4.4.3 transmission to..................... 3.4.5.4 Binary area............................ 4.1 BOSS................................... 3, 5, 5.1.1.1, 6.1 conversation with................... 8.3 controlled by....................... 3.5.4 messages from....................... 3.7 BOSS-commands.......................... 8.3 AREA................................ 5.3.3 AUTOLINE............................ 3.6.1 BUF.................................5.3.4 CBUF................................3.6.3 CLEAR...............................3.4.4.2, 4.4.3 CONVERT.............................3.6.4 DEVICE...............................3.6.3 \f DISPLAY.............................3.6.5 GET.................................3.4.4.1 GO..................................3.2 INTERNAL............................5.3.1 KILL................................3.2 LIST................................3.4.3.2 LOGOUT..............................3.2 LOOKUP.............................. 4.4.4 NEWJOB.............................. 3.6.2 ONLINE..............................8.1.5 OUTPUT..............................6.3.5 PERM................................4.8.2 RENAME..............................4.4.2.1 SAVE................................3.4.4.3 SCOPE...............................4.4.2.1 SIZE................................3.6.3 STATIONS............................ 3.6.3 TAPES...............................3.6.3 TEMP................................4.8.1 TIME................................3.6.3 VERIFY.............................. 3.4.2.1 BUF.................................... 5.3.4 Byte................................... 3.5.2 C...................................... 6.3 Cancel character....................... 3.4.1 Cardreader............................. 3.5.5 Catalog................................ 4.2, 4.7, 5.4 auxilary............................ 4.7 entry............................... 4.2.1, 4.6, 9.1 handling............................ 4.2.2, 4.4, 4.5, 7.3, 9 key................................. 4.6 main................................ 4.7 Catalog entry.......................... 4.2.1, 4.6, 9.1 change.............................. 4.4.2, 4.5.2 create.............................. 4.4.1, 4.5.1 delete.............................. 4.4.3, 4.5.3 head................................ 4.6 \f tail................................ 4.6 use................................. 4.6.1 CBUF................................... 3.5.6 CHAINTABLE............................. 5.4 CHILD PROCESS.......................... 5.1.1.1 Class catalog entry....................... 4.2.1 job................................. 3.6.5 CLEAR BOSS-command........................ 3.4.4.2, 4.4.3 utility program..................... 4.5.3, 9.4 Command stack.......................... 6.2.2, 6.3.1, 8.2.3 Command BOSS................................ 3.2, 3.6, 4.4 FP.................................. 3.2, 6.2 Communication internal............................ 5.2 Computation time....................... 3.5, 3.5.3 Contents catalog entry....................... 4.2.1 Control point.......................... 3.6.5 Conventions............................ 7.4 CONVERT BOSS-command........................ 3.6.4 buffer.............................. 3.5.6 utility program..................... 8.3.2 COPY................................... 10.1.1 Correction commands.................... 3.4.2 CPU-time............................... 5.5.1 CRB.................................... 3.5.5.1 CRC.................................... 3.5.5.1 Creation of area............................. 4.4.1, 4.5.1, 9.1 of catalog entry.................... 4.5.1, 9.1 CURRENT INPUT FILE..................... 6.3, 6.3.1, 8.1.1, 8.1.2 CURRENT OUTPUT FILE.................... 6.3, 6.3.2, 8.1.3 Data handling.......................... 7.3, 10 \f Data transfer.......................... 5.5.4, 10.1 Date................................... 4.6, 4.6.9 DEVICE BOSS-command........................ 3.6.3 number.............................. 3.5.4 OPTION.............................. 3.5.3, 3.5.6, 3.5.7, 3.5.8 peripheral.......................... 3.5.4 Disc................................... 4, 8.3.3 kit................................. 4.1 pack................................ 4.1 privacy............................. 4.7 system.............................. 4.7 DISPLAY................................ 3.6.5 Document............................... 4.6.7 name................................ 4.6.7 EDIT................................... 7.3 Element................................ 6.2.1 END OF MEDIUM.......................... 4.1 END.................................... 8.1.2 Error print-outs from FP............................. 6.5 FILE PROCESSOR......................... 6, 6.1 FILE DESCRIPTOR........................ 7.6 File................................... 6.3 FINIS.................................. 8.3.1.4 FP..................................... 6.1 error print-outs from............... 6.6 FPNAMES................................ 6.5 FP-command............................. 3.2, 6.2 complex............................. 6.2.2 simple.............................. 6.2.1 Function privileged.......................... 3.1.1, 3.1.3, 4.2.2 utility............................. 6.1, 6.5 GET.................................... 3.4.4.1 \f GO..................................... 3.2 Half word.............................. 3.5.2 HEAD catalog entry....................... 4.2.1 utility program..................... 10.2.1 HEADPUNCH.............................. 10.2.2 Hierarchy process............................. 5.1.1.1 I...................................... 6.3.1, 8.1.1 IF..................................... 6.4.2, 8.2.2 IN..................................... 6.3.3 Index.................................. 3.2 Information............................ 3.6.5 Insertion of lines..................... 3.4.2.1 INTERNAL............................... 5.3.1 Internal process....................... 5.1.1, 5.3.1 Job.................................... 3.2, 5.1.1.1 class............................... 3.6.5 controlled.......................... 3.5.4 enrollment.......................... 3.6.2, 8.3.1.1 execution........................... 3.1.2 identification...................... 3.5.1 internal............................ 8.3.1.1 name................................ 3.2, 3.6.5, 5.1.1.1 OFFLINE............................. 3.6.7, 8.3.1.1 ONLINE.............................. 8.3.1.1 queue............................... 3.2 termination......................... 8.3.1.4 Job control............................ 7.1, 8 Job control language................... 6.4.2 JOB FILE............................... 3.2 handling............................ 3.4.4 manipulation........................ 3.6.1 use................................. 3.3 JOB SPECIFICATION...................... 3.1.1, 8.3.1.1 \f KILL................................... 3.2 KIND................................... 7.5 KIT.................................... 4.1 privacy............................. 4.7 utility program..................... 8.3.3 Left hand side......................... 6.2.1 Line modification...................... 3.4.2.3 Line numbering......................... 3.4.2 LIST bit................................. 6.4.1 BOSS-command........................ 3.4.3.2 LOAD specification....................... 3.5.1, 3.5.5 utility program..................... 10.1.5 LOGIN.................................. 4.3 routine............................. 3.2 LOGOUT................................. 3.2 LOOKUP BOSS-command........................ 4.4.4 utility program..................... 4.5.4, 9.5.1 Magnetic tape.......................... 8.3.4 access code......................... 8.3.4 label............................... 8.3.4 name................................ 8.3.4 number.............................. 8.3.4 Main catalog........................... 4.7 MESSAGE BUFFER......................... 5.2, 5.3.4 Messages from BOSS........................... 3.7 MODE................................... 7.4 bit................................. 6.4.1, 6.4.2, 8.2.1, 8.2.2 specification....................... 3.5.5.1 MODEKIND............................... 7.4, 7.5 MONITOR................................ 5, 5.1.4, 5.2, 5.4 MOUNT.................................. 8.3.4.1 MOVE................................... 10.1.2 \f Name................................... 4.1, 4.6, 4.6.5 area................................ 4.1 change.............................. 4.4.2.2, 4.5.2.2, 9.2, 9.3 document............................ 4.6, 4.6.7 key................................. 4.6 program............................. 4.1 NEWJOB BOSS-command........................ 3.6.2 utility program..................... 8.3.1.3 NO ROOM................................ 3.4.5.3 Notation............................... 3.2, 3.4.3.2 O...................................... 6.3.2, 8.1.3 OFFLINE job................................. 3.6.7 OK-bit................................. 6.4.1 ONLINE BOSS-command........................ 8.1.5 utility program..................... 8.1.5 ONLINE-command......................... 3.6 OPCOMM................................. 8.3.5.1 Operating System....................... 3.1, 5, 11.2 OPMESS................................. 8.3.5.2 OPTION AREA ............................... 5.3.3 BUF................................. 5.3.4 CBUF................................ 3.5.6 DEVICE.............................. 3.5.5, 3.5.6, 3.5.7, 3.5.8 INTERNAL............................ 5.3.1 ONLINE.............................. 8.1.5 OUTPUT.............................. 6.3.5 PERM................................ 4.8.2 SIZE................................ 3.5.2 STATIONS............................ 3.5.8 TAPES............................... 3.5.5 TEMP................................ 4.8.1 TIME................................ 3.5.2 \f OPTION-list............................ 3.5.1 OUT.................................... 6.3.3 OUTPUT................................. 6.3.5 Parameter.............................. 6.2.1 list................................ 6.2.1 PARENT PROCESS......................... 5.1.1.1 Peripheral device...................... 3.5.4 Peripheral process..................... 5.1.2, 5.3.2 Permanent.............................. 4.3 PERM................................... 4.8.2 Policy................................. 5.5.5 PRIMARY INPUT FILE..................... 6.3 PRIMARY OUTPUT FILE.................... 6.3, 6.3.5, 8.3.1.1 PRIMOUT................................ 6.3, 6.3.5, 8.3.1.1 Printer................................ 8.3.2 PRINT.................................. 10.2.3 Print-out of area............................. 3.6.4, 8.3.2 of catalog entry.................... 4.4.4, 4.5.4, 9.5 of JOBFILE.......................... 3.4.3 Priveleged function.................... 3.1.1, 3.1.3, 4.2.2 PROCESS ANCESTOR............................ 5.1.1.1 CHILD............................... 5.1.1.1 PARENT.............................. 5.1.1.1 Process................................ 5, 5.1 area................................ 5.1.3, 5.3.3 description......................... 5 handling............................ 5.1.4 hierarchy........................... 5.1.1.1 internal............................ 5.1.1, 5.3.1 name................................ 5.1.1.1, 5.1.2, 5.1.3 peripheral.......................... 5.1.2, 5.3.2 Program execution...................... 6.1 Project................................ 4.3 Protection............................. 3.3, 4.3, 5.5.2, 8.3.4 \f Punch.................................. 3.5.7 RC NET................................. 11.3 Reader................................. 3.5, 3.5.5 RELEASE................................ 8.3.4.2 RENAME BOSS-command........................ 4.4.2.2 utility program..................... 4.5.2.2, 9.2 REPEAT................................. 6.4.2, 8.2.3 REPLACE................................ 8.3.1.2 Resources.............................. 3.3, 3.5, 4.8, 5.3, 5.5.3 administration...................... 3.1.1 requesting.......................... 3.5.1, 3.6.3 Restrictions........................... 3.6.8 ROUND ROBIN............................ 5.1.1.2 RUNNING................................ 5.1.1.2 S...................................... 5.1.1.1 Safety copying......................... 10.1, 10.1.4, 10.1.5 SAVE BOSS-command........................ 3.4.4.3 utility program..................... 10.1.4 SCOPE.................................. 4.2.1, 4.3 BOSS-command........................ 4.4.2.1 diagramme........................... 4.3 pool................................ 4.3 scope............................... 4.3 utility program..................... 4.5.2.1, 9.3 Scratch tape........................... 8.3.4 SEARCH................................. 9.5.2 Segment................................ 4.2.1 SET.................................... 4.5.1, 9.1 SIZE................................... 3.6.5 Size................................... 4.6, 4.6.6 SLICE.................................. 4.6, 4.6.1 Standard value......................... 3.1.1 State job................................. 3.6.5 process............................. 5.1.1.2 \f State variables........................ 6.1, 6.4.1 STATIONS............................... 3.5.8 Status word............................ 5.2 Supervision............................ 3.1, 5.5.2 System disc............................ 4.7 TAIL catalog entry....................... 4.2.1 Tape name.............................. 8.3.4 Tape number............................ 8.3.4 Tape station........................... 3.5, 3.5.8 TAPES.................................. 3.5.5 Temporary.............................. 4.3 TIME................................... 3.5.2 TRE.................................... 3.5.1.1 TRF.................................... 3.5.1.1 TRN.................................... 3.5.1.1 TRO.................................... 3.5.1.1 USER................................... 4.3 USER CATALOG........................... 3.1.1 User identification.................... 3.2 User index............................. 3.6.2, 3.6.5 User name.............................. 3.3, 3.6.5 Utility function....................... 6.1, 6.5 Utility program ALGOL............................... 6.4.3 CLEAR...............................4.5.3, 9.4 CONVERT.............................8.3.2 COPY................................10.1.1 EDIT................................7.3 END.................................6.3.1, 8.1.2 FINIS...............................8.3.1.4 HEAD................................10.2.1 HEADPUNCH...........................10.2.2 I...................................6.3.1, 8.1.1 IF..................................6.4.2, 8.2.2 \f KIT.................................8.3.3 LOAD................................10.1.5 LOOKUP..............................4.5.4, 9.5.1 MODE................................6.4.1, 8.2.1 MOUNT...............................8.3.4.1 MOVE................................10.1.2 NEWJOB..............................8.3.1.3 O...................................6.3.2, 8.1.3 ONLINE..............................8.1.5 OPCOMM..............................8.3.5.1 OPMESS..............................8.3.5.2 RELEASE............................. 8.3.4.2 RENAME.............................. 4.5.2.2, 9.2 REPEAT..............................6.4.2, 8.2.3 REPLACE.............................8.3.1.2 SAVE................................10.1.4 SCOPE...............................4.5.2.1, 9.3 SEARCH..............................9.5.2 SET.................................4.5.1, 9.1 V...................................... 6.3 VERIFY................................. 3.4.3.1 Virtual storage........................ 11.2 WAITING................................ 5.1.1.2 WARNING-bit............................ 6.4.1 Work tape.............................. 8.3.4 Writing permission..................... 4.3 Zone................................... 6.3.2 \f F_ 9 KATALOGHÅNDTERING De vigtigste kataloghåndterende programmer er introduceret i kapitel 4, og kapitel 9 rummer blot programbeskrivelser. T_ 9.1 Set. Med SET-programmet kan en temporær katalogindgang oprettes. data = set 18 data = set 18 dk123456 &_ date = set mto mt123456 0 1 T_ P_R_O_G_R_A_M_K_A_L_D_:_ navn'= set størrelse'dokumentnavn' modekind' 1 &_ dato' filnr' 0 T_ F_U_N_K_T_I_O_N_:_ Parameterlisten læses og fortolkes, og en temporær katalogindgang &_ med det specificerede navn og indhold søges oprettet. Hvis det ikke er muligt, fordi der i forvejen findes en temporær katalog- indgang med det specificerede navn, ændres denne i overensstem- melse med parameterlisten. Første parameter kan være områdestørrelse eller MODEKIND-angivel- se, og de øvrige parametre fortolkes i overensstemmelse hermed (jvf. 7.5). Udeblivelsesværdien for parametre er 0, for dato dog d.0 , dvs. det aktuelle tidspunkt. T_ F_E_J_L_:_ &_ I tilfælde af fejl oprettes eller ændres ingen katalogindgang. \f T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx SET CALL &_ Venstreside mangler i programkaldet. T_ xxx SET PARAM parameter' &_ Parameterfejl i programkaldet. T_ xxx SET navn' CHANGE KIND IMPOSSIBLE &_ Ændring af MODEKIND var umulig. T_ xxx SET resultat' CHANGE BS DEVICE IMPOSSIBLE &_ Kitnavnet kan ikke ændres. T_ xxx SET resultat' NO RESOURCES &_ Der var ikke tilstrækkelige ressourcer til oprettelsen. T_ xxx SET resultat' ENTRY IN USE Katalogindgangen kunne ikke ændres, da den blev benyttet af &_ en anden. T_9.2 Rename Med RENAME-programmet ændres navnet på en eller flere katalog- indgange. E_k_s_e_m_p_e_l_ _9_._2_:_ rename dyt.båt &_ rename gammel.ny old.new T_ P_R_O_G_R_A_M_K_A_L_D_:_ N &_ rename sp' gl.navn'.nyt navn' 1 T_ F_U_N_K_T_I_O_N_:_ For hver parameter ændres navnet på katalogindgangen gl.navn' &_ med det snævreste SCOPE til nyt navn'. \f T_ F_E_J_L_:_ Fejlramte parametre ignoreres, og programmet afbrydes kun efter &_ de to første fejludskrifter i nedenstående liste. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx RENAME CALL &_ Venstreside optræder i programkaldet. T_ xxx RENAME PARAM parameter' &_ Parameterfejl i programkaldet. T_ xxx RENAME gl.navn'.nyt navn' NAME CONFLICT Det nye navn eksisterer allerede, og ændringen kan derfor ikke gennemføres. T_ xxx RENAME gl.navn'.nyt navn' UNKNOWN &_ Der findes ingen katalogindgang med navnet, der ønskes ændret. T_ xxx RENAME gl.navn'.nyt navn' PROTECTED &_ Den specificerede katalogindgang er beskyttet. T_ xxx RENAME gl.navn'.nyt navn' ENTRY IN USE Den specificerede katalogindgang benyttes af en anden og kan &_ derfor ikke ændres. T_9.3 Scope Med SCOPE-programmet overføres katalogindgange til en specifi- ceret SCOPE-pulje. E_k_s_e_m_p_e_l_ _9_._3_:_ scope user rcdata scope login rcdatal rcdata2 rcdata3 &_ scope user.dk123456 data \f T_ P_R_O_G_R_A_M_K_A_L_D_:_ N scope scope specifikation' sp' navn' 1 1 scope specifikation'::= scope angivelse' .kitnavn'0 temp scope angivelse'::= login user &_ project T_ F_U_N_K_T_I_O_N_:_ De angivne katalogindgange overføres til den specificerede SCOPE- pulje, og forinden fjernes de eksisterende katalogindgange med de &_ specificerede navne i puljen, så en navnekonflikt forhindres. En katalogindgang, der ikke beskriver et område, kan gøres perma- nent på et privat kit ved at anføre kitnavnet efter scopeangivel- sen. T_ F_E_J_L_:_ Fejlramte parametre ignoreres, og programmet afbrydes kun efter &_ de fire første fejludskrifter i nedenstående liste. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx SCOPE CALL &_ Venstreside optræder i programkaldet. T_ xxx SCOPE scope spec.' ILLEGAL SCOPE &_ Illegal scopeangivelse. T_ xxx SCOPE scope spec.' BS DEVICE UNKNOWN &_ Det specificerede kit er ikke monteret. T_ xxx SCOPE PARAM parameter' Parameterfejl i programkaldet. Den resterende del af parame- &_ terlisten ignoreres. \f xxx SCOPE scope spec.' navn' UNKNOWN &_ Der findes ingen katalogindgang med det anførte navn. T_ xxx SCOPE scope spec.' navn' PROTECTED Den anførte katalogindgang er beskyttet og kan derfor ikke &_ ændres. T_ xxx SCOPE scope spec.' navn' ENTRY IN USE Den anførte katalogindgang benyttes af en anden og kan derfor &_ ikke ændres. T_ xxx SCOPE scope spec.' navn' NO RESOURCES Der er ikke tilstrækkelige ressourcer til rådighed for at &_ kunne gennemføre SCOPE-ændringen. T_ xxx SCOPE scope spec.' navn' CHANGE BS DEVICE IMPOSSIBLE Den anførte katalogindgang kan ikke gøres permanent på det &_ specificerede kit, da den beskriver et område på et andet kit. T_ 9.4 Clear. Med CLEAR-programmet fjernes specificerede katalogindgange. E_k_s_e_m_p_e_l_ _9_._4_:_ clear login datal data2 &_ clear user.dk123456 descriptor T_ P_R_O_G_R_A_M_K_A_L_D_:_N clear scope specifikation' sp' navn' 1 1 scope specifikation'::= scopeangivelse' .kitnavn' 0 &_ T_ temp scopeangivelse'::= login user project \f F_U_N_K_T_I_O_N_:_ De specificerede katalogindgange i den anførte SCOPE-pulje fjer- &_ nes. Programmet ignorerer fejlramte parametre, men afbrydes dog efter fejl, der forårsager en af de 4 første fejludskrifter fra neden- stående liste. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx CLEAR CALL &_ Venstreside optræder i programkaldet. T_ xxx CLEAR scope spec.' ILLEGAL SCOPE &_ Ulovlig scopeangivelse. T_ xxx CLEAR scope spec.' BS DEVICE UNKNOWN &_ Det specificerede kit er ikke monteret. T_ xxx CLEAR PARAM parameter' Ulovlig parameter i programkaldet. Den resterende del af para- &_ meterlisten ignoreres. T_ xxx CLEAR scope spec.' navn' UNKNOWN &_ Den specificerede katalogindgang findes ikke. T_ xxx CLEAR scope spec.' navn' ENTRY IN USE Katalogindgangen kunne ikke fjernes, da den blev benyttet af &_ en anden. T_ 9.5 Udskrivning Specificerede katalogindgange udskrives med LOOKUP-programmet, og &_ SCOPE-puljer udskrives med SEARCH-programmet. \f T_ 9.5.1 L_o_o_k_u_p_ Med LOOKUP-programmet udskrives specificerede katalogindgange. E_k_s_e_m_p_e_l_ _9_._5_:_ lookup data &_ lookup datal data2 T_ P_R_O_G_R_A_M_K_A_L_D_:_ N &_ lookup sp' navn' 1 T_ F_U_N_K_T_I_O_N_:_ Tilgængelige katalogindgange med de specificerede navne udskrives på CURRENT OUTPUT FILE. Udskriftsformat: navn'= SET krop' ; scope spec.' &_ ;hoved' Den første linje i udskriften fremkommer på præcis samme måde, som kaldet af SET-programmet må foretages for at oprette katalogind- gangen. T_ SCOPE-specifikationen kan rumme både en scopeangivelse og et kit- navn. 1 scope spec.'::= scopeangivelse' .kitnavn' 0 &_ T_ temp login scopeangivelse'::= user project &_ system \f T_ Oplysningerne i hovedet er anført i den rækkefølge de findes i ka- talogindgangen (jvf. 4.6.): &_ første slice' navnenøgle' katalognøgle' n.base' ø.base' T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx LOOKUP CONNECT udfil' Den specificerede udfil kunne ikke tilknyttes, og i stedet &_ anvendes CURRENT OUTPUT FILE. T_ xxx LOOKUP PARAM parameter' Parameterfejl. Den resterende del af parameterlistenignore- &_ res. T_ xxx LOOKUP navn' UNKNOWN Der findes ingen tilgængelige katalogindgange med det anførte &_ navn. De øvrige parametre behandles normalt. T_ xxx LOOKUP navn' NO RESOURCES Programmet afbrydes, da der er for få arealprocesser til rå- &_ dighed. T_ 9.5.2. S_e_a_r_c_h_._ Med SEARCH-programmet udskrives specificerede SCOPE-puljer. E_k_s_e_m_p_e_l_ _9_._6_:_ search temp search system &_ search own T_ P_R_O_G_R_A_M_K_A_L_D_:_ 1 udfil'= 0 search scope spec' T_ 1 scope spec' ::= scopeangivelse' .kitnavn' 0 &_ \f T_ temp login scopeangivelse'::= user project system &_ own T_ F_U_N_K_T_I_O_N_:_ Samtlige katalogindgange i den specificerede SCOPE-pulje udskri- ves. OWN angiver, at TEMP, LOGIN, USER og PROJECT puljerne skal udskrives. Udskrivningen foretages på CURRENT OUTPUT FILE, så- &_ fremt der ikke er specificeret en udfil. Udskrivningen foretages med samme format, som LOOKUP-programmet anvender. T_ xxx SEARCH CONNECT udfil' Udfilen kunne ikke tilknyttes, og i stedet anvendes CURRENT &_ OUTPUT FILE. T_ xxx SEARCH PARAM parameter' &_ Parameterfejl i programkaldet og programmet afbrydes. T_ xxx SEARCH scope spec' NO ENTRIES FOUND &_ Der findes ingen katalogindgange i den specificerede pulje. T_ xxx SEARCH scope spec' ILLEGAL SCOPE &_ Illegal scopeangivelse og ingen katalogindgange udskrives. T_ 9.6 Opgaver O_p_g_a_v_e_ _9_._1_:_ I området TEXT findes et ALGOL-program, der ønskes oversat og ud- &_ skrevet på den syvende fil på magnet båndet MT123456. Skriv det påkrævede job. \f T_ O_p_g_a_v_e_ _9_._2_:_ Udskriv samtlige temporære katalogindgange på et permanent område &_ UDFIL på kittet DK123456. T_ O_p_g_a_v_e_ _9_._3_:_ Slet på den letteste måde samtlige tilgængelige katalogindgange &_ med navnene DATA1, DATA2, DATA3, DATA4, DATA5, og DATA6. \f F_ 10 DATAHÅNDTERING I mange situationer er der behov for at overføre data fra en del af datamaten til en anden, at modificere data eller at udskrive data på et læsbart medium. Til disse opgaver stilles forskellige hjælpeprogrammer til rådighed, og i dette kapitel findes kun de vigtigste programmer og deres hyppigste anvendelsesmåder beskre- vet. Hjælpeprogrammerne er som regel så fleksible, at det kan være svært at gruppere dem, og opdelingen i de følgende afsnit er foretaget på grundlag af programmernes hovedfunktioner. Som nævnt i kapitel 7 omtales de egentlige datamodificerede programmer ikke men programbeskrivelser findes i ref. 4. T_10.1 Dataoverførsel Ved dataoverførsler skelnes mellem tegnvis og blokvis overførsel. &_ Kun tekstfiler kan kopieres tegnvis, da en sådan overførsel stop- per ved læsning af en END OF MEDIUM karakter. Da tegnvis overfør- sel indebærer, at hvert tegn må læses, vil blokvis overførsel sædvanligvis være meget hurtigere. Med COPY-programmet kan der foretages tegnvis kopiering af tekstfiler. MOVE-programmet fore- tager blokvis kopiering. Sikkerhedskopiering af filer giver sær- lige problemer, da man uden besvær bør kunne retablere filer ud fra en sikkerhedskopi. Dette gøres lettest ved at kopiere såvel katalogindgange som de tilhørende filer. Med SAVE-programmet overføres både katalogindgange og områder til magnetbånd, og med LOAD-programmet kan katalogindgange og områder på et SAVE-bånd retableres. \f T_ 10.1.1 C_o_p_y_ Med COPY-programmet foretages tegnvis kopiering fra specificerede inputfiler til en angiven outputfil. E_k_s_e_m_p_e_l_ _1_0_._1_:_ ud = copy ind tpe = copy datal data2 &_ data= copy 3 T_ P_R_O_G_R_A_M_K_A_L_D_:_ inputfil' N udfil'=copy antal linier' 1 F_U_N_K_T_I_O_N_:_ De specificerede inputfiler overføres ved tegnvis kopiering i den &_ rækkefølge, de er anført til udfilen. Overførslen fra en inputfil ophører, når END OF MEDIUM karakteren læses, men denne karakter overføres dog ikke til udfilen. Kopieringen afsluttes ved skriv- ning af en END OF MEDIUM karakter. Når inddataangivelse er et antal linjer, kopieres det specifice- rede antal synlige linjer fra CURRENT INPUT FILE til udfilen. T_ F_E_J_L_:_ &_ WARNING-bitten har værdien TRUE efter fejl. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx COPY CONNECT udfil' årsag' Af den anførte grund kunne udfilen ikke tilknyttes. OK-bitten &_ får værdien NO. T_ xxx COPY CONNECT inputfil' årsag' Af den anførte grund kunne den specificerede inputfil ikke &_ tilknyttes. Parameteren ignoreres. T_ xxx COPY PARAM parameter' &_ Illegal parametersyntaks. Parameteren ignoreres. \f T_ xxx COPY END MEDIUM Inputfilen er udtømt, og COPY fortsætter med den næste para- &_ meter. T_ xxx COPY NO CORE &_ Den interne processtørrelse er for lille. T_ 10.1.2 M_o_v_e_ Med MOVE-programmet foretages blokvis kopiering af filer på discs eller magnetbånd. E_k_s_e_m_p_e_l_ _1_0_._2_:_ kopifil = move data båndfil = move data &_ båndkopi = move message.yes fil.4 T_ P_R_O_G_R_A_M_K_A_L_D_:_ Der skelnes mellem to programkald afhængig af, om udfilen er på &_ disc eller magnetbånd. T_ 1disc fil' discfil'=move message.yes 0 mt.fil' 1 disc fil' N mt.fil'=move message.yes 0 mt.fil' &_ mt.fil'.antal' 1 T_ F_U_N_K_T_I_O_N_:_ De specificerede inputfiler kopieres blokvis til udfilen i den rækkefølge, de optræder i programkaldet. Hver inputfil skrives i en separat outputfil. Når MESSAGE-parameteren optræder, udskri- &_ ves en rapport om forløbet af kopieringen. T_ F_E_J_L_:_ Da parametrene håndteres enkeltvis, kan een eller flere inputfil- &_ er være kopieret før en utilsigtet programafbrydelse. \f T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx MOVE: NO CORE &_ Den interne processtørrelse er for lille. T_ xxx MOVE CALL &_ Venstreside mangler i programkaldet. T_ xxx MOVE PARAM: parameterliste' &_ Der er fejl i parameterlisten. xxx MOVE: INPUT KIND Den specificerede fil er hverken en discfil eller en MT-fil. xxx MOVE: OUTPUT KIND &_ Den specificerede fil er hverken en discfil eller en MT-fil. xxx MOVE: CONNECT INPUT Den specificerede fil kunne ikke tilknyttes. T_ xxx MOVE: CONNECT OUTPUT &_ Den specificerede fil kunne ikke tilknyttes. T_ xxx MOVE: TOO MANY PARAMS &_ Der er forsøgt overførsel af flere filer til een discfil. T_ xxx MOVE: CHANGE ERROR Det er ulovligt at ændre katalogindgangen, der beskriver &_ udfilen. T_ 10.1.3. O_p_g_a_v_e_ _1_0_._1_:_ To strimler, der er hullet i isokode med lige paritet, ønskes sam- menkopieret til en strimmel med samme format. Skriv 2 forskellige job, der kan udføre det ønskede. &_ Ændre jobbene, så strimlerne i stedet udskrives på printeren. T_ O_p_g_a_v_e_ _1_0_._2_:_ &_ Hvorfor kan MOVE-programmet ikke anvendes i opgave 10.1. \f T_ O_p_g_a_v_e_ _1_0_._3_:_ &_ Flyt det temporære område TEXT fra kit DK123456 til kit DK123400. T_ O_p_g_a_v_e_ _1_0_._4_:_ Flyt fil 7,8,9 og 10 på magnetbånd MT123456 til fil 1,2,3 og 4 på &_ magnetbånd MT123400. T_ O_p_g_a_v_e_ _1_0_._5_:_ Indføj 3 linier fra CURRENT INPUT FILE mellem fileren F1 og F2 og &_ gem resultatet i RFILE. T_ O_p_g_a_v_e_ _1_0_._6_:_ Det temporære område UDDATA indeholder data på tekstform. Udskriv dataene 5 gange på printeren med 3 forskellige job og vurder, &_ hvad der er mest hensigtsmæssigt. T_ 10.1.4. S_a_v_e_._ Med SAVE-programmet kan såvel katalogindgange som områder gemmes på magnetbånd. Dette program har således i_n_t_e_t_ til fælles med BOSS-kommandoen SAVE. E_k_s_e_m_p_e_l_ _1_0_._3_:_ save mt123456.1 scope.user &_ USER-puljen gemmes på fil 1 på MT123456. T_ E_k_s_e_m_p_e_l_ _1_0_._4_:_ save mt123456.last save mt123456.2.label.rcdump save mt123456.last scope.temp &_ save mt123456.last datal data2 data3 T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ save bånd spec.' dump spec.' 1 T_ bånd spec.':=båndnavn'.filnr' .label.labelspec.' 0 &_ T_ filnr'::= last &_ heltal' \f labelspec.'::=navn' 4 N T_ dump spec.'::= scope.scopeangivelse' 0 navn' 0 &_ T_ temp scopeangivelse'::= login user project T_ F_U_N_K_T_I_O_N_:_ De i dumpspecifikationen anførte katalogindgange og områder gemmes &_ på det specificerede magnetbånd. Båndspecifikationen angiver bånd- navn og filnummer og rummer muligvis en LABEL-parameter. SAVE un- dersøger altid, om magnetbåndsfilen tidligere er blevet skrevet med SAVE-programmet, og hvis det er tilfældet, overskrives filen kun, såfremt LABEL-parameteren optræder i programkaldet. Den spe- cificerede dumplabel eller en standard label skrives på filen efterfulgt af det aktuelle tidspunkt. Når LAST angiver filnummeret, benyttes den første fil på båndet, der ikke tidligere er blevet anvendt af SAVE. Dumpspecifikationen angiver hvilke katalogindgange og områder, der skal gemmes. Såvel SCOPE-puljer som enkelt navne kan angives. Udelades dumpspecifikationen, gemmes LOGIN-puljen. SAVE udskriver en oversigt over de gemte katalogindgange og om- råder på CURRENT OUTPUT FILE. T_ F_E_J_L_:_ Efter fremkomsten af een af de tre første udskrifter i nedenstå- &_ ende liste, afbrydes programmet, og båndet er uberørt. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx SAVE ERROR IN TAPEPARAM parametre' De fejlagtige og de resterende båndparametre udskrives, og &_ programmet afbrydes. \f T_ xxx SAVE ERROR PARAM parametre' De fejlagtige og de resterende parametre udskrives, og &_ programmet afbrydes. T_ xxx SAVE DUMPLABEL specifikation' &_ Den specificerede dumplabel er ulovlig. T_ navn' ENTRY IN USE &_ Den specificerede katalogindgang blev benyttet af en anden og kunne derfor ikke gemmes. T_ navn' NOT ALLOWED &_ Den specificerede katalogindgang må ikke gemmes. T_ xxx NOT FOUND: navn' &_ Den angivne katalogindgang findes ikke. T_ xxx SAVE NOT OK antal fejl' &_ Denne udskrift fremkommer, når der er registreret fejl. T_ 10.1.5. L_o_a_d_._ Med LOAD-programmet retableres katalogindgange og områder, der er gemt med SAVE-programmet. E_k_s_e_m_p_e_l_ _1_0_._5_:_ load mt123456.1 load mt123456.last load mt123456.1 scope.temp load mt123456.1 scope.user datal data2 load mt123456.1 load.no &_ load mt123456.last survey.yes T_ P_R_O_G_R_A_M_K_A_L_D_:_ &_ load båndspec.' dumpspec.' speciel param' båndspec.'::=båndnavn'.filnr' filnr'::= last heltal'\f T_ 4N dumpspec.'::= scope.scopeangivelse' 0 navn' 0 &_ T_ temp scopeangivelse'::= login user &_ project T_ 1 1 &_special param'::= load.no 0 survey.yes0 T_ F_U_N_K_T_I_O_N_:_ De i dumpspecifikationen anførte katalogindgange og områder reta- &_ bleres fra det specificerede magnetbånd. I båndspecifikationen anføres såvel båndnavn som filnummer. Udelades dumpspecifikation- en, retableres hele filen, ellers retableres de angivne SCOPE- puljer, katalogindgange og områder. En oversigt over de retable- rede katalogindgange udskrives på CURRENT OUTPUT FILE. Når LOAD.NO parameteren anføres, foretages ingen retablering, men kørselsrapporten udskrives. T_ Anvendes parameteren SURVEY.YES, udskrives oversigter over ind- hold et af samtlige filer fra 1 til og med den angivne. Kun den første fil retableres, hvilket dog kan undertrykkes med LOAD.NO. T_ F_E_J_L_:_ Efter fremkomsten af een af de tre første udskrifter i nedenstå- &_ ende liste afbrydes programmet. T_ F_E_J_L_U_D_S_K_R_I_F_T_E_R_:_ xxx LOAD: ERROR IN TAPEPARAM parametre' En fejlramt båndparameter samt de resterende parametre ud- &_ skrives. T_ xxx LOAD: ERROR IN PARAM parametre' &_ En fejlramt parameter samt de resterende parametre udskrives. \f T_ xxx LOAD: NO DUMPLABEL ON FILE filnr' &_ Den specificerede fil er ikke genereret med SAVE-programmet. T_ xxx navn' MONITOR heltal' RESULT helftal' årstal' Den specificerede katalogindgang kunne ikke retableres af den &_ anførte grund. T_ xxx NOT FOUND navn' &_ Den anførte katalogindgang findes ikke på filen. T_ xxx LOAD NOT OK antal fejl' &_ Denne udskrift fremkommer, når der er registreret fejl. T_ 10.1.6 O_p_g_a_v_e_ _1_0_._7_:_ Skriv et job, der kan undersøge hvilke katalogindgange, der er &_ gemt på magnetbånd MT123456 med SAVE-programmet. T_ O_p_g_a_v_e_ _1_0_._8_:_ Lav en sikkerhedskopi af katalogindgangene TXT, DATA, PROGRAM og &_ PDATA på fil 7 på magnetbånd MT 123456. T_10.2 Udskrivning Uddata i CURRENT OUTPUT FILE kan på en pæn måde adskilles med HEAD-programmet, og ved hjælp af HEADPUNCH-programmet udskrives &_ læsbare tegn på perforatoren. T_ 10.2.1 H_e_a_d_._ Med HEAD-programmet udskrives sideskift, jobnavn, dato, klokke- slet og jobbets forbrugte cputid på CURRENT OUTPUT FILE. E_k_s_e_m_p_e_l_:_ _1_0_._6_ head 1 cpu Der udskrives 1 sideskift, jobnavn, dato, &_ klokkeslet og forbrugt cputid. \f T_ head sp' heltal' 2 sp' cpu 0 Når der er angivet et heltal, udskrives det specificerede antal sideskiftkarakterer. Herefter udskrives jobnavn, dato og klokke- slet. Anføres CPU, udskrives endvidere jobbets cputidsforbrug. Ud skrivningen foretages på CURRENT OUTPUT FILE. T_ E_k_s_e_m_p_e_l_ _1_0_._7_:_ pl head 1 &_ p2 Udskrifterne fra P1 og P2 adskilles ved kald af HEAD. T_ F_E_J_L_M_E_D_D_E_L_E_L_S_E_:_ xxx HEAD PARAM parameter' &_ Parameterfejl i programkaldet. T_ 10.2.2 H_e_a_d_p_u_n_c_h_._ Med HEADPUNCH-programmet udskrives læsbare tekster på perforator- en, og den samme information udskrives på CURRENT OUTPUT FILE. E_k_s_e_m_p_e_l_ _1_0_._8_:_ headpunch strimmel 1 På læsbar form udskrives "strimmel 1" på per- foratoren, og teksten udskrives på CURRENT &_ OUTPUT FILE. T_ P_R_O_G_R_A_M_K_A_L_D_:_ 1 &_ headpunch tekst' 0 Teksten skal naturligvis overholde den generelle FP-syntaks. Den anførte tekst udskrives såvel på CURRENT OUTPUT FILE som på perforatoren, hvor den fremkommer på læsbar form. Endvidere ud- skrives jobnavnet og klokkeslettet.\f T_ F_E_J_L_M_E_D_D_E_L_E_L_S_E_:_ xxx HEADPUNCH CALL &_ Venstreside optræder i programkaldet. T_ xxx HEADPUNCH CONNECT TPN &_ Perforatoren kunne ikke tilknyttes.\f F_ 11 AFSLUTNING. En række interessante forhold er ikke blevet beskrevet i de før- ste kapitler, da kendskab til disse ikke har været strengt nød- vendigt for at kunne bruge datamaten. I dette kapitel 4 beskrives 3 forskellige forhold, der dels belyser udnyttelsen af datamaten og dels belyser mulighederne for at udbygge basisprogrammellet. T_ 11.1 Virtuelt lager. ALGOL/FORTRAN programmer udnytter arbejdslageret virtuelt, så det &_ kun er nødvendigt at have ganske få programafsnit i arbejdslageret ad gangen. Programmer er opdelt i segmenter på 256 maskininstruk- tioner, og det kræves blot, at der er plads til 2 programsegmenter i arbejdslageret ad gangen. Når der er behov for et programseg- ment, der ikke er til stede i arbejdslageret, indlæses det auto- matisk, hvorved et andet muligvis overskrives. Figur 11.1 viser et øjebliksbillede af en intern proces, der foruden selve program- met også rummer FP, FP"s kommandostak samt zonerne IN og OUT. \f F_ FIGUR 11.1 FP PROGRAM ADMINISTRATION PRO- GRAM- SEG- MENTER PROGRAM VARIABLE FP- KOMMANDO STAK IN OUT \f F_ Zonerne IN og OUT, FP og kommandostakken samt programadministra- tionen optager ca. 5000 halvord afhængig af kommandostakken og programstørrelsen. I RUNNING SYSTEM, som programadministrations- delen kaldes, findes en tabel over samtlige programsegmenters placering i eller uden for arbejdslageret. Til hvert segment op- tages et ord i tabellen, så variationerne i tabelstørrelsen er beskedne. Det er klart, at udførelsestiden vokser betydeligt, hvis der u- standseligt skal indlæses programsegmenter, og hver udførelse af- sluttes derfor med en udskrift om det udførte antal programseg- mentoverførsler. T_ E_k_s_e_m_p_e_l_ _1_1_._1_:_ u END 300 &_ Der er udført 300 programsegmentoverførsler. Den optimale processtørrelse bestemmes lettest ved at afvikle et program i forskellige processtørrelser og sammenligne antallet af programsegmentoverførsler med antallet af segmenter i programmet, som udskrives af oversætteren. T_ 11.2 Flere operativsystemer Procesbegrebet gør det muligt på en simpel måde at implementere &_ flere operativsystemer. \f T_ Figur 11.2 S BOSS P &_ A B Figur 11.2 viser proceshierarkiet, når der foruden BOSS findes et operativsystem P, der befinder sig på samme niveau som BOSS. Et sådant operativsystem kan f.eks. tænkes at betjene en klynge ter- minaler til real time inddatering eller forespørgsel. Forskellige operativsystemer er i tidens løb blevet udviklet til helt speci- fikke formål, og investeringerne har været forholdsvis begræn- sede, da MONITOR kan understøtte alle interne processer, og da der kan sendes meddelelser mellem processerne. Det andet operativsystem kan således sende meddelelse til BOSS og få BOSS til at udføre forskellige ting, f.eks. afvikle et job. T_ 11.3 Flere Datamater. Flere datamater kan kobles sammen via et RCNET, der bestyres af &_ et sæt minicomputere. Når en terminal tages i anvendelse, oprette en forbindelse (LINK) til den ønskede datamat. En intern proces i en datamat kan via RCNETTET kommunikere med en anden datamat, der er tilsluttet nettet. Dataoverførslerne vil normalt følge den kor- teste rute, eller den mindst trafikerede rute, men i tilfælde af udfald omdirigeres trafikken automatisk. \f Figure 11.3 illustrerer et RCNET, der sammenkobler 2 RC8000 data- mater og en fremmed datamat. Foran hver RC8000 findes en FRONT END minicomputer, og hver knude i RCNETTET består af en selvstæn- dig minicomputer. \f F_ Figur 11.3 RC 8000 FRONT END TERMINAL TERMINAL FRONT END RC 8000 DATAMAT \f F_ 12 OPGAVELØSNINGER. T_ O_p_g_a_v_e_ _3_._1_:_ Småjob ønskes sædvanligvis højt prioriteret. Dette kan ske ved at lade prioriteten være omvendt proportional med den estimerede kø- retid. &_ prioritet= 1/estimeret køretid Udvælgelsen af de job, der skal afvikles, er nu simpel, idet man blot skal tage hensyn til, at det nødvendige antal båndstationer er til rådighed. T_ En mere retfærdig afvikling opnås, når den estimerede restkøretid anvendes ved prioriteringsberegningen. &_ prioritet= 1/(estimeret køretid - forbrugt køretid) T_ Ved at lade prioriteten være ligefrem proportional med den tid, et job har ventet på at blive afviklet, sikres, at et job altid vil blive afviklet. prioritet= (klokkeslet-ankomsttid) /(estimeret tid- &_ forbrugttid) Prioriteringsalgoritmen indebærer, at et kørende job kan afbrydes til fordel for et højere prioriteret job. Det afbrudte job gemmes (swopped) på baggrundslageret og drages atter frem, når det har opnået tilstrækkelig høj prioritet. T_ O_p_g_a_v_e_ _3_._2_:_ 10 u=algol list.yes &_ 15 begin 20 integer sum,a,b; 25 read (in,a,b); 26 sum:= a+b; 30 write (out,sum); 40 end\f En tom linie er en linie uden indhold, hvilket kan indtastes ved at angive linienummer og mellemslag. T_ O_p_g_a_v_e_ _3_._3_:_ 20/a/salg 25/a,/salg, &_ 26/a/salg T_ O_p_g_a_v_e_ _3_._4_:_ 1 1 verify linienummer' antal linier' 0 0 T_ O_p_g_a_v_e_ _3_._5_:_ get programtext &_ verify 5 p=algol 40 p 50 finis save programtext T_ O_p_g_a_v_e_ _3_._6_:_ get text &_ list T_ O_p_g_a_v_e_ _3_._7_:_ 10 begin &_ 20 write(out,:opgave 3.7:') 30 end save programtext clear 10 u=algol programtekst 20 u 30 finis go \f T_ O_p_g_a_v_e_ _3_._8_:_ save rcjob &_ convert rcjob T_ O_p_g_a_v_e_ _3_._9_:_ 10 u=algol &_ 20 begin integer a; 30 read(in,a);write(out,a); 40 end 12' 1010 u 1020 7 1030 finis T_ O_p_g_a_v_e_ _4_._1_:_ 9data Navnet indledes fejlagtigt med et ciffer. da ta Mellemslag må ikke indgå i navnet. debitorregister Der indgår mere end 11 tegn i navnet. &_ Data Store bogstaver må ikke indgå i navnet. T_ O_p_g_a_v_e_ _4_._2_:_ 1 SYSTEM-puljen. 2 SYSTEM- og PROJECT-puljen. &_ 3 SYSTEM- , PROJECT- og USER-puljen. T_ O_p_g_a_v_e_ _4_._3_:_ &_ SYSTEM-puljen. T_ O_p_g_a_v_e_ _4_._4_:_ I PROJECT-puljen fjernes DATA, hvorefter katalogindgangen DATA &_ overføres fra LOGIN-puljen til PROJECT-puljen. USER-puljen er nu den første pulje, der indeholder navnet DATA, og denne katalog- indgang overføres til LOGIN-puljen. T_ O_p_g_a_v_e_ _4_._5_:_ rename data datal scope project data &_ rename datal data \f T_ O_p_g_a_v_e_ _4_._6_:_ lookup login rcdata lookup user rcdata &_ lookup project rcdata T_ 10 lookup rcdata &_ 20 finis T_ O_p_g_a_v_e_ _4_._7_:_ 10 x=set 18 20 scope login x &_ 30 finis T_ O_p_g_a_v_e_ _4_._8_:_ Anbring katalogindgangen i PROJECT-puljen, og den er tilgængelig &_ for samtlige medlemmer i projektet. T_ O_p_g_a_v_e_ _4_._9_:_ KATALOGNØGLE. 0 Temporær. 1 Ubenyttet. 2 LOGIN. &_ 3 Permanent. Nedre og øvre base bestemmer et interval, og det er således, at intervallene er indesluttet i hinanden. T_ PROJECT USER &_ TEMP/LOGIN LOGIN og TEMP katalogindgange har samme base. Et job har adgang til en katalogindgang, når dens base omslutter intervallet, der udgør basen for jobbets temporære katalogindgan- ge. \f T_ IKKE ADGANG ADGANG BASE &_ TEMP BASE Da 2 forskellige projekter kun har system områderne fælles, er PROJECT-baserne disjunkte intervaller. T_ PROJECT 1 PROJECT 2 PROJECT USER &_ TEMP/LOGIN T_ O_p_g_a_v_e_ _4_._1_0_:_ &_ 1 save områdenavn' kitnavn' 0 Udelades kitnavnet anvendes systemdiscen. T_ O_p_g_a_v_e_ _6_._1_:_ 1. YES.NO er ulovligt. &_ 2. 2 er ikke et lovligt navn. 3. 3 er ikke et lovligt programnavn. 4. 9000000 er et ulovligt tal. 5. Programtekst er et ulovligt navn (12 bogstaver). T_ O_p_g_a_v_e_ _6_._2_:_ 10 (p=algol &_ 20 p 30 finis) 40 begin integer a,b; 50 read(in,a,b); 60 write(out,a,b); 70 end 80 3 4 Når jobbet udføres, læses den sammensatte kommando af FP. ALGOL aktiveres og læser de følgende linier (40, 50, 60 og 70). Det\f oversatte program aktiveres og læser linie 80. FINIS aktiveres, og jobbet afbrydes. Adskillelsen af kommandoer og datalinier indebærer, at FP læser den første del af JOBFILEN, og den resterende del læses af pro- grammerne. I fejlsituationer giver dette en stor fordel, da det herved undgås, at FP forsøger at fortolke datalinier som komman- doer. T_ O_p_g_a_v_e_ _6_._3_:_ Anvendelsen af UD afsluttes ved at vælge en ny fil til CURRENTOUT- PUT FILE, og den nødvendige END OF MEDIUM karakter bliver indsat. &_ O_p_g_a_v_e_ _6_._4_:_ (o uddata &_ p=algol (i inddata p end) o c convert uddata finis ) begin integer a,b; read (in,a,b); write (out, a,b); end (i inddata p end) kan erstattes af programkaldet: p inddata da det er en konvention, at det første element i parameterlisten vælges til CURRENT INPUT FILE, når det består af et navn. Det af- stakkes ved programafslutning. \f O_p_g_a_v_e_ _6_._5_:_ i koml &_ u= algol txt i kom2 o udfil u data o c convert udfil finis T_ O_p_g_a_v_e_ _6_._6_:_ I første tilfælde udføres oversættelserne i rækkefølgen u=algol txt1 &_ p=algol txt2 I andet tilfælde er rækkefølgen omvendt, da den sammensatte kommando bevirker en stakning af CURRENT INPUT FILE. T_ O_p_g_a_v_e_ _6_._7_:_ u= algol text if ok.yes u &_ finis T_ O_p_g_a_v_e_ _6_._8_:_ u= algol text &_ if warning.yes (uddata=set 100 o uddata u= algol text list.yes xref.yes o c convert uddata ) if ok.yes u finis \f O_p_g_a_v_e_ _6_._9_:_ u= algol text &_ if warning.yes (uddata=set 100 o uddata u= algol text list.yes xref.yes o c convert uddata finis) if ok.no (repeat 6 u) finis T_ O_p_g_a_v_e_ _6_._1_0_:_ 1. Testprograml består af 12 tegn, og det er den første syntaks- fejl. FP orienterer om, at fejlen er læst fra PRIMÆR INPUT FILE, og FP reinitialiseres herefter. Et tal læses herefter, og &_ der er atter syntaksfejl, da 2 ikke er et programnavn. T_ 2. Fejludskriften fremkommer, da der ingen katalogindgang findes &_ med det anførte navn. T_ 3. Fejludskriften fremkommer, da katalogindgangen med det anførte &_ navn ikke beskriver et program. T_ O_p_g_a_v_e_ _8_._1_:_ &_ 1. Følgende sker: a. Den sammensatte kommando læses. b. TEXT vælges til CURRENT INPUT FILE. c. ALGOL kaldes og læser kildeteksten fra CURRENT INPUT FILE. Det sidst læste ord er END. d. FP læser den næste FP-kommando og giver en fejludskrift, da 7 ikke er en lovlig kommando. e. CURRENT INPUT afstakkes ved læsning af en END OF MEDIUM karakter, og den næste kommando læses fra JOBFILEN.\f f. Det oversatte program kaldes, og det læser 5-tallet og udskriver det. 2. Forløbet fra (1) følges på nær at CURRENT INPUT FILE afstakkes efter ALGOL-oversættelsen, og syvtallet læses ikke. T_ O_p_g_a_v_e_ _8_._2_ pl if ok.yes mode 0.yes p2 if 0.yes ok.yes p3 &_finis T_ O_p_g_a_v_e_ _8_._3_:_ 1 &_ newjob filnavn' printernavn' 0 T_ O_p_g_a_v_e_ _8_._4_:_ 1 1 &_ convert filnavn' printernavn' 0 papirtype' 0 T_ O_p_g_a_v_e_ _9_._1_:_ fil7=set mto mt123456 0 1 o fil7 p=algol text list.yes &_ o c T_ O_p_g_a_v_e_ _9_._2_:_ udfil=set 18 dk123456 scope user udfil &_ udfil=search temp T_ O_p_g_a_v_e_ _9_._3_:_ clear temp data1 data2 data3 data4 data5 data6 clear login datal data2 data3 data4 data5 data6 &_ clear user data1 data2 data3 data4 data5 data6 clear project data1 data2 data3 data4 data5 data6 \f O_p_g_a_v_e_ _1_0_._1_:_ 1. job kc 1234 device punch load tre dl load tre d2 tpe=copy d1 d2 &_ finis 2. job kc 1234 device punch tapes 2 tpe=copy tre tre finis Det første job anbefales af ressourcemæssige grunde. 3. job kc 1234 cbuf 1 load tre dl load tre d2 d3=copy d1 d2 convert d3 finis 4. job kc 1234 device printer tapes 2 lp=copy tre tre finis T_ Job 3 anbefales af ressourcemæssige grunde. O_p_g_a_v_e_ _1_0_._2_:_ &_ MOVE kan ikke kopiere til perforator eller printer. Kopieringen på baggrundslageret kan heller ikke foretages med MOVE, da MOVE overfører hele blokke uden hensyn til END OF MEDIUM karakterer. T_ O_p_g_a_v_e_ _1_0_._3_:_ workfil=set 1 dk123400 workfil=move text clear temp text rename workfil.text O_p_g_a_v_e_ _1_0_._4_:_ frafil=set mto mt123456 0 7 tilfil=set mto mt123400 0 1 &_ tilfil=move frafil.4 T_\f O_p_g_a_v_e_ _1_0_._5_:_ &_ rfil=copy fl 3 f2 T_ O_p_g_a_v_e_ _1_0_._6_:_ 1. job kc 1234 cbuf 5 &_ (repeat 4 h=move uddata convert h) convert uddata finis 2. job rc 1234 cbuf 1 h=copy uddata uddata uddata uddata uddata convert h finis T_ O_p_g_a_v_e_ _1_0_._7_ job kc 1234 stat 1 load mt123456.1 survey.yes load.no &_ finis T_ O_p_g_a_v_e_ _1_0_._8_:_ job kc 1234 stat 1 save mt123456.7 txt data program pdata &_ finis\f 13 INDEKS Accesskode............................. 8.3.4 ACCOUNTFILE............................3.1.2 ALGOL..................................6.4.3 ANCESTOR PROCESS.......................5.1.1.1 Annullationstegn.......................3.4.1 Arbejdsbånd............................8.3.4 AREA...................................5.3.3 Arealproces............................5.1.3, 5.3.3 ATTENTION-signal.......................3.2 AUTOLINE...............................3.6.1 Baggrundslager.........................3.5, 4 Base...................................4.6, 4.6.4 BASISFILE..............................3.4.4 frigivelse af.....................3.4.4.2, 4.4.3 overførsel til....................3.4.5.4 Beskyttelse............................3.3, 4.3, 5.5.2, 8.3.4 Bikatalog..............................4.7 Binærområde............................4.1 BOSS................................... 3, 5, 5.1.1.1, 6.1 dialog med........................8.3 BOSS-kommando.......................... 8.3 AREA.............................. 5.3.3 AUTOLINE..........................3.6.1 BUF...............................5.3.4 CBUF..............................3.6.3 CLEAR.............................3.4.4.2, 4.4.3 CONVERT...........................3.6.4 DEVICE............................3.6.3 DISPLAY...........................3.6.5 GET...............................3.4.4.1 GO................................3.2 INTERNAL..........................5.3.1 KILL..............................3.2 LIST..............................3.4.3.2 LOGOUT............................3.2 LOOKUP............................4.4.4 NEWJOB............................3.6.2 ONLINE............................8.1.5 OUTPUT............................6.3.5 PERM..............................4.8.2 RENAME............................4.4.2.1 \f S_e_c_t_i_o_n_ SAVE..............................3.4.4.3 SCOPE.............................4.4.2.1 SIZE..............................3.6.3 STATIONS..........................3.6.3 TAPES.............................3.6.3 TEMP..............................4.8.1 TIME..............................3.6.3 VERIFY............................3.4.3.1 BOSS kontrolleret......................3.5.4 meddelelser fra...................3.7 Brugeridentifikation...................3.2 Brugerindex............................3.6.2, 3.6.5 BRUGERKATALOG..........................3.1.1 Brugernavn.............................3.3, 3.6.5 BUF....................................5.3.4 Byte...................................3.5.2 Båndnavn...............................8.3.4 Båndnummer.............................8.3.4 Båndstation............................3.5, 3.5.8 C......................................6.3 Cardreader.............................3.5.5 Catalog................................4.7 Catalog entry..........................4.2.1 CBUF...................................3.5.6 CHAINTABLE.............................5.4 CHILD PROCESS..........................5.1.1.1 CLEAR BOSS-kommando.....................3.4.4.2, 4.4.3 hjælpeprogram.....................4.5.3, 9.4 CONVERT BOSS-kommando.....................3.6.4 buffer............................3.5.6 hjælpeprogram.....................8.3.2 COPY...................................10.1.1 CPU-tid................................5.5.1 CRB....................................3.5.5.1 CRC....................................3.5.5.1 CURRENT INPUT FILE.....................6.3, 6.3.1, 8.1.1, 8.1.2 CURRENT OUTPUT FILE....................6.3, 6.3.2, 8.1.3 \f Datahåndtering......................... 7.3, 10 Dataoverførsel.........................5.5.4, 10.1 Dato...................................4.6, 4.6.9 DEVICE BOSS-kommando.....................3.6.3 number............................3.5.4 OPTION............................ 3.5.5, 3.5.6, 3.5.7, 3.5.8 Disc...................................4, 8.3.3 kit...............................4.1 pack..............................4.1 privat............................4.7 system............................4.7 DISPLAY................................3.6.5 Dokument...............................4.6.7 navn..............................4.6.7 EDIT...................................7.3 END....................................8.1.2 END OF MEDIUM..........................4.1 Element................................6.2.1 Enhed nummer............................3.5.4 ydre..............................3.5.4 Fejludskrifter fra FP............................6.5 Fil....................................6.3 FILEDESCRIPTOR.........................7.6 FILE PROCESSOR.........................6, 6.1 FINIS..................................8.3.1.4 FP.....................................6.1 fejludskrifter fra................6.6 FP-kommando............................3.2, 6.2 simpel............................6.2.1 sammensat.........................6.2.2 FPNAMES................................6.5 Funktion hjælp.............................6.1, 6.5 privilegeret......................3.1.1, 3.1.3, 4.2.2 GET....................................3.4.4.1 GO.....................................3.2 \f Halvord................................3.5.2 HEAD................................... catalog entry.....................4.2.1 hjælpeprogram.....................10.2.1 HEADPUNCH..............................10.2.2 Hierarki proces............................5.1.1.1 Hjælpefunktion.........................6.1, 6.5 Hjælpeprogram ALGOL.............................6.4.3 CLEAR.............................4.5.3, 9.4 CONVERT...........................8.3.2 COPY..............................10.1.1 EDIT..............................7.3 END...............................6.3.1, 8.1.2 FINIS.............................8.3.1.4 HEAD..............................10.2.1 HEADPUNCH.........................10.2.2 I.................................6.3.1, 8.1.1 IF................................6.4.2, 8.2.2 KIT...............................8.3.3 LOAD..............................10.1.5 LOOKUP............................4.5.4, 9.5.1 MODE..............................6.4.1, 8.2.1 MOUNT.............................8.3.4.1 MOVE..............................10.1.2 NEWJOB............................8.3.1.3 O.................................6.3.2, 8.1.3 ONLINE............................8.1.5 OPCOMM............................8.3.5.1 OPMESS............................8.3.5.2 PRINT.............................10.2.3 RELEASE...........................8.3.4.2 RENAME............................4.5.2.2, 9.2 REPEAT............................6.4.2, 8.2.3 REPLACE...........................8.3.1.2 SAVE..............................10.1.4 SCOPE.............................4.5.2.1, 9.3 SEARCH............................9.5.2 SET...............................4.5.1, 9.1 Hovedkatalog...........................4.7 Hoved katalogindgang....................4.2.1 \f I......................................6.3.1, 8.1.1 IF.....................................6.4.2, 8.2.2 IN.....................................6.3.3 Index..................................3.2 Indsættelse af linje..........................3.4.2.1 INTERNAL...............................5.3.1 Intern proces..........................5.1.1, 5.3.1 Job....................................3.2, 5.1.1.1 afslutning........................8.3.1.4 afvikling.........................3.1.2 identifikation....................3.5.1 intern............................8.3.1.1 klasse............................3.6.5 kontrolleret......................3.5.4 kø................................3.2 navn..............................3.2, 3.6.5, 5.1.1.1 OFFLINE...........................3.6.7, 8.3.1.1 ONLINE............................8.3.1.1 tilmelding........................3.6.2, 8.3.1.1 JOBFIL.................................3.2 anvendelse af.....................3.3 håndtering........................3.4.4 manipulation......................3.6.1 JOBSPECIFIKATION.......................3.1.1, 8.3.1.1 Jobkontrol.............................7.1, 8 Jobkontrolsprog........................6.4.2 Katalog................................4.2, 5.4 bi................................4.7 hoved.............................4.7 håndtering........................4.2.2, 4.4., 4.5, 7.3, 9 indgang...........................4.2.1, 4.6, 9.1 nøgle.............................4.6 Katalogindgang.........................4.2.1, 4.6, 9.1 anvendelse........................4.6.1 hoved............................. 4.6 krop..............................4.6 oprettelse........................4.4.1, 4.5.1 sletning..........................4.4.3, 4,5,3 ændring...........................4.4.2, 4.5.2 KILL...................................3.2 KIND...................................7.5 KIT....................................4.1\f hjælpeprogram.....................8.3.3 privat............................4.7 Klasse job...............................3.6.5 katalogindgang....................4.2.1 Kommando BOSS..............................3.2, 3.6, 4.4 FP................................3.2, 6.2 Kommandostak...........................6.2.2, 6.3.1,8.2.3 Kommunikation intern............................5.2 Konteringsfil..........................3.1.2 Kontrolpunkt...........................3.6.5 Konvention.............................7.4 Krop katalogindgang....................4.2.1 Linjenummerering.......................3.4.2 LIST bit...............................6.4.1 BOSS-kommando.....................3.4.3.2 LOAD hjælpeprogram.....................10.1.5 specifikation.....................3.5.1, 3.5.5 LOGIN..................................4.3 rutine............................3.2 LOGOUT.................................3.2 LOOKUP BOSS-kommando.....................4.4.4 hjælpeprogram.....................4.5.4, 9.5.1 Læser..................................3.5, 3.5.5 Magnetbånd.............................8.3.4 accesskode........................8.3.4 label.............................8.3.4 navn..............................8.3.4 nummer............................8.3.4 Meddelelser fra BOSS..........................3.7 MESSAGE BUFFER.........................5.2, 5.3.4 MODE...................................7.4 angivelse.........................3.5.5.1 bit...............................6.4.1, 6.4.2, 8.2.1, 8.2.2 Modifikation af linje..........................3.4.2.3 \f MONITOR................................5, 5.1.4, 5.2, 5.4 MODEKIND...............................7.4, 7.5 MOUNT..................................8.3.4.1 MOVE...................................10.1.2 Navn...................................4.1, 4.6, 4.6.5 dokument..........................4.6, 4.6.7 nøgle.............................4.6 område............................4.1 program...........................4.1 ændring af........................4.4.2.2, 4.5.2.2, 9.2, 9.3 NEWJOB BOSS-kommando.....................3.6.2 hjælpeprogram.....................8.3.1.3 Notation...............................3.2, 3.4.3.2 NO ROOM................................3.4.5.3 O......................................6.3.2, 8.1.3 OFFLINE job...............................3.6.7 OK-bit.................................6.4.1 Område.................................4.1 binær.............................4.1 navn..............................4.1 oprettelse af.....................4.4.1, 4.5.1, 9.1 sletning af.......................4.4.3, 4.5.3, 9.4 tekst.............................4.1 ONLINE BOSS-kommando.....................8.1.5 hjælpeprogram.....................8.1.5 ONLINE-kommando........................3.6 OPCOMM.................................8.3.5.1 OPMESS.................................8.3.5.2 Operativsystem.........................3.1, 5, 11.2 Oprettelse af katalogindgang.................4.5.1, 9.1 af område.........................4.4.1, 4.5.1, 9.1 OPTION AREA..............................5.3.3 BUF...............................5.3.4 CBUF..............................3.5.6 DEVICE............................3.5.5, 3.5.6, 3.5.7, 3.5.8 INTERNAL..........................5.3.1 ONLINE............................8.1.5 \f OUTPUT............................6.3.5 PERM..............................4.8.2 SIZE..............................3.5.2 STATIONS..........................3.5.8 TAPES.............................3.5.5 TEMP..............................4.8.1 TIME..............................3.5.2 OPTION-liste...........................3.5.1 Orientering............................3.6.5 OUT....................................6.3.3 OUTPUT.................................6.3.5 Overvågning............................3.1, 5.5.2 Parameter..............................6.2.1 liste.............................6.2.1 PARENT PROCESS.........................5.1.1.1 Perforator.............................3.5.7 Perifer proces.........................5.1.2, 5.3.2 PERM...................................4.8.2 Permanent..............................4.3 Politik................................5.5.5 Privat disc............................4.7 Proces.................................5, 5.1 areal.............................5.1.3, 5.3.3 beskrivelse.......................5 hierarki..........................5.1.1.1 håndtering........................5.1.4 intern............................5.1.1, 5.3.1 navn..............................5.1.1.1, 5.1.2, 5.1.3 perifer...........................5.1.2, 5.3.2 PROCESS ANCESTOR..........................5.1.1.1 CHILD.............................5.1.1.1 PARENT............................5.1.1.1 PRIMOUT................................6.3, 6.3.5, 8.3.1.1 PRIMÆR INPUT FILE......................6.3 PRIMÆR OUTPUT FILE.....................6.3, 6.3.5, 8.3.1.1 PRINT..................................10.2.3 Printer................................8.3.2 Privilegeret funktion..................3.1.1, 3.1.3, 4.2.2 Programafvikling.......................6.1 Projekt................................4.3 \f RC NET.................................11.3 Regnetid...............................3.5, 3.5.3 RELEASE................................8.3.4.2 RENAME BOSS-kommando.....................4.4.2.2 hjælpeprogram.....................4.5.2.2, 9.2 REPEAT.................................6.4.2, 8.2.3 REPLACE................................8.3.1.2 Ressource..............................3.3, 3.5, 4.8, 5.3, 5.5.3 administration....................3.1.1 bestilling........................3.5.1, 3.6.3 Restriktion............................3.6.8 Rettelseskommando......................3.4.2 ROUND ROBIN............................5.1.1.2 RUNNING................................5.1.1.2 s......................................5.1.1.1 SAVE BOSS-kommando.....................3.4.4.3 hjælpeprogram.....................10.1.4 SCOPE..................................4.2.1, 4.3 BOSS-kommando.....................4.4.2.1 bredde............................4.3 diagram...........................4.3 hjælpeprogram.....................4.5.2.1, 9.3 pulje.............................4.3 Scratch tape...........................8.3.4 SEARCH.................................9.5.2 Segment................................4.2.1 SET....................................4.5.1, 9.1 Sikkerhedskopiering....................10.1, 10.1.4, 10.1.5 SIZE...................................3.6.5 Skrivetilladelse.......................4.3 SLICE..................................4.6, 4.6.1 Standardværdi..........................3.1.1 STATIONS...............................3.5.8 Statusord..............................5.2 Størrelse..............................4.6, 4.6.6 System disc............................4.7 TAIL catalog entry.....................4.2.1 TAPES..................................3.5.5 Temporær...............................4.3 \f Tilstand job...............................3.6.5 proces............................5.1.1.2 Tilstandsvariabel......................6.1, 6.4.1 TIME...................................3.5.2 TRE....................................3.5.1.1 TRF....................................3.5.1.1 TRN....................................3.5.1.1 TRO....................................3.5.1.1 Udskrivning af JOBFIL.........................3.4.3 af katalogindgang.................4.4.4, 4.5.4, 9.5 af område.........................3.6.4, 8.3.2 USER...................................4.3 V......................................6.3 Venstreside............................6.2.1 VERIFY.................................3.4.3.1 Virtuelt lager.........................11.1 WAITING................................5.1.1.2 WARNING-bit............................6.4.1 Ydre enhed.............................3.5.4 Zone...................................6.3.3 \f \f «eof»