LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 51 . 84 I-£6r no. 171-187 cop.ii Report No. 176 (Supersedes File No. 578) COO-1018-1050 5)6 & 4~~ 0RDER C0DE F0R THE FILM SCANNERS OF ILLIAC III K. J. Breeding, B. H. McCormick and J. R. Witsken JAN 7 U06 Lf&KAKY March 22, 1965 Digitized by the Internet Archive in 2013 http://archive.org/details/ordercodeforfilm176bree Report No. 176 ORDER CODE FOR THE FILM SCANNERS OF ILLIAC III* by K. J. Breeding, B. H. McCormick and J. R. Witsken March 22, 1965 Department of Computer Science University of Illinois Urbana, Illinois *This work was supported in part by the U.S. Atomic Energy Commission under contract No. AT(ll-l)-10l8. I . INTRODUCTION Transmission of data between an I/O channel of ILLIAC III and all attached film scanners is governed by a Film File Control (FFC). This unit also insures that information is sent to the Console Control Units (CCU) for distribution to associated CRT monitoring displays. When complete the input/output of ILLIAC III will include four (h) i/O channels, each assigned to two (2) Film Scanners: two scanners for 70-mm film, two scanners for ^o-mm film, two scanners for 35-n™ film, and two scanners for microscopic slides (biological specimens, etc.). To permit efficient usage of an IBM 1302 Disk Storage Unit within the ILLIAC III System, we have intentionally modeled the control and data transmission formats of the Film File Control upon those accepted by the IBM 28ll-l Storage Control Unit. This strategy simplifies both intra- computer communication and programming of ILLIAC III. We assume here familiarity with the General Information Manuals of the IBM 1302 Disk Storage Unit and the IBM 28U1-1 Storage Control Unit. 2. FFC ORDERS: ADDRESS AND FORMAT CONVENTIONS Four basic i/O channel commands are used to perform all film scanner/monitor operations: control, search, read, and write. Each basic command has a number of variations. Interpretation of these commands is discussed in detail in the report on the i/O Channel Control Units, or in the ILLIAC III Programming Manual. 2.1. Record Format Record format interpretation depends upon the mode of operation: Coordinate Mode (CM), Raster Mode (RM), or Vector Mode (VM) (cf ., Sections 3.1 - 3.3 below). -1- Count Key Area Data Area AM ID KL D , L Key X G Data X X J (l byte) - Record number with respect to track ■(2 bytes) - Track number with respect to film ! < track # 65^ 535 1 in CM/RM (2 bytes) - Film frame number^ AM - (l byte) - address marker G - (variable) - gap F - (l byte) - flag ID - (5 bytes) - record identifier KL - (l byte) - key length DL - (2 bytes) - data length X - (2 bytes) - cyclic check Note that the flag and cyclic check bytes are put on and removed by the file control. 2.2.1. Key Area - ( 0-255 bytes ) used, in general, to describe data that follows in the data area. In the Vector Mode, if KL = no key area is reserved in core. In the Coordinate or Raster Mode, the first twelve bytes are reserved for a special purpose as described below in "iMote that 65,535 is a theoretical maximum. "The two most significant bits of the C field are used to specify the mode of operation. A "01" in this position indicates CM; a "10" indicates RM; and a "11" indicates VM. Section 2.3. If KL = n where n > 12, the last n - 12 bytes of the key area in core are reserved; these n - 12 bytes are filled with blanks in core. 2.2.2. Data Area (Variable) : contains the data associated with the record. In the VM, DL = n where n is the number of bytes of information in the data area. In the CM or RM, the DL field will be used as follows: DL = if there is no limitation to the size of the data area. DL - n / if an alarm is to be given if the data length of the record exceeds n bytes . The flag and cyclic check bytes are put on and removed by the file control. 2.3. Key Format in Coordinate or Raster Mode In either the Coordinate or Raster Mode the first twelve bytes of the key area of each record have the following interpretation. when operating in the Coordinate Mode (see Section 3.1 below), one has no way of knowing definitely how long the data area of a record might be. Hence an upper bound can be specified in the DL field for purposes of memory protection. -3- 2.3.1 Begin Word (Display initialization parameters and begin scan coordinates) : bits 12 bits 12 bits PB XB 20 Parameter Word Configuration Gray Scale {2, k, l6, 2^6 levels) Trigger (normal/special) Alive/dead YB File Protect Not Used 31 0123^567 1 1 1 1 n See Section h and Appendix for interpretation of initialization parameters PB. -k- 2.3.2. End Word (Sweep parameters and end coordinates) 8 bits 12 bits 12 bit; PE ........ XE YE 20 31 o l 2 3 h 5 .6.7 Scan/ measure Orientation ( hori zontal/vert ical , A L- A S Not Used See Section h and Appendix for interpretation of sweep parameters PE, -5- 2.3.3. Slit Word (Slit sweep parameters and angular sweep coordinates) Slit Length A 9 Not Used - bits 12 bits 12 bits P e b e e 20 31 r 12 3 h 5 6 7 1 1 1 1 1 1 m The last four bits of the 9 B and 9 E fields are ignored. See Section h and Appendix for interpretation of slit sweep parameters. 3. FILM SCANNERS: MODES OF OPERATION As mentioned earlier, the scanner operates in one of three modes- Coordinate Mode (CM), Raster Mode (RM), and Vector Mode (VM). A description of these modes of operation is given in the following subsections. 3.1. Coordinate Mode (CM) In this mode of operation a rectangular area is defined in the CRT image plane by specifying two sets of coordinates (XB, YB); (XE, YE). Here, begin scan coordinates XB, YB and end scan coordinates XE, -12 YE are 12-bit binary addresses (0-U095 x 2 ) defining the rectangle. These coordinates are transmitted to the FFC in the order XB, YB, XE, YE--each pair of coordinates requiring three consecutive 8-bit bytes. -6- Y-Axis X-Axis FIGURE 1. ADDRESS INTERPRETATION IN COORDINATE OR RASTER MODE Upon receipt of either a read or write instruction, the rectangular area is scanned in a horizontal (vertical) TV-like sweep through the area starting at (XB, YB) and ending at (XE, YE). Parameters of the sweep are alive/dead, spot/slit, choice of trigger, scan/measure, scan line orientation (horizontal or vertical), gray scale, and stepping increments £L, £S. A description of these parameters is given in the next section. In Coordinate and Raster Modes a "track" is any particular event in the specified film frame. For example, in the bubble chamber case a "track" might be a particular beam track. A record is one rectangular area along the "track." 1 As an illustration, see Figure 2 below where once again "track" is to be considered as a beam track in a bubble- chamber photograph. As noted in Section 2.3 the coordinates (XB, YB), (XE, YE) defining each rectangle (i.e., record) and the display parameters for that rectangle are stored in the first twelve bytes of the key field of each record. For the Read order, the reading of the image is controlled by the image itself. For horizontal sweep orientation, the Y coordinate of the scan line is first formed in two consecutive bytes which are left justified. (For the vertical orientation, i.e., scan parallel to the Y axis, the X coordinate is first formed.) This Y coordinate is transmitted if and only if a transition from white to black (or vice versa) occurs in the image of Records are referenced beginning with Record #1 rather than Record #0. -T- /\ % / / ' ft / , . 1 ft. - 1 ■ • / T Rd^avH it"5 1 / Rprnrrl wP / 1 ft / 1 necora jfi. » FIGURE 2. "TRACK" FORMAT IN COORDINATE OR RASTER MODE this scan line. This transition then triggers the readout of a l6-bit X coordinate. Further transitions on the scan line cause additional new X coordinates to be read out. All flag bits are suppressed except for the last coordinate of the scan line which is set to indicate this fact. An analogous situation occurs when writing (i.e., recording on film). In addition, it is possible in the Coordinate Mode to transmit gray- scale information. First a gray-scale level greater than two (2) is specified, The encoding consists of coordinate information immediately followed by one (l) byte of gray-scale information. This gray-scale information is appended to all coordinates which give the beam displacement within a scan line. Coordinates of the scan line, however, are not accompanied by a gray-scale byte. A "special" trigger can be selected to initiate coordinate readout on other intensity patterns. See Section U.1.3. -8- 3.2. Raster Mode (RM) This mode of operation differs from the Coordinate Mode only in the form of encoding used. If a Read order is to be executed, each scan line is sampled at regular intervals, AS. The pulse height at the sampled intervals is uniformly encoded into 1, 2, U, or 8 bits depending upon the gray scale specified (cf. Section U.I.2.). These bits are packed serially, left to right (with flag bits suppressed) in consecutive bytes for transmission to the i/O channel. A new byte is initiated on each scan line. At the end of a line, bit positions not filled are transmitted at O's and the flag bit of this last byte is set to 1. A similar situation occurs when writing. 3.3. Vector Mode (VM) Any line drawing may be approximated by a finite string of vectors . In this mode of operation a string of such vectors will be used to display line drawings, in particular at the monitor CRT. Each vector is made up of the pair (+ 6S, + 6L) where < 8S < 7, < 6L < 7 and (6S, BL) ^ (0,0). The head of one vector coincides with the tail of the next. Thus the spatial location of each vector within the CRT image plane is relative to the accumulated displacement of all preceding vectors and the coordinate pair at which the display was initiated. The description of line drawings, in addition to the vector strings which describe paths, must necessarily contain other descriptors such as vertex labels. The set of the vectors and these additional descriptors form the instruction set for this mode of operation. -9- This instruction set consists largely of stack operations. The stack used in this mode of operation may be visualized as shown below. .&_ i».i2 <> : L2 Register A PE AX AY a a tl V B l X 1 Y i Stack B 2 X 2 Y 2 B 3 X 3 Y 3 The eight (8) instructions available for the VM case are identified by the symbols : B M blank The interpretation of these symbols is as follows: C - (a) If the preceding character was not a period (.), place the contents of A into S, and push the stack down (PUSH) (b) If the preceding character was a period (.), duplicate the contents of S in A (STORE) B - Place "the next word (h bytes) in A and duplicate in S.. , pushing stack down (LOAD and PUSH) M - Modulate the monitor CRT beam, i.e., pulse it on and off once , - Duplicate the contents of S in A (STORE) . - Delete the top of stack S and pop stack up (POP) * - Halt P - Load the next byte into PE and copy by overwriting into B (LOAD BYTE) blank - No operation •10- Each vector or instruction is made up of a 9-bit character (8-bit byte plus flag bit) as shown below. The bit configurations and interpretations i r oS 6S 5L &L 0123 h 5 "o are given in the Appendix. If SS = 5L = 0, the character will be interpreted as an instruction, otherwise as a vector. The byte labeled PE with A and B. in the stack will be interpreted in the same way as PE of the End Parameter Word (cf. Section 2.3.2.). The X and Y fields give the coordinates of the beam position. As an illustration of a string representation for a line drawing, consider the figure shown below. The string used to describe this line drawing is b(x,y, Pi C p 2 C p^ , p^ . C p,. C pg , p . . C pg , p^ . * The p.'s are generic representations for the string of vectors used to describe (or approximate) the path connecting vertices. ■11- h. PICTURE DISPLAY PARAMETERS In the picture display mode of operation the following parameters are necessary. h .1 Begin Parameters (PB) U.l.l. Parameter Word Configuration : A begin word is always used. An end word is used if translation of the spot (or slit) is intended. If a slit is called for, a slit word must accompany the order as the final parameter word. The interpretation of the bit configuration is as follows. Sit Configuration 00 01 10 11 Interpretation Spot only, no translation Slit only, no translation Spot, rectangular sweep Slit, rectangular and angular sweep k.1.2. Gray Scale The maximum number of image intensity states (read command) or the recording beam intensity states (write command) recognized by the scanner/camera is specified by the gray-scale parameters (0, 1, 2, or 3). The interpretation of the gray-scale parameter bit configuration is as follows : -12- Bit Configurations Interpretation 00-0 2 levels of gray (black, white) 01-1 h levels of gray 10-2 l6 levels of gray 11-3 256 levels of gray For bit encoding, gray-scale information is packed as described above in h. 1.2.1. No gray-scale transmission is required for simple black/white transitions in coordinate encoding. For coordinate encoding with gray scale of 4, 16 or 256 states, gray-scale information is not packed. This encoding is described above in 4.1.2.3. 4.1.3. Trigger (Normal/Special) Triggering of output information may be done by either a standard level discriminator or by a special triggering system supplied by the user. The special trigger must be provided in a standardized plug-in module . 4.1.4. Alive or Dead There are times when the monitor display at a console may not require corresponding scanning/recording of film. In cases such as this one would like to have available the control features of the film scanning unit but not actually use the deflection circuitry and the CRT of a regular scanner. To handle this situation, a monitor is allowed to use a film-scanning unit in a mode where its electron beam and deflection amplifier have been turned off. When a film scanner is used in such a manner it is called dead. A gray-scale range of 256 is not attainable with the high-resolution CRT scanners but is specified to make the FFC sufficiently general to be applicable for other tasks: controlling pulse height encoding devices, etc -13- Monitors, of course, position the beam only by a direct digital- to-analogue conversion. Because of the wide angle deflection employed, a straight line at the film scanner may appear slightly curved at the monitor . ^.1.5. File Protect on A picture may be monitored at all times by a monitoring stati However, an indication must be given (file protect bit = "1") when the station is not permitted to alter the transmitted image in any manner whatsoever. k.2. End Parameters (PE) h . 2 . 1 . Scan or Measure The spot on the CRT may be positioned solely by direct digital- to-analogue conversion of a 12-bit X, 12-bit Y coordinate (scan mode, "Of* ), or alternatively by appendaging an 8-bit X, 8-bit Y vernier signal to the initial X, Y "benchmark" position (measure mode, "1"). In the latter case, four bits of the digital-to-analogue conversion (DAC) are overlapped, so in effect the beam in the measure mode is positioned by a l6-bit DAC for each X and Y coordinate. Scan uses absolute end coordinates XE, YE; measure mode uses * _o o relative end coordinates AX = XE X 2 and AY = YE X 2~ . The end coordinates of the measure mode are relative to the begin coordinates. Scan mode is approximately ten times faster. In either mode reproducible curvilinear image distortion must be expected. Measure mode is anticipated to achieve the equivalent measure resolution of + k microns over a 60 millimeter image. Hence there may be fluctuations in the last two bits positions in coordinate readout. U.2.2. Scan Line Orientation The scan lines may be specified as either parallel to the X-axis ("0") or to the Y-axis ("1"). -Ik- h.2.3. Line Stepping Increment AL The line stepping increment is used in either the Raster or Coordinate -12 Mode to specify the interscan line separation. Here AL = 1, 2, h } 8 X 2 h.2.h. Scan Stepping Increment AS The scan stepping increment is used in either the Raster or Coordinate Mode to specify the sampling frequency along a line of scan. Here AS = 1, 2, h, or 8 X 2~ 12 . U.3. Slit Parameters ( P j The scanning slit has the form shown in the figure belov. y Slit Length Coordinates The polar angle, Q, is measured in units of ( ) and therefore all slit orientations have the range < 9 < 1. This makes it possible to consider 6B and 9E as 8-bit fractions. U.3.1. Slit Length (S) -12 The slit length, S, may be 1, 2, h, , rt , or 128 X2- U.3.2. Angle Stepping Increment (A6) The angle stepping increment may be 1, 2, k. .... or 128 X AS -. . -8 ~ o min Since 6 is interpreted as an 8-bit binary fraction, A0 . = 2 = 0.7 . ' mm -15- ^.3-3. Begin Coordinates of Angular Sweep (QB) The angular sweep begin coordinate indicates the polar angle on which the sweep is to be started. U.3.U. End Coordinates of Angular Sweep (QE) The angular sweep end coordinate indicates the polar angle on which the sweep is to end. U.3.5. Interpretation of the Instruction The slit control word sets up a series of line sweeps with a variably oriented slit. Each line of a specified box will be swept with a slit of length S and orientation Q = Q + nA6 , (n = 0, 1, ...) until 9 = Q . At this time the next line is swept in a similar manner until the entire box has been scanned. -16- APPENDIX Begin Parameters (PB) Bit Position Pattern Interpretation 0-1 00 01 10 11 Spot only, no translation Slit only, no translation Spot, rectangular sweep Slit, rectangular and angular sweep 2-3 00 01 10 11 2 levels of gray (black/white) k levels of gray l6 levels of gray 256 levels of gray h 1 Normal trigger Special trigger 5 1 Alive Dead 6 1 File protect off (alteration permitted) File protect on (alteration not permitted) 7 -- Not used -17- End Parameters (PE) Bit Position Pattern Interpretation 1 Scan mode Measure mode 1 1 Horizontal scan line Vertical scan line 2-3 00 01 10 11 AL = 1 X 2~ 12 -12 AL - 2 X 2 -12 AL = k X 2 * AL = 8 X 2" 12 *-5 00 01 10 . 11 -12 AS = 1 x 2 -12 •AS = 2 X 2 -12 £S = h X 2 ^ -12 AS = 8 X 2 6-7 Not used -18- Slit Parameters (Pe) Bit Position Pattern Interpretation .-." 000 001 010 Oil 100 101 110 111 -12 S - 1 X 2 -12 S - 2 X 2 S = k X 2' 12 s = 8 x 2~ 12 s = 16 x 2 " 12 -12 S = 32 X 2 S - 6U x 2 " 12 S = 128 X 2~ 12 3-5 000 001 010 Oil 100 101 110 111 AG = 1 X 2~ A0 = 2 X 2~ Ae = h x 2 A0 = 8 X 2 Ae = 16 x 2 -8 A0 = 32 X 2 Ae = 6U x 2~ -8 Ae = 128 x 2 6-7 — Not used -19- Vectors Mode (VM) Parameters Bit Position Bit Conf iguration Interpretation F 1 Beam OFF Beam ON 1 + 5S - 5S 1-3 001 010 Oil 100 101 110 111 5S = IAS 5S = 2as 5S a 3AS 5S = ^AS 5S = 5AS 5S = 6as 5S = 7AS k 1 + 5L - SL 5 001 010 Oil 100 101 110 111 5L = 1AL 5L = 2AL 6L = 3AL 5L = UAL 5L = 5AL 5L = 6AL 5L = 7AL F, 1-7 0000 0000 1 0000 0000 1000 0000 1 1000 0000 0000 1000 1 0000 1000 1000 1000 1 1000 1000 NOP C B M > • * P i -20- ISi^BSITYOF.LL.NO.S^BBAM* mucin ,pk>cm*>"" , " u ° in 0112 088398208