UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

A computer controlled signal averaging spectrometer system Thewalt, Michael Ludwig Wolfgang 1975

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-UBC_1975_A6_7 T44.pdf [ 5.99MB ]
Metadata
JSON: 831-1.0093243.json
JSON-LD: 831-1.0093243-ld.json
RDF/XML (Pretty): 831-1.0093243-rdf.xml
RDF/JSON: 831-1.0093243-rdf.json
Turtle: 831-1.0093243-turtle.txt
N-Triples: 831-1.0093243-rdf-ntriples.txt
Original Record: 831-1.0093243-source.json
Full Text
831-1.0093243-fulltext.txt
Citation
831-1.0093243.ris

Full Text

A COMPUTER CONTROLLED.SIGNAL.AVERAGING SPECTROMETER SYSTEM by MICHAEL LUDWIG WOLFGANG THEWALT B.Sc.,McMaster University,1972 A THESIS SUBMITTED IN PARTIAL.FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE i n the Department of Physics We accept t h i s thesis as conforming to the required standard THE UNIVERSITY OF BRITISH COLUMBIA October, 1975 In present ing th is thes is in p a r t i a l fu l f i lment of the requirements for an advanced degree at the Un ivers i ty of B r i t i s h Columbia, I agree that the L ibrary sha l l make it f r ee ly a v a i l a b l e for reference and study. I fur ther agree that permission for extensive copying of th is thes is for s c h o l a r l y purposes may be granted by the Head of my Department or by h is representa t ives . It is understood that copying or p u b l i c a t i o n of th is thes is for f i n a n c i a l gain sha l l not be allowed without my wri t ten permiss ion. Department of The Un ivers i ty of B r i t i s h Columbia 2075 Wesbrook Place Vancouver, Canada V6T 1W5 Cii) ABSTRACT A high sensitivity infrared spectrometer with signal averaging capa-b i l i t i e s was constructed for the detection and analysis of luminescent light. The apparatus was interfaced to a Nova- 2 minicomputer which was used to control a l l aspects of the experiment in progress. Two programs were written for this system: one in machine language through which pro-grams written in a higher level language can communicate with the inter-face, -and one in the Basic language which contols the spectrometer when collecting data. Other programs which have been written for data analysis w i l l not be described here. An example of work currently being performed with the new system has been included. The detection of several heretofore unknown lines i n the luminescence spectrum of Si gives evi-dence of the high sensitivity of this apparatus. ( i i i ) TABLE. OF. CONTENTS PAGE ABSTRACT i i TABLE OF CONTENTS i i i LIST OF FIGURES v LIST OF TABLES v i ACKNOWLEDGEMENTS v i i CHAPTER I. INTRODUCTION 1 II . INITIAL STAGES OF DIGITIZATION 5 •/. j. A. Spectrometer Drives 5 B. Digital Voltmeter - Teletype Adapter 7 III. SPECTROMETER AND DETECTORS 13 A. Introduction 13 B. Spectrometer 13 C. Detectors 15 ..IV. THE NOVA-2 MINICOMPUTER 18 A. Introduction 18 B. Characteristics of the NOVA-2 18 C. Programming the Computer 20 D. Interfacing 26 V. THE INTERFACE 28 A. Introduction 28 B. Description of Peripheral Devices 28 C. Machine Language Subroutines 36 VI. SIGNAL AVERAGING PROGRAM 46 A. Introduction 46 B. Program Operation. , 46 VII. EXAMPLE OF WORK DONE WITH THIS SYSTEM 56 BIBLIOGRAPHY 60 (iv) APPENDIX PAGE A. .. SCHEMATIC DIAGRAMS AND LAYOUTS 61 B. MACHINE LANGUAGE SUBROUTINES 80 C. SIGNAL AVERAGING PROGRAM 98 (v) LIST OF FIGURES FIGURE PAGE 1. B l o c k Diagram of t h e Spectrometer C o n t r o l l e r 8 2. B l o c k Diagram of the D i g i t a l V o l t m e t e r - T e l e t y p e A d a p t e r ... 11 3. Sample of Data Typed U s i n g t h e A d a p t e r . 12 4. Layout of t h e Spectrometer 14 5. S i g n a l of N o i s e R a t i o o f InAs D e t e c t o r With Two P r e a m p l i f i e r s 16 6. Comparison of t h e S i g n a l to N o i s e R a t i o of t h e Ge and InAs D e t e c t o r s 17 7. An Example of a Machine Language S u b r o u t i n e 25 8. S i g n a l A v e r a g i n g Apparatus 55 9. t Motherboard F r o n t S i d e 62 10. Motherboard Back S i d e 63 11. D i g i t a l t o A n a l o g C o n v e r t e r Board F r o n t S i d e 64 12. D i g i t a l t o A n a l o g C o n v e r t e r Board Back S i d e 65 13. A n a l o g t o . D i g i t a l C o n v e r t e r Board F r o n t S i d e 66 14. A n a l o g t o D i g i t a l C o n v e r t e r Board Back S i d e 67 15. Paper Tape Reader/Punch and D i g i t a l Input/Output Board F r o n t S i d e . .. i 68 16. Paper Tape Reader/Punch and D i g i t a l Input/Output Board Back S i d e 69 17. Spectrometer C o n t r o l l e r and Programmable I n t e r v a l Timer Board F r o n t S i d e 70 18. Spectrometer C o n t r o l l e r and Programmable I n t e r v a l Timer Board .Back S i d e ; 71 19. D i g i t a l to A n a l o g C o n v e r t e r SUscswS*.? .Ricg*.as- 72 20. A n a l o g to D i g i t a l C o n v e r t e r 73 21. Paper Tape Reader 74 22. Paper Tape Punch 75 23. D i g i t a l Input/Output 76 24. Programmable I n t e r v a l Timer 77 25. Spectrometer C o n t r o l l e r , 78 26. M o d i f i c a t i o n s t o t h e X-Y P l o t t e r 79 (vi) LIST OF TABLES TABLE PAGE I. Functions of the Switch Register i n the Signal Averaging Program 48 / ( v i i ) ACKNOWLEDGEMENTS I would l i k e t o thank Dr. R.R.Parsons f o r h i s unwavering s u p p o r t and encouragement throughout t h i s p r o j e c t . I would l i k e t o e x p r e s s g r a t i t u d e t o the N a t i o n a l R e s e a r c h C o u n c i l f o r t h e i r award of a P o s t g r a d u a t e S c h o l a r s h i p f o r the d u r a t i o n o f t h i s work. - 1 -Chapter 1 INTRODUCTION The topics of research within this group have been centered from 1973 to the present on the detection and analysis of the recombination luminescence of photocreated carriers i n the semiconductors silicon and germanium. The photoluminescent spectrum can be studied as a function of temperature, excitation intensity, excitation wavelength, time, stress and impurities. We have been mainly interested in the electron hole droplet"^ , a high density "condensed" phase of non-equilibrium carriers which can be observed both in Si and Ge below a certain c r i t i c a l temperature and at sufficiently high con-centrations of carriers. More recently we have also studied the unexplained broadening of the free exciton lines in S i , the recombination of electrons bound to phosphorus impurities with free holes and the band-to-band transition. In February 1974 i t was decided that our a b i l i t y to do significant new work was hampered by the limitations of the existing equipment, which con-sisted of a variable speed DC motor driver Perkin Elmer spectrometer, model 98G (f/3.5, focal length -26 cm) coupled to a dry -ice cooled PbS detector, lock in amplifier and strip chart recorder. It was f e l t that this system was lacking i n both convenience and sensitivity. Although lack of convenience i s a less fundamental problem than lack of sensitivity, i t nevertheless has a serious effect on the ease and efficiency with which experiments can be conducted. There are two basic shortcomings of the original apparatus which both derive from i t s analog nature. The f i r s t limitation i s that the data i s recorded i n analog form, as a line on the chart paper produced by the strip chart recorder. This limits the dynamic range of the apparatus to approximately 60 since the f u l l scale deflection i s 12 em and the minimum detectable signal would be about a 2 mm deflection. - 2 -More important, of course, i s the fact that a l l data analysis, such as curve f i t t i n g , data smoothing and deconvolution is now done on d i g i t a l computers. Thus the data on the chart paper must be digitized manually, a tedious process in which errors are easily introduced. The second deficiency arises from the fact that the spectrometer is scanned by a continuously variable speed DC motor. The speed s t a b i l i t y of this motor is very poor, especially at low speeds, and hence we must super-impose upon the data synchronizing markers derived from the rotation of the spectrometer shaft. Even i f the motor speed were stable, i t could s t i l l not be set accurately and hence no two graphs could be easily compared since their wavelength axes would d i f f e r . In order to increase the sensitivity, the most obvious step would be to increase the signal level. This could be done, in principle, by constructing a spectrometer of lower f-number; but this i s impractical due to d i f f i c u l t i e s in finding suitable optical elements for the light collection and detector focussing systems. Alternatively one could build a spectrometer of longer focal length but having the same f-number. The throughput of this spectro-meter would be greater since for the same resolution the s l i t s could be opened wider. Sensitivity i s also directly proportional to the detector/pre-amplifier signal-to-noise (S/N) ratio, and hence the proper choice of this subsystem is of great importance. Finally, the introduction of d i g i t a l computers has resulted i n the growing use of signal averaging as a means of increasing sensitivity. This method util i z e s the fact that i f one averages a repetitive signal upon which random noise has been superimposed, then the average noise amplitude w i l l decrease by I/N where N i s the number of averages. In other words, to improve the signal to noise ratio by a factor S i t i s necessary to average the signal S 2 times. - 3 -These, then, were the shortcomings which needed improvement. It was decided to proceed i n two distinct steps. F i r s t , the Perkin-Elmer spectro-meter was to be fitted with a stepping motor drive. The motor controller was to have a wide range of discrete stepping speeds a l l of which were locked to the 60 HZ line frequency, as was the chart recorder. Thus these two units would now run synchronously, and a l l speeds would be exactly resetable. The controller would also issue synchronizing pulses to either the strip-chart recorder or to the di g i t i z e r . The digitizer converted the output of an existing Monsanto d i g i t a l multimeter into a format suitable for printout on a teletype (ASR-33). Thus the system would run at a very stable speed, produce a strip-chart recording for immediate reference, type out the voltage being recorded at some pre-determined interval and simultaneously punch the data on paper tape. This tape would then contain a l l the data in digitized form and could be later read into the central campus computing system for data analysis or for aver-aging with other data. The second level of improvement then took place while the previously described equipment was being used i n various experiments. It consisted of the construction of a new f/3.5 spectrometer with a focal length of 58 cm. A liquid nitrogen cooled InAs detector with a current sensitive preamplifier was used, although i t was later replaced by a liquid-nitrogen cooled Ge de-tector-preamplifier package when observing Si luminescence. Simultaneously, a general purpose interface was constructed which allowed almost a l l aspects of the experimental setup to be controlled by an on-line Nova-2 minicomputer (Data General). While the basic idea of using an on-line computer was signal-averaging, i t also resulted in a great increase in the ease and efficiency with which data could be collected. Also, most data-analysis was then carried out using the minicomputer rather than the campus computing centre. - 4 -The p r o p e r u t i l i z a t i o n of t h e computer r e q u i r e d t h e p r o d u c t i o n of two r a t h e r l a r g e programs: t h e Machine Language S u b r o u t i n e s which c o n t r o l t h e v a r i o u s i n t e r f a c e elements, and t h e S i g n a l A v e r a g i n g Program which was w r i t t e n i n the h i g h - l e v e l BASIC language. The completed system i s c u r r e n t l y b e i n g used i n a wide v a r i e t y of work by m y s e l f and o t h e r s . I t seems f a i r l y c e r t a i n t h a t our s e n s i t i v i t y i s such t h a t we have o b s e r v e d s e v e r a l l i n e s n ever seen b e f o r e , s i n c e they s a t u r a t e a t v e r y low e x c i t a t i o n l e v e l s . Of p a r t i c u l a r i n t e r e s t a t the p r e s e n t i s t h e s t u d y of r e c o m b i n a t i o n i n v o l v i n g i m p u r i t y c e n t e r s , and f r e e c a r r i e r (or band-to-band) r e c o m b i n a t i o n . A l s o p l a n n e d i s e x c i t a t i o n s p e c t r o s c o p y s i n c e t h e computer based system can e a s i l y c o n t r o l more than one s p e c t r o m e t e r , and a l s o i m p o r t a n t i s the f a c t t h a t one can now compress l a r g e amounts o f d a t a i n t o u n d e r s t a n d a b l e form. - 5 -Chapter 2 INITIAL STATES OF DIGITIZATION The f i r s t improvements to the existing apparatus began i n February 1974 and consisted of the design and construction of a stepping motor drive and controller for a Perkin-Elmer spectrometer and an adapter unit which would type and punch the output of a Monsanta 200A d i g i t a l voltmeter (DVM) on an ASR 33 Teletype. These projects were completed in March 1974 and immediately put into use. Both functioned properly, f u l f i l l i n g a l l design expectations and greatly f a c i l i t a t i n g experimentation. The stepping motor drives and con-tro l l e r are s t i l l i n continuous use i n the present minicomputer based system, although the DVM-Teletype adapter was made obsolete by the newer system. A. Spectrometer Drives In order to maximize simplicity and minimize cost i t was decided to scan the monochromators by means of stepping motors, without using any means of positional feedback such as shaft encoders. This necessitated the use of large motors which could be depended upon to never miss any steps when starting or stopping. In this case the spectrometer shaft location i s ex-actly determined by i t s i n i t i a l position and the sum of the clockwise and counter-clockwise steps taken by the motor. One rotation of the spectrometer shaft is referred to as one "wave drive" (WD) unit. The motor selected was the Slo-Syn SS400, manufactured by the Superior Electric Co. It i s a 200 steps per revolution model with a torque of 400 Oz.-in. Two translator modules type STM 1800 were obtained from the same manufacturer. Each of these modules contains the power driver circuitry necessary to sequentially energize the four windings of the motor. One of the modules was used to construct a controller which contained only the power - 6 -supplies and level translation circuitry necessary to control the motors with externally supplied Transistor-Transistor-Logic (TTL) pulses, that i s , pulses between Ov and +4v. This controller could not function on i t s own and was intended only for later use with the minicomputer system. The other translator module was incorporated into a control unit which could operate either in a stand-alone mode or under external control. In the stand-alone mode the controller had to supply a wide range of stable scanning speeds and also synchronizing pulses at various increments of shaft rotation. Since the strip chart recorder was locked to the line frequency by i t s synchronous motor drive, i t was desirable to also have the shaft rotation locked to the line frequency. Thus different sets of data which were ob-tained using the same sweep speeds could be exactly superimposed without any need to adjust the WD axis. The control unit then consisted essentially of a fundamental frequency source followed by a divider chain to select the proper stepping rate, and another divider chain which would generate a synchronization pulse for a given number of steps. Another small but essential part of the circuit pre-vented the controller from moving the motor any further than the limits im-posed by two microswitches positioned at the ends of the spectrometer screw shaft. This was necessary since the high torque motor would have caused considerable mechanical damage were i t to run past the allowable limits. The fundamental frequency source was then selected to f u l f i l l two cr i t e r i a : a) i t had to be derived from the line frequency, b) upon d i v i -sion i t must yield a large number of convenient rotational speeds from the 200 steps per rotation motor. A phase-locked-loop stabilized oscillator/ divider chain could have been used, but for reasons of expediency i t was decided to employ a synchronous motor to chop the light from a light emitting diode which was then detected by a phototransistor. This signal would thus be phase locked to the 60 HZ line frequency. A 20 RPS synchronous motor was used, which with a 16 bladed chopper gave a fundamental frequency of 320 Hz. Upon dividing this by 3, 6, 12, 24, 48 and 96 rotational speeds of 32, 16, 8, 4, 2 and 1 rotations per minute (WD/min) were obtained. In addition any of the above speeds could be further divided by 6 or 60 to yield rotations per 10 minutes or rotations per hour. Thus the available range is from 32 RPM to 1 RPH in 18 increments. The synchronizing pulses were derived by passing the stepping pulses into another divider chain. Division by 2, 4, 8, 20, 40 and 200 resulted in 100, 50, 25, 10, 5 and 1 synchronizing pulse per revolution, respectively. These pulses were available directly as TTL signals at the Pulse Out connect-or. The Marker Out signal was derived from the synchronizing pulses but i t differed in that every 10'th pulse had double the amplitude of the other nine, which made i t much simpler to count the markers on the strip chart paper. The marker pulses were superimposed upon the data being recorded by means of an isolation transformer whose secondary was connected in series with the output of the lock in amplifier. B. Digital Voltmeter-Teletype Adapter The next step required the digitization of data as i t was being re-corded on the strip chart recorder, and the storage of this data on a suitable medium for later use. The rate of digitization was to be set by the synchronization pulse from the spectrometer controller. Since this system was to be a stop gap measure, economy was a major consideration in i t s design. Therefore i t was decided to build the system around a Teletype (model ASR 33) which would later be used in the mini-computer based system. The Teletype i s excellent for data acquisition since i t can simultaneously produce a typed record and a punched paper tape of the data for later use. Block Diagram of the Spectrometer Controler 16 Hole Chopper Phototransistor| < 5 ~ Amplifier 20 RPS Synch. Motor rl>b Light Emitting Diode 320 Hz >-Int. Down Up O r r-0 4 0-, Ext. Controller +15V -]5V +5V TT External Stepping Pulses Limit Lamps 81 From Limit Switches Frequency Divider Chain RPH Switches For Selecting Sweep Speed Divider Chain i 5 0c? 5o 1 06 5 o1 Switch For Selesting The Marker Pulse Spacing Boosts Every Tenth Pulse T Marker Pulses Trigger Pulses Pulse Generator STM-1800 Motor Driver Stepping Motor Adopting the d i g i t a l voltmeter (DVM) to the Teletype (TTY) i s compli-cated by the non-compatible format of data used by these two devices. The output of the DVM consists of 4 binary coded decimal (BCD) digits along with a polarity b it and the most significant bit (the maximum range i s ± 17000) . Each BCD digit requires four bits of data, and a l l of the data i s available simultaneously from 18 outputs. This scheme of data transmission i s called parallel since a l l the bits are transmitted simultaneously. The teletype on the other hand is a serial device, in which the data i s received as a train of pulses on one data line. The f i r s t pulse i s the "start" pulse, which alerts the TTY that data w i l l follow. Then an 8 bit "byte" is transmitted at a clock rate of 110 H'z, chosen to give a cycle time of 1/10 sec. which is the maximum speed of the TTY. A 1 bit i n the word i s represented by a pulse while a 0 bit i s represented by the absence of a pulse in a given time slot. The code which relates these 8 bit bytes to the alpha-numeric characters and control instructions included in the teletypes repertoire i s called ASCII, short for American Standard Code for Information Interchange. In addition to changing the parallel BCD data to serial ASCII encoding ng; the adapter must also impose some format upon the data. This would not be s t r i c t l y necessary i f only punched paper tape were desired, but in order to get a legible typed record of the data, spaces, carriage returns and line feeds must be inserted when necessary. Since the teletype prints 70 characters to a line and there are 6 characters (including the minus sign and the leading 1) i n one voltage measurement, i t i s possible to type 10 voltages with one space between each on one line. At the end of a line the teletype must be fed a carriage return and a line fed in order to advance i t to the beginning of the next line. The adapter was designed and constructed using standard Transistor-- 10 -T r a n s i s t o r - L o g i c (TTL) I n t e g r a t e d C i r c u i t s ( I C ' s ) . A t o t a l of 37 i n t e g r a t e d c i r c u i t s were used. The p a r t s count c o u l d have been reduced by t h e use of more complex s p e c i a l purpose I C ' s . The a d a p t e r and i t s power s u p p l i e s a r e mounted i n a c a b i n e t on whose r e a r p a n e l i s a BNC c o n n e c t o r f o r t h e t e l e t y p e o u t p u t and a 50 p i n c o n n e c t o r f o r t h e DVM d a t a i n p u t . On t h e f r o n t p a n e l t h e r e i s a BNC i n p u t f o r e x t e r n a l t r i g g e r i n g ( p o s i t i v e TTL l e v e l p u l s e s ) , a manual t r i g g e r i n g push b u t t o n , a t r i g g e r s e l e c t o r s w i t c h and a r e s e t push b u t t o n . The s e l e c t o r s w i t c h a l l o w s t r i g g e r i n g from e i t h e r t h e e x t e r n a l i n p u t , t h e push b u t t o n , or t h e c o n v e r t p u l s e s g e n e r a t e d a t an a d j u s t a b l e r e p e t i t i o n r a t e by the DVM. The r e s e t push b u t t o n r e s e t s t h e d a t a c o u n t e r on t h e a d a p t e r so t h a t t h e next 10 d a t a words typed w i l l occupy one l i n e . I n E i g . 2 t h e a d a p t e r i s shown i n b l o c k form. The 3.5 MHz c r y s t a l o s -c i l l a t o r o u t p u t i s d i v i d e d down to 109.375 Hz which i s a d e q u a t e l y c l o s e t o t h e 110 Hz d a t a r a t e r e q u i r e d by t h e t e l e t y p e . T h i s , t o g e t h e r w i t h t h e p a r a l l e l t o s e r i a l c o n v e r t e r , t h e p a r i t y g e n e r a t o r and t h e o u t p u t c o n t r o l l o g i c , form t h e t e l e t y p e d r i v e r p o r t i o n o f t h e a d a p t e r . The f u n c t i o n o f t h e p a r i t y g e n e r a t o r i s t o i n s u r e t h a t an even number o f b i t s a r e always punched on the paper t a p e . T h i s i s done by o n l y p u n c h i n g b i t 8 on t h e t a p e when the sum o f b i t s 1 t o 7 i s odd. The t e l e t y p e i g n o r e s b i t 8 when t y p i n g but i t can be used ( t o check f o r any r e a d o r punch e r r o r s ) when r e a d i n g t h e d a t a i n t o the computer. The o t h e r p o r t i o n o f t h e a d a p t e r c o n v e r t s the p a r a l l e l BCD o u t p u t o f t h e DVM i n t o a p a r a l l e l ASCII b y t e of 7 b i t s , and a l s o t a k e s c a r e o f a l l f o r m a t t i n g . The b u f f e r r e g i s t e r s t o r e s the output o f t h e DVM a t t h e b e g i n -n i n g of e v e r y t y p e - o u t , thus i n s u r i n g t h a t t h e d a t a do n o t change i n the .7 seconds which a r e r e q u i r e d to t y p e one v o l t a g e r e a d i n g . The decoder c i r -c u i t s a r e c o n t r o l l e d by t h e c h a r a c t e r c o u n t e r , t h e word c o u n t e r and t h e output of t h e b u f f e r r e g i s t e r . - 11 -FIGURE 2 Block Diagram of the Digital Voltmeter - Teletype Adapter Data From Digital Voltmeter 1 Buffer Register Decoding Matrix Parity Generator 5Z Pulses From DVM External Manual o — o o -+5 l — — Q O O O Character Counter Word Counter Reset Control Logic 4v y 3.5' MHz Xtal Osc. Divide by 32,000 12 Bit Parallel to Serial Converter Driver to Teletype Character 0 w i l l be either a space or a minus sign, character 1 w i l l be either a 1 or a space, the next 4 characters w i l l be the 4 digits from the DVM and the last character w i l l be a space, unless the word counter i s at 10. In this case, after typing the last digit a carriage return and then a line feed w i l l be generated. This process i s mediated by the sequence controller. Fig. 3 shows an example of the typed data. The punched paper tape was fed into the main campus computer, although the minicomputer system was also used analyze several data tapes. FIGURE 3 Sample of Data Typed Using the Adapter 0005 - 1048 0077 - 1796 - 0952 - 1 164 - 1701 0451 - 0847 - 1666 1561 - 1644 - 0266 1782 1005 - 0766 - 0117 1915 - 1041 1478 - 1122 1394 0928 1723 1724 0715 1361 - 1756 - 1702 1325 0380 - 1724 - 0469 1114 1192 - 1 068 1919 - 1869 1485 - 1216 1490 - 1537 - 1738 0003 - 1885 - 0806 0978 - 1824 - 0332 - 0749 0663 1374 - 1902 - 1848 - 0208 0762 - 1900 - 1034 - 1313 - 1674 0393 - 1809 - 0569 1670 1040 - 1909 - 1686 1 148 - 0905 - 1759 - 0768 - 1 196 - 1642 - 1902 - 0034 - 1737 - 0938 - 1036 - 1294 - 0146 - 0227 - 1770 - 1670 1093 - 1842 - 0634 - 0422 1391 - 1 186 - 1785 - 0551 - 1896 1926 1924 1916 1925 1224 0129 - 1810 - 1916 — 0866 - 0739 - 1228 0989 - 1852 - 1 700 0335 - 0624 - 1469 1889 0557 1136 - 0842 - 1377 - 1641 0252 - 0872 - 0147 - 1397 - 1777 1908 0227 - 1916 - 1854 - 1056 - 1 194 - 1058 - 0907 1545 0074 — 1659 - 1301 - 1719 - 1887 - 0653 - 1058 - 0318 - 0392 1622 0606 1921 1923 0437 - 1619 - 0828 - 1836 - 1914 - 141 1 - 1465 - 0937 0121 1731 0635 1888 0034 - 1883 - 1871 - 0649 - 1200 1612 - 13 -CHAPTER 3 SPECTROMETER AND DETECTORS A) Introduction During the spring of 1974 a l l experimental work was halted due to a general renovation of the laboratory f a c i l i t i e s , and this opportunity was taken to construct a new spectrometer. This new instrument was to replace the existing Perkin Elmer spectrometer for a l l photoluminescence work, and the Perkin Elmer unit was to be set aside for unrelated experiments. A new detector housing was constructed in which an InAs photovoltaic diode was mounted. The housing was later modified to allow the use of a special Ge detector which was used for detecting Si luminescence. B) Spectrometer One of the main design c r i t e r i a for the new spectrometer was to make the fullest possible use of existing components. These consisted of a grating, two mirrors and the combined entrance and exit s l i t s . The grating, manu-factured by Bausch and Lomb, was planar and was ruled with 600 lines per mm blazed at 1.6u. The ruled area measured 20.6 cm by 12.8 cm and the blank thickness was 3.5 cm. The resolving power at 1.6u was greater than 80% of the theoretical and the efficiency was greater than 78% of the theoretical value. The two mirrors were spherical, with a focal length of 58 cm. The adjustable holders on which they were mounted were included in the spectro-meter design. The s l i t s were ganged together and could be adjusted from the fu l l y closed position to a separation of 2 mm. The s l i t openings were 7.5 cm high and were in the shape of arcs on opposite sides of a c i r c l e 25.4 cm in diameter. - 14 -FIGURE 4 Layout of the Spectrometer Given these components the obvious choice for the spectrometer design was the Czerny-Turner mounting, which i s a modified form of the Ebert mounting. The layout i s shown in Fig. k_. This i s a very common arrangement since i t has the advantage of using spherical mirrors. The abberations produced by one mirror are cancelled to a great extent by those of the other. The spectrometer is scanned by changing the grating angle. The grating holder rotates on an axle which i s supported by two ball-bearing sleeves" which are under compression so as to eliminate play. A side arm extending from the axle i s held by a spring against the nut of a b a l l bearing screw. This nut moves back and forth as the b a l l bearing screw is rotated by the stepping motor, thus changing the grating angle. A b a l l bearing screw with a preloaded nut was used instead of an ordinary screw because of i t s exception-al precision and the nearly total absence of play or backlash. The screw is connected at one end to the motor shaft and at the other to a rotational counter readout. The spectrometer was constructed on the top of a metal table measuring 33 by 48 inches and covered by a light tight wooden box. A l l the components were mounted directly to the 3/4" iron table-top. When i t was later dis-covered that ambient temperature fluctuations introduced errors in the spec-trometers calibration, i t was necessary to regulate the temperature of the table-top, which proved to be a satisfactory solution. C) Detectors The detector which had been used before this project was undertaken was a lead sulfide photoconductive type, manufactured by Infrared Industries. This detector had been specially selected for high sensitivity, and was specified as having a detectivity D (1.5y, 100, 1) > 4 x 10" cm Hz 2 watt - 1 which corresponds to a noise effective power NEP < 2 x 10 - 1 3 watts. The detector provided optimum performance when cooled with dry ice (193 K), which was a drawback in terms of ease of operation. Its time constant was approx-imately 1 ms. The f i r s t of the new detectors to be added to the system was an InAs photovoltaic diode, type D-12 manufactured by Judson Research and Manufactur-ing. When operated at a temperature of 77 K this detector was specified as having a detectivity D (peak, 900, 1) of 1 to 3 x 10" cm Hz 2 watt - 1 which corresponds to a noise effective power NEP of 1 x 10 - 1 3 to 3 x 10 - l t f watts. Thus this detector should have nominally greater sensitivity than the PbS detector; in fact i t was considerably better but no quantitative comparison exists. Two additional advantages 'of this detector are that i t does not - 16 -require dry ice and that i t i s much faster (lys), thus allowing time resolved luminescence studies to be undertaken. detector, namely a PAR 113, which i s one of the lowest noise, voltage sensi-tive amplifiers available. It was f e l t , however, that the InAs detector, being a photovoltaic device, would be better matched to a current sensitive preamplifier. To test this hypothesis, a PAR 181 current sensitive pre-amplifier was purchased and tests showed that i t resulted in a reduction of the signal to noise ratio by a factor of five. A comparison of the two results i s shown i n Fig. 5_ which clearly shows the importance of matching a detector with the proper amplifier. The sensitivity of the apperatus in the region of S i luminescence was later greatly increased when we obtained a developmental i n t r i n s i c Ge photo-detector, type 67-07-B, manufactured by RCA. In this detector liquid nitrogen cools not only the Ge photoconductor but also the internally connec-The InAs detector originally used the same preamplifier as the PbS FIGURE 5 Signal to Noise Ratio of InAs Detector With Two Preamplifiers Amplifier Output For Equal Step Input Time ted preamplifier. This is very important since intrinsic Ge photoconductive detectors are always limited by preamplifier noise i f they are well con-structed. The specifications of this detector are NEP (1.42, 90 , 1) < IO""1** watts and D (1.42, 90 , 1) > 4 x 1 0 1 3 cm Hz 2 watt - 1 . In the Si luminescence region (-l.ly) this detector has a signal to noise ratio 10 times better than that of the InAs diode. The ful l significance of this only becomes apparent when one realizes that to gather equal amounts of information, the InAs detector would require 100 times as long as the Ge detector! In Fig. tS the response of both detectors to a fixed luminescence signal is compared. When comparing the error bars the number of averages must be taken into account: 4 with the Ge detector versus 36 with the InAs detector. Work is now underway to construct a prototype microwave biased photo-conductive detector apparatus. This technology offers wide bandwidths, and when using Ge as the photoconductor i t seems to make the detection of single infrared photons a possibility"*^. FIGURE 6 Comparison of the Signal to Noise Ratio of the Ge and InAs Detectors Normalized Detector Output A r b i t r a r y Wavelength Scan - 18 -CHAPTER 4 THE NOVA-2 MINICOMPUTER A) Introduction The f i n a l stage in the upgrading of our f a c i l i t i e s consisted of placing the entire experimental apparatus under the direct control of a minicomputer. This was done not only to improve sensitivity by signal averaging but also to extend the capabilities of the apparatus and to greatly increase the ease and efficiency with which data could be gathered and analyzed. The f i r s t step was of course the choice of a minicomputer. After com-paring various c r i t e r i a such as price, speed, instruction set, ease of programming, ease of interfacing, softwave support etc., i t was decided that the Data General NOVA-2 minicomputer had a definite advantage over a l l other models in relation to our requirements. This model, along with 16K (thousand) words of 16 bit memory was ordered in March 1974. The two month delivery time was used for construction of the interface. The following sections are not intended to be a complete description of the NOVA, since detailed and complete data are available in the manuals 2) published by Data General, specifically in "How to Use the Nova Computers" 3) and "Introduction to Programming the Nova Computers" B) Characteristics of the Nova-2 The NOVA-2 i s a 16 bit d i g i t a l computer which has the same architecture and instruction set as a l l other Nova line computers manufactured by Data General Inc. A l l data and instructions are stored in the memory as 16 bit "words". Thus one data word can represent a l l the integers from 0 to 2 l e - l = 65535, or alternately those between -32767 and +32767. Negative numbers are normally represented in two's complement form which means that to negate a - 19 -number a l l the bits are complemented and then the result is incremented by one b i t . Therefore the most significant bit (MSB) of a positive number w i l l always be 0 while that of a negative number w i l l always be 1. The processor contains five registers which are particularly important in the functioning of the computer. The program counter (PC) i s a 15 bit register which contains the address for which the next instruction is to be taken. When the computer i s running the PC i s incremented after each instruction so that instructions are carried out sequentially. There are two exceptions to this rule: interrupts'by external devices which cause a jump to location 0, and instructions which change the program counter directly. The 15 bit length of the PC sets an upper limit of 32768 upon :the number of words of memory which can be used without adding additional circuitry. The other four registers are called accumulators and are numbered 0^through 3. They are a l l identical in their functioning except for 2 and 3 which in addition can be used in certain instructions to load the PC with a new ad-dress. ThT-he PC can be controlled from the front panel in several ways when the computer is not running. By pressing the start switch the PC i s loaded with the contents of the 16 bit switch register (SR) and continues to run from that address on. By pressing "Examine" the PC i s loaded with the contents of the SR and the contents of that memory location are displayed. Pressing either "Examine Next" or "Deposit Next" increments the PC by one and either examines that location in memory or deposits, the contents of the SR into that memory location. Pressing "Instruction Step" causes instructions to be executed one at a time and thus enables one to follow the functioning of a program. Also, the accumulators may be examined at any time. It is between the four accumulators that a l l the arithmetic and logical operations take place, with the exception of incrementing and decrementing by - 20 -one bit which can be done directly upon a word in memory. Data can be transferred between memory and any accumulator as well as between the ac-cumulators themselves. A l l accumulators are 17 bits long, the extra b i t being necessary to record a possible overflow condition when arithmetic operations take place. Programmed data transfers with peripherals, which are referred to as input/output devices (10's) also take place via the accumulators. Although direct transfers to the memory are possible using the "Direct Memory Access" channel this w i l l not be discussed since i t was not used i n the present project. C) Programming the Computer The computer may be programmed in assembly language or in one of several high level languages such as Fortran or Basic. In an assembly language program each machine language instruction which the computer must make has to be written as a separate step, thus complex programs are ex-tremely time consuming to write, and debugging can take even longer. Hence assembly language i s usually used only when i t is necessary to program at a level which allows access to the machine instruction set and specific memory locations. One set of programs for which this i s required are the sub-routines which handle user-built input/output devices, since each subprogram must be tailored to the needs of i t s device. In assembly language, instructions are represented by mnemonics which may have certain characters appended to them to modify them or to specify certain variables l e f t undefined in the mnemonic. Assembly language allows one to identify locations in memory by names rather than location numbers. This greatly simplifies references to data and program branches. The assembler also recognizes certain "pseudo-op's" which are not as-T- 21 -sembled i n t o t h e program b u t r a t h e r m o d i f y t h e way i n which t h e assembler i n t e r p r e t s the program b e i n g assembled. The most im p o r t a n t o f t h e s e a r e .LOC, .BLK, .RDX and .END. The ".LOC e x p r e s s i o n " s e t s t h e program c o u n t e r to t h e v a l u e determined by the e x p r e s s i o n . ".BLK e x p r e s s i o n " advances t h e program c o u n t e r by t h e v a l u e determined by t h e e x p r e s s i o n , thus l e a v i n g an empty b l o c k i n memory. T h i s i s u s e f u l when a b l o c k o f d a t a has to be s t o r e d i n s i d e a program. ".RDX e x p r e s s i o n " i n s t r u c t s t h e assembler t o t r e a t a l l f o l l o w i n g numbers as i f they were i n the r a d i x determined by t h e i n t e g e r ex-p r e s s i o n , which must be between 0 and 10. The assembler i s i n i t i a l i z e d i n r a d i x 8 ( i . e . o c t a l ) . T h i s f e a t u r e i s u s e f u l when one wishes to i n c l u d e d e c i m a l numbers as d a t a w i t h i n t h e program, s i n c e by u s i n g .RDX 10 t h e assembler w i l l p e r f o r m t h e c o n v e r s i o n from base 10 to b i n a r y f o r us. F i n a l l y , ".END e x p r e s s i o n " comes a t the end of ev e r y program. I f t h e r e i s no e x p r e s s i o n , t h e assembler w i l l produce a b i n a r y tape which causes t h e b i n a r y l o a d e r to h a l t a f t e r l o a d i n g i t . I f an " e x p r e s s i o n " i s i n c l u d e d , t h e b i n a r y l o a d e r w i l l s t a r t t h e program a t t h e l o c a t i o n d etermined by t h e v a l u e o f t h e e x p r e s s i o n . H i g h e r l e v e l languages such as BASIC and FORTRAN a r e used when d i r e c t c o n t r o l o f t h e e c e n t r a l p r o c e s s i n g u n i t i s n o t r e q u i r e d , such as i n mathema-t i c a l c a l c u l a t i o n s . Programming i s v a s t l y s i m p l i f i e d s i n c e one i n s t r u c t i o n i n a h i g h l e v e l language may be e q u i v a l e n t t o hundreds or thousands o f assembly language i n s t r u c t i o n s . A l s o , the r e s p o n s i b i l i t y of such "bookkeep-i n g " c h o r e s as k e e p i n g t r a c k o f the l o c a t i o n s i n which g i v e n v a r i a b l e s a r e s t o r e d i s removed from t h e programmer. F i n a l l y , the w e l l - d e f i n e d s y n t a x o f the h i g h l e v e l languages a l l o w s f o r t h e d e t e c t i o n of e r r o r s i n programming which c o u l d n o t be i d e n t i f i e d i n an assembly language program. When c h o o s i n g a h i g h l e v e l language f o r a g i v e n purpose s u c h as g e n e r a l s c i e n t i f i c - m a t h e m a t i c a l c a l c u l a t i o n s , t h e p r i m a r y t r a d e o f f which has t o be - 22 -made i s between speed o f c a l c u l a t i o n and ease o f o p e r a t i o n . The two languages c o m p a t i b l e w i t h t h e NOVA l i n e computers and s u i t a b l e f o r our needs were BASIC and FORTRAN. BASIC was chosen f o r our work e s s e n t i a l l y because i t s c o n v e n i e n c e and ease of o p e r a t i o n outweighed FORTRAN 'S advantage o f b e i n g much f a s t e r . T h i s advantage does not d e r i v e from any d i f f e r e n c e s i n t h e programming language, s i n c e t h e s e d i f f e r e n c e s a r e s l i g h t and g e n e r a l l y f a v o u r FORTRAN. R a t h e r , i t i s i n t h e way i n which the programs a r e executed t h a t FORTRAN and BASIC d i f f e r most. A FORTRAN program must be com p i l e d u s i n g t h e FORTRAN c o m p i l e r , a s p e c i a l program which c o n v e r t s the FORTRAN language program i n t o a machine language program which i s t h e n punched on paper t a p e . T h i s program can then be l o a d e d and executed a t a l a t e r t ime. However, t h e r e i s no way of m o d i f y i n g t h e program o t h e r than f i r s t m o d i f y i n g t h e FORTRAN s o u r c e program u s i n g t h e Paper Tape E d i t o r and th e n r e c o m p i l i n g t h e e n t i r e program. T h i s i s a t e d i o u s p r o c e d u r e and i s c l e a r l y n o t s u i t e d f o r s i t u a t i o n s i n which t h e program i s t o be m o d i f i e d f r e q u e n t l y . BASIC, however, o p e r a t e s i n an e n t i r e l y d i f f e r e n t manner. I t s c o m p i l e r i s always p r e s e n t i n c o r e memory, and t h e BASIC program i s c o m p i l e d w h i l e i t i s e x e c u t i n g . I t can be i n t e r r u p t e d a t any time w i t h o u t d e s t r o y i n g t h e c u r r e n t v a l u e s of t h e v a r i a b l e s . The u s e r c a n t e s t the v a l u e s of t h e s e v a r i a b l e s and change them i f d e s i r e d . He can a l s o examine t h e program o r any p o r t i o n o f i t , . a n d d e l e t e , i n s e r t or change s t a t e m e n t s . Then t h e program can be r e s t a r t e d a t the p o i n t a t which i t was i n t e r r u p t e d or_ e l s e -where. These f e a t u r e s make t h e m o d i f i c a t i o n and debugging o f programs v a s t l y s i m p l e r t h a n w i t h FORTRAN. A l s o , BASIC can o p e r a t e i n a keyboard mode which a l l o w s the e v a l u a t i o n of one l i n e f o r m u l a e w i t h o u t r e q u i r i n g a program t o be w r i t t e n . The SINGLE USER BASIC, program s u p p l i e d by Data G e n e r a l ( A b s o l u t e B i n a r y Tape 091-000018) was not s u i t a b l e f o r our work s i n c e i t has no p r o v i s i o n s f o r t r a n s f e r r i n g d a t a t o p e r i p h e r a l d e v i c e s o t h e r than t h e t e l e t y p e . However, s e v e r a l o t h e r v e r s i o n s of BASIC e x i s t which do f u l f i l l t h i s r e -quirement, namely EXTENDED BASIC, CALL BASIC and TRIUMF BASIC. A l l of t h e s e a l l o w f o r easy communication between the BASIC program and a s e t o f u s e r -w r i t t e n machine language s u b r o u t i n e s which c o n t r o l t h e p e r i p h e r a l d e v i c e s . These t h r e e v e r s i o n s of BASIC a l l use almost e x a c t l y t h e same scheme f o r communication w i t h the machine language s u b r o u t i n e s . Each s u b r o u t i n e i s i d e n t i f i e d by a p o s i t i v e i n t e g e r and up to e i g h t arguments may be p a s s e d between the BASIC program and t h e machine language s u b r o u t i n e s . A t the be-g i n n i n g o f t h e s u b r o u t i n e s t h e r e i s a s u b r o u t i n e e n t r y t a b l e from which BASIC can d e t e r m i n e the s t a r t i n g a d d r e s s of a g i v e n s u b r o u t i n e and t h e a r g u -ments which may be passed between BASIC and th e s u b r o u t i n e . To a c c o m p l i s h t h i s t h e s u b r o u t i n e e n t r y t a b l e c o n t a i n s a c o n t r o l word f o r e v e r y s u b r o u t i n e which d e f i n e s t h e type of d a t a t r a n s f e r t o t a k e p l a c e . One 16 b i t word i s b r o ken up i n t o 8 t w o - b i t " f i e l d s " , each of which d e s c r i b e s one o f t h e 8 p o s s i b l e arguments. A 00 means no argument, a 10 (2JQ) s t a n d s f o r d a t a g o i n g t o t h e s u b r o u t i n e and a 11 (3IQ) s t a n d s f o r d a t a coming from the sub-r o u t i n e . In o r d e r to s i m p l i f y the w r i t i n g o f the c o n t r o l words, one u s u a l l y works i n r a d i x two. F o r example, i n r a d i x two t h e c o n t r o l word f o r two output and one i n p u t v a r i a b l e s would be: 22300000. T h i s scheme i s somewhat d i f f e r e n t i n extended BASIC s i n c e i t a l l o w s f o r more complex t r a n s f e r s . The BASIC i n s t r u c t i o n w hich i s used t o c a l l a machine language s u b r o u t i n e i s w r i t t e n i n t h e f o l l o w i n g way: CALL //.ARGUMENTS where # i s th e number which i d e n t i f i e s the d e s i r e d s u b r o u t i n e . The number and t y p e of t h e arguments must agree w i t h t h e v a r i a -b l e c o n t r o l word f o r t h a t s u b r o u t i n e . Each argument i s s e p a r a t e d by a comma. An i n p u t argument can o n l y be a v a r i a b l e name, w h i l e an output argument may be either a variable name or an arithmetic expression. The terms input and output are always used from the point of view of the BASIC program, not the subroutines. Numbers i n the BASIC program are stored in floating point notation and they require two words of storage. When the BASIC program jumps to a machine language subroutine, AC3 w i l l i n i t i a l l y contain a "pointer" to the address of the f i r s t variable and pointers to succeeding variables are stored sequentially. At the end of the subroutine, control i s returned to BASIC at the location following the pointers. Most subroutines, however, operate in fixed point format so i t becomes necessary to change the formats of numbers before they can be used or stored. This is accomplished by two subroutines within BASIC named FIX and FLOAT. In TRIUMF BASIC their addresses are 131 and 133 respectively. The fixed point number i s i n signed 32 bit two's complement form. Fig. 7 i s an example of a complete machine language sub-routine written for TRIUMF BASIC. It takes two input parameters and provides one output; the operations taking place between these data transfers are l e f t undefined. Although the three versions of BASIC have roughly the same computational power (except that EXTENDED BASIC performs matrix calculations) they differ vastly in other respects. CALL BASIC i s the simplest, and controls only the teletype which can be very slow since i t operates at 10 characters per second (CPS) . TRIUMF BASIC i s identical to CALL BASIC except that two new instructions - Read and Punch are implemented, which can input programs on the high speed paper.tape reader and output them on the high speed paper tape punch. This is considerably faster, since our reader operates at 110 CPS and our punch at 33 CPS. Thus programs may be interchanged much more conveniently. EXTENDED BASIC <i>s4 much more powerful than either CALL BASIC or TRIUMF - 25 -Fig. 7 - An Example of a Machine Language Subroutine SRTAB .LOC TANS +5 SRTAB: INTER subroutine entry table START: 1 START .RDX 2 22300000 .RDX 8 -1 STA 3, SAV 3 LDA 3, 0, 3 LDA 0, 0, 3 LDA 1,1 , 3 JSR @ 131 LDA 3, SAV 3 LDA 3, 1, 3 LDA 0, 0, 3 LDA 1, 1, 3 JSR @ 131 JSR @ 133 LDA 3, SAV 3 LDA 3, 2, 3 STA 0, 0, 3 STA 1, 1, 3 LDA 3, SAV 3 JMP 3, 3 specific to TRIUMF BASIC - subroutine c a l l number - subroutine starting address - variable control word - entry table terminator - save AC3 - get f i r s t variable - change i t to fixed point - f i r s t variable i s now i n AC0 and AC1 - get second variable - change i t to fixed point - main body of program leaves fixed point result in AC0 (most significant word) and in AC1 - change result to floating - store result in BASIC return NB: 3 variables passed SAV 3: INTER: JMP 3, 3 AC3 stored here terminator for TRIUMF/BASIC BASIC. I t can accommodate a l l s t a n d a r d p e r i p h e r a l d e v i c e s i n c l u d i n g tape d r i v e s and d i s c s and has a much more p o w e r f u l debugging, e d i t i n g and e r r o r -c h e c k i n g f a c i l i t y . However, i t i s time consuming to l o a d and o c c u p i e s much more space than the o t h e r two v e r s i o n s - i n f a c t i t would l e a v e v e r y l i t t l e memory a v a i l a b l e f o r programming. These f a c t o r s r e s u l t e d i n the s e l e c t i o n o f TRIUMF BASIC f o r a l l our programming needs. D) I n t e r f a c i n g S i n c e t h i s t o p i c i s f u l l y c o v e r e d i n "How to Use the Nova Computers" o n l y a v e r y b r i e f d e s c r i p t i o n w i l l be g i v e n . A l l d a t a t r a n s f e r s t a k e p l a c e a l o n g the s i x t e e n b i d i r e c t i o n a l d a t a l i n e s . ' T r a n s f e r s may be e i t h e r under program c o n t r o l o r v i a t h e d i r e c t memory a c c e s s (DMA) f e a t u r e ; we w i l l c o n -s i d e r o n l y the f o r m e r . A d e v i c e may c o n t a i n up to s i x r e g i s t e r s which may be s i m p l y a c c e s s e d by one word i n s t r u c t i o n s . Three of t h e s e may be l o a d e d from any a c c u m u l a t o r s u s i n g t h e d a t a out A,B,C (DOA, B, C) i n s t r u c t i o n s . S i m i l a r l y , t h e d a t a i n A,B,C, (DIA, B, C) i n s t r u c t i o n s can l o a d any t h r e e a c c u m u l a t o r s from t h e o t h e r t h r e e r e g i s t e r s i n the d e v i c e . A l t h o u g h t h e i n t e r f a c e was b u i l t w i t h i n t e r r u p t c a p a c i l i t y , t h i s c a p a b i l i t y i s not used when r u n n i n g under BASIC c o n t r o l and t h e r e f o r e w i l l not be d i s c u s s e d . N e v e r t h e l e s s , t h e computer can s t i l l sense the s t a t e of the i n t e r f a c e u s i n g t h e BUSY and DONE s i g n a l s . The purpose o f t h e s e s i g n a l s i s s e l f - e x p l a n a t o r y , and t h e computer can t e s t them u s i n g SKPDN, SKPDZ, SKPBN, SKPBZ: SKIP i f DONE i s NON-ZERO, SKIP i f DONE i s ZERO, SKIP i f BUSY i s NON-ZERO, SKIP i f BUSY i s ZERO. The computer can a l s o send out c o n t r o l p u l s e s named START, CLEAR and IOPLS by appending an S, C o r P to any i n p u t / o u t p u t (I/O) i n s t r u c t i o n . The d e v i c e to which any of t h e s e p u l s e s i s sent i s s e l e c t e d by a I/O code of 6 b i t s . Thus t h e r e a r e 64 d e v i c e s which can be independently addressed. - 28 -CHAPTER 5 THE INTERFACE A) I n t r o d u c t i o n The i n t e r f a c e p r o v i d e s t h e means of communication between the computer and e x t e r n a l a p p a r a t u s . In the c a s e of p e r i p h e r a l d e v i c e s which a r e s e p a r a t e e n t i t i e s and a r e c a p a b l e of s t a n d - a l o n e o p e r a t i o n , t h e term " i n t e r f a c e " might be a p p l i e d to o n l y t h a t circuitry„which c o n n e c t s t h e d e v i c e to t h e computer. However, the p e r i p h e r a l d e v i c e s b e i n g d e s c r i b e d h e r e were b u i l t c o n c u r r e n t l y w i t h and i n t h e same h o u s i n g as t h e a c t u a l i n t e r f a c i n g c i r c u i t r y and a r e not c a p a b l e of o p e r a t i o n w i t h o u t t h e computer. T h e r e f o r e the term " i n t e r f a c e " w i l l h e r e be used to i n c l u d e the p e r i p h e r a l d e v i c e s . S e c t i o n B) o f t h i s c h a p t e r w i l l d e s c r i b e i n d e t a i l t h e d e s i g n and f u n c t i o n i n g o f each d e v i c e w h i l e s e c t i o n C) w i l l d e a l w i t h t h e machine language s u b r o u t i n e s by which TRIUMF BASIC can communicate w i t h the d e v i c e s . In c o n s i d e r i n g t h e o v e r a l l d e s i g n of t h e i n t e r f a c e i t i s i m p o r t a n t to remember t h a t i t was n o t t a i l o r - m a d e f o r one p a r t i c u l a r experiment but r a t h e r t h a t i t was i n t e n d e d t o be a g e n e r a l purpose i n s t r u m e n t which would be c a p a b l e o f f u l f i l l i n g as y e t u n f o r e s e e n r e q u i r e m e n t s . B) D e s c r i p t i o n of P e r i p h e r a l D e v i c e s Schematic diagrams o f the v a r i o u s d e v i c e s can be found i n Appendix A, a l o n g w i t h b o a r d l a y o u t drawings. The purpose and o p e r a t i o n of each d e v i c e w i l l r i n o w be d e s c r i b e d , a l o n g w i t h a l l the c o n t r o l s i g n a l s which r e l a t e t o i t . The i n t e r r u p t c i r c u i t r y w i l l not be d i s c u s s e d , however, s i n c e i t i s not used under BASIC c o n t r o l . - 29 -i ) Analog Input: Device Code 44 The analog input i s the primary means of entering experimental data into the computer. Its function i s to accurately convert an analog (voltage) signal into a d i g i t a l , binary number which the computer can manipulate. The heart of this device i s the analog to d i g i t a l converter (ADC). I n i t i a l l y , a fast (4us) converter of 12 binary bits accuracy (±.025%) was to have been used, but this was decided against because of the high noise sensitivity i n -herent in such converters. Instead, an Analog Devices ADC-I converter was selected. It i s a dual-slope integrating type with 15 bit resolution and a maximum conversion time of 40 ms. This low speed is of no consequence in our applications, and the integrating nature of this type of converter offers several advantages. The f i r s t of these i s that a l l noise pulses tend to be averaged out i f they are considerably shorter than one half of the conversion time. Even more im-portant is the fact that the converter i s almost completely immune to 60 and 120 Hz noise, which i s often produced by ground loops and i s d i f f i c u l t to eliminate. This i s due to the selection of the integrating times to be equal to exactly one period of 60 Hz (16^3 ms) . It i s of course desirable to have more than one analog input, and this can be done without the expense of adding more analog-to-digital converters by using a multiplexer. The multiplexer can be thought of as a single pole, N-position switch which i s set by a d i g i t a l signal rather than mechanically. The Datel MM8 multiplexer used in this device allows 8 inputs to be connected to the converter. Its input voltage range, as well as that of the converter, i s ±10V. The input channel to be converted i s selected by using a DATOA AC,44 where the last 3 bits of the chosen accumulator contain the channel number, which can be from 0 to 7. A Start pulse appended to this instruction - 30 -(e.g. DATOAS) begins the conversion, sets the BUSY f l i p - f l o p (FF) and clears the DONE FF. The computer can determine whether the conversion has been completed by testing either BUSY or DONE with the appropriate skip i n -structions. After the computer determines that the conversion has been completed, i t loads the data into an accumulator with a DATIA AC,44 instruction. Bits 2 through 15 of the accumulator then contain the magnitude of the voltage in descending order of significance. Bit 1 w i l l be a 0 un-less an overload has occurred and bit 0 w i l l be 0 i f the voltage was positive and 1 i f i t was negative. The computer must then change the sign-magnitude format of the result into twosscomplementtf6rmm„ i i ) Analog Otuput: Device Code 42 This device allows the computer to transmit voltages which can be used to control the apparatus or to display data on a cathode ray tube (CRT) or on an X-Y platter. The X-Y pldtter control cir c u i t is connected to the analog output circuit but w i l l be discussed separately. It was decided to have 6 outputs, although there was no immediate need for that many. Three of these outputs (numbers 0 to 2) have 12 bit accuracy (±.025%) while the others (3 to 5) have only 8 bit accuracy (±.4%). Each output requires a separate digital-to-analog converter (DAC). The converters used were manufactured by Datel, model numbers DAC-V8B. and DAC-V12B. Both types have twos complement binary inputs and ±10V at 10 ma maximum outputs. To change the voltage of one of the outputs i t i s f i r s t necessary to select the channel number. This i s done with a DATOA AC,42 where the last three bits of the selected accumulator correspond to the desired channel number. Then the binary number which i s to be converted to a voltage is loaded by a DATOB AC,42. The binary number must be i n twos complement form with the second most significant b i t i n accumulator bit 5. The sign of the - 31 -number i s determined by bit 0 as usual. A start pulse i s not required and the output w i l l stabilize at i t s new level within the settling time of the converter, which is about 2us. i i i ) X-Y Plotter Control: Device Code 42 Mask Bit 5 Interfacing a plotter to the computer allows data to be permanently re-corded i n the form of graphs, a very convenient format for future reference and comparison. Plotters used with computers are usually of the incremental type which can be driven directly by di g i t a l pulse trains. These have the disadvantage of being expensive and incapable of operation without the computer. It was decided to modify our existing analog X-Y plotter, a Hewlett-Packard 7044A, so that i t could also be used in conjunction with the computer. It was necessary to add circuitry to the plotter to allow the computer to determine whether the plotter pen was moving or had reached i t s desired position, and also to raise and lower the pen. A diagram of these modifications i s included i n Appendix A. Opto-electric isolators were used to eliminate ground loops and to protect the circuitry should the X-Y plotter inputs be connected to some other apparatus which i s not at ground potential. The functioning of this device i s best understood by following a typical sequence of operation: raise pen, move to new X,Y location, lower pen. The f i r s t step would be to insure that the device was not currently busy, which could be done with a SKPBZ (SKIP i f BUSY is ZERO) instruction. Once this has been determined the pen can be raised by issuing a DATOCS AC,42 command with bit 15 of the accumulator being 0. The start pulse sets BUSY and clears DONE. A 100 ms timer then allows enough time for the pen to be raised before DONE is set and BUSY i s cleared. The computer determines whether a step is complete by sensing either BUSY or DONE with a skip instruction and then moves on to the next step. Let us now assume that AC0 contains the x value, AC1 contains Y, AC2 c o n t a i n s 0 and AC3 c o n t a i n s 1. A DATOA 2,42 s e l e c t s c h a n n e l 0 and the n a DATOB 0,42 o u t p u t s t h e new X v a l u e . Then c h a n n e l 1 i s s e l e c t e d by a DATOA 3,42 and t h e new Y v a l u e i s t r a n s m i t t e d by a DATOBS^ 1,42. The s t a r t p u l s e s e t s BUSY and c l e a r s DONE. The f i r s t DATOB i n s t r u c t i o n b e g i n s a 10 ms d e l a y b e f o r e which t h e d e v i c e cannot be DONE. T h i s a l l o w s f o r a d e l a y i n t h e res p o n s e time of t h e X-Y p l o t t e r c i r c u i t r y . DONE i s s e t and BUSY i s c l e a r e d e i t h e r a t t h e end o f t h e 10 ms d e l a y or a f t e r t h e X-Y p l o t t e r s e t t l e s a t i t s new p o s i t i o n , whichever comes l a s t . The computer senses t h i s by t e s t i n g e i t h e r BUSY o r DONE w i t h a s k i p and then r a i s e s t h e pen w i t h a DATOCS AC,42 where AC c o n t a i n s a 1 i n b i t 15. i v ) Spectrometer C o n t r o l l e r : D e v i c e Code 5 Mask B i t 6 T h i s d e v i c e a l l o w s t h e computer t o sc a n t h e s p e c t r o m e t e r u s i n g t h e sp e c t r o m e t e r d r i v e r u n i t p r e v i o u s l y d e s c r i b e d . I t a l s o d i s p l a y s t h e c u r r e n t s p e c t r o m e t e r l o c a t i o n ( i n wave d r i v e ) on t h e f r o n t p a n e l and t r a n s m i t s t h e l i m i t s w i t c h s t a t u s t o t h e computer. I n s t e a d o f r e q u i r i n g t h e computer t o i i s s u e each s t e p p i n g p u l s e i n d i v i d u -a l l y , t h i s d e v i c e can be lo a d e d w i t h t h e d e s i r e d number o f s t e p s (up t o ±16383) and t h e d e s i r e d s t e p p i n g speed and t h e n i t w i l l f u n c t i o n on i t s own u n t i l a l l the p u l s e s have been t r a n s m i t t e d . The c u r r e n t wave d r i v e d i s p l a y need o n l y be s e t once by t h e computer, a f t e r which i t a u t o m a t i c a l l y c o u n t s up or down as p u l s e s a r e sen t t o t h e s p e c t r o m e t e r . The s t e p p i n g speed was p u t under c o n t r o l of t h e computer so t h a t i t would be p o s s i b l e t o g r a d u a l l y a c c e l e r a t e and d e c e l e r a t e t h e motor, thus a l l o w i n g f o r much h i g h e r average s t e p p i n g speeds. T h i s p r o v i s i o n has not y e t been t a k e n advantage o f , and t h e motor i s t h e r e f o r e always stepped a t t h e same speed. The wave d r i v e d i s p l a y i s l o a d e d by t h e DATOB AC,5 i n s t r u c t i o n . The number to be d i s p l a y e d i s p r e s e n t i n t h e accumulator as 4 b i n a r y coded - 33 -decimal (BCD) d i g i t s , each of which i s four bits long. The largest wave drive which can be displayed i s 99.99 and the smallest i s 0. The stepping speed is set by a DATOC AC,5 where the accumulator contains a number N between 1 and 15. The stepping w i l l then be 1000/N per second, which cor-responds to 5/N revolutions per second. It has found that N=7 offers the highest reliable speed without requiring acceleration and deceleration. The desired number of steps i s loaded and transmission initiated with a DATOAS AC,5. The accumulator contains the number of steps in twos complement form, with a positive number resulting in an increase in wave drive. After a l l the pulses have been transmitted, BUSY i s cleared and DONE is set. However, this i s not the only way that the spectrometer can reach the DONE state. If either or both of the limit switches i s activated, pulse trans-mission i s terminated and the device i s switched,to the DONE state. There-fore once the computer determines that the device i s done, i t must determine whether a limit error has occurred. This is accomplished by a DATIA AC,5 instruction. If the accumulator contains a 0 there was no problem, while a 1 indicates that the lower limit was reached, a 2 shows that the upper limit was exceeded and a 3 would indicate that both limits had been triggered. This situation i s only possible i f a cable has been un-plugged or i f the driver has not been turned on. v) Programmable Interval Timer: Device Code 64 Mask Bit 5 This device allows for the accurate timing of a very wide range of i n -tervals, and has been useful i n many experiments. It operates by counting a given number of time increments (up to 32768) and the derivation of each of these increments may be chosen to be lys, 1ms or 1 second. Thus the range from lys to 9 hours can be covered without requiring any additional manipulations by the computer. - 34 -The increment size i s selected by a DATOA AC,64. If the accumulator contained a 1 then timing w i l l be i n ys, a 2 would select ms and 4 selects seconds. The number of increments to be timed can be loaded and timing begun with a DATOBS AC,64 instruction. The end of the timed interval i s then detected by the computer either by waiting for BUSY to be cleared or for DONE to be set. There i s also an external trigger input and a buffered DONE output so that the timer may be used by some external device. vi) Digital Input/Output: Device Code 34 This i s a very flexible device which has many applications in the control of external equipment. There are 6 TTL logic level (0 = .5v, 1 = 4.5v) outputs which can drive up to 10 TTL unit inputs. Four reed-relay outputs are available which can handle medium power applications, and a l l are isolated from ground. The two di g i t a l inputs are held at +4.5v by lKfi resistors and hence are very easy to activate by merely shorting them to ground. The d i g i t a l inputs can be examined by a DATIA AC,34 instruction. The accumulator willfthen contain a 0 i f both inputs were low, a 3 i f both were high and a 1 or a 2 i f either input 1 or 2 was high while the other was low. The status of a l l 4 reed relays must be set at the same time with a DATOB AC,42 instruction. A 1 in bit 15 closes relay 1 while bit 14 controls relay 2 and bits 13 and 12 control relays 4 and 8 respectively. The reason that the relays (and the d i g i t a l outputs) are numbered i n powers of 2 w i l l become apparent in Section C. The d i g i t a l outputs are set in a similar fashion, using a DATOA AC,42. In this case a 1 in bit 15 causes a 0 level to be produced on output 1 while a 0 i n that b it causes output 1 to be a logic 1 level. Output numbers 2 through 32 are controlled in an identical manner by bits 14 through 10. - 35 -v i i ) Paper Tape Reader: D e v i c e Code 12 Mask B i t 11 T h i s d e v i c e i s almost i n d i s p e n s i b l e i n any s i t u a t i o n where programs a r e f r e q u e n t l y i n t e r c h a n g e d , s i n c e i t l o a d s them o v e r t e n times as f a s t as the t e l e t y p e r e a d e r . I t can o f c o u r s e a l s o be used t o e n t e r d a t a i n t o t h e computer. The r e a d e r (and punch) were i n t e r f a c e d as p a r t of t h i s p r o j e c t r a t h e r t h a n b u y i n g t h e ready-made u n i t s from Data G e n e r a l f o r s t r i c t l y economic r e a s o n s . T h i s s t e p a l o n e reduced t h e system c o s t by a p p r o x i m a t e l y two thousand d o l l a r s . The h e a r t of t h i s d e v i c e i s a T a l l y R2050 paper tape r e a d e r module, which c o n t a i n s a l l t h e c i r c u i t r y n e c e s s a r y t o d r i v e i t s s t e p p i n g motor and to a m p l i f y the p h o t o - e l e c t r i c s i g n a l g e n e r a t e d by the t a p e i n t o an 8 b i t TTL l o g i c l e v e l " b y t e " . The a d d i t i o n a l c i r c u i t r y r e q u i r e d t o i n t e r f a c e t h e module to the computer i s v e r y s t r a i g h t f o r w a r d and p a r a l l e l s e x a c t l y t h e d e s i g n of t h e D a t a G e n e r a l r e a d e r . Thus the "homemade" paper tape r e a d e r i s i d e n t i c a l to t h e D a t a G e n e r a l model as f a r as t h e computer i s c o n c e r n e d and i t can be used i n any program c a l l i n g f o r a h i g h speed paper tape r e a d e r . The 8 b i t " b y t e " i s l o a d e d i n t o accumulator b i t s 8 t o 15 and the tape i s advanced by a DATIAS AC,12 i n s t r u c t i o n . A f t e r 10 ms DONE i s s e t and t h e next b y t e may be r e a d i n . v i i i ) Paper Tape Punch: D e v i c e Code 13 Mask B i t 13 The paper t a p e punch c i r c u i t was b u i l t around a s u r p l u s BRPE 11 punch. T h i s was o r i g i n a l l y s e t f o r 110 punches per second (PPS) but i t was found t h a t more r e l i a b l e o p e r a t i o n c o u l d be o b t a i n e d a t a lower speed o f 33 PPS. The r e d u c t i o n i n speed p r e s e n t e d no r e a l drawbacks s i n c e t h e punch i s u s u a l l y used to punch r e l a t i v e l y s h o r t s t r i n g s o f d a t a . I t i s c o n v e n i e n t to punch d a t a on a d e v i c e o t h e r t h a n t h e t e l e t y p e s i n c e t h e t e l e t y p e punch must be t u r n e d on and o f f m a n u a l l y . The punch circuitry was designed to emulate the standard Data General punch. The automatic turn-on circuit was included so that data could be punched without requiring the presence of an operator to turn the punch power on and off. A DATOAS AC,13 transmits one "byte" from accumulator bits 8 to 15 and begins operation of the punch. If the punch was not running when this instruction was issued, the motor starts and there i s a delay of 1 second. Then the f i r s t byte is punched and i f DATOAS pulses continue to be transmitted the punch w i l l operate at a rate of 33 punches per second. The motor stays on unti l 5 seconds after the last start pulse i s received, after which i t shuts off automatically. After this any new data to be punched w i l l again be delayed for 1 second to allow the punch to reach operating speed. C) Machine Language Subroutines The April 4, 1975 version of the machine language subroutines w i l l now be described. A l i s t i n g of this program i s given in Appendix B^. The sub-routine entry table has been previously described in Chapter 4, C); there-fore this discussion w i l l be limited to the main body of the subroutines. The aim of this section is to provide a working knowledge of the subroutines without describing them on an instruction by instruction basis. The sub-routines w i l l be described i n order of subroutine c a l l number and hence are not arranged in any logical order. When referring to CALL statements, the symbols A,B,C w i l l be used to represent parameters being passed from BASIC to the subroutines, while X,Y,Z w i l l be used for parameters being passed to BASIC. CALL 1 - Mask: This subroutine must always be used before any others when f i r s t be<-- 37 -ginning operation. Its main purpose i s to disable the interrupts on a l l devices which have interrupt circuitry. This is necessary since the BASIC program i s not equipped to interpret interrupts from any device except the teletype, and i f i t did receive any i t would halt. CALL 1 must be re-issued every time the computer is halted and then re-started, but i t need not be issued every time a BASIC program i s stopped or started. This subroutine also i n i t i a l l y selects the non-display mode, which i s further described along with subroutine 14. Furthermore i t opens a l l the reed relays and sets a l l the d i g i t a l outputs low. The purpose of a l l these actions i s to i n i t i a l i z e the interface. CALL 2, A, X, Y - Analog Input: This subroutine i s used to measure analog voltages which can be between ±10 volts. Parameter A i s a number between 0 and 7 which selects the input channel and X w i l l be the measured voltage multiplied by 1638.3. An overload condition is signalled by Y, which must be set to 0 before issuing the CALL instruction. If after the measurement Y has changed to 1 an overload has occurred. CALL 3, A, B - Interval Timer: This subroutine operates the Programmable Interval Timer. Variable A must be either 1, 2 or 4 depending on whether the time increments are to be us, ms or seconds, respectively, while B determines the number of increments, which may be up to 32,767. . After completing the timed interval, control i s returned to BASIC. The actions of the subroutines during the timed interval depend upon the display mode, as w i l l be further described under subroutine 14. CALL 4, A, X - Spectrometer Controller: Here A i s the number of steps to be taken, which can be up to ±16383. - 38 -This subroutine is preset to a stepping rate of about 143 steps per second, and after the desired number of steps have been taken control is returned to BASIC. Variable X then contains the status of the limit switches: 0 for normal operation, 1 for a lower limit error and 2 for an upper l i m i t . The only possible explanation for X=3, which indicates both an upper and a lower limit error, i s some system malfunction, such as forgetting to plug in a cable or to turn on the spectrometer driver. As in subroutine 3, the activities of the computer while the spectro-meter is being scanned depend on the display mode, the purpose of which is described in the section concerning subroutine 14. CALL 5, A, B - Incremental Display Parameters: This subroutine i s used to set the parameters which are used by the i n -cremental oscilloscope display subroutine. Further information con-cerning that subroutine can be found in sections 6 and 14. CGALL 6 - Incremental Display: This subroutine i s used to display data which is spaced in equal inter-vals along the x axis, whereas subroutine 26 should be used to display data having more general x,y locations. Before using the incremental display subroutine, the display parameters must be set by subroutine 5. At this point i t i s necessary to describe a section of the sub-routines which is called the Data Block. It consists of a block of 2000 words inside the body of the subroutines which can be used to store data. Various subroutines allow data to be transferred bidirectionally between BASIC and the block, to display data i n the block and to transfer data between the block and paper tape. The following subrou-tines make use of the Data Block: 6, 7, 8, 15, 16,.17, and 26. In the block data i s stored in 16 bit fixed point twos complement form, accommodating numbers as large as ±32,767. Since numbers in BASIC are stored as 32 b i t floating point words, i t only takes half as much space to store them in the Data Block. The main purpose of the block, however, i s to allow data to be displayed efficiently. A cathode ray tube display i s a high speed device and i t would be very wasteful i f every time a point were to be displayed i t s ordinate and abscissa had to be obtained from BASIC and converted to fixed point form. Instead, the data to be displayed i s stored in fixed point form in the block, and updated whenever necessary by BASIC. Locations in the block are numbered relative to the beginning of the block, not to their actual memory locations. Thus i f a given subroutine requires a parameter which gives a location in the block, the allowable values of that parameter would be the integers between 0 and 2000. Now we can consider the parameters A and B which are transferred by subroutine 5. The starting point in the block i s given by A while the number of consecutive points to be displayed i s given by B. Each time a Call 6 instruction is given, that section of the block w i l l be displayed once. The incremental display subroutine adjusts the voltage increment corresponding to the X difference between any two data points so that the width of the display w i l l always be constant, thus removing the need to re-adjust the x axis gain on the display each time the number of points is changed. A Tektronix 604 monitor i s used to display the data. Its x and y inputs are connected to analog outputs 0 and 1 respectively, via attenuators and level shifters which allow one to display a l l the data or to focus attention on a small section of i t . The blanking input of the monitor is connected to d i g i t a l output number 32. This turns the beam off when moving between points, thus giving a clear, uncluttered - 40 -display. It also turns the beam off when the display i s not being used, since i f the beam were l e f t on and was not moving i t might burn the phosphor screen. CALL 7, A, B - Store: This subroutine stores a number, B, from BASIC into location A of the data block. The number B must be within the range ±32,767, and i t w i l l be rounded off to the next lowest integer value. CALL 8, A, X - Get: This subroutine is the complement of number 7. It assigns the BASIC variable x the value of the datum at location A in the data block. CALL 9, A, X - Read Switch Register: This subroutine allows the switch register to be used as a means of controlling the program. Variable A i s a "mask" which i s anded with the switch register, and the resulting value i s assigned to variable x. For example, to examine a l l 16 bits of the switch register A could be set to -1, since in twos complement form, -1 i s represented by a l l bits being equal to 1. As a second example, to examine only bits 12, 13 and 14 of the switch register the mask used would be 14 (=21 + 2 2 + 2 3). CALL 10, A - Wave Drive Display: This subroutine i s used to load the starting wave drive into the front panel wave drive display. This display has a range of 0 to 99.99 and i s continuously updated as the spectrometer i s scanned. CALL 11, A - Pen Control: This subroutine i s used to control the pen of the x-y plotter. If A=l the pen is lowered and i f A=0 i t i s raised. There i s a .1 second delay - 41 -before control i s returned to BASIC to allow for the response time of the pen actuator. CALL 12, A, B - x-y Plotter Control: The x-y plotter can be used to plot graphs, data, etc. using this subroutine. The x and y co-ordinates of the desired points are speci-fied by A and B respectively, with a range between ±2047 producing output voltages between ±10v. The x and y outputs are obtained from channels 0 and 1 of the analog output. Control is returned to BASIC after the plotter has stabilized at the new location. CALL 13, A, B, C, X, Y - Integrating Analog Input: The signal voltage measured by the computer when i t is used to measure luminescence i s taken from the output of a lock in amplifier. Since the time spent at each point in the scan is of the order of 1 or 2 seconds, i t is necessary to somehow average the signal before i t i s digitized, or else we would be in effect throwing away information and decreasing the signal-to-noise ratio. This averaging is usually accomplished by an R-C f i l t e r , and in fact the lock in amplifier has a bu i l t - i n f i l t e r of variable time constant for this purpose. However, when gathering data in an incremental mode the R-C f i l t e r method i s not desirable since the weight which i s assigned i n the average i s an exponentially decreasing function of time. What would ideally be re-quired, however, i s an equal weight during the measurement interval and zero weight for any data before that interval. This averaging can be achieved by an integrator, which was added to the interface as an afterthought. At the beginning of each measurement interval the feedback capacitor of the integrator i s shorted, and then after the accurately timed measurement interval has ended, the output - 42 -of the integrator i s measured by the analog to di g i t a l converter. The parameters A and B in the CALL statement are used to set the time interval, as has already been described for subroutine 3, while C determines which of the analog inputs w i l l be used to measure the out-put of the integrator. The results of the analog to d i g i t a l conversion are assigned to x while Y indicates any overload conditions, as has been described for subroutine 2. CALL 14, A - Display Mode: As has been mentioned several times before, subroutine 6 i s not the only way way to run the incremental display subroutine. Since i t i s desirable to display the data continuously, and since the timer and the spectro-. meter controller operate without requiring any assistance from the computer once they are started, i t seemed logical to display data while these devices were performing their tasks. This subroutine determines whether or not data w i l l be displayed while either the timer or the spectrometer controller are BUSY. If A=l the display mode i s selected, while the non-display mode is chosen by having A=0. The status of the timer or controller i s continuously monitored while displaying data, and the maximum timing error produced by using the display mode w i l l be a few tens offmicroseconds. CALL 15, A, B - Punch Data on the Teletype: This subroutine can be used to punch data from a section of the Data Block onto paper tape, but i t has been made almost obsolete by sub-routine 17. It operates in the same way as number 17 except that the computer halts before and after the data has been punched, allowing the teletype punch to be turned on and off. After each halt, operation i s continued by simply pushing CONTINUE. - 43 -CALL 16, A, B - Read Data: The paper tapes of data made by either subroutine 15 or 17 can be loaded into the Data Block at some later time using this subroutine. The location in the Data Block where the f i r s t data word i s to be loaded i s specified by A while B sets the number of words to be loaded. Subroutines 15, 16 and 17 allow for the simple and efficient recording and reading of experimental data since each datum requires only two punch operations. CALL 17, A, B - Punch Data on High Speed Punch: Data i s usually punched using this subroutine, since in contrast to number 15 no operator intervention i s necessary. Variables A and B specify the starting location in the Data Block and the number of words to be punched. The punch i s turned on automatically, and 10 inches of blank leader and t r a i l e r tape are punched each time subroutine 17 i s used. The f i r s t punch operation after the punching of the leader tape i s to punch a l l 8 holes, after which the punching of data begins, starting with the lowest 8 bits of the f i r s t data word. When reading a data tape using subroutine 16, the operation i s synchronized by this f i r s t punched byte, which is a l l ones (hole = 1). CALL 18, A - Close Reed Relays: Selected reed relays can be closed using this subroutine. Variable A is equal to the sum of the channel numbers which are to be closed. Thus to close a l l reed relays A = 2° + 2 1 + 2 2 + 2 3 = 15. CALL 19, A - Open Reed Relays: Operation i s identical to number 18 but i n this case the selected - 44 -relays are opened. CALL 20, A - Digital Outputs High: Operation is similar to numbers 18 and 19 but here the result i s to set the selected d i g i t a l outputs high (4.5 volts). CALL 21, A - Digital Outputs Low: See above. CALL 22, A, B - Analog Output: Any one of the six analog outputs can be set to a voltage between ±10v using this subroutine. The maximum voltages correspond to B = ±2047. The channel number is selected by A. Channels 0, 1 and 2 are high resolution (12 bits) while channels 3, 4 and 5 are low resolution (8 bits) . CALL 23, X - Digital Inputs: The d i g i t a l inputs are checked by this subroutine. Variable X w i l l equal the sum of the channel numbers which are high (4.5 volts). Both inputs are normally held high by lKft resistors. CALL 24, A - Intensified Point: When using either the incremental cathode ray tube (CRT) display (see subroutines 6 and 14) or the x-y CRT display (subroutine 26), any single point in the display may be intensified by the use of this sub-routine. This f a c i l i t y acts as a display cursor by which the computer can indicate the location of a particular data point to the user, and this has proved to be very .useful when signal averaging spectra. After this subroutine has been called, the A'th point in either display mode w i l l be intensified. If A l i e s outside the range of the display, no point w i l l be intensified. - 45 -CALL 25, A, B, C - x-y Display Parameters: The parameters of the x-y CRT display are set by this subroutine. Thus i t bears the same relation to subroutine 26 that subroutine 5 does to 6. The data to be displayed are stored in the Data Block in two sections containing an equal number of words. One of these sections specifies the x location of each point to be displayed while the corresponding word i n the other section gives the y location. The location within the data block of the f i r s t word of the X block and the Y block are specified by variables A and B, respectively. The number of points to be displayed i s given by C. CALL 26, x-y Display: This subroutine produces one x-y display on the CRT each time i t i s called. The parameters of the display must be previously given by subroutine 25. The maximum values of the x and y variables i s ±2047, giving ±10v outputs. Subroutine 26 i s the only way to obtain an x-y display since there i s no provision for a display mode as described under subroutine 14. The connectionsbbetween the interface and the cathode ray display unit are as described for subroutine 6. - 46 -CHAPTER 6 SIGNAL AVERAGING PROGRAM A. Introduction: Of a l l the BASIC programs which have been written for this system, the signal averaging program i s both the most complex and by far the most fre-quently used, and hence i t w i l l be described here in order to demonstrate the capabilities of the system. A l i s t i n g of the May 5, 1975 signal averaging program, which is the most complete version at the present time, can be found in Appendix C^. Unlike the previous versions of this program, the one of May 5 has been written in subroutine form so that a string of operations may be executed by simply adding a short program which calls the desired subroutines. In this way a number of spectra having different scan parameters, laser power, etc. can be taken and stored without requiring any operator supervision. B. Program Operation The operation of the signal averaging program i s described here, with-out any detailed reference to the internal structure of the program. A more fundamental understanding can only be obtained by a study of the program l i s t i n g contained in Appendix C_. In the following discussion a l l entries and outputs which appear on the teletype w i l l be capitalized. Also, a carriage return i s implicit after every instruction and every number which is passed to the program. Before starting the program, the switch register should be set to 0 . Operation may then be initiated by typing RUN, after which the computer types ORDER # = ? . At this point the operator enters the order i n which the - 47 -s p e c t r o m e t e r g r a t i n g i s to be used. T h i s parameter i s needed f o r c o n v e r s i o n s between wave d r i v e and wavelength on energy. Then the computer t y p e s W.D.=? a f t e r w hich the o p e r a t o r e n t e r s t h e c u r r e n t s p e c t r o m e t e r wave d r i v e , w h i c h w i l l then appear on the wave d r i v e d i s p l a y . At t h i s p o i n t a $ i s t y p e d , which i n f o r m s the u s e r t h a t t h e system i s i n the i d l e mode. , There a r e two o t h e r modes: . a v e r a g i n g and pause; t h e l a t t e r i d e n t i f i e s i t s e l f by t y p i n g a #. When the program i s not a v e r a g i n g i t i s u s u a l l y i n the i d l e mode, a l t h o u g h i t can a l s o e n t e r the pause mode i f s w i t c h r e g i s t e r b i t 0 i s r a i s e d . The pause mode can a l s o be e n t e r e d i n t h e same way w h i l e the program i s i n t h e s i g n a l a v e r a g i n g mode. The program i s c o n t r o l l e d v i a t h e s w i t c h r e g i s t e r i n a l l t h r e e modes, a l t h o u g h t h e f u n c t i o n of any g i v e n b i t i s not n e c e s s a r i l y t h e same i n each mode. T a b l e 1 g i v e s a summary o f the f u n c t i o n s o f the s w i t c h r e g i s t e r i n each mode, which w i l l now be d e s c r i b e d i n d e t a i l . i ) In the I d l e Mode: BIT 0 - An e l e c t r o m e c h a n i c a l s h u t t e r which can i n t e r r u p t the l a s e r beam i s conne c t e d to d i g i t a l o u t p u t 1. The s h u t t e r i s c l o s e d when b i t 0 i s low and opened when i t i s h i g h . BIT 5 - R a i s i n g t h i s b i t c a l l s the r e c a l i b r a t i o n s u b r o u t i n e , which can be used to change the c a l i b r a t i o n parameters i f i t i s found t h a t the spe c t r o m e t e r has d r i f t e d . The c a l i b r a t i o n parameters C4 through C8 are used t o c o n v e r t wave d r i v e (WD) to wavelength t h r o u g h t h e p o l y -n o m i a l : A (microns) = C4 + C5*WD + C6*WD2 + C7*WD3 + C8*WD - 48 -TABLE 1 Functions of the Switch Register in the Signal Averaging Program Switch Register Bit Idle Mode Averaging Mode Pause Mode 0 1 4 5 6 7 8 9 10 11 12 13 14 15 Controls Shutter Controls Shutter Transfer to Pause Mode Transfer to Pause Mode Stay in Pause Mode Print Intensified Point Parameters Stop Now Stop at End of Scan • Recallibration Print the Number of Completed Scans Set Laser Power Begin Again Set Laser Power Convert W.D. to E and X Display Newest Data-Convert W.D. to E and X Convert E to W.Di and X Convert E to W.D. and X Convert X to W.D. and E Convert X to W.D. and E Plot vs E Plot vs W.D. Punch Data Read Data Transfer to Averaging Mode Move Spectrometer Move Spectrometer - 49 -The recalibration subroutine adjusts only parameters C4 and C5. Upon entering the subroutine, CALIBRATION REVISION i s typed, followed by GIVE WAVELENGTH, NEW W.D. AND ORDER #. The operator then enters the wavelength of the line which is being used to recalibrate, the wave drive at which the line i s now found and the order number of the l i n e . The subprogram then changes the two calibration parameters and types them. BIT 6 - The argon ion laser has been modified so that i t s intensity can be controlled by a 10 turn potentiometer which is connected to a stepping motor. The stepping motor control circuit i s driven by pulses from d i g i t a l output 16, with the direction of rotation being determined by the pulse length. When this subprogram is used for the f i r s t time i t types GIVE CURRENT LASER DIAL READING X.XX = ? at which point the current laser power is entered. Then i t types P = ? and the user enters the desired laser power, after which the laser power is adjusted to this new value. If the power which was entered is outside the range, P OUTSIDE RANGE is typed, after which the desired power i s again re-quested. BIT 7 - This calls a subroutine which w i l l convert wave drive into wave-length in microns and energy in meV. BIT 8 - This subroutine converts energy in meV into wave drive and wave-length in microns. BIT 9 - This is similar to the last subroutine but here wavelength in microns is converted to wave drive and energy in meV. - 50 -BIT 10 - T h i s s u b r o u t i n e w i l l p l o t d a t a i n an i n t e n s i t y v s energy f o r m a t . The d a t a to be p l o t t e d can be produced e i t h e r by t a k i n g a spectrum w i t h the s i g n a l a v e r a g i n g s u b r o u t i n e o r by r e a d i n g i n o l d d a t a u s i n g the h i g h speed paper tape s u b r o u t i n e ( B i t 13). The s u b r o u t i n e f i r s t t y p e s out t h e h i g h e s t and l o w e s t e n e r g i e s of t h e d a t a to be p l o t t e d and t h e n types ENTER LOWER AND UPPER E LIMITS AND INCREMENT FOR X AXIS. Then the u s e r e n t e r s two l i m i t s f o r the energy a x i s which must encompass a l l the d a t a , a l o n g w i t h t h e increment i n w h i c h the x a x i s i s t o be marked. A f t e r t h i s t h e p l o t t e r draws a box which w i l l en-c l o s e t h e p l o t , and marks the x a x i s w i t h the a p p r o p r i a t e energy i n t e r v a l s . When b i t 10 i s lowered t h e d a t a w i l l be p l o t t e d . E r r o r b a r s w i l l be drawn i f t h e r e a r e s t a n d a r d d e v i a t i o n s ; t h i s i s f u r t h e r e x p l a i n e d i n t h e s e c t i o n c o n c e r n i n g t h e s i g n a l a v e r a g i n g mode. The d a t a i s always n o r m a l i z e d so t h a t the peak to peak a m p l i t u d e o f eve r y p l o t i s the same. I n o r d e r t o a l l o w t h e comparison o f two d i f f e r e n t p l o t s , the peak t o peak v o l t a g e c o r r e s p o n d i n g t o each p l o t i s a l s o t y p e d o u t . Thus i n t e n s i t y comparisons between p l o t s can be made so l o n g as the a m p l i f i e r g a i n and i n t e g r a t i o n time f o r each p l o t i s known. - T h i s s u b r o u t i n e i s s i m i l a r t o the p r e c e d i n g one exc e p t t h a t i t plo'ts a graph o f i n t e n s i t y v e r s u s wave d r i v e . I n t h i s case b o t h axes a r e n o r m a l i z e d and the u s e r does not need t o s u p p l y any p a r a -meters f o r t h e p l o t . As above, t h e peak t o peak v o l t a g e i s p r i n t e d i n o r d e r t o a l l o w i n t e n s i t y comparisons between p l o t s . - Data i n the b l o c k can be punched out on t h e h i g h speed paper t a p e punch w i t h t h i s s u b r o u t i n e . O p e r a t i o n b e g i n s i m m e d i a t e l y a f t e r r a i s i n g b i t 12, and s t a n d a r d d e v i a t i o n s a r e punched a f t e r the d a t a i f - 51 -they are present. Only that section of the block which i s known to contain data i s punched, and i f there i s no data, a message to that effect i s typed. Also, a message informing the user of whether standard deviations were punched i s printed by the teletype. BIT 13 - Data tapes produced by the previous subroutine may be re-entered into the computer with this routine. The computer requests the following information about the tape: starting WD, increment, number of increments, number of averages completed and order number. The meaning of these terms i s explained i n the section dealing with the signal averaging mode. The operator must then indicate whether the tape to be read contains standard deviations. After this the tape, which should be mounted in the reader before this time, i s read into the Data Block. The program treats data which has been entered in this way as indistinguishable from data which has been obtained by taking a spectrum. BIT 14 - Raising bit 14 transfers control to the signal averaging mode. BIT 15 - This subroutine i s used to change the spectrometer location. It types WHERE TO? after which the operator enters the designed location in wave drive units. i i ) Signal Averaging Mode It i s in this mode that luminescence data may be gathered and averaged. Upon f i r s t entering this mode the computer types START, INC., # OF INC'S, # OF AVR'S, T IN MS. The user then supplies the desired starting wave drive of the scan (scans are always i n the direction of increasing wave drive), the size of the wave drive increment between data points, the number of - 52 -increments to be taken i n one scan, the number of scans which are to be averaged together and the integration time.for each datum. I f an error i s made while entering t h i s s s t r i n g of parameters, supplying a negative integra-t i o n time w i l l cause the computer to ask for new values. After this the computer moves the spectrometer to the sta r t i n g position and begins a scan. The starting position i s always approached from the low wavelength side to eliminate any possible play i n the spectrometer gears. Data i s continuously averaged and displayed on the cathode ray tube. The point i n the display which i s currently being updated i s i n t e n s i f i e d i n order to make i t easier to locate. The laser beam i s interrupted by the shutter while the spectrometer rewinds i n order to reduce helium b o i l - o f f . The beam i s also turned off for the f i r s t data point so that the background intensity can be determined. If the number of data points i s less than or equal to 250, the standard deviation of each data point i s recorded so as to give an indication of the signal-to-noise r a t i o of the spectrum. If I i s the intensity and N i s the number of averages, the standard deviation i s calculated using the following equation: Standard Deviation = This equation i s not meaningful for small N, and standard deviations, are only plotted or punched for N > 3. The signal averaging mode w i l l continue to c o l l e c t data u n t i l the specified number of averages have been taken unless i t s actions are modified by use of the switch register or a spectrometer l i m i t error occurs. In the event of a l i m i t error the computer types a message iden t i f y i n g the type of l i m i t and then halts the program. The switch register can be used to modify - 53 -the o p e r a t i o n o f t h e s i g n a l a v e r a g i n g mode i n t h e f o l l o w i n g ways: BIT 1 - While t h i s b i t i s r a i s e d t h e computer w i l l s t a y i n t h e pause mode, th e f u n c t i o n o f which w i l l be d e s c r i b e d l a t e r . BIT 3 - T h i s w i l l cause t e r m i n a t i o n o f t h e s i g n a l a v e r a g i n g mode and e n t r y i n t o i d l e mode. The computer t y p e s TERMINATED AT (N) SCANS and t h e n i n f o r m s t h e u s e r as t o whether s t a n d a r d d e v i a t i o n s have been t a k e n . BIT 4 - T h i s a l s o t e r m i n a t e s s i g n a l a v e r a g i n g , but i n t h i s case the a c t i o n i s n o t immediate but o c c u r s upon t h e c o m p l e t i o n o f t h e c u r r e n t s c a n . I n t h i s case the word TERMINATED i n the p r i n t - o u t i s r e p l a c e d by STOPPED SHORT i n o r d e r t h a t t h e mode of t e r m i n a t i o n be r e c o r d e d . BIT 5 - T h i s b i t causes the number o f completed averages t o be typed o u t . BIT 6 - The c u r r e n t s i g n a l a v e r a g i n g r u n i s stopped by r a i s i n g t h i s s w i t c h , and t h e d a t a i s l o s t . The s i g n a l a v e r a g i n g program th e n b e g i n s a g a i n , u s i n g the parameters o f the l a s t r u n . Thus i f f o r some r e a s o n t h e d a t a i n a r u n becomes u s e l e s s (e.g. n o i s e or i n t e r r u p t i o n o f the l a s e r beam) i t i s p o s s i b l e t o b e g i n a g a i n w i t h o u t h a v i n g t o r e - e n t e r t h e p a r a m e t e r s . BIT 7 - While t h i s s w i t c h i s r a i s e d t h e cathode r a y tube d i s p l a y shows t h e l a t e s t d a t a which has been c o l l e c t e d r a t h e r than t h e averaged d a t a . T h i s p r o v i s i o n a l l o w s one to i n s u r e t h a t the s i g n a l i s s t i l l p r e s e n t and t h a t i t has the same a m p l i t u d e as a t t h e s t a r t o f t h e a v e r a g e . i i i ) Pause Mode The pause mode may be e n t e r e d from e i t h e r t h e i d l e or t h e s i g n a l - 54 -a v e r a g i n g modes. I t i s used most f r e q u e n t l y w i t h the s i g n a l a v e r a g i n g mode, s i n c e t h e o n l y p o i n t i n e n t e r i n g i t from t h e i d l e mode would be t o use t h e d i s p l a y s c a n n i n g mode, which i s d e s c r i b e d l a t e r under t h e f u n c t i o n o f b i t 2 of the s w i t c h r e g i s t e r . The pause mode has many a p p l i c a t i o n s w h i l e s i g n a l a v e r a g i n g , t h e most important of which a r e r e - a l i g n i n g t h e o p t i c s and examining t h e d a t a which i s b e i n g g a t h e r e d . These uses w i l l become apparent i n the f o l l o w i n g d i s c u s s i o n o f the uses o f the s w i t c h r e g i s t e r i n the i d l e mode. BIT 2 - Wh i l e i n the i d l e mode the d a t a i s c o n t i n u o u s l y d i s p l a y e d on t h e cathode r a y tube. I n t h i s mode, however, t h e l o c a t i o n o f the i n t e n s i f i e d p o i n t does not c o r r e s p o n d t o t h e s p e c t r o m e t e r l o c a t i o n but r a t h e r t o the v o l t a g e p r e s e n t a t a n a l o g i n p u t number one. T h i s i n p u t i s connected t o one of t h e two t e n t u r n p o t e n t i o m e t e r s on t h e i n t e r f a c e f r o n t p a n e l , and thus the i n t e n s i f i e d p o i n t may be scanned a c r o s s t h e d a t a by a d j u s t i n g t h i s c o n t r o l . When s w i t c h 2 i s r a i s e d , t h e computer t y p e s the wave d r i v e , wave-l e n g t h , energy and v o l t a g e c o r r e s p o n d i n g to t h e i n t e n s i f i e d d a t a p o i n t . Thus a spectrum may be a n a l y z e d w h i l e i t i s s t i l l b e i n g averaged. Switches 6 thr o u g h 9 have t h e same f u n c t i o n s as under t h e i d l e mode. BIXJ 15 - As i n the i d l e mode, t h i s s u b r o u t i n e a l l o w s t h e s p e c t r o m e t e r wave d r i v e t o be changed by answering a WHERE TO? q u e r r y . However i f the program i s i n the i d l e mode and i t has come from t h e s i g n a l a v e r -a g i n g mode, t h e n upon r e t u r n i n g t o the s i g n a l a v e r a g i n g mode t h e s p e c t r o m e t e r w i l l f i r s t be r e t u r n e d t o i t s o r i g i n a l wave d r i v e . Thus t h e s p e c t r o m e t e r l o c a t i o n can be changed w h i l e i n t h e i d l e mode, f o r - 55 -example to a peak i n the luminescence i n order to allow for easy optical alignment, and the operator need not worry about returning the spectrometer to i t s original position before returning to the signal averaging mode. The functions of Switch Register bits 0, 6, 7, 8 and 9 are identical in the idle mode and the pause mode. FIGURE 8 Signal Averaging Apparatus Teletype JL. NOVA 2 Minicomputer X - Y P l o t t e r Cathode Ray Tube Display Control Unit Paper Tape Reader Paper Tape Punch I N T E R F A C E Integrator Lock ' In Amplifier Chopper He Dewar Sample" C o l l e c t i o n / Optics -<atz. CD Reference Signal XT Argon Laser Head Preamplifier Detector Argon Laser Power Supply Spectrometer Laser Power Controler - 5§ -CHAPTER 7 An Example of Work Done With T h i s System A p r o o f o f a paper t o be p u b l i s h e d i n S o l i d S t a t e Communications has been i n c l u d e d h e r e t o i n d i c a t e t h e c a p a b i l i t i e s of t h i s system. I n t h i s paper a new l u m i n e s c e n t l i n e i s d e s c r i b e d which o c c u r s i n doped s i l i c o n a t v e r y low e x c i t a t i o n l e v e l s . A t t h e h i g h e r e x c i t a t i o n l e v e l s r e q u i r e d by t h e p r e v i o u s a p p a r a t u s t h i s l u m i n e s c e n c e i s t o t a l l y h i d d e n by t h e much more i n t e n s e e l e c t r o n h o l e drop l u m i n e s c e n c e . Thus t h e d i s c o v e r y o f t h i s new l u m i n e s c e n t was o n l y p o s s i b l e w i t h the. system d e s c r i b e d h e r e . A n o t h e r p u b l i c a t i o n e n t i t l e d "Luminescence Due to I r o n C e n t r e s i n L i t h i u m N i o b a t e " and a c c e p t e d f o r p u b l i c a t i o n i n the J o u r n a l o f A p p l i e d P h y s i c s was a l s o the r e s u l t of work done w i t h the new a p p a r a t u s . Many more experiments a r e now e i t h e r e n v i s i o n e d o r a l r e a d y under way. 57 -Solid State Communications, Pergamon Press. Printed in Great Britain PHOTOLUMINESCENT DETECTION OF THE IMPURITY BAND IN SifP) J.A. Rostworowski, M.L.W. Thewalt and R.R. Parsons The Department of Physics, University of British Columbia, Vancouver, B.C., Canada V6T 1W5 (Received 25 July 197'5 by R. Barrie) A new photoluminescent band in the spectra of phosphorus-doped silicon at concentrations near the Mott transition is reported. It is attributed to the recombination of an electron in the impurity band with a free hole. A BASIC PROBLEM in solid state physics is the understanding of the onset of derealization of elec-trons of an array of atoms as the lattice parameter is allowed to decrease. Mott 1 first suggested that the transition from insulating to conducting behaviour for the array would change discontinuously with decreas-ing interatomic spacing; other workers, however, have' predicted a gradual change (see Alexander and Holcomb2 for a review of the subject). It was recog-nized many years ago that shallow impurities in semi-conductors could provide an ideal system to study this phenomenon if it were not for the randomness of the impurity distribution.2 The substitutional introduction of a phosphorus atom into a silicon crystal results in an electron loosely bound to the impurity site at low tempera-ture.3 With increasing impurity concentration the wave-functions of the impurity electrons overlap and one obtains a continuum density of states which is referred to as the "impurity band" despite the non-periodic distribution of impurities.4 For impurity concentration nD below nc = 3.0 x IO 1 8 phosphorus atoms cm-3, the electrons are localized near single impurities or near small clusters of impurities.2 Above ncb ~ 2.0 x 1019 phosphorus atoms cm"3 the Fermi level is into the conduction band of the silicon crystal and the electrons at the Fermi level acquire the properties of the conduction band.2 In the inter-mediate concentration range nc < nD < ncb the elec-trons are delocalized in the impurity band. Despite the wide variety of experimental techniques used (electrical conductivity, Hall coefficient, Hall mo-bility, magnetoresistance, magnetic susceptibility, NMR properties and ESR properties)the impurity band is not well understood for concentrations near nc. In particular very limited experimental inform-ation is available concerning the width of the impur-ity band for the above concentrations. The main pur-pose of the present letter is to report the use of photoluminescence to study the impurity band in phosphorus-doped silicon. Photoluminescent studies of germanium containing shallow impurities have been reported for a very large range of impurity con-centrations by Benoit a la Guillaume and Cemogora.5 Their work was mainly concerned with the density of states tail which is expected at high impurity concen-trations nD S ncb. In this report we are mainly inter-ested in impurity concentrations in a small range 1.8 x 10 , 8cm - 3 < nD < 3.9 x 10,8cm~3 near the critical concentration nc = 3.0 x 1018 cm - 3. Dean et al.e have reported photoluminescence in silicon samples containing impurity concentrations Hp = 8 x 1016 cm - 3 which is well below nc. Martin and Sauer7 have studied the photoluminescence of silicon doped with shallow impurities for impurity concen-trations up to about 1018cmf3. However, they did not report the new luminescent peaks presented in this paper. This was probably due to their use of the S-l photomultiplier which has very limited detectivity at the photon energies of the new peaks described below. The source of samples, the sample preparation /(/of" DviCfO-^lmcd fay PHOTOLUMINESCENT DETECTION LN Si(P) Vol. 17, No. Si(P) T-4.2°K 11 -l n =vi xio cm TO IB TO EHD , TA NP TA IB EHD EHD ID i AA *° cnw CM k i 1'i i I I i1' I i * .1? . . I .1 • . • I . J.K> 7 i . eV photon energy FIG. 1. Photoluminescent spectrum of silicon con-taining 1.8 x 1018 phosphorus atoms cm - 3 at T — 4.2 K. The dots correspond to an excitation intensity of 500 W/cm2; flags correspond to 5 W/cm2. The height of the flags corresponds to standard deviations from 10 scans. The spectra are normalized and the vertical scale is linear. and the optical excitation method have been already described.8 However, for the current studies a 58 cm f/3.5 monochromator with a Ge detector cooled to 77° K was constructed. In addition an on-line Nova-2 computer was set up for signal averaging and data analysis.9 The samples were immersed in liquid helium during the experiment. In the earlier work by one of us on heavily doped silicon our instrumentation was unable to achieve useful signal-to-noise ratios for excitation intensities less than about 1500 W/cm2. With our present set-up we are able to work with excitation intensities as low as 1.5 x 10"2W/cm1. The photoluminescent spectra for silicon con-taining 1.8 x 1018 phosphorus/cm3 are shown in Fig. 1. The two curves correspond to two different levels of excitation power. The peaks labelled E H D T O , E H D T A and E H D N P are the peaks previously attri-buted to the electron—hole droplet,8 and at high excitation intensity the photoluminescent spectrum is dominated by them. At low excitation intensity, however, the EHD-peaks are drastically reduced in intensity and new peaks labelled IB T O , IB T A and IB N P in Fig. 1 begin to dominate. Si(P) # 1 a * : \ . • / V / 1 . . . . 1 . • . V",,s ••" '•. xoo lo» * J.IO t.w . • .—. .1 • — i . . . . .. i—u_,—IL^. I.OO 1«» | t l O V l « V photon energy FIG. 2..Concentration dependence of the photolumi-nescence of phosphorus-doped silicon. For compari-son of the spectra, the high energy sides of the E H D T O bands have been aligned. The flags are the standard deviations obtained from 20 scans. The vertical scale is linear, (a) 1.8 x IO1 8 atom/cm3, 4.2° K. (b) 3.0 x 1018 a toms /cm 3 , 4 . 2 °K . (c) 3.9 X 1018 a toms/cm 3 , 1 .4 ° K. (Clearer resolution of the EHD and IB peaks is obtained at this temperature.) We attribute the 1 B T ° , IB T A and IB N P peaks to recombination of an electron in the impurity band with a free hole. The superscripts TO and TA refer to transverse optical and transverse acoustical phonons which assist the optical transition in order to con-serve momenlum;6 NP refers to the no phonon re-combination in which excess momentum is taken up by the impurity.6 The energy position of the lumin-escent peaks associated with the radiative capture of a free hole with an electron bound in an isolated phosphorus impurity is 10 hv ^"gap ^"imp ^"phonon -Here ZTgap = 1.1698 eV is the band gap energy at 4.2° K, and ES imp 0.0453 eV is the ionization energy of phosphorus in silicon. The energy ^phonon is the energy of the phonon assisting the recombi-nation.6 The two vertical arrows labelled I T O and IN P in Fig. 1 locate the photon energies given by the above expression with TO-phonon assisted transitions (ZTTO = 0.0578 eV) and no-phonon transitions. The' Wv \CJS0 Vol. 17, No. PHOTOLUMINESCENT DETECTION IN SifP) . IB peaks are observed at approximately 0.025 eV be-low the positions predicted for isolated impurities. This shift to lower energies at nD = 1.8.x 1018cm~3 may be explained by the conduction and valence band developing tails 5 , 1 1 into the forbidden gap or by a lowering of the ground state energy of the im-purity through overlap with others. Figure 2 shows the three low excitation spectra for silicon containing impurity concentrations nD = 1.8 x 10 1 8 ,n D =3.0x 1 0 l 8 , a n d « o = 3.9 x IO1 8 ' cm - 3 . A shift to higher energies and a slight broaden-ing of the impurity band with increasing concen-tration are observed. These observations are in quali-tative agreement with the calculations of impurity bands by Matsubara et al.16 and Gaspard et al.*7 Berggren14 has estimated the width of the lower Hubbard b a n d 1 4 - 1 7 using Hubbard's tight binding Hamiltonian and neglecting impurity randomness to be A = — JBi 4 " i m p a at the Mott transition. For Si(P) this expression gives 0.036 eV in approximate agreement with the band widths of the IB peaks in Fig. 2 . We are continuing this work as a function of temperature and over a wider impurity range. We hope to understand more clearly the band tails, and the density of states of the impurity band and the relationship of those impurity peaks to our earlier work8 on the electron hole droplet. Acknowledgements — We thank Dr. H. Gush for the use of his Ge detector. We greatly appreciate the many discussions of this work with Professor R. Barrie, Dr. B. Bergersen and Dr. P. Jena. These studies are supported by the National Research Council of Canada (Grant No. 6714). , i REFERENCES 1. MOTT N'.F.,Ca/i 7. Pftys. 34, 1356(1956). 2. ALEXANDER M.N. & HOLCOMB D.F., Rev. Mod. Phys. 40, 815 (1968). 3. KOHN W., Solid State Physics (Edited by SE1TZ F. & TURNBULL D) , Vol. 5, p. 257. Academic Press, NY (1957). 4. BALTENSBERGERW.,PM.M7#. 44, 1355 (1953). 5. ' BENOIT A LA GUILLAUME C. & CERNOGORAJ., P/zys. Status Solidi 35, 599 (1969). 6. DEAN P.J., HAYNES J.R. & FLOOD W.F., Phys. Rev. 161, 711 (1967). 7. MARTIN R.W. & SAUER R., Phys. Status Solidi (b) 62,443 (1974). 8. HALLIWELL R.E. & PARSONS R.R., Can. J. Phys. 52, 1336 (1974). 9. THEWALTM.L.W.,M.Sc. Thesis, The University of B.C. (in preparation). 10. COLLET J., BATTAU J. & BROUSSEAU M.,Solid State Commun. 16,775 (1975). 11. LIFSUITZIM., Adv. Phys. 13,483(1964). 12. MATSUBARA T. & TOYOSAWA Y., Progr. Theor. Phys. 26,739 (1961). 13. GASPARD J.P. & CYROT-LACKMANN F.,J. Phys. C6,3077 (1973). 14. BERGGREN K.-F.,Pliil. Mag. 27, 1027 (1973). 15. HUBBARD J.,Proc. R. Soc. A276, 238 (1963);Proc. R. Soc. A281,401 (1964). 16. MOTT N.F. & DAVIES E.A., Electronic Processes in Non-Crystalline Materials. Clarendon Press, Oxford (1971). 17. MOTT N.F., Metal Insulator Transitions. Taylor and Francis, London (1974). - 60 -BIBLIOGRAPHY Brinkman, W.F. and Rice, T.M. 1973. Phys. Rev. B, 1508 How to Use the Nova Computers, Data Genreal Corporation (1970) Introduction to Programming the Nova Computers, Data General Corpor-ation (1972) An Introduction to Basic, Data General Corporation (1973) Sommers, H.S., J r . , Semiconductors and Semimetals, edited by R.K. Willardson and A.C. Beer, Academic Press, 5_, 435 (1970) - 61 -APPENDIX A SCHEMATIC DIAGRAMS AND LAYOUTS A l l the schematic diagrams and printed circuit board layouts of the interface are included here. Some of the interconnections have been made by use of the double sided printed circuit boards, but the vast majority of the wiring has been done by point-to-point wire-wrapping between the integrated circuit sockets. An-idea of the complexity of the interface can be obtained by noting that i t contains 8 hybrid modules and over 170 integrated circuits. The 50 lines forming the input/output bus of the computer plug into an edge connector on the interface motherboard. An identical connector on the other end of the motherboard can be connected to either a terminator or to a cable leading to additional input/output equipment. The mother-board holds seven 100 pin printed circuit edge connectors which hold the actual interface boards. To date only four boards have been constructed so there are s t i l l three slots available for additional interfacing. The motherboard also supplies the interface boards with ±15 Volts regulated and +8 Volts unregulated. The +5 Volts necessary for TTL logic circuits i s derived from the +8 Volts by on-board regulators. An ample number of 10 uf tantalum and .01 yf disc capacitors are used to decouple the +5 Volt supply on a l l the boards. The printed circuit layouts are a l l reduced by a factor of .6 in these illustrations. Unless otherwise noted, a l l re-sistors are lKfi and capacitors are 100 pf. - 62 FIGURE 9 Motherboard Front Side * - 64 -FIGURE 11 D i g i t a l t o Ana l o g C o n v e r t e r Board F r o n t S i d e DIGITAL GROUND SELB INTP JS DCHP 151 SELB ICHST STRT cia INTA MSKO -157 + 1 5 ? ANALOG GROUND DIGITAL GROUND FIGURE 12 Digital to Analog Converter Board Back Side \ - 66 -FIGURE 13 A n a l o g to D i g i t a l C o n v e r t e r Board F r o n t S i d e DIGITAL GROUND SELB INTP IN DCHP IN SELD IORST STfiT CLR ANALOG INPUTS -20V -15V +15V ANALOG GROUND DIGITAL GROUND • • O I I i 1 2 1 5 16 ANALOG TO D I G I T A L CONVERTER FIGURE 14 A n a l o g t o D i g i t a l C o n v e r t e r Board Back S i d e - 68 -FIGURE 15 Paper Tape Reader/Punch and. Digital.Input/Output Board Front Side T O P A P E K ' T A P E R E A D E R T O P A P E R T A P E P U N C H DIGITAL GROUND 6 7 8 • • 5 16 17 18 19 26 27 28 30 31 3 2 33 34 37 STRT CLR MTA MSKO DIGITAL 2 INPUTS 1 DIGITAL 5 OUTPUTS h DIGITAL GROUND - 69 -FIGURE 16 Paper Tape Reader/Punch and D i g i t a l Input/Output. Board Back Side T O T O P A P E R " • . P A P E R T A P E •' T A P E P U N C H R E A D E R DATOC DS3 DATIA DATXB 3 2 DIGITAL 1 OUTPUTS 0 REED RELAYS DIGITAL CROUM) - 70 -FIGURE 17 Spectrometer Controller and Programable Int e r v a l Timer Board Front Side DIGITAL GROUND SELB HTTP Df DCHP Df SELD IOR ST STRT CIH UTTA MSKO UP PULSE DOWN PULSE EXT. TRIG. P.I.T. DONS TO DISPLAY DIGITAL GROUND ^^^^^^ 2 a a a o 12 1 3 . L 4__ . 15 16 17 1 8 10 20 21 22 23 24 25 2 6 2 7 a o 7 I 3 I 1 I 1 1 I , 2 8 2 9 3 0 31 3 2 33 21-, , 3 5 , , 36 3 7 38 3 9 J ~J I ^ I n I " 1 , — . ° " ±L 38 3 9 S O • • • • 4 7 4 0 4 1 42 4 3 4 4 [— 1 r , , — . . ,_ , , • » * 45 4 6 48 4 9 51 52 5 3 5 4 67 6 8 55 56 57 a a a a o a i [ V ] » ° * 5 6 4 6 3 6 2 61 6 0 5 9 5 8 - 71 -FIGURE 18 Spectrometer Controller and Programable Interval Timer Board Back Side DATOC DS3 DATIA DATIB UPPER LIMIT LOWER LIMIT DIGITAL (BOUND Digital to Analog Converter Analog to Digital Converter EXTERNAL TRIGGER ANALOG INPUTS Paper Tape Reader DATAB > DATA15 > OATIA > STRT CLR O-IORST B I T 8 STEP ° COMMAND D-CABLE FROM 1 READER ( TALLY R2050 > a DS ° 1 MONOSTABLE . 1 MS -O DSO -O "DST -O DS2 -O os3" -O DS4 -O DS5 MONOSTABLE Id MS -;i-rv" _ i p MONO STABLE • I MS J 9 DONE ^ RQENB O—H rSH BUSY 4 5 INT. DATAI 1 MSKO O^H INT. DIS. 4 - V L INTR -< INTP OUT -< DATAI2 -< DATA!4 IORST INTP IN >- VvVvv 1 U - _ < INTA T i—i cn c m Paper Tape Punch Digital Input/Output DA1AJ5 DA TO A DATIA CLR STRT ,—4>i—J > — ^ i > — • — io]>c£ |4(T5<J-1|40" DS0 o — o < ^ ] — — ^ _!fl. DS ^ ' <> ^ DS4 —<M-<r DSS CD C 73 m ON Programmable Interval Timer Spectrometer Controler D A 1 A 0 > % x > -> *• 0A1AIS 20 74191 19 74191 T 18 74191 DS &JYYY? ??ttf?YY? YYY - < RAT IA 39 1 Li 39 7479 7479 —TT;—' \ r r - 0 RE ON 8 LOWER L1MITS UPPER INTR SELD PL-^ DflFNB ROE I I N T 38 REQ. K DS • P SELB 38 INT. DIS. SO 74192 T 49 74192 48 74192 T 6 6 6 6 6 6 6 6 6 6 6 6 66 66 A . TO WAVEDRIVE D I S P L A Y DATOB > IT TU 7476 SPECTROMETER DOWN D - C ^ U UP • C<S9- 1 74121 4 ieo MICROS. 74121 100 MI CROS. INTP IN INTP OUT DA1A15 DATA13 "n o c JO m TO cn co - 79 -FIGURE 26 Modifications to the X - Y Plotter Cable to Interface AAA 9-JOOQ - 80 -APPENDIX B MACHINE LANGUAGE SUBROUTINES T h i s s e c t i o n g i v e s a complete l i s t i n g o f the A p r i l 4, 1975 machine language s u b r o u t i n e s as p r e p a r e d f o r TRIUMF BASIC and d e s c r i b e d i n Chapter 4 C ) . These s u b r o u t i n e s a r e w r i t t e n i n assembly language which i s f u l l y d e s c r i b e d i n the Data G e n e r a l handbooks, p a r t i c u l a r l y "How to Program t h e Nova Computers". The machine language s u b r o u t i n e s a r e c o n v e r t e d i n t o an o b j e c t tape by sandwiching them between t h e TRIUMF BASIC SYMBOLS program and t h e TRIUMF BASIC INITIALIZATION program. T h i s composite program i s t h e n assembled i n t o an o b j e c t tape u s i n g the Data G e n e r a l A b s o l u t e Assembler. In o r d e r to l o a d t h e o p e r a t i n g system, t h e TRIUMF BASIC program i s l o a d e d f i r s t , f o l l o w e d by the machine language s u b r o u t i n e s o b j e c t t a p e p r e p a r e d as above. - 81 -'.. T$$ JBEGINING OF SUBROUTINE ENTRY TABLE i #LQC LOCSR SRTAB .LOC TANS+5 SRTAB J .. INTER 1 . JPOTS OUT A MASK MSK 0 2 J ANALOG I NPUT AN. IN •RDX A 23300000 J CHANNEL VOLTAGE* OVERLOAD •RDX 10 .. 3 JDIGITAL INTERVAL TIMER TIME .RDX A 22000000 i INTERVAL** OF INTERVALS •RDX 10 .* . A\ iSPECTROMETER CONTROLLER SPECT .RDX A . . 230000.00 iff OF STEPS*LIMIT ERRORS .RDX 10 ... ' _ 5 I INCREMENTAL •SCOPE DI SPLAY PARAMETERS ' SIZE ~ .RDX A 2*2000000 i STARTING POINT IN BUFFER* 0 OF'POINTS .RDX 10 6" JRUN INCREMENTAL DISPLAY ONCE DISP 0~ 7. I STORE A 0 IN THE BUFFER STORE .RDX A 22000000 JPOI.NT IN BUFFER** .RDX 10 8 . SGET A 0 FROM THE BUFFER GET .RDX 4 2"30000.00 JPOINT IN THE BUFFER** .RDX 10 ". 9 JREAD SWITCH REGISTER READ . .RDX A .. 23000000 J MASK* #= SWITCH REGISTER k MASK .RDX 10 - 82 -1*0 J LOAD THE WAVE DRIVE DISPLAY WDDIS •RDX 4 20000000 10 TO BE DISPLAYED ,RDX 10 • f l JX-Y PLOTTER PEN CONTROL PEN .RDX 4 . . 20000000 Jl=DOWN* 0=UP ,RDX 10 12 . JX-Y PLOTTER CONTROL PLOT . .RDX 4 220000.00 J X VALUE* Y VALUE .,RDX 10 • " . 1*3 i INTEGRATING ANALOG INPUT INTEG .RDX 4 22233000 J**TIMER PARAMETERS*CHANNEL 0*VOLTAGE*OVERLOAD .•RDX 10 * 14 JINCREMENTAL 'SCOPE DISPLAY OR NOT? MODE _ .RDX 4 20000000 i1=YES * NO=0 ,RDX 10 •l"5. . JPUNCH DATA ON THE TELETYPE TTPUN. .RDX 4 22000000 JSTARTING POINT* 0 OF 0 *S TO BE PUNCHED ,RDX 10 . * : 16 JREAD IN DATA FROM H.S.P.T.R. HSR I N .RDX 4 22000000 JSTARTING POINT* 0 OF 0'S TO BE READ ,RDX 10 . " 17 JPUNCH DATA ON H.S.P.T.P. PTPUN. .RDX 4 220000.00 i START I NG POINT* 0 OF #'S TO BE PUNCHED ,RDX 10 18 JCLOSE SELECTED REED RELAYS CRR •RDX 4 20000000 JSUM OF CHANNEL #'S TO BE CLOSED ,RDX 10 ° 1'9 JOPEN SELECTED REED RELAYS ORR •RDX 4 20000000 J SUM OF CHANNEL #'S TO BE OPENED .RDX 10 - 83 -20 JSET SELECTED DIGITAL OUTPUTS HIGH DOH .RDX 4 . 20000000 JSUM OF CHANNEL # * S TO BE SET HIGH .RDX 10 21 J SET SELECTED DIGITAL OUTPUTS LOW DOL .RDX 4 20000000 J SUM OF CHANNEL #'S TO BE SET LOW .RDX 10 22 J OUTPUT AN ANALOG SIGNAL A.OUT •RDX 4 22000000 JCHANNEL #* VOLTAGE •RDX 10 23 iCHECK DIGITAL INPUTS D.I NP •RDX 4 30000000 JDIG ITAL INPUT STATUS .RDX 10 24. J SET DISPLAY INTENSIFIER POINT INT.P .RDX 4 20000000 JPOINT TO BE INTENSIFIED .RDX 10 25 J SET SIZE OF X-Y 'SCOPE DISPLAY XYSI Z .RDX 4 222000.00 JX START* Y START* # OF POI NTS .RDX 10 . 26 .. JRUN X-Y 'SCOPE DISPLAY ONCE XYDIS .RDX 8 0*. .... . . f.\ JEND OF SUBROUTINE ENTRY TABLE / . . . INTEG: STA 3*11 JINTEGRATING ANALOG INPUT SUB 0*0. STA 0*112 J STA 0*113 JI NIT IALY CLEAR OVERLOAD. LDA 0*R.R.0 JGET CURRENT REED RELAY STATUS COM 0*0 LDA l*R.R.l AND 0*J. COM J . * l . DOB .1*34 i CLOSE REED RELAY 1 STA l*R.R.0 JSTORE NEW REED RELAY STATUS LDA 0*12 . DOA 0*64 J SELECT MILLISECOND INTERVAL LDA 0*13 DOBS 0*64 J START TIMER FOR 37 (OCT.) MS, SKPDN 6.4 - 84 -JMP .*•'.! JLOOP UNTIL TIMER IS DONE NIOC 64 JT1MER IS DONE* CLEAR IT LDA 0*R.R .0 • LDA 1 *R.R .1 AND a * r STA 1*R.R .0 DOB 1 #34 JOPEN REED RELAY 0 LDA 2,0*3 LDA 0*0*2 LDA 1 *1*2 JGET TIMER INCREMENT STA 0*14 STA I'* 15. JSTORE TIMER INCREMENT LDA 2*1 #3 LDA 0*0.'* 2 LDA 1,1/2 JGET » OF TIMER INCREMENTS STA •a J 1.14 STA 1*1 15 J STORE 0..OF TIMER INCREMENTS JSR TIME JGO TO TIME SUBROUTINE 16: 14 J 116: 114 JTIMER GETS THESE POINTERS LDA 3*1 1 JTIMER RETURNS TO HERE LDA 3*2*3 LDA 0*0*3 LDA U1.3 JGET INPUT CHANNEL # STA 0*14 STA 1*15 J.ST ORE I NPUT CHANNEL 8 JSR AN.I N JGO TO. ANALOG 1 NPUT SUBROUTI NE I7j 14 JCHANNEL » POINTER 18: 110 JVOLTAGE POINTER 19: I 12 j OVERLOAD POI NTER LDA 3*1 1 . JAN.IN RETURNS TO HERE LDA 2*3*3 LDA 0*110 LDA 1*111 JGET THE VOLTAGE STA 0*0*2 STA 1*1*2 JSTORE THE VOLTAGE IN BASIC LDA 2*4*3 LDA 0*112 LDA 1*113 JGET OVERLOAD STATUS STA 0*0*2 STA 1*1*2 JSTORE THE O.S. IN BASIC JMP 5*3 JRETURN M l 0 121 2 131 37 141 0 15* 0 IJ.0I 0 Til I 0 1121 0 1131 0 1141 0 115: 0 - 85 -R.R R.R J MODE* 0J 1 I MOD0I MSK: Ml M 3 i J AN .IN: A3: 0 -2 STA LDA LDA LDA JSR§ STA LDA JMP 0 JCURRENT REED RELAY STATUS 3*MOD0 2*0*3 0*0*2 \j.\*Z 131 1 *M2 3*MOD0 1*3 LDA 0*M1 MSKO 0 SUB 0*0 STA DOB STA STA COM DOA JMP 1 77 7.50 DOH1 0*M2 0*34 0*R.R .0 0*@M3" 0*0 0*34 0*3 STA LDA LDA LDA JSR8 3*A0 3*0*3 0*0*3 131 . DOAS 1J44 SKPDN 44 JMP »*1 . DIA 0*44 LDA I*A1 AND 0*1*SZR JMP A2 MOVL0 0*0*SZC JMP A3 MOV 0,1 SUB 0J0 JSR8 133 LDA 3*A0 LDA 2*1*3 STA 0*0*2 STA 1*1*2 JMP 3*3 LDA 1*A4 AND 0,1 NEG 1,1 ADC 0.,0 JSR§ 133 JSETS I NCR. DISPLAY MODE J ST ORE MODE-DETER MINER JRETURN JPUTS OUT A MASK* INITIAL.ZES }START IN NON-DISPLAY MODE JOPEN REED RELAYS . ,CLEAR REED RELAY STATUS JCLEAR DIGITAL OUTPUT STATUS JSET DIGITAL OUTPUTS LOW iRETURN J MASK . JDIGITAL OUTPUT STATUS JANALOG 1NPUT iGET CHANNEL 0 iSELECT 1NPUT CHANNEL, START JLOOP UNTIL DONE JINPUT VOLTAGE JCHECK FOR OVERLOAD JOVERLOADED* GO.TO A2 JCHECK.SJGN OF VOLTAGE iJUMP TO A3 IF NEGATIVE JSTORE V IN BASIC 1 RETURN JCONVERTS NEGATIVE V - 86 -A2» A0J Al i A4J M2 i y TIME. TLOOP: T.RET. T.0I TI : J SPECT t LDA LDA STA STA JMP SUB LDA STA STA JMP 3*A0 2,1,3 0*0*2 1*1*2 3*3 0*0 . SUBZL .1 ,1 JSR§ 133 LDA 3*A0 2*2*3 0*0*2 1*1*2 3*3 J STORE V IN BASIC JRETURN JFOR OVERLOADS J STORE +1 JRETURN 40000 77777 0 STA 3*T0 LDA 2*0*3 LDA 0*0*2 LDA 1 *. 1 *2 JSR9. 131 DOA 1*64 LDA 3*T0 LDA 2*1*3 LDA 0*0*2 LDA 1i1*2 JSR9. 131 MOV 1*1 *SNR JMP T,RET DOBS 1*64 LDA 0*M2 MOV 0*0*SNR JMP TLOOP LDA 0*T1 STA 0 R E T NIOC 5. JMP D • IN SKPDN 64 JMP LDA 3*T0 NIOC 64 JMP 2*3 JRETURN 0 .. T.RET STA 3*S0 LDA 2*0*3 LDA 0*0*2 LDA 1j1*2 JSR8 131 MOV l*l*SNR JMP S .RET IN BASIC JD1SPLAY MODE DETERMINER JDIGITAL INTERVAL TIMER I GET INCREMENT" JOUTPUT INCREMENT JGET 0 OF INCREMENTS /CHECK FOR 0 .OF INCREMENTS = 0 JRETURN IF IT WAS 0. I IF NOT START THE TIMER J.CHECK THE.DISPLAY MODE. . JIN NON-DISPLAY MODE WAIT AT TLOOP JSTORE RETURN ADDRESS . J CLEAR .SPEC TRO. CONTROLLER JJUMP TO DISPLAY ROUTINE JLOOP HERE IN NON-DISPLAY MODE JTIMER DONE. iCLEAR THE TIMER JSPECTROMETER CONTROLLER J GET THE 0 OF STEPS JCHECK IF 0 OF STEPS »0 JIF =0* THEN EXIT - 87 -LDA 0*S7 DOC 0*5 J OUTPUT STEPPING SPEED DOAS 1*5 JBEGIN STEPPING LDA 0*M2 MOV 0*0*SNR JCHECK DISPLAY MODE JMP SLOOP JIN NON-DISPLAY MODE WAIT AT SLOOP LDA 0*SI STA 0..RET J STORE RETURN ADDRESS NIOC '64 JCLEAR TIMER JMP D.I.N JJUMP TO DISPLAY ROUTINE SLOOP: SKPDN 5 JMP 1. JLOOP HERE IN NON-DISPLAY MODE S.RET: DIA 1*5 JCHECK FOR LIMIT ERRORS SOB 0*0. JSR8 133 LDA 3*S0 LDA 2*1*3 STA 0*0*2 STA 1*1*2 JSTORE LIMITS IN BASIC JMP 2*3 JRETURN S0.: 0 SI .« S.RET S7: f 7 SI ZE: STA 3*SIZ0 v J SET INC. DISP. PARAMETERS LDA 2*1*3 LDA 0*0*2 LDA 1*1*2 JGET THE # OF POI NTS JSR9. 131 . STA 1*SIZl JSTORE THE # OF POI NTS SUBZL 0*0 -MOVZL 1 * 1 MOVZL 1 , 1 MOVZL 1 * 1 MOVZL 1*1 MOVZL 1*1 JSHI FT LEFT FOUR TIMES MOVZL 1*1*SZC J SHI FT. THE .# OF POINTS* CHECK JMP ,+3 JDONE SHIFTING MOVZL 0*0 JMULTIPLY X"1NC. BY 2 JMP .-3 JSHIFT AGAIN " STA 0VSIZ2 JSTORE X I NC. SIZE LDA 3*SIZ0 LDA 2*0*3 LDA 0*0*2 LDA 1 * I *2 JGET STARTING LOCATION JSR§ 131 LDA 0*SIZ6 ADD 0,1 STA 1*SIZ5 JSTORE STARTING ADDRESS LDA 3*SFZ0 JMP 2*3 JRETURN - 88 -SIZ0» 0 SIZU 0 SIZ21 0 SIZ3I -2000 SJZ4: TP I SIZ5: 0 SIZ6.: BLK ..RET t 0 J DISP: STA 3, .RET NIOC 64 NIOC 5 D.IN: LDA 0*S1Z3 LDA .1. * SI Z1 STA .1*03 LDA .USI Z5 STA 1*D4 . LDA 1*8SIZ4 STA 1*D5. D00 : LDA 1 *@.D4 MOVL# 1*1*SZC JMP D03 MOVZR .1*1 MOVZR l*.t MOVZR 1*1 JMP D04 ... D03t MOV OR 1*1 MOVOR 1*1 MOVOR 1*1 D04: SUB 2*2 SUBZL 3*3 DOA 2*42 DOB 0*42 DOA 3*42 DOB:1*42 NIO 34 NIO 34 LDA 2*8D9 LDA 3*D10 COM 2*2 AND 2*3. DOA 3*34 COM 3*3 STA 3*@D9 DSZ D5 . JMP D01 LDA 3*D7 STA 3*D8 1SZ D8 JMP .. *• 1 D01: LDA 2*9D9 LDA 3*D10 AND 2*3-iSTART ING X VALUE . i \ NTENSI FI ER POI NT JSTART OF BUFFER AREA jRETURN ADDRESS OF CALLER JINCREMENTAL DISPLAY JBASIC ENTERS AT THE ABOVE LINE tCLEAR SPECT. AND TIMER J GET I NI T1 AL' X VALUE J INITIALIZE COUNTER J 1 NIT I AL1 ZE POI NTER J.I NIT. I NTENS I FI ER POINTER JGET Y VALUE JCHECK SIGN OF Y J3 RIGHT SHIFTS FOR Y>0 J3 RIGHT SHIFTS FOR Y<0 JSELECT X (0) CHANNEL JOUTPUT X VOLTAGE JSELECT Y (0) .CHANNEL JOUTPUT Y VOLTAGE J JWASTE TIME JGET CURRENT D.O. STATUS JTURN BEAM ON JSTORE NEW D.O. STATUS JDECREMENT AND CHECK INTENS. JNOT INTENSIFIED POINT JINTENSIFICATION LOOP JWAIT UNTIL TIME UP - 89 -D02: D0: D3J D4X D5: D7: D8* D9. i D.10.: D12. J STORE: STOR0: STOR1 : J GET: STA 3,©D9 COM 3-3 DOA 3,34 SKPDZ 64 JMP D02 SKPDZ 5 JMP D02 LDA 1,SIZ2 ADD 1,0 ISZ D4 DSZ D3 JMP D00 SKPBZ 64 JMP D.IN SKPBZ 5 JMP D.IN JMP® .RET 0 0 0 0 -300 0 DOM I 177737 BLK STA 3 LDA 2 LDA 0. LDA' 1 JSR§ LDA 2 ADD STA LDA LDA LDA LDA JSR§ , STA 1 LDA 3 JMP 2 0 0 ,STOR0 ,0,3 ,0,2 * U 2 • 3.1 ,D12 *Z . . . . ,STORl ,STOR0 > 1 ,3 *0.,3 >.U3 131 • ,@ST0R1 ,STOR0 ,3 STA 3,STOR0 LDA 2,0,3 LDA 0,0,2 LDA IAIAZ JSR§ 13.1 •-LDA 2,D12 ADD 1,2 JSTORE NEW D.O. STATUS JTURN BEAM OFF JRETURN TO CALLER IF DONE J.RETURN TO CALLER IF DONE J GET X 1NCREMENT /INCREMENT X VALUE J.I NCREMENT PO! NTER JDECREMENT AND CHECK COUNTER . J NOT DONE, DISPLAY NEXT POINT JTHE FOLLOW I NG DETERMI NES WHO-j-CALLED THE DISPLAY JRETURN JD..O.032 FOR BLANKING BEAM JSTARTING ADDRESS OF BUFFER JSTORE A # IN THE BUFFER J GET THE LOCATION JSTART OF BUFFER JSTORE LOCAT1ON J GET THE # JSTORE THE 0 JRETURN J GET A 0 FROM THE BUFFER J GET THE LOCATION JSTART OF BUFFER - 90 -.RDX 10 BLK: •RDX 8 J READ I READ0 t I PEN: P.EN0 * J PLOT: LDA 1,0,2 ADC 0,0 MOVZL* lil,SNC SUB 0*0 JSR§„133 LDA 3,STOR0 LDA 2il,3 STA 0,0,2 STA 1,1,2 JMP 2,3 .BLK 2001 STA 3, LDA 2, LDA 0, LDA l i JSR§ : 1 READS AND 0i SUB 0* JSR9 :1 LDA 3, LDA 2, STA 0, STA JMP 0 1 > 2, READ0 0,3 0,2 1*2 31 0 1 0 33 READ0 1 ,3 0,2 1 ,2 3 STA 3,PEN0 LDA 2,0,3 LDA 0,0 i2 LDA 1*1*2 JSRQ 131 SKPBZ 42 JMP . ,.*.| DOCS IT,42 LDA 3,PEN0 JMP:1,3 0 STA 3,PLOT0 LDA 2,0,3 LDA 0,0,2 LDA 1 * 1*2 JSR8 131 SKPBZ 42 JMP ."1 SUB 0",0 DOA 0*42 DOBS 1,42 J GET THE # FROM BUFFER JCHECK SIGN OF # k JIT WAS POSITIVE J.ST ORE 0 IN BASIC JRETURN JDATA BUFFER JREAD SWITCH REGISTER JGET THE MASK JREAD THE SWITCH REGISTER JSTORE IN BASIC JRETURN JX-Y PLOTTER PEN CONTROL JGET CONTROL 0 JWAIT UNTIL PLOTTER. IS DONE JOUTPUT THE PEN CONTROL JX-Y PLOTTER CONTROL JGET X VALUE JIF BUSY WAIT UNTIL DONE JSELECT X CHANNEL (0) JOUTPUT X VOLTAGE - 91 -PLOT0 » J WDDIS: LOOP: LDA 3*PLOT0 LDA 2*1,3 LDA 0*0*2 LDA t A 1 A2 JSR8 131 SUBZL 0*0 DOA 0*42 DOB 1*42 LDA 3*PLOT0 JMP 2*3 0 STA 3*SDPWD LDA 3*0*3 LDA 0*0*3 LDA U U 3 JSR8 131 . LDA 3* .TP 10 SUBO 0*0 LDA 2*0*3 INC 3*3 MOVZL 0*0 MOVZL 0*0 MOVZL 0*0 MOVZL 0*0 SUBZ 2*1*SZC INC 0*0*SKP ADD 2*1*SKP JMP .-3 MOVZR 2*2*SZR JMP LOOP MOVZ .0*1 DOB 1 *5 LDA 3*SDPWD JMP 1*3 .RDX 10 '.TP I » •RDX 8 SDPWD; .TP 10: J HSRIN: .1.000 100 10 1 0 .TP1 STA 3*HSIN0 LDA 3*0*3 LDA 0*0*3 LDA l>.l/3 JSR8 131 LDA 2*HS1N1 ADD 1*2 STA 2*HSIN2 LDA 3*HSIN0 JQET Y VALUE JSELECT Y CHANNEL JOUTPUT Y VOLTAGE JRETURN iWAVE DRIVE DISPLAY JGET 0 TO BE DISPLAYED ICONVERT BINARY TO B.C.D. JOUTPUT # TO BE DISPLAYED JRETURN JREAD INTO BUFFER FROM H .S.R. J GET STARTING LOCATION IN BUFFER % STORE STARTING ADDRESS - 92 -HS 1 N4 * HS I N0. HSI NI HS1 N2J HSIN3: J TTPUN: LDA 3 , 1 , 3 LDA 0 , 0 , 3 LDA U 1 * 3 JSR8 131 NEG 1,1 S T A 1 , H S I N 3 INTDS S K P B Z PTR JMP : . - I ... D I A S : 0 , P T R MOV 0 , 0 , S N R JMP . - 4 ... SKPDN PTR JMP D I A S 0 , P T R MOVS 0 , 1 SKPDN P.TR JMP .-1 D I A S 0 , P T R ADD 1,0 MOVS 0 , 0 S T A 0 , 8 H S I N 2 1SZ H 5 I N 2 1SZ H S I N 3 JMP HSI.N4 NIOC PTR LDA 3 , H S I N 0 I NTEN JMP 2 , 3 0 B L K 0 0 STA LDA LDA LDA J S R § LDA ADD STA LDA LDA LDA LDA JSR9 NEG STA I NTDS H A L T S K P B Z T T O JMP 3,TTP0 2,0,3 0,0,2 1X 1 *2 131. 2,TTP1 1 ,2 2, TTP2 3, TTP0 2,1,3 0. 0.2 1 > 1 *2 .131 l i t 1, TTP3 J GET 0 OF 0*S TO BE READ JINITIALIZE COUNTER JTURN OFF INTERRUPT JWAIT IF BUSY J 1NPUT . ONE BYTE JWAS IT A BLANK? JYES, READ AGAIN JNOT BLANK,BEG IN iWAIT UNTIL DONE JINPUT A BYTE JSWAP BYTES R E A D I N G DATA J W A I T U N T I L DONE . J.I NPUT ANOTHER B Y T E J A D D T H E TWO B Y T E S JSWAP B Y T E S J S T O R E T H E DATA I N T H E ^ I N C R E M E N T T H E P O I N T E R J 1NCREMENT AND CHECK P O I N T E R j N O T = 0 , READ MORE DATA J C L E A R ' R E A D E R B U F F E R JE N A B L E J R E T U R N I NTERRUPT JPUNCH DATA ON T E L E T Y P E JGET S T A R T L O C . IN B U F F E R J G E T 0 OF PUNCHES J S T O R E PUNCH COUNTER J.D I S A B L E INTERRUPT J H A L T COMPUTER - 93 -ADC 0,0 DOAS 0,TTO TTP4 x LDA 0,8TTP2 SKPDN TTO JMP . *• 1 DOAS 0,TTO MOVS 0,0 SKPDN T.TO JMP DOAS 0,TTO ISZ TTP2 ISZ TTP3 JMP TTP4 SKPDN TTO JMP NI OC" TTO HALT I NTEN LDA 3,TTP0 JMP 2,3 TTP0.1 0 TTP1.: BLK TTP25 0 T.TP31' f 0 i PTPUN: STA 3,PTP0 LDA 2,0,3 LDA 0,0,2 LDA 1 >.U2 JSR8 131 LDA 2,PTP1 ADD 1,2 STA 2,PTP2 LDA 3,PTP0 LDA 2,1,3 LDA 0,0,2 LDA UU2 JSR8 .131 NEG .1,1 . STA 1,PTP3 1 NTDS JSR PTP5 SKPBZ PTP JMP ."M ADC0,0 DOAS 0,PTP PTP4 J LDA 0,§PTP2 SKPDN PTP JMP; .*- l DOAS 0,PTP MOVS 0,0 SKPDN PTP JMP .H JPUNCH ALL HOLES J GET THE 0 JPUNCH LOWER BYTE JSWAP BYTES JPUNCH UPPER BYTE J I NCREMENT POI NTER j r N C . AND CHECK COUNTER JNOT=0,PUNCH ANOTHER # JCLEAR TELETYPE JHALT COMPUTER JENABLE INTERRUPT JRETURN JPUNCH DATA ON H.S.P.T.P. J GET STARTING POINT IN BUFFER JADD TO BUFFER LOCATION JSTORE FIRST ADDRESS JGET # OF LOC'S TO BE PUNCHED JSTORE <M) TIMES THIS VALUE JTURN OFF 1NTERRUPT JPUNCH LEADER TAPE JLOOP UNTIL DONE JPUNCH ALL HOLES JGET THE 0 FROM THE BUFFER JLOOP UNTIL DONE JPUNCH LOWER BYTE JSWAP BYTES JLOOP UNTIL DONE - 94 -DOAS $,PTP ISZ PTP2 ISZ PTP3 JMP PTP4 JSR PTP5 SKPDN PTP JMP .-I NI OC PTP LDA 3,PTP0 INTEN JMP 2,3 PTP 5: LDA 0,PTP6 STA 0,PTP7 • SUB 0,0 PTP8: SKPBZ PTP JMP .H DOAS 0,PTP ISZ PTP7 JMP PTP8 _ JMP 0,3 PTP0: 0 PTP 1.:. BLK PTP2I 0 PTP 31 0, PTP6 5 -200 PTP7 i 0 CRR: STA 3,CRR0 LDA 2,0,3 LDA 0,0,2 LDA 1 A I A2 JSRS 13) LDA 0,§CRR1 COM 0,0 COM I ,J AND 0,1 COM 1,1 STA 1,§CRR1 DOB l,34_ LDA 3,CRR0 JMP 1,3 CRR0: 0 CRR 1 i | R.R.0 ORR. STA 3,CRR0 LDA 2,0,3 LDA 0,0,2 LDA 1A1A2 JSR§ 131 LDA 0,ftCRRI COM 1,J AND 0,1 STA J.,eCRRl JPUNCH UPPER BYTE J.I NCREMENT POI NTER JINCREMENT AND CHECK COUNTER JCOUNTER NOT =0, PUNCH MORE DATA JDONE, PUNCH TRAILER ( JLOOP UNTIL DONE JCLEAR H.S.P.T.P. JTURN INTERRUPT ON JRETURN JLEADER/TRAILER SUBROUTINE JlNITIALIZE COUNTER JLOOP UNTIL DONE JPUNCH ONE BLANK /INCREMENT AND CHECK COUNTER JNOT=0* PUNCH ANOTHER BLANK J RETURN TO CALLING POINT JLOCATION OF FIRST BUFFER WORD J* OF LEADER/TRAILER PUNCHES JCLOSES REED RELAYS JGET CHANNEL #'S JGET CURRENT RELAY STATUS JSTORE NEW RELAY STATUS JCLOSE SELECTED RELAYS JRETURN JOPENS REED RELAYS JGET CHANNEL #»S JGET CURRENT RELAY STATUS JSTORE NEW RELAY STATUS - 95 -I DOHl DOH1 : J DOL: DOB LDA JMP STA LDA LDA LDA JSR8 LDA COM COM AND DOA COM STA LDA JMP 0 1,34 3*CRR0 1*3 3,CRR0 2,0,3 0,0,2 UU2 131 0,DOM1 0,0 1,1 0. 1 1,34 1,1 1, DOHl 3*CRR0 1,3 A.OUT: STA LDA LDA LDA JSR© LDA COM AND STA COM DOA LDA JMP STA LDA LDA LDA JSR8 DOA LDA LDA LDA LDA JSR@ DOB LDA 3,CRR0 2,0,3 0,0,2 1*1*2 131 0,DOH1 1,1 0,1 l",DOHl 1,1 1,34 3JCRR0 1,3 3,AO0 2,0,3 0,0,2 1*1 ,.2 131 1,42 3,AO0 2,1,3 0,0,2 1*1*2 131 1 ,42 3,AO0 JMP 2,3 JOPEN SELECTED RELAYS JRETURN JSETS DIGITAL OUTPUTS HIGH IGET CHANNEL #*S J GET CURRENT D.O. STATUS JSET SELECTED OUTPUTS HIGH JST ORE NEW D.O. STATUS JRETURN * SETS DIG i TAL OUTPUTS LOW J GET CHANNEL ##S J STORE NEW D.O. STATUS JSET SELECTED OUTPUTS LOW JRETURN JANALOG OUTPUTS JGET CHANNEL 8 JOUTPUT CHANNEL 8 JGET THE VOLTAGE JOUTPUT THE VOLTAGE JRETURN A 00: - 96 -D.I NP* DI N0* J I NT .P* IP0* IP I * J _ XYSIZJ XYSHi XYS1 1 XYS2* XYS3* XYS4* I STA 3*D1N0 DIA 1,34 SUB 0,0 JSR® 133 LDA 3,DIN0 2,0,3 0. 0.2 1, 1 ,2 1,3 J.CHECK DIGITAL INPUTS JINPUT THE DATA LDA STA STA JMP 0 STA 3,IP0 LDA 2,0,3 LDA 0,0,2 LDA 1,1 *2 JSR® 131 STA 1,IP1 LDA a,TP0 JMP 1,3 0 0 STA 3,XYS0 LDA 2,0,3 LDA 0,0,2 LDA 1 * l *2 JSR.® 131 LDA 0,XYS1 0. 1 1, XYS2 3,XYS0 2,1 ,3 0,0,2 1 * 1 *2 131 ADD STA LDA LDA LDA LDA JSR® LDA ADD STA LDA LDA LDA LDA JSR® STA 1,XYS4 LDA 3,XYS0 JMP 3,3 0 BLK 0 0 0 0,XYS1 0, 1 1, XYS3 3,XYS0 2,2,3 0,0,2 1*1*2 131 i. ST ORE DATA IN BASIC JRETURN JINTENSIFIES DISPLAY POINT JGET LOCATION OF POINT JSTORE LOCATION JRETURN JSETS X-Y DISPLAY PARAMETERS JGET LOCATION OF FIRST X JSTART OF BUFFER AREA JSTORE ADDRESS OF FIRST X JGET LOCATION OF FIRST Y JSTORE ADDRESS OF FIRST Y JGET 8 OF POINTS JSTORE 8 OF POINTS JRETURN - 97 -XYD1S: STA 3*XYS0 JX-Y 'SCOPE DISPLAY LDA 1*XYS2 STA X*XYDl LDA 1*XYS3 STA J.*XYD2 LDA 1*XYS4 STA UXYD3 JGET PARAMETERS FROM XYSIZ LDA 1* 1PI STA 1*XYD8 XYD6 : LDA 0*§XYD1 JGET X VALUE LDA 1*@XYD2 JGET Y VALUE SUB 2*2 SUBZL 3*3 DOA 2*42 JSELECT X (0) CHANNEL DOB 0*42 /OUTPUT X VOLTAGE DOA 3*42 /SELECT Y i l ) CHANNEL DOB 1,42 /OUTPUT Y VOLTAGE NI 0 34 j . NIO 34 JWASTE TIME LDA 2*@XYD4 LDA 3*XYD9 COM 2*2 AND 2*3 DOA 3*34 JTURN BEAM ON COM 3*3 STA 3*8XYD4 /STORE NEW D.O. STATUS DSZ XYD8 JDEC. AND CHECK INT.COUNTER JMP A + 5 LDA i;*XYD5 STA 1*XYD7 ISZ XYD7 JMP • -1 JINTENSIF1ER LOOP LDA 2*3XYD4 LDA 3*XYD9 AND 2*3 STA 3*@XYD4 JSTORE NEW D.O. STATUS COM 3*3 DOA 3*34 /TURN BEAM OFF ISZ XYD1 /INCREMENT X POINTER ISZ XYD2 J INCREMENT Y POINTER DSZ XYD3 /DECREMENT AND CHECK COUNTER . JMP XYD6 JNOT DONE* DISPLAY NEXT POINT LDA 3*XYS0 JMP 0*3 JRETURN XYD1 : 0 XYD2: 0 XYD3I 0 XYD4» DOH1 XYD5 -300 XYD7: 0 XYD8: 0 XYD9: 177737 JD.O.#32 FOR BLANKING 1 NTER: JMP 3*3 • END - 98 -APPENDIX C SIGNAL AVERAGING PROGRAM This section contains a l i s t i n g of the May 5, 1975 signal averaging program described in Chapter 6. This program is written i n the BASIC language which is fu l l y described i n "An Introduction to Basic"^! This manual does not mention the Call instruction, however. This particular instruction has been discussed i n Chapter 4 C). The apparatus with which this program i s intended to operate has been shown in Figure 8. - 99 -5 DIM AC250],BC250] 10 RESTOR 11 READ 02*03,04,05*06,07,08 12 REM LOWER ,UPPER LIMITSJ 5 PARAMETERS 13 DATA 0, 80, 1.4238, .01521,-2 .5411E-5, 8.2242E-9,-9.8533E-1 I 1 5 LET 01=0 20 LET C= 0 21 CALL I 2 5 PR I NT "ORDER #="J 26 I NPUT C9 27 PRINT 2 8 PR I NT "W.D.="J 2 9 INPUT D 30 LET D = INT (200*D+.5> 31 CALL 10, INT (D/2+.5) 32 PR I NT 35 CALL 14,1 37 DEF FNE(F)=C4+F*C5+F*F*C6+F*F*F*C7*F*F*F*F*C8 38 CALL 5, 0,2000 48 REM ^ ^ ^ ^ ^ i | c i | c 4 c ^ ^ ^ s * c 4 ( ) « c ^ ^ j « c ^ ^ ^ % ^ ^ ^ * ^ ^ i k « ^ ^ ^ ^ 3 | e ^ ^ ^ * ^ ^ ^ * ^ « ^ * * 4 c 4 c 49 REM MAIN PROGRAM LOOP - IDLE MODE 50 PRINT "S M « 51 CALL 9,32768,DI 52 IF DI= 0 GOTO 55 53 CALL 20,1 54 GOTO 60 ' 55 CALL 21,1 60 CALL 9,32767,01 6 1 IF DI =1 GOTO 80 62 IF DI =2 GOTO 82 63 IF DI =4 GOTO 84 64 IF DI=8 GOTO 86 65 IF Dl=16 GOTO 88 66 IF DI =32 GOTO 90 67 IF DI =64 GOTO 92 68 IF DI=128 GOTO 94 69 IF DI=256 GOTO 96 70 IF DI=512 GOTO 98 7 1 IF DI=1024 GOTO 100 72 IF DI=16384 GOTO 102 75 GOTO 51 80 GOSUB 380 81 GOTO 104 82 GOSUB 200 83 GOTO 104 84 GOSUB 360 85 GOTO 104 86 GOSUB 390 87 GOTO 104 88 GOSUB 560 89 GOTO 50 90 GOSUB 650 - 100 -91 GOTO 104 92 GOSUB 450 93 GOTO 104 94 GOSUB 460 95 GOTO 104 96 GOSUB 410 97 GOTO 104 98 GOSUB 510 99 GOTO 104 100 GOSUB 470 101 GOTO 104 102 LET D2=l 103 GOTO 120 104 PRINT 105 GOTO 50 118 REM ****************************************** 119 REM PAUSE LOOP 120 LET D3=D 121 IF Cl> 0 GOTO 124 122 PRINT "WHY PAUSE WITHOUT DATA?" 123 GOTO 50 124 PR1NT 125 CALL 9,32768,DI 127 IF DI> 0 GOTO 130 128 CALL 21,1 129 GOTO 135 130 CALL 20,1 135 CALL 9,16383,DI 136 IF DI=1 GOTO 180 137 IF DI=8192 GOTO 182 1 38 IF DI =64 GOTO 184 139 IF DI=128 GOTO 186 140 IF Dl=256 GOTO 188 141 IF DI=512 GOTO 190 142 FOR H7= 0 TO 10 143 CALL 6 144 NEXT H7 145 CALL 9,16384,DI .146 IF DI > 0 GOTO 155 147 IF D2=l GOTO 50 148 GOTO 165 155 CALL 2,1,D4,D5 156 CALL 24, I NT (D4/16+.5) 157 LET G5= INT (D4/16+.5) 158 CALL 5, 0,F+1 159 CALL 6 160 GOTO 125 165 IF D3=D GOTO 274 166 LET D7=D3-50 167 GOSUB 340 168 LET D7=D3 169 GOSUB 340 - 101 -170 GOTO 274 160 GOSUB 380 181 GOTO 125 182 GOSUB 490 183 GOTO 125 184 GOSUB 450 185 GOTO 125 186 GOSUB 460 187 GOTO 125 190 GOSUB 510 191 GOTO 125 196 RETURN 198 REM ************************************** 199 REM SIGNAL AVERAGING LOOP 200 PR I NT 201 PRINT "START J INC* #OF INC'S.* #OF AVR'S* T IN MS* 202 INPUT D8*D9*F*F1*F2 203 IF F2< 0 GOTO 200 204 IF F<!000 GOTO 208 205 PRINT "# OF INC'S<1000* NEW VALUE="J 206 I NPUT F 207 PRINT 208 LET F7= 0 209 PRINT 210 LET F3=2 21 1 IF F<=250 GOTO 214 212 CALL 5* 0*F+l 213 LET F3 = l 214 LET D2= 0 215 LET D8= INT <200*D8+.5) 216 LET D9= INT (200*D9+.5) 217 LET Cl=1 219 CALL 21*1 220 FOR FA= 0 TO Fl-1 221 LET D7=D8-50 222 GOSUB 340 223 LET D7*D8 224 GOSUB 340 225 CALL 24*F7+1 230 FOR F5="0 TO F 231 IF F5= 0 GOTO 234 232 CALL 20*1 233 GOTO 235 234 CALL 21*1 235 LET D5= 0 236 LET D7=D8+(F5+1)*D9 237 CALL 13*2,F2* 0*D4*D5 238 CALL 24*F5+F7+2 239 IF D5= 0 GOTO 242 240 PRINT "OVERLOAD" 241 GOTO 260 242 CALL 8*F5*F6 - 102 -243 245 246 250 251 252 260 261 262 263 264 265 2J0 271 272 273 274 276 277 280 285 290 291 292 293 294 300 301 302 303 30 5 3.10 311 315 316 317 320 321 338 339 340 341 342 343 344 345 346 347 348 349 350 351 CALL 7,F5,(F6*F4+D4)/<F4+1> CALL 7,F5+1000,D4 CALL 5,F7,F+1 IF F3=l GOTO 260 LET A[F5] = (ACF5]*F4+D4)/<F4+I ) LET BCF5] = <B[F5]*F4+D4*D4)/(F4 + 1 ) CALL 9,32767,DI IF DI=16384 GOTO 120 DI=4096 GOTO 310 Dl=1024 GOTO 320 DI=512 GOTO 220 272 GOTO 315 IF IF IF IF DI=256 LET F7= 0 GOTO 273 LET F7=1000 G OS LIB 340 NEXT F5 CALL 21,1 IF DI=2048 GOTO NEXT F4 PR I NT '•Fl NI SHED" IF F3=l GOTO 293 IF F4>3 GOTO 300 LET F3=l PRINT "NO STANDARD DEVIATIONS* RETURN FOR D6= 0 LET F8 = CALL 7,D6+F+I,F8 NEXT D6 RETURN PRINT "TERMINATED AT"JF4J"SCANS" GOTO 290 PR I NT "STOPPED SHORT AT"JF4+I J"SCANS'* LET F4=F4+1 GOTO 290 PRINT "SCANS C0MPLETED="JF4 GOTO 274 REM * * * * * * * * * * * * * * * * * * * * * * * * 4 : * * * * * 1 ( [ * i t ; * ) t , * * * J ( [ * * * * + + + <,^ +* REM MOVE SPECTROMETER LET D6=D LET D=D7 CALL 4,D-D6,F8 IF F8= 0 GOTO TO F SQR ((BCD6]-ACD6]*A[D6"I)/F4) IF F8 = I GOTO IF F8=2 GOTO PRINT "FATAL STOP PR I NT STOP . PR I NT STOP 352 350 348 ERROR .BOTH LIMITS. . .CHECK SYSTEM" 'FATAL ERROR ...UPPER LIMIT" 'FATAL ERROR .. .LOWER LIMIT-BC* oioo 8J>eo J| 92* iCfr 0100 0 >20 J l SZtr IG* 0100 08* ZD J l \rZV <20>3NJ = C0 131 C2fr 6i=20 131 22* l « 9 0 131 12* 19=8J 131 02* •CI ' M 01 H10N313AVW 1H3AN00 W3H 6lfr NHni3U Sl> I0fM«H10N313AVrt M r 0 f » « 3 M IN 1 Hd frl> 10/S8#6C21"0 131 ei> 60/<6J)3NJ =10 131 2l> 6J IfiefN I I I tr f M=*C1* M « IN I Hd 01b1 •a*rt 1H3AN00 W3H 60b1 NHfll3H 86C -VIVO ON.. INlHd Z.6C V . NHfU3H 96C •.SN0I1VIA30 OHVONVIS 0N» IN I Hd S6C NHIU3H I/6G Ma3H0Nnd 0N0iiviA3a aavaNvis.. iNiHd C6G S6C 0100 \=£A J | 26G (l+J>*CJ'0 r l l 11V0 16G £6E 0100 0 =10 J l 06C VIVa HONfld W3M 68C ««««^«4cjtr4t4(4:4(4i4c4(a|c9tt4c^4c3»c4c4c4c4t4c4c4E4(4c4t4<3«c4e 3 f : 9 f:4tjtc )**** W3H 88C Nuni3u see QVZ ansoo *8e <S*+10*002) IN I = L0 131 C8G IN IHd 2BC ia indNi I8C rM01 3H3HM.. IN I Hd 08G •Q'ft N3AI0 V 01 00 01 W3H 6 L Z * « * * * * « * * * * * 4 c # * * * * * * * * * « * * « * * * * * * * 4 e 4 c * ) t c * * 4 c * * 4 c 4 ( 4 < * > t > U3H 81G NHfll3H 9iE <UJ)*EJ*0 '91 11V0 SAG 1=10 131 VL£ IN I Hd 2/.G G J indN I I Lt f „ ( l > ION HO (2) SN0UVIA3a OHVONVIS 3AVH 3dVl 3H1 S30a.. IN I Hd 0i.G <S*+60*002) IN! =60 131 99G <S*+80*002) IN I =80 131 S9G 19G 0100 0 >60 J l *9E IN IHd G9G 60 ' f r J * j ' 6a c 8a iridNi 29G « # H30HO'S.HAV 03131dWOO JO #'S.ON| JO # * * ON I * 1HV1S.. IN I Hd 1 9G « : 3 A 1 0 ONV 3dVl aVOl ' indNl VIVO 3dVl H3dVd.. IN I Hd 09G indNI VIVO 3dVl H3dVd W3H 6SG t . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * W3H BSE NHD13H 2SG - £0T -- 104 -427 LET G2=G2-D6 428 GOTO 423 430 IF D6<=.005 GOTO 435 431 LET G2=G2+D6 432 LET D6=D6/2 434 GOTO 423 435 LET F9=G2 436 RETURN 437 PRINT "OUT OF RANGE" 438 RETURN 448 REM ******************************************* 449 REM CONVERT WAVELENGTH 450 PRINT "WAVELENGTH""J 451 INPUT Gl 452 LET G1=G1*C9 453 GOSUB 420 454 PRINT " W.D.*MJF9J" E=M J 1239 .85/G 1 455 RETURN 458 REM *************************************** 459 REM CONVERT E 460 PRINT ^E(MEV) ="J 461 INPUT G 462 LET Gl=1239 .85*C9/Q 463 GOSUB 420 464 PRINT ** W.D.="JF9JM WAVELENGTH=mJG 1 /C9 46 5 RETURN 466 REM ******************************************* 469 REM CALLIBRAT I ON REVISION 470 PRINT "CALLIBRATION REVISION" 471 PRINT 472 PRINT "GIVE WAVELENGTH, NEW W.D. AND ORDER #" 473 INPUT Gl,F9,G4 474 LET G2= FNE(F9)/G4 477 LET G3=G1-G2 478 LET C4=C4+G3 479 LET C5=C5+2*C6*G3/C5 460 PRINT " NEW PARAMETERS="tC4*C5 481 RETURN 486 REM ********************************************* 489 REM INTENSIF I ED POINT PARAMETERS 490 LET F9=(D8+D9*(G5-1)>/200 491 LET Gl= FNE(F9)/C9 492 LET G = 1239,85/GI 493 CALL 8,G5-V,D6 494 PRINT "W.D.="JF9;" E="JGr* WAVELENGTH*"JG1J" V="iD6/1638.4 495 RETURN 498 REM ********************************************* 499 REM CONVERT POWER TO LOCATION 500 IF G8>1 .2 GOTO 504 501 IF G8< .01 5 GOTO 504 502 LET G9= INT (20 I 6 -G8*l 052 ) 503 RETURN J 01 0 = 8J HOJ CIS U S 0100 91 = 90 J l 2^ .9 9a r 9i '6 n v o us 0 R 11 n v o 0is 029 SnSOO 999 019 0100 999 009 8flS00 *99 99S 0100 2=EJ JI £99 NHfU3H 299 ..viva ON » IN I ad 19S E9S 0100 0 < 10 AI 09S 'O-M SA VIVO l O l d W3H 699 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * W3H 899 NHni3H 8*9 f.... INIHd i fS 60= iO 131 9fr9 90 1X3N 9*9 0009' I'E 11V0 fr*9 9 i ' i 2 i i v o e>9 0009' I 'E 11 VO 2fr9 91'02 11 VO 1*9 60-10 01 1 = 9a HOJ 0*9 NHni3H 6C9 INIHd 8E9 60=10 131 £E9 90 1X3N 9E9 00001'I 'E 11V0 9E9 91 '12 11V0 *E9 0 0 9 i ' t ' e n v o ec9 91'02 11VO 2C9 10-60 01 1 = 90 HOJ IC9 0*9 010 0 0 >10-60 J l 0E9 H010W H3SV1 3A0W W3H 629 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * W3M 829 NHfll3H E29 0E9 8nS0 0 229 009 SnSOO 129 IN I Hd 029 80 IHdNI 619 f«=d. . IN I «d 8(9 INIHd ITS 002*90=LD 131 9 19 219 0100 0 >9a Al 919 219 0100 0K9O Al *19 . 90 IHdN I £ IS f..=XX*X 0NIOV3H IV10 H3SV1 1N3HHF10 3AI0.. INIHd 219 1 = 0 131 I IS 819 0100 0 <0 J l 019 H3M0d 03HIS30 IfldN I W3H 60S * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * W3M 80S NHDISH S0S -30NVH SaiSlflO d« INIHd *09 - SOT -- 106 -574 CALL 9*16*D6 575 IF D6> 0 GOTO 571 576 CALL 8,F8,H4 577 IF F3=2 GOTO 585 578 CALL 12*-1600+F8*3200/F,H2*(H3+H4> 579 CALL 11*1 580 GOTO 589 585 CALL 8*F8+F+1*H5 586 CALL 12,-1600+3200*F8/F*H2*(H3+H4+H5) 587 CALL 11,T 588 CALL 12*-1600+3200*F8/F*H2*(H3+H4-H5) 589 CALL 11 * 0 590 NEXT F8 591 RETURN 598 REM ***************************************** 599 REM SIZES BUFFER WITHOUT S.D. 600 LET H=200000 601 LET HI=-200000 602 FOR D6= 0 TO F 603 CALL 8*D6*G4 604 IF H<G4 GOTO 606 605 LET H=G4 606 IF H1>G4 GOTO 608 607 LET H1=G4 608 NEXT D6 609 LET H2=2400/(H1-H> 6.1.0 LET H3 = (H1 *H>/(-2> 61.1 PRINT "PEAK TO PEAK V=" J (HI -H) / I 6 38 .4 61.2 RETURN 61.8 REM ********************************************** 619 REM SIZES BUFFER WITH S.D. 620 LET H=200000 621 LET HI=-200000 622 LET G2=200000 623 LET G3=-200000 624 FOR D6= 0 TO F 625 CALL 8*D6*H4 626 CALL 8*D6+F+1*H5 627 IF H<H4-H5 GOTO 629 628 LET H=H4-H5 . ... 629 IF Hl>H4+H5 GOTO 631 630 LET H1=H4+H5 631 IF G2<H4 GOTO 633 632 LET G2=H4 633 IF G3>H4 GOTO 635 634 LET G3=H4 635 NEXT D6 640 PRINT "PEAK TO PEAK V="j(HI-H)/I 638 .4 641 LET H2=2400/(H1-H) 642 LET H3=(H1+H)/(-2) 643 RETURN - 107 -648 REM ****************************************** 649 REM PLOT VS ENERGY 650 IF Cl> 0 GOTO 655 651 PRINT "NO DATA" 652 RETURN 655 LET H6=.I239.85*C9/ FNE((D8+F*D9)/200> 658 LET H7=1239.85*09/ FNE(D8/200) 660 PRINT "LOWEST E="JH6i" HIGHEST E="JH7 661 PR I NT 662 PRINT "ENTER LOWER AND UPPER E LIMITS AND I NCR. FOR X AXIS" 663 INPUT H8,H9,l 664 LET 14= 1 NT ((H9-H8)/I+.5) 66 5 FOR D6= 0 TO 14 666 CALL 12,C-1600+D6*3200/I4)*.67,(-1250)*.55 66 7 CALL 11*1 668 CALL 1.2 , ( -.1.600 +D6*3200 /14)*.67,(-1200)*.55 669 CALL 12,(-I600+D6*3200/I4)*.6 7,(-1250)*.55 670 NEXT D6 671 FOR D6= 0 TO 14 672 CALL 1.2 ,( - .1.600 + ( 14 -D6 ) *3200 /! 4)*.67,( 1.250 ) * .55 673 CALL .1.2, ( -.1.600+ < 1 4-D6) *3200/l 4) * .67, (.1.200) * .55 674 CALL 12,(-1600+(I4-D6)*3200/14)*.67,(I250)*.55 675 NEXT D6 676 CALL .1.2,(-1600)*.67,(-1250)*.55 677 CALL II) 0 678 LET I2=3200/(H9-H8) 679 LET I3=1600/I2-H9 680 IF F3=2 GOTO 685 681 GOSUB 600 682 GOTO 690 685 GOSUB 620 690 CALL 9,32,D6 691 IF D6> 0 GOTO 690 692 FOR F8= 0 TO F 693 CALL 9,32,D6 694 IF D6> 0 GOTO 690 695 LET I 1=1239 .85*C9/ FNE((D8+F8*D9)/200) 696 CALL 8,F8,H4 697 IF I 2* ( I 3+I.!.)<=.! 600 GOTO 7.10 698 IF I2*(I 3+11)>T600 GOTO 710 699 IF F3=2 GOTO 705 700 CALL 12,CI2*(I3+I1))*.67,(H2*(H3+H4))*.55 701 CALL 11,1 702 GOTO 709 705 CALL 8,F8+F+1,H5 706 CALL 12,(I2*(l1 + I 3))*.67,(H2*(H3+H4+H5))*.55 707 CALL 11,1 708 CALL 12,(I2*(I1 + I 3))*.67,(H2*(H3+H4-H5))*.55 709 CALL 11,0 • 7.10 NEXT F8 711 RETURN 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0093243/manifest

Comment

Related Items