                            





                         PDP-1 COMPUTER
                ELECTRICAL ENGINEERING DEPARTMENT
              MASSACHUSETTS INSTITUTE OF TECHNOLOGY
                    CAMBRIDGE, MASSACHUSETTS
                              02139

















                            PDP-35-1


                       INSTRUCTION MANUAL


                    PART 5 -- MTA'S AND IVK'S












                          15 April 1971


















                
>>37<<                                                            Drum Field


    A drum field is  a 10000 (octal)  word block of  medium-speed
memory.   Transfers take place between  the drum and core memory.
The initial drum address and count (number of words  transferred)
must  be multiples of  40 (octal) words.  A  drum field, like the
drum, is circular_.   if a transfer  extends past the  end of  the
field,  it will "wrap around" to the beginning of the same field.
A transfer may not cross a core boundary.  The core address  need
not be a multiple of 40 words.  If the count is zero, 10000 words
will be transferred.

    Mta 300  creates  a  drum field.   The  capability  index  is
specified by A(12-17). If A(0) is 1, the absolute field number in
A(5-11) is used, and writing on  that field will be illegal  (any
absolute field may be created in this "read-only" mode).  The mta
300 skips if successful.

    The core address  for the transfer  is specified by  W(3-17),
the drum address/40 by I(6-12), and the word count/40 by A(6-12).
Note that the drum address and word count appear in the  "normal"
position  in the word.   A(13) is 0  to read from  the drum, 1 to
write.  The drum ivk skips if no drum error occurred.

  A  | .           |     count    | R/W|       . |
      0         5 6          12  13 14   17

  I  | .           |  drum address|           . |
      0         5 6          12 13       17

  W  | .     |             core address      . |
      0   2 3                            17

    Mta 104  and mta  105  are used  to  read any  absolute  drum
address.   The format is the same as  for a drum ivk, except that
the drum field comes from I(0-5).  Mta 104 reads fields 0-77, mta
105  reads fields 100-177.  Mta  104 and mta 105  skip if no drum
error occurs.


                        Programmed Queue


    Queues are described  in Part  4 of  this Instruction  Manual
(Multiprocessing).




















                
                                 OF THE SPHERES AND AN ATTACHMENT  IN EACH OF THE OTHERSx   Memory
references  to an  attachment are  directed (efficiently)  to the
attached "real" core module. Cores which are attachments need not
be  consecutively numbered.  An attachment will disappear without
warning if the attached core is deleted.  The core 0 of a  sphere
with  PRL on  cannot, unfortunately, be  attached_, the read/write
sphere ivk must be used to reference such a core.

    Each sphere has an enable or run indicator.  Processes in the
sphere may run only if the indicator is on. When the indicator is
off, no processes may run or be created by an enter. When the run
indicator  is turned off, processes that are in "soft" waits (all
waits except  enter,  queue,  and hardware  I/O  waits)  will  be
removed from the wait.  They will re-execute the instruction when
the run indicator is turned back on. Processes that are in enter,
queue, or hardware I/O waits may have the wait complete, but they
will not resume running.  Certain operations on spheres, such  as
manipulation  of  processes,  may  be  done  only  when  the  run
indicator is off.

    Certain instructions,  including  all  unrecoverably  illegal
instructions,  are treated  as enters  into the  superior sphere.
(See the section on enters.) Recoverable illegal instructions and
illegal  memory references are treated as  enters if they are not
handled by the  illegal instruction or  illegal memory  reference
returns.   If the sphere  has no superior,  the instruction waits
until the sphere gets a superior (possibly forever).

    When a  superior enter  happens, the  entered process  starts
executing  at the  fault entry address.   Its A  register has the
index of an entered process  capability.  Its I register has  the
reason for the trap_.

    0 - illegal instruction
    1 - lock fault
    2 - ESI trap
    3 - I/O function busy trap (hardware devices only)
    4 - bpt trap
    5 - hlt
    6 - illegal memory reference, return not enabled.
    7 - unused
   10 - mta 4
   11 - mta 5
   12 - mta 6
   13 - mta 7 (dsm)

    If  the entering process is  "restarted", it will enter again
(immediately, unless  its  run  indicator  is  off)  without  re-
executing  any  instructions,  unless  its  registers  have  been
written on with a sphere ivk.

    There are three "breakpoint"  registers associated with  each
sphere that enable the execution of instructions to be counted at
(reasonably) high speed. The registers will herein be called bp1,












                
)                                                            Sphere ivks


    If A(14)=0, the operation is a read/write core. A(13) is 0 to
read the invoked sphere's memory, 1 to write.  Either of the core
modules taking part in  the transfer may  be an attachment.   The
word  count  and sphere  address must  be  multiples of  40.  The
transfer may not cross a core boundary in either sphere.  If  PRL
is on in either sphere, locations 0 through 77 of that sphere may
not be read or written on. The word count/40 is in A(6-12)_, if it
is  zero, 10000  words will be  transferred.  The  address in the
invoked sphere is  in I(3-17),  and the address  in the  invoking
sphere  is  in  W(3-17).  The  instruction  skips  if successful.

  A  | .           |    count     | R/W|  0|      . |
      0         5 6          12 13  14 15  17

  I  | .     |    sphere address  |  0  0  0  0 .0|
      0   2 3                12 13         17

  W  | .     |           core address          . |
      0   2 3                              17

    Other sphere ivks_.

code in A                     Operation

12
        Suppress processing.  The  run indicator  is turned  off.

32
        Permit  processing.   The  run  indicator  is  turned on.

52
        Attach.  The  core  module  of the  invoked  sphere  (the
        attachee)  specified by I(15-17)  becomes attached to the
        sphere executing the ivk as the core module specified  by
        I(3-5).   This instruction  will succeed  if the attached
        core exists (as  an attachment  or a real  core) and  the
        attaching  core is not a real core.  If the attached core
        is itself an attachment, its  attachee will be used.   If
        the  attaching core is a  previous attachment, it will be
        removed. An attachment may be made and maintained whether
        the  run  indicator is  on or  off.  Skip  if successful.

72
        Reverse attach.  Similar to  attach.  The core module  of
        the  invoking  sphere specified  by I(15-17)  becomes at-
        tached to the invoked sphere as the core module specified
        by I(3-5).  Skip if successful.
















                
o                                112
        Read  process state.  The registers  of the process whose
        number is in  I are  read and stored  in six  consecutive
        words  beginning at the address in W(3-17).  The order is
        A, G, I,  X, F,  and W.  Processing  must be  suppressed.
        Processes are numbered beginning with 1. This instruction
        will fail if the numbered  process does not exist or  the
        run indicator is on.  Skip if successful.

132
        Write process state.  Similar to read process state. This
        will fail if the numbered process does not exist, the run
        indicator  is on, or  the process is in  a wait.  Skip if
        successful.

152
        Read breakpoint  state.  The  three words  of  breakpoint
        state  are read into three consecutive words beginning at
        the address in I(3-17).

172
        Write breakpoint state. Similar to read breakpoint state.

412
        Create process.  A new process is created for the sphere,
        and becomes the  highest numbered  process.  The  process
        number  is returned in A.  The run indicator must be off.
        The instruction fails if no process is available. Skip if
        successful.

432
        Delete  process.   The process  whose number  is in  I is
        deleted. All higher numbered processes are r                                                                                                                                                                                                                                                                                                              
