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