MAGNETIC TAPE

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.

Preliminary Specifications: Programmed Data Processor Model Three (PDP-3) October, 1960 · 第 58 / 71 题