WO1986007156A1 - High speed digital frequency counter - Google Patents

High speed digital frequency counter Download PDF

Info

Publication number
WO1986007156A1
WO1986007156A1 PCT/US1986/001098 US8601098W WO8607156A1 WO 1986007156 A1 WO1986007156 A1 WO 1986007156A1 US 8601098 W US8601098 W US 8601098W WO 8607156 A1 WO8607156 A1 WO 8607156A1
Authority
WO
WIPO (PCT)
Prior art keywords
print
rem
htab
vtab
rate
Prior art date
Application number
PCT/US1986/001098
Other languages
French (fr)
Inventor
James S. Fraser
Joaquin G. Garcia
George G. Maronich
Arthur Stolins
Original Assignee
Emkay Manufacturing Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Emkay Manufacturing Company filed Critical Emkay Manufacturing Company
Publication of WO1986007156A1 publication Critical patent/WO1986007156A1/en
Priority to KR870700066A priority Critical patent/KR880700272A/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R23/00Arrangements for measuring frequencies; Arrangements for analysing frequency spectra
    • G01R23/02Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage
    • CCHEMISTRY; METALLURGY
    • C23COATING METALLIC MATERIAL; COATING MATERIAL WITH METALLIC MATERIAL; CHEMICAL SURFACE TREATMENT; DIFFUSION TREATMENT OF METALLIC MATERIAL; COATING BY VACUUM EVAPORATION, BY SPUTTERING, BY ION IMPLANTATION OR BY CHEMICAL VAPOUR DEPOSITION, IN GENERAL; INHIBITING CORROSION OF METALLIC MATERIAL OR INCRUSTATION IN GENERAL
    • C23CCOATING METALLIC MATERIAL; COATING MATERIAL WITH METALLIC MATERIAL; SURFACE TREATMENT OF METALLIC MATERIAL BY DIFFUSION INTO THE SURFACE, BY CHEMICAL CONVERSION OR SUBSTITUTION; COATING BY VACUUM EVAPORATION, BY SPUTTERING, BY ION IMPLANTATION OR BY CHEMICAL VAPOUR DEPOSITION, IN GENERAL
    • C23C14/00Coating by vacuum evaporation, by sputtering or by ion implantation of the coating forming material
    • C23C14/22Coating by vacuum evaporation, by sputtering or by ion implantation of the coating forming material characterised by the process of coating
    • C23C14/54Controlling or regulating the coating process
    • C23C14/542Controlling the film thickness or evaporation rate
    • CCHEMISTRY; METALLURGY
    • C23COATING METALLIC MATERIAL; COATING MATERIAL WITH METALLIC MATERIAL; CHEMICAL SURFACE TREATMENT; DIFFUSION TREATMENT OF METALLIC MATERIAL; COATING BY VACUUM EVAPORATION, BY SPUTTERING, BY ION IMPLANTATION OR BY CHEMICAL VAPOUR DEPOSITION, IN GENERAL; INHIBITING CORROSION OF METALLIC MATERIAL OR INCRUSTATION IN GENERAL
    • C23CCOATING METALLIC MATERIAL; COATING MATERIAL WITH METALLIC MATERIAL; SURFACE TREATMENT OF METALLIC MATERIAL BY DIFFUSION INTO THE SURFACE, BY CHEMICAL CONVERSION OR SUBSTITUTION; COATING BY VACUUM EVAPORATION, BY SPUTTERING, BY ION IMPLANTATION OR BY CHEMICAL VAPOUR DEPOSITION, IN GENERAL
    • C23C16/00Chemical coating by decomposition of gaseous compounds, without leaving reaction products of surface material in the coating, i.e. chemical vapour deposition [CVD] processes
    • C23C16/44Chemical coating by decomposition of gaseous compounds, without leaving reaction products of surface material in the coating, i.e. chemical vapour deposition [CVD] processes characterised by the method of coating
    • C23C16/52Controlling or regulating the coating process

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 disclosed 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 aforementioned 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 addition, 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 resolution 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 processing 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 applications 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 detection 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 control 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 hardware and digital circuitry employed in the invention. More particularly, numeral 2 denotes a digital computer of the popular PC type such as the APPLE IIE. 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 accordance 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 oscillator), 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 provided 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 conditioning 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 invention. 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 oscillator 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 connected 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:
Figure imgf000011_0001
With reference to timing diagram Fig. 2
F = Frequency Being Measured (Test frequency);
ta = Total Accumulated Time of 100 MHz Start Counter. (Points
tb = Total Accumulated Time of 10 MHz Counter, (Points Z - a);
and
tc = 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 counter 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 computer 2 incorporating the program described herein. The frequency counter 7 thus detects the frequency of deposition 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 calculation 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. JLIST 1 ONERR GOTO 50000 10 REM CRYSTAL TUNING PROGRAM REV 1 25 REM COPYRIGHT 1985 40 REM ANY UNAUTHORIZED DUPLICATION OF THIS PROGRAM IS FORBIDDEN BY LAW 55 REM 70 REM START OF PROGRAM 85 GOSUB 250: REM VARIABLE INITIALIZATION 90 GOTO 130 100 GOSUB 865: REM SELFTEST 115 GOSUB 1120: REM OPERATOR INITIALIZATION 130 GOSUB 1345: REM ENGINEERING DISPLAY 145 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 205 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.
260ESRBM ZBRO OF THE VARIABLES ARE LISTED HERE AND INITIALIZED TO THE REQUIRED V
280 REM ALL OF THE ARRAYS ARE ALSO DIMENSIONED HERE
295 HOME : VTAB (10): HTAB (10) : FLASH : PRINT "INITIALIZINS SYSTEM": NORMAL
300 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$ = " ": REM TEXT FOR SCREEN HEADER
325 Fl = 0:F2 = 0:F3 = 0: REM SELFTEST FREQUENCY READ VALUES : K$ = " "
330 AD = 49346:MO = 1 :MA = 128: REM SET DDRB BIT 7 = OUTPUT
340 I = O:J = O:K = O:L = O: REM LOCAL INDEX VARIABLES FOR EACH ROUTINE
355 MA$ = " ":ID$ = " " :SA$ = " " : REM :OP INPUT DATA
370 Cl = O: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,9): REM XTAL DATA ARRAY
475 FOR I = 1 TO 50
505 AY (I,1) = 0: REM TARGET FREQUENCY
520 AY (I,2) = 0: REM +PPM VALUE
535 AY (I,3) = 0: REM -PPM VALUE
550 AY(I,4) = 0: REM INITIAL FREQUENCY
565 AY (I,5) = 0: REM INITIAL PPM FROM TARGET
580 AY (I,6) = 0: REM FINAL FREQUENCY
595 AY (I,7) = 0: REM FINAL PPM FROM TARGET
610 AY(I,8) = 0: REM ACCEPT/REJECT STATUS
615 AY(I,9) = 0: REM CHAMBER 1 OR CHAMBER 2
685 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
768 R1 = 49664:R2 = 496651R3 = 49666:R4 = 49667: REM 10 MHZ COUNTER READ ADORES
778RESSBS49668:L2 = 49669:L3 = 49670:L4 = 49671: REM TEST CRYSTAL COUNTER READ
780DMESSE69312:W2 = 49313:W3 = 49314 :W4 - 49315: REM TEST CRYSTAL COUNTER WRITE
805 XO = 493161 REM COUNTER ON ADDRESS
820 XF = 49317: REM COUNTER OFF ADDRESS
835 TRUE = 1:FALSE = 0: REM TRUE AND FALSE LOGICALS
850 RETURN : REM RETURN FROM VARIABLE INITIALIZATION
865 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 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 F1 = 100000000:F2 * 10000000:F3 = 1000000
1000 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: ";F2;" HZ"
1060 VTAB (11): HTAB (4): PRINT " APPLE XTAL FREQ WAS: ";F3;" HZ"
1075 VTAB (13): HTAB (12): PRINT "ALL TESTS PASSED"
1090 VTAB (22): HTAB (8): PRINT "PRESS ANY KEY TO CONTINUE"; : GET K$
1105 RETURN : REM THIS IS THE RETURN FROM THE SELFTEST ROUTINE
1120 REM THIS IS THE START OF THE OPERATOR INITIALIZATION ROUTINE
Figure imgf000014_0001
NAME AND NUMBER ARE INPUT , THE TIME AND DA
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) ";: GET K$
1315 IF LEFT$ (K$,1) = "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: "; 1495 VTAB (16) : HTAB (8) : PRINT "CHAMBERS IN USE: "
1510 VTAB (17) : HTAB (5) : PRINT "CHAMBER SETUP MODE: "
1525 VTAB (19) : HTAB (4) : PRINT "COMMENTS BELOW:"
1540 VTAB (21) : HTAB (1)
1555 PRINT D$;"OPEN ENGRDATA,S6,D1"
1570 PRINT D$;"READ ENGRDATA"
1585 INPUT C1: INPUT C2: INPUT DI$: INPUT CH$: INPUT C$: INPUT P$: INPUT CU$
1600 FOR I = 1 TO 6: INPUT P(I): INPUT M(I): INPUT C(I) : NEXT I
1615 PRINT D$;"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 C1
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
1735C (YTAB (I + 7) : HTAB (7) : PRINT P(I);: HTAB (20) : 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" ;K$
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) : PRINT "2 = RUN SELFTEST" 1885 VTAB (5) : HTAB (4) : PRINT "3 = CHANGE OPERATOR DATA" 1900 VTAB (6) : HTAB (4) : PRINT "4 = ENGINEERING DISPLAY" 1915 VTAB (7): HTAB (4) : PRINT "5 = PRINT DATA REPORT" 1930 VTAB (8) : HTAB (4) : PRINT " 6 = QUIT (WITH REPORT)" 1935 VTAB (9) : HTAB (4): PRINT "7 = CHECK FREQUENCY OF XTAL" 1945 VTAB (11) : HTAB (4) : PRINT "ENTER 1 - 7 ";: 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
Figure imgf000015_0001
ra a DATA, WRITE A REPORT AND INSTRUCT T 2055 GOSUB 10000: 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 + I * 2): HTAB (8): PRINT HE$: NEXT : NORM 2070 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)"* * * * * * * * * * * * * * * * * * * *"
2155 PRINT
2170 PRINT TAB( 13);"CATCAM MODEL 100"
2185 PRINT EP$; CHR$ (104) ; TAB( 20);"BY"
2200 PRINT EP$; CHR$ (49); TAB( 10) ;"EMKAY Mannfacturing Co., Inc."
2215 PRINT TAB( 14);"299-4 Ridgedal* Ave"
2230 PRINT TAB( 11 ) ;"Hanover, New Jersey 07936"
2245 PRINT TAB( 10) ;"Alan Kaplan (201)887-9322"
2260 PRINT
2275 PRINT EP$; CHR$ (40)"* * * * * * * * * * * * * * * * * * * *"
2290 PRINT
2305 PRINT EP$; CHR$ (32)
2320 PRINT TAB( 15); CHR$ (27) ;"-1";"SETUP DATA"
2335 PRINT CHR$ (27);"-0"
2350 TP$ = EP$ + CHR$ (113) :PP$ = EP$ + CHR$ (33)
2365 PRINT TAB( 3) ;TP$;" 10 MHZ CALIBRATION VALUE: ";PP$: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$;I;" = " ;PP$;P( I),M(I),C(I) 2425 NEXT 2440 PRINT TAB( 4) ;TP$;"DIRECT PLATING MODE: ";PP$;DI$ 2455 PRINT TAB( 8);TP$j"CHAMBERS IN USE : " ;PP$;CU$ 2470 PRINT TAB( 5) ;TP$:"CHAMBER SETUP MODE: "5PP$;CH$ 2485 PRINT TAB( 4) ;TP$)"COMMENTS: ";PP$;C$ 2500 PRINT 2515 PRINT TAB( 19); CHR$ (27);"-1";"TUNING DATA" 2530 PRINT EP$; CHR$ (145) 2545 PRINT CHR$ (27) " 1" R INITIAL PPM FINAL FREQUENC
Figure imgf000015_0002
2575 PRINT CHR$ (27) ; 0
2590 PRINT EP$; CHR$ (1); 2620 FOR I = 1 TO XC 2635 PRINT TAB( 2); LEFT$ ( STR$ (AY(I,1)) + " ",16)» 2650 PRINT TAB( 5) ; LEFT$ STR$ (AY(I,4)) +" ",17); 2665 PRINT TAB( 4) : LEFT$ STR$ (AY (I,5)) +" ",11); 2680 PRINT TAB( 4) ; LEFT$ ( STR$ (AY(I,6)) + " ",15): 2695 PRINT TAB( 4) : LEFT$ ( STR$ (AY (I,7)) + " ",9); 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 + I): HTAB (12): PRINT HE$: NEXT NORMAL 2770 RETURN : REM THIS IS THE RETURN FROM THE REPORT ROUTINE 2785 REM ROUTINE CLEAR SCREEN
2800 TREMSCRBES ROUTINE WILL CLEAR THE SCREEN, PRINT THE BOARDER AND PUT A HEADE 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 ": :"; : NEX
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)): HTAB (3): PRINT "1. 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) : HTAB (3) : PRINT "8. QUIT"
3265 VTAB (3) : HTAB (22): FLASH PRINT C2:" MHZ"
3280 VTAB (5) : 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-8): ";: GET K
3340 IF K < 1 OR K > 8 THEN GOTO 3325
3355 ON K GOTO 3475,3610,3940,4060,4210,4360,4450,3370
3370 VTAB (15): HTAB (2): PRINT D$;"OPEN ENGRDATA,S6,D1"
3385 PRINT D$;"WRITE ENGRDATA"
3400 PRINT C1: 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 C(I) : NEXT
3430 PRINT D$;"CLOSE ENGRDATA"
3445 RETURN : REM THIS IS THE RETURN FROM THE ENGINEERING DATA SETUP ROUTINE
3460 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;"="
3700 CVTAB (12 + I): HTAB (5): PRINT P(I);: HTAB (20): PRINT M(I);: HTAB (32) : 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;" - ";P(K);" PPM/SEC"
3805 VTAB (13): HTAB (3): PRINT "MEASUREMENT RATE ";K;" - " ;M(K) ;" SECS"
3820 VTAB (14) : HTAB (4): PRINT "CUTOFF POINT IS ";K;" = ";C(K);" + PPM"
3835 VTAB (16): HTAB (3): INPUT "ENTER PLATING RATE: ";T(1): HTAB (40): PRINT "
3850" VTAB (17) : HTAB (3): INPUT "ENTER MEASUREMENT RATE:";T(2): HTAB (40): PRIN
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$,1) = "N" THEN GOTO 3775
3910 P(K) = T(1) :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 "(2 = CHAMBER 2 IN OPERATION ONLY)"
4105 VTAB (14): HTAB (3): PRINT "(3 = CHAMBERS 1 AND 2 OPERATING)"
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 3460:CH$ = "SINGLE": GOTO 3265
4180 CU$ = " 2 ": GOSUB 3460:CH$ = "SINGLE": GOTO 3265
4195 CU$ = "1 & 2": GOSUB 3460:CH$ = " 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 ":"
4405 VTAB (14): HTAB (3): PRINT "CORRECT (Y OR N) ";: GET L$
4420 IF L$ < > "Y" THEN GOTO 4375
4435 P$ = K$: 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>? " ; : GET K$
4495 VTAB (18): HTAB (2): PRINT SPC( 38): VTAB (18): HTAB (40): PRINT ":" 5100)VTABINT9 : "HTAB (2) : PRINT SPC( 38): VTAB (19): HTAB (1) : PRINT ":";: HTA
4525 IF LEFT$ (K$,1) = "N" THEN GOSUB 3460: GOTO 3325
4540 VTAB (16): HTAB (3): PRINT "ENTER NEW COMMENTS. (36 CHARS MAX)"
45050 VTAB (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 5550 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 SPC( 5): BOTO 5350 5450 VTAB (4) : HTAB (40) : PRINT " : " 5500 VTAB (5) : HTAB (4) : INPUT "- TOLERANCE IN PPM FROM TARGET " ;ND 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)";: GET K$
5700 IF LEFT$ (K$,1) = "2" THEN GOTO 5150
5705 GOSUB 8000: REM GO COMPUTE PLATING RATES
5750 HE$ = "CHAMBER" + CU$ + "& CRYSTAL " + STR$ (XC) + PLATING AREA": GOSUB
5712 VTAB (7): HTAB (2): PRINT SPC( 38)
5716 ARBA I = 12 TO 19: VTAB (I): HTAB (30): PRINT SPC( 10) : NEXT : REM ERASE
5750 AY(XC,1) = TF:AY(XC,2) = PD:AY(XC,3) = ND:AY(XC,9) = CU: REM SAVE VALUES
5800 VTAB (10): HTAB (2): PRINT " "
5850 VTAB (12): HTAB (4): PRINT "INITIAL FREQUENCY (MHZ) = "
5900 VTAB (13) : HTAB (4): PRINT "INITIAL PPM FROM TARGET = "
5905 GOTO 5955
5950 VTAB (15): HTAB (12): PRINT "PPM FROM TARGET = "
5955 VTAB (15) : HTAB (13): PRINT "PLATING SPEED = "
6000 VTAB (16) : HTAB (15): PRINT "PLATING RATE = "
6050 VTAB (18): HTAB (12): PRINT "FINAL FREQUENCY = "
6100 VTAB (19) : HTAB (6) : PRINT "FINAL PPM FROM TARGET = "
6200 FIRST = 1: REM THIS IS THE FIRST PASS
6300 DUN = 0: REM THIS IS THE CRYSTAL FINISHED FLAG
6550 GOSUB 9000 : REM CALL THE PLATING ROUTINE
6600 REM WAITI NG AREA: IF THE CRYSTAL IS DONE THEN GO ON TO THE NEXT CRYSTAL
6650 REM IF THE CRYSTAL 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
9757 GOTO PEEK (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=QUIT ";: 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,6900,6900,6900,6900,6900 ,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 10000: 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=NO) ";: 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
8000 REM THIS IS THE ROUTINE TO COMPUTE THE PLATING VALUES
8005 FOR I = 1 TO 5
8010 TE = (TF * 1000000) * M(I)
8015 PR (I,4) = INT (TE / 16777215) :TE = TE - PR (1,4) * 16777215
8020 PR (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 = 1000000 * (1 / P(I)> :TV(I,2) = INT (T / 256) 8034 TV (I,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 * 1000000 * K - INT (TF * 1000000 K)) * 10) < 1 THEN GOTO 8051 8050 NEXT K 8051 M(6) = K 8052 T = 1000000 * (1 / P(6)) :TV(6,2) = INT (T / 256) 8053 TV (6,1) = INT (T - TV(6,2) * 256) 8055 TE * (TF * 1000000) * M(6) 8060 PR(6,4) = INT (TE / 16777215) :TE * TE - PR (6,4) * 16777215 8065 PR (6.3) = INT (TE / 65536) :TE = TE - PR(6,3) * 655 36 8070 PR(6.2) = INT (TE / 256) :TE = TE - PR(6,2) * 256 8075 PR (6,1) = INT (TE)
8080 FOR I = 1 TO 6
8090 TB(I) = ((1 / (C(I) * TF + TF * 1E6> ) * M ( I ) ) * C2
8105 PV = ((1 / (PD * TF + TF * 1E6) ) * M ( I ) ) * C2
8110 NV = ( (1 / (ND * TF + TF * 1E6) ) * M ( I ) ) * C2
8115 NEXT
8200ERREM 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 = 0
8210A.POKE 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 DL = M(RA)
8250 POKE 49350,TV(RA,1) : POKE 49351 ,TV(RA,2) : REM SET TIMER 1 VALUES
8255 T(1) = TV(RA,1) :T(2) = TV(RA,2)
8256 RS = RA
8260 VTAB (15): HTAB (30) : PRINT RA
8299 RETURN
8300 REM THIS 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
8310 K = PEEK (49675) : REM LOAD VALUES INTO INTERVAL COUNTERS
8315 K = PEEK (49316) : REM START THE COUNTER 8320 RETURN 8400 REM THIS ROUTINE WILL TURN THE PLATING POWER ON 21000: REM SET T1 INTO FREERUNNING GOSUB 21000: REM SET T1 INTO FREERUNNING OPE 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 PLATING SPEED TIMER 8430 RETURN
8450 REM THIS ROUTINE WILL TURN THE PLATING POWER OFF : GOSUB 21000: REM SET Tl INTO FREERUNNING 8460 MA = 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 ERROR COUNTERS
8520»4V667) PEEK7(49654) + ( PEEK (49665) * 256) + PEEK (49666) * 65536) + ( PE
8525 V5 = PR(RA,1) + (PR(RA,2) * 256) + (PR(RA,3) 65536) + (PR(RA,4) * 1677721
8530 XE = XE / 100E6:V1 - V1 / 10E6:DT = V1 + XE ZERO THEN V5 = 0:PM = TF * 1E6: RETURN REM ERROR RETURN TO PREVENT
8535 V5 = V5 / DT
8540 PM = (V5 - (TF * 1000000) ) / 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 6WILL GET THE 10MHZ COUNTER VALUES ONLY AM) ADD THEM UP + ( PEEK (49665) * 256) + ( PEEK (49666) * 65536) + ( PE 8810 AG = (AV(1) + AV(2) + AV(3)) / 3
8820 IF TT < = AG * 1.05 AND TT > = AG * .8 THEN AV(AC) = TT: GOTO 8890 8830 TT = AG 8890 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 9050 IF RA < > RS THEN GOSUB 8200
9060 GOSUB 8300: REM START COUNTER
9000S 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 = O: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
9535 GOTO 958K (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
9805 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
9835 GOTO 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 10000 XC = 1 : RETURN
10100 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 = 0:MA = 255 - 32 : GOSUB 21000: REM TURN BIT 5 OF ACR OFF
20006 IF PEEK (49358) - 0 THEN 20010
20007 AD = 43958:M0 = 0:MA = 255 - 32: GOSUB 21000: REM TURN BIT 5 OF IER OFF
20010 L0 = DL / 0.065536
20020 L1 = (LO - INT (L0)) * 65536
20030 L2 = INT (L1 / 256)
20040 L1 = INT (L1 - L2 * 256)
20050 IF L0 < 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 I,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,MA: REM OPERATION MASK 21055 POKE I + 5,141: REM STA ABSOLUTE 21060 POKE I + 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 = 1000000 23002 GCSUB 8000: REM COUPUTE COUNTER VALUES 23005 IF LEFT$ (K$,1) = "U" THEN GOTO 23009 23006 GOTO 24000
23009 TF = 1000000
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 23040 IF ((TF * 1000000 * K - INT (TF * 1000000 * K)) * 10) < 1 THEN GOTO 230 23042 NEXT K
23044 M(6) = K 23046 TE = (TF * 1000000) * M(6) 23048 PR (6,4) = INT (TE / 16777215) :TE = TE - PR (6,4) * 16777215 23050 PR (6,3) = INT (TE / 65536) :TE = TE - PR (6,3) * 65536 23052 PR (6,2) = INT (TE / 256) :TE = TE - PR (6,2) * 256 23055 PR (6,1) = INT (TE)
23058 GOSUB 8200
23059 GOSUB 8300
23060 D = PEEK (49317) :D = PEEK (49673) :D = PEEK (49675) :D = PEEK (49316) 23080 GOTO 23800(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":: GET K$ 23720 RETURN 24000 : VTAB (24) : HTABT(4): PRINT "ENTER FREQUENCY IN MHZ: " ;: VTAB 24005 VTAB (15): HTAB (4): INPUT "ENTER MEASUREMENT RATE: " ;M(6) 24010 VTAB (17): HTAB (4): PRINT "ALL OK? <CR> OR N ";: GET K$ 24015 IF K$ = "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 24000 GOTO 25065(49668) + PEEK (49669) + PEEK (49670) + PEEK (49671)) < > 0 24070 GOSUB 8500
24080 VTAB (18) : HTAB (20) : PRINT SPC( 18);: 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=CONTINUE; 2=NEW VALUES: 9-QUIT";: GET K$ 24110 IF LEFT$ (K$,1) = "2" THEN GOTO 24000 24115 IF LEFT$ (K$,1) = "9" THEN RETURN 24120 GOTO 24067
40000 ONERR GOTO 50000
40001 PRINT "ENTER <CR>" ; : GET
40002 GOTO 40001 50000 EC = PEEK (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
500151100 ,5C200T5130005150005150000 ,50300 ,50400 ,50500 ,50600 ,50700 ,50800 ,50900 ,51 50020 PRINT "! !!?ERROR #";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$,1) = "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$,1) = "Q" THEN STOP
50830 RESUME
50900 PRINT "FILE LOCKED": STOP
51000 PRINT "SYNTAX ERROR1 AT LINE" ;AD
51005 STOP
51100 PRINT "NO BUFFERS AVAILABLE AT LINE " ;AD
51110 STOP
51200 PRINT "FILE TYPE MISMATCH at line ";AD: STOP
51300 PRINT "PROGRAM TOO LARGE at line ";AD: STOP
51400 PRINT "NOT A DIRECT COMMAND": STOP
51500 PRINT "SYNTAX ERROR2 AT LINE";AD:K = 1: RESUME
52000 STOP
53000 GOSUB 8450: REM TURN OFF ALL POWER : DUN = 1 : RESUME
SUBSTITUTE SHEET 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.
9830 REM WAIT 49357,2:REM WAIT
FOR COUNTER TO FINISH 9835 IF ( PEEK (49668) + PEEK (
49669) + PEEK (49670) + PEEK
(49671)) < > 0 THEN GOTO 9
835 9840 GOSUB 8500: REM GET FREQ A
ND PPM
JLIST 23038-23042
23038 FOR K = M(6) * 0.9 TO M(6)
* 1.1 STEP M(6) * 0.01 23040 IF ( (TF * 1000000 * K - INT
(TF * 1000000 * K)) * 10) <
1 THEN GOTO 23044 23042 NEXT K
]LIST 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
JLIST 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
JLKISTIST 50016-50020
50016 IF EC = 254 THEN RESUME
50017 ON EC GOTO 50100,50200,502 00,50300,50400,50500,50600,5 0700,50800,50900,51000,51100 ,51200,51300,51400,51500
50020 PRINT "!!!?ERROR #";EC;" A T LINE ";AD: STOP
Figure imgf000025_0001
TO TURN THE FILIMENT POWER
TO ZERO 3470 RETURN 8500 REM THIS IS THE FREQUENCY AND PPM COMPUTATION ROUTINE 3501 REM THIS ROUTINE IS PASSE
D RA= PLATING RATE 1 TO 6 8515 XE = PEEK (49672) - PEEK (
49674) : REM ERROR COUNTERS 8520 VI = PEEK (49664) + ( PEEK
(49665) * 256) + ( PEEK (496
66) * 65536) + ( PEEK (49667
) * 16777215) 8525 V5 = PR(RA,1) + (PR(RA,2) *
256) + (PR(RA,3) * 65536) +
(PR(RA,4) * 16777215) 8530 XE = XE / 100E6:V1 = V1 / 10
E6:DT = V1 + XE 8533 IF DT = 0 THEN V5 = 0:PM =
TF * 1E6: RETURN : REM ERRO R RETURN TO PREVENT DIVIDE B
Y ZERO 8535 V5 = V5 / DT
]LIST 8740-8810
8740 RETURN
8800 REM THIS ROUTINE WILL GET THE 10MHZ COUNTER VALUES ONL Y AND ADD THEM UP WITH THE P ROPER WEIGHTING
8805 TT = PEEK (49664) + ( PEEK (49665) * 256) + ( PEEK (496 66) * 65536) + ( PEEK (49667 ) * 16777215)
8810 AG = (AVU) + AV(2) + AV(3)) / 3
]LIST 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
JLIST 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
Figure imgf000026_0001
AT (XC,3) = ND:AY(XC,9) = CU: REM SAVE VALUES
JLIST 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
JLIST 8115-8201
8115 NEXT 8200 REM THIS ROUTINE WILL LOA D THE VALUES INTO THE COUNTE R AND PLATING SPEED TIMER
8201 REM LOW ORDER BYTE OF TIME R 1 AND THE HOB OF TIMER 1
JLIST 8205-8218
8205 TX = 0
3210 POKE 49312. PR(RA, 1) : POKE 4 9313,PR(RA,2) : POKE 49314, PR (RA,3) : POKE 49315, PR (RA, 4)
8218 TX = PR(RA,1) + PR(RA,2) + P R(RA,3) + PR(RA,4)
JLIST 8400-8535
8400 REM THIS ROUTINE WILL TURN
THE PLATING POWER ON 8410 AD = 49355: MO = 1 :MA = 64: GOSUB 21000: REM SET T1 INTO FRE ERUNNING OFERATION WI
TH PB7 OUTPUT ENABLED 8412 AD = 49355:MO = 1 :MA = 128: GOSUB 21000: REM SET T1 INTO FR
EERUNNING OPERATION WITH PB7 OUTPUT ENABLED 8415 AD = 49344 :MO = 0:MA = 255 - 128: GOSUB 21000: REM SET P B7 LOW TO START THE FILIMENT POWER 8420 POKE 49348,T(1) : POKE (4934 9) .T(2) : REM START THE PLAT ING SPEED TIMER 8430 RETURN 8450 REM THIS ROUTINE WILL TURN
THE PLATING POWER OFF 8455 AD = 49355: MO = 0:MA = 255 - 128: GOSUB 21000: REM SET T 1 INTO FREERUNNING OPERATION WITH PB7 OUTPUT DISABLED 8460 AD = 49344 :MO = 1 :MA = 128: GOSUB
Figure imgf000027_0001
3865 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 K$
JLIST 4495-4525
4495 VTAB (18): HTAB (2): PRINT SPC( 38): VTAB (18): HTAB ( 40) : PRINT ":" 4510 VTAB (19): HTAB (2): PRINT SPC( 38): VTAB (19): HTAB ( 1): PRINT ":";: HTAB (40): PRINT
4525 IF LEFT$ (K$,1) = "N" THEN GOSUB 3460: GOTO 3325
]LIST 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
]KISTLIST 5100-5300
5100 REM THIS IS THE START OF T
HE SINGLE CHAMBER PLATING RO
UTINE 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
]LIST 5705-5750
5705 GOSUB 8000: REM GO COMPU
TE PLATING RATES 5710 HE$ = "CHAMBER" + CU* + "& 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
Figure imgf000027_0002
2050 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
]LIST 2062-2070
2062 HE$ = "POWER DOWN EVERYTHING
NOW": GOSUB 2785 2065 FLASH : FOR I = 1 TO 5: VTAB
(3 + I * 2): HTAB (8): PRINT
HE$: NEXT : NORMAL 2070 VTAB (15): HTAB (4): PRINT
"HIT ANY KEY TO RESTART" ; : GET
K*: RETURN
]LIST 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$
]LIST 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
O J2 "
]LIST 3685-3715
3685 VTAB (12 + I): HTAB (2): PRINT I:"="
3700 VTAB (12 + I): HTAB (5): PRINT P(I):: HTAB (20): PRINT M(I) ;: HTAB (32) : PRINT C(I) :
3715 NEXT
]LIST 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(1): HTAB (40) : PRINT ":" 3850 VTAB (17): HTAB (3): INPUT
"ENTER MEASUREMENT RATE:";T(
Figure imgf000028_0001
HOME
]LIST 250
REM THIS IS THE START OF TH E VARIABLE INITIALIZATION RO UTINE.
]LIST 265
265 REM ALL OF THE VARIABLES AR E LISTED HERE AND INITIALIZE D TO THE REQUIRED VALUES OR ZERO
]LIST 745-805
745 REM THE VARIABLES BELOW ARE THE COUNTER LOCATION VARIAB LES
760 R1 = 49664 :R2 = 49665 :R3 = 49 666 :R4 = 49667: REM 10 MHZ COUNTER READ ADDRESSES
775 L1 = 49668 :L2 = 49669 :L3 = 49 670 :L4 = 49671: REM TEST CR YSTAL COUNTER READ ADDRESSES
790 W1 = 49312 :W2 = 49313 :W3 = 49 314 :W4 = 49315: REM TEST CR YSTAL COUNTER WRITE ADDRESSE S
305 XO = 49316: REM COUNTER ON A DDRESS
]LIST 1120-1150
1120 REM THIS IS THE START OF T HE OPERATOR INITIALIZATION R OUTINE
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 SECTIO N"
]LIST 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 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 specification is intended as illustrative it being the understanding 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 freguency 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 calculation 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 predetermined rate; (c) varying the rate of detection and comparison as a function of the difference. between said actual rate and said predetermined rate until said predetermined rate is achieved.
PCT/US1986/001098 1985-05-28 1986-05-23 High speed digital frequency counter WO1986007156A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR870700066A KR880700272A (en) 1985-05-28 1987-01-27 High speed digital frequency counter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73868685A 1985-05-28 1985-05-28
US738,686 1985-05-28

Publications (1)

Publication Number Publication Date
WO1986007156A1 true WO1986007156A1 (en) 1986-12-04

Family

ID=24969061

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1986/001098 WO1986007156A1 (en) 1985-05-28 1986-05-23 High speed digital frequency counter

Country Status (6)

Country Link
EP (1) EP0224563A4 (en)
JP (1) JPS62503056A (en)
KR (1) KR880700272A (en)
AU (1) AU5952186A (en)
ES (1) ES8801866A1 (en)
WO (1) WO1986007156A1 (en)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2887653A (en) * 1955-04-19 1959-05-19 Bell Telephone Labor Inc Time interval encoder
US3670693A (en) * 1971-03-23 1972-06-20 Collins Radio Co Quartz crystal resonator tuning control apparatus
US3689747A (en) * 1970-12-09 1972-09-05 Ibm Digital evaporation monitor system
US3699916A (en) * 1970-08-05 1972-10-24 Gte Automatic Electric Lab Inc An apparatus for monitoring of the deposition of metallic films
US3864161A (en) * 1973-08-10 1975-02-04 Western Electric Co Method and apparatus for adjusting resonators formed on a piezoelectric wafer
US3936745A (en) * 1974-11-12 1976-02-03 Mdh Industries, Inc. Method of measuring the duration of a discontinuous signal
US4112358A (en) * 1976-04-09 1978-09-05 Takeda Riken Kogyo Kabushikikaisha Digital frequency measuring device
US4112134A (en) * 1976-03-22 1978-09-05 Transat Corp. Vacuum deposition method for frequency adjustment of piezoelectric resonators
US4166360A (en) * 1976-12-24 1979-09-04 Tokyo Shibaura Electric Co., Ltd. Chronograph
GB2031672A (en) * 1978-09-11 1980-04-23 Paphitis A Digital frequencyprocess and method using frquency shifting techniques especially for low frequency measurements
US4303983A (en) * 1978-09-29 1981-12-01 Mitec-Moderne Industrietechnik Gmbh Method and apparatus for measuring time
US4311725A (en) * 1978-08-18 1982-01-19 National Research Development Corporation Control of deposition of thin films
US4425871A (en) * 1981-02-09 1984-01-17 Applied Magnetics Corporation Apparatus for sensing deposition of a thin film layer of a material
US4584528A (en) * 1981-02-28 1986-04-22 Hitachi, Ltd. Speed detecting method and apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3336359A1 (en) * 1983-10-06 1985-04-18 Elster AG, Meß- und Regeltechnik, 6700 Ludwigshafen Method for measuring frequency or period

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2887653A (en) * 1955-04-19 1959-05-19 Bell Telephone Labor Inc Time interval encoder
US3699916A (en) * 1970-08-05 1972-10-24 Gte Automatic Electric Lab Inc An apparatus for monitoring of the deposition of metallic films
US3689747A (en) * 1970-12-09 1972-09-05 Ibm Digital evaporation monitor system
US3670693A (en) * 1971-03-23 1972-06-20 Collins Radio Co Quartz crystal resonator tuning control apparatus
US3864161A (en) * 1973-08-10 1975-02-04 Western Electric Co Method and apparatus for adjusting resonators formed on a piezoelectric wafer
US3936745A (en) * 1974-11-12 1976-02-03 Mdh Industries, Inc. Method of measuring the duration of a discontinuous signal
US4112134A (en) * 1976-03-22 1978-09-05 Transat Corp. Vacuum deposition method for frequency adjustment of piezoelectric resonators
US4112358A (en) * 1976-04-09 1978-09-05 Takeda Riken Kogyo Kabushikikaisha Digital frequency measuring device
US4166360A (en) * 1976-12-24 1979-09-04 Tokyo Shibaura Electric Co., Ltd. Chronograph
US4311725A (en) * 1978-08-18 1982-01-19 National Research Development Corporation Control of deposition of thin films
GB2031672A (en) * 1978-09-11 1980-04-23 Paphitis A Digital frequencyprocess and method using frquency shifting techniques especially for low frequency measurements
US4303983A (en) * 1978-09-29 1981-12-01 Mitec-Moderne Industrietechnik Gmbh Method and apparatus for measuring time
US4425871A (en) * 1981-02-09 1984-01-17 Applied Magnetics Corporation Apparatus for sensing deposition of a thin film layer of a material
US4584528A (en) * 1981-02-28 1986-04-22 Hitachi, Ltd. Speed detecting method and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Electronics, March 4, 1976, "Counter Inverts Period to Measure Low Frequency", MATTHEW L. FICHTENBAUM, pp 100-101 *
See also references of EP0224563A4 *

Also Published As

Publication number Publication date
EP0224563A4 (en) 1990-11-28
KR880700272A (en) 1988-02-22
AU5952186A (en) 1986-12-24
ES8801866A1 (en) 1988-02-16
JPS62503056A (en) 1987-12-03
ES555416A0 (en) 1988-02-16
EP0224563A1 (en) 1987-06-10

Similar Documents

Publication Publication Date Title
CA1064159A (en) Phase locked circuits
KR100660784B1 (en) Analog clock apparatus and analog control extension apparatus including the same
EP0651517B1 (en) Clock signal generation circuit having detective circuit detecting loss of reference clock
CN102291134A (en) Loop response time measuring device and method used for atomic frequency standard
US6084441A (en) Apparatus for and method of processing data
US20230006676A1 (en) Method and apparatus for synchronizing two systems
US4468614A (en) Average frequency measuring apparatus
WO1986007156A1 (en) High speed digital frequency counter
JP5064610B2 (en) Analog clock module
KR900002114B1 (en) Digital rotation detector
GB2064129A (en) Measuring rotational speed electrically
JPS61105629A (en) Clock controlling system
JPH0464431B2 (en)
US10686450B2 (en) Test and characterization of an embedded PLL in an SOC during startup
US10866269B2 (en) Fast frequency calculator
JP2595192Y2 (en) Phase synchronizer
CN112731000A (en) Electric field test system
JP2003090876A (en) Fw-cw distance measuring device
JP2004007152A (en) Semiconductor integrated circuit
JPH04233467A (en) Method and apparatus for measuring speed of motor
TW202247609A (en) Clock generating circuit and calibration circuit thereof
JP2556258B2 (en) Drift alarm device for PLL circuit
JPH03122520A (en) Pulse dividing device
CN112865706A (en) Atomic clock starting performance evaluation method and device
JPH01475A (en) test circuit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR DK JP KR NO

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1986903860

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1986903860

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1986903860

Country of ref document: EP