original 10 − 13 − 0 SECTION 10.2 DIRECTOR CALL PROGRAM 10.2 A. IDENTIFICATION Computer: KDF9 : Program No: KKA0302 Title: DIRECTOR CALL PROGRAM B. GENERAL DESCRIPTION Function: The function of the Director Call Program is to load the required (compiled) Time−Sharing or non−Time− Sharing Director into the machine at the start of a computing session, and to type the identifier of that Director at the head of the log sheet. In addition, the machine is brought to a standard state enabling the Director to function correctly. Input: The input to the program is the call message or “A− block" of the required Director, on paper tape, and its B− and C−blocks, which may be on paper or magnetic tape, in the standard format for compiled programs. The A−block must begin with the four octal characters: O7 02 60 02 if the Director is on paper tape, or 07 02 55 02 if it is on magnetic tape. The next 12 characters are the identifier of the required Director. From 1 to 48 more characters may follow. The last of these mst be octal 75 (EM). All these additional characters are ignored. If the Director is to be read from magnetic tape, the operator will be asked to input (by a Typewriter Query) the number of the unit on which the appropriate tape is loaded. Output: Any output will be on the monitor typewriter. Normally it will only be a copy of the Director's identifier, but in case of failure it will include error indicators. Checks: The following are checked: (a) Parity on input blocks. (b) the format of the A−block. (c) the equivalence of the Director identifier in A− and B−blocks. (d) Longitudinal sum check, if present, on C−blocks. KDF9 (Revised 17.11.66)
original 10 − 14 − 0 SECTION 10.2 10.2 "Call Tape": A complete "Director Call Tape" for a specific Director (on magnetic tape) consists of the Director Call Program, followed by the A−block of the Director (with 3rd character=M) and the standard peripheral unit list for the machine in question (the list is read by the Director, not the Cail Program) « This distinction, between the Call Program and Call Tape, should be noted. C.. METHOD OF USE Input of program: The Call Program is input on the vaner tane reader (see M) by using the "Initial Input" key. It reads the A−block of Director from the same paper tape reader. If this says the Director is on paper tape, the B− and C−blocks are also read from this reader. : Director on If the Director is on magnetic tape, the following Magnetic Tape: query is typed: MT. UNIT NO.; to which the operator mst reply 'dd.→', where dd is the octal number of the unit on which the appropriate tape is mounted. D.− Not relevant. E. PROGRAM CHARACTERISTICS General: The Director Call Program is written for, and compiled by, the "Paper Tape Generator" tsee Section 10.1). It operates in Director Mode. It consists of 3 parts, as follows:- * (1) "Initial Orders" − occupying words 0−8, read in by "Initial Input", and entered at word 0. This part is a rudimentary filler routine used for reading and entering further paper tape blocks. Both the remaining parts are read by this routine. (2) "Setting−Up Routine" − occupying words 9−25 (current version). This routine clears all nests, PHV store and buzzer and sets priority = 0, all 1's in NOL and CPDAR. Finally it clears the first module of the core store (including itself) trom words 9−4095 inclusive. KDF9 (Revised 12.12.65)
original 10 − 15 − 0 Section 10.2(cont.) 10.2 (3) "Director Input Routine" − occupying words 5048−5184 (current version). Format of Director: The B− and C−blocks must be in standard format ~ see Section 22.4 − ise. the B−block is 8 words long, and is read into absolute addresses 0−7, and each C−block is read into absolute addresses determined by a "filler word" at the end of the preceding (B or C−) block. If the longitudinal sum of the C−blocks in included, it is the last word of the last C−block, and its presence is indicated by the less significant half of the first word of the B−block being non−zero. E2 and E3 of the B−block mst contain a copy of the Director's identifier. Note that the Call Program does not check a against the possibility of input blocks which it reads in, actually overwriting the call progam. In practice this means that the C−blocks of any Director must not overwrite words 5048−5184 (this area may expand if different versions of the Call Program evolve). Peripheral Unit List:This list is not read in by the Call Program, but by the Director itself, which must make sure it reads the list from the appropriate unit. Final contents of Unlike the C−blocks produced from Usercode EO−7: programs, the Director's C−blocks may overwrite the B−block, i.e. EO−E7. Unless the C−block overwrites the B−block, the latter's contents will have been modified as follows, before reading in the C−blocks: The contents of EO are transferred to E2. EO and E1 are overwritten by the following 12 instruction syllables: QO; SHI+63; = +Q0; SET B140000; = K1; ERASE; Thus, if a Director is written in Usercode, the above sequence of instructions is obeyed after every interruption, before the jump (originally in EO, now in E2) which leads into the main body of Director. Typing of Director The Director's "A−block" is typed out after its Identifier: B−block has been read (provided the identifier in the B−block agrees with the A−block). KDF9 (Revised 17.11.66)
original 10 − 16 − 0 Section 10−2 (cont. ) 10.2 Entry to Director: When the Director has been successfully input, it is entered by one of the "restart" jumps originally in E4 of the B−block, but now actually stored elsewhere. The instruction which was at syllable 0 (of EA) is obeyed if input was from paper tape, syllable 3 if input was from magnetic tapes When the Director is entered (still in Director mode), (a) All nesting stores and SJNS's are clear. (b) The current nesting store number is 0, and both NS and SJNS are empty. (c) The current priority (on a time−sharing machine) is 0. (d) The NOL register contains "all 1's", and base address = 0. (e) CPDAR (if fitted) contains "all 1's". (f) PHU store (if fitted) is clear at all levels. (g) The flexowriter is not busy. F. COMPUTER REQUIREMENTS AND CONDITIONS Core Store: The call program uses words 0−5184 Peripherals: 1 paper tape reader 1 magnetic tape unit if the Director is stored on magnetic tape Time Sharing: The Call Program will work on a time−sharing or non−time−sharing machine. G. NORMAL OPERATING PROCEDURES 1. Initial Input the Call Program on the PIR. 2. Load the A−block of the required Director in the same reader, an with B and C blocks if on paper tape. 3. 'M.T. UNIT NOo;' is typed. (Magnetic tape input only). Reply 'dde', where dd is the octal number of the magnetic tape unit containing the Director. An incorrect reply causes the query to be repeateds 4. 'M KKTOOD20001U! or a similar message, is typed. The Director C−blocks are then read in and the Director entered. H. NORMAL CORRECTION PROCEDURES Failures are notified by messages on the monitor typewriter, as follows (if a 'loop stop' occurs the input procedure must be restarted from scratch):- KDF9 (Revised 17.11.66)
original 10 − 17 − 0 Section 10.2 (cont.) 10.2 1. 'WRONG A−BLOCK' is typed and the PTR set unready. load the correct A−block and return to step 2 of division G. 2. 'DIRECTOR NOT ON NAMED TAPE'. Return to step 3 of division G. 3. 'A, B DISAGREE' is typed and a 'loop stop' occurs. The program identifiers in the A and B blocks do not agree. 4. 'SUM CHECK FAILS' is typed and a 'loop stop' occurs. The longitudinal sum check fails. 5. 'PARITY' is typed and a 'loop stop' occurs. A parity failure has occurred while reading the A, B or C blocks. J−L Not relevant. M. EXTENSIBILITY The standard version of the Call Program assumes the paper tape reader is Unit 1. It is possible to modify the Call Program to work with any paper tape reader (Unit n, say) by the following amendments: − BEFORE LINE /A/;→ REPLACE 1 LINE BY /A/; Q7; Q7TOQ6; SBTn;=C7; PIAQ7 ;→ BEFORE LINE */PABL/;→ REPLACE 1 LINE BY */PABL/; SYL2,n; SYL2,/J−8/; SYL2,/J−1;→ It is recommended that, if a different paper tape reader is used, the unit number is included in the identifier of the Call Program as its penultimate character, e.g. the current standard version, working with unit 1, has identifier: KKA030200P10 (this does not appear anywhere in the binary version of the program). Note that the Director itself must be separately modified if it is to read the peripheral unit list on any reader other than unit 1. KDF9 (Revised 17.11.66)