The system consists of tape units connected to the PDP-3 through a tape
control (TC). This tape is read or written in IBM 729I format. Two
hundred characters, each having 6 bits plus a parity bit, are written on
each inch of tape and the tape moves at 75 inches/sec. The tape control
has the job of connecting a specific unit to the PDP-3 and is a switch.
It also has the function of controlling the format of information that
is read or written on tape. In-out class commands instruct TC to the
type of information transfer and select the tape unit. Another IOT
command synchronizes the transfer of information through the TC to the
computer.
The IOT order to select the unit and function is decoded as follows: 1)
Three bits specify the function of TC. 2) The remaining 6 bits select
the unit.
_IOT Motion Commands for Magnetic Tape Units_
_IOT Code_ _Abbreviation_ _Function_
73....nn 60 mrb Read a binary record.
73....nn 61 mra Read an alphanumeric (BCD) record.
73....nn 62 mbb Backspace a binary record.
73....nn 63 mba Backspace an alphanumeric record.
73....nn 64 mwb Write a binary record.
73....nn 65 mwa Write an alphanumeric record.
73....nn 66 mlp Move tape to lead point (rewind).
Where the octal digits, nn, specify the unit number.
The motion commands have the deferred bit, thus, the program halts. If
the TC is free, the command will be transferred to the tape control for
action and the program restarts immediately. If the tape control is
currently busy with an instruction, i.e., it hasn't finished a previous
command, the motion command is held up until TC is free to execute the
new command.
The transfer of information from the computer to the TC is accomplished
with the pause and skip command, MPS or IOT 70. This command has the
deferred bit and halts a program until the TC can handle the transfer.
On completion, the transfer occurs and the program restarts. This is
used exclusively to synchronize the flow of information between a tape
unit and the computer. This command normally skips the following
instruction. If a flag is set in the TC, indicating incorrect
information flow, the skip does not take place.
The TC contains a 36 bit buffer which holds a complete word while
information is read or written. When an MPS order is given and the unit
is reading, the TC buffer is read into the IO. The MPS order given
during writing causes the IO to be transferred to the TC buffer.
Various conditions occurring in the TC cause the no-skip condition, when
an MPS is given. Tape control flags are examined by the command, examine
and clear flags, MEC or IOT 71. When MEC is given, the flags are put
into the IO for program interrogation, and the flags cleared. The flags
are: parity, end of tape, an end of record flag, and reading-writing
check.
The parity flag is set if the parity condition is not met while the tape
is being read (during MWA, MWB, MRA, or MRB).
The end of tape flag is set when the tape comes to the end of tape,
moving in either direction.
Three conditions set the read-write check flag: 1) If TC is inactive,
i.e., no unit or function selected, and an MPS instruction is given. The
MPS becomes a no-operation, no-halt instruction. 2) When reading
information and not emptying the TC buffer, by giving an MPS before more
information arrives from tape. 3) A unit becomes unavailable during a
normal sequence.
The end of record flag is set during reading or backspacing when the
tape comes to an end of record gap.
_Writing a Record of Information_
Information is written on the tape by giving a MWB or MWA command. This
sets a write binary or a write alphanumeric into the TC and selects the
unit. A motion select command is executed immediately if the TC is free,
otherwise, the command waits until it can be executed. Normal
programming can continue after the MWA or MWB is given for approximately
5 milliseconds. At this time, an MPS order is given and the program
pauses until information can be written. When the MPS is restarted,
information is transferred to the TC buffer from the IO. If no flags
have been set, the following instruction is skipped.
Three-quarter inches of blank tape is written by giving either the MWA
or MWB order. An end of file is written as follows: 1) Four MWA commands
write three inches of blank tape. 2) Then end of file character is
written by giving the MPS order.
Information is read and checked for correct parity while writing.
If too many program steps are given between the motion select command,
MWA or MWB and the first MPS, the unit will deselect (or disconnect).
The MPS is then a no-operation command.
_Writing Program_
As an example, a program to write k words in binary format from storage
beginning in register A, using tape unit number 04, is shown. The
following program is written in standard FRAP language. The program
begins in register enterwrite.
enterwrite mec ,clear flags initially
mwb 400 ,73000000464
lir x/-k+1 ,initialize index register x
b lio x/a+k-1 ,begin loop
mps ,wait for TC then write C(Z)
jmp c ,error
spx x/1 ,add 1 to index register x
jmp b ,return of loop
jmp done ,record written
c mec ,tape error
ril 1
spi
jmp rwcstop ,read-write error or tape fault
ril 1
spi
jmp b+3 ,tape end
hlt ,tape parity
done ,resume programming
_Reading Information_
Information is read by giving the MRA or MRB order. Almost 10 ms. is
available after a read order is given before information actually enters
the TC buffer.
To read a record of unknown length, the read order is first given. The
MPS order halts the program until six characters are assembled in the TC
information buffer. The next instruction after the MPS, a jump
instruction, transfers control from the loop when any flag is set. The
next instruction deposits the IO. The record length is determined by not
skipping after the MPS order on the setting of the end of record flag.
The read-write check flag or the end of record flag is then interrogated
to see that the tape is actually at the end of record. If a tape is not
at the end of record, then the tape is either at the end of the reel, or
a parity check has occurred.
_Reading Program_
Program to read j binary words into storage beginning in register d,
using tape unit 10, j is unknown. The program begins in register
enteread.
enteread mec ,clear flags initially
mrb 1000 ,730000001060
dzm x ,put zero in memory location x
e mps
jmp outcheck
dio x/d ,store in location modified by x
snx x/+1 ,add 1 to C(x)
jmp e
outcheck mec ,examine flags
spi ,end of record?
jmp recordend ,yes
hlt ,error
recordend snx x/+1 ,to find value of j
" ,resume programming C(IA) = j
"
"
"
_Forward Spacing_
Forward spacing is done by giving an MRB or MRA order. This moves the
tape forward with the read-write head positioned at the end of the
following record. If n read orders are given, the tape is spaced forward
n records. By giving the MEC order, parity flags are examined to see
that information on tape has been read correctly.
_Backspacing_
By giving an MBA or MBB order the tape is moved backwards a record with
the read-write heads positioned in the previous end of record gap. The
end of record flag is set when the tape has moved backwards a record.
_Rewinding_
Rewinding is accomplished by giving the rewind order, move tape to load
point, MLP. The rewind order starts a unit rewinding and does not tie up
the TC. If a motion command is given which calls for a unit that is
rewinding, the command is executed, but the action will not take place
until the unit is available.
_Unit Availability_
A unit is unavailable to the program under the following conditions:
1. Unit is rewinding.
2. Tape is improperly loaded.
3. Cover door open.
4. Unit overloaded.
5. Unit under manual control.
6. Power off.
A selected but unavailable unit holds up the TC if a motion order is
given for the unit. The TC will be held up until the unit is ready.
_Flag Positions_
_IO Bit_ _Flag_
0 EOR - End of record
1 RWF - Read-Write
2 EOT - End of Tape
3 Parity
_Connection with High Speed Channel_
The high speed channel directs the tape control, and word transfer, just
as a program would. A unit is first started reading or writing. The high
speed channel is given the memory location of the information, and the
number of registers the words read or written will occupy. The channel
effects the information transfer. Thus, a high speed channel connected
to a tape control handles the programming for the unit word transfers.
Completion of the block transfer is signified by either setting a
program flag, or entering the sequence break.
_Connection with Sequence Break System_
When the TC is connected to the Sequence Break System, the program is
automatically interrupted each time an MPS command needs to be given.
Programming is unaffected during reading and a record may be read with
no flags set. The TC initiates breaks so that an MPS may be given in
time.
Similarly, the break is initiated during writing each time an MPS needs
to be given.
_Motion Command Summary_
_Time before _Time between _Time after End of _Flags that
first MPS_ MPS's_ Record to deselect_ may be set_
MWA 3 ms. 400 us. 10 ms. RWF (if unit
MWB (longer time is deselected
causes deselection) and MPS given,
or unit becomes
unavailable),
Parity, EOT.
MRA 7 ms. < 400 us. 5 ms. RWF, (if
MRB (longer time information
misses information, is missed, or
and unit becomes
rwc set) unavailable),
EOT, EOR,
Parity.
MBA - - 10 ms. RWF (if unit
MBB becomes
unavailable),
EOR, EOT.