Section 5.3

Special 150- instructions in Programmer's Mode

Numbers 30 - 34

5.3.30   150/30 Instruction - Reserve Peripheral.

e.g.    150    *MT1    0    30

X is a programmer's peripheral name
Y-address field must be zero

This asks OMP to reserve the peripheral, (if not already reserved for the job) and to add this request to the list in the directory-entry, of peripherals reserved for the job.

Slow Input Peripherals and Magnetic Tape Decks and the Input Half of the Orion 2/1900 Direct Data Link

X not already reserved

If there is a device of the required type available (if not, OVR is set and the job continues by obeying the next instruction), OMP reserves the peripheral for the job as a "floating" peripheral i.e. a specific peripheral device is not allocated but OMP makes sure that an idle device of that type will be available when the job later requests a specific device to be allocated. A reservation message is printed on the Flexowriter.

jobname    RESD   *MT1

This informs the operator of the reservation.

X already reserved

The instruction is a dummy

Slow Output Peripherals and the Output Half of the Orion 2/1900 Direct Data Link

X not already reserved

If there is a device of the required type free (if not, OVR is set and the job continues) and there is one engaged, OMP reserves peripheral for the job and allocates the specific device, and in the case of

card punches, OMP fills the code buffer with the standard code table (see 5.6.2)

line printers, OMP fills the code buffer with standard code table (see 5.6.3) and outputs a line containing  0ZZZZZZ0  repeated 15 times.

The reservation and allocation message is output on the Flexowriter.

jobname   RESD    *SP1-SPB

This informs the operator of the reservation and allocation.

If none of the free devices of the required type are engaged OMP asks the operator to engage one; the engage message is printed on the Flexowriter.

jobname   ENGAGE   LBB*

When this is done, OMP will carry out the reservation and allocation as already described.  It is possible for the operator to engage another device, type RUN and then OMP will complete the reservation and allocation.

X already reserved with a specific device allocated.

OMP ensures that the allocated device is engaged, by asking the operator to engage it, if not.  It also refills the code buffer with the standard table for card punches and line printers  (The line with 0ZZZZZZ0 is not output since X is already reserved.)

If X is not a meaningful programmer's peripheral name, then impermissible operand action will occur.

 

5.3.31   150/31 Instruction - Relinquish Peripheral

e.g.    150    *SR1    0    31

X is a programmer's peripheral name

Y is an integer

This instruction asks OMP to carry out some form of relinquishing action on peripheral X which is reserved for the job.

If X is a programmer's peripheral name for a peripheral not reserved for the job or is not a programmer's peripheral name then the instruction is a dummy.

(i)       Y = 0  Relinquish (all devices)

This asks OMP to relinquish X (i.e. the record of its reservation in the directory-entry is removed and if necessary, the record of other peripherals reserved for the job moved up in the directory-entry.)

Slow Input Devices, Magnetic Tape Decks and the Orion 2/1900 Direct Data Link

X reserved as a "floating" peripheral

X is removed from the job's reservation.  A relinquish message of the following form is printed on the Flexowriter.

jobname      RLQD      *SR1

X reserved with a specific device allocated

X is removed from the job's reservations.  The specific device becomes free.  The relinquish message of the following form is printed on the Flexowriter.

jobname      RLQD      *SR1-TRC

This informs the operator that TRC is now free.

OMP carries out terminating action on the specific device.

In the case of readers, OMP disengages the device.

In the case of tape decks, OMP rewinds the tape, rewrites Block 0 if necessary, disengages the deck and asks the operator to unload the deck.  The unload message is of the following form.

ORION      MTD      UNLOAD serial-number

If the number (n) of errors that occurred since the tape was loaded is non-zero then ERn follows the serial-number.  Also on this line may be printed | followed by various digits, whether these are printed depend on the ENGINEER directive setting (see 5.7.4.9)

In the case of the Orion 2/1900 Direct Data Link, OMP takes no further action.

Slow Output Devices

X reserved with a specific device allocated

X is removed from the job's reservations.  The relinquish message informing the operator that the specific device is free, is printed on the Flexowriter.

OMP's terminating action, if the device is engaged, in the case of

7-track paper tape punches is to output Runout, 6 ER, ST, NL and Runout characters.

5-track punches is to output Runout 8 ER and Runout characters.

card punches is to output blank cards.

line printers is to output one PT, then print a line containing 0ZZZZZZ0 repeated 15 times and then PT's

The number of blank cards and PT's output is a parameter of OMP.

Then the device is disengaged (Y=0)

(ii)      Y=1 Float and Select (readers only)

In this case OMP re-reserves X as a "floating" peripheral.  OMP then reads from the reader that had been allocated, as though the select button had been pressed. (see 5.7). The floated message of the following form is printed on the Flexowriter.

jobname      FLTD      *SR1-TRB

This informs the operator that TRB is now idle.

Before OMP can read from the device, it must be engaged; if not a message of the following form printed on the Flexowriter asks the operator to engage it,

jobname      ENGAGE      TRB*

The engage message would precede the floated message.

If X is for a magnetic tape deck or an output device reserved for the job then impermissible operand action will occur.

If X is for a slow input device reserved as a "floating" peripheral then peripheral violation action will occur.

(iii)     Y=2 Relinquish and select (all devices except the Orion 2/1900 Direct Data Link)

Slow Input Devices

X is removed from the job's reservations.  The relinquish message informing the operator which device is free is output.  OMP then reads from the reader as though the select button had been pressed (see 5.7); the engage message is output if the reader is disengaged.

Magnetic Tape Decks

X is removed from the job's reservations.

The relinquish message is output. OMP then rewinds the tape on the deck and reads Block 0 (as though the engage button had been pressed)

Slow Output Devices

X is removed from the job's reservations. The relinquish message is output, on the Flexowriter.

If the device that had been allocated is engaged then OMP's terminating action as described for Y=0 does not take place and in this case (Y=2) the device is left engaged.  If the device is disengaged it is left disengaged.

If X is for a reader reserved as a "floating" peripheral then peripheral violation action will occur.

(iv)     Y=3  Abolish and select (readers only)

This asks OMP to abolish the job, and then to read from the reader that had been allocated, as though the select button had been pressed.

The core-store, drum-store and all peripherals reserved for the job are relinquished in the normal way (i.e. as for Y=0)  The relinquish message for each and the abolished information (see 5.3.11) are output on the Flexowriter.

This instruction is intended to be used when it is required to have a number of jobs (to be run consecutively) on one paper tape reader.

If X is for a magnetic tape deck or an output device reserved for the job then impermissible operand action will occur.

If X is for a slow input device reserved as a "floating" peripheral then peripheral then peripheral violation action will occur.

Y > 3 causes impermissible operand action.

On Orion 2

Y=2  (Relinquish and Select) and Y=1 (Float and Select) lose the extracode buffer

Y=3 (Abolish and Select) does not lose the extracode buffer.
 

5.3.32   The 150/32 Instruction - Get Geographical Name

e.g.    150    *SR1    A10    32

X is a programmers peripheral name
Y is the address of a core-store register.

This instruction puts into Y the geographical name of the device whose programmer’s name is X.

The geographical name of a device consists of three letters - the first two identify the type and the third the particular device e.g. a tape deck may have geographical name MTG.  Any message to the operator should refer to devices by geographical names as the operator will not know in general which devices are called by which programmers' names.

The k-bits of a device are an 8-bit quantity which is recognised as the address of the device by the logic of the machine - the 140 on Orion 1 (extracode on Orion 2) does a table search to find the k-bits corresponding to a particular programmer’s name.  On Orion 1 the k-bits are checked for odd parity.  On Orion 2 the k-bits are not and are sequential.

If X is the name for a peripheral allocated to the program, then 3 characters of the geographical name (in standard 6-bit code) are put into the l.s. 18 bits of Y and the k-bits are put into the last 8 bits of the upper half of Y (i.e. into D16 to D23) - the rest of Y is left clear.

If X is a floating peripheral then y' = 0

If X does not belong to the program then y' = - 1.0

Y must be within reservations otherwise reservation violation occurs.
 

5.3.33   150/33 Instruction - Load Document

(see also 5.7.2.3)

e.g.    150    *SR2    A100    33

X is a programmer's peripheral name or 1 or 2
Y is the address of a core-store register or 0 Y 63

This instruction ensures that a peripheral is reserved for the job; the device that is allocated being loaded with the specified document.

Y as the address of a core-store register.

If Y is the address of a core-store register then the 8 registers Y to Y+7 contain either a document name (when X is for a slow output device) or a document request name (when X is for an input device or a tape deck).

Each register stores a component.  The permissible characters of a component are letters, digits and .(point).  A null component is allowed which is stored as a clear word.  The component + (plus) which must not be the first or second component means that the document is composite (see 6.1).  Characters in a word must be right - justified (i.e. SP characters in a word must only be non-significant left-hand characters.)

When Y to Y+7 contain a document request name then a word which must not be the first or second, containing the character - minus (the other 7 being non-significant left-hand SP characters) is taken to mean "don't care what this component is".

Impermissible characters in Y to Y+7 will cause impermissible operand action.  Y to Y+7 (or Y to Y+8 when X=1 or 2) not within reservations will cause reservation violation action.  X not a meaningful programmer’s peripheral name or not 1 or 2 will cause impermissible operand action.

a)   Slow Input Devices and the Input Half of the Direct Data Link (i.e. X is a programmer's peripheral name for a paper tape reader or card reader or input half of the Direct Data Link)

Y is the address of a core-store register

The 8 registers Y to Y+7, contain a document request name.  If there is a suitable device, OMP searches idle devices for this document (i.e. OMP looks for a document whose document name "fits" the document request name (see flow chart on page 8)).  When the document is found then the device on which the document is loaded, is allocated to the job.

OMP then copies the name of the document into Y to Y+7, so that words that did contain - (minus) are now filled in.

X not already reserved

e.g.  150  *SR1  RQNAM1  33

If there is no device of the required type free, then the job is halted awaiting space on this 150/33 instruction.  A message of the following form is printed on the Flexowriter:-

jobname     NO     SR

This informs the operator that a free 7-track reader is not available.  When any space becomes free, the job continues by obeying this 150/33 instruction again.

If there is a device free, OMP searches idle devices of the required type for the requested document.  If it is not loaded, then the job is halted awaiting document on this 150/33 instruction and a message of the following form is printed on the Flexowriter:-

jobname     LOAD     SR     document request name *

This asks the operator to load the document on an idle 7-track reader (an idle device is one not allocated).  When any document is loaded, the job continues by obeying this 150/33 instruction again.

Having searched devices of the required type and having found the requested document, then OMP reserves the peripheral X for the job.  The device is allocated and the document name copied into Y to Y+7 as already described.  A message of the following form is printed on the Flexowriter:-

jobname     RESD     *SR1-TRC

This informs the operator of the reservation and allocation; in this example that, TRC is allocated to the job.

X already reserved as a floating peripheral

150    *CR1   RQNAM2   33

In this case there will be a device of the required type available and so OMP searches idle devices of this type for the requested document.  If the document is not loaded then, the load message will be printed as already described.  When the document is found, its name is copied into Y to Y+7 and the device is allocated to the job.  A message of the following form is printed on the Flexowriter:-

jobname     *CR2-CRA

This informs the operator that CRA is now allocated to the job.

X already reserved and a specific device already allocated to the job

e.g.   150   *SR1   RQNAM3   33

In this case X is temporarily re-reserved as a "floating peripheral" and the specific device which had been allocated becomes an idle device.  A message of the following form is printed on the Flexowriter:-

jobname     FLTD     *SR1-TRC

This informs the operator that TRC is now idle.  The instruction now continues as for X already reserved as a floating peripheral which has already been described.

When a device becomes idle, OMP carries out appropriate terminating action and disengages the device.

b)     Magnetic Tape Decks (i.e. X is a programmer’s peripheral name for a magnetic tape deck)

(i) Y as the address of a core-store register

In this case the tape is being "asked for by name" and the instruction has similar effects as for slow input devices i.e. Y to Y+7 contain a document request name; when the document is found, its name is copied into Y to Y+7 and the deck is allocated to the job.

X not already reserved

If there is no deck free, then the job is halted awaiting space and the message printed.  If there is a free device, but the document is not loaded then the job is halted awaiting document and the load message is printed.  Having found the requested document, then OMP reserves X for the job and allocates the deck and copies the document name into Y to Y+7.  The reserved with allocation message is printed.

X already reserved as a floating peripheral

In this case, there will be a deck available and so OMP searches idle decks for the document.  If the document is not loaded, the load message is printed as already described.  Having found the document, OMP allocates the deck to the job and copies the document name into Y to Y+7 and prints the allocation message.

X already reserved and a specific deck already allocated to the job

In this case X is temporarily re-reserved as a "floating" peripheral and the specific deck which had been allocated becomes an idle deck.  The floated message is printed informing the operator which deck is now idle.  The instruction now continues as for X already reserved as a floating peripheral which has been described.

When a deck becomes idle, OMP rewinds the tape, updates Block 0 (see 5.3.40 and 5.3.41) if necessary, disengages the deck and asks the operator to unload the deck.  The unload message is of the following form

ORION     MTD     UNLOAD     serial-number

If the number (n) of errors that occurred since the tape was loaded is non zero then ERn follows the serial-number.  Also on this line may be printed | followed by various digits - whether these are printed depends on the ENGINEER directive’s setting (see 5.7.4.9).

Thus the deck on which the requested document is loaded, will be allocated to the job but in some cases the job will not be allowed to continue unless the deck is isolated.  Block 0 (see 5.3.40 and 5.3.41) contains many items of information, one of which is the document name of the tape and others are a Date and the write permit bit (D0) and the date control bit (D24).  In the following cases, the deck must be isolated:-

D0=0 and D24=0 and Date in D1 to D23 not reached

D0=0 and D24=1 and Date in D1 to D23 not reached

In the above two cases, if the deck is not isolated, OMP halts the job and outputs a message on the Flexowriter asking the operator to isolate the deck and then cause the job to continue by typing RUN directive (see 5.7.3.3)  The message is of the following form:-

jobname     INHIBIT WRITING ON MTA AND RUN

The operator must press the write inhibit switch so that it is on, and then type RUN directive.

If the write permit bit (D0) is 1 or the Date is reached then the job is allowed to continue whether the deck is isolated or not.

(ii) Y as an integer, 0 Y 63

e.g.   150   *MT1   0   33

In this case, the request is for a deck loaded with a scratch tape and the instruction has the same effect as for the cases when a document request name is given, except that OMP searches idle non-isolated decks for a scratch tape.

A scratch tape is a tape loaded on a non-isolated deck and whose word in Block 0 containing the Date, write permit and date control bits has D24=0 and Date in D1 to D23 reached.

OMP searches only non-isolated decks for a scratch tape.

If Y =0 then a deck loaded with a scratch tape of any length will be allocated. If 1 Y 63 then a deck loaded with a tape of nominal length Y hundred feet will be allocated.  Block 0 contains the nominal length of the tape.

The load message for a scratch tape is of the following form

jobname     LOAD     MT     SCR *

i.e. SCR is printed instead of the document request name.

If Y 0 then Y is printed between MT and SCR

(c)  Slow Output Devices (i.e. X is a programmer's peripheral name for a paper tape punch, line printer or card punch or Flexowriter type (Turitz only))

If OVR is set then writing with overflow set action will take place.

Y is the address of a core-store register

The 8 registers Y to Y+7, contain a document name.  This document name is output on the engaged allocated device.  Each component is separated by solidus though non-significant right-hand null components and corresponding solidi are not output.

On paper tape punches, two lines are output; Runout NL (CR LF on 5-track) DOCUMENT followed by the document name NL (CR LF on 5-track) Runout

On line printers, two lines are output; one is blank and the next one contains DOCUMENT followed by the document name, one line is fed.

On card punches, two cards are output; one is blank and the next one contains DOCUMENT followed by the document name.

X not already reserved.

If there is no device of the required type free, then the job is halted awaiting space and a message of the following form is printed on the Flexowriter:-

jobname     NO      LP

Otherwise, OMP looks for a free device of the required type. It looks for an engaged one first; if there isn't an engaged one, it looks for a disengaged one and then asks the operator to engage it, by printing a message of the following form on the Flexowriter:-

jobname     ENGAGE  SPB *

When an engaged device is found, X is reserved for the job and a specific device allocated.

In the case of paper tape punches the two lines, one with the document name are output.

In the case of card punches, the code buffer is filled with the standard code table (see 5.6.2) and the two cards, one with the document name are output.

In the case of line printers, the code buffer is filled with the standard code table (see 5.6.3) and the two lines, one with the document name are output.  These two lines (because X is being reserved for the first time) will follow a line containing the combination 0ZZZZZZ0 repeated 15 times - this is to show whether any hammers are failing to fire.

The allocation completed, then a message of the following form is printed on the Flexowriter.

jobname     RESD     *CP1-CPA

X already reserved and a specific device already allocated.

In this case, OMP asks the operator to engage the specific device, if not already engaged.  Then, in the case of paper tape punches, it outputs the two lines already described.

In the case of card punches, it fills the code buffer with the standard code table and outputs the two cards, already described.

In the case of line printers, it fills the code buffer with the standard code table and outputs the two lines, already described.  (Since X is already reserved the line with 1------1 is not output).

X is integer 1  (For slow input, decks and the input half of the Orion 2/1900 Direct Data link)

e.g.   150   1   A100   33

Y is the address of a core-store register.  The 8 registers, Y to Y+7 contain a document request name.  The register, Y+8 contains in the l.s. 5 bits an integer n ( 0 n 31)

This instruction asks OMP to search all idle devices (except slow output devices) for the requested document, and the effect of the instruction is similar to that already described for slow input devices and magnetic tape decks.  The order in which devices are searched may be specified for each installation.

If the document is not loaded then the job is halted awaiting document and a load message of the following form is printed on the Flexowriter.

jobname     LOAD     Document Request Name *

When the document is found, OMP notes on which type of device the document is loaded and puts into Y+8, in the l.s. 15 bits, a programmer’s peripheral name which is appropriate to that type of device; the number in this name being n.  (e.g. Y+8 would contain *FRn, if the requested document were found on an idle 5-track reader).  This peripheral is reserved, if not already, and the device allocated to the job.  The name of the document is copied into Y to Y+7 and the message of this reservation and allocation is printed on the Flexowriter.

X is integer 2  (For slow output)

Y is the address of a core-store register.  The 8 registers, Y to Y+7 contain a document name.  The register, Y+8, contains, in the l.s. 5 bits an integer n (0 n 31).

This instruction asks OMP to find a free slow output device.  The order of searching may be specified for each installation.

If no free device is available then the job is halted awaiting space and a message of the following form is printed on the Flexowriter.

jobname     NO     OP

OMP finds the first free device that is engaged, if possible, otherwise one that is disengaged and asks the operator to engage it.  OMP then puts into Y+8, in the l.s. 15 bits a programmer’s peripheral name which is appropriate to that type of device; the number in this name being n.  This peripheral is reserved and the specific device allocated.  The document name in Y to Y+7 is output on the device.  In the case of paper tape punches, the two lines, already described are output.  In the case of card punches, the code buffer is filled and the two cards, already described are output.  In the case of line printers, the code buffer is filled and the three lines, already described are output.  A message is printed on the Flexowriter informing the operator of the reservation and allocation.

 

 

5.3.34  150/34 Instruction - Get Document if Loaded

X is a programmer's peripheral name or 0 or 1 or 2
Y is the address of a core-store register or 0 Y 63

This instruction, (except for the case X = 0,) is similar to the 150/33 instruction, except that

     (i) if there is no device free, for all types of device then the 150/34 merely sets OVR and lets the job continue

or (ii) if the requested document or scratch tape (this applies to input device magnetic tape decks) is not loaded then the 150/34 merely sets OVR and lets the job continue.

Special Case

X = 0

Y is the address of a core-store register.

This instruction checks that the 8 registers Y to Y+7, contain permissible characters for a document request name.  If Y to Y+7 contain only legal characters then the instruction is a dummy, otherwise impermissible operand action will take place.