original
10 − 69 − 0
SECTION 10.4 STANDARD TIME−SHARING DIRECTOR 10 4
A. IDENTIFICATION
Computer: KDF9
Program No: KKT00
Title: STANDARD TIME−SHARING DIRECTOR
Notation: The contents of the Directors are defined by the
four characters following the KKT of the
identifier.
00Z0 The Standard Director.
Extra bits are added to the 00 immediately
following the KKT to indicate the presence of:-
02 Drum director.
04 R.T.I. facility.
10 Shared Buffer Unit Magnetic Tapes.
B. GENERAL DESCRIPTION
Purpose: The standard time−sharing (TS) Director, like
the standard non−time sharing (NTS) Director
described in Section 10.3, is a control routine,
operating in its own mode, which controls and
monitors the running of all other programs.
Since the TS Director bears many similarities to
the NTS version, and since it is recommended that
only installations and operators with
experience of running the NTS Director should
attempt to run the TS version, this section of
the Manual will generally describe only the
differences between the two versions.
The major difference between the two versions is
that the TS version can control up to four
independent programs, called P, Q, R and S
respectively, running "simultaneously".
It can only be run on a time−sharing machine,
whereas the NTS version can be run on either a
TS or a NTS machine.
Input: As for the NTS Director (Section 10.3).
Output: As for the NTS Director, except that there are
some differences in the monitor typewriter
output (see Division C).
Automatic As for the NTS Director (Section 10.3).
Procedures:
original
10 − 70 − 0
Section 10.4 10.4
C. METHOD OF USE
C1 − General Strategy
Monitor Output: Output on the monitor typewriter is similar to that
obtained with the NTS Director, with some important
differences:-
(a) There is a greater volume, because it relates to
more than one program.
(b) It is handled by means of a 'queue', so that a
typewriter message or query may not be typed out
until some time after it has been placed in the
queue. For instance, a PI reader may have its
'read called' light illuminated long before the
message indicating its allocation appears; or
the 'TINT' message may not appear for some time
after the operator has pressed the Interrupt key.
(c) It is arranged in five columns (using TABs), the
left hand column for messages relating to
Director, and the other four for messages (typed
via OUT 8, stream 0) applicable to programs P, Q,
R and S, respectively. The program's priority
number (see below) is always typed as the first
character in the appropriate column, separated
from the body of the message by a space (Director
messages) or oblique stroke (OUT 8 messages and
queries). Four TAB stops must be set on the
monitor typewriter.
Priority Levels: In a NTS machine, a program wishing to use 'locked
out' core store, or busy peripherals, causes the
machine to wait until the relevant transfer has
finished. In a TS machine, when this happens,
control is transferred to one of the other programs
(unless all 4 programs are held up) so that time is
not wasted.
Which program is entered is decided on a priority
basis. There are 4 priority levels inside the
Machine, each of which can contain one program.
The levels are numbered 0 (highest priority), 45.2
and 3 (lowest priority). The program running at
any time is the highest priority program which is
not held up. Thus, if priority 0 (this is a useful
abbreviation for "the program with priority 0", i.e.
"the program in priority level 0") is held up
waiting for a transfer to end, priority 1 will be
entered, and if that is held up in its turn, priority
2 will be entered. However, as soon as the transfer
holding up priority O ends, priority 0 will be re−
entered, and the program running up to that moment
will be suspended.
(Revised 12.12.65)
original
10−75−06
Section 10.4 10.4
Thus the selection pair to print stream 76 from a
program allocated the letter R will be
36 32
At the start of each program's output, Director will
output a 2−word block. The first word is as defined
above with the exception that the 7th character will
be the actual octal character P,Q,R or S (ise. 60, 61,
62, 63). The second word will be of the form
Ldddddd03
where L is the program letter and dddddd is the serial
number of this program on tape, e.g. the output of the
fifth Q program would be preceded by a two word block
as defined above, with the second word as
Q00000503
the 03 causing a page change when this block is selected.
(The selection characters would be 61 05).
This facility is included in order that the off−line
printer operator can select up to a particular program's
output.
At the start of every stream used by a program, Director
will output 4 extra blocks as defined in 10.3.C1. OUT 8.3
NOTE The two word program header block and the gap/page
change block, written as the first of the 4 extra blocks
written by Director at the start of a stream, are written
as last blocks.
All other blocks are written to end message.
4. At the Termination of a Program
When a program is terminated, a gap/page change block is
output for all streams that have been used by the program
These stream terminator blocks are written as last blocks
If a program has used OUT 8 output to non−zero streams a
message of the form
n OUT 8 L nnnnnnn/oddddad
is typed, giving the serial numbers of the output of pro−
grams allocated the letter L, and the reel number of the
OUT 8 msgnetic tape.
5. Action if OUT 8 Tape is Filled
Tf BIW is detected, or a parity failure occurs on the
OUT 8 tape, Director will write a one word ED last block,
deallocate the tape and claim a continuation reel, labell-
ing it with the next reel number in sequence. It will
then continue writing the output of the current programs.
(Revised 12.12.65)
original
10 − 76 − 0
Section 10.4 10 4
6. Printer Streams
As with the NTS Director, OUT 8 blocks for
printer streams must have the octal character
02 or 03 or 75 as the last character in the
block.
7. Gaps Output in Punch Streams
The rules are as for the NTS Director.
*
8. Close Stream Facility.
A marker is included in the stream header and
terminator last blocks in order that the two are
distinguishable.
To close a non−zero OUT 8 stream:
Entry is to OUT 8 in the normal way with a
parameter in N2 in Q−store format where C = I =
M = the octal stream number of the stream to be
closed.
Invalid parameters in N2 will lead to program
failure 77.
Attempting to close a stream which is not open
(i.e. has not been used) will lead to program
failure 71.
NB Whenever a stream is opened the 4 header blocks
are output, the program identifier being taken
from E2 and E3 of the programs area on each
occasion.
The first and last block of each stream is a
gap/page change block written as a last block.
In order that programs written to process the
OUT 8 tape might more easily distinguish between
the header and terminator blocks the following
change has taken place.
Character 6 of the first word of the block will
be 41 (octal) if it is the header block for a
stream and 72 (octal) if it is the terminator
block for a stream, and not 77 (octal) as stated
in Section 10.2 Appendix 1.
(e) OUT 16 As for the NTS Director except
n10
is typed as opposed to
M10
where n is the priority number of the program
outputting the message.
(Revised 12.11.68)
original
10 − 77 − 0
Section 10.4 10.4
TINTs: These have the same general meanings as for the
NTS Director but there are some additions, and
some differences of detail. In particular, the
program letter is often required in the reply
(see division G). The other differences are as
follows:-
TINT A Unlike the NTS Director, any transfers
in progress will be forcibly terminated,
even if the unit concerned has already
been properly deallocated by the
program, If TINT A is done during
program input, the CRNP number will
depend on the circumstances. (See
Section 10.3, division C)
TINT E A program tape has to be nominated for
A programs and another (possibly the
same one ) for B programs, and the letter
A or B must appear in the reply (see
division G).
TINT G Reply Gn,/n.→ (or Gn.→) to supply the
status of devices n, to n, (or n,) to
the monitor.
TINT J Reply J. or Jn.+rarr;.TINT J will cause any
new programs introduced to the machine
to write their OUT 8 (if any) to the
next OUT 8 reel. When output is
completed to the old reel, an ED will be
written and the tape deallocated.
TINT Jn. will set the stream count to
n (see section J).
TINT M Reply 'MxLy.', x and y being octal
integers, to output, (to a PIP which
will be allocated to Director) y words
beginning at address x in program L.
If L is other than P, Q, R, or S, then
x is assumed to be the absolute
(Director) address x. If y is omitted,
y = 1 is assumed, If no PIP is
available, the message 'TINT M HELD
UP−NO PTP' is typed. All programs
should be suspended before using TINT M,
and it must not be used if Director is
requesting an OUT 8 tape.
TINT P Reply 'Ptt/tt/...+' to respecify the
type numbers of the units to be
preallocated to A programs. The types
of the units should be in the same form
as on initial input of Director (see
division J). A type 2 unit (PTR) will
always be preallocated and need not be
respecified.
KDF9 (Revised 12.11.68)
original
10 − 78 − 0
Section 10.4 10.4
TINT Q Reply Q.→ to give the amount of core available
on the monitor.
TINT R Reply 'RL.−→' to resume program L, after
suspension by TINT S.
TINT S Reply 'SL.−→' to suspend program L, i.e. to
stop obeying it and not to enter it again
until told to resume by TINT R (and then only
when its priority level is entered).
TINT T Reply 'Tn/w.→' to read a B program to priority
n, giving it a store limit of w. The program
will be given the number of words it wants (as
specified by E1) provided this does not exceed
w. If the program does not specify a store
requirement it will be given w words rounded
up to the next multiple of 32. If the '/' is
replaced by 'P' the PTR on which the program
is read is pre−allocated to the program.
If w is omitted, no limit is imposed, but if,
also, the program specifies no store
requirement, the following query is typed
later:-
n L STORE AVAILABLE x;
i.e. x (in decimal) words of store are
immediately assignable to the program in
priority n. The operator must reply with the
(decimal) number of words to be assigned,
i.e. 'y'.→ (y may be greater than x). If
y=0, CRNP failure 6 occurs (see division H).
If y is omitted altogether, the whole store
will be assigned when available. The program
will not be read in until the condition is
satisfied.
If TINT T2.→ is performed and level 2 is
occupied, then the program for input will be
placed on level 3. If level 3 is occupied
then the message TRY−HP (Try higher priority)
will be monitored.
Also
TINT TnLp will cause the (p+1)th program as
mentioned in the call tape (see section 3) to
be placed on level n. (p is an octal digit).
TINT T1L0/12000.→ would cause the first
program mentioned on the call tape to be
searched for on the input medium and placed
on level 1 (or lower if level 1 is occupied)
with a storage allocation of 12000 words. If
the program called by this mechanism is not
on the input medium then CRNP will result.
KDF9 (Revised 12.11.68)
original
10 − 78 − 1
Section 10.4 10 4
TINT U Reply U.→ (or UL. where L can be P, Q,
R or S). This will supply the program
letter, priority, 12 character
identifier, base address, run time and
notional elapse time for all levels (or
individual level).
TINT V Reply 'Vn/m.→' to put the program in
priority level n into priority level m,
and vice versa.
TINT Z Reply Zdd.→, Zdd+.→,Z3dd.→.
TINT Zdd+.→ relabels the tape on unit
dd as a zero. The other two TINT
replies are the same as documented on
page 10−67−0. Answer (c) to TN/IDis
not allowed.
C3 − Input of Programs
General: When the machine wants the next A program, it types,
in thse relevant column, for each type of unit
pre−allocated to A programs
n tt P dd L
i.e. program (letter L, priority n) has device dd of
type tt pre−allocated to it. The following is then
typed:-
n APIU dd L
KDF9 (Revised 12.11.68)
original
10 − 79 − 0
Section 10.4 10.4
i.e. load program (letter L) on the 'A Program Input
Unit' dd into priority n.
B programs can be read only in response to TINT T (see
eel In this case a list of pre−allocated units is
not typed and the 'APIU' message is replaced by
n BPIU dd L
i.e. load program (letter L) on the 'B Program Input
Unit' dd, into priority n.
When the A block of the (A or B) program has been
read, the B and C blocks will be read from paper or
magnetic tape. In the latter case, if no program
tape has been nominated for the type of program (A
or B) being read, then
┌ ┐
│A │
PROG TAPE REQ L/│or│ [prog identifier ]
│B │
└ ┘
is typed in the Director column. The operator can
then either nominate the appropriate tape (using TINT
E), or cancel the request (by TINT A).
The TS Director takes the same action regarding E0
(sum check), and E5 (allocation of program tape to
the program) as the NTS Director. The treatment of
E1 (store limit) will depend on whether an A or B
program is being read (see 'Store and Peripherals for
A Programs', above, and TINT T). However, if E1 is
non−zero, it will not be changed.
When the program has been successfully read in, the
date and time are typed out, as follows:-
n10DD/MM tttt
(M)
n10L (P) <program identifier> + <job number>
(D)
where 10 is the symbol used to prefix information
required for accounting purposes.
The <job number> consists of 11 printable characters
and is only printed if the 17th character of the "A"
block was a '+'.
(e.g.CN CR M CR KKCO1O100UPU + 1234567ABCD)
If the 17th character was not a '+' only the program
identifier will be typed.
KDF9 (Revised 12.12.65)
original
10 − 80 − 0
Section 10.4 10.4
From the way A and B programs are organised, it can be seen that
not more than one A program and one B program can be in the process
of input at any one time. This includes the input of a new program
/section after OUT 1, which may, therefore, have to wait if
program input is already going on at another priority.
Failures in Any failure in the input procedure causes the following to be
Program Input: typed (in the relevant column) :-
n CRNP Fx
i.e. 'Cannot Read New Program' into priority n, where x is the
failure indicator. These are the same as for the NTS Director,
except that x = 0 only applies to B programs and x = 6 means the
program requires more store than is available (see division G).
If A program input fails, a new A program is called for (as in
'Program Input', above); if B program input fails, a TINT T is
needed to input a new B program.
Terminating To terminate A program input, after the 'PIU' message, (if, for:
Program Input: instance, the device is required for B program input) supply a
bogus A block, thus inducing CRNP F2.
B program input can be terminated for the reasons shown in
division H.
C4 − Other Points
Loading and As in NTS Director. The 'tape loaded' and 'tape unloaded'
Unloading messages are always typed in the Director column.
Magnetic Tapes:
Termination of As with the NTS Director, peripheral devices left allocated by
Programs: the program are deallocated, and any magnetic tape deallocated
in this way has its position indicated on the monitor.
The following message is then typed:-
n prog identifier ENDS e
n10 RAN/EL/run time/n.e.t./elapsed time.
i.e. the given program, priority n, finished with ending rumber
e The run time and the elapsed time have the same significance
as on a NTS machine. The 'notional elapsed time' (n.e.t.) which
is based on run time and the time that the program is held up
by. peripheral transfers, is an estimate of the (elapsed) time
the program would have taken on a NTS machine. The ending
numbers have the same meaning as in the NIS Director.
If any lock−outs were present when the program was terminated,
these are indicated by the message.
(Revised 1.4.67)
original
10 − 81 − 0
Section 10.4 10.4
n L−0 ON
Program Program failures are indicated by_the typing of thé
Failures: following (in the relevant column) :-
n L FAILS (indicator)
i.e. program (letter L, priority n) has failed for
the reason given by the indicator. The values of
the indicator are the same as for the NTS Director
but some of them are not included. The 'REACT'
facility is also as for the NTIS Director.
Program Tapes: It is possible to have two program tapes nominated
at any time, one for A programs and one for B programs,
or they can be one and the same tape. In the latter
case, the nomination of the tape must be performed
twice, once for A programs and once for B programs.
If a program has the program tape allocated to it and
another program is called for, the PROG TAPE REQ mes−
sage will be typed.
There is no difference in the format of programs, on
paper and magnetic tape, between those to be run with
the TS Director and those to be run with the NTS
Director.
D. Not relevant.
E. PROGRAM CHARACTERISTICS
General: The standard time−sharing Director is an autonomous,
non−segmented program, written in Usercode.
Initial Input (See also division J for operating procedure). As
Procedure: with the NTS Director, the call program reads in the
Director's A−block, which in turn reads in the B and
C blocks. (The same call program is used for both
NTS and TS Directors). The peripheral list (as for
the NTS Director) is then read, and the number of core
modules is asked for on the monitor typewriter. Next
follow the details of the A programs configuration,
the date and time. The Director then calls for the
first A program, if any A levels have been specified.
Organisation Director keeps a list of peripheral units, which
of Peripheral consists of "descriptors". These are words which,
Devices: when typed, give the type number, status letter, wit
number and, where appropriate, a program letter (ive.
P, Q, R, or S, or D for Director).
KDF9 (Revised 12.12.65)
original
10 = 82 − 0
Section 10.4 10.4
(a) Magnetic tape units are dealt with in the same
way as in the NTS system, and have 4 of the same
status letters. These are?
U Unloaded
L Loaded
C Claimed (i.e. allocated to program or
Director)
W 'Waiting'
Initially, each magnetic tape unit is U. When
loaded with a tape, it becomes for a short time W,
and then L. When a loaded tape unit is allocated
to a program, the unit becomes C. When a tape on
a C unit is deallocated, the unit becomes W for a
short time before becoming U. The W status is a
sort of "amber light" condition preventing inter−
ference with the unit during reading of label
blocks, rewinding, etc.
(b) Other units have 3 status letters. These aret~
U Unloaded
P Pre−allocated
A Allocated
When a unit is U, it is immediately available to
become either P or A. When a unit is P toa
program, that program's letter appears in the
descriptor, and only to that program can the unit
become Ao The program cannot use the unit until
it has been allocated. When a unit is A toa
program, that program's letter appears in the des-
criptor and the program may use the unit.
Units become U,
(1) When Director is first read in.
(2) When deallocated by a B program, provided that
the allocation was not done by OUT 5* (ices
OUT 5 with 8 added to the type number in N2).
(3) When de−allocated by Director after TINT M
(applies to output unit only).
Pre−allocated Units become P,
Units:
(1) When an A program is read in,
if they are part of the set of
units belonging to that program
(this set consisting of the
units belonging to the A program
just finished, whose termination
caused this program to be read in).
KDF9 (Revised 12.12.65)
original
10 − 83 − 0
Section 10.4 10.4
(2) When de−allocated by an A program.
(3) When de−allocated by A B program,
if the allocation was done by OUT
5*.
(4) (Applies to PIR only) when a B
program is read in. The TINT
can be used to specify that the
PIR, on which the program is
read, remains pre−allocated to
the program.
Allocated Units become A when allocated to any
Units: program by OUT 5 (including OUT *),
or when allocated to Director itself
for its own use.
Typical descriptors, with their meanings, are:
02U01 PIR, unit no. 1, is unloaded.
03P05R Line printer, unit noe 5, is pre−allocated to
program R.
01A03D PTP, unit no. 3, is ellocated to Director (during
TINT M, say).
O2A02P PIR, unit no. 2, is allocated to program P.
02U01Q PIR, unit no. 1, is being used to input program Q.
10L14S MT, unit no. 14, is being used to input program S.
(Can only occur after TINT G).
Program The part of the core store which a program occupies −
Storage: always a continuous area, and a multiple of 52 words
beginning at an absolute address, which is also a mul−
tiple of 32 − is said to be "assigned" to the programs
The total area available for assignment to programs
extends from the very top (highest numbered address)
of the store, down to the lowest word in the store which
is not part of the Director, and whose address is a mul−
tiple of 32.
"A" programs are stored at the top of this area, and B
programs at the bottom, next to Director. The Director
constantly inspects the store assignments to ensure that
programs are packed tightly next to one another, and to
the limits of the available area... As a result of this
it is necessary, from time to time, for the Director to
physically move programs in the store. This always in−
volves moving a program − that is, the whole of the area
assigned to a program ~− into a vacant, unassigned area nextito
it; there is no. question of ever. interchanging the loca−
tions of two programs, nor do programs "leapfrog" over
one another. The effect is of "sliding" programs up or
down the store, according to whether they are A or B
respectively.
(Revised 12.12.65)
original
10 − 84 − 0 10.4
Section 10.4
The "Hole": This ensures that whatever space becomes vacant, as
programs expire, accumulates in the middle, between
the B and A programs. New programs are input to
this area, known as the "Hole in the middle", or
simply the "Hole".
Input of B A "B" program, whose input at a nominated priority is
Programs: initiated by a TINT T, will be read into the bottom
end of the Hole. As soon as there are available a
paper tape reader not required by a higher priority,
and 32 words of store in the Hole, this area is assigned
to the program. The A and B−blocks are then read in.
Subsequently, the amount of store indicated by the
store requirement in the B−block will be obtained by
assigning any vacant storage as soon as it becomes
available in the Hole (provided it is not required
by A program input at a higher priority) until the
requisite amount has been assigned. Then the C−
blocks can be read in and the program will start.
During the delay that there may be whilst the program
is waiting to obtain enough store, or between the
input of C−blocks, the assigned area may be moved
down the store to take over space vacated by other B
programs which have terminated, in the way already
described.
The priority nominated for the input of a B program
may be one of those nominated for A programs. In
this case, that priority ceases to be "A" for the
duration of the program.
Input of Director will call for the input of an A program when ey
A programs: the following circumstances obtain:-
(a) A vacant A priority is available which is lower
than all those currently occupies by A programs.
and (b) the A program peripheral requirement can be
satisfied.
and (c) there is enough space in the Hole to meet the
pre−ordained A program storage requirement.
This required amount of store, from the upper limit
of the Hole downwards, is assigned before starting to
read in the A program (ulike the procedure described
above for B programs, which starts with only 32 words
assigned). Once the B−block has been read, this area
may be contracted (from the top downwards) if the
actual store requirement is less than the amount
assigned: the vacant space thus created will be aN
transferred to the Hole by the normal program−moving
procedure.
(Revised 12.12.65)
original
10 − 85 − 0 10.4
Section 10.4
Note that core storage ceases to be "vacant" as soon
as it has been assi−ned for program input, and is
therefore liable to be "slid" up or dow the store
before the program to occupy it has been read.
However, an assigned area can only be moved when there
are no peripheral lock−outs set on it.
Change of Store The case described above, when the store area assigned
Assigned: to a B program "expands", between reading the B and C−
blocks, from 32 words to the requisite number, is the
only one which ever involves increasing the amount of
store belongins to a program: it is the only case where
there is a vacant area, i.e. the Hole, to expand into.
The area assigned to a program may be decreased on three
occasions: firstly, in the case already described, where
an A program's store requiremattis less than the amount
pre−assigned for reading it in; secondly, when a program
obeys OUT 1; and thirdly, when a program obeys OUI 2.
In the last two cases, the new program/ section and its
predecessor have the same EO, and the contents of any
part of the store common to both old and new program/
sections are unaltered (provided, of course, that in
the case of OU! 1, they have not been overwritten by
the latter). But the new program/section must not
demand more store space than the old: if it does,
failure occurs (CRNP F6). If the new program/section
has a blank store requirement, it is given exactly the
same assignment as its predecessor. If the new progr
section requires less space, it is allocated just the
amount it requires. The vacant space thus created will
be transferred to the Hole by the normal program−moving
procedure.
The new program/section has the same priority, and the
same A/B characteristic, as the old one, and, for an A
program, is pre−allocated the same peripheral units.
Interrupts: These occur for the same reasons as in the NTS Director,
but there is one more. It is as follows:-
PR. This occurs when a transfer, which was holding up
a program, terminates.
The diagram given in 10.3E applies similarly to the TS
Director but, before setting up the program for re−
entry, the Director has to decide which program it is
going to enter (both on the short and long paths).
F. COMPUTER REQUIREMENTS AND CONDITIONS
Core Store: The TS Director works out its own size and this figure
is output whenever Director is read in (see division J).
It can be used on any size of machine since the available
store is specified as input during the 'Initial Input'
procedure.
(Revised 12.12.65)
original
10 − 86 − 0
Section 10.4 10 4
Nesting Store: Interrupts do not, effectively, use any cells.
Programs may therefore use 16).
SJNS: Interrupts use, effectively, one cell.
(Programs may therefore use 15 cells).
Q−stores: Any Q−stores used during interrupts have their
contents preserved by Director.
Peripherals: The TS Director can handle any configuration of
unlabelled devices (i.e. those allocated by OUT 5)
this being specified during the 'Initial Input'
procedure. Basically, the TS Director requires
one PTR for each A priority level specified.
Time−sharing: The TS Director can only be run on a machine with
the time−sharing facility.
G. NORMAL OPERATING PROCEDURES
Typewriter Interruptions
On pressing the typewriter 'Interrupt' key,
TINT;
will be typed (possibly after an interval). An invalid answer
causes
AGAIN
TINT;
to be typed. In either case a valid answer is one of the following
(no 'underline's should be typed − they simply indicate that the
symbol shown represents one of a number of possibilities) :-
AL.→ Terminate program, letter L, or terminate program
input.
AL.→ Terminate program, letter L; SINS, N1,N2 and cell
count are typed, where needed.
BLn.→ Read octal integer n (up to 8 digits) to less
significant half of EO of program L.
EddA.→ Nominate the magnetic tape loaded on unit dd for
the input of A programs.
ddEB.→ Nominate the magnetic tape loaded on unit dd for
the input of B programs. s
F.→ Dummy (used if interrupt key pressed in error).
Gn1.or Gn1/n2.→ Type peripheral unit list device 1 (to n2)
H.→ Repeat list of "wanted" identifiers.
IL0.→ Even restart for program L.
IL0.→ Odd restart for program L.
KDF9 (Revised 12.11.68)
original
10 − 87 − O
Section 10.4 10 4
J.→ Jn.→ See Division TINTS
Ldd/tt.→ Change unit dd to type tt. If tt = 0, unit is
deleted from unit list.
Mx [sep] y.→ Post mortem on paper tape punch in syllabic
octal, x and y being octal integers. y words
are output, starting at address x. If y is
omitted, y = 1 is understood. If [sep] =, the
base address of program L is added to x. Any
other [sep] (e.g. "/") gives the absolute
(Director) address x. If no PIP is available
the message 'TINT M HELD UP−NO PTP' is typed.
All programs should be suspended before using
TINT M, and it mst not be used if Director is
requesting an OUT 8 tape.
Ptt/......→ Respecify type numbers, tt, of units preallocated
to A programs. A type 2 unit will always be
preallocated and need not be respecified.
Q.→ Type Store Available.
RL.→ Resume program L (after suspension).
SL.→ Suspend program L.
Tn/w.→ Read B program to priority n, giving it store
limit of w words. If w is omitted, no limit is
imposed, but if also the program specifies no
store requirement the 'nL STORE AVAILABLE x;'
query is typed (see below). If the"/" is
replaced by "P", the PTR on which the program is
read is preallocated to the program.
U.→ or U1.→ See Division TINTS.
Vn/m.→ Put program in priority level n into priority
level m, and vice versa. The program letters
remain unchanged.
Zdd.→,Zdd+.→ See Division TINTS.
23dd.→
Other Monitor Indications
This is a list of the monitor messages which may be typed and which do
not fall under the other headings of divisions G and H.
ttSddL Device dd, of type tt, is of status S and refers
to program L (L = P,Q,R,S, or D for Director).
L may be omitted.
WANTED BY L <iiiiiiii> A program requires a tape with the given identi−
fier. The request is repeated every time a tape
or achieves status L (loaded), and the newly loaded
WANTED BY L tape does not contain the 'wanted' identifier;
<tiiiiiiiiiiiiiii> or after TINT H.
KDF9 (Revised 12.11.68)
original
10 − 88 − 0
Section 10.4 10 4
10Lnn<identifier tape serial no.) This is typed when a tape is loaded.
n10CnnL.→ This is typed in the relevant program column,
when a tape is claimed.
10Lnnidentifier Occurs after TINT G − the given tape is loaded
on unit mn,
10Unn This is typed when a tape is unloaded.
PARITY Parity failure detected by Director on a tape
unit (the message is typed after a magnetic tape
descriptor).
10Wdd nnnnnBL When a program was terminated the tape unit dd
was positioned immediately before block nnnnn,
┌ ┐ the label block being block 00001.
│A │
PROG TAPE REQ L │or│ [prog identifier Director requires a program
│B │ tape containing the program specified.
└ ┘
n10DD/MM tttt The given program, letter
(M) L, priority n, started at
n10L (P)<program identifier> + <job number> time tttt on date DD/M.
(D) The message is typed in
the appropriate program
column.
LINK→(ADDRESS) )
SJNS→(address) )
etc. ) Messages indicating the contents of stores on
N.1→(contents) ) termination of a program.
N.2→(contents) )
CELLS+n )
N.1→CLEARED )
n prog identifier ENDS e ) The given program, priority n,
n10 RAN/EL/run time/n.e.t/elapsed time) finished with ending number e,
with run time, 'notional
elapsed time', and elapsed time,
as shown. The ending numbers
are the same as for the NTS
Director.
n L−O ON When a program terminated there was at least one
area of store locked out.
nL STORE AVAILABLE x; Reply with (decimal) number of words to be
assigned (see TINT T) i.e. 'y.'. If y = 0, CRNP F6
occurs (see division H). If y is omitted, the
whole store is assigned, when available.
nL AWAITS TYPE tt Program L (a B program) has tried to allocate to
itself a unit of type tt, but none is available.
Terminate the program Tor another B program, to
free a device of type tt) or let it wait.
KDF9 (Revised 12.11.68)
original
10 − 91 −0
Section 10.4 10.4
Other Failures
'FAIL' followed by the contents of a block (e.g. 10/13−) and loop stop,
during initial input of Director, means the block in the list of
peripheral units is unacceptable. Re−input Director.
ABNORMAL OPERATING PROCEDURES
Initial Input of Director
1. Initial Input the Director 'Call Program', identifier KKA030101P1U,
see Section 10:2.
2. Read in the Director A−block (3rd character = P or M accordingly) and
the B and C blocks, if being read from paper tape.
3. 'M.T. UNIT NO.;'is typed if the Director is to be read from magnetic
tape. Reply 'dd.→', where dd is the (octal) device number of the
marnetic tape unit loaded with the tape containin;s Director.
4. 'M (or P)
KKTOOD20201U
TIME SHARING DIRECTOR 2048 WORDS!
or a similar messase, is typed.
5. Read in the list of peripheral units, from paper tapee The format
is described in Section 10.3, division E.
6. The list of units is typed, es:
02U01
01003
etc.
7. 'CORE MODULES;' is typed. Reply 'n.→', where n is the number of
modules (1 to 8).
8. 'A−PROGRAM DETAILS.→ is typed. No reply is required.
9. 'LEVELS;' is typed. Reply with priority levels to be used for A
programs, e.g. '0/1/3.→', '1/2.→', or, if no A levels are wanted,
'N.→', in which case the next 2 steps are omitted.
10. 'TYPES;' is typed. Reply with the type numbers of the units to be
pre−allocated to each A program. The type numbers should be sep−
arated by the character '/' with the last type number followed by
'.→'. Only one device of each type may be preallocated to each A
prosram. A type 2 unit (PIR) will always be preallocated and need
not be specified.
11. 'STORAGE;' is typed. Reply 'n.→' where n is the decimal number of
words of core store to be given to each A program.
KDF9 (Revised 12.12.65)
original
10 − 92 − 0
Section 10.4 10 4
11. 'DATE D/M/Y' is typed. Reply WITH TODAY'S DATE.
e.g. 12/1/65.→
13. 'TIME ON 24&MINUS;HOUR CLOCK
HOURS/MINS;'
is typed. Reply with the time to the nearest minute,
e.g. '19.35.→.
14. The call tape for the director should now contain information
as follows:−
M
KKT−−−−−−−−−→N→2/1→3/5→10/7/10/11/12/13/14/15/17→→
KMA01−−→
KMB02−−→
KMC01−−→
KMC02−−→
KMC03−−→
KMW02−−→
KMW03−−→
KMW05−−→
KAB50−−→
KAB00−−→
KRZ01−−→
KRZ0−−−→
KAB70−−→
KKT80−−→
KMF01−−→
KMF0205→+RW1/225→
After the directors A−block
Y→ appears on the call tape to indicate the requirement or
or non−requirement, respectively, of TINTM. If TINTM is
N→ not required it is removed at run time with a saving of
approximately 64 words of director space.
Then follows the units list and a list of 16 identifiers
which are the names of programs to be called by TINT
TnLp.
Each identifier is of the form
CN CR AAAAAAA→[A can be any letter or −] where the
letter string is the most significant characters of the
identifier.
Immediately following the 16 identifiers is a job number
of 8 characters in length beginning with +; If + is not
found then no job number is associated with the call of
these programs.
15. Stream count: Reply n.→ where n>0.
The significance of the stream count is to
determine the amount of output to go to the
OUT 8 tape before a new reel is commenced and
the old reel deallocated. TINT Jn.→ can always
be used to re−adjust this count for the present
OUT 8 reel, but for any new reel the count will
be set equal to the value placed at this stage.
Each time an 'end stream block' is written to
KDF9 (Revised 12.11.68)
original
10 − 92 − 1
Section 10.4 10 4
the tape, the count is reduced. If this count
becomes negative then a new reel will be
opened for any 'new' program issuing OUT 8.
K. Not relevant.
L. TIMING DATA
The time spent in Director, at an interruption, will depend on
whether the 'short path' or the 'long path' is followed, and on
what has to be done. These times are as follows:-
The short path is followed when the reason for interruption is only
PR and/or LOV and the time spent in Director is 728 to 812 micro−
seconds (depending on priority re−entered) .
If the long path is taken the time is composed of two elements.
1. A standard 1082 microseconds.
2. The time taken to perform the required function or
functions.
M. Not relevant.
KDF9 (Revised 12.11.68)
There is obviously material missing here
original
10 − 109 − 0
Section 10.4 10.4
Appendix 4
i.e. deallocate either the first or second set of disc
claimed by OUT 44. Disc sets nest up on dealiocation so
that if the first set of discs was deallocated the
second would become the first set in all future
reference.
OUT 46 Write program to the temporary program space of the
disc. N2 contains the start address (relative to EO) of
a program block.
This is either:-
a) a B−block with a filler word for the first C−block
in the 8th word.
b) a C−block whose length is determined by the filler
word of the previous block. The first C−block is of
maximum length 3759 words and subsequent blocks of
maximum length 3839 words. The first word of the
area given to Director is not part of the program
defined by the filler words, but is used by Director
to store the address of the next block of the disc,
and will have been overwritten when control is
returned to the program, The third and fourth words
of the B−block will be checked to see that they
contain a valid program identifier and the third
character changed to D. The program will be written
onto the first set of discs claimed by the program's
OUT 44. OUT 46 may only be obeyed before the first
use of either OUT 41, OUT 42, or OUT 43.
OUT 47 This is used to test parity after any 'User' read or
writes It causes TR to be set if the last 'User'
Transfer by the program had 1ed to a parity failure, or
if the last 'User' read had been from an unwritten
sector and parity has not already been checked.
C.2 TINTS
TINT C : Reply Cdd.→ where dd is the mumber of a disc to be
replaced in Director's list.
TINT D : Reply Ddd.→ where dd is the physical disc mumber of a
disc that is to be deleted from Director's list.
This is used to declare discs "black" after initial
input. The relevant discs must be unclaimed at
the time the TINT C is performed.
TINT X : Reply Xn/w.→ to read a B−level 'System' program to
priority n giving it a store limit of w. The first
time TINTX is performed after initial input, Director
will read in 'PRIME' as a normal B−level program
unless N. has been replied to PRIME; on initial
input. In this case and for subsequent TINT Xs,
Director calls down the Initial Disc Reading Program
(IDRP) from under the fixed heads to initialise the
running of PROMPT,
original
10 = 110 − 0
Section 10.4 10.4
Appendix 4
D. Not relevant.
E. PROGRAM CHARACTERISTICS
General
The T.S. Disc Director is an autonomous non−segmented program
written in Usercode.
Disc Storage
Director keeps a Directory of all named records on the disc. This
Directory is kept under the fixed heads and occupies 3840 words.
It is divided into:-
Sectors
Occupied
a) Initial Disc Reading Program (80 words) 0 − 1
b) Allocated Space List (128 words) 2 − 5
c) Permanent Program Index 6 − 95
Initial Disc Reading Program
The B and C block of a program of not more than 80 words to
initialise the running of the 'system! program. It may not use
the "START" option and may only have one C−block.
The user may provide his own IDRP or use the official version
(KAY0O) provided for reading down PROMPT (see section 6).
Allocated Space List
This consists of 128 words, 8 words for each disc. A bit is set
for every 640 word block which is written on. For one disc the
entry in the table is:-
D0 D16 D32 D47
┌────────────────┬──────────────┬────────────────┐
│ Head 0 BLOCKS 0 − 63 │
├────────────────┬───────────────────────────────┤
│ > │ Head 2 │
├────────────────┴──────────────┬────────────────┤
│ │ Head 4 │
├───────────────────────────────┴────────────────┤
│ │
├────────────────────────────────────────────────┤
│ Head 1 │
├────────────────┬───────────────────────────────┤
│ │ Head 3 │
├────────────────┴──────────────┬────────────────┤
│ │ Head 5 │
├───────────────────────────────┴────────────────┤
│ │
└────────────────────────────────────────────────┘
KDF9 (Revised 12.11.68)
original
10 − 111 − 0
Section 10.4 10 4
Appendix 4
Permanent Program Index
Each entry is 3 words long, with the identifier of the program in
the first two words and the 3rd word containing the address of the
first sector occupied by the program on the disc. Entries are
inserted or deleted from the index using OUT 27 and OUT 28
respectively.
Temporary Program Index
The entries to this index, which is kept in store by Director, are
in the same format as the PPI entries, but refer to those programs
loaded onto the disc using OUT 46. All entries for a level are
cleared on program termination. The index contains only 13
entries. Any program which uses OUT 46 to write up a program when
the index is already full, will fail.
F. COMPUTER REQUIREMENTS AND CONDITIONS
As for the Standard Time Sharing Director (section 10.4) with the
addition of a disc file.
G. NORMAL OPERATING PROCEDURES
As for the Standard Directors with the addition of TINT C, D and X
(see Division C,.2) and the following monitor indications.
NOD <prog. ident> The specified program was called from the disc
but could not be found.
n L AWAITS n DISCS Either OUT 24 or 44 has asked for more discs
than are currently available and program L is
therefore held up.
SYSTEM)PARITY (ss pp dd) The disc hardware is failing causing
F−HEAD) (ss ) either fixed head or system read or write
) parity failures.
CALL ENGINEER )
PPI FULL PROMPT has attempted to insert an
identifier in the PPI and Director has
found no space available. If any programs
have been deleted from the PPI, Director
should be reinserted without repriming,
when the PPI will be optimised and space
made available.
H. NORMAL CORRECTION PROCEDURES
Failure indications are as in the Standard T.S.Director. The
following is a complete list of failure indications (the ones
preceded by an asterisk do not have the REACT facility).
OOL Lock−in violation
OON Nest orSJNS over−or under−flow
OOT Time limit exceeded.
R The Reset RFI occurs in program mode. An illegal instruction
has probably been obeyed.
KDF9 (Revised 12.11.68)
original
10 − 112 − 0
Section 10.4 10.4
Appendix 4
S A 'spurious' interrupt occurs with no RFI bits, i.e. a
machine error.
01 Incorrect OUT number (value still in N1).
02 Failure in OUT 5.
03 Failure in OUT 6 or OUT 7.
04 OQUT17 obeyed with full nest.
05 OUT 1 obeyed with less than 3 items in nest.
06 OUT 1 obeyed with incorrect program name,
07 OUT 4 specifies incorrect identifier.
*10 CRNP failure in OUT 1.
11 OUT 10 specifies incorrect identifier.
*20 Incorrect program name in OUT 2.
21 Time limit for OUT 2 absent or incorrect.
*22 OUT 2 obeyed with incorrect store limit in Fi.
71 Attempting to close a stream that has not been opened.
72 (ouT 8) last character of block in stream number in range
30−37 to−70−77 is not octal 02, 03, or 75.
73 Incorrect character in OUT 8 block (stream 0 only)
74 Invalid stream number in OUT 8.
77 Invalid addresses for OUT 8 block, or invalid parameter in
N2 for close stream.
101 Read or Write attempted with no discs claimed.
103 Incorrect block size for disc read or write OUT.
104 OUT 21, 22, 31, 32 specify incorrect head number.
105 Disc OUT obeyed with too few items in the nest.
106 Invalid buffer area specified for disc OUT.
107 Illegal disc address specified for disc OUT.
110 Disc OUT attempting to read from an unwritten sector.
111 Disc OUT specifies block number out of range.
113 OUT 43 specifies N2 4 0 or −1.
114 OUT 43 preceeded by incorrect number of OUT 44"s and OUT
45's
115 OUT 30 area specified > 3840 words.
117 OUT 30 specifies invalid core area.
120 OUT 24 reperformed.
121 OUT 24 or 44 attempt to claim invalid nwaber of discs.
122 OUT 44 obeyed too many times
123 OUT 23 or OUT 32 specifies invalid disc number.
124 OUT 46 obeyed with invalid address.
125 Limit to number of programs in T.P. I (see Section E)
exceeded.
126 OUT 46 − B−Block contains invalid identifier
127 OUT 46 − Block contains invalid filler word.
100 our 45 − N24 0 or −1.
131 OUTS 41,42 or 43 obeyed while OUT 46 in progress.
132 OUT 46 obeyed after OUT 41, 42 or 43.
133 OUT 26 Next Sector Available queue full.
134 No sectors available (4 .e. discs full).
135 OUT 29 specifies invalid buffer area.
136 OUT 41 or 42 or 46 obeyed with parity indication set.
137 Out 27 or 28 obeyed with invalid identifier.
KDF9 (Revised 12.11.68)
original
10 − 113 − 0
Section 10.4 10 4
Appendix 4
140 OUT 27 obeyed with invalid F.0.C.
141 OUT 41,42 area specified too large to fit in given block.
142 PPI full.
145 OUT 1 obeyed when level has program partially transferred
to the disc using OUT 46.
Failures during reading of new programs.
These are notified by the typing of n CRNP x
i.e. 'Cannot Read New Program' into priority n, for the
reason indicated by x. For the values of x see section 10.4
division H, with the additional value x = 10 − Attempting to
read a block from an illegal address on the disc.
J. ABNORMAL OPERATING PROCEDURES
Initial input of the T.S. Disc Director is as described in
Section 10.4 division J of the S.R.L.M. with the following
additions:-
Disc Unit No : is typed after CORE MODULES
Reply dd/nn.→ where dd is the octal device no. of
the disc file and nn is the unit no.
For unit zero it is only necessary to reply dd.→.
After the reply to HOURS/MINS; the following queries are typed:-
BLACK: reply dd/ee/ff.. .. ../gg where dd, ee .. gg are discs
which are not to be included in the system.
PRIME: reply a) N. If the disc is already primed, in which case
Director reads down the ASL and checks that none
of the 'system' discs have been declared black.
If they have, Director returns to the query BLACK;
otherwise Director types out the message:-
SYSTEM DISCS dd/ee/ .. .. ff where dd, ee, ..
ff are the 'system' discs.
The following failure messages may also occur:-
NO SYS: Director does not find any disc claimed and
returns to the query BLACK.
ASL PARITY: Director finds parity on the disc when
attempting to read down the ASL.
PPI PARITY: Director finds parity on the disc when
attempting to read down the PPI.
reply b) Y. If the disc is not_primed Director then reads
in the B and C blocks of IDRP (see section E) on
reader 1 and writes it to sectors 0 and 1 of the
fixed heads. The following failure messages may
occur:-
KDF9 (Revised 12.11.68)
original
10 − 114 − 0
Section 10.4 10 4
Appendix 4
IDRP PARITY F : Parity fail on ».R.1 when
attempting to read in IDRP. The
reader is set manual and the read
reinitialised.
DISC WRITE PARITY: Parity fail on the disc when
attempting to write IDRP to the
disc. The transfer is repeated
until it is performed successfully.
B−BLOCK FAIL: The identifier or the filler word
in the B−block is invalid.
SUM−CHECKFAIL: The sum−check of IDRP is invalid.
For either of the last two
messages the reader is set to
manual and the read for the
B−block reinitialised.
K. Not relevant.
L. TIMING DATA
Not yet available.
KDF9 (Revised 12.11.68)