HIGH SPEED DIGITAL FREQUENCY COUNTER

Abstract: A method and apparatus for computing frequency of an unknown signal using the number of counts of a high and low frequency reference signal which occur between the leading and trailing edges of the pulse of unknown frequency. Method and apparatus is also described utilizing this technique for application in control processes where it is desired to optimize the process by allowing it run at a faster rate and slowing the process as it approaches the desired steady state or other control point in the process.

Description: High Speed Digital Frequency Counter S P E C I F I C A T I O N Background of the Invention; Field of the Invention The present invention relates to a method of an apparatus for determining frequency of an unknown signal and operates at much higher speed than previous systems available at the price range proposed. The invention operates on the principle of determining the frequency of an unknown signal by counting a first frequency reference signal for a duration of time controlled by the unknown and counting a second higher frequency reference signal for the periods for which the reference overlaps or is otherwise out of phase with the first lower frequency reference signal. More specifically, apparatus is dis¬ closed which generates a first 10 MHz reference signal and a second 100 MHz reference signal. The unknown signal whose frequency is to be determined triggers the 100 MHz reference signal on a falling edge of the unknown signal. The count of the 100 MHZ signal continues the duration of the 10 MHz reference signal from the aforemen¬ tioned falling edge to the next rising edge of the unknown frequency. The process is then repeated triggering on the leading edge of the unknown signal which enables the 100 MHz high frequency clock for the duration of the 10 MHz reference signal until the occurrence of the falling edge of the unknown signal. Conversely, the system could trigger in a reverse fashion: i.e. first on the leading edge, then on the trailing edge. The counts of 10 MHz reference signal and 100 MHz reference signal thus generated are analyzed by a computer program which operates in accordance with an algorithm to generate and display the frequency of the unknown signal. Additional capabilities are provided to enable the system to detect and track whether the unknown signal is at a preset given frequency. In this mode the circuit and program are used to control a physical system to drive it to a desired degree of accuracy. For example, in the final calibration of quartz crystals the invention can be used to control the frequency and duration of plating rate to achieve a very high resolution of 1 ppm by controlling the plating speed at a higher rate when the count is approaching the desired target frequency and at a slower, decreasing rates when the count is near and approaching the target frequency. Description of the Prior Art Prior art frequency measurement techniques are available such as the universal freqency counter technique or the multiplication of frequency technique both of which achieve improved resolution at faster counter rates. The disadvantages of these prior art techniques is that the universal freqency counter method is limited to a maximum speed of 150 counts per second and is costly. In addi¬ tion, the resolution of the measurement by this method is inaccurate. The multiplication method on the other hand provides high resolution; however, errors in the detection are multiplied along with the desired signal so that reso¬ lution here is not satisfactory for the highest resolution applications. In the vacuum deposition application, it is known to vary the deposition rate by varying the power applied to the deposition source. These systems utilize a single measurement speed, i.e. rate of data selection, while applicant's program controls the deposition source by taking data at varying speeds. This has the advantage of process optimization to deposit faster then slower as the target rate is approached. Summary of the Invention: Applicant believes that the combination of a low cost personal computer programmed in accordance with the program described herein and the high speed frequency calculation circuit is an improved low cost frequency determination scheme. The computer reads the frequency analysis data rapidly at time intervals then resets the frequency analysis circuitry so as to free it to continue to accurately analyze the unknown signal in accordance with the method described herein. This parallel process¬ ing of frequency data enables the computer to analyze and determine the unknown frequency at very high speed. An object of the present invention is the provision of a high speed frequency analysis method and apparatus. Another object of the present invention to utilize a personal computer programmed to determine the frequency of an unknown signal which when coupled to unique circuitry, provides frequency analysis data to the computer in a parallel rather than a serial fashion. Another object of the present invention is the provision of a control system for high resolution applica¬ tions which varies the speed of the controlled system starting at a high speed and slowing, as the desired resolution is achieved. These and other objects of the invention are realized by the combination of hardware and computer software described in the accompanying drawings in which: Fig. 1 is a block diagram of the system in accordance with the invention; Fig. 2 is a wave form diagram of the various signals for timing and counting the unknown frequency; Fig. 3 is a schematic diagram of the edge detec¬ tion and control circuitry which detects the leading and trailing edges respectively of the various pulses of the unknown frequency and controls the high and low frequency reference counters; and Fig. 4 is a block diagram of the frequency con¬ trol system of Fig. 1 applied to final calibration of quartz crystals. Brief Description of the Drawing Fig. 1 is a block diagram of the computer hard¬ ware and digital circuitry employed in the invention. More particularly, numeral 2 denotes a digital computer of the popular PC type such as the APPLE HE. Coupling the computer to the other circuitry is an interface unit 4 which will be described in connection with Fig. 3 below. Suffice it to say, however, that interface 4 uses ICs 74LS244, 74LS273, 74LS245 and 74LS151 which are well known ICs for interface applications connected in accord¬ ance with the directions contained in integrated circuit handbooks such as the Data Interface Handbook. Numeral 30 denotes the unknown signal whose frequency is to be measured. The invention employs two oscillators; a 10 MHz low frequency oscillator shown at numeral 20 which in practice is manufactured by CTS, Knight Corporation or Motorola and is known as a 10 MHz TCXO oscillator (temperature compensated crystal oscilla¬ tor) , and a high frequency 100 MHz oscillator shown in numeral 28 which, in practice, is also manufactured by CTS, Knight Corporation and is a standard commercial product. Buffers 6, 8, 10 and 12 respectively are pro¬ vided to control signal transfer and loading as is standard practice. These buffers are integrated circuits 74LS244 manufactured by a wide variety of electronics concerns. Latches 14 are provided to connect the interface unit to test frequency counters which will be described later. These latches are again standard to provide signal con¬ ditioning and transfer. In practice latches 14 are an integrated circuit 74LS273 widely available commercially. The source of unknown frequency signal 30 is connected to test frequency counters 16. These counters are integrated circuits known as 74LF191 commercially available. In practice, 8 of these integrated circuits are connected together and are controlled by the computer via latch 14 to reset all the counters to zero so that the counters will zero and transfer data in parallel to enable the high speed data transfer of the present inven¬ tion. The configuration of 74LF191 as a counter is well known in the integrated circuit handbooks. The configuration of test frequency counter 16 is the same configuration as that employed in counters 18. Counter 16 counts the low frequency 10 MHz reference signal from oscillator 20. As previously discussed, high frequency oscilla¬ tor 28 has its output connected to a counter 26, which starts and stops under control of the edge detection control circuitry 22 which will be described in detail below. The output from the 100 MHz oscillator is connected to the computer via buffers 10, previously described. Latches 14 control the measurement speed by presetting the expected 10 MHz and 100 MHz counts in that preset period of time. Turning now to Fig. 3 which shows the edge detection and control circuit of the present invention, it is seen that the circuit consists of four line driver integrated circuits 32, 34, 36 and 38. These circuits are commercially available integrated circuits 74LS76. The inputs to line driver 32 are control signals from the computers' memory 50 and 52. These control signals enable and disable the edge detection and counter control circuitry in a manner which will be described further. As described in connection with the block diagram, numeral 30 is the source of unknown frequency. This unknown frequency is connected to line driver 34 via lines 24. The low frequency 10 MHz oscillator 20 is connected to line driver 36 and to line driver 38. Suitable gates for control which will be described below are shown at numerals 54, 56, 58, 60, 62, 64, 66, 68 and 70. At various points in Fig. 3, letters corresponding to the electrical signals shown on Fig. 2, appear. For example, the letter X appearing at line 24 at Fig. 3 is wave form X in Fig. 2. In a similar manner, wave form Y in Fig. 2 appears at the output of line driver 32 in Fig. 3. Thus, the wave forms of Fig. 2 find correspondence at various points in Fig. 2 as will be discussed below. As will be seen, the control outputs of Fig. 3 at points 42, 44, 46 and 48 are connec¬ ted as follows: control output 42 starts the 100 MHz counter which is shown in Fig. 1 as 26; control output 44 disables the test frequency counters 16 in the block diagram of Fig. 1; control output 46 stops the high frequency counter 26 in the block diagram and, lastly, control output 48 disables counter 18 in Fig. 1. Turning now to the wave form diagram, the enable signal Y appears at the output of line driver 32 on command from the computer. In the present example, wave form X is the unknown frequency which is inputted to line driver 34 via line 24. The clear wave form signal on the third line of Fig. 2 is generated by the other output of line driver 32 and clears all counters. The 10 MHz reference signal shown in Fig. 2 as the fourth wave form therein. Points Z, D, and a are shown on this wave form which will appear at corresponding points in the schematic of Fig. 3. The 100 MHz high frequency enable signal shown as the fifth wave form in Fig. 2 and has points F and E thereon for correspondence with the schematic. Lastly, the 100 MHz reference signal is shown counting the trailing edge of the unknown signal and subsequently the leading edge of the unknown signal all as will be described later. As shown in the wave form diagram, the trailing edge of the unknown frequency X triggers the start of the 100 MHz enable signal at wave form F point 42. This 100 MHz enable is triggered by the output of line driver 34 via gates 56 and 58. The duration of the 100 MHz enable signal is from point F to point Z, point Z being the occurrence of the trailing edge of the 10 MHz reference signal generated by oscillator 20 and fed to the input of line driver 36. As will thus be seen from the wave form diagram, a count is developed which considers the duration of the test frequency signal from the trailing edge to the leading edge thereof in terms of 100 MHz reference signals for the duration of the 10 MHz reference signal. In a similar manner, the leading edge of the test frequency signal or unknown frequency signal at wave form C is developed. More particularly, points Z and a of the 10 MHz reference signal appear at the input to line driver 36 and 38 respectively. This, in turn, triggers wave form point E at output 46 of gate 66 which disables the 100 MHz counter 26 in Fig. 1. The 100 MHz count thus generated considers the interval of 100 MHz counts at the leading edge of the unknown signal. The equation for determining the frequency in the computer program is: F= t a + t b - tc With reference to timing diagram Fig. 2 F = Frequency Being Measured (Test frequency); t a = Total Accumulated Time of 100 MHz Start Counter. (Points t D = Total Accumulated Time of 10 MHz Counter, (Points Z - a); and t c = Total Accumulated Time of 100 MHz Stop Counter, (Points E - a). Counter 72 in Fig. 3 counts the test frequency to zero and consists of integrated circuits 74F191 commercially available configured in a up/down counter configuration as is well known. This counter triggers on point D of the 10 MHz reference signal via line driver 38 and gate 64. Fig. 4 shows the application of the frequency counte apparatus and computer program described below to a vacuum deposition process. As is well known, vacuum deposition of, for example, quartz crystals, utilize a vacuum chamber 1 which operates under control of known control circuits 3 and which contains an oscillator driving crystal 5 to control the frequency of the deposition process. The apparatus and computer of the present invention are shown at 7 and 9 where the frequency counter 7 includes the circuitry previously discussed and computer 9 is the digital com¬ puter 2 incorporating the program described herein. The frequency counter 7 thus detects the frequency of deposi¬ tion from the oscillator driving crystal 5 in the vacuum deposition chamber. The computer directly controls the deposition rate via control circuits 13 and volume, via shutter control in the chamber 1. The program for the computer to implement the frequency calculation equation above and the vacuum deposition data transfer method is shown below. In the program, lines 8500-8535 implement the frequency calcula¬ tion equation as dicussed above and shown in the wave form diagram of Fig. 2. In the remainder of the program, lines 250-850 perform the initialization of the system variables; lines 865-1105 implement the system self test; lines 1120-1330 and 1345-1810 offer the operator's initialization run and the operator's set-up functions, if necessary. Lines 3610-8115 constitute the vaporization control function described above. The predicted values of plotting speed are loaded into the computer at line 8200. The remainder of the program through line 53000 also control the vacuum deposition operation. - 11 - LIST ONERR GOTO 50000 0 REM CRYSTAL TUNING PROGRAM REV 1 5 REM COPYRIGHT 1985 0 REM ANY UNAUTHORIZED DUPLICATION OF THIS PROGRAM IS FORBIDDEN BY LAW 5 REM 0 REM START OF PROGRAM 5 GOSUB 250; REM VARIABLE INITIALIZATION 0 GOTO 130 00 GOSUB 865s REM SELFTEST 15 GOSUB 1120: REM OPERATOR INITIALIZATION 30 GOSUB 1345: REM ENGINEERING DISPLAY 5 GOSUB 1825: REM MAIN MENU 160 ON RT GOTO 175,190,205,220,235 175 GOSUB 865: GOTO 145: REM RUN SELFTEST 190 GOSUB 1120: GOTO 145: REM NEW OPERATOR 05 GOSUB 1345: GOTO 145: REM NEW ENGINEERING DATA 220 GOSUB 2080: GOTO 145: REM WRITE REPORT 235 GOSUB 2035: GOTO 145: REM SAVE FINAL DATA, WRITE REPORT AND POWER DOWN 240 GOTO 235: STOP 250 REM THIS IS THE START OF THE VARIABLE INITIALIZATION ROUTINE. ObOESRBrl ZB80 OF THE VARIABLES ARE LISTED HERE AND INITIALIZED TO THE REQUIRED V. 280 REM ALL OF THE ARRAYS ARE ALSO DIMENSIONED HERE 295 HOME J VTAB <10>: HTAB <10) : FLASH : PRINT "INITIALIZI β SYSTEM": NORMAL BOO POKE 49344,128: REM SET THIS BIT TO ONE TO INSURE THAT PLATING POWER IS OF 301 POKE 49346,128: REM SET THIS PB7(THE BIT ABOVE) TO BE AN OUTPUT 310 HE* = " "i REM TEXT FOR SCREEN HEADER 325 Fl = 0:F2 ■ 0:F3 - 0» REM SELFTEST FREQUENCY READ VALUES I K* * " " 330 AD = 4934 :MO = 1:MA = 128i REM SET DDRB BIT 7 » OUTPUT 340 I » OiJ » Oi » Oil • Oi REM LOCAL INDEX VARIABLES FOR EACH ROUTINE 355 MA* = " ":ID* - " "iSA* = " ": REM sOP INPUT DATA 370 Cl » 0:C2 - 0: REM TIME BASE CALIBRATION DATA 385 DI* = " ":CH* = " ":C* = " ":P* * " ": REM ENGR DATA VALUES 400 DIM P(6) 415 EN* = "TEST456" 430 D* =• CHR* <4) : REM DISK ACCESS VALUE 445 DIM AY(50, ): REM XTAL DATA ARRAY 475 FOR I = 1 TO 50 505 AY(1,1) = O: REM TARGET FREQUENCY 520 A (I.2) = O: REM +PPM VALUE 535 AY(I.3) = Oi REM -PPM VALUE 550 AY(I,4) = 0« REM INITIAL FREQUENCY 565 AY(I,5) = O: REM INITIAL PPM FROM TARGET 580 AY(1,6) = 0: REM FINAL FREQUENCY 595 AY(I,7) = Oi REM FINAL PPM FROM TAR6ET 610 AY(I,8) « 0J REM ACCEPT/REJECT STATUS 615 AYU.9) = Ol REM CHAMBER 1 OR CHAMBER 2 6B5 NEXT I 700 DIM M(6): DIM C(6)ι DIM T(3): DIM PR<6,4): DIM PT(6) 715 XC = 1: REM CRYSTAL BEING TUNED COUNTER 745 REM THE VARIABLES BELOW ARE THE COUNTER LOCATION VARIABLES 368 Rl = 49664:R2 = 496651R3 * 4966 :R4 - 49667: REM 10 MHZ COUNTER READ ADORE 3BβRESSBS4966B:L2 ~ 4966 :L3 = 49670:L4 - 49671: REM TEST CRYSTAL COUNTER READ 7«0C*EΞβ_i9312lW2 = 49313:W3 - 49314:W4 - 49315: REM TEST CRYSTAL COUNTER WRIT 90S XO » 493161 REM COUNTER ON ADDRESS 320 XF - 49317: REM COUNTER OFF ADDRESS 935 TRUE = 1:FALSE « 0: REM TRUE AND FALSE LOGICALS 350 RETURN : REM RETURN FROM VARIABLE INITIALIZATION 965 REM THIS IS THE START OF THE SYSTEM SELFTEST 880 REM THE FOLLOWINβ TESTS ARE PERFORMED: 895 REM - TEST OF THE 100 MHZ CLOCK 910 REM - TEST OF THE 10 MHZ CLOCK - 12 - 925 REM - TEST OF THE APPLE CLOCK 940 HE* = "SELFTEST RESULTS": REM HEADER INFORMATION 955 GOSUB 2785: REM CLEAR SCREEN AND DISPLAY HEADER 970 REM SETUP AND CALL TESTS FOR 100 MHZ, 10 MHZ AND APPLE CLOCK 985 Fl = 100000000:F2 * 10000000:F3 » lOOOOOO 1 00 REM END OF SELFTESTS NOW DISPLAY INFORMATION 1015 VTAB (4): HTAB (13): FLASH : PRINT "SELFTEST PASSED": NORMAL 1030 VTAB (7): HTAB (4): PRINT " 100 MHZ XTAL FREQ WAS: ";F1;" HZ" 1045 VTAB (9): HTAB (4): PRINT " 10 MHZ XTAL FREQ WAS: "»F2j" HZ" 1060 VTAB (11): HTAB (4): PRINT " APPLE XTAL FREQ WAS: "5F3|" HZ" 1075 VTAB (13): HTAB (12) : PRINT "ALL TESTS PASSED" 1090 VTAB (22): HTAB (8): PRINT "PRESS ANY KEY TO CONTINUE"?I ΘCT K* 1105 RETURN : REM THIS IS THE RETURN FROM THE SELFTEST ROUTINC 1120 REM THIS IS THE START OF THE OPERATOR INITIALIZATION ROUTINE TC3tNDRBnCHTNE MffMRCWrøHH-ΘBEIIWOItS NAME AND NUMBER ARE INPUT , THE TIME AND D 1150 HE* = "OPERATOR INPUT SECTION" 1165 GOSUB 2785 1180 VTAB (4) : HTAB (4): PRINT "YOUR NAME: " 1195 VTAB (6) : HTAB (4): PRINT "ID NUMBER: " 1210 VTAB (8) : HTAB (4): PRINT "STATION #: " 1225 VTAB (10) HTAB (4) : PRINT "DATE (MO-DAY -YR) : " 1240 VTAB (4) > HTAB (15) : INPUT NA*: VTAB (4) : HTAB (40) : PRINT '» 1255 VTAB (6) : HTAB (15) : INPUT ID*: VTAB (6) : HTAB (40) : PRINT '; 1270 VTAB (8) : HTAB (15) : INPUT SA«: VTAB (8) : HTAB (40) : PRINT '; 1285 VTAB (10) : HTAB (22) INPUT DA*: VTAB (10): HTAB (40): PRINT 1300 VTAB (22) : HTAB (8) : PRINT "ALL DATA OK (Y OR N) "j: GET K* 1315 IF LEFT* (K*,l) - "N" THEN ' GOTO 1150 1330 RETURN : REM THIS IS THE RETURN FROM THE OPERATOR INITIALIZATION ROUTINE 1345 REM THIS IS THE START OF THE ENGINEERING DISPLAY AND SETUP 1360 REM THE SETUP VALUES ARE DISPLAYED AND CHANGED HERE 1375 HE* « "ENGINEERING SETUP DATA" 1390 GOSUB 2785 1405 VTAB (3) : HTAB (3) : PRINT "100 MHZ CALIBRATION VALUE: 1420 VTAB (4) : HTAB (3) : PRINT " 10 MHZ CALIBRATION VALUE: 1435 VTAB (6) : HTAB (3) : PRINT "PLATING RATE MEAS.TIME CUTOFF" 1450 VTAB (7) : HTAB (3) : PRINT " PPM/SEC SECONDS +PPM" 1465 FOR I = 8 TO 13: VTAB (I) : HTAB (3) : PRINT I - 7;" =" NEXT 1480 VTAB (15): HTAB (4): PRINT "DIRECT PLATING MODE: "j 1495 VTAB (16) : H HTTAABB (8) : PRINT "CHAMBERS IN USE: " 1510 VTAB (17) : H HTTAABB (5) : PRINT "CHAMBER SETUP MODE: " 1525 VTAB (19) : H HTTAABB (4) : PRINT "COMMENTS BELOW:" 1540 VTAB (21) : H HTTAABB U) 1555 PrRrtI.NiMTi Du*»i|"OurPEtNw EcnNGoRπDuHATIAH,,S-J6O,,DUI1' 1570 P PRRIINNTT DD**s;""RREEAADD EENNGGRRDDAATTAA"" 1585 INPUT Cl: INPUT C2: INPUT DI*: INPUT CH*: INPUT C*: INPUT P*i INPUT CU* 1600 FOR I = 1 TO 6: INPUT P(I): INPUT M(I): INPUT C(I) : NEXT I 1615 PRINT D*s"CLOSE ENGRDATA" 1620 IF LEFT* (CU*,1) = "1" THEN CU* « " 1 " 1622 IF LEFT* (CU*,1) = "2" THEN CU* = " 2 - 1630 VTAB (3) : HTAB (30) : PRINT Cl 1645 VTAB (4) : HTAB (30) : PRINT C2 1660 VTAB (15) : HTAB (25) : FLASH : PRINT DI*: NORMAL 1675 VTAB (16) : HTAB (25): FLASH : PRINT CU*: NORMAL 1690 VTAB (17) : HTAB (25): FLASH : PRINT CH*: NORMAL 1705 VTAB (21) : HTAB (1) : PRINT HTAB (40) : PRINT 1720 FOR I = 1 TO 6 IfiU5C (fTAB (I + 7) : HTAB <7) : PRINT P(I);: HTAB (20) I PRINT M(I>;: HTAB (31): PR 1750 NEXT 1765 VTAB (20): HTAB (2): PRINT C* 1780 VTAB (23): HTAB <10> : INPUT "ENTER <CR> TO CONTINUE"jK* 1795 IF K* - P* OR K* « EN* THEN GOSUB 3130 1310 RETURN : REM THIS IS THE RETURN FROM THE ENGINEERING DISPLAY ROUTINE 1825 REM THIS IS THE MAIN MENU 1840 HE* = "MAIN MENU": GOSUB 2785 1855 VTAB (3): HTAB (4): PRINT "1 * TUNE CRYSTALS" 1870 VTAB (4) : HTAB (4) i PRINT "2 » RUN SELFTEST" SUBSTITUTE SHEET - 13 - 1885 VTAB (5) : HTAB (4) : PRINT " " 33 == CCHHANGE OPERATOR DATA" 1900 VTAB (6) : HTAB (4) : PRINT -" 44 *» EENNGINEERIN8 DISPLAY" 1915 VTAB ( (77)):: HHTTAABB (4) : PRINT "" 55 * * PPRRINT DATA REPORT" 1930 VTAB ((88)) :: HHTTAABB (4) : PRINT "" 66 == QQUUIT (WITH REPORT ) " 1935 VTAB ((99)) :: HHTTAABB (4): PRINT "" 77 ** CCHHECK FREQUENCY OF XTAL" 1945 VTAB (11) : HTAB (4) : PRINT "ENTER 1 - 7 5: GET RT 1960 IF RT 1 THEN GOSUB 5000: GOTO 1825 1965 IF RT * 7 THEN GOSUB 23000: GOTO 1825 1975 IF RT < 1 OR RT > 6 THEN GOTO 1945 1990 RT » RT - 1 2005 RETURN : REM RETURN FROM THE MAIN MENU 2020 RETURN : REM THIS IS THE RETURN FROM THE MAIN MENU 2035 REM THIS IS THE QUIT ROUTINE BOSOITREB SiλRE HOUiraNERWKJWNSaβERHTAEmSAVED DATA, WRITE A REPORT AND INSTRUCT T 2055 GOSUB lOOOO: REM SAVE DATA 2060 GOSUB 2080: REM WRITE REPORT . 2062 HE* - "POWER DOWN EVERYTHING NOW": GOSUB 2785 8065 FLASH : FOR I = 1 TO 5: VTAB (3 + 1 * 2): HTAB (8): PRINT HE*: NEXT : NORM 2Q70 VTAB (15): HTAB (4): PRINT "HIT ANY KEY TO RESTART"): GET K*: RETURN 2075 RETURN : REM THIS IS THE RETURN FROM THE QUIT ROUTINE 2080 REM THIS IS THE REPORT ROUTINE 2095 REM IT WILL WRITE A REPORT OF THE EXISTING DATA 2110 EP* * CHR* (27) + "!" 2125 PR# 1: PRINT CHR* (12) 2140 PRINT EP*; CHR* (40)"* * * * * * * * * * * * * * * * * * * * n 2155 PRINT 2170 PRINT TAB( 13) ;"CATCAM MODEL 100" 2185 PRINT EP*J CHR* (104) j TAB( 20>-.j"BY" 2200 PRINT EP*» CHR* (49); TAB( 10) j'ΕMKAY Mann*acturing Co., Inc." 2215 PRINT TAB< 14)»"299-4 Ridβc al* Ave" 2230 PRINT TAB. 11) \"Hanover, Nw J-w«*y 07936" 2245 PRINT TAB( 10) ;"A1an Kaplan (201)887-9322" 2260 PRINT 2275 PRINT EP*j CHR* (40)"* * * * * * * * # * * * # # * * # * # *" 2290 PRINT 2305 PRINT EP*J CHR* (32) 2320 PRINT TAB< 15); CHR* (27) ;"-l";"SETUP DATA" 2335 PRINT CHR* <27>j M -0" 2350 TP* - EP* + CHR* (113) :PP* * EP* + CHR* (33) 2365 PRINT TAB. 3) ;TP*|" 10 MHZ CALIBRATION VALUE: "jPP*:C2|TP* 2380 PRINT TAB( 3);"PLATING RATE MEAS.TIME CUTOFF" 2395 PRINT TAB< 3);" PPM/SEC SECONDS +PPM" 2410 FOR I * 1 TO 6: PRINT TAB( 3)$TP*jI:" - "»PP*sP<I) ,M(I) ,C(I) 2425 NEXT- 2440 PRINT TAB. 4) ;TP*}"DIRECT PLATING MODE: "5PP*;DI* 2455 PRINT TAB( 8) ;TP*j"CHAMBERS I USE: ";PP**CU* 2470 PRINT TAB< 5) :TP*:"CHAMBER SETUP MODE: "5PP*»CH* 2485 PRINT TAB. 4) jTP*)"COMMENTS: ";PP*jC* ..500 PRINT 2515 PRINT TAB< 19): CHR* (27) ;"-l";"TUNING DATA" 2530 PRINT EP* CHR* (145) 2545 PRINT CHR* (27) ;"-l" t560FINMNrPMTARaECEP*eBΘΘKT": CNtfIΛC.7rSE-H-«NCY INITIAL PPM FINAL FREQUEN 2575 PRINT CHR* (27) j"-0" 2590 PRINT EP*j CHR* U)j 2620 FOR I 1 TO XC 2635 PRINT TAB( 2) LEFT* < STR* (AY(I,D) » ,16)» 2650 PRINT TAB< 5) j LEFT* STR* (AY(I,4>> ",17); 2665 PRINT TAB< 4) : LEFT* STR* (AY(I,5)) ",11)| 2680 PRINT TAB( 4) j LEFT* ( STR* (AY(I,6)) ",15) : 2695 PRINT TAB( 4) : LEFT* ( STR* (AY(I,7)) ",9) j TAB( 4) ; 2710 IF AY(I,8> » 1 THEN PRINT "ACCEPTED": GOTO 2740 2725 PRINT "REJECTED" 2740 NEXT 2755 PRINT CHR* (12) : PR# 0 2760 FLASH : FOR I - 1 TO 5: VTAB (4 + 1): HTAB (12): PRINT HE*: NEXT NORMAL - 14 - 2770 RETURN : REM THIS IS THE RETURN FROM THE REPORT ROUTINE 2785 REM ROUTINE CLEAR SCREEN B80B TR€MSCWEB ROUTINE WILL CLEAR THE SCREEN, PRINT THE BOARDER AND PUT A HEAOE 2815 REM THE VARIABLE FOR THE HEADER IS HE* 2830 HOME 2845 HE* = " " ♦ HE* + « " 2860 HE * 21 - INT (< LEN (HE*) / 2)) 2875 FOR I = 2 TO 23 1890 VTAB (I): HTAB (1): PRINT "I !"ι : NCX 2905 VTAB (1): HTAB (2): PRINT "««««<«««««>»»»»»»»>>»"; 2920 VTAB (1): HTAB (HE): PRINT HE*; 2935 VTAB (24): HTAB (2): PRINT "«<<«<««<««<«>»»»»»»»»»"; 2950 VTAB (24): HTAB (HE): PRINT HE*; 2965 RETURN : REM THIS IS THE RETURN FROM THE SCREEN DISPLAY ROUTINE 2980 REM THIS ROUTINE WILL PRINT THE HEADER AT THE TOP OF THE SCREEN ' 2985 VTAB (1): HTAB (2): PRINT "<««««««<«<«>»»»»»»»»»"; 3010 HE - 21 - INT (( LEN (HE*) / 2)) 3025 VTAB (1) HTAB (HE) : PRINT HE* 3040 RETURN : REM THIS IS THE TOP ONLY HEADER ROUTINE 3055 REM THIS ROUTINE WILL PRINT THE HEADER AT THE BOTTOM OF THE SCREEN 3060 VTAB (24): HTAB (2): PRINT "««««««<«««»»»>»»»»»»"; 3085 HE » 21 - INT (( LEN (HE*) / 2>) 3100 VTAB (24): HTAB (HE): PRINT HE*; 3115 RETURN : REM THIS IS THE BOTTOM ONLY HEADER ROUTINE 3130 HE* = "ENGINEERING DATA SETUP": GOSUB 2785 3145 VTAB ( (33)): H HTTAABB ( (33)):: P PRRIINNTT " "11.. 10MHZ XTAL CAL" 3160 VTAB (4) HTAB (3) : PRINT "2. CHANGE PLATING RATE DATA" 3175 VTAB (5) HTAB (3) PRINT "3. DIRECT PLATING MODE (ON/OFF)" 3190 VTAB (6) HTAB (3) PRINT "4. MODIFY CHAMBERS IN USE" 3205 VTAB (7) HTAB (3) PRINT "5. MODIFY CHAMBER SETUP MODE" 3220 VTAB (8) HTAB (3) PRINT "6. CHANGE ENGINEERING PASSWORD" 3235 VTAB (9) HTAB (3) PRINT "7. CHANGE ENGINEERING COMMENTS" 3250 VTAB (10) i HTAB (3) : PRINT "8. QUIT" 3265 VTAB (3) : HTAB (22): FLASH PRINT C2:" MHZ" 3280 VTAB (5) I HTAB (35) : PRINT DI* 3295 VTAB (6) : HTAB (29) : PRINT CU* 3310 VTAB (7) : HTAB (32) : PRINT CH* 3325 NORMAL : VTAB (11) : HTAB (3) : PRINT "ENTER SELECTION (1-β): GET K 3340 IF K < 1 OR K > 8 THEN GOTO 3325 3355 ON K GOTO 3475,3610,3940, 060,4210,4360,4450,3370 3370 VTAB (15): HTAB (2): PRINT D*;"OPEN ENGRDATA,S6,D1' 3385 PRINT D»ι"WRITE ENGRDATA" 3400 PRINT Cl: PRINT C2: PRINT DI*: PRINT CH*: PRINT C*: PRINT P«: PRINT CU* 3415 FOR I = 1 TO 6: PRINT P(I): PRINT M(I) : PRINT CU) : NEXT 3430 PRINT D*;"CLOSE ENGRDATA" 3445 RETURN : REM THIS IS THE RETURN FROM THE ENGINEERING DATA SETUP ROUTINE BUBO FOR I = 11 TO 22: VTAB (I): HTAB (1): PRINT "!"; SPC( 38);"!";: NEXT : RET 3475- VTAB (12): HTAB (3): PRINT "CONNECT FREQUENCY COUNTER TO J2 " 3490 VTAB (13): HTAB (8): PRINT "READ THE 10 MHZ VALUE" 3505 VTAB (17): HTAB (3): PRINT "CHANGE CALIBRATION (Y OR N)";: GET K* 3520 IF K* = "N" THEN GOSUB 3460» GOTO 3325 3535 GOSUB 3460: VTAB (12): HTAB (3): INPUT "ENTER NEW 10MHZ CAL VALUE: ";C2 3550 VTAB (12): HTAB (40): PRINT "!": 3565 VTAB (14): HTAB (3): PRINT "VALUE CORRECT (Y OR N) ";: GET K* 3580 IF K* = "N" THEN GOTO 3535 3595 GOSUB 3460: VTAB (3): HTAB (22): PRINT SPC( 18);"!": GOTO 3265 3610 REM THIS IS THE START OF THE PLATING RATE CHANGE AREA 3625 GOSUB 3460 3640 VTAB <11): HTAB (3): PRINT "PLATING RATE MEAS.TIME CUTOFF" 3655 VTAB (12): HTAB <3) : PRINT " PPM/SEC SECONDS +PPM" 3670 FOR I =* 1 TO 6 3685 VTAB (12 + I): HTAB (2): PRINT I:"=" aτ_w CVTAB (12 + I): HTAB (5): PRINT P(I)j: HTAB (20): PRINT M(I>): HTAB (32) I P 3715 NEXT 3730 VTAB (20) : HTAB (3) : PRINT "ENTER (1-6) TO CHANGE OR (7-DONE) ";: GET K 3745 IF K < 0 OR K > 7 THEN GOTO 3730 3760 IF K = 7 THEN GOSUB 3460: GOTO 3325 3775 GOSUB 3460 3790 VTAB (12): HTAB (7): PRINT "PLATING RATE ")K;" - "jP(K)»" PPM/SEC" 3805 VTAB (13): HTAB (3): PRINT "MEASUREMENT RATE "|K|" - "»H<K> |" SECS" 3820 VTAB (14) i HTAB (4)ι PRINT "CUTOFF POINT IS ";K;" - "|C(K)|" + PPM" 1835 VTAB (16): HTAB (3)1 INPUT "ENTER PLATING RATE: ";T(l)ι HTAB (40): PRINT " 185*' VTAB (17) : HTAB (3): INPUT "ENTER MEASUREMENT RATE:";T(2)ι HTAB (40): P1UN 3865 VTAB (18) : HTAB (3): INPUT "ENTER CUTOFF POINT: ";T(3>: HTAB (40): PRIMT " 3880 VTAB (19); HTAB (4): PRINT "ALL CORRECT (Y OR N)"}: BET K* 3895 IF LEFT* (K*,l) - "N" THEN GOTO 3775 3910 P(K) = T(l) :M(K) ■ T(2) :C(K) » T(3) 3925 GOTO 3625 3940 REM THIS IS THE AREA TO CHANGE THE DIRECT PLATING MODE 3955 GOSUB 3460: VTAB (12): HTAB (3) 3970 PRINT " DIRECT PLATING MODE ON OR OFF " 3985 VTAB <14): HTAB (3): PRINT "ENTER (1 - ON) OR (2 - OFF) ";: GET K 4000 IF K < 1 OR K > 2 THEN GOSUB 3460: GOTO 3955 4015 IF K ■ 1 THEN DI* - "ON ": GOTO 4045 4030 DI* = "OFF" 4045 GOSUB 3460: GOTO 3265 4060 REM THIS IS THE AREA TO CHANGE THE CHAMBERS IN OPERATION 4075 GOSUB 3460: VTAB (12): HTAB (3): PRINT "(1 - CHAMBER 1 IN OPERATION ONLY) 4090 VTAB (13): HTAB (3): PRINT M (2 » CHAMBER 2 IN OPERATION ONLY)" 4105 VTAB (14): HTAB (3): PRINT "(3 - CHAMBERS 1 ANO 2 OPERATI G)" 4120 VTAB (16): HTAB (5): PRINT "ENTER (1 , 2 OR 3)";j GET CU 4135 IF CU < 0 OR CU > 3 THEN GOTO 4075 4150 ON CU GOTO 4165,4180,4195 4165 CU* = " 1 ": GOSUB 3460sCH* * "SINGLE": GOTO 3265 4180 CU* » " 2 "i GOSUB 3460:CH* - "SINGLE": GOTO 3265 4195 CU* = "1 & 2": GOSUB 3460iCH* ■ " DUAL ": GOTO 3265 4210 REM THIS IS THE START OF THE CHAMBER SETUP MODE CHANGE AREA 4225 GOSUB 3460: VTAB (12): HTAB (3): PRINT "CHAMBER OPERATION MODE SELECTION" 4240 VTAB (14): HTAB (3): PRINT "ENTER (1=SINGLE) (2-DUAL) (3-MULTI)";: GET K 4255 ON K GOTO 4285,4300,4315 4270 IF K < 1 OR K > 3 THEN GOTO 4225 4285 CH* * ""SINGLE": GOSUB 3460: GOTO 4060 4300 CH* = "" DUAL ": GOSUB 3460:CU* = "1 & 2": GOTO 3265 4315 GOSUB 3460: VTAB (12): HTAB (2): FLASH 4330 PRINT "MULTI IS NOT IMPLEMENTED ON THIS MODEL": NORMAL 4345 FOR I = 1 TO 5000: NEXT : GOTO 4225 4360 REM THIS ROUTINE IS TO CHANGE THE PASSWORD 4375 GOSUB 3460: VTAB (12): HTAB (3): INPUT "ENTER NEW PASSWORD ";K* 4390 VTAB (12): HTAB (40): PRINT "1" 4405 VTAB (14): HTAB (3): PRINT "CORRECT (Y OR N) ":: GET L* 4420 IF L* < > "Y" THEN GOTO 4375 4435 P* = K*s GOSUB 3460: GOTO 3325 4450 . REM THIS ROUTINE IS TO CHAN6E THE ENGINEERING COMMENTS 4465 GOSUB 3460: VTAB (12): HTAB (3): PRINT C* 4480 VTAB (14): HTAB (4): PRINT "CHANGE COMMENTS (Y OR N>? ")i GET K* 4495 VTAB (18): HTAB (2): PRINT SPC( 38): VTAB (IB): HTAB (40): PRINT •5X00) **tTUBINT9 T I"HTAB (2) : PRINT SPC( 38): VTAB (19): HTAB (1) : PRINT HTA 4525 IF LEFT* (K*,l) « "N" THEN GOSUB 3460: GOTO 3325 4540 VTAB (16): HTAB (3): PRINT "ENTER NEW COMMENTS. (36 CHARβ MAX)" 4B0T0 BIBB (18): HTAB (2): INPUT K*: IF LEN <K«) < 37 THEN C* - K*ι GOSUB 3440: 4570 VTAB (19): PRINT "COMMENTS TOO LONG": GOTO 4480 5000 REM THIS IS THE START OF THE CRYSTAL PLATINS AREA 5050 REM IF CU>2 THEN GOTO 7600 5100 REM THIS IS THE START OF THE SINGLE CHAMBER PLATING ROUTINE SS50 HE* = "CHAMBER" + CU* + "& CRYSTAL " + STR* (XC) + " INPUT AREA": GOSUB 27 5200 VTAB (3) : HTAB (3) : INPUT "TARGET FREQUENCY IN MHZ " ;TF 5200 IF TF < 0.05 OR TF > 100 THEN VTAB (3): HTAB (20): PRINT SPC( 15): GOTO 5300 VTAB (3) : HTAB (40) : PRINT " !" 5350 VTAB (4); HTAB (4): INPUT "+ TOLERANCE IN PPM FROM TARGET " ;PD 5400 IF PD < 0.25 THEN VTAB (4): HTAB (34): PRINT 8PC( 5): BOTO 5350 5450 VTAB (4) : HTAB (40) : PRINT " ! " 5500 VTAB (5) : HTAB (4) : INPUT "- TOLERANCE IN PPM FROM TARGET ";ND SUBSTITUTE SHEET / - 16 - 5550 IF ND < 0.25 THEN VTAB (5): HTAB (34): PRINT SPC( 5): GOTO 5500 5600 VTAB (5): HTAB (40): PRINT "!" 5650 VTAB (7) : HTAB (4) : PRINT "ALL VALUES CORRECT (1=YES, 2-NO) 1 GET K* 5700 IF LEFT* (K*,l) = "2" THEN GOTO 5150 5705 GOSUB 8000: REM GO COMPUTE PLATING RATES 3 * K0 HE* = "CHAMBER" + CU* + "8< CRYSTAL " + STR* (XC) + PLATING AREA": GOBUB 5712 VTAB (7): HTAB (2): PRINT SPC( 38) BATS ARBR I = 12 TO 19: VTAB (I): HTAB (30): PRINT SPC( 10) : NEXT I REM ERAβC 5750 AY ( XCl) * TF:AY ( XC,2) » PD:AY(XC,3) » ND:AY(-J!C,9) ' CU: REM SAVE VALUES ' 5800 VTAB (10): HTAB (2): PRINT " 5850 VTAB (12): H HTTAABB (4): PRINT "INITIAL FREQUENCY (MHZ) « 5900 V VTTAABB (13) : H HTTAABB (4): PRINT "INITIAL PPM FROM TARGET » 5905 G BOOTTOO 5955 5950 V VTTAABB (15)s HTAB (12): PRINT "PPM FROM TARGET » " 5955 V VTTAABB (15) : HTAB (13): PRINT "PLATING SPEED - " 6000 V VTTAABB (16) : HTAB (15): PRINT "PLATING RATE =« " 6050 V VTTAABB (IB): HTAB (12): PRINT "FINAL FREQUENCY » " 6100 V VTTAABB (19) : HTAB (6) : PRINT "FINAL PPM FROM TARGET 6200 FI IRRSSTT = 1: REM THIS IS THE FIRST PASS 6300 DU UNN == 0: REM THIS IS THE CRYSTAL FINISHED FLAG 6550 GOSUB 9000 : REM CALL THE PLATING ROUTINE 6600 REM WWAAIITTIIIN MGG AARREA; IF THE CRYSTAL IS DONE THEN GO ON TO THE NEXT CRYSTAL 6650 REM IIFF TTHHE E CCRRYYSTAL IS NOT DONE WAIT FOR THE END OF THE COUNTER 6700 IF DUN * 1 THEN GOTO 6850 6750 REM WAIT 49357,2 : REM COMMENTED OUT UNTIL INTERRUPTS ARE INSTALLED smut •BTO BE-HC (49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 6800 GOTO 6550: REM COUNTER HAS FINISHED, GO AND CALL PLATING LOOP 6850 REM THIS IS THE NEXT XTAL OR DONE AREA 6900 VTAB (7): HTAB (4): PRINT "ENTER 1=SAME VALUES; 2=NEW| 9-»βUIT ";: GET K 6910 VTAB (20): HTAB (15): PRINT SPC( 12) 6925 IF K < 1 OR K > 9 THEN GOTO 6900 6950 ON K GOTO 7000,7200, 900,6900, 900,6900,690 ,6900,7400 7000 VTAB (7): HTAB (4): PRINT "SAME PLATING VALUES? (1=YES» 2« 'NO) ";: GET K 7050 IF K = 2 THEN GOTO 6900 7100 XC = XC + 1: IF XC > 50 THEN XC = XC - 1: GOSUB lOOOO: REM SAVE DATA 7150 GOTO 5710: REM START PLATING THE NEXT CRYSTAL 7200 VTAB (7) : HTAB (4): PRINT " NEW PLATING VALUES? (1=YES; 2=N0) ";: GET 7250 IF K = 2 THEN GOTO 6900 7300 XC = XC + 1: IF XC > 50 THEN XC = XC - 1: GOSUB 10000: REM SAVE DATA 7350 GOTO 5100: REM INPUT NEW PLATING PARAMETERS 7400 VTAB (7) : HTAB (4): PRINT "QUIT PLATING XTALS? (1=YES; 2*N0) ";: GET 7450 IF K = 2 THEN GOTO 6900 7500 GOSUB 10100: REM SAVE DATA BUT KEEP XTAL POINTER IF LESS THAN 50 7550 RETURN : REM DONE PLATING XTALS BOOO REM THIS 15 THE ROUTINE TO COMPUTE THE PLATING VALUES 8005 FOR 1 = 1 TO 5 8010 TE = (TF * IOOOOOO) * M(I) B015 PR(I,4) = INT (TE / 16777215) :TE » TE - PR(1, ) * 16777215 8020 P (I,3) = INT (TE / 65536) :TE * TE - PR(I,3) * 65536 8025 PR(1,2) » INT (TE / 256) :TE = TE - PR(I,2) * 256 8030 PR(I,1) =» INT (TE) 8031 IF P(I) < 16 THEN P(I) = 16 8032 IF P(I) > 999999 THEN P(I) = 999999 8033 T * IOOOOOO * (1 / P(I)> :TV(I,2) * INT (T / 256) 8034 TV(1,1) = INT (T - TV(I,2) * 256) 8039 NEXT I 8040 FOR K = M(6) * 0.9 TO M(6) * 1.1 STEP M(6) 0.01 8045 IF ((TF * IOOOOOO * K - INT (TF * ioooooo K)) * 10) < 1 THEN GOTO 8051 8050 NEXT K 8051 M(6) = K 8052 T = IOOOOOO * (1 / P(6)) :TV(6,2) = INT (T / 256) 8053 TV(6,1) = INT (T - TV(6,2) * 256) 8055 TE * (TF * IOOOOOO) * M(6) 8060 FR(6,4) = INT (TE / 16777215) :TE * TE - PR(6,4) * 16777215 8065 PR(6.3) = INT (TE / 65536) :TE = TE - PR(6,3) * 65. 36 8070 PR(6.2) = INT (TE / 256) :TE » TE - PR(6,2) * 256 - 17 - 8075 PR(6, 1) = INT (TE) 8080 FOR I TO 6 8090 TB(I) = ((1 / (C(I) * TF + + TTFF * * 11EE66>> )) ** MM << II >> )) * C2 8105 V = ((1 / (PD * TF + TF * * 11EE6< ) > * M ( I > ) * C2 8110 NV = ( (1 / (ND * TF + TF * * 11EE6< ) ) * M ( D ) * C2 8115 NEXT 8JΦSERREM THIS ROUTINE WILL LOAD THE VALUES INTO THE COUNTER AND PLATING SPEED 8201 REM LOW ORDER BYTE OF TIMER 1 AND THE HOB OF TIMER 1 8203 REM IT WILL LEAVE WITH DL= TO M(RA) FOR DELAY * TO MEASUREMENT TIME 8205 TX = o BBlBA.HβKE 49312,PR(RA,1) : POKE 49313,PR(RA,2) : POKE 49314,PR(RA,3) : POKE 49315, 8218 TX = PR(RA,1) + PR(RA,2) + PR(RA,3) + PR(RA,4) 8230 D DLL == M M((RRAA)) 8250 P POOKKES . 4499335!0,TV(RA,1) : POKE 49351,TV(RA,2) : REM SET TIMER 1 VALUES 8255 T T<<11)) = = TTVV(RA,1) :T(2) = TV(RA,2) 8256 R RSS == R RAA 8260 V VTTAAB1 . ((1155)1 : HTAB <30) : PRINT RA 8299 R REETTUI JRRNN 8300 REM T THHIISS ROUTINE WILL START THE FREQUENCY COUNTER 8302 K - PEEK (49317) : REM SEND STOP TO RESET 10 MHZ COUNTER 8305 K = PEEK (49673) : REM SET 10 MHZ COUNTERS TO ZERO 8 8331100 K * PEEK (49675) : REM LOAD VALUES INTO INTERVAL COUNTERS 88331155 K = PEEK (49316) : REM START THE COUNTER 8320 RETURN 8400 REM THIS ROUTINE WILL TURN THE PLATING POWER ON 84BBERaT*0r19aSSMMβB? BliBWU* EMBBBBUB 21000: REM SET Tl INTO FREERUN ING BAT20RDW#TN9E989:eK}Tr>UT:_WABLEaB: GOSUB 21000: REM SET Tl INTO FREERUNNING OPE 84fSLiKNT4f.088βMO « 0:MA » 255 - 128: GOSUB 21000: REM SET PB7 LOW TO START TH 8420 POKE 49348,T(1): POKE (49349) ,T(2) : REM START THE PLATINβ SPEED TIMER 8430 RETURN 8450 REM THIS ROUTINE WILL TURN THE PLATING POWER OFF 8 ββ W- * ABIBN4BJSB:IW7-0OTMT a D2SBBt-EB28: GOSUB 21000: REM SET Tl INTO FREERUNNINB - 128: GOSUB 21000: REM SET PB7 TO A ONE TO TURN THE 8470 RETURN 8500 REM THIS IS THE FREQUENCY AND PPM COMPUTATION ROUTINE 8501 REM THIS ROUTINE IS PASSED RA= PLATING RATE 1 TO 6 8515 XE « PEEK (49672) - PEEK (49674): REM .ERROP. COUNTERS 882P»4V*6*) l»EE..7-.9S4S*> + ( PEEK (49665) * 256) + PEEK (49666) * 65536) + ( PE 9525 V5 = PR(RA,1) + (PR(RA,2) * 256) + (PR(RA,3) 65536) + (PR(RA,4) * 1677721 8530 XE = XE / 100E6:V1 - VI / 10E6:DT - VI + XE 8BTOIDEFBBTZBR0 THEN V5 = 0:PM = TF * 1E6: RETURN REM ERROR RETURN TO PREVENT 8535 V5 = V5 / DT B540 PM • (V5 - (TF * IOOOOOO) ) / TF 8545 V5 = V5 / 1E6: REM SET UNITS TO MHZ 8550 REM PM = PARTS PER MILLION DELTA FROM TARGET 8551 REM V5 « ACTUAL FREQUENCY IN MHZ 8599 RETURN 8700 REM THIS ROUTINE WILL COMPUTE THE NEW PLATING RATES 8710 IF TT TB(1) THEN RA 1: GOTO 8740 8715 IF TT TB(2) THEN RA 2: GOTO 8740 8720 IF TT TB(3) THEN RA 3: GOTO 8740 8725 IF TT TB(4) THEN RA 4: GOTO 8740 8730 IF TT TB(5) THEN RA 5: GOTO 8740 8735 RA = 6 8740 RETURN •B-K>THBEnR0rB-rSWBBG«T-M6WILL GET THE 10MHZ COUNTER VALUES ONLY AM) ADD THEM UP Θ8054 " «6 * r ) BEI87MS464) + ( PEEK (49665) * 256) + ( PEEK (49666) * 65536) + ( P 8810 AG = (AV(1) + AV(2) + AV(3>) / 3 8820 IF TT < » AG * 1.05 AND TT > = AG * .8 THEN AV(AC) » TTi GOTO 8890 8830 TT = AG B890 RETURN 9000 REM THIS IS THE START OF THE COUNTING AND PLATING LOOP 9010 IF FIRST - 1 THEN GOTO 9500 9020 GOSUB 8800: REM GET COUNT OF THE 10MHZ COUNTERS 9030 IF TT < - PV THEN GOTO 9800 9040 GOSUB 8700: REM COMPUTE PLATING RATE VALUES SUBSTITUTE SHEET 9050 IF RA < > RS THEN GOSUB 8200 ' 9060 GOSUB 8300: REM START COUNTER StβθS RETURN : REM THIS IS THE RETURN FROM THE PLATING LOOP WITH PLATING IN PRO 9500 REM THIS IS THE FIRST COUNT OF THE CRYSTAL 9501 FIRST = 0:AC = 1 9505 RA = 6: GOSUB 8200: REM LOAD THE COUNTER VALUES AND PLATING RATE VALUES 9507 GOSUB 8300: REM START COUNTER 9510 REM GOSUB 20000: REM DELAY TIME EQUAL TO MEASUREMENT TIME 9530 REM WAIT 49357,64 : REM COMMENTED OUT UNITL INTERRUPTS ARE INSTALLED IBM SBTβ REβK (49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 9540 GOSUB 8500: REM GET FREQUENCY AND PPM 9542 GOSUB 8800: REM GET INITIAL 10MHZ COUNT 9543 AV(1) » TT:AV(2) - TT:AV(3) - TT 9545 AY(XC,4) * V5:AY(XC,5) = PM: REM SAVE INITIAL FREQU AND INITAL PPM 9547 K* = STR* (V5> 9550 VTAB (12): HTAB (30): PRINT LEFT* (K* + " ",10> 9552 K* = STR* <PM) 9555 VTAB (13): HTAB (30): PRINT LEFT* (K* + " ",10> 9560 IF V5 - 0 THEN GOTO 9800: REM XTAL IS NOT OSCILLATING 9562 IF PM < ■ PD THEN GOTO 9800 9565 GOSUB 8400: REM START PLATING POWER 9570 PS = PM: REM SAVE PPM 9576 GOSUB 8700: REM COMPUTE NEW RATES 9577 RS = RA 9578 GOSUB 8200: REM LOAD THE COUNTER LATCHES AND THE TIMER LATCHES 9579 GOSUB 8300: REM START THE COUNTER 9585 RETURN : REM THIS IS THE RETURN FROM THE FIRST PASS AT PLATING 9599 V5 * 0:PM * - TF: GOTO 9545 9800 GOSUB 8450: REM TURN THE POWER OFF 9B05 IF TT * 0 THEN GOTO 9850 9B10 DL = 0.1: GOSUB 20000: REM DELAY 100 MILLI SECONDS 9820 RA * 6: GOSUB 8200: GOSUB 8300: REM START COUNTER 9830 REM WAIT 49357,2:REM WAIT FOR COUNTER TO FINISH 9B8β SΘTB 9888 (49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 9840 GOSUB 8500: REM GET FREQ AND PPM 9842 IF PM > PD THEN RA = 6: GOSUB 8400: GOSUB 8800:DUN = 0: GOTO 9040 9845 K* = STR* (V5) 9850 VTAB (18): HTAB (30): PRINT LEFT* (K* + ,10) 9852 K* - STR* (PM) 9855 VTAB (19): HTAB (30): PRINT LEFT* (K* + " ",10> 9860 AY(XC,6) » V5 9865 AY(XC,7) * PM 9870 IF PM > PD THEN GOTO 9879 9871 IF PM < - ND THEN GOTO 9879 9875 AY(XC,8) 1: VTAB (20): HTAB (15): PRINT "ACCEPTED": GOTO 9880 9879 VTAB (20): HTAB (15) : FLASH : PRINT • REJECTED": NORMAL :AY(XC,8) = 0 9880 DUN = 1 : REM END OF PLATING lOOOO XC = 1 : RETURN IOIOO IF XC > 50 THEN XC = 1: RETURN 20000 REM THIS IS A DELAY ROUTINE. THE VARIABLE DL IS PASSED WITH A 20001 REM VALUE OF SECONDS IN IT 20002 IF PEEK (49355) ■ 0 THEN 20006 20003 AD = 43955:MO = θ:MA = 255 — 32: GOSUB 21000: REM TURN BIT 5 OF ACR OFF 20006 IF PEEK (49358) - 0 THEN 20010 20007 AD = 43958:M0 * θ:MA = 255 - 32: GOSUB 21000: REM TURN BIT 5 OF IER OFF 20010 LO * DL / 0.065536 20020 LI - (LO - INT (L0>> * 65536 20030 L2 * INT (LI / 256) 20040 LI = INT (LI - L2 * 256) 20050 IF LO < 1 THEN GOTO 20100 20060 FOR I x 1 TO LO 20070 POKE (49352) ,255: POKE (49353) ,255 20075 WAIT 49357,32 20080 NEXT 20100 POKE (49352) ,L1: POKE (49353) ,L2 20120 RETURN 21000 REM THIS IS A BIT SET OR CLEAR ROUTINE 21001 REM AD « ADDRESS OF MEMORY LOCATION TO SET OR CLEAR 21002 REM MO - MEMORY OPERATION; 1 « SET AND 0 ■ CLEAR 21003 REM MA » AND/OR MASK IF SET THEN OR IF CLEAR THEN AND 21010 HB = INT (AD / 256) :LB - INT (AD - HB * 256) 21020 I = 736: REM ADDRESS TO SYS TO 21030 POKE 1.173: REM LDA ABSOLUTE 21035 POKE I + 1,LB 21040 POKE I + 2,HB 21045 POKE I + 3,41: REM AND IMMEDIATE 21050 POKE I + 4, A: REM OPERATION MASK 21055 POKE I + 5,141: REM STA ABSOLUTE 21060 POKE 1 + 6,LB 21065 POKE I + 7,HB 21070 POKE I + 8,96s REM RTS 21080 IF MO = 1 THEN POKE I + 3,9: REM OR OPERATION 21085 POKE 10,76: POKE 11,224: POKE 12,02 21090 A = USR (X) 21100 RETURN 23000 VTAB ( 14): HTAB <4) : PRINT "KNOWN OR UNKNOWN FREQ? <K OR U) GET K* 23001 TF = IOOOOOO 23002 GCSUB 8000: REM COUPUTE COUNTER VALUES 23005 IF LEFT* (K*,l) ■ "U" THEN GOTO 23009 23006 GOTO 24000 23009 TF = IOOOOOO 23010 VTAB (13) : HTAB (4) : FLASH PRINT "COMPUTING FREQUENCY": NORMAL 23020 FOR K = 1 TO 4 23021 DUN = 0:RA = 6:M(RA) = 0.02 23038 FOR K = M(6) * 0.9 TO M(6) * 1.1 STEP M(6) 0.01 18040 IF ((TF * IOOOOOO * K - INT (TF * IOOOOOO K>> * 10) < 1 THEN GOTO 230 23042 NEXT K 23044 M(6) = K 23046 TE = (TF * IOOOOOO) * M(6) 23048 PR(6,4) = INT (TE / 16777215) :TE = TE - PR(6, ) * 16777215 23050 PR(6,3) = INT (TE / 65536) :TE = TE - PR(6,3) * 65536 23052 PR(6,2) = INT (TE / f.6) :TE = TE - PR(6,2) * 256 23055 P (6,1) = INT <TE) 23058 GOSUB 8200 23059 GOSUB 8300 23060 D = PEEK (49317) :D = PEEK (49673) :D = PEEK (49675) :D ■ PEEK (49316) 2-H-ββ HBTffl 88810(49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 23100 TF = V5 23620 NEXT K 23700 VTAB (17) HTAB (3) : PRINT "FREQUENCY = " ;TF 23710 VTAB (19) HTAB (4) PRINT "HIT ANY KEY TO CONTINUE":: BET K* 23720 RETURN 24Φ>*« MTAB (* * !> : ■■ΛBTt ' W: PRINT "ENTER FREQUENCY IN MHZ: ;: VTAB 24005 VTAB (15): HTAB (4): INPUT "ENTER MEASUREMENT RATE: " ;M<4) 24010 VTAB (17): HTAB (4): PRINT "ALL OK? <CR> OR N ";: GET K* 24015 IF * » "N" THEN GOTO 24000 24020 VTAB (18): HTAB (4): PRINT "FREQUENCY = " 24025 VTAB (19) : HTAB (4) : PRINT PPM IS = 24027 DUN = 0 24030 GOSUB 8040 24040 RA = 6 24050 GOSUB 8200 24060 GOSUB 8300 24065 IF DUN - 1 THEN GOTO 24100 2-.B6B BBTS nβK5(49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 24070 GOSUB 8500 24080 VTAB (18) : HTAB (20) : PRINT SPC( IB);: HTAB (20) : PRINT V5 24085 VTAB (19): HTAB (20): PRINT SPC( 18);: HTAB (20) : PRINT PM 24090 GOTO 24040 24100 VTAB (20) : HTAB (2) : PRINT 1=C0NTINUE; 2=NEW VALUES: 9-OUIT";: GET K* 24110 IF LEFT* (K*,l) - "2" THEN GOTO 24000 24115 IF LEFT* (K*,l) * "9" THEN RETURN SUBSTITUTE SHEET 24120 GOTO 24067 40000 ONERR GOTO 50000 40001 PRINT "ENTER <CR>" ; : GET 40002 GOTO 40001 50000 EC = PξEK (222) 50003 AD = PEEK (219) * 256 + PEEK (218) 50004 IF EC > 16 THEN GOTO 50015 50007 IF EC » 0 THEN PRINT "NEXT without FOR at line ";AD: STOP 50015 IF EC » 255 THEN GOTO 53000 50016 IF EC = 254 THEN RESUME 50013110H,Bff2Gθτ β l3θ#QtH«θ β 9015θ000,50300,50400,50500,50600,50700,50800,50900,51 50020 PRINT "!! * ?ERR0R #";EC:" AT LINE ":AD: STOP 50100 PRINT "LANGUAGE NOT AVAILABLE; ERROR CODE = ";EC: STOP 50200 PRINT "RANGE ERROR at line ";AD:" ERROR CODE = ";EC: STOP 50300 PRINT "DISK IS WRITE PROTECTED" 50310 PRINT "REPLACE WITH NON-WRITE PROTECTED DISK" 50320 INPUT "ENTER <CR> TO CONTINUE OR QUIT<CR> WHEN DONE":K* 50330 IF LEFT* (K*,l) = » Q" THEN STOP 50340 RESUME 50400 ED * 1 : PRINT "END OF DATA": RESUME 50500 PRINT "FILE NOT FOUND": STOP 50600 PRINT "VOLUME MISMATCH": STOP 50700 PRINT "I/O ERROR": STOP 50800 PRINT "DISK FULL. INSERT A NEW DISK IN DRIVE" 50810 INPUT "ENTER <CR> TO CONTINUE OR QUIT" ;K* 50820 IF LEFT* (K*,l) * "Q" THEN STOP 50830 RESUME 50900 PRINT "FILE LOCKED": STOP 51000 PRINT "SYNTAX ERR0R1 AT LINE" ;AD 51005 STOP 51100 PRINT "NO BUFFERS AVAILABLE AT LINE " ;AD 51110 STOP 51200 PRINT "FILE TYPE MISMATCH at Tin* ";AD: STOP 51300 PRINT "PROGRAM TOO LARGE at line ";AD: STOP 51400 PRINT "NOT A DIRECT COMMAND": STOP 51500 PRINT "SYNTAX ERR0R2 AT LINE";AD:K = li RESUME 52000 STOP 53000 GOSUB 8450: REM TURN OFF ALL POWER : DUN = 1 : RESUME SUBSTITUTE SHEET - 21 - The following additional listings clarifies the garbled lines in the above listings are as follows: 265, 760, 775, 790, 1135, 1735, 2050, 2065, 3460, 3700, 3865, 4510, 4555, 5150, 5200, 5250, 5710, 5715, 6751, 8200, 8210, 8400, 8410, 8412, 8415, 8455, 8460, 8520, 8533, 8800, 8805, 9531, 9835, 23040, 23080, 24000, 24067 and 50017. - 22 - 7830 REM WAIT 49357,2: EM WAIT FOR COUNTER TO FINISH * ?β35 IF ( PEEK (49668) + PEEK ( 49669) + PEEK (49670) + PEEK (49671)) < > 0 THEN GOTO 9 835 9840 GOSUB 8500: REM GET FREQ A ND PPM -LIST 23038-23042 23038 FOR K = M(6) * 0.9 TO M(6) * 1.1 STEP M(6) * 0.01 23040 IF ((TF * IOOOOOO * K - INT (TF * IOOOOOO * K)) * 10) < 1 THEN GOTO 23044 23042 NEXT K 1LIST 23060-23100 23060 D = PEEK (49317) :D = PEEK (49673) :D = PEEK (49675) :D = PEEK (49316) 23080 IF ( PEEK (49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 THEN GOTO 2 3080 23100 TF = V5 -LIST 23720-24005 23720 RETURN 24000 VTAB (14): HTAB (4): PRINT "ENTER FREQUENCY IN MHZ: ";: VTAB (14) : HTAB (27) : INPUT TF 24005 VTAB (15): HTAB (4): INPUT "ENTER MEASUREMENT RATE: " ;M • (6) -LIST 24065-24070 24065 IF DUN = 1 THEN GOTO 2410 0 24067 IF ( PEEK (49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 THEN GOTO 2 4065 24070 GOSUB 8500 -LKISTIST 50016-50020 50016 IF EC = 254 THEN RESUME 50017 ON EC GOTO 50100,50200,502 00,50300,50400,50500,5060 ,5 0700,SOBOO,50900,51000,51100 ,51200,51300,51400,51500 50020 PRINT "! ! !?ERROR #";EC;" A T LINE ";AD: STOP - 23 - -. -uuu : lti'l 3- i r tn i I U M IIIVC TΠ TURN THE FILIMENT POWER TO ZERO 3470 RETURN =5500 REM THIS IS THE FREQUENCY AND PPM COMPUTATION ROUTINE 3501 REM THIS ROUTINE IS PASSE D RA= PLATING RATE 1 TO 6 3515 XE = PEEK (49672) - PEEK ( 49_>74) : REM ERROR COUNTERS 3520 VI = PEEK (49664) + ( PEEK (49665) * 256) + ( PEEK (496 66) * 65536) + ( PEEK (49667 ) * 16777215) 3525 V5 = PR(RA,1) + (PR(RA,2) * 256) + (PR(RA,3) * 65536) + (PR(RA,4) * 16777215) 3530 XE = XE / 1Q0E6:V1 = VI / 10 E6:DT = VI ♦ XE 3533 IF DT = 0 THEN V5 = 0:PM = TF * 1E6: RETURN : REM ERRO ■H RETURN TO PREVENT DIVIDE B Y ZERO 3535 V5 = V5 / DT -LIST 8740-8810 3740 RETURN 3800 REM THIS ROUTINE WILL GET THE 10MHZ COUNTER VALUES ONL Y AND ADD THEM UP WITH THE P ROPER WEIGHTING 3805 TT = PEEK (49664) + ( PEEK (49665) * 256) + ( PEEK (496 66) * 65536) + ( PEEK (49667 ) * 16777215) 3810 AG = (AVU) + AV(2) + AV(3)) / 3 3LIST 9060-9500500 9060 GOSUB 8300: REM START COUN TER 9100 RETURN : REM THIS IS THE R ETURN FROM THE PLATING LOOP WITH PLATING IN PROGRESS 9500 REM THIS IS THE FIRST COUN T OF THE CRYSTAL 3LIST 9530-89540 9530 REM WAIT 49357,64 : REM CO MMENTED OUT UNITL INTERRUPTS ARE INSTALLED 9531 IF ( PEEK (49668) + PEEK ( 49669) + PEEK (49670) + PEEK (49671)) < > 0 THEN GOTO 9 531 9540 GOSUB 8500: REM GET FREQUE NCY AND PPM -LIST 9830-9840 - 24 - AT tXC,3) = ND:AY(XC,9) CU: HEM SAVE VALUES 3LIST 6750-6800 6750 REM WAIT 49357,2 ' : REM COM MENTED OUT UNTIL INTERRUPTS ARE INSTALLED 6751 IF ( PEEK (49668) + PEEK ( 49669) + PEEK ( 49670) + PEEK ( 49671)) < > 0 THEN GOTO 6 751 6800 GOTO 6550: REM COUNTER HAS FINISHED, GO AND CALL PLATI NB LOOP -LIST 8115-8201 3115 NEXT 8200 REM THIS ROUTINE WILL LOA D THE VALUES INTO THE COUNTE R AND PLATING SPEED TIMER 3201 REM LOW ORDER BYTE OF TIME R 1 AND THE HOB OF TIMER 1 -LIST 8205-8218 3205 TX = 0 3210 POKE 49312. PR(RA, 1) : POKE 4 9313,PR(RA,2) : POKE 49314, PR (RA,3) : POKE 49315, PR (RA, 4) 3218 TX = PR(RA,1) + PR(RA,2) + P R(RA,3) + PR(RA,4) 3LIST 8400-8535 3400 REM THIS ROUTINE WILL TURN THE PLATING POWER ON 3410 AD = 49355: MO = 1 :MA = 64: GOSUB 210tX>: REM SET Tl INTO FRE ERUNNING OFERATION WI TH PB7 OUTPUT ENABLED 3412 AD = 49355:M0 = 1 :MA = 128: GOSUB 21000: REM SET Tl INTO FR EERUNNING OPERATION WITH PB7 OUTPUT ENABLED 3415 AD = 4934 :M0 = 0:MA = 255 - 128: GOSUB 21000: REM SET P B7 LOW TO START THE FILIMENT POWER 3420 POKE 49348,T(1) : POKE (4934 9) .T(2) : REM START THE PLAT ING SPEED TIMER 3430 RETURN 3450 REM THIS ROUTINE WILL TURN THE PLATING POWER OFF 3455 AD = 49355: MO = 0:MA = 255 - 128: GOSUB 21000: REM SET T 1 INTO FREERUNNING OPERATION WITH PB7 OUTPUT DISABLED 3460 AD = 49344 :M0 = 1 :MA = 128: GOSUB 3BO *"* VTAB (18): HTAB (3): INPUT "ENTER CUTOFF POINT: ";T(3): HTAB (40) : PRINT "!" 3880 VTAB (19): HTAB (4): PRINT "ALL CORRECT (Y OR N)" ;: GET * -LIST 4495-4525 4495 VTAB (IB): HTAB (2): PRINT SPC( 38): VTAB (18): HTAB ( 40) : PRINT "!" 4510 VTAB (19): HTAB (2): PRINT SPC( 38): VTAB (19): HTAB ( 1): PRINT "I";: HTAB (40): PRINT 4525 IF LEFT* (K*,l) = "N" THEN •eOSUB 3460: GOTO 3325 3LIST 4540-4570 4540 VTAB (16): HTAB (3): PRINT "ENTER NEW COMMENTS. (36 CHA RS MAX)" 4555 VTAB (18): HTAB (2): INPUT K*: IF LEN (K*) < 37 THEN C * = K*: GOSUB 3460: GOTO 332 5 4570 VTAB (19): PRINT "COMMENTS TOO LONG": GOTO 4480 3KISTLIST 5100-5300 5100 REM THIS IS THE START OF T HE SINGLE CHAMBER PLATING RO UTI E 5150 HE* = "CHAMBER" + CU* + "& C RYSTAL " + STR* (XC) + " IN PUT AREA": GOSUB 2785 5200 VTAB (3) : HTAB (3) : INPUT " TARGET FREQUENCY IN MHZ " ;TF 5250 IF TF < 0.05 OR TF > 100 THEN VTAB (3) : HTAB (20) : PRINT SPC( 15) : GOTO 5200 5300 VTAB (3) : HTAB (40) : PRINT 3 IST 5705-5750 5705 GOSUB 8000: REM GO COMPU TE PLATING RATES 5710 HE* = "CHAMBER" + CU* + "t* C RYSTAL " + STR* (XC) + " PL ATING AREA": GOSUB 3055 5712 VTAB (7): HTAB (2): PRINT SPC( 38) 5715 FOR I = 12 TO 19: VTAB (I): HTAB (30): PRINT SPC( 10): NEXT s REM ERASE DATA AREA - 26 - ?<.i50 REM THE ROUTINE WILL SAVE ANY UNSAVED DATA, WRITE A RE PORT AND INSTRUCT THAT IT IS SAFE TO POWER DOWN OR RESTA RT 2055 GOSUB 10000: REM SAVE DATA 3LIST 2062-2070 2062 HE* = "POWER DOWN EVERYTHING NOW": GOSUB 2785 2065 FLASH : FOR I = 1 TO 5: VTAB (3 + 1 * 2): HTAB (8): PRINT HE*: NEXT : NORMAL 2070 VTAB (15): HTAB (4): PRINT "HIT ANY KEY TO RESTART" ; : GET K*: RETURN 3LIST 20785-2815785-2815 2785 REM ROUTINE CLEAR SCREEN 2800 REM THIS ROUTINE WILL CLEA R THE SCREEN, PRINT THE BOAR DER AND PUT A HEADER ON THE SCREEN 2815 REM THE VARIABLE FDR THE H EADER IS HE* 3LIST 3445-3475 3445 RETURN : REM THIS IS THE R ETURN FROM THE ENGINEERING D ATA SETUP ROUTINE 3460 FOR I = 11 TO 22: VTAB (I) : HTAB (1): PRINT "!" ; SPC( 3 8) :"!";: NEXT : RETURN 3475 VTAB (12): HTAB (3): PRINT "CONNECT FREQUENCY COUNTER T 0 J2 " 3LIST 3685-3715 3685 VTAB (12 + I): HTAB (2): PRINT Is"=" 3700 VTAB (12 + I): HTAB (5): PRINT P(I):: HTAB (20): PRINT M(I) ;: HTAB (32) : PRINT C(I) : 3715 NEXT 3LIST 3820-3880 3820 VTAB (14): HTAB (4): PRINT "CUTOFF POINT IS ";K:" = ";C (K) ;" + PPM" 3835 VTAB (16): HTAB (3): INPUT "ENTER PLATING RATE: ";T(D: HTAB (40) : PRINT "!" 3850 VTAB (17): HTAB (3): INPUT "ENTER MEASUREMENT RATE:";T( noT T » i i HOME LIST 250 REM THIS IS THE START OF TH E VARIABLE INITIALIZATION RO UTINE. 3LIST 265 265 REM ALL OF THE VARIABLES AR E LISTED HERE AND INITIALIZE D TO THE REQUIRED VALUES OR ZERO ' 3LIST 745-805 745 REM THE VARIABLES BELOW ARE THE COUNTER LOCATION VARIAB LES 760 Rl = 49664:R2 = 49665:R3 = 49 666:R4 = 49667: REM 10 MHZ COUNTER READ ADDRESSES 775 LI = 49668:L2 = 49669:L3 = 49 670:L4 = 49671: REM TEST CR YSTAL COUNTER READ ADDRESSES 790 Wl = 49312:W2 = 49313:W3 = 49 314,M = 49315: REM TEST CR YSTAL COUNTER WRITE ADDRESSE S 305 XO = 49316: REM COUNTER ON A DDRESS 3LIST 1120-1150 1120 REM THIS IS THE START OF T HE OPERATOR INITIALIZATION R OUTI E 1135 REM THE INPUT OF THE OPERA TORS NAME AND NUMBER ARE INP UT, THE TIME AND DATE AND MA CHINE NUMBER ARE ALSO INPUT 1150 HE* = "OPERATOR INPUT SECT10 N" 3 IST 1720-1750 1720 FOR I = 1 TO 6 1735 VTAB (I + 7): HTAB (7): PRINT P(I);: HTAB (20): PRINT M(I> ;: HTAB (31) : PRINT C(I) 1750 NEXT -LIST 2035-2055 2035 REM THIS IS THE QUIT ROUTI MΓ- The following additional listings clarifies the garbled lines in the above listings are as follows: 265, 760, 775, 790, 1135, 1735, 2050, 2065, 3460, 3700, 3865, 4510, 4555, 5150, 5200, 5250, 5710, 5715, 6751, 8200, 8210, 8400, 8410, 8412, 8415, 8455, 8460, 8520, 8533, 8800, 8805, 9531, 9835, 23040, 23080, 24000, 24067 and 50017. The details of my invention having been described, modifications may be made therein without departing from the scope and spirit thereof. Thus, the foregoing speci¬ fication is intended as illustrative it being the under¬ standing that the scope of the invention be measured by the following claims:

Claims: What is Claimed: 1. A method of measuring the frequency of an unknown signal comprising the steps of: (a) generating a first high frequency reference signal; (b) generating a second lower frequency reference signal; (c) detecting the trailing edge of said unknown signal; (d) generating a count of said high fre¬ guency signal for the duration between said trailing edge of said unknown frequency signal and the trailing edge of said lower frequency reference signal; and (e) detecting the leading edge of said unknown frequency signal and generating a count of said high frequency reference signal for the duration of said low frequency reference signal determined by the occurance of said leading edge and the trailing edge of said low frequency reference signal. 2. Apparatus for measuring the frequency of an unknown signal consisting of: (a) means for generating a high frequency reference signal; (b) means for generating a low frequency reference signal; (c) means connected to said first and second frequency generating means for controlling the duration of generation of said high and low frequency signals, said control means including means to detect the leading and trailing edges of said unknown frequency signal and for controlling said high frequency reference signal for the duration of said low frequency reference signal commencing on the occurance of said leading and trailing edges respectively. 3. A method of controlling the vaporization material in an evacuated chamber comprising the steps of: (a) detecting the frequency and rate at which material is being deposited in the chamber; (b) comparing the rate at which that material is being deposited with the desired rate of deposition; (c) sampling said first rate at varying rates of sampling, said initial rates of sampling being faster than subsequent sampling rates as said actual rate approaches said desired rate. 4. The method of vacuum deposition of materials comprising the steps of: (a) detecting the rate of deposition of materials in the chamber; (b) varying said rate of deposition as a function of the degree to which said the detected rate approaches a predetermined desired rate; and (c) performing said comparison and calcu¬ lation at different data acquisition rates as a function of the degree of difference between said actual rate of deposition and the desired rate of deposition. 5. The method of optimizing the deposition of material in a high vacuum comprising the steps of: (a) presetting a desired rate of deposition for a desired thickness of material; (b) detecting the actual rate deposition periodically and comparing that actual rate to said pre¬ determined rate; -Si¬ te) varying the rate of detection and comparison as a function of the difference. between said actual rate and said predetermined rate until said pre¬ determined rate is achieved.

Inventors: FRASER JAMES S, GARCIA JOAQUIN G, MARONICH GEORGE G, STOLINS ARTHUR, FRASER, JAMES, S., GARCIA, JOAQUIN, G., MARONICH, GEORGE, G., STOLINS, ARTHUR
Applicants: EMKAY MFG CO, EMKAY MANUFACTURING COMPANY
Application year: 1986
Main classification: G01R23
IPC codes: C23C14, C23C16, G01R23