Computer tomography apparatus and method of measuring and processing data obtained therefrom
5 claims: 2 independent, 3 dependent
- 1Claims:ן, A method of determining transmission values or absorption values of penetrating radiation in a layer of an object, utilizing one or more radiation sources for generating radiation wherewith the layer is irradiated, and detec5 tor elements which detect radiation having passed through the object, the radiation passing in a direction in the.layer and the source and the detector elements being moved with respect to the object in order to measure radiation transmission data in a plurality of directions, output 10 signals of the detector elements being sampled equidistantly distributed in time and being applied to imaging means which form, on the basis of the radiation transmission data, tomographic image data which represent an image of radiation transmission-or absorption values of the layer of the 15 object, characterized, in that position signals which are representative of the instantaneous position of the radiation source and the detector elements with respect to the object are obtained, and by means of the imaging means an interpolation being performed between the radiation transmission . data thereby using said position signals for obtaining data signals which are imagined to be equidistantly distributed in space, said data signals being used for forming tomographic image data by means of the imaging means.
- 47. A computer tomography apparatus, comprising a scanning mechanism for moving at least one source of penetrating radiation and detector elements for measuring 25 radiation transmission data of a layer of an object irradiated by thberadiation in a plurality of directions, each direction of the radiation being situated in the layer of the object, sampling means for sampling output signals of the detector elements to obtain radiation transmission data which are representative of the radiation transmission in the layer of the object along a plurality of transmission paths which are separated in space, and imaging means for receiving and processing the radiation transmission, data to form tomographic image data 35 . which produce an image of radiation transmission or absorption values of the layer of the object, characterized in that the tomography apparatus comprises a position encoder for generating an output signal which is a measure '71/A .ל- ! .'''. יי׳'. “ ׳י. ‘ יי׳'’ * י׳26.8.78 - 5° - ;.;. PHA 20779 . V for the position of the source and the detector elements with respect to the object to be irradiated, the sampling means sampling the output signals of the detector elements . as well as of the position, encoder equidistantly in time, 5 the imaging means interpolating the radiation transmission data thereby using the position data from the source and the detector elements in order to obtain data signals which are imagined to be equidistantly distributed in space and which are converted, into tomographic image data 10 by means of the imaging means.
Independent claims2
1,187 paragraphs in 46 sections, as filed
Method of measuring and processing measuring data in computer tomography apparatus, and computer tomography apparatus comprising means for performing the method.
The invention relates to a method of determining transmission values or absorption values of penetrating radiation in a layer of an object, utilizing one or more radiation sources for generating radiation wherewith 5 the layer is irradiated, and detector ' elements which detect the radiation having passed through the object, the radiation passing in a direction in the layer and the source and the detector elements being moved with respect to the object in. order to measure radiation transmission data in 10 a plurality of directions, output signals of the detector elements being sampled equidistantly distributed in time and being applied to imaging means which form, on the basis of the radiation transmission data, tomographic image data which represent an image of radiation trans15 mission or absorption values of the layer of the object. The invention furthermore relates to a computei’ tomography apparatus comprising means for performing a method in accordance with the invention.
Methods and apparatus for examining objects by 20 means of penetrating radiation (for example, X-ray or gamma-ray radiation) and for producing images of radiation transmission values in object layers by way of computei1 tomography are known and described, for example, in United States Patent Specification 3,778,614. In computer tomo25 graphy apparatus, the object undergoing X-ray examination '26.8.78 2 PHA 20779'' is, scanned by an X-ray source in combination with one or more X-ray detectors which rotate and/or translate about ' the object to measure the radiation transmission along a large plurality of independent paths in an examination 5 plane. The measuring data obtained from the detectors are then processed and combined, using known computational algorithms, in a digital computer in order to generate images of transmissivity characteristics in the plane.
Several computational algorithms are available .10 for generating image information from transmission data.
A convolution and backprojection algorithm, of the type first described by Ramachandran and Lakshminarayanan in Proceedings of the National Academic Science of USA, vol. 68, No. 9, pages 22J6 to 2240, September 1971» is 15 generally believed to provide a reasonable compromise between computer equipment costs and image reconstruction time and is utilized in various forms in most contemporary computer tomography apparatus. Convolution-backprojection algorithms of this kind are very efficiently utilized for processing the measuring data measured at discrete points which are uniformly distributed in space. However, the scanning mechanisms which are utilized in the measurement of the radiation transmission generally have high inertia moments and tend to translate and/or rotate at a speed 25 which varies in time. When measuring data from such mechanisms are sampled at a uniform periodic rate, the corresponding measuring paths along which the measurements are performed are not uniformly distributed in space.
It is an object of the invention to reduce the 30 complexity of the scanning mechanism and the data transmission apparatus in computer tomography apparatus. It is another object of the invention to reduce the effect of statistical signal variations and noise on the image quality in computer tomography apparatus.
3s To this end, the method in accordance with the invention is characterized in that position signals which are representative of the instantaneous position of the radiation source and the detector elements with respect to
26.8.78 ;3 '׳ ' PHA 20779' ; . ' the object are obtained and by means of the imaging means an interpolation being performed between the radiation transmission data thereby using said position signals for obtaining data signals which are imagined to be equidi5 stantly distributed in space said data signals being used for forming tomographic image data by means of the imaging means.
The computer tomography apparatus in accordance with the invention is characterized in that it comprises 1° a position encoder for generating an output signal which is a measure for the position of the source and the detector elements with respect to the object to be irradiated, the sampling means sampling the output signals of the detector elements as well as of the position encoder equi15 distantly in time, the imaging means interpolating radiation transmission data obtained by sampling the output signals of the detector elements thereby using the position data from the source and the detector elements obtained by t . sampling t״he output signals of the position encoder in or20 der to obtain data signals which are imagined to be equi' distantly distributed in space and which are converted into tomographic image data by means of the imaging means. In accordance with the invention, measurements, of X-ray transmission in computer tomography apparatus are 25 performed at points which are equidistant in time (and which are generally not uniformly distributed in space due to speed fluctuations of the scanning mechanism) at a sampling rate substantially higher than the cut-off frequency of the filter function utilized in a convolution3θ backprojection image reconstruction algorithm. Groups of measuring data equidistantly sampled in time which surround each point of a series of points equidistantly distributed in space (referred to hereinafter as equidistant points) are fitted to a high order curve (for example 35 a quadratic curve). By interpolation of the measuring data on the curve, data signals having a uniform distribution in space are obtained. The computer tomography apparatus in accordance with the invention enables data signals to
ך -.'- ;.— '/. י-; —־. י ־1'״.׳'־ ־ :
26.8.78 4 / PHA 20779 be obtained which have been measured as if it were by means . of a scanning moving at a uniform speed, with the result that generally the cost of the scanning mechanism and the י complexity thereof are reduced; inherently low pass filter- 5. ing of the measuring data occurs and hence a reduction of noise, and effective multiplexing and transmission of data signals from the scanning apparatus to the digital computer is possible .
The invention and further objectives and advan10 tages thereof will be described in detail hereinafter with reference to the accompanying diagrammatic drawings.
Figure 1 diagramm^tically shows a tomography apparatus in. accordance with the invention, and
Figures 2 and 3 graphically show the measuring 15 data sampling/processing in accordance with the invention.
Figure 1 shows a computer tomography apparatus which incorporates the measuring data processing equipment and techniques according to the invention. An X-ray source or other radiation source 10 is mounted on a yoke 12 20 opposite a linear array of radiation detectors 14. An ob. ject 16 undergoing tomographic examination is disposed between the radiation source 10 and the״detectors'14 in the. radiation generated by the radiation source 10. Motor drives 13a and 13b cause the yoke 12 to translate and ro25 tate, respectively, about the object 16 whereby the detectors 14 produce signals which are a measure for the radiation attenuation of the radiation generated by the source 10 and detected by the detectors 14.
The radiation attenuation is measured along a 30 large number of separate paths through the object 16.
A position encoder 18 is connected between the yoke 12 and a fixed reference point to produce signals which are a measure for the rotational and translational position of the source 10 and the detectors 14 with respect 35 to the body 16. The measuring data from the individual detectors 14 and the position encoder 18 are periodically sampled (for example, in digital form) in a sampler and multiplexer circuit 20 in order to obtain radiation trans26.8.78 i 5 PHA 20779.' ; ' mission data and position data respectively and the data are stored, for example, in a disk file 22 and transmitted to a digital computer 24 which computes image data representative of the physical characteristics of the object 5 , 16 on the basis of the radiation transmission and position data. The image data may be displayed on a cathode ray tube display 26 which is driven by the computer 24.
In general, the yoke 12 will undergo some velocity changes while X-ray measurements are being taken. Such 10 . changes may even be unavoidable, as is the case when acceleration and deceleration of the yoke 12 is necessary at the beginning and the end, respectively, of the translational motion where X-ray measurements are still required. Velocity fluctuations may be unintentional and. difficult to avoid due to the performance limitations of the yoke velocity control system. Thus, the velocity of the yoke may vary substantially as it rotates and/or translates with respect to the object 16. If-the multiplexer circuit 20 operates to acquire data from the detectors 14 20 at a uniform periodic rate, the measuring data thus obtained will correspond to radiation transmission data measured along paths which are non-uniformly distributed in space. Such radiation transmission data are generally not suited for useful image reconstruction with a convo25 lution-backprojection algorithm.
Image reconstruction algorithms may compute the radiation absorption at each of a large number (n) of picture elements by solution of an equal or larger number of simultaneous equations with N unknown values. A minimum of 30 N X-ray transmission data must, therefore, be determined to allow a closed solution of the set of equations. In accordance with the invention, radiation transmission data are measured by the . detectors 14 along a number of transmission paths which is substantially larger (5 to 10 times 35 as many paths) than the number of desired picture elements in the image to be reconstructed. The position of the yoke 12, which is in continuous motion during the course of the measurements, is monitored and measured during the
26.8.78
PHA 20779 measurements, and. the measuring values thereof (position data) are stored in the disk file 22, together with the .radiation transmission, data from the detectors 14. In a computer tomography apparatus in accordance with the invention, the multiplexer 20 serially scans the array of detectors 14 (which may consist of, for example, 30 separate detectors) and samples the measuring values from the position encoder twice during each sampling of the detector measuring data.
The signals which are representative of the sampled measuring data from the detectors 14 and the measuring data from the associated position of the yoke 12 are applied from the disk file 22 to the digital computer 24 and are processed according to a program (an example of which is included appendix A) which compensates for the geometry and motion of the yoke 12 and the array of detectors 14 in order to produce a data signal file representative of the actual spatial position of the transmissivity measurements with respect to known reference points in the scanner mechanism. The curves in Figures 2 and 3 represent typical data signals which can be produced by the measurements and computations in accordance with the invention. The round dots in the Figures represent measuring data which are transmitted by the multiplexer 20 to the disk file 22 at uniform intervals in time. Figure 2 represents the spatial position (x_^) of each of the computed measuring points (+).which, because of the non-uniform motion of the. yoke 12, are not equidistantly distributed in time. Figure 3 represents the corresponding measuring data, obtained in each of the measuring points, the measuring data varying as a function of the structure of the object 16 and also being subject to statistical variation and the effects of additive noise. The points A, B and C in Figure 2 represent the position x^ of a set of uniformly distributed measuring paths which define desirable, measuring points for data input to a convolution-backprojection image reconstruction program. The corresponding points A', B’ and 0' in Figure 3 represent equivalent sampling
26.8.78 יי ' 7 .־. י ' PHA 9O779T instants at which optimum sampling for the paths A, Band Cis desired. It is characteristic of the invention that the points A',. B' and C* do not coincide with the measuring points actually determined by the sampling.
In accordance with the invention, measuring data from a group of sampling points adjacent the ideal measuring points A', B' and C', respectively, are interpolated to provide an equivalent data signal in the ideal measuring points A1, B1 and C*, respectively. For example, the
1° data signal Y. at the point A' is calculated by interA pointing measuring data measured in the five nearest sampling points 101, 102, 103, 104 and 105. Likewise, the data signal (Ynl) in the point C' is determined by interpolation of data from the five nearest sampling points
109, 110, 111, 112 and 113.
Interpolation is most efficiently accomplished in the digital computer. The computer program first searches the file of position encoder data, as corrected for scanner geometry and motion effects, to determine the sampling point which is closest in space to the position of a desired transmission path. The closest sampling point (for example, the sampling point 103-for the path position A’), and the four adjacent measuring points (101, 102, 104 and 105) determine a curve, a quadratic curve or high 25 order curve, by means of a least-squares fitting technique or any other suitable method, which deviates as little as possible from the measuring points 101-105 in order to form a functional representation of the variation of the measuring data in the region of the point A1. The computed curve is then interpolated between two sampling points in order to obtain a data signal at the point A'. The curve fitting and the interpolation, algorithm provide smoothing of the statistical data fluctuations in fact providing a low-pass filter, and allow optimum spatial distribution
3S of the measuring paths fox’ efficient use of the convolution-backprojection algorithm.
By way of example, a quadratic curve having the form a + bx + ex2 may be generated through the points
26.8.78 8 ' PHA 20779־־4־ y.yp by a least-squares quadratic fit using the equations:
a = 1/35 (3־y_2 + 12y-i + 17^0 + t2y1 3־y2) b = 1/1.0 (2־y_2 - y_1 + y-j + 2y2) s C = 1/14 (2y_2 - y_1y0 - y1 + 2y2)
This curve is then interpolated in order to produce a data signal at points which are most suited for use in a reconstruction algorithm, for example, a. convolution-backprojection algorithm based on the method of Ramachandran 10 and Lakshminarayanan described in said publication.
By way of further example, and to permit others to more easily practice the invention, appendix A is a representative computer program (written in Digital Electronics Corporation PDP11 machine language with Fortran 15 subroutines) which compensate for motions of the scanning mechanism and geometry effects and synthesizes data optiraally equidistantly distributed in space from data equidistantly distributed in time.
The methods and apparatus of the invention allow 20 rapid scanning and acquisition of transmission data for computer tomography systems by permitting the use of a scanning mechanism having non-constant velocity profiles, with subsequent efficient processing using convolutionbackprojection algorithms. The method further allows 25 statistical averaging and low-pass filtering which tend to reduce the effects of noise and other statistical fluctuations On image quality and thus contribute to lower radiation levels and patient dose.
The invention has been described in detail herein in accordance with certain embodiments thereof, yet many modifications and changes may be effected by those skilled in. the art within the scope of the invention. Accordingly, it is intended by the appended claims to cover all such modifications and changes as fall within 33 the true spirit and scope of the invention.
26.8.78
PHA 20777
Appendix A ’ , ’ ; Task which creates projections (g(L, THETA) from raw scan ’ ־. i data 5 Copyright !976 by Philips Medical Systems, Inc.
l. ,.
;RAW DATA STARTS AT RDSSEC ON DK.1:
;G DATA STARTS AT GSSEC ON DK1 : (MAY OVERWRITE RAW DATA) ;THIS PROGRAM DOES THE FOLLOWING:
10 ; READS TIME-SAMPLED DATA FROM DISK ; FINDS SYNC ! ; CONVERTS NUMBERS FROM DATA ACQUISITION ELECTRONICS TO MU SUMS ; SYNTHESIZES SPATIALLY־SAMPLED DATA FROM TIME SAMPLED לי DATA ; WRITES 1 G TO DISK FOR EACH DETECTOR FOR EACH TRANSLATION ';THE RAW DATA CONSISTS OF FRAMES OF 34 WORDS EACH, IN THE
FORM:
<td colspan="3"> 20</td>
<td> 5</td><td> SYNC</td><td> ALWAYS 0</td>
<td> 9 5 ’</td><td> POSITION DETECTOR 1</td><td> LINEAR ENCODER READING 1ST DETECTOR IN DETECTOR ARRAY</td>
<td> 1</td><td> DETECTOR 2</td><td> 2ND</td>
<td> 5 25 5 5</td><td> ETC. DETECTOR 15 ,REF. DETECTOR</td><td> SIGNAL FROM REFERENCE DETECTOR</td>
<td> ? J 5 30 5 5</td><td> POSITION DETECTOR 16 DETECTOR 17 ETC. DETECTOR 30׳</td><td> ANOTHER LINEAR ENCODER READING</td>
;THE DETECTOR READINGS ARE THE OUTPUT OF A LOGARITHMIC AMPLIFIER .
;THE G ARRAYS ARE 512 WORDS LONG, OF WHICH THE 1ST 511 ARE : DATA ’ .GLOBL MG .LIST MEB
-.10 - . _.
26.8.78 ' &#1523; ' PHA 2077.9' . / .MCALL&#1523; Q10$S,WTSE$S,EXITS$S,RQST$S .MCALL FSRSZ$,FDBDF$,.FDRC$A,FDOPU .MCALL &#1497; NMBLK$,CLOSER , OPEN$R,GET$S ' ,MCALL ALUN$S
&#1497; 5
SY0=1
1)1:.1=2 LGREC=512. NSPSAM=511. RDSSEC=24. 10 . '
GSSEC=24. SEXIBF12&#1470;&#1470;. NDETS=30&#1523;. FANANG=10000. SAXDMM=W43.
,
ENCLPI=2000. AMICRO=700. NTRANS=18. BYTSIB=2kSEXIBFH256. BYTSOB=2mNDETS'5eLGREC 20
SXPTRN24*. 11&#1470;&#1470;.
BFSTRN=SXPTRN/SEXIBF osxtrn=ndetsxlgrec/256.
NFRMS=2XBYTSIB/68.-14. NFRPB=BYTSIB/68.+1 25 IDIFSH=7 • TAU=18.
TM=5
5. ;MACRO TO TEST FOR 1/0 ERRORS .
<td> 30</td><td> 1$:</td><td> .MACRO ’ CMPB BEQ JSR</td><td> TSTIO$ ' SB SB,#IS.SUC 1$ PC,ERR</td><td> ; TEST FOR SUCCESSFUL 1/0 ; ABORT IF I/O WAS BAD' ; CONTINUE</td>
<td> 35</td><td> •</td><td> . ENDM</td><td> TSTIO$</td><td></td>
;MACRO TO MULTIPLY AND ADD TO ACHI,ACLO .MACRO MA$ FACT1,FACT2
MOV FACT1,R4
<td></td><td></td><td></td><td> -</td><td></td>
<td> ί’</td><td></td><td></td><td> .״..- . . ..- . . . . . . .. . .</td><td> ח־ . .. .:. . ...Γ '...,..:</td>
<td> ־־.26.8</td><td> ?8</td><td></td><td> - A/H</td><td> ' PHA 20779</td>
<td></td><td></td><td> ' MUL</td><td> FACT2.R4</td><td></td>
<td></td><td></td><td> ADD</td><td> R5,ACLO</td><td></td>
<td></td><td></td><td> ADC</td><td> R4</td><td> . ‘</td>
<td></td><td></td><td> ADD</td><td> R4,AC HI</td><td></td>
<td><sup>5</sup> ' ί ׳1 י </td><td></td><td> .ENDM</td><td> MA$</td><td></td>
<td> i 9</td><td></td><td> FSRSZ$</td><td> 1,5 1 2 .</td><td></td>
<td colspan="2"> ,FDBIDN:</td><td> FDBDF$</td><td></td><td></td>
<td> 10</td><td></td><td> FDRC$A</td><td> . 12־ 5 ,RCPBUF ,</td><td></td>
<td></td><td></td><td> . WORD</td><td> RCPBUF</td><td></td>
<td></td><td></td><td> .WORD</td><td> 512.</td><td></td>
<td></td><td></td><td> FDOP$A </td><td> SY0,,IDNNAM</td><td></td>
<td></td><td></td><td> .BYTE</td><td> SY0</td><td></td>
<td> 15</td><td></td><td> .WORD</td><td> IDNNAM</td><td></td>
<td colspan="2"> ן IDNNAM:</td><td> NMBLKS</td><td> RECP,DAT</td><td></td>
<td></td><td></td><td> .RAD5A</td><td> /RECP/</td><td></td>
<td></td><td></td><td> .WORD</td><td> 0</td><td></td>
<td> 20</td><td></td><td> .RAD30</td><td> /DAT/</td><td></td>
<td> 5</td><td></td><td></td><td></td><td> /</td>
<td> 5 9 MG</td><td></td><td> CLR</td><td> TRNSDN</td><td></td>
<td> 25 5</td><td></td><td> MOV</td><td> #GSSEC,OUTSEC</td><td> ;AND OUTPUT SECTOR</td>
<td colspan="4"> 9 ;READ SCAN PARAMETERS FROM DISK</td><td> FILE CREATED BY SETREC</td>
<td></td><td></td><td> MOV</td><td> #FDBIDN,R0</td><td> ;MOVE FDB ADDRESS INTO</td>
<td> 30</td><td></td><td></td><td></td><td> R0</td>
<td colspan="2"> REDWDS:</td><td> OPEN$R</td><td> R0...,ERR</td><td> ;OPEN RECP.DAT FILE FOR</td>
<td></td><td></td><td></td><td></td><td> READING</td>
<td></td><td></td><td> .!IF</td><td> NB,#FO׳.RD,</td><td> MOVE #FO.RD,F.FACC(R0)</td>
<td></td><td></td><td> JSR</td><td> PC ,. OPEN</td><td></td>
<td> 35</td><td></td><td> BCC</td><td> .+6</td><td></td>
<td></td><td></td><td> ־ JSR</td><td> PC. ERR</td><td></td>
<td colspan="2"> GETDT:</td><td> GET$S</td><td> R0., , ERR</td><td> ;READ THE DATA INTO</td>
<td></td><td></td><td></td><td></td><td> RCPBUF</td>
I
<td rowspan="2"></td><td colspan="3"> ;, : / . <sub>;</sub>. . ־ - 12-. <sup>:</sup> , . :</td><td rowspan="2"> 20779</td>
<td> 26.8.78</td><td colspan="2"> ' PHA</td>
<td> •</td><td> ..</td><td> JSR BCG</td><td> PC,.GETSQ ' . + 6 .</td><td></td>
<td></td><td></td><td> JSR</td><td> PC , ERR .</td><td></td>
<td></td><td></td><td> MOV</td><td> #RCPBUF+2,R1 '</td><td></td>
<td></td><td> 5</td><td> MOV</td><td> (R;) + , TA</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,IOFF</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,ISA</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,TAUSF</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1) + , FACTOR</td><td></td>
<td></td><td> 10</td><td> MOV</td><td> (R1)+,NOISLM</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,DPLIM</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,IFA</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1)+,ITO</td><td></td>
<td></td><td></td><td> CLOSER</td><td> R0,ERR</td><td></td>
<td></td><td> 15׳</td><td> JSR</td><td> PC,.CLOSE</td><td></td>
<td></td><td></td><td> BCC</td><td> .+6</td><td></td>
<td></td><td> !</td><td> JSR</td><td> PC,ERR</td><td></td>
<td></td><td> > 20' ;COMPUTE</td><td colspan="2"> NORMALIZATION FACTOR FROM (POSSIBLY PATCHED)</td><td> VALUE</td>
<td></td><td> • OF A:</td><td> CLR</td><td> R4 '</td><td></td>
<td></td><td></td><td> MOV</td><td> FACTOR,R5 .</td><td></td>
<td></td><td></td><td> ASHC</td><td> #9-,4</td><td></td>
<td></td><td> 25</td><td> DIV</td><td> IA,R4 ; FACTOR« 100J2F/1A</td><td></td>
<td></td><td></td><td> MOV</td><td> R4,SCFAC</td><td></td>
;SET UP TABLES OF DETECTOR PARAMETERS:
;COMPUTE TABLE OF ENCODER EADINGS CORRESPONDING TO L=O ;AND ;COMPUTE TABLE OF DIFFERENTIAL ENCODER READINGS ;CALL CETABS(1A,IOFF,ISA,IFA,ITO,ND,LP1)
MOV LARGEST ,R5 .JSR PC,CETABS > .
<td></td><td></td><td> . 13 -</td>
<td> 26.8.78 .</td><td></td><td> 7*׳ ..... <sub>PHA</sub> 20779^</td>
<td> י ' ;SELECT ASK: 5 10 15 20' 25 .u: 30 35</td><td colspan="2"> ft OF POINTS TO BE SMOOTHED ' . QIO$S #IO.WLB,#TM,#1 , ,#IOSTB, ,<^PMSG ,#2 ,#0> CLR -(SP) CLR -(SP) CLR ־(SP) CLR “(SP) MOV #2,-(SP) MOV #PMSG,-(SP) CLR -(SP) MOV #I0STB,-(5P) CLR , -(SP) MOVE #1 , (SP) MOV #TM,-(SP) MOV #TO.WLB,-(SP) MOV . (PC)+,-(SP) .BYTE 1,12. EMT <sup>Λ</sup>Ο<377> WTSE$S ^1 MOV #1,-(SP) MOV (PC)+,-(SP) .BYTE 41.,2 EMT. <sup>Λ</sup>Ο<377> CMPB #IS.SUC,IOSTB BEQ 1$ JSR PC,ERR QIO$S #IO.RLB,#TM,#1 , ,#IOSTB, , <#SMOTH,^2> CLR -(SP) CLR ־(SP) CLR -(SP) CLR ' ־(SP) MOV #2,-(SP) MOV . #SMOTH, - (SP) CLR -(SP) MOV y/IOSTB,-(SP) CLR ־(SP) ' MOVB #1,(SP) MOV #TM,-(SP) MOV #IO.RLB,-(SP)</td>
<td> 26.8.78</td><td>-. rtU</td><td> PHA 20779</td>
<td> MOV ' י י י . י י'</td><td> (PC)+,-(SP)</td><td></td>
<td> . .BYTE</td><td> 1,12.</td><td> ' r '</td>
<td> ' EMT י</td><td><sup>λ</sup>Ο<377></td><td></td>
<td> WTSE$S</td><td> #1</td><td></td>
<td> S MOV</td><td> #1,-(SP)</td><td></td>
<td> MOV</td><td> (PC)+,-(SP)</td><td></td>
<td> .BYTE</td><td> 4 1.,2</td><td> -¾ '</td>
<td> EMT</td><td><sup>λ</sup>Ο<377></td><td></td>
<td> CMPB</td><td> #IS.SUC,IOSTB</td><td></td>
<td><sup>10</sup> BEQ</td><td> 2$</td><td></td>
<td> JSR</td><td> PC , ERR</td><td> .</td>
<td> 2$: MOV</td><td> SMOTH,R1</td><td></td>
<td> CMP</td><td> 065׳,R1</td><td></td>
<td> BNE.</td><td> 3$</td><td></td>
<td><sup>15</sup> MOV</td><td> #5 ,SMOTH</td><td></td>
<td> MOV</td><td> #0,DISP</td><td></td>
<td> BR</td><td> DOTRAN</td><td></td>
<td> 3$: CMP</td><td> #31461,R1</td><td></td>
<td> BNE</td><td> 4$ </td><td></td>
<td><sup>20</sup> MOV</td><td> #13-,SMOTH</td><td></td>
<td> MOV</td><td> #10.,DISP</td><td> ־׳></td>
<td> BR</td><td> DOTRAN</td><td></td>
<td> 4$: CMP</td><td> #7 1 . R1</td><td></td>
<td> BNE</td><td> ASK</td><td></td>
<td><sup>25</sup> MOV</td><td> #9.,SMOTH</td><td></td>
<td> MOV</td><td> #28.,DISP</td><td></td>
<td> PROCESS DATA OF</td><td> 1 TRANSLATION:</td><td></td>
<td> DOTRAN: CLR ־</td><td> BRSR D</td><td> 5 0 BUFFERS REQUESTED</td>
<td colspan="2"><sup>30</sup> QUEUE INPUT REQUEST FOR DATA INTO</td><td> 1ST 2 INPUT BUFFERS</td>
<td> MOV</td><td> TRNSDN.R1</td><td></td>
<td> MUL</td><td> #SXPTRN,R1</td><td></td>
<td> ADD</td><td> #RDSSEC.R1</td><td> י</td>
<td> MOV</td><td> R1 ,INPSEC</td><td></td>
<td><sup>35</sup> QIO$S</td><td> #IO.RLB,#DK1,#2,</td><td> , #SB2 , ,<#IB1 ,#2mBYTSIB , ,</td>
<td></td><td> #0,INPSEC>,ERR</td><td></td>
<td> CLR ־</td><td> -(SP)</td><td></td>
<td> MOV</td><td> INPSEC.-(SP)</td><td></td>
<td> •</td><td> 26.8.78</td><td> ־15־ ׳ 7. ^20779 PHA . ' ׳</td>
<td> • \</td><td> .?׳ L ־ י .1 ' J / . ,. . \ *. 1 1 <sup>5</sup> 1 /. . / 1 • ' 10 15 QUEUE; 20 25 30 35</td><td> CLP ' ~(SP) - CLR -(SP) MOV #2kBYTSIB,-(SP) . MOV י #IB1 ,-(SP) CLR -(SP) MOV ^SB2,-(SP) CLR ־(SP) MOVE #2,(SP) MOV #DK1, - (SP) MOV #10, RLE,(SP) MOV (PC)+,-(SP) .BYTE 1,12. EMT ^377>ס> BCC .+6 ' JSR PC,ERR ADD #2,BFSRQD ADD #23€SEXIBF,INPSEC INPUT REQUEST FOR 3RD INPUT BUFFER FILL QI0$S #IO,RLB,#DK1 ,#3, ,#SB3, ,<z»B3 ,//BYTSIB , INPSEC>,ERR CLR -(SP) ., MOV INPSEC,-(SP) CLR -(SP) CLR ״(SP) MOV #BYTSIB,-(SP) MOV #IB3,-(SP) . CLR -(SP) MOV. #SB3,-(SP) CLR ־ -(SP) MOVB #3 , (SP) MOV #DK1,-(SP) MOV ^IO.RLB,-(SP) MOV (PC)+,-(SP) .BYTE 1,12. EMT <sup>λ</sup>Ο<377> BCC .+6 JSR. PC.ERR INC BFSRQD</td>
<td> -</td><td> 26.8.78</td><td></td><td> . . . -.16 -</td><td> • PHA 20779</td>
<td> •</td><td> 'i י'<sup>,</sup>'' 1' '' i . . / ( I i ;WAIT ' '׳ 10 J</td><td> ADD MOV INC JSR MOV FOR 1ST 2 WISE$S MOV MOV . BYTE ׳ emt</td><td> #SEXIBF,INPSEC’ TRNSDN,R5 R5 PC,CONV2D R5,MES0 BUFFERS TO FILL #2 #2,-(SP) (PC)+,-(SP) 41.,2 -0<377></td><td> ;STORE ASCII T//#IN MESSAGE BUFFER</td>
<td></td><td colspan="3"> 5 15 EF2: . ;CHECK FOR I/O ERROR TSTIO$ SB2 CMPB SB2, IS.SUC BEQ 1$ 20 JSR PC, ERR. ;ESTABLISH SYNC IN IB1</td><td> ;TEST FOR SUCCESSFUL 1/0 .;ABORT IF 1/0 WAS BAD</td>
MOV #IB1,R4
JSR PC,FSYNC
<td> 25</td><td colspan="3"> ז ;DETERMINE WHETHER GOING L-R OR R-L</td>
<td></td><td> MOV</td><td> 2(R4)’,R/</td><td> ;GET A POSITION WORD</td>
<td></td><td> NEG.</td><td> R0</td><td> ;NOP FOR SIMULATOR</td>
<td></td><td></td><td></td><td></td>
<td></td><td> SXT</td><td> LTOR</td><td></td>
<td> 30</td><td> INC</td><td> LTOR</td><td> ;LTOR=1 IF GOING L TO R</td>
<td></td><td> MOV</td><td> LTOR,LINC</td><td></td>
<td></td><td> BGT</td><td> CO NT</td><td></td>
<td></td><td> DEC</td><td> LINC</td><td> ־;INCREMENT L BY +OR-1</td>
CONT:
35 ;(RIGHT IS DEFINED WITH DETECTORS AT BOTTOM, LOOKING FROM feet) .
' ;NOW IS GOOD TIME TO SAVE BASE LINE READINGS FROM ALL DETEC-
' . &#1497; &#1497; . : . &#1470; .
/20779 26.8.78 -A9- PI-IA
. ' . &#1497; ’ I
&#1497;. &#1497; &#1523; &#1497; TORS &#1497;
1’
CONVERT IB 1 DETECTOR READINGS TO MU SUMS;
J.
I MOV #IB1,R4
' .
;ESTABLISH SYNC IN IB2
I ; MOV #IB2,R4
JSR PC.FSYNC !
;CONVERT IB2 DETECTOR READINGS TO MU SUMS
<td colspan="4"><sup>10</sup> ' ;INITIALIZE LDUN ARRAY TO 0'S IF GOING. LEFT-TO-RIGHT;</td>
<td rowspan="2"> !</td><td colspan="3"> ;INITIALIZE TO 512'S IF GOING RIGHT-TO-LEFT.</td>
<td colspan="2"> MOV MOV . MOV</td><td> ^LDUN, R0 - ' #NDETS,R1. LTOR.R3</td>
<td> 15 20</td><td> CLDNLP:</td><td> NEG INC MUL MOV SOB MOV MUL INC MOV</td><td> R3 R3 . #NSPSAM+1,R3 R3,(R0)+ R1,CLDNLP LTOR.R3 #NSPSAM-1,R3 R3 ; SET- LDNLIM= 1 OR 51 1 R3,LDNLIM</td>
<td> 25</td><td colspan="2"> > DECOM: ;DECOMMUTATE AND AS CAN</td><td> FIT INTO SPATIAL INTERVALS FOR AS MANY</td>
<td> 30 35</td><td> 9</td><td> CLR MOV JSR ADD ADD MOV ADD . MOV MOV SUB</td><td> IDET #IB1,R4 PC.FSYNC #7x68.,R4 #2,R4 r4,frstpo #NFRMS-1x68. ,R.4 R4,LASTPO @LASTPO,R1 @FRSTPO,R1</td>
<td> 26</td><td> .8.78</td><td></td><td> A •1 r\_ עידיזד</td><td> PHA 20779</td>
<td></td><td></td><td> SXT ־</td><td> R0</td><td></td>
<td></td><td></td><td> DIV</td><td> #NFRMS-1,R0</td><td> ;COMPUTE AVERAGE VERLOCI-</td>
<td></td><td></td><td></td><td></td><td> TYkmkkmm</td>
<td></td><td></td><td> MOV</td><td> R0,DENCPF</td><td> ;CHANGE IN ENCODER READ-</td>
<td> 5</td><td></td><td> ASR</td><td> R0</td><td> ING/FRAME</td>
<td></td><td></td><td> MOV</td><td> R0,HAFDEN</td><td> ;.1/2 THE ENCODER READING</td>
<td></td><td></td><td></td><td></td><td> CHANGE/FRAME</td>
<td></td><td></td><td> SUB</td><td> #2,R4 ־.</td><td></td>
<td> 10</td><td></td><td> TST</td><td> (17)</td><td> ' ;STILL IN SYNC NEAR END</td>
<td></td><td></td><td></td><td></td><td> OF IB2?</td>
<td></td><td></td><td> BEQ</td><td> CKSYN</td><td></td>
<td></td><td></td><td> HALT</td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td>
<td> 15</td><td> .CKSYN:</td><td> MOV</td><td> #NFRPB,R2</td><td></td>
<td></td><td></td><td> MOV</td><td> FRSTPO,R1</td><td></td>
<td></td><td></td><td> SUB</td><td> #2,R1</td><td></td>
<td></td><td></td><td> MOV</td><td> SPACES,MES1 .</td><td></td>
<td></td><td></td><td> MOV</td><td> YN,MES2</td><td></td>
<td> 20</td><td> CSLOOP:</td><td> TST</td><td> (R1)</td><td></td>
<td></td><td></td><td> BEQ ־</td><td> SYNCOK</td><td> ;CHECK FOR SYNC=0</td>
<td></td><td></td><td> MOV</td><td> #MES3,R3</td><td></td>
<td></td><td></td><td> MOV</td><td> (R1),R5</td><td> ;PRINT SYNC,. ENCODER</td>
<td></td><td></td><td> J SR</td><td> PC,OCTASC</td><td></td>
<td> 25</td><td></td><td> MOV</td><td> #MES4,R3</td><td></td>
<td></td><td></td><td> MOV</td><td><sub>Z</sub>2(R1),R5</td><td> .</td>
<td></td><td></td><td> J SR</td><td> PC , OCTASC .</td><td></td>
<td></td><td></td><td> JSR</td><td> PC , PRINT</td><td></td>
<td></td><td> SYNCOK:</td><td> ADD</td><td> //68., R1 </td><td></td>
<td> 30</td><td> 5</td><td> SOB</td><td> R2,CSLOOP</td><td></td>
<td></td><td> CKENC:</td><td> MOV</td><td> #NFRPB,R2</td><td></td>
<td></td><td></td><td> MOV</td><td> FRSTPO,Rl</td><td></td>
<td></td><td></td><td> ADD</td><td> /68׳. , R1</td><td></td>
<td> 35</td><td></td><td> MOV</td><td> SPACEE,MES1</td><td> ׳</td>
<td></td><td></td><td> MOV</td><td> NC,MES2</td><td></td>
<td></td><td> CELOOP:</td><td> MOV.</td><td> 68.(Rl),R5</td><td></td>
<td></td><td></td><td> SUB</td><td> (Rl),R5</td><td></td>
<td colspan="3"> . . . . - 19 -</td>
<td> י 26.8.78</td><td> -A-M-</td><td> PHA 2Q779</td>
<td> ' i י ADD</td><td>.(R1),R5</td><td> *</td>
<td> I./ SUB</td><td> (R1),R5;</td><td></td>
<td> . ' BPL</td><td> 10$ .</td><td></td>
<td> ! NEG 1</td><td> R5 .</td><td></td>
<td> 5 .10$: SUB'</td><td> ACLIM,R5 </td><td> ;COMPARE ACCEL WITH</td>
<td> I״</td><td></td><td> LIMIT</td>
<td> : BLT ו</td><td> ENCOK .</td><td></td>
<td> MOV</td><td> #MES3,R3</td><td></td>
<td> MOV '</td><td> (R1),R5</td><td> ;PRINT ENCODER, ENCODER</td>
<td> 10 ' JSR</td><td> PC,OCTASC</td><td></td>
<td> MOV</td><td> #MES4,R3</td><td></td>
<td> ; MOV</td><td> 34-.(R1),R5</td><td></td>
<td> JSR .</td><td> PC,OCTASC</td><td></td>
<td> J SR</td><td> PC,PRINT</td><td></td>
<td> 15 ENO OK: ADD</td><td> #34.,R1</td><td></td>
<td> SOB</td><td> R2,CEL00P</td><td></td>
<td> 5 CKDETS: MOV'</td><td> FRSTPO,R1</td><td></td>
<td> ADD</td><td> //2,R1</td><td></td>
<td> 20 . MOV</td><td> R1,FRSTD</td><td></td>
<td> MOV</td><td> SPACED.MES1</td><td> .</td>
<td> MOV</td><td> //1 .DET.</td><td> -</td>
<td> OK1DET: MOV</td><td> FRSTD,R1</td><td></td>
<td> MOV</td><td> DET,R5</td><td></td>
<td><sup>25</sup> «</td><td></td><td> STORE ASCII D#//IN</td>
<td></td><td></td><td> MESSAGE. BUFFER</td>
<td> JSR</td><td> PC.C0NV2D '</td><td></td>
<td> MOV</td><td> R5,MES2</td><td></td>
<td> MOV </td><td> #NFRPB,R2</td><td></td>
<td> 30 CKDTLP : MOV</td><td> 68.(R1),R5</td><td></td>
<td> SUB</td><td> (R1),R5</td><td></td>
<td> BPL</td><td> 20$</td><td> ;CHECK FOR DET DISCONT></td>
<td></td><td></td><td> NOISLM</td>
<td> NEG</td><td> R5</td><td></td>
<td> 35 20S: SUB</td><td> NOISLM,R5</td><td></td>
<td> BLT.</td><td> DOK</td><td></td>
<td> MOV</td><td> #MES3,R3</td><td></td>
<td> MOV</td><td> . (R1),R5</td><td> ;PRINT DET, DET</td>
<td colspan="3"> ״ ... - 20־- :. . .../ .י . . ..</td>
<td> 26.8.78</td><td></td><td> PHA 20779</td>
<td> JSR י</td><td> . . PC , OCTASC</td><td></td>
<td> . : MOV</td><td> .- #MES4,R.3</td><td></td>
<td> MOV</td><td> 68.(R1),R5</td><td></td>
<td> JSR</td><td> PC,OCTASC</td><td></td>
<td> 5 JSR</td><td> PC , PRINT</td><td></td>
<td> DOK: . ADD</td><td> #68.,R1</td><td></td>
<td> SOD</td><td> R2,CKDTLP</td><td></td>
<td> INC</td><td> DET</td><td></td>
<td> ADD</td><td> #2,FRSTD</td><td></td>
<td> 10 CMP</td><td> DET. #1 6.</td><td></td>
<td> BLT EOT ADD</td><td> CK1DET 30$ #4,FRSTD</td><td></td>
<td> : CMP</td><td> DET ,#31 . </td><td></td>
<td> 15 BLT</td><td> CK1DET</td><td></td>
<td> J DOADET; MOV</td><td> IDET.R0</td><td> ׳</td>
<td> ASL</td><td> R0</td><td></td>
<td> MOV</td><td> TAUSF,R4</td><td> ;COMPUTE CORRECTION FOR</td>
<td> 20 . SUB</td><td> dofft(r0),r4</td><td> . SAMPLE TIME OFFSET</td>
<td> MUL</td><td> DENCPF.R4</td><td></td>
<td> DIV MOV</td><td> #34.,R4 R4,ENCADJ</td><td> ;(DENCPFm(TAUSF-DOFF</td>
<td> 25 MOV</td><td> FRINDT(R0),R1</td><td> (idet))/34. ;GET BYTE OFFSET FOR</td>
<td> MOV.</td><td> LDUN(R0),LTRY</td><td> CURRENT DETECTOR ;ARE ALL 511 VALUES COM-</td>
<td><sup>30</sup> ' . BPL</td><td> CONDOD</td><td> PUTED? ;NO</td>
<td> JMP</td><td> BMPIDT</td><td> ;YES</td>
<td> CONDOD: ADD</td><td> LINC,LTRY</td><td> ;NO. TRY TO COMPUTE</td>
<td> MOV <sup>3s</sup> MUL</td><td> IDET,R5 #LGREC?f2,R5</td><td> ANOTHER</td>
<td> ADD</td><td> #OB,R5</td><td></td>
<td> MOV</td><td> R5,CURGAD</td><td></td>
<td> MOV</td><td> FRSTPO,R3</td><td> ;INITIALIZE SEARCH</td>
<td> j .</td><td></td><td></td><td> , . -.21.- . . .</td><td></td>
<td></td><td> ,26.8.78</td><td></td><td> A. 1ד l _r</td><td> .. PHA 20777</td>
<td> | </td><td></td><td></td><td></td><td> POINTER</td>
<td></td><td></td><td> MOV</td><td> NCANDS,R2</td><td> ;AND COUNTER .</td>
<td> j .</td><td> 5 > 5 . J</td><td></td><td></td><td></td>
<td></td><td> ;COMPUTE</td><td> NOMINAL</td><td> ENCODER VALUE FOR</td><td> THIS DET FOR CURRENT LTRY</td>
<td></td><td> CMPNOM:</td><td> MOV</td><td> LTRY.R4</td><td></td>
<td> ־ 1</td><td></td><td> SUB</td><td> #NSPSAM+1/2,R4</td><td> ;LTRY-256</td>
<td></td><td></td><td> MUL</td><td> IDIF(R0),R4</td><td> .;ENCODER OFFSET FROM</td>
<td> Q ; ' ,</td><td> 10</td><td></td><td></td><td> . CENTER</td>
<td></td><td></td><td> ASHC</td><td> .#-IDIFSH,R4</td><td></td>
<td> 1</td><td></td><td> ADD .</td><td> ICEN(R0),R5</td><td> ;NOM. ENC. VALUE = VALUE</td>
<td></td><td> J</td><td></td><td></td><td> (256) + SLOPE«(LTRY-256)</td>
<td> i</td><td></td><td> NEG</td><td> R5</td><td> ;NOP FOR SIMULATOR</td>
<td> !</td><td> 15</td><td></td><td></td><td> «««««««««««««««««« </td>
<td></td><td></td><td> ADD</td><td> ENCADJ,R5</td><td> ;COMPENSATE FOR TIME OFF-</td>
<td></td><td></td><td></td><td></td><td> SET '</td>
<td> ׳</td><td></td><td> MOV</td><td> R5,ENCNOM</td><td></td>
;SCAN FORWARD IN IB1, IB2 LOOKING FOR ENCNOM
<td> 20 SRCHFW:</td>
<td> . CKLTOR: TST ' ' LTOR ;MOVING LEFT-TO-RIGHT?</td>
<td> BNE SBWLP . ;BEQ-FOR SIMULATOR</td>
<td> ««««««XX«««««««KK</td>
<td> SFWLP: CMP (RJ),ENCNOM</td>
<td> 25 BCC PASTIT</td>
<td> ADD #68., R3</td>
<td> SOB R2,SFWLP</td>
<td> JMP BMPIDT</td>
<td> SBWLP: CMP (R3),ENCNOM</td>
<td> 30 BCS PASTIT</td>
<td> ADD #68., R3</td>
<td> SOB R2,SBWLP</td>
<td> JMP BMPIDT</td>
<td> ;COME HERE WHEN HAVE FOUND ENCODER READING CORRESPONDING W/</td>
<td> 35 AN L</td>
<td> PASTIT: MOV (R3),R4 ;GET THE JUST-FOUND POSI</td>
<td> TION</td>
<td> SUB -34,(r3),R4 ;COMPARE WITH PREV ENCO-</td>
<td colspan="2"> -. . - . ן i . . 26.8.78</td><td> ...- 22 - a+4-</td><td> PHA 20779'</td>
<td> . ׳;- i</td><td> . i - I . . '</td><td></td><td> , DER READING</td>
<td></td><td> i BPL</td><td> CHKDP</td><td></td>
<td></td><td> . j ' NEG ן</td><td> R4</td><td> ;TAKE ABS VALUE OF</td>
<td> ׳ 1 j</td><td> i I '</td><td></td><td> ' DIFFERENCE</td>
<td><sup>5</sup></td><td> CHKDP: CMP I</td><td> r4,dplim</td><td> ;SEE IF THERE'S A DIS-</td>
<td></td><td> t I, . I ί BLT !</td><td> SAVIT</td><td> CONTINUITY HERE ;DATA OK. CONTINUE &</td>
<td></td><td> ;COME HERE WHEN</td><td colspan="2"> SAVE A G VALUE POSITION data@(r3) and -34. (R3) DISAGREE</td>
<td> 10</td><td> ׳ GREATLY.</td><td></td><td></td>
<td></td><td> ;FIND OUT WHICH</td><td> IS RIGHT AND PATCH</td><td> THE OTHER:</td>
<td> *</td><td> MOV SUB</td><td>.(R3),r4 -68.(R3),r4</td><td> ;SEE IF THE 2 PRIOR READ-</td>
<td> 15</td><td> BPL</td><td> CNPTCH</td><td> INGS AGREE</td>
<td></td><td> NEG</td><td> R4</td><td> ;TAKE ABS VALUE OF</td>
<td></td><td> CNPTCH: CMP</td><td> R4.DPLIM</td><td> DIFFERENCE .;DO THEY AGREE?</td>
<td></td><td> BPL</td><td> R3OK</td><td> ;NO. PATCH -34.(R3j</td>
<td> 20</td><td> R3BAD: MOV</td><td>MR3),(R3)</td><td> ;YES. PATCH (R3)</td>
<td></td><td> JMP</td><td> CKLTOR</td><td> ;RESUME SFWLP OR SBWLP</td>
<td> *</td><td> R3OK: MOV.</td><td> (R3),-34.(r3)</td><td> ;PATCH GOOD DATA INTO BAD</td>
<td></td><td> SAVIT: MOV</td><td> R3,R4</td><td> ;COMPUTE ADDRESS OF G</td>
<td> 25</td><td> SUB</td><td> #70.,R4</td><td> VALUE JUST FOUND ;MAKE R4 POINT TO PRIOR</td>
<td> .</td><td> ADD</td><td> R1',R4</td><td> SYNC ;NOW POINT TO G VALUE</td>
<td> 30</td><td> CLC MOV</td><td>.(R4),R5</td><td> ;COMPUTE AVERAGE OF CLO.SEST NEIGHBORS:</td>
<td></td><td> ADD</td><td> 68.(R4),R5</td><td> *</td>
<td></td><td> ROR</td><td> R5</td><td></td>
<td></td><td> MOV</td><td> R5, GAVE</td><td> AVERAGE G־־GAVE;</td>
<td></td><td> SUB</td><td> (R4),R5</td><td> ;SEE IF CENTER VALUE</td>
<td> 35</td><td> BPL</td><td> CHKDIF</td><td> CLOSE TO AVERAGE</td>
<td></td><td> NEG</td><td> R5</td><td> ;TAKE ABS VALUE OF</td>
.G(CENTER)-GAVE
<td> 26.8.78</td><td> .- 23 - .;</td><td> P1-1A 20779</td>
<td> CHKDIF: CMP ’ .</td><td> R5.N0ISLM</td><td> .;CLOSE ENOUGH SO CAN USE</td>
<td></td><td></td><td> ALL 3 POINTS?</td>
<td> BLE</td><td> . USE3</td><td> ־ YES;</td>
<td> JMP</td><td> REJECT</td><td> ;NO</td>
;FIT WITH A+BmX+C3eXmm2:
<td> USE3:</td><td> CMP</td><td> #5,SMOTH</td>
<td></td><td> beq</td><td> D5</td>
<td></td><td> CMP</td><td> #9.,SMOTH</td>
<td></td><td> beq</td><td> D9 .</td>
<td> 10</td><td> MOV</td><td>.(R4)?R5</td>
<td></td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td></td><td> MOV</td><td> R5,ym6</td>
<td></td><td> MOV</td><td> 408.(R4),R5</td>
<td> 15</td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td></td><td> MOV</td><td> R5.YP6</td>
<td></td><td> MOV</td><td>.(R4),R5</td>
<td></td><td> CLC</td><td></td>
<td><sup>20</sup></td><td> ROR</td><td> R5</td>
<td></td><td> MOV</td><td> R5,YM5</td>
<td> I</td><td> MOV</td><td> 340.(r4),R5</td>
<td></td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td> 25</td><td> MOV</td><td> R5,YP5</td>
<td> D9:</td><td> MOV</td><td>.(r4),R5</td>
<td></td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td></td><td> MOV</td><td> R5,YM4</td>
<td> 30</td><td> MOV</td><td> 272.(r4),R5</td>
<td></td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td></td><td> MOV</td><td> R5,YP4</td>
<td></td><td> MOV</td><td>.(r4),R5</td>
<td> 35</td><td> CLC</td><td></td>
<td></td><td> ROR</td><td> R5</td>
<td></td><td> MOV </td><td> R5,YM3</td>
<td></td><td> MOV</td><td> 204.(r4),R5</td>
<td> j . . . . '7 7 . . ... ...-24 -.... :., . . .</td>
<td> I 26.8.78 ־ ArHr- ' ־ PHA 20779</td>
<td> ί a CLC</td>
<td> • . ROR . R5</td>
<td> MOV R5,YP3 ־ י .</td>
<td> I D5: 7 . MOV -136. (JL1׳) ,R5 </td>
<td> j . 5 CLC</td>
<td> < ־ ROR R5</td>
<td> MOV R5,YM2 </td>
<td> MOV 136.(r4),r5</td>
<td> CLC .</td>
<td> 10 ROR R5</td>
<td> MOV R5,YP2</td>
<td> I ' MOV -68.(r4),r5</td>
<td> CLC</td>
<td> ROR R5.</td>
<td> 15 MOV R5, YM1</td>
<td><sup>1</sup> MOV 68.(R4),R5</td>
<td> CLC</td>
<td> ROR R5</td>
<td> MOV R3,YP1</td>
<td> 20 MOV (R/|),R5</td>
<td> CLC</td>
<td> ROR R5 ־-.</td>
<td> MOV R5,Y0</td>
<td> MOV׳ (r3),r5</td>
<td> 25 SUB -68. (R3),R5</td>
<td> ASH 7,Rj</td>
<td> MOV R5.DT</td>
<td> MOV . ENCNOM.R4</td>
<td> SUB . -68.(r3),r4</td>
<td> 30 CLR R5</td>
<td> DIV DT,R4</td>
<td> ASH ;2mm14 MEANS X=1</td>
<td> MOV r4,x</td>
;COMPUTE A:
<td> 35</td><td> MOV</td><td> R0,TEMP0</td>
<td></td><td> MOV</td><td> R1, TEMP 1</td>
MOV R2,TEMP2
ΜΟλ7 R 3, TEMP 3
<td></td><td></td><td> .-25-.</td><td> . .......</td><td></td>
<td> 26.8.78</td><td></td><td> - A 4 η» ץ״ו</td><td></td><td> PHA 2Ο779Ύ</td>
<td></td><td> CLR</td><td> ACHI</td><td></td><td></td>
<td></td><td> CLR</td><td> ACLO</td><td></td><td></td>
<td></td><td> MOV</td><td> #SMTBL,R3 .</td><td></td><td></td>
<td><sup>ד</sup> י . :</td><td> ADD</td><td> DISP.R3</td><td></td><td></td>
<td> S</td><td> CMP</td><td> #5 , SMOTE</td><td></td><td></td>
<td></td><td> BEQ</td><td> A5</td><td></td><td></td>
<td></td><td> CMP</td><td> #9., SMOTE</td><td></td><td></td>
<td></td><td> BEQ</td><td> A9</td><td></td><td></td>
<td> A13:</td><td> MA$</td><td> (r3),ym6</td><td></td><td></td>
<td> 10</td><td> MOV</td><td> (R3)>R4</td><td></td><td></td>
<td></td><td> MUL</td><td> YM6,r4</td><td></td><td></td>
<td></td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td><td></td>
<td></td><td> ADD</td><td> r4,achi</td><td></td><td></td>
<td><sup>15</sup></td><td> MA$</td><td> (r3)+,yp6</td><td></td><td></td>
<td></td><td> MOV</td><td> (R3)+,R4</td><td></td><td></td>
<td></td><td> MUL</td><td> yp6,r4</td><td></td><td></td>
<td></td><td> ADD</td><td> י R5,ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td><td></td>
<td> 20</td><td> ADD</td><td> R4,ACHI</td><td></td><td></td>
<td></td><td> MA$</td><td> .(R3),YM5</td><td></td><td></td>
<td></td><td> MOV</td><td> (R3),r4</td><td></td><td></td>
<td></td><td> MUL</td><td> YM5,R4</td><td></td><td></td>
<td></td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td> 25</td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td> ADD</td><td> R4,ACHI</td><td></td><td></td>
<td></td><td> MA$</td><td> (R3)+,YP5</td><td></td><td></td>
<td></td><td> MOV</td><td> (R3)+,R4</td><td></td><td></td>
<td></td><td> MUL</td><td> YP5,R4</td><td></td><td></td>
<td> 30</td><td> ADD</td><td> R5.ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> . R4</td><td></td><td></td>
<td></td><td> ADD</td><td> . R 4., AC HI</td><td></td><td></td>
<td> A9:</td><td> MA$.</td><td> (R3),ym4</td><td></td><td></td>
<td></td><td> MOV</td><td> (R3),R4</td><td></td><td></td>
<td> 35 .</td><td> MUL</td><td> ym4,r4</td><td></td><td></td>
<td></td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td> ADD</td><td> R 4, AC HI</td><td></td><td></td>
-&#1498; 4-. 4....&#1497;. :&#1497;
20779 PHA &#1497; ' &#1497; 26.8.78
<td></td><td> MAft</td><td> (R3)<sub>+</sub>,YP4</td>
<td></td><td> . MOV</td><td> (r3)+,r4</td>
<td></td><td> MOL</td><td> YP4,R4</td>
<td></td><td> ADD</td><td> R5,ACLO</td>
<td> 5</td><td> . ADC</td><td> RR</td>
<td></td><td> ADD</td><td> R 4׳, AC HI</td>
<td></td><td> MAft .</td><td> (R3),YM3</td>
<td></td><td> . MOV</td><td> (R3),4</td>
<td></td><td> MUL</td><td> YM3,R^</td>
<td> 10</td><td> ADD</td><td> R5,ACLO</td>
<td></td><td> ADC</td><td> R4</td>
<td></td><td> ADD</td><td> rU.achi</td>
<td></td><td> MA ft</td><td> (r3)+,YP3</td>
<td></td><td> MOV</td><td> (R3) + ,4</td>
<td> 15</td><td> MUL</td><td> YP3,R1׳</td>
<td> X</td><td> ADD</td><td> R5,ACLO</td>
<td></td><td> ADC</td><td> RR</td>
<td></td><td> ADD</td><td> r4,achi</td>
<td> A5:</td><td> MAft</td><td> (R3),YM2</td>
<td> 20</td><td> MOV</td><td> (r3),rR</td>
<td></td><td> MUL</td><td> YM2,R4</td>
<td></td><td> ADD</td><td> R5,ACLO</td>
<td></td><td> ADC</td><td> R4</td>
<td></td><td> ADD</td><td> R4,ACHI</td>
<td> 25</td><td> MAft</td><td> (R3)+,YP2</td>
<td> י</td><td> MOV</td><td> (R3) + ,1Vi</td>
<td></td><td> MUL</td><td> YP2.R4</td>
<td></td><td> ADD .</td><td> R5.ACLO</td>
<td></td><td> ADC</td><td> rR</td>
<td> 30</td><td> ADD</td><td> R4, ACHI</td>
<td></td><td> MAft</td><td> (R3),YM1</td>
<td></td><td> MOV</td><td> (R3),RR</td>
<td></td><td> MUL</td><td> YM1,RR</td>
<td></td><td> ADD</td><td> R5,ACLO</td>
<td> 35</td><td> ADC</td><td> R4</td>
<td></td><td> ADD</td><td> Ri| ,ACHI</td>
<td></td><td> MAft '</td><td> . (R3)+,YP1</td>
<td></td><td> MOV</td><td> (r3)+,RR</td>
&#1470;- 27•-.
<td> 26</td><td> .8.78</td><td></td><td></td><td></td><td> ״ך׳־ • PHA 20779'</td>
<td></td><td></td><td> MUL</td><td> YP1,R4</td><td></td><td></td>
<td></td><td></td><td> ADD .</td><td> R5.ACLO</td><td></td><td></td>
<td></td><td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td></td><td> ADD</td><td> R4,ACI־II</td><td></td><td></td>
<td> 5</td><td></td><td> MA$</td><td> (R3)+,y0</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> (R3)+,R4</td><td></td><td></td>
<td></td><td></td><td> MUL</td><td> yo,r4</td><td></td><td> .</td>
<td></td><td></td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td></td><td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td> 10</td><td></td><td> ADD</td><td> r4,achi</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> . ACHI,R4</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> ACLO,R5</td><td></td><td></td>
<td></td><td></td><td> DIV</td><td> (R3)+,R4</td><td></td><td></td>
<td></td><td></td><td></td><td> r4,a</td><td></td><td></td>
<td> 15</td><td> ;COMPUTE</td><td> B:</td><td></td><td></td><td></td>
<td></td><td></td><td> CLR</td><td> ACHI</td><td></td><td></td>
<td></td><td></td><td> CLR</td><td> ACLO</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> SMOTH,R2</td><td></td><td></td>
<td></td><td></td><td> DEC</td><td> R2</td><td></td><td></td>
<td> 20</td><td></td><td> ASR</td><td> R2</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> R2,R1</td><td></td><td></td>
<td></td><td></td><td> NEG</td><td> R1</td><td></td><td></td>
<td></td><td></td><td> CMP .</td><td> #5 ,SMOTH</td><td></td><td></td>
<td></td><td></td><td> BEQ</td><td> B5</td><td></td><td></td>
<td> 25</td><td></td><td> CMP '</td><td> 49.,SMOTH</td><td></td><td></td>
<td></td><td></td><td> BEQ</td><td> B9</td><td></td><td></td>
<td></td><td> Bl 3:</td><td> MAS</td><td> R1,YM6</td><td></td><td></td>
<td></td><td></td><td> MOV</td><td> R1 , R4</td><td></td><td> ,</td>
<td></td><td></td><td> MUL</td><td> ym6,r4</td><td></td><td></td>
<td> 30</td><td></td><td> ADD</td><td> R5.ACLO</td><td></td><td></td>
<td></td><td></td><td> ADC</td><td> r4</td><td></td><td></td>
<td></td><td></td><td> ADD</td><td> R 4, AC HI</td><td></td><td></td>
<td></td><td></td><td> INC</td><td> .R1</td><td></td><td></td>
<td></td><td></td><td> MAS</td><td> R2,YP6</td><td></td><td></td>
<td> 35</td><td></td><td> MOV</td><td> R2,R4</td><td></td><td></td>
<td></td><td></td><td> MUL</td><td> YP6,R4</td><td></td><td> ,</td>
<td></td><td></td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td></td><td></td><td> ADC</td><td> Π4</td><td></td><td></td>
<td colspan="5"> - ...</td>
<td> 26.8.78 '</td><td></td><td></td><td></td><td> PHA '2O77^T</td>
<td> י ί יי] ‘</td><td> ADD .</td><td> R'I , AC III</td><td></td><td></td>
<td></td><td> DEC</td><td> R2</td><td></td><td></td>
<td></td><td> MAS</td><td> R1,YM5</td><td></td><td></td>
<td></td><td> MOV.</td><td> R1 ,r4</td><td></td><td></td>
<td> ־ י ' 5</td><td> MUL</td><td> ym5,r4</td><td></td><td></td>
<td> ί</td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td> 1 1</td><td> ADC</td><td> r4</td><td></td><td></td>
<td></td><td> ADD</td><td> rL.achi,</td><td></td><td></td>
<td> 'י 10</td><td> INC MA$</td><td> R1 R2,YP5</td><td></td><td></td>
<td></td><td> MOV</td><td> R2,R4</td><td></td><td></td>
<td> f</td><td> MUL</td><td> YP5,R4</td><td></td><td></td>
<td></td><td> ADD</td><td> R5.ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td> 15</td><td> ADD</td><td> r4,achi</td><td></td><td></td>
<td></td><td> DEC</td><td> R2</td><td></td><td></td>
<td> B9:</td><td> MAS</td><td> R1,YM4</td><td></td><td></td>
<td></td><td> MOV ׳</td><td> R1,R4</td><td></td><td></td>
<td></td><td> MUL</td><td> YM4,r4</td><td></td><td></td>
<td> 20</td><td> ADD</td><td> R5,ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td> ADD</td><td> R4,ACHI</td><td> r</td><td></td>
<td></td><td> INC</td><td> R1</td><td></td><td></td>
<td></td><td> . MA$</td><td> R2,YP4</td><td></td><td></td>
<td> 25</td><td> MOV</td><td> R2,R.4</td><td></td><td></td>
<td></td><td> MUL</td><td> YP4,R4. .</td><td></td><td></td>
<td></td><td> ADD</td><td> R5.ACLO</td><td></td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td> ADC -</td><td> Rl|</td><td></td><td></td>
<td> 30</td><td> ADD</td><td> YP5.R5</td><td></td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td><td></td>
<td> C9:</td><td> ADD</td><td> ym4,r5</td><td></td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td><td></td>
<td></td><td> ADD</td><td> yp4,r5</td><td></td><td></td>
<td> 35</td><td> ADC</td><td> r4</td><td></td><td></td>
<td></td><td> ADD</td><td> YM3.R5</td><td></td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td><td></td>
<td></td><td> ADD</td><td> YP3.R5</td><td></td><td> ,</td>
<td> i . - 1.¾.4,</td><td> 26.8.78</td><td> ' 29 ״— . ASH־</td><td> ־ך׳ PHA 20779</td>
<td></td><td> ADC</td><td> r4</td><td></td>
<td> !. </td><td> 05 . ADD</td><td> YM2.R5</td><td></td>
<td> I I j</td><td> ADC</td><td> R4</td><td></td>
<td></td><td> add</td><td> YP2,R5</td><td></td>
<td></td><td> S ADC</td><td> R4</td><td></td>
<td></td><td> ADD</td><td> YM1.R5</td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td>
<td> i</td><td> ADD</td><td> YP1,R5</td><td></td>
<td> j</td><td> . ADC</td><td> .. R4</td><td></td>
<td> |</td><td> 10 ADD</td><td> Y0,R5</td><td></td>
<td> 1</td><td> ' ADC</td><td> r4</td><td></td>
<td></td><td> MOV</td><td> r4,achi</td><td></td>
<td></td><td> MOV</td><td> R3,ACLO</td><td></td>
<td></td><td> MOV</td><td> . SMOTH,R1</td><td></td>
<td></td><td> 15 NEG</td><td> R1</td><td></td>
<td></td><td> MA ft</td><td> R1,A</td><td></td>
<td></td><td> MOV</td><td> R1,R4</td><td></td>
<td></td><td> MUL .</td><td> A,R4</td><td></td>
<td> -</td><td> ADD</td><td> R5,ACLO '</td><td></td>
<td></td><td> 20 . ADC</td><td> R4</td><td></td>
<td></td><td> ADD</td><td> R4,ACHI</td><td></td>
<td></td><td> MOV</td><td> ACHI.R4</td><td></td>
<td></td><td> MOV</td><td> ACLO,R5</td><td></td>
<td></td><td> DIV</td><td> (R3),R4</td><td></td>
<td></td><td> 25 MOV</td><td> r4,c</td><td></td>
<td></td><td> MOV</td><td> TEMP0,R0</td><td></td>
<td></td><td> MOV</td><td> TEMP 1,R1</td><td></td>
<td></td><td> MOV</td><td> TEMP2,R2</td><td></td>
<td></td><td> MOV</td><td> TEMP3.R3</td><td></td>
<td></td><td><sup>30</sup> ;COMPUTE Y(X) :</td><td></td><td></td>
<td></td><td> MOV</td><td> Α,ΥΟΕΧ .</td><td> /</td>
<td></td><td> MOV</td><td> B,R4</td><td> 1</td>
<td></td><td> MUL</td><td> . X,R4</td><td></td>
<td></td><td> ASHC</td><td> #2 , R4</td><td></td>
<td></td><td><sup>35</sup> ADD</td><td> r4,yofx</td><td></td>
<td></td><td> MOV</td><td> c,r4</td><td></td>
<td> —</td><td> MUL </td><td> X,R4</td><td></td>
<td> X</td><td> ASHC</td><td> #2,R4</td><td></td>
<td> 26.8.78</td><td> Λ2-Ρ--</td><td> . PHA 20779.</td>
<td> ' ' י . MUL י</td><td> x,r4-</td><td> .</td>
<td> ASHC</td><td> #2,R4</td><td></td>
<td> ADD</td><td> yofx,r4.</td><td></td>
<td> MOV</td><td> R4.YOFX</td><td></td>
<td> 5 STOREG:</td><td></td><td></td>
<td> MUL</td><td> scfac,r4.</td><td> ;MULT. BY NORM. FACTOR</td>
<td> MOV</td><td> LTRY,R5</td><td></td>
<td> DEC</td><td> R5</td><td></td>
<td> ASL</td><td> R5 ־</td><td></td>
<td> 1o ADD</td><td> r4-,achi</td><td></td>
<td> DEC</td><td> R2 .</td><td></td>
<td> MA$</td><td> R1 ,YMJ</td><td></td>
<td> MOV</td><td> r1,r4</td><td></td>
<td> MUL</td><td> YM3,R4</td><td></td>
<td> 15 ADD</td><td> R5.ACLO</td><td></td>
<td> ADC</td><td> R4</td><td></td>
<td> ADD</td><td> R 4-, ACHI</td><td></td>
<td> INC</td><td> R1</td><td></td>
<td> MA$</td><td> R2,YP3</td><td></td>
<td> 20 MOV</td><td> R2,RU</td><td></td>
<td> MUL</td><td> yp3,r4</td><td></td>
<td> ADD</td><td> R5.ACLO</td><td></td>
<td> ADC</td><td> r4</td><td></td>
<td> ADD</td><td> R4.,ACHI</td><td></td>
<td><sup>25</sup> ' DEC</td><td> R2</td><td></td>
<td> B5: MA$</td><td> YM2, ו R</td><td></td>
<td> MOV</td><td> R1 ,R4</td><td></td>
<td> MUL</td><td> YM2,R4-</td><td></td>
<td> ADD</td><td> R5.ACLO</td><td></td>
<td><sup>30</sup> ADC</td><td> R4-</td><td></td>
<td> ADD</td><td> R4,ACHI</td><td></td>
<td> INC</td><td> R1</td><td></td>
<td> MA$</td><td> R2,YP2</td><td></td>
<td> MOV</td><td> R2 , R4</td><td></td>
<td><sup>35</sup> MUL</td><td> YP2,R4׳</td><td></td>
<td> ADD</td><td> R5,ACLO</td><td></td>
<td> ADC</td><td> R4</td><td></td>
<td> ADD</td><td> R4,ACHI</td><td></td>
<td> 26.8.78</td><td></td><td> A-2׳#</td><td> . PHA 2077(7</td>
<td> - </td><td> DEC '</td><td> R2</td><td></td>
<td></td><td> MA$ .</td><td> R1.YM1</td><td></td>
<td></td><td> MOV</td><td> RT,R4</td><td></td>
<td></td><td> MUL</td><td> YM1,R4</td><td></td>
<td> s</td><td> ADD</td><td> R5.ACLO</td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td>
<td></td><td> ADD׳</td><td> R4,ACHI</td><td></td>
<td></td><td> MA$</td><td> . R2,YP1</td><td></td>
<td></td><td> MOV</td><td> R2,R4</td><td></td>
<td> 10</td><td> MUL</td><td> R4, וYP</td><td></td>
<td></td><td> ADD</td><td> R5.ACLO</td><td></td>
<td></td><td> ADC</td><td> R4</td><td></td>
<td></td><td> ADD</td><td> R4,ACHI</td><td></td>
<td></td><td> MOV</td><td> achi,r4</td><td></td>
<td> 1s</td><td> MOV</td><td> ACLO.R5</td><td></td>
<td></td><td> DIV</td><td> (R3),R4</td><td></td>
<td></td><td> MOV</td><td> R4,B</td><td></td>
<td> ;COMPUTE</td><td> C:</td><td></td><td></td>
<td></td><td> CLR</td><td> r4</td><td></td>
<td> 20</td><td> CLR</td><td> R5</td><td></td>
<td></td><td> CMP</td><td> #5 ,SMOTH</td><td></td>
<td></td><td> beq</td><td> C5 '</td><td></td>
<td></td><td> CMP</td><td> #9 .,SMOTH</td><td></td>
<td></td><td> BEQ</td><td> C9</td><td></td>
<td> 25 C 13:</td><td> MOV</td><td> YM6.R5</td><td></td>
<td></td><td> ADD</td><td> YP6,R5</td><td></td>
<td></td><td> ADC</td><td> r4</td><td></td>
<td></td><td> ADD</td><td> YM5,R5</td><td></td>
<td></td><td> ADD</td><td> CURGAD,R5</td><td></td>
<td> 30</td><td> MOV</td><td> r4,(R5)</td><td> ;STORE THE G VALUE</td>
<td></td><td> ADD</td><td> linc,ldun(r/)</td><td></td>
<td></td><td> CMP</td><td> ldun(r0),ldnlim</td><td> ;HAVE WE COMPUTED ALL 51Ί</td>
<td></td><td></td><td></td><td> ELEMENTS?</td>
<td></td><td> BNE</td><td> TRYNXT</td><td> ;NO. TRY TO COMPUTE NEXT</td>
<td> 35</td><td></td><td></td><td> ONE</td>
<td></td><td> MOV</td><td> #-1,LDUN(R0)</td><td> ;YES. SET FLAG FOR THIS</td>
<td></td><td></td><td></td><td> DETECTOR</td>
<td></td><td> JMP</td><td> BMPIDT</td><td></td>
&#1470;
<td> 26</td><td> .8.78</td><td colspan="3"> Ae#־ pha 20779*</td>
<td></td><td> ? REJECT:</td><td> MOV</td><td>.(R4),R5</td><td> ;CHECK DISCREPANCY BE-</td>
<td></td><td></td><td> SUB</td><td> 68.(r4),R5</td><td> TWEEN NBRS</td>
<td> 5</td><td></td><td> BPL NEG</td><td> CHKNBD R5</td><td> ;GET ABS VALUE OF</td>
<td></td><td> CHKNBD:</td><td> CMP</td><td> R5,NOISLM</td><td> DIFFERENCE ;WITHIN NOISE TOLERANCE</td>
<td> 10</td><td></td><td> BGT</td><td> USE1</td><td> LIMIT? ;NO. USE ONLY 1 POINT</td>
<td></td><td> USE2 :</td><td> MOV</td><td> gave,r4</td><td> ;YES. USE ONLY THE 2</td>
<td> 15</td><td> USE1 : PRESTG:</td><td> BR MOV CLC ROR JMP</td><td> PRESTG (R4),R4 r4 STOREG</td><td> NBRS ;SCALE, AS USE3 DOES</td>
<td> 20</td><td> 5 TRYNXT: 5</td><td> ADD JMP</td><td> LING ,LTRY CMPNOM</td><td> f</td>
<td></td><td> ! BMPIDT:</td><td> INC</td><td> IDET</td><td></td>
<td> 25</td><td> CONBMP:</td><td> CMP BGE JMP CMP</td><td> IDET,#NDETS CONBMP DOADET LDUN,#-1</td><td> ;DETECTOR 1 DONE?</td>
<td> 30</td><td></td><td> BNE CMP</td><td> CONT 2 LDUN-i-72,#- 1</td><td> ;DETECTOR 30 DONE?</td>
<td> 35</td><td colspan="2"> BEQ ;WAIT FOR IB3 TO C0NT2: WTSE$S MOV MOV . BYTE EMT .</td><td> TRANDN FILL //3 #3,־(SP) (PC)+,-(SP) 41.,2 <sup>A</sup>O<377></td><td> ;GO WRITE G DATA</td>
<td> 26.8.78</td><td></td><td> ׳ 2׳A -</td><td> PHA 20779־t</td>
<td> 5 ' EF3:</td><td></td><td></td><td></td>
<td colspan="3"> ;CHECK FOR I/O ERROR</td><td></td>
<td></td><td> TST1־O$</td><td> SB3</td><td></td>
<td> 5</td><td> CMPB</td><td> SB3,#IS.SUC</td><td> ;TEST FOR SUCCESSFUL 1/0</td>
<td></td><td> BEQ</td><td> 1$</td><td></td>
<td></td><td> JSR</td><td> PC,ERR</td><td> ;ABORT IF I/O WAS BAD</td>
<td> ;COPY UP</td><td> IB2.IB3</td><td> CONTENTS INTO IB1</td><td> ,IB2</td>
<td></td><td> MOV</td><td> ^IB2,R0</td><td> ;SET INPUT POINTER</td>
<td> 10</td><td> MOV</td><td> #IB1,R1</td><td> ;SET OUTPUT POINTER</td>
<td></td><td> MOV</td><td> y/BYTSIB/16. , R2 .</td><td> ;COPY COUNTER</td>
<td> CPUPLP</td><td> .REPT</td><td> 16. .</td><td></td>
<td></td><td> MOV</td><td> (r/)+,(r1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> .ENDM</td><td></td><td></td>
<td> 15</td><td> MOV</td><td> (r/)+,(r1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (r/)+,(r1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (r/)+,(r1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (r0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td> 20</td><td> MOV</td><td> (R0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R0)+,(R1) +</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R/)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (r/)+,(r1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td> 25</td><td> MOA<sup>r</sup></td><td> (r/)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R0)+,(R1)+</td><td> .COPY 1 WORD</td>
<td></td><td> MOV</td><td> (r/)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> MOV</td><td> (R/)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td> 30</td><td> MOV</td><td> (R0)+,(R1)+</td><td> ;COPY 1 WORD</td>
<td></td><td> SOB</td><td> R2,CPUPLP</td><td></td>
<td> 5</td><td> CMP</td><td> BFSRQD,#BFSTRN</td><td></td>
<td></td><td> BEQ</td><td> FNDSYN</td><td> ;IF LAST, DON'T ASK FOR</td>
<td> 35</td><td></td><td></td><td> MORE</td>
<td> ;ASK FOR</td><td colspan="3"> A NEW IB3 FILL WHILE COMPUTING FROM IB1,IB2</td>
<td></td><td> QIO&S</td><td> #IO.RLB,#DK1,#3,,</td><td> #SB3 , , <//-IB3 >׳BYTSIB, ,</td>
INPSEO , ERR
<td> 26.8.78</td><td></td><td> A44-</td><td> PHA 20779“!</td>
<td> ' ' ( '</td><td> CLR</td><td> -(SP)</td><td></td>
<td> I .</td><td> MOV</td><td> INPSEC,-(SP)</td><td></td>
<td></td><td> CLR</td><td> ־(SP)</td><td></td>
<td> 1 1 i </td><td> CLR</td><td> ~(SP)</td><td></td>
<td><sup>5</sup> 1</td><td> ΜΟλ<sup>7</sup></td><td> #BYTSIB,-(SP)</td><td></td>
<td> ) 1' i</td><td> MOV</td><td> #IB3,-(3P)</td><td></td>
<td></td><td> CLR</td><td> -(SP)</td><td></td>
<td></td><td> MOV</td><td> #SB3,-(SP)</td><td></td>
<td> l</td><td> CLR</td><td> ־(sp)</td><td></td>
<td> 10</td><td> MOVE</td><td> #3.(SP)</td><td></td>
<td></td><td> MOV</td><td> . #DK1,-(SP)</td><td></td>
<td> !</td><td> MOV</td><td> #IO.RLB,-(SP)</td><td></td>
<td></td><td> MOV</td><td> (PC)+,-(SP)</td><td></td>
<td></td><td> .BYTE</td><td> 1 , 1 2 .</td><td></td>
<td> 1s</td><td> EMT</td><td><sup>A</sup>o<377></td><td> /</td>
<td></td><td> BCC</td><td> .+6</td><td></td>
<td></td><td> JSR</td><td> PC,ERR</td><td></td>
<td></td><td> INC</td><td> BFSRQD</td><td></td>
<td></td><td> ADD</td><td> .#SEXIBF, INPSEC</td><td></td>
<td> 20 ;</td><td></td><td></td><td></td>
FNDSYN: , ;FIND SYNC FOR DATA IN IB2
MOV. #IB2,R4
JSR PC ,FSYNC ;CONVERT DETECTOR READINGS IN IB2 to MU SUMS
IMP DECOM ;COMPUTE SOME MORE G
VALUES
TRANDN: . ' ;COME HERE WHEN HAVE COMPUTED ALL NSPSAM VALUES FOR ALL NDETS DETECTORS.
;CHECK FOR 1/0 ERROR ON LAST WRITE, IF THERE WAS ONE.
<td> TST</td><td> TRNSDN</td><td> ;IS THIS THE 1ST TRANSLA. TION?</td>
<td> BEQ</td><td> WRITGS</td><td> ;SKIP I/O TEST IF IT IS'</td>
<td> TSTIO$</td><td> SB4</td><td></td>
<td> CM.PB</td><td> SB 4,7/1S . SUC</td><td> ;TEST FOR SUCCESSFUL ,I/O</td>
<td colspan="3"> -</td>
<td> 26.8.78</td><td> - Λ n • J'l k f</td><td> - PI-1A 207׳;</td>
<td> BBQ</td><td> 1$</td><td></td>
<td> JSR ;WRITE NDETS G</td><td> PC,ERR ARRAYS TO DISK</td><td> ;ABORT IF I/O WAS BAD</td>
<td> WRITGS: QIO$S . י . ' 5 CLR</td><td> #IO.WLB,iH)K1 ,#( OUTSEC>, ERR -(sp)</td><td> , ,#SB4, ,<#OB,#BYTSOB,</td>
<td> MOV CLR</td><td> OUTSEC,-(SP) -(sp) .</td><td></td>
<td> CLR 10 MOV . . MOV</td><td> '-(SP) #BYTSOB,-(SP) ^OB,-(SP)</td><td></td>
<td> . CLR MOV CLR 15 MOVE MOV</td><td> -(sp) . #sb4,-(sp) -(SP) #4,(sp) #DKI,-(SP)</td><td></td>
<td> MOV</td><td> #10.WLB,-(SP)</td><td></td>
<td> MOV</td><td> (PC)+,-(SP)</td><td></td>
<td> . BYTE</td><td> 1,12.</td><td></td>
<td> 20 EMT</td><td><sup>λ</sup>Ο<377></td><td></td>
<td> BCC</td><td> .+6</td><td></td>
<td> JSR ' ADD.</td><td> PC , ERR #OSXTRN,OUTSEC .</td><td> ־-</td>
<td> INC</td><td> TRNSDN</td><td></td>
<td> 25 CMP</td><td> TRNSDN ,#NTRANS</td><td></td>
<td> BEQ</td><td> CLNUP</td><td> ;QUIT IF HAVE DONE ALL TRANSLATIONS</td>
<td colspan="2"> JMP . DOTRAN 5 <sup>30 ;</sup> CLNUP: WTSEflS #4 MOV #4,-(SP) ' MOV (PC)+,-(SP) . BYTE 41.2 <sup>35</sup> EMT ׳־O<:377> ;CHECK FOR I/O ERROR TSTIO$ SB4</td><td> ;ELSE DO NEXT</td>
<td colspan="2"> ־</td><td rowspan="2"> PHA 2077?T</td>
<td> 26.8.78</td><td> **rS־</td>
<td> 1 ן CMPB'</td><td> SB4,#IS.SUC ;TEST</td><td> FOR SUCCESSFUL 1/0</td>
<td> 1 BEQ</td><td></td><td></td>
<td> j ' JSR</td><td> PC,ERR ;ABORT</td><td> IF I/O WAS BAD</td>
<td> ;Request startup</td><td> OF MGP</td><td></td>
<td> S ; RQST$S</td><td> MGPNAM</td><td></td>
<td> ' ' CLR 1</td><td> -(SP)</td><td></td>
<td> ! CLR 1</td><td> -(sp)</td><td></td>
<td> CLR .</td><td> -(SP)</td><td></td>
<td> CLR</td><td> -(sp)</td><td></td>
<td> 10 ׳ MOV</td><td> ' MGPNAM, - (SP)</td><td></td>
<td> MOV</td><td> @(sp),-(sp)</td><td></td>
<td> . ADD</td><td> #2,2(5P)</td><td></td>
<td> MOV</td><td> @2(SP),2(3P)</td><td></td>
<td> MOV '</td><td> (PC)+,-(SP)</td><td></td>
<td> 15 ,BYTE</td><td> 11.,7</td><td></td>
<td> EMT</td><td>/3777 ' </td><td></td>
<td> ן EXITftS</td><td></td><td></td>
<td> MOV</td><td> (P0)+,-(SP)</td><td></td>
<td> 20 . BYTE</td><td> 51.,1</td><td></td>
<td> EMT</td><td> -o<377></td><td></td>
<td> ;THE END «</td><td> X</td><td></td>
<td colspan="2"> 5 SUBROUTINE TO CONVERT 2 DIGIT DECIMAL#TO</td><td> ASCII C0NV2D:</td>
<td> 25 CLR</td><td> r4</td><td></td>
<td> DIV</td><td> #10.,<sup>r</sup>4</td><td></td>
<td> ADD</td><td> #260,<sup>r</sup>4</td><td></td>
<td> ADD</td><td> #260,R5</td><td></td>
<td> SWAB ־</td><td><sup>R</sup>5</td><td></td>
<td> 30 ADD</td><td><sup>r</sup>4,r5</td><td></td>
<td> RTS</td><td> PC</td><td></td>
<td colspan="2"> SUBROUTINE TO OUTPUT MESSAGE LINE:</td><td></td>
<td> PRINT: QIO$S</td><td colspan="2"> #10 . W.LB ,#TM ,#10.,,#I0STB, ,<#MES ,#24. , #040></td>
<td> 35 CLR '</td><td> -(SP)</td><td></td>
<td> CLR</td><td> -(SP)</td><td></td>
<td> CLR</td><td> -(SP)</td><td></td>
<td> MOV</td><td> #040,-(SP)</td><td></td>
26,8.78
<td> -i i ! i r</td><td> MOV ' MOV CLR</td><td> ^.,~(SP) #MES,-'(<sub>SP</sub>) “(SP)</td>
<td> 5</td><td> MOV</td><td> #IOSTB,-(sp)</td>
<td></td><td> CLR</td><td> ־(SP)</td>
<td></td><td> MOVB</td><td> -#<sup>1</sup>/., (sp)</td>
<td></td><td> MOV</td><td> #TM,-(sP)</td>
<td></td><td> MOV</td><td> #IO.WLB,-(sp)</td>
<td> 10</td><td> MOV</td><td> (<sup>p</sup>c)<sub>+j</sub>_(<sub>sp</sub>)</td>
<td></td><td> .byte</td><td> .12 , ו</td>
<td> ' -</td><td> EMT</td><td><sup>a</sup>O<377></td>
<td></td><td> WTSE$S</td><td></td>
<td></td><td> MOV</td><td> ^<sup>1</sup>^.,־(sp)</td>
<td> 15</td><td> MOV</td><td> (<sup>PC</sup>)<sub>+)</sub>_(<sub>S</sub>pJ</td>
<td></td><td> .BYTE</td><td> 2 , . ו</td>
<td></td><td> EMT</td><td><sup>λ</sup>Ο<377></td>
<td></td><td> CMPB י</td><td> ^<sup>1</sup>'s. sue, 10 STB</td>
<td></td><td> BEQ</td><td> 70$</td>
<td><sup>20</sup> 70$:</td><td> J SR</td><td> PC , ERR</td>
<td></td><td> RTS </td><td> PC</td>
PHA 2 0^79
<td colspan="2"> SUBROUTINE TO</td>
<td> OCTASC:</td><td> CLR</td>
<td> 25 .</td><td> A SBC</td>
<td></td><td> ADD</td>
<td></td><td> MOVB</td>
<td></td><td> MOV</td>
<td> OALOOP:</td><td> CLR</td>
<td> 30</td><td> A SB C</td>
<td></td><td> ADD</td>
<td></td><td> move</td>
<td></td><td> dec</td>
<td></td><td> BNE י</td>
<td> 35</td><td> RTS</td>
CONVERT AND
R4
STOBE OCTAL #AS Ascn ^1, R4 **26/, r 4 K4,(R3)+ #5,DIGCNT R4 #3,.R4 #26/&#1523;r/4 K4,(rj)+ DIGCNT OALOOP PC
SUBROUTINE TO FIND1 &#1523;ST SYNC &#1495;&#1494;&#1503;!.
returns witb R4 pointing to 1stDsZc&#1524;UWR STARting . r.SyNC W°RD IN DUFFER
<td></td><td></td><td></td><td></td><td> -'38 -</td><td></td>
<td> 1 i</td><td> 26</td><td> .8.78</td><td></td><td> Λ n rv. < l U<sup>1</sup></td><td> PHA 2077^</td>
<td> ί</td><td></td><td> SYNC :</td><td> . ADD</td><td> #68.,R4</td><td></td>
<td></td><td></td><td> SYNTST:</td><td> TST</td><td> (r4)-p</td><td></td>
<td> J 1</td><td></td><td> I I 1</td><td> BNE</td><td> 'SYNTST</td><td></td>
<td> i</td><td></td><td></td><td> DEC</td><td> r4</td><td></td>
<td></td><td> 5</td><td> i i</td><td> DEC</td><td> r4</td><td></td>
<td></td><td></td><td> ׳ ! 1</td><td> RTS</td><td> PC</td><td></td>
<td> ן 1</td><td></td><td></td><td></td><td></td><td></td>
<td> i :</td><td> 10</td><td> 5 5 5</td><td></td><td></td><td></td>
<td></td><td></td><td> ERR:</td><td> MOV</td><td> $DSW,R0</td><td> ;PICK UP DIRECTIVE STATUS</td>
<td> ! !</td><td></td><td></td><td></td><td></td><td> WORD</td>
<td> 1 1 .</td><td></td><td></td><td> MOV</td><td> (SP)+,R1</td><td> ;AND CALLING ADDRESS</td>
<td></td><td></td><td></td><td> HALT</td><td></td><td></td>
<td></td><td> 15</td><td> 5</td><td></td><td></td><td></td>
<td></td><td></td><td> 5 MGPNAM:</td><td> .WORD</td><td> MGP</td><td></td>
<td></td><td></td><td> MGP :</td><td> .RAD50</td><td> /MGP /</td><td></td>
<td></td><td> 20</td><td> 5 »</td><td></td><td></td><td></td>
<td></td><td></td><td> LTOR:</td><td> .WORD</td><td> 0 '</td><td></td>
<td></td><td></td><td> LINC :</td><td> .WORD .</td><td> 0</td><td> .־־-־</td>
<td></td><td></td><td> LDNLIM:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> BFSRQD:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td> 25</td><td> TRNSDN:</td><td> '.WORD</td><td> 0</td><td></td>
<td> ׳</td><td></td><td> INPSEC:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> IDET:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> LTRY:.</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> ENCNOM:</td><td> ־ WORD.</td><td> 0</td><td></td>
<td></td><td> 30</td><td> FRSTPO:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> LASTPO:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> CURGAD:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> OUTSEC:</td><td> . WORD</td><td></td><td></td>
<td></td><td> 35</td><td> J DT:</td><td> . WORD</td><td> 0</td><td></td>
;DATA POINTS AROUND ENCNOM:
<td></td><td> YM6:</td><td> .WORD</td><td> 0</td>
<td></td><td> YM5 :</td><td> . WORD</td><td> 0</td>
<td> . ..</td><td colspan="5"> - '39</td>
<td> -</td><td> 26.8.78</td><td></td><td></td><td></td><td> PHA 20779^</td>
<td></td><td> 1 ' ym4:</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YM3: '</td><td> .WORD<sub>:</sub></td><td> 0</td><td></td><td></td>
<td></td><td> YM2:</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YM1:',</td><td> . WORD</td><td> • 0</td><td></td><td></td>
<td></td><td><sup>5 Y</sup>?<sup>:</sup></td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YP1 :</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YP2:</td><td> . WORD</td><td> 0.</td><td></td><td></td>
<td></td><td> YP3:.</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YP4:</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td><sup>10</sup> YP5:</td><td> .WORD</td><td> 0</td><td></td><td></td>
<td></td><td> YP6:</td><td> .WORD</td><td> 0</td><td></td><td></td>
;DBL ACCUM:
<td> ACHI: ACLO :</td><td> .WORD .WORD</td><td> 0 0.</td>
<td colspan="2"><sup>15</sup> ;COEFFICIENTS FOR</td><td> POLYNOMIAL FIT:</td>
<td> A:</td><td> .WORD</td><td> 0</td>
<td> B:</td><td> .WORD</td><td> 0</td>
<td> C:</td><td> .WORD</td><td> 0</td>
<td> 9 20 <sub>X</sub>':</td><td> .WORD</td><td> 0</td>
<td> YOFX:</td><td> . WORD</td><td> 0 ,</td>
<td> 9 ;TABLE</td><td colspan="2"> OF BYTE OFFSETS IN DATA FRAMES:</td>
<td> ;VALUE</td><td colspan="2"> = ' OF BYTES PAST SYNC WORD ADDRESS</td>
<td> 25 FRINDT:</td><td> .WORD</td><td> 4</td>
<td></td><td> .WORD</td><td> 6</td>
<td></td><td> .WORD</td><td> 8. .</td>
<td></td><td> . WORD</td><td> 10.</td>
<td></td><td> .WORD’</td><td> 12.</td>
<td> 30</td><td> .WORD</td><td> •14. '</td>
<td></td><td> . WORD</td><td> 16.</td>
<td></td><td> .WORD</td><td> 18.</td>
<td></td><td> . WORD</td><td> 20.</td>
<td></td><td> '.WORD .</td><td> 22.</td>
<td> 35</td><td> .WORD</td><td> 24.</td>
<td></td><td> .WORD</td><td> 26.</td>
<td></td><td> .WORD</td><td> 28.'</td>
<td></td><td> .WORD</td><td> 30.</td>
26.8.78 PHA 20779/
<td></td><td> .WORD</td><td> 32.</td>
<td></td><td> .WORD</td><td> 38.</td>
<td></td><td> .WORD</td><td> 40.</td>
<td></td><td> .WORD</td><td> 42.</td>
<td> 5</td><td> .WORD</td><td> 44.</td>
<td></td><td> .WORD</td><td> 46.</td>
<td></td><td> .WORD</td><td> 48.</td>
<td></td><td> . WORD</td><td> 50.</td>
<td></td><td> . .WORD</td><td> 52.</td>
<td><sup>10</sup></td><td> . WORD</td><td> 54.</td>
<td></td><td> .WORD</td><td> . 56.</td>
<td></td><td> . WORD</td><td> 58.</td>
<td></td><td> . WORD</td><td> 60.</td>
<td></td><td> . WORD</td><td> 62.</td>
<td> 15</td><td> . WORD</td><td> 64.</td>
<td></td><td> . WORD</td><td> 66.</td>
<td></td><td></td><td></td>
;TABLE OF TIME OFFSETS FOR DETECTORS ;UNITS ARE SUB-FRAME INTERVALS (1/34TH.OF NOMINALLY 1 MSEC 20 FRAME TIME) ;TIMES ARE RELATIVE TO TIME OF 1ST POSITION MEASUREMENT IN FRAME .
DOFFT: .WORD1.&#1523; .WORD 2.
.WORD3 .WORD4
<td> .WORD</td><td> 5</td>
<td> .WORD</td><td> 6</td>
<td> .WORD</td><td> 7</td>
<td><sup>30</sup> .WORD</td><td> 8.</td>
<td> .WORD</td><td> 9.</td>
<td> . .WORD</td><td> 10.</td>
<td> .WORD</td><td> 1 1 .</td>
<td> ;word .</td><td> 12.</td>
<td><sup>35</sup> .WORD</td><td> ־13</td>
<td> .WORD</td><td> 14.</td>
<td> .WORD</td><td> 15.</td>
<td> .WORD</td><td> 18.</td>
26.8.78
PHA 20779^.
<td></td><td> .WORD</td><td> 19.</td>
<td></td><td> .WORD</td><td> 20.</td>
<td></td><td> .WORD</td><td> 21 .</td>
<td></td><td> .WORD</td><td> 22.</td>
<td> 5</td><td> .WORD</td><td> 23.</td>
<td> •</td><td> .WORD</td><td> 24.</td>
<td></td><td> .WORD</td><td> 25.</td>
<td></td><td> .WORD</td><td> 26.</td>
<td></td><td> .WORD</td><td> 27.</td>
<td> 10</td><td> . WORD</td><td> 28.</td>
<td></td><td> .WORD</td><td> 29.</td>
<td></td><td> .WORD</td><td> 30.</td>
<td></td><td> .WORD '</td><td> 31.</td>
<td></td><td> .WORD</td><td> 32.</td>
<td> ,־ 15</td><td></td><td></td>
<td> f</td><td></td><td></td>
LDUN: .BLKW NDETS
SB2: .BLKW2
SBJ: .BLKW2
SB4: .BLKW2
<td colspan="4"> . י ;ARGUMENT LIST'FOR FORTRAN SUBROUTINE CETABS</td>
<td></td><td> ARGLST:</td><td> .BYTE</td><td> 7.0</td>
<td> ׳25</td><td></td><td> .WORD</td><td> IA</td>
<td></td><td></td><td> .WORD</td><td> !OFF</td>
<td></td><td></td><td> .WORD</td><td> ISA</td>
<td></td><td></td><td> .WORD</td><td> ' IFA</td>
<td></td><td></td><td> .WORD</td><td> ITO</td>
<td> 30</td><td></td><td> .WORD</td><td> ND</td>
<td></td><td> J</td><td> .WORD</td><td> LPI</td>
<td></td><td> j SMTBL:</td><td> 3־י</td><td></td>
<td> 35</td><td></td><td> 12.</td><td></td>
<td></td><td></td><td> 17.</td><td></td>
<td></td><td></td><td> 35. .</td><td></td>
<td></td><td></td><td> 10.</td><td></td>
- .42 26.8.78 . PHA 207797 i -1 1&#1470; .
'1. & . '' 9. ' ;16.
1'21 .
' 24.' i ' 25’.
143.
182.
10-21.
14.‘
39.
54.
59.
15231 .
60.
<td> SMOTH:</td><td> .BLKB</td><td> 2</td>
<td> DISP:</td><td> .WORD</td><td> /</td>
<td> 10STB:</td><td></td><td></td>
<td> 20 PMSG:</td><td> .ASCII/</td><td> -/</td>
<td></td><td> .EVEN</td><td></td>
<td> TEMP/:</td><td> .WORD</td><td></td>
<td> TEMP 1:</td><td> .WORD</td><td> /</td>
<td> TEMP2:</td><td> .WORD</td><td></td>
<td> 25 TEMP3:</td><td> .WORD</td><td></td>
<td></td><td> IA:</td><td> .WORD</td><td> /</td>
<td></td><td> I OFF:</td><td> .WORD</td><td> /</td>
<td> 30</td><td> ISA:</td><td> .WORD</td><td> /</td>
<td></td><td> TAUSF:</td><td> .WORD</td><td> /</td>
<td></td><td> FACTOR :</td><td> .WORD</td><td> /</td>
<td></td><td> NOISLM:</td><td> WORD־.</td><td> /</td>
<td></td><td> DPLIM:</td><td> '.WORD</td><td> /</td>
<td> 35</td><td> IFA:</td><td> .WORD</td><td> /</td>
<td></td><td> ITO:</td><td> .WORD</td><td> /</td>
26.8.78
PHA 20779-^k
<td rowspan="2"></td><td colspan="4"></td>
<td> • ND: .</td><td> . WORD</td><td colspan="2"> NDETS</td>
<td></td><td> LPI</td><td> '.WORD</td><td> ENCLPI</td><td></td>
<td></td><td> NCANDS:</td><td> .WORD '</td><td> NFRMS</td><td> ; OF FRAMES TO REARCH</td>
<td> 5</td><td> GAVE:</td><td> .WORD</td><td> 0</td><td> FOR POSITION</td>
<td></td><td> DENCPF:</td><td> .WORD</td><td> 0</td><td> ;ENCODER CHANGE PER FRAME</td>
<td></td><td> HAFDEN:</td><td> .WORD</td><td> 0</td><td> ;1/2 THE ENCODER CHANGE</td>
<td></td><td></td><td></td><td></td><td> PER FRAME</td>
<td> 10</td><td> ENCADJ:</td><td> .WORD</td><td> 0</td><td> ;ADJUSTMENT FOR NET TIME</td>
<td></td><td></td><td></td><td></td><td> OFFSET FOR DET</td>
<td></td><td> SCFAC:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td> MES:</td><td> .ASCII</td><td> / T/</td><td></td>
<td></td><td> MES0:</td><td> .ASCII</td><td> /##/</td><td> - .</td>
<td> 15</td><td> MES1 :</td><td> .ASCII</td><td> / s/</td><td> .-</td>
<td> 040</td><td> MES2 :</td><td> .ASCII</td><td> /YN /</td><td></td>
<td> 040</td><td> MES3:</td><td> .ASCII</td>
<td> /40</td><td></td><td></td>
<td></td><td> 040</td><td> mes4;</td><td> .ASCII</td><td> / /</td><td> /</td>
<td></td><td> 040</td><td> 9</td><td></td><td></td><td></td>
<td></td><td></td><td> SPACES :</td><td> .ASCII</td><td> / s/</td><td></td>
<td> 25</td><td></td><td> YN:</td><td> .ASCII</td><td> /YN/</td><td></td>
<td></td><td></td><td> SPACEE:</td><td> .ASCII</td><td> / E/</td><td></td>
<td></td><td></td><td> NC: '</td><td> .ASCII</td><td> /NC/</td><td></td>
<td></td><td></td><td> ACLIM:</td><td> .WORD</td><td> 4</td><td></td>
<td></td><td></td><td> SPACED :</td><td> .ASCII</td><td> /מ /</td><td></td>
<td> 30</td><td></td><td> FRSTD:</td><td> .WORD</td><td> 0 -</td><td></td>
<td></td><td></td><td> DET:</td><td> .WORD</td><td> 0</td><td></td>
<td></td><td></td><td> DIGCNT: J RCPBUF:</td><td> .WORD</td><td> 0</td><td></td>
<td> 35</td><td></td><td> IB1 :</td><td> .BLKB</td><td> BYTSIB</td><td></td>
<td></td><td></td><td> IB2:</td><td> . BLKB</td><td> . BYTSIB</td><td></td>
<td></td><td></td><td> IB3:</td><td> . BLKB</td><td> BYTSIB</td><td></td>
<td rowspan="2"> 26.8.78 י ’ : . 1 ׳ ί</td><td colspan="2"> Ρ.1ΊΑ 20779 <sub>t</sub> ' נדללר 3</td>
<td> or 5</td><td> J: . BLKB BYTSOB</td>
<td> ! 7 י J !. ί</td><td> 9</td><td> .PSECT ICEN,GBL,OVR,D</td>
<td> I . <sup>5</sup> ί .</td><td colspan="2"> ICEN:</td>
<td></td><td></td><td> ,PSECT</td>
<td></td><td></td><td></td>
<td> י י י !‘</td><td> 5 0</td><td> CETABS</td>
<td> j</td><td> C</td><td> SUBROUTINE TO COMPUTE ENCODER VALUES TABLE FOR MG</td>
<td> j <sup>10</sup></td><td> c</td><td> TABLES ARE PROGRAM SECTIONS OF MG</td>
<td> J</td><td> c</td><td> 10/29/75, TRL</td>
<td> j ' 1</td><td></td><td> SUBROUTINE CETABS (1A,IOFF,ISA,IFA,ITO , ND ,LPI)</td>
<td> j - ¢¢¢2</td><td></td><td> COMMON /1CEN/1CEN(30)</td>
<td> 0003</td><td></td><td> COMMON /1DIF/1DIF(30)</td>
<td> 15</td><td> c</td><td> IA=#OF MICRONS PER SPATIAL SAMPLE INTERVAL</td>
<td></td><td> c</td><td> IOFF=ENCODER READING WHEN YOKE CENTERED OVER AY IS</td>
<td></td><td> c</td><td> ISA=SOURCE-AXIS DISTANCE IN .1MM UNITS</td>
<td></td><td> c</td><td> IFA=TOTAL FAN ANGLE IN MILLIDEGREES</td>
<td></td><td> c</td><td> IT0=THETA OFFSET IN MILLIDEGREES</td>
<td> : 20</td><td> 0</td><td> ND=#OF DETECTORS</td>
<td> •</td><td> c</td><td> LPI=LINES PER INCH OF ENCODER -</td>
<td></td><td> c</td><td> ICEN=TABLE OF CENTER ENCODER VALUES VS׳ DETECTOR</td>
<td></td><td> c</td><td> IDIF=TABLE OF DIFFERENTIAL ENCODER VALUES VS DETEC-</td>
<td></td><td></td><td> TOR</td>
<td> 25</td><td> c</td><td> IDIFSH=SHIFT COUNT FOR IDIF VALUES (MUST AGREE WITH</td>
<td></td><td> c</td><td> MG)' </td>
<td> ’ 30</td><td> c c</td><td> )</td>
<td> I 0004</td><td></td><td> DATA IDIFSH/7/</td>
<td> I . . . .0005</td><td></td><td> data pi/3.1415926536/</td>
<td> 0006</td><td></td><td> FACT0R=FL0AT(2xxIDIFSH).</td>
<td> ! <sup>35</sup> 0007</td><td></td><td> DSAXCM=FLOAT(ISA)/100.</td>
<td> 0008</td><td></td><td> DELTHR=((FLOAT(1FA)/1000.)/FLOAT(ND))«Pl/180. '</td>
<td> 0009</td><td></td><td> THTOFF־־ (FLOAT (1TO )/1000. )xPl/180.</td>
<td> 0010</td><td></td><td> ENCLCM=FLOAT(LPl)/2.540</td>
26.8.78 20779 &#1497;. ' , 0011 ACM=FLOAT(1A.)/10000. &#1523;
0012 DO 100 1=1,ND
00.13 THETRD5 .&#1470;mDELTHRkFLOAT (2«I-ND-1) +THTOFF
0014 ' ICEN(1)=-IFIX(DSAXCMkENCLCM«SIN(THETRD)/C0S (thetrd)+ioff
0015 idif(i)=ifix(factor«acm«enclcm/cos(thetrd))
0016 100 CONTINUE
0017 RETURN
0018 END .,
CORE&#1470;&#1470; ,LP/SP=SETREC
C SETREC C PROGRAM TO RECORD SCAN PARAMETERS FOR PROJECTIONS
PROGRAM(MG).
- C PARAMETERS ARE STORED AS FILE RECP.DAT.
<td> 15.</td><td> C</td><td></td><td></td>
<td></td><td> C</td><td colspan="2"> STRUCTURE OF RECP</td>
<td></td><td> C</td><td> WORD .</td><td> VARIABLE</td>
<td></td><td> C</td><td> 1</td><td> IA</td>
<td> 20</td><td> C</td><td></td><td></td>
<td></td><td> C</td><td> 2</td><td> IOFF</td>
<td></td><td> C</td><td></td><td></td>
<td> 25</td><td> C C</td><td> 3</td><td> ISA</td>
<td></td><td> c</td><td> 4</td><td> TAUSF</td>
<td></td><td> c</td><td></td><td></td>
<td> 30</td><td> c</td><td> 5</td><td> FACTOR</td>
<td></td><td> c</td><td></td><td></td>
<td> 35</td><td> c c</td><td> 6</td><td> NOISLM</td>
<td></td><td><sup>c</sup></td><td> 7</td><td> DPLIM</td>
ARRAY STORED FOR MG:
PARAMETERS
SPATIAL SAMPLE INTERVAL (764 = .5 MM) (USE 1750 FOR BODY SCANS)
LINEAR ENCODER OFFSET (READING WHEN YOKE CENTERED ON
AXIS)
DISTANCE FROM XRAY SOURCE (FOCAL SPOT CENTER) TO AXIS
TIME DELAY,IN SUB-FRAME INTERVALS, SAMPLE TIME
TO READOUT (UNITS ARE 1/34.
MSEC)
SCALE FACTOR TO NORMALIZE G
VALUES (FACTOR = OCTAL 57500 TO MAKE
F(WATER)=1000.)
NOISE LIMIT (1N RAW G VALUES)
PERMISSABLE CHANGE IN ENCODER/.5 MSEC ,26.8.78 Α&#1523;?β . PHA •20779 i C 8 IFA TOTAL FAN ANGLE
I 1 &#1497;&#1497; j C (UNITS ARE 1/1000 DEGREE) &#1497;&#1503; ITO CORRECTION FOR ΝΟΝ-PLUMB BEAM
&#1470;.I,
I c .
5 &#906; &#1470; ' c
C INITIALIZE PARAMETERS
<td> 10</td><td> 0001</td><td> INTEGER RECP(9)</td>
<td></td><td> 0002</td><td> CALL ASSIGN(1,’RECP.DAT</td>
<td></td><td colspan="2"> C INPUT PARAMETERS FROM USER</td>
<td></td><td> 0003</td><td> WRITE(6,10)</td>
<td></td><td> 0004 10</td><td> FORMAT ('$IA=’)</td>
<td> 15</td><td> 0005</td><td> read(5,12)recp(1)</td>
<td></td><td> 0006 12</td><td> format(17)</td>
<td></td><td> 0007</td><td> WRITE(6,20)</td>
<td></td><td> 0008 20</td><td> FORMAT(י $ IOFF=')</td>
<td></td><td> 0009</td><td> READ(5,12)RECP(2)</td>
<td> 20</td><td> 0010</td><td> WRITE(6,30)</td>
<td></td><td> 0011 30</td><td> FORMAT('$ ISA־')</td>
<td></td><td> 0012</td><td> READ,(5,12)RECP(3)</td>
<td></td><td> 0013</td><td> WRITE(6,40)</td>
<td></td><td> 001 4 4-0</td><td> . FORMAT('$ TAUSF־')</td>
<td> 25</td><td> 0015</td><td> READ(5,12)RECP(4)</td>
<td> ׳׳</td><td> 0016</td><td> WRITE(6,50)</td>
<td></td><td> 0017 '50</td><td> FORMAT(FACTOR־’)</td>
<td></td><td> 0018</td><td> READ(5,12)RECP(5)</td>
<td></td><td> 0019</td><td> WRITE(6,60).</td>
<td> 30</td><td> 0020 60</td><td> FORMAT('$ NOISLM־')</td>
<td></td><td> 0021</td><td> READ(5,12)RECP(6) '</td>
<td></td><td> 0022</td><td> WRITE(6,70)</td>
<td></td><td> 0023 70</td><td> FORMAT ('$ DPLIM־')</td>
<td></td><td> 0024</td><td> READ(5,12)RECP(7)</td>
<td> 35</td><td> 0025</td><td> WRITE(6,80)</td>
<td></td><td> 0026 80</td><td> FORMAT ( ׳ $ IFA.'<sup>1</sup> ־ )</td>
<td></td><td> 0027</td><td> . READ(5,12)RECP(8)</td>
PHA. 20779
<td> 26.8.78</td><td> .M?־</td>
<td> 0028</td><td> WRITE(6,90)</td>
<td> 0029 90</td><td> FORMAT('ft ITO<sup>1</sup>־)</td>
<td> 0030</td><td> READ(5,12)RECP(9)</td>
<td colspan="2"> C WRITE FILE</td>
<td> 5 0031</td><td> WRITE(1)RECP</td>
<td> 0032</td><td> ENDFILE 1</td>
<td> 0033</td><td> END</td>
Contents46
2 sheets
Sheet 1 Sheet 2
13 members in 10 offices
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 82793277 | United States of America | A |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| IL55419A0 | Israel | A0 | |
| US4136388A | United States of America | A | |
| BE869952A | Belgium | A | |
| SE7808880L | Sweden | L | |
| NL7808636A | Netherlands (Kingdom of the) | A | |
| NL7808636A | Netherlands (Kingdom of the) | A | |
| GB2003361A | United Kingdom | A | |
| DE2836577A1 | Germany | A1 | |
| FR2401463A1 | France | A1 | |
| JPS5447494A | Japan | A | |
| IL55419AThis record | Israel | A | |
| CA1119317A | Canada | A | |
| GB2003361B | United Kingdom | B |
Numbers
- Application
- 554
Titles
- English
- COMPUTER TOMOGRAPHY APPARATUS AND METHOD OF MEASURING AND PROCESSING DATA OBTAINED THEREFROM
Classification
- CPC, 3
- A61B6/032
- Y10S378/901
- G06T12/10
- IPC, 4
- A61B6 03
- G01N23 04
- G06Q50 00
- G06T11 00
