Nuclear Instruments and Methods 192 (1982) 305-313 North-Holland Publishing Company
305
AN ON-LINE SYSTEM FOR THE ANALYSIS OF TRACK CHAMBER FILM Daniel BERTRAND, Jean-Paul DE WULF, L6on ETIENNE, Hubert MULKENS Guy VAN BEEK, Paul VAN BINST, Rosette VANDENBROUCKE and Gaston WILQUET
Inter-University Institute for High Energies (IIHE/ULB-VUB) Pleinlaan, 2, 1050 Brussels, Belgium Received 13 July 1981
The Inter-University Institute for High Energies in Brussels is involved in experiments based on the analysis of film from several track chambers: the "big" and "little" European Bubble Chambers (BEBC and LEBC) and the UA5 streamer chamber. In order to scan and measure these difficult pictures in optimal conditions, a rather versatile device which we originally called "BEBC table" was designed in the laboratory, offering a high-precision track-ball driven X - Y stage, optical projection with dual magnification, and various operator controls. A PDP-11/40 running RSX-11M provides real-time support for five of these devices. A link between the PDP-11 and a DEC system 10 allows the geometrical reconstruction of the events to be performed on-line, with feedback to the BEBC table operator.
1. Introduction
2. The BEBC tables
The Inter-University Institute for High Energies has been involved for several years in various experiments based on the analysis o f track chamber film. Recent experiments make use o f the "big" and "little" European Bubble Chambers (BEBC and LEBC) and the UA5 streamer chamber. These f i l l s are analysed on a rather versatile device, originally called "BEBC table ", which was designed in the laboratory, then replicated five times by SBF in Paris. It is a high-precision, track-ball driven, film plane measuring system, offering fiat-table, dual magnification optical projection, and containing various interactive operator controis. The five BEBC-tables are supported by a PDP11/40 minicomputer running RSX-11M. The next section of this paper presents some details on the device itself, its interface to the minicomputer and the control software. Other measuring devices are in use in the laboratory, supported by a DEC system 10, another PDP11/40 and a PDP-8 [1]. A small network was developed between the four computers, so that all devices could make use of the computing power of the DEC10 in order to perform the geometrical reconstruction of the measured events [2]. The communication facility between the PDP-1 ls and the DEC-10 is described in section 3 and the on-line implementation of the HYDRA geometry programs is presented in section 4.
2.1. Basic hardware
0029-554X/82/0000-0000/$02.75 © 1982 North-Holland
2.1.1. Optics o f the table-view and magnification selection The four film transports are coupled in two groups o f two, and hence there exists two independent projection systems, one for views 1 and 2 and one for views 3 and 4. Each system is composed of: - a n f = 210 mm objective for magnification X 11, - a n f = 60 mm objective for magnification × 44, - a light source with two fLxed lenses and an additional optional lens used with the f = 60 mm objective. The operations entailed in changing views depend on the two views concerned: - from 1 to 3 or 2 to 4: light the selected projection systems, - from 1 to 2 or 3 to 4: displace the xy f i l l stage, - - f r o m 1 to 4 or 2 to 3: both operations simultaneously. The operator controls the view change by means of four view selection buttons. The change of magnification is effected by the simultaneous displacement of the two objectives and introduction or removal of the additional lens in the light source. Each activation of the magnification
306
D. Bertrand et al. /Analysis of track chamber film
change control by the operator changes the magnification with respect to the current state. 2.1.2. Film displacement The table has four independent film transports, one per view. Each transport consists of: - two motors used to maintain the film under tension, each controlled by the electrical signals activated by an oscillating arm; - one motor used to displace and position the film in either direction, controlled by comparison of two counters. The counters controlling the film displacement are: - for each view, a flame counter coupled to a rotating encoder o f 100 counts/turn; preselection counter for the 4 views indicating the desired film position. This counter allows the introduction o f a new frame number, resulting in a rapid film displacement of 2 m/s. It can also be used under operator control to displace the film by one flame or by 1/10 flame at a time, in which mode the counter is incremented automatically. The contents of these five counters can be read by the operator by means of LED displays. The operator controls the film transport system by use of a set of keys and push buttons: - a keyboard for entering preselection data, - a CLEAR button to zero the preselection counter, - a LOAD button to transfer the contents of the preselection counter to the frame counters, - a SEND button to displace the film to the new preselected frame, -
a
- two buttons to displace the film by one frame forward or backward, - two buttons to displace the film by 1/10 frame forward or backward, - f o u r buttons to select the film transport to be taken into consideration, - o n e EMERGENCY button to stop all film movement in case o f error. Facilities are available to detect the end of a film, and to load and unload a film. The precision of film placement using the frame to frame mode is 2 mm on the film plates. 2.1.3. X Y measurement stage Guidance: high precision Schneeberger rails (fig. 1 shows accuracy vs. measured length). Displacement: precision ball screws (double nuts). Command: track ball with constant pulse rate. - Precision rulers: LS 700 Heidenhain, 2 gln resolution. - C h a r i o t : m a d e of aluminium. -
-
-
2.2. Linking the BEBC-tables to the PDP-11
The PDP-11 configuration includes a DJ11 multiplexer, which supports 16 asynchronous serial lines. Each BEBC table is equipped with an interactive visual display terminal to provide for operator communication; the machine itself is linked to the computer via another terminal line. This arrangement offers various hardware and software advantages: a teletype-like interface is cheap and simple, and the handling of character input/output is done naturally
A tim
10 8-
I
6-
2-
l
200 Fig. ]. Schneeberger tables).
I
z,O0
6()0
f
800
i
1000
1200 L
mm
rafts tolerances. L = rail length, A = non-parallelism, i = normal quality, 2 = special quality (used for our
D. Bertrand et al. /A nalysis of track chamber film
by the computer hardware and software (DJ11 and RSX-I 1M terminal driver). Each table is driven by a separate task and the real-time control is therefore governed by the normal RSX scheduling and checkpointing algorithms. The fact that each device is independent of the other ones, both hardware and software-wise, ensures a good overall system stability in case of problems on one machine. On top of the film transport, view and magnification controls, track-ball, and conversational terminal, operator-computer communication is also possible via a set of 16 functional keys, which can be selectively lit (in four different colours) by the computer. 2.3. Hardware description o f the interface between a BEBC-table and the DJ l l
Each device is connected to the DJ11 multiplexer via a 9600 bauds 20 mA serial asynchronous line. Data is exchanged in the form of 8-bit pseudo-ASCII characters. Between a serial to parallel input and a parallel to serial output converter the interface includes two sets of registers and their respective load control to contain the data exchanged between the table and the data acquisition program. 2.3.2. Message format Input messages from the software and output messages from the device have a similar format. Both on input and output, only part of the information is relevant. Each message consists of a string of zero to eight 2-byte data registers preceded by a 2-byte start/ address register. Output messages are always 16-byte long due to limitations in RSX-11M. The data registers contain the following information: - Register 1 : frame number (FMR). - Register 2: device status (DSR). - Register 3: reserved for future use. -Register 4: keyboard register for keys 1 to 16 (K1R). - Register 5 : reserved for possible future implementation of keys 17 to 32 (K2R). - Register 6: X-coordinate register (XR). - Register 7: Y-coordinate register (YR). - Register 8: reserved for future use. The start/address register has the following format: R7
R6
R5
R4 R3 R 2
a synchronization character and by the software as a start character. The bits Ri in the second byte correspond to the 8 data registers. Bit R i set means that the corresponding register i is part of the message. In the message, data registers are ordered with increasing i value. 2.3.3. Description o f the data registers 1) The frame number register FMR: the FMR register contains the BCD value of the 4-digit frame number. Loading this register causes the selected film transports to start moving the films to the indicated frame. 2) The device status register DSR: The DSR defines the device status according to the following bit setting:
V4 V3 V2 VI M2 MI SR S F F $4 $3 $2 S1 OFF/ON Req,
2.3.1. Introduction
R8
307
R1
1 1 1 1 1 1 1 1,
where the first byte (3778) is used by the interface as
where F: if set, activated keys are made to flash (relevant only on input from software); Si; i = 1,4: if set, sector i of the activated four-sector (four colour) keys is lit. More titan one sector may be lit at the same time (relevant only on input from software); ON/OFF: if bit ON/OFF is set, the device is switched ON/OFF-line (see also 4) in sect. 2.3.4.); Req: see meaning of request bit in 3) of sect. 2.3.4.; Vi; i = 1, 4: if set, view i is lit; Mi; i = 1, 2: if set, magnification i is used (i--- 1 is small magnification, i = 2 is large magnification); SR, SF: if set, forward (SF) or reversed (SR) direction is used in film movement. 3) The key registers K I R and K2R: K1R defines the status of the keys in the functional keyboard. On input: if bit K i is set, key i is activated and its sectors as defined by the Si bits in DSR are lit; if bit F of DSR is set these key sectors are made to flash. On output: bit Ki is set if key i has been depressed by the operator; only one bit can be set in the register. If a second set of 16 keys in implemented in the functional keyboard, their status will be defined in K2R. 4) The X- and Y-coordinate registers XR and YR : XR and YR contain the binary value of the X- and Y-coordinates in device coordinate units. 2.3.4. Remarks on the use o f the Junctional keyboard 1) Keyboard control: - The sector bits Si and the flash bit F in DSR apply simultaneously to all activated keys. - Key sectors have no meaning on output: the whole key is depressed. - A key is activated if its associated bit is set in K1R and if at least one sector bit Si is set in DSR.
308
D. Bertrand et al. / Analysis of track chamber film
- W h e n depressed, non-activated keys trigger a buzzer without sending data to the software. Whenever an activated key is depressed the whole functional keyboard is switched off and needs to be reactivated by the software. This auto-disabling system prevents the sending of a message before the previous one has been accepted by the software. 2)Requirements on input messages from software: - I f some register contents are not defined in the input message, the interface will leave the corresponding device functions in their present status. When a register is transmitted either in an input or an output message, all its bits are taken into consideration; this is especially true for DSR. 3) Emission o f messages from the interface: -Whenever an activated key is depressed, the contents of K1R (and K2R), XR and YR are communicated to the software. The sending by the interface of FMR and DSR is governed by the setting of three hardware switches, associated to view, magnification and frame changes. When these switches are on, the contents of FMR and (or) DSR are transmitted to the software as soon as they are modified i.e. as soon as the device status is changed by the operator. When the hardware switches are off, the modified FMR and (or) DSR are transmitted together with K1R, XR and YR, the next time an activated key is depressed by the operator. When request bit (Req) in DSR is set in an input message, the interface replies immediately by sending the present contents of all the registers. 4) Enabling and disabling the interface: A hardware switch gives the operator the possibility to manually switch the device on or off-line. When the device is off-line, the interface prevents the software from loading the device registers and the device from sending a message to the software, except as the answer to a request (Req bit). -
-
-
There are no restrictions on the character strings that can be exchanged between the computer and the terminal within the frame of the RSX-11M software. Data is formatted in 7-bit ASCII characters.
2.4.2. Communication via the interface The BEBC tables are used for scanning and measurements. The functional keyboard is used to give the operator the possibility to measure a point and identify it at the same time instead of typing an identification code at the terminal keyboard and then depressing a measuring button. The functional keyboard consists of 16 similar keys; depressing one of them will result in simultaneously sending the key number and the X, Y coordinates of the measuring stage. The function of each key is software defined and can be adapted to specific needs. At a given time, a set of keys can be lit by the software to indicate which functions are logically enabled. A given key can also be made to flash, calling the operator's attention. The operator is made aware of the readiness of the system to accept a measurement by the fact that some keys are lit. It may be noted also that the basic hardware functions as described in section 2.1 are also controllable by software. 2.5. The software to control the BEBC tables
-
2.4. Communication between the BEBC table and the computer 2.4.1. Communication via the terminal The terminal is used to give the operator access to the RSX-11M timesharing system, start the program which is controlling the table, type more complex commands than those allowed via the functional keyboard (see sect. 2.4.2) and to receive error and informative messages and possibly the results of the on-line geometrical reconstruction.
Although called BEBC tables, the devices are being used for different films and experiments, including neutrino and hadron physics in BEBC (with and without TST), LEBC and the UA5 streamer chamber. In order to provide adequate software for these various experiments, a set of modules has been written in MACRO-11 to cover the basic interactions between the computer, the table, the operator, tire terminal and the storage disk; experiment dependant programs are then written in FORTRAN and consist essentially of calls to the various basic modules. These are comprised of: - general I/O routines for the terminal; -general I/O routines for the measuring device, allowing all the device functions (film transport, view number, magnification, functional keyboard, XYstage .... ) to be read or modified; -- general I/O routines to access title files and write measurement data on disk; -routines to read or modify single track measurement data on disk as records of random access files.
D. Bertrand et al. /Analysis of track chamberfilm
During the measuring procedure, only the currently measured track data is kept in core, the other measurements of the current event being stored on disk in a temporary random access file; - routines for operator messages and error reporting; - routines to control the interaction with the operator; - a set of routines to perform the decoding of operator commands and to jump to the corresponding user defined sections of the program. A command is issued by the operator either by typing two characters on the terminal keyboard or by depressing an activated key of the functional keyboard. Any of these actions will result in the definition of a pair of steering variables. The main one is used for automatic trapping into a user written routine, while the auxiliary variable is passed to that routine where it can be used for internal steering. The FORTRAN programmer has to define a set of twocharacter mnemonics and key/sector combinations and associate them with pairs of steering variables. If more than two characters are typed by the operator, the extra characters are passed as extra parameters to the selected routine. Up to now, software has been developed to handle films of the following experiments: - v , ~-interactions in BEBC (experiments WA24, WA59). - K ÷, ~- interactions in BEBC (experiments WA27, WA31). - p p and p~ interactions in a streamer chamber at the ISR and later at the collider (experiment UA5). - p , lr- interactions in LEBC (experiment NA16).
3. Development of a communication facility between the DEC-10 and the two PDP-1 ls A communication facility between the DEC system 10 and the two PDP 11 s has been developed to allow the implementation of HYDRA on-line geometry programs on the DEC-10 for the measurements made on the BEBC tables.
309
tage of existing features of the RSX-11M and TOPS10 operating systems. The link between two computers is symmetric, meaning that either the DEC-10 or a PDP-11 may start a communication, and it is half-duplex in the sense that the DEC-10 and a PDPI1 may not be transmitting a message at the same time. 3.2. Structure o f the commincation facility
On each computer, a controlling program synchronizes the communication. These programs are normally in a dormant state, corresponding to the HIBERNATE monitor call in TOPS-10 and the SUSPEND directive in RSX-11M. They are activated either (1) by an internal software interrupt, corresponding to the arrival of an "unexpected" character on a communication line, indicating that another computer wants to start a transmission, or (2) by a notification that an application task in the same computer is willing to send a message. Once activated, the controlling programs do input/output on the communication line connecting the computers by using standard functions of the operating systems. The software interrupt facilities used are PSI (priority software interrupt system) in TOPS-10 and ASTs (asynchronous system traps) in RSX-11M. The intertask communication on the same computer between an application task and the controlling task is realized on both computers by use of virtual memory techniques. These techniques are available on the DEC-10 under IPCF (interprocess communication facility) and by use of the memory management directives on the PDP-11 s. The communication control program is the only interface to be used by application tasks wishing to communicate with a task on another computer. Sending a message is a simple matter of calling a subroutine whose arguments are essentially the destination of the message, its contents and its length. On return from that subroutine, the caller is notified of the successfull or unsuccessfull transmission of the message. See appendix 1 and appendix 2 for some more information on RSX-11M and TOPS-10.
3.1. Linkhzg the DEC-IO to the PDP-11s
Each PDP-11 is connected to the DEC system 10 by an asynchronous serial line at 2400 bauds. Each computer therefore believes the other one is a terminal. The software necessary to realize the communication facility has been developed by taking advan-
3.3. Protocol o f the communication
A message to be transmitted between the two computers may be of any length. The original message is divided into packets of 500 words by the controlling task of the emitting computer. Furthermore,
310
D. Bertrand et al. / Analysis of track chamber ]'1Ira
each packet is transmitted in subpackets, the length o f which is decided at the initialization o f the controlling tasks; it cannot be larger than 255 characters, due to limitations in RSX-11M. The transmission
protocol for each packet, represented in fig. 2, can be described as follows: 1) the emitting computer requests communication with the receiving one,
REQUEST PDP-II
DEC-IO
COMMUNICATION
PDP-II
GRANT DEC-IO COMMUNICATION
LENGTH
~
_
PDP-II
DEC-IO
ACKNOWLEDGMENT~ PDP-]]
PDP-]]
[, DEC-IO
LENGTH DEC-IO
u]
ACKNOWLEDGMENT PDP-II
DEC-IO
H
INFORMATION+CHECKSUM PDP-II
DEC-IO
ACKNOWLEDGMENT PDP-II
i i
DEC-10
PACKET+CHECKSUM
PDP-II
PDP-II
DEC-IO
ACKNOWLEDGMENT DEC-IO
Fig. 2. Communication protocol. User's message is divided into packets of 500 words. A packet is transmitted in subpackets of/ characters (1 < l < 255).
D. Bertrand et al. / Analysis of track chamber film 2) the communication is granted, 3) the length is transmitted, 4) reception of the length is acknowledged, 5) the length is transmitted a second time, 6) reception of the length is again acknowledged, 7) a message header is sent to the receiving computer, this header contains routing and format information, 8) the receiving computer sends a notification of success or failure of the transmission, 9) a series of subpackets is transmitted, 10) notification is given after the reception of each subpacket. The mesage header and each subpacket are accompanied by a checksum. The receiving computer uses this checksum to detect transmission errors. For each step of the cummunication protocol various waiting times and retry possibilities are included in case a failure is detected. A request for communication issued by an application task or by another computer, while a communication is already taking place, will be automatically queued by the relevant operating system.
311
defines the kind of action required. After a validity check, the action is performed, an answer is sent back to the table control software on the PDP-11, and a message and/or results are displayed on the operator's terminal. In the case of the BEBC neutrino experiment, the initialization procedures as well as the fiducial reconstructions are performed automatically. The point and track reconstructions are realized on operator request. As the geometrical reconstruction of an event is not necessarily complete after such a procedure, the geometry output file is not saved and a logfile is produced after each operator's shift. We wish to thank Prof. J. Lemonne and Prof. J. Sacton for their continued support to the development of on-line measuring systems. We are indebted to Mr. C. Wastiels for his participation in various phases of the project described herein.
Appendix 1 Some features o f RSX-11M [5]
4. On-line geometrical reconstruction A software interface between the data acquisition program on the PDP-11 and the geometrical reconstruction software is running on the DEC-10. It uses the communication facility described in the preceding section to receive measurement information from, and to send geometrical reconstruction results to, the PDP-11 controlling the BEBC tables. This interface stores the data received from the measurement program into standard HYDRA geometry input banks [3]. It is also the skeleton of the geometrical reconstruction program in the sense that it calls the standard reconstruction processors via the HYDRA jump package, namely: - FDC, FDT to perform fiducial reconstruction; - PM, PFT to perform point reconstruction; - TM, TMC to perform track reconstruction; - F]" to perform mass dependent fits on the reconstructed tracks. Such a structure offers an easy way to split the program in overlays. The calling of the geometrical reconstruction software partially automatic and partially induced by the operator interacting with the data acquisition program. A flag in the message issued by the PDP-11
RSX-11M is a real-time multiprogramming operating system. The user communicates with the operating system by means of a control language. System directives make executive services available to user tasks. These system directives can be used to control the execution of, and interaction between, tasks. The following paragraphs describe some of the features of RSX-11M which are regularly used in the on-line system described in this paper. 1) Priority: Tasks compete for system resources on the basis of priority and resource availability. The priority of a task is determined by a number, between 1 and 250, assigned to the task when it is built, installed or executed. The highest priority task that has access to the resource it needs, gets control of the CPU. In order not to miss any character coming on the communication line between the PDP-11 and the DEC-10, the task controlling the communication is given the highest priority. To insure a good response during data acquisition, the BEBC tables control tasks have a priority higher than all background tasks such as PIP, EDI, MAC, FOR, TKB and other users tasks. 2) Checkpointing: This provides a means by which tasks not currently resident in memory can gain
312
D. Bertrand et al. / Analysis of track chamberfilm
access to the CPU. Swapping is a variation of checkpointing that enables the executive to checkpoint tasks with similar priority in and out of memory. Swapping and the dynamic allocation of checkpoint space make it possible to run more copies of the BEBC table control task than could possibly be fitted in memory. 3)Significant events and event flags: Certain occurrences called significant events cause the executive to re-evaluate the eligibility of all tasks to run. Significant events include: completion of an I/0 operation and the execution of one or several system directives issued by a task. Event flags give the possibility to use these significant events to coordinate internal task activity and to communicate with other tasks. Both the BEBC table control program and the communication control program make frequent use of even flags. 4) Asynchronous system traps (ASTs): The structure of the communication control program is based on the existence of ASTs. They provide the means of reacting to certain asynchronous events and give the task the opportunity to service an event by means of a user-written routine. 5) Memory management directives: These allow a task to extend its logical address space dynamically. A task can issue directives that create a new region of logical address space and then map a range of virtual addresses to the newly created region. To communicate with user tasks, the communication control program uses the CREATE REGION, CREATE WINDOW and the SEND and RECEIVE BY REFERENCE memory management directives. 6) Some options in terminal//O: I/O can be done on every device by means of the QIO directive. Some QIO functions specific to terminal I/O and used in the on-line control programs are: -IO.ATA: attach a terminal with specification of an AST for a non-requested character; IO.RAL and IO.WAL: transfer 8-bit bytes and do not check for special characters; IO.RNE: read without returning an echo; - I O . R P R : "read after prompt" combines a write operation followed by a read in one function, giving the possibifity of not losing any character in case of fast terminal response.
Appendix 2
Some features o f TOPS-10 [4] TOPS-10 is a multiprogramming operating system developed by DEC for the DEC system 10. It is aimed at the simultaneous support of time-sharing, batch and real-time tasks. This is achieved among other features, by use of swapping and reentrance techniques. Moreover, a demand paging technique is available on systems which include the virtual memory option. Users communicate with the operating system by means of a command language and active tasks can make use of "monitor calls" which are special instructions causing a trap to an appropriate executive routine. Jobs can communicate with one another by means of the Inter-Process Communication Facility (IPCF). Another particularly useful feature of TOPS10 is the priority software interrupt system (PSI). Hereafter appear some details on IPCF and PSI, as well as a description of some useful monitor calls. 1)IPCF is a set of monitor calls providing the capability for independent jobs to communicate with one another. This comnmnication is realized by sending and receiving "packets" of information. A packet consists of two parts: a first part of six words describing the data, the second part being the data itself. This has normally a length of ten words, but for systems with the virtual memory option the data can be a full page (512 words). In this case, the monitor takes advantage of the DEC-10's page mapping hardware to transmit the page without actually copying it. The operating system maintains a linear queue for each job using IPCF. Packets will be kept in the queue until the receiving program retrieves them. This queue is not created until a job sends an IPCF packet and it does not occupy any physical space until such time. The maximum number of packets allowed in a queue at any time is determined by a "receive quota" that may be set at each installation for each user. In the same way a "send quota" can be established to determine the maximum number of packets that can be send by a program before any of the preceding packets are retrieved. 2) PSI: The priority software interrupt system can interrupt a program execution under certain conditions, allowing the program to respond to some external events. When an interrupt occurs, the monitor transfers control to a routine the program specified to service the interrupt. After the interrupt servicing is
D. Bertrandet al. / Analysis of track chamberfilm completed, control is transferred back to the program which resumes its normal execution. The interrupt conditions are divided in two categories: I/O interrupts and non I/O interrupts. The software interrupt system is used in the program controlling the communication to respond to th I/O condition "input done" on the terminal line connecting the DEC-10 and a PDP-11 (arrival of a character to start a communication), and to the nonI/O condition "reception of an IPCF packet" from one of the DEC-10 tasks wishing to start a communication. 3) Locking jobs in core (LOCK): The LOCK monitor call allows a job to be excluded from the normal swapping algorithm, insuring that the program will remain in central memory. This monitor call is used by real-time jobs needing a fast response. 4) High priority queues (HPQ): TOPS-10 gives the
313
possibility to put certain jobs with adequate privileges in a high priority queue regarding CPU access. 5) Hibernating and awakening or jobs (HIBER and WAKE): The HIBER monitor call allows a job to place itself in a dormant state, either for a given period of time or until another job wakes it up by means of the WAKE monitor call.
References [1] P. Van Binst, Comp. Phys. Comm. 22 (1981) 345. [2] G. Depiesse, P. Van Binst, R. Vandenbroucke and G. Wilquet, Real-time data handling and process control, ed., H. Meyer, (North-Holland, Amsterdam, 1980) p. 39. [3] CERN-HYDRASystem Manual. [4] DEC, TOPS-10, Software Notebooks, Digital Equipment Corporation (1979). [5] DEC, RSX-11M, version 3.1, System reference information, Digital Equipment Corporation (1978).