UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Studies on gallium arsenide technology Boyd, Graeme B. 1981

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

Item Metadata

Download

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

Full Text

STUDIES ON GALLIUM ARSENIDE TECHNOLOGY by GRAEME B. BOYD B . S c , E l e c t r i c a l E n g i n e e r i n g , Queen's U n i v e r s i t y , 1979 A THESIS SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTERS OF APPLIED SCIENCE in THE FACULTY OF GRADUATE STUDIES (Department of E l e c t r i c a l Engineering) We accept t h i s t h e s i s as comforming to the r e q u i r e d standard THE UNIVERSITY OF BRITISH COLUMBIA SEPTEMBER 1981 © Graeme B. Boyd I n p r e s e n t i n g t h i s t h e s i s i n p a r t i a l f u l f i l m e n t o f t h e r e q u i r e m e n t s f o r an a d v a n c e d d e g r e e a t t h e U n i v e r s i t y o f B r i t i s h C o l u m b i a , I a g r e e t h a t t h e L i b r a r y s h a l l make i t f r e e l y a v a i l a b l e f o r r e f e r e n c e a n d s t u d y . I f u r t h e r a g r e e t h a t p e r m i s s i o n f o r e x t e n s i v e c o p y i n g o f t h i s t h e s i s f o r s c h o l a r l y p u r p o s e s may be g r a n t e d by t h e h e a d o f my d e p a r t m e n t o r by h i s o r h e r r e p r e s e n t a t i v e s . I t i s u n d e r s t o o d t h a t c o p y i n g o r p u b l i c a t i o n o f t h i s t h e s i s f o r f i n a n c i a l g a i n s h a l l n o t be a l l o w e d w i t h o u t my w r i t t e n p e r m i s s i o n . D e p a r t m e n t o f EL.ECTfZ\ c A L Bhi(j-'iN£E £ < ^  q-The U n i v e r s i t y o f B r i t i s h C o l u m b i a 2075 W e s b r o o k P l a c e V a n c o u v e r , C a n a d a V6T 1W5 D a t e DE-6 (2/79) i i ABSTRACT Before g a l l i u m a r s e n i d e technology can mature, a s u i t a b l e d i e l e c t r i c l a y e r i s r e q u i r e d . In previous work s e v e r a l d i e l e c t r i c s have been t r i e d , ranging from thermally grown n a t i v e oxide to a n o d i c a l l y o x i d i z e d aluminium, but as yet no s u i t a b l e d i e l e c t r i c has been found. In the present work two d i e l e c t r i c l a y e r s were i n v e s t i g a t e d f o r t h e i r s u i t a b l i t y , these being anodic n a t i v e oxide and anodic z i r c o n i u m oxide. O p t i c a l and e l e c t r i c a l p r o p e r t i e s of both oxides were used as the t e s t i n g methods f o r the i n v e s t i g a t i o n . The e l e c t r i c a l p r o p e r t i e s were deduced from examining c a p a c i t a n c e - v o l t a g e and conductance-voltage c h a r a c t e r i s t i c s . The o p t i c a l p r o p e r t i e s were observed u s i n g an e l l i p s o m e t e r . The wavelength of l i g h t used i n the e l l i p s o m e t e r was 632.8 nm. S e v e r a l *-A p o i n t s were obtained f o r each sample by changing the angle of i n c i d e n c e so that the o p t i c a l i n d i c e s and f i l m t h i c k n e s s c o u l d be found. The o p t i c a l and e l e c t r i c a l p r o p e r t i e s of the anodic n a t i v e oxide were found to be s i m i l a r to those p r e v i o u s l y r e p o r t e d . The anodic z i r c o n i u m oxide o p t i c a l and e l e c t r i c a l p r o p e r t i e s were found to be extremely dependent upon the annealing h i s t o r y . In one case a f t e r a n n e a l i n g , the o p t i c a l i n d i c e s c o u l d no longer be determined while i n another case the i n d i c e s remained unchanged but the t h i c k n e s s decreased and s u r f a c e "bumps" were det e c t e d . I t was a l s o found that a f t e r annealing, the oxide was e x c e s s i v e l y l e a k y . Before a f u l l understanding of these e f f e c t s can be obtained, f u r t h e r work i s r e q u i r e d . I i i i TABLE OF CONTENTS 1. INTRODUCTION 1 2. OVERVIEW OF GaAs 3 2.1 Advantages of GaAs 3 2.2 GaAs Devices 5 2.3 Reasons For Surface P a s s i v a t i o n 8 3. PREVIOUS WORK ON PASSIVATING GaAs 10 3.1 Native Oxides On GaAs 10 3.2 Non - Native I n s u l a t o r s On GaAs 15 4. EXPERIMENTAL PROCEDURES 1 9 4.1 Substrate P r e p a r a t i o n 19 4.2 D e p o s i t i o n Of Zirconium 20 4.3 Anodic O x i d a t i o n And Annealing 20 5. TESTING METHODS 25 5.1 E l l i p s o m e t r y 25 5.2 The High Frequency C-V A n a l y s i s 25 5.3 V a r i a b l e Frequency C-V Measurements 29 6. RESULTS 30 6.1 E l l i p s o m e t r y 30 6.2 I n t r i n s i c Oxide 45 6.3 Native Oxide 47 6.4 Zirconium Oxide 52 7. CONCLUSIONS 58 REFERENCES 60 APPENDIX A 65 APPENDIX B 102 APPENDIX C 106 i v LIST OF TABLES 2.1 P r o p e r t i e s Of Various Semiconductors At 300 K 4 6.1 N a t i v e Oxide Indices Obtained 33 6.2 P r e v i o u s E l l i p s o m e t r y I n d i c e s 34 6.3 Zirconium I n d i c e s Obtained 40 6.4 Zirconium Oxide I n d i c e s Obtained 45 6.5 Summary Of Comparative Study 47 LIST OF FIGURES 2.1 FET Family 6 2.2 Channel Modulation Of A Normally-On FET 7 4.1 Anodic O x i d a t i o n Apparatus 21 4.2 Zr Formation Voltage-Time Curve (sample 8) 23 5.1 The 1 MHz C-V Apparatus 27 6.1 E l l i p s o m e t r y P l o t f o r a Growing Native Oxide (sample 1) 31 6.2 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Native Oxide (sample 7) 32 6.3 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Annealed Native Oxide (sample 7) 33 6.4 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Evaporated Zr i n UHVS (sample 3) 35 6.5 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Evaporated Zr i n CHA (sample 8) 36 6.6 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Sputtered Zr P=10' 6T (sample 9) 37 6.7 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Sputtered Zr P=3X10" 7T (sample 10) 38 6.8 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Annealed Sputtered Zr P=3xl0' 7T (sample 10) 39 6.9 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r O x i d i z e d Evaporated Zr (sample 8) 41 6.10 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r O x i d i z e d Sputtered Zr P=3X10" 7T (sample 10) 42 6.11 An SEM P i c t u r e of Annealed Z r 0 2 (sample 8) 43 v i 6.12 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r Annealed Z r 0 2 (sample 8) 44 6.13 M u l t i p l e Angle of Incidence E l l i p s o m e t r y P l o t f o r I n t r i n s i c Oxide 46 6.14 M u l t i p l e Frequency C-V Curves f o r Native Oxide (sample 7) 48 6.15 M u l t i p l e Frequency G-V Curves f o r Native Oxide (sample 7) 49 6.16 E l e v a t e d Temperature 1 MHz C-V Curves f o r Native Oxide (sample 7) 50 6.17 Room Temperature 1 MHz C-V P l o t with I n f r a Red L i g h t f o r Native Oxide (sample 7) 52 6.18 1 MHz C-V Curves f o r Z r 0 2 (samples 8 and 10) 53 6.19 E l e v a t e d Temperature 1 MHz C-V Curves f o r Z r 0 2 (sample 10) . 54 6.20 E l e v a t e d Temperature 1 MHz C-V Curves f o r Z r 0 2 (sample 11) 56 v i i ACKNOWLEDGEMENTS I would l i k e to express my g r a t i t u d e f o r the understanding and guidance thoughout my stay , to my s u p e r v i s o r Dr. L. Young. I would very much l i k e to thank Dr. D. Smith and M.J. Ahmed f o r many h e l p f u l d i s c u s s i o n s and f o r p u t t i n g up with me. The N a t u r a l Science and E n g i n e e r i n g Research C o u n c i l i s g r a t e f u l l y acknowledged f o r f i n a n c i a l support. Many thanks to M. Major f o r doing the impossible with the SEM and microprobe. F i n a l l y , I would l i k e to thank M. Campbell, Dr. D. Smith and Dr. G. T a r r f o r p r o o f - r e a d i n g the m u l t i p l e d r a f t s of t h i s t h e s i s . 1 1. INTRODUCTION G a l l i u m a r s e n i d e i n t e g r a t e d m o n o l i t h i c microwave c i r c u i t s are d e s i r a b l e f o r both c i v i l i a n communications and m i l i t a r y use. T h i s i s because of g a l l i u m a r s e n i d e ' s higher speed over s i l i c o n along with s e v e r a l other advantages (see s e c t i o n 2.1). Thus g a l l i u m a r s e n i d e w i l l continue to r e c e i v e a c o n s i d e r a b l e amount of a t t e n t i o n . Four stage m o n o l i t h i c a m p l i f i e s are now commercially a v a i l a b l e and MSI c i r c u i t s are being t e s t e d i n l a b o r a t o r i e s . One of the reasons why MSI and LSI c i r c u i t s have not yet become commercially a v a i l a b l e i s because there are problems with the long-term s t a b i l i t y of d e v i c e s . Here g a l l i u m a r s e n i d e i s a t about the same stage of development as s i l i c o n was before a method of c o n s i s t e n t l y o b t a i n i n g a high q u a l i t y d i e l e c t r i c * l a y e r was found. As yet no s u i t a b l e d i e l e c t r i c has been found f o r g a l l i u m a r s e n i d e and i t i s to f u r t h e r t h i s cause that t h i s t h e s i s i s d i r e c t e d . Two d i f f e r e n t d i e l e c t r i c l a y e r s were t r i e d , the f i r s t was anodic n a t i v e oxide and the second was anodic zirconium oxide. The n a t i v e oxide was used to v e r i f y the t e s t i n g methods t h a t were u t i l i z e d , by comparing the present r e s u l t s with those p r e v i o u s l y r e p o r t e d . A review of p o r t i o n s of the p u b l i s h e d r e s e a r c h i n t o GaAs p a s s i v a t i o n , has l e d t h i s author to conclude that the d i e l e c t r i c must at l e a s t prevent a r s e n i c b u i l d u p at the i n t e r f a c e . Anodic zirconium oxide has the s p e c i a l c h a r a c t e r i s t i c that only oxygen ions move du r i n g a n o d i z a t i o n . I t was thought that t h i s c h a r a c t e r i s t i c would prevent any a r s e n i c l e a v i n g the s u b s t r a t e , thereby m a i n t a i n i n g the s u b s t r a t e s t o i c h i o m e t r y a t the i n t e r f a c e . 2 As p a r t of a c o n t r i b u t i o n to the c o n t i n u i n g work on g a l l i u m a r s e n i d e at UBC s e v e r a l FORTRAN programs were w r i t t e n , these being: CV a program that measures and analyzes high frequency (1 MHz) C-V curves (see Appendix A f o r the i n s t r u c t i o n manual and source l i s t i n g ) , VFCV a program to measure C-V curves between 2 Hz and 200 kHz (see s e c t i o n 5.3), ANALYS a program w r i t t e n to h e l p analyse e l l i p s o m e t r y data (see Appendix B f o r the i n s t r u c t i o n manual), VS a small program that was used to determine the break p o i n t i n the formation v o l t a g e - t i m e curve (see s e c t i o n 4.3 and Appendix C f o r the source l i s t i n g ) and f i n a l l y MTS, a PAL8 program used to l i n k the PDP8/e and AMADAHL/470 computers. Chapters 2 and 3 give an overview of g a l l i u m a r s e n i d e and the p r e v i o u s work on p a s s i v a t i o n . Chapters 4 and 5 g i v e the experimental procedures and t e s t i n g methods u t i l i z e d . Chapter 6 g i v e s the r e s u l t s of the work performed. C o n c l u s i o n s and suggestions f o r f u r t h e r work are given i n Chapter 7. 3 2. OVERVIEW OF GaAs 2.1 Advantages of GaAs G a l l i u m a r s e n i d e has been r e c e i v i n g c o n s i d e r a b l e a t t e n t i o n , e s p e c i a l l y over the l a s t f i v e y ears, due to i t s m u l t i p l e advantages over s i l i c o n . From i n s p e c t i o n of t a b l e 2.1, the main advantages of GaAs over S i are i t s higher e l e c t r o n m o b i l i t y , i t s higher maximum o p e r a t i n g temperature and the a b i l i t y to make the s u b s t r a t e s e m i - i n s u l a t i n g . The higher e l e c t r o n m o b i l i t y i n c r e a s e s the transconductance of n-channel d e v i c e s . The higher maximum o p e r a t i n g temperature allows a l a r g e r packing d e n s i t y , although care must be taken as the thermal c o n d u c t i v i t y i s only about 1/3 that of S i . When the s u b s t r a t e i s made s e m i - i n s u l a t i n g not only are dev i c e s i s o l a t e d from each other, but the s u b s t r a t e can a l s o be used as the d i e l e c t r i c f o r m i c r o s t r i p l i n e s . Another advantage of GaAs i s that i n s t a b i l i t i e s can be produced i n the e l e c t r o n flow a l l o w i n g very high frequency c i r c u i t s to be i n t e g r a t e d and t h e o r e t i c a l l y mixed with other d e v i c e s . F i n a l l y LED's and l a s e r s can be f a b r i c a t e d on GaAs, and i t may become p o s s i b l e to i n t e g r a t e them on the same s u b s t r a t e as, f o r example, modulating e l e c t r o n i c s . As GaAs s u b s t r a t e s are c o n s i d e r a b l y more expensive than S i s u b s t r a t e s , GaAs d e v i c e s can only be a v i a b l e a l t e r n a t i v e i n those areas where S i i s not s u i t a b l e . At present the two major t a r g e t s of GaAs technology are i n the u l t r a high speed d i g i t a l c i r c u i t area and i n the m o n o l i t h i c microwave i n t e g r a t e d c i r c u i t a r e a . 4 TABLE 2. 1 P r o p e r t i e s of V a r i o u s Semiconductors at 300 K P r o p e r t i e s Ge S i InP GaAs Ref Breakdown f i e l d (V/cm) = 1 0 5 =3X10 5 ="4x10 = 1 E l e c t r o n a f f i n i t y (eV) 4.00 4.05 4.38 4.07 1,4 Energy gap (eV) 0.66 1.12 1 .29 1 .43 1 I n t r i n s i c c a r r i e r c o n c e n t r a t i o n (cm" 3) 2.4x10 1 3 1.6x1O 1 0 =6x10 7 1 . 1 x 1 0 7 1,5 M i n o r i t y c a r r i e r 1 i f e t ime (sec) 10' 3 1.2x10" 3 = io-6 = 1 o-8 1,4 M o b i l i t y ( i n t r i n s i c ) (cm 2/V-sec) e l e c t r o n s holes 3900 1900 1500 600 4600 150 8500 400 1 1 Maximum operat ing temperature (°C) 100 200 350 2 P e r m i t t i v i t y 16 11.8 12.35 13.13 1,6 Substrate r e s i s t i v i t y ( i n t r i n s i c ) (n-cm) 43 2.5x10 s 4x1 0 8 3 T r a n s i t i o n I n d i r e c t I n d i r e c t D i r e c t D i r e c t 3 V e l o c i t y of e l e c t r o n s (cm/sec) peak s a t u r a t i o n 6x10 s 6x10 s 1x1 0 7 1x1 0 7 2.8X10 7 2.5X10 7 2.1X10 7 1x1 0 7 1,6 1,6 5 2.2 GaAs Devices The d e v i c e s most o f t e n used i n GaAs technology are the n-channel F i e l d E f f e c t T r a n s i s t o r (FET) fa m i l y (see f i g u r e 2.'l), of which there are four t ypes. These are the J u n c t i o n FET (JFET), the S e m i - I n s u l a t i n g Gate FET (SIGFET), the Metal Semiconductor FET (MESFET) and the Metal I n s u l a t o r Semiconductor FET (MISFET). A l l of these FET's work on the same p r i n c i p l e of modulating the channel by the d e p l e t i o n region v i a the gate v o l t a g e (see f i g u r e 2.2). As the gate v o l t a g e i s decreased the d e p l e t i o n r e g i o n expands thereby reducing the channel's t h i c k n e s s and c u r r e n t ( f i g u r e 2.2b). T h i s c o n t i n u e s u n t i l the channel becomes p i n c h e d - o f f , at which p o i n t no c u r r e n t w i l l flow i n the channel ( f i g u r e 2.2c). The v o l t a g e r e q u i r e d to p i n c h the channel o f f , whether negative ( i . e . a normally-on device) or p o s i t i v e ( i . e . a n o r m a l l y - o f f d e v i c e ) , i s c o n t r o l l e d by the gate metal work f u n c t i o n , the channel's t h i c k n e s s and doping c o n c e n t r a t i o n . As the gate v o l t a g e i n c r e a s e s the d e p l e t i o n r egion d i m i n i s h e s which i n c r e a s e s the channel's t h i c k n e s s and c u r r e n t ( f i g u r e 2.2d). T h i s c o n t i n u e s u n t i l the gate v o l t a g e becomes too l a r g e and forward b i a s breakdown oc c u r s . T h i s v o l t a g e i s about 0.7 v o l t s f o r MESFET's, 1 v o l t f o r JFET's, 2 v o l t s f o r SIGFET's and i s v a r i a b l e (up to the i n s u l a t o r ' s breakdown strength) f o r MISFET's by changing the i n s u l a t o r ' s t h i c k n e s s . Most of the GaAs c i r c u i t s made so f a r have been f a b r i c a t e d with normally-on MESFET's and Schottky diodes. These c i r c u i t s u n f o r t u n a t e l y have s e v e r a l problems, which mainly stem from the small forward b i a s breakdown v o l t a g e . One of the main problems Figure 2.1 FET Family (a) JFET (b) SIGFET (c) MESFET (d) MISFET [26] tvchannel "(d) Figure 2.2 Channel Modulation of a Normally-on FET [6] (a) Zero gate voltage (b) Negative gate voltage (c) Pinch-off voltage (d) P o s i t i v e gate voltage 8 i s i n c a s c a d i n g s e v e r a l d e v i c e s together, which r e q u i r e s l e v e l s h i f t i n g stages between gates; t h i s i n c r e a s e s the power consumption per gate and reduces the packing d e n s i t y . Although l e v e l s h i f t i n g i s not r e q u i r e d f o r the n o r m a l l y - o f f MESFET c i r c u i t s , the n o i s e margins are very s m a l l . Another problem i s that poor i s o l a t i o n e x i s t s between the input and the output of the MESFET due to the l a r g e leakage c u r r e n t s that occur when the gate i s forward b i a s e d . The remaining FET's are capable of reducing these problems by v a r y i n g degrees. The SIGFET's, due to other problems, do not appear to be f a b r i c a t e d any more while no recent papers have been found f o r the JFET's. The MISFET's are capable of e l i m i n a t i n g most of the problems of the MESFET's, i f a d i e l e c t r i c of comparable q u a l i t y to t h e r m a l l y grown S i 0 2 on S i can be found f o r GaAs. There i s at present c o n s i d e r a b l e r e s e a r c h being d i r e c t e d i n t o t h i s area (see Chapter 3). 2.3 Reasons f o r Surface P a s s i v a t i o n The major reason f o r s u r f a c e p a s s i v a t i o n i s to prevent i m p u r i t i e s from a l t e r i n g the long term d e v i c e c h a r a c t e r i s t i c s of FET's. These i m p u r i t i e s can reduce the d e v i c e ' s transconductance to the p o i n t of rendering the FET u s e l e s s . T h i s i s caused by the i m p u r i t i e s a c t i n g as s c a t t e r i n g c e n t r e s and/or deep l e v e l t r a p s . Impurity can a l s o change the p i n c h - o f f and forward b i a s breakdown v o l t a g e s by modifying the s u r f a c e p o t e n t i a l v i a the s u r f a c e s t a t e d e n s i t y d i s t r i b u t i o n [ 7 ] . Another reason f o r s u r f a c e p a s s i v a t i o n i s to ensure long l i f e and s t a b i l i t y f o r double h e t e r o j u n c t i o n (DH) l a s e r d i o d e s . The o p t i c a l c a v i t y p r o p e r t i e s can change i f a constant r e f l e c t i v i t y i s not maintained at the l a s e r ' s f a c e t s . Changes i n r e f l e c t i v i t y can be 9 caused by non-uniform p a s s i v a t i o n of the f a c e t s , which was found to be enhanced by a h i g h d e n s i t y of photons and water vapour [ 7 ] . F i n a l l y good q u a l i t y MISFET's cannot be f a b r i c a t e d without the p a s s i v a t i n g l a y e r having e x c e l l e n t e l e c t r i c a l c h a r a c t e r i s t i c s . 10 3. PREVIOUS WORK ON PASSIVATING GaAs 3.1 Native Oxides on GaAs U n l i k e t h e r m a l l y grown S i 0 2 which i s the best known d i e l e c t r i c l a y e r f o r S i , and has e x c e l l e n t e l e c t r i c a l p r o p e r t i e s , t h e r m a l l y grown n a t i v e oxides on GaAs have very poor e l e c t r i c a l p r o p e r t i e s . T h i s i s a p p a r e n t l y due to the temperature r e q u i r e d to grow the oxide, which produces a mainly p o l y c r y s t a l l i n e g a l l i u m oxide ( G a 2 0 3 ) . T h i s p o l y c r y s t a l l i n e G a 2 0 3 i s not only leaky [ 7 ] , but has poor i n t e r f a c e p r o p e r t i e s as a l a r g e number of vacancies are formed, due to the high v o l a t i l i t y of As [ 8 ] . Takagi et a l [9] attempted to s o l v e t h i s by o x i d i z i n g under a c o n t r o l l e d a r s e n i c oxide ( A s 2 0 3 ) vapour p r e s s u r e . The r e s u l t i n g oxide, though b e t t e r , s t i l l possessed very l i t t l e A s 2 0 3 and elemental c r y s t a l l i n e As was a l s o found thoughout the f i l m [10]. As i t has become evident that t h e r m a l l y grown oxides do not possess the necessary e l e c t r i c a l c h a r a c t e r i s t i c s , other methods of growing n a t i v e oxides have been i n v e s t i g a t e d . The p r i n c i p a l methods are plasma a n o d i z a t i o n and anodic o x i d a t i o n . As both of these methods are low temperature processes, many of the problems of the thermal oxides do not occur. The s i m p l e s t form of plasma a n o d i z a t i o n c o n s i s t s of a vacuum system having an oxygen pr e s s u r e of about 10"" T o r r and a p o s i t i v e l y b i a s e d sample between the cathode and anode. The oxygen plasma i s i g n i t e d by a p p l y i n g a s u i t a b l e v o l t a g e to the cathode. The above method i s c a l l e d dc plasma a n o d i z a t i o n . An a l t e r n a t i v e form, the s o - c a l l e d RF plasma a n o d i z a t i o n , uses an 1 11 RF c o i l around the vacuum system to induce the oxygen plasma. The plasma can be m a g n e t i c a l l y c o n f i n e d i n order to reduce contamination. Both methods have been used s u c c e s s f u l l y i n producing n e a r l y s t o i c h i o m e t r i c n a t i v e o x i d e s . The dc plasma a n o d i z a t i o n system i s cheaper than the corresponding RF system, but the oxide growth rate i s slower and as a r e s u l t there i s a much l a r g e r As e n r i c h e d i n t e r f a c e region than the RF plasma oxides have. T h i s i n t e r f a c e region i s about 50 nm f o r a 175 nm t h i c k oxide [11]. Annealing the sample i n N 2 at 450°C f o r 30 minutes, although m a r g i n a l l y reducing the amount of As, d i d not s i g n i f i c a n t l y reduce the width of the i n t e r f a c e region [11]. The RF plasma oxides t y p i c a l l y have very narrow i n t e r f a c e r e g i o n s , on the order of 2 to 10 nm f o r a 100 nm t h i c k oxide, depending on the growth r a t e [ 8 ] . The e l e c t r i c a l p r o p e r t i e s of these f i l m s , although b e t t e r than t h e r m a l l y grown n a t i v e o x i d e s , are s t i l l poor. T y p i c a l l y , they have a l a r g e s u r f a c e s t a t e d e n s i t y c a u s i n g Fermi l e v e l p i n n i n g [12], are leaky when i n re v e r s e b i a s and have low breakdown v o l t a g e s [13]. As the oxide i s leaky and the Fermi l e v e l i s pinned, the i n v e r s i o n l a y e r i s not u s u a l l y formed on n-GaAs at room temperature. However, i t has been found e x p e r i m e n t a l l y that the i n v e r s i o n l a y e r can be formed at e l e v a t e d temperatures [14], There have been s e v e r a l papers presented t r y i n g to e x p l a i n why these problems occur. Chang [15] showed that elemental As d e t e r i o r a t e s the e l e c t r i c a l p r o p e r t i e s of plasma n a t i v e oxides. S p i c e r et a l [16] found that the F e r m i - l e v e l was pinned i f a small f r a c t i o n of a monolayer of e i t h e r oxygen or a metal was 12 present on the GaAs s u r f a c e . Hasegawa et a l [17] proposed the i n t e r f a c e s t a t e band model i n which the band s t r u c t u r e i s r e l a t e d to the formation of a t h i n d i s o r d e r e d amorphous-like GaAs l a y e r at the i n t e r f a c e . S e v e r a l attempts have been made to remedy these problems, fo r example Chang et a l [13] used a double l a y e r oxide, to attempt to make the n a t i v e oxide more c o n s i s t e n t at the i n t e r f a c e and to i n c r e a s e the breakdown v o l t a g e . A t h i n l a y e r of A l and p a r t of the GaAs s u b s t r a t e were anodized i n a RF plasma system. The method, though showing promise, was subseqently abandoned i n favour of a method c a l l e d " S e l e c t i v e O x i d a t i o n of GaAs" [15,18]. The b a s i c idea was to use a mixture of oxygen and f l u o r i n e ( i n the form CF„) i n s t e a d of j u s t oxygen as the plasma. The f l u o r i n e i s b e l i e v e d to combine with the As so as to reduce the amount of elemental c r y s t a l l i n e As, not only at the oxide/GaAs i n t e r f a c e but throughout the oxide. Shinoda et a l [19] f i r s t s p u t t e r e d o f f the i n t r i n s i c oxide, u s i n g p o s i t i v e oxygen i o n s , before a n o d i z i n g the sample i n an oxygen plasma. T h i s was probably done to prevent the t h i n i n t r i n s i c oxide from having any e f f e c t on the f i n a l oxide p r o p e r t i e s . The r e s u l t i n g oxide, which c o n s i s t e d mainly of G a 2 0 3 , d i d not seem to have an As e n r i c h e d i n t e r f a c e , but the GaAs s u r f a c e was As d e f i c i e n t . Both of the above methods showed some improvements i n the C-V curves p r o v i d e d . Chang et a l [15,18] only gave one C-V curve at 1 MHz, and p l o t t e d i t i n the form of C/C 0 vs V. No method was given f o r how C 0 was o b t a i n e d , thus the assumption i s that the maximum c a p a c i t a n c e was used as C 0. I f t h i s was i n f a c t the case, then the r e s u l t s are q u e s t i o n a b l e due to the l a r g e 13 frequency d i s p e r s i o n (of the accumulation c a p a c i t a n c e ) normally a s s o c i a t e d with plasma and anodic o x i d e s . Shinoda et a l [19] gave three C-V curves at 16 Hz, 1 kHz and 10 kHz. As no high frequency C-V curve (> 500 kHz) was g i v e n , no r e a l i n f o r m a t i o n p e r t a i n i n g to the i n v e r s i o n or accumulation regions can be o b t a i n e d . A l l that can be s a i d i s that the amount of h y s t e r e s i s appears to be reduced. The advantage of using anodic o x i d a t i o n over plasma a n o d i z a t i o n i s that no e l a b o r a t e equipment i s r e q u i r e d . A l l that i s needed i s a s u i t a b l e e l e c t r o l y t i c s o l u t i o n , masking of the sample where o x i d a t i o n i s not d e s i r e d and an e l e c t r i c a l contact to the GaAs. There are s e v e r a l e l e c t r o l y t e s that can be used to anodize GaAs, but the best known are the so c a l l e d A n o d i z a t i o n i n a mixture of G l y c o l and Water (AGW) s o l u t i o n s f i r s t put forward by Hasegawa and Hartnagel [20]. These s o l u t i o n s u s u a l l y c o n s i s t of one p a r t 3% aqueous s o l u t i o n and two p a r t s ethylene g l y c o l . The aqueous s o l u t i o n may be pH a d j u s t e d ( u s u a l l y with NH,OH), although t h i s i s not necessary. There are many types of s o l u t i o n s that can be used, the most common ones are 3% by weight s o l u t i o n s o f : t a r t a r i c a c i d [20], ammonium pentaborate [21] and c i t r i c a c i d [22], Anodic o x i d a t i o n , l i k e dc plasma a n o d i z a t i o n , i s u s u a l l y slower than RF plasma a n o d i z a t i o n ( i n order to grow a uniform f i l m ) and c o r r e s p o n d i n g l y has a wider As e n r i c h e d i n t e r f a c e r e g i o n [23]. U n f o r t u n a t e l y anodic oxides a l s o have the same problems as plasma oxides, although the breakdown v o l t a g e s are t y p i c a l l y higher [8,13]. Geib et a l [23] have r e c e n t l y come up with a model of the 14 i n i t i a l growth of anodic o x i d a t i o n by using ESCA p r o f i l i n g . I t was shown that the o x i d a t i o n s t a r t s by n u c l e a t i o n and i s l a n d growth. These i s l a n d s are approximately 2 nm t h i c k and are composed almost e n t i r e l y of G a 2 0 3 , with t r a c e s of A s 2 0 3 observed only on the i s l a n d s u r f a c e s . Elemental c r y s t a l l i n e As was found at the i n t e r f a c e between the i s l a n d s and the GaAs s u b s t r a t e . Once the i s l a n d s merged i n t o a s i n g l e continuous f i l m , the bulk of the oxide was approximately s t o i c h i o m e t r i c , but the i n t e r f a c e region had not changed from that of the i n i t i a l growth. Thus i f t h i s model i s c o r r e c t , then the i n i t i a l growth of the oxide w i l l almost completely dominate the i n t e r f a c e region and t h e r e f o r e the e l e c t r i c a l p r o p e r t i e s of the f i n a l o xide. Most n a t i v e oxides have a l a r g e s u r f a c e s t a t e d e n s i t y , t y p i c a l l y s t a r t i n g from a minimum value of approximately 1 0 1 2 cm" 2 eV" 1 near mid-gap, to values i n excess of 10 1" cm" 2 eV" 1 near the band edges [24]. In c o n t r a s t , Yokoyama et a l [25] have claimed that f o r plasma oxides on p-type GaAs the s u r f a c e s t a t e d e n s i t y can be as low as 10 1° cm - 2 eV" 1. However, l i k e Chang et a l [15,18] only the 1 MHz C-V curve was s u p p l i e d and no method of o b t a i n i n g C 0 was gi v e n . As the oxides are leaky i n rev e r s e b i a s and have a l a r g e s u r f a c e s t a t e d e n s i t y , i n v e r s i o n mode MOSFET's are d i f f i c u l t to f a b r i c a t e . However, s e v e r a l d e p l e t i o n mode MOSFET's have been f a b r i c a t e d to work as high frequency a m p l i f i e r s , up to the 30 to 40 GHz region [ 2 6 ] . U n f o r t u n a t e l y , due to the high s u r f a c e s t a t e d e n s i t y , these MOSFET's are in c a p a b l e of working c o r r e c t l y below about 50 MHz. What i s r e q u i r e d i s some method of growing the oxide which 15 f i r s t l y i n c r e a s e s the breakdown v o l t a g e and secondly prevent elemental c r y s t a l l i n e As from forming at the i n t e r f a c e . At present, none of the n a t i v e oxides have accomplished t h i s goal and thus non-native i n s u l a t o r s have been r e c e i v i n g c o n s i d e r a b l e a t t e n t i o n l a t e l y . 3.2 Non - Native I n s u l a t o r s on GaAs Since n a t i v e oxides do not seem to be capable of p r o v i d i n g the d e s i r e d e l e c t r i c a l c h a r a c t e r i s t i c s , s e v e r a l other i n s u l a t o r s have been t r i e d . Some of the i n s u l a t i n g f i l m s so f a r i n v e s t i g a t e d are: A l 2 0 3 , S i 0 2 , T a 2 0 5 , H f 0 2 , p o l y s i l o x a n e , GaN, S i 3 N f l , Ge 3N 4, h i g h l y r e s i s t i v e A l Ga^ As l a y e r s , and t h e r m a l l y o x i d i z e d AlAs e p i - l a y e r s . The l a s t two i n s u l a t o r s , though promising [8,27,28], must be grown i n a Molecular-Beam E p i t a x y (MBE) system. U n f o r t u n a t e l y , due to the p r o h i b i t i v e c o s t s of MBE systems, these i n s u l a t o r s are not commercially v i a b l e . Of the three n i t r i d e - b a s e d i n s u l a t o r s , GaN, S i 3 N f t , and G e 3 N „ , GaN appears to have the best e l e c t r i c a l c h a r a c t e r i s t i c s , although very recent r e s u l t s with S i 3 N f l look promising [29]. Suzuki et a l [30] f i r s t s p u t t e r - e t c h e d the GaAs s u b s t r a t e with N 2 before the g a l l i u m o x y - n i t r i d e f i l m was d e p o s i t e d by r e a c t i v e s p u t t e r i n g . The r e s u l t i n g C-V curves between 50 and 500 kHz were e x c e l l e n t . U n f o r t u n a t e l y i t was found that the p e r m i t t i v i t y was s t r o n g l y frequency dependent between 1 and 10 kHz [31]. Brosset et a l [32] o b t a i n e d a p o l y s i l o x a n e f i l m by a gas d i s c h a r g e i n hexamethyldisiloxane { ( C H 3 ) 3 - S i - 0 - S i - ( C H 3 ) 3 } vapour at room temperature. Growth r a t e s of up to 120 nm per minute have been demonstrated. From the only C-V curve given (1 MHz), the f i l m d i d not appear to be any b e t t e r than anodic n a t i v e 16 oxide. D e s p i t e the poor e l e c t r i c a l c h a r a c t e r i s t i c s of these f i l m s , they show good thermal s t a b i l i t y and can t h e r e f o r e be used as an encapsulant f o r high temperature annealing which i s r e q u i r e d a f t e r ion i m p l a n t a t i o n [33], Kusak et a l [34] p a s s i v a t e d GaAs by e l e c t r o n beam evap o r a t i o n of H f 0 2 . The r e s u l t s of the C-V and G-V curves (1 kHz, 100 kHz, 1 MHz) were not as good as those of the anodic n a t i v e oxide. The H f 0 2 f i l m was not c o n s i d e r e d to have the necessary p o t e n t i a l f o r futher i n v e s t i g a t i o n . The two methods used so f a r i n o b t a i n i n g T a 2 0 5 on GaAs are r e a c t i v e s p u t t e r i n g and thermal o x i d a t i o n of d e p o s i t e d Ta. Meiners et a l [35] d e p o s i t e d T a 2 0 5 by r e a c t i v e s p u t t e r i n g , o b t a i n i n g growth r a t e s of about 4 nm per minute. The 1 MHz C-V c h a r a c t e r i s t i c s i n d i c a t e d that both the i n v e r s i o n and accumulation regions were reached, but extremely l a r g e h y s t e r e s i s was observed. As no lower frequency C-V curves were given, i t i s not known i f frequency d i s p e r s i o n o c c u r r e d . N i s h i et a l [36] t r i e d to t h e r m a l l y o x i d i z e Ta on GaAs, but the r e s u l t s were so bad that no C-V curves c o u l d be o b t a i n e d . Smeltzer et a l [37] used a more complex method of t h e r m a l l y o x i d i z i n g Ta on GaAs. A C-V curve was obtained (at 1 MHz) but no i n v e r s i o n l a y e r was formed. Again, as no lower frequency C-V curves were given, no i n f o r m a t i o n about frequency d i s p e r s i o n can be o b t a i n e d . There are s e v e r a l methods of o b t a i n i n g S i 0 2 f i l m s on GaAs, the main techniques being Chemical Vapour D e p o s i t i o n (CVD) and r e a c t i v e s p u t t e r i n g . The CVD technique t y p i c a l l y c o n s i s t s of p a s s i n g oxygen and t e t r a e t h o x y s i l o x a n e over the GaAs s u b s t r a t e 1 7 at about 450°C [38]. The r e s u l t i n g C-V curve at 1 kHz was e s s e n t i a l l y independent of the gate b i a s , implying a p r o h i b i t i v e l y l a r g e s u r f a c e s t a t e d e n s i t y [39]. The 1 MHz C-V curve of r e a c t i v e s p u t t e r e d S i 0 2 was not a p p r e c i a b l y b e t t e r [35]. Very recent r e s u l t s suggest that the oxygen i n the S i 0 2 causes long-term burnouts i n power MESFET's [40]. However, S i 0 2 f i l m s are s t i l l being used e x t e n s i v e l y f o r ion i m p l a n t a t i o n masks, e n c a p s u l a t i o n f o r high temperature an n e a l i n g and s u r f a c e p a s s i v a t i o n f o r MESFET c i r c u i t s . Ma et a l [41] have r e p o r t e d another, method of o b t a i n i n g S i 0 2 f i l m s , u sing a spin-on technique. T h i s method i n v o l v e d using a d i l u t e d S i l i c a f i l m f s o l u t i o n and s p i n n i n g speeds between 3000 and 8000 rpm. The sample was then annealed i n N 2 at 160°C, 450°C and 700°C f o r 90, 30 and 30 minutes r e s p e c t i v e l y , i n order to i n c r e a s e the d e n s i t y of the S i 0 2 f i l m . The C-V c h a r a c t e r i s t i c s were much b e t t e r than f o r any of the n a t i v e o x i d e s . T h i s improvement i s thought to be caused by the d e n s i f i c a t i o n process a f f e c t i n g the i n t e r f a c e between the S i 0 2 f i l m and the GaAs s u b s t r a t e . The most o f t e n t r i e d non-native i n s u l a t o r on GaAs i s A l 2 0 3 . The usual method of o b t a i n i n g A l 2 0 3 f i l m s has been to a n o d i c a l l y o x i d i z e t h e r m a l l y d e p o s i t e d A l on GaAs [42,43,44], although Kamimura et a l [45] used CVD. As the r e s u l t s of the CVD A 1 2 0 3 were no b e t t e r than with anodic n a t i v e oxides t h i s method was not pursued. The C-V curves of anodic A l 2 0 3 f i l m s g e n e r a l l y have some frequency d i s p e r s i o n [42,43] i n accumulation. The amount of t S i l i c a f i l m : A s i l i c a - l a d e n a l c o h o l s o l u t i o n made by the Emulsitone Co. 18 frequency d i s p e r s i o n i s t y p i c a l l y much l e s s than with n a t i v e o x i d e s . Langer et a l [44] r e c e n t l y found that d e p o s i t e d A l on "bare" GaAs r e s u l t e d i n the g e t t e r i n g of As. T h i s a p p a r e n t l y causes As vacancies at the GaAs s u r f a c e , thus a f f e c t i n g the i n t e r f a c e c h a r a c t e r i s t i c s . On the other hand, i t was found that d e p o s i t e d Ga on "bare" GaAs d i d not r e s u l t i n the g e t t e r i n g of As. From these two o b s e r v a t i o n s a two step o x i d a t i o n method was proposed i n order to b u f f e r the i n t e r f a c e , thus p r e v e n t i n g As m i g r a t i o n . F i r s t a t h i n anodic n a t i v e oxide was grown using AGW. The sample was then annealed i n H 2 at 650°C u n t i l most of the elemental c r y s t a l l i n e As and A s 2 0 3 were evaporated and most of the G a 2 0 3 was reduced to elemental Ga. Aluminum was subsequently d e p o s i t e d and then anodized i n AGW. O x i d a t i o n was stopped when the o v e r p o t e n t i a l - t i m e curve i n d i c a t e d that a l l of the A l and Ga had been o x i d i z e d . The r e s u l t i n g C-V curves were c l e a r l y s u p e r i o r to the normal anodic A l 2 0 3 f i l m s , although there was s t i l l some frequency d i s p e r s i o n i n accumulation. From the previous work i t has become apparent to t h i s author that the e l e c t r i c a l c h a r a c t e r i s t i c s of non-native i n s u l a t o r s can be improved d r a s t i c a l l y i f the t h i n i n t r i n s i c oxide i s removed, or i f the i n t e r f a c e region i s somehow b u f f e r e d or changed, so that As can not migrate out of the GaAs s u b s t r a t e . By using z i r c o n i u m oxide ( Z r 0 2 ) , which has the s p e c i a l p r o p e r t y that only the oxygen ions move d u r i n g anodic o x i d a t i o n [46], i t was hoped t h a t As m i g r a t i o n would be prevented. 19 4. EXPERIMENTAL PROCEDURES 4.1 S u b s t r a t e P r e p a r a t i o n The n-GaAs s u b s t r a t e s used thoughout t h i s study were S i doped with a c a r r i e r c o n c e n t r a t i o n of 3 x 1 0 1 7 cm - 3. The c r y s t a l o r i e n t a t i o n was <100>. The s u b s t r a t e s were purchased from C r y s t a l S p e c i a l t i e s Inc. (Monrovia C a l i f o r n i a ) . Immediately before being used a l l samples were prepared i n the f o l l o w i n g manner: 1) A three p a r t degreasing stage was employed, s t a r t i n g with a f i v e minute b o i l i n g t r i c h l o r o e t h y l e n e f bath, followed by a f i v e minute b o i l i n g acetone^ bath, ending with a f i v e minute hot methanol^ u l t r a s o n i c bath. 2) The f i r s t e t c h , a three minute d i p i n hot c o n c e n t r a t e d (38%) H C l f f was terminated by f l u s h i n g the HC1 with d i o n i z e d water, was used to remove any remaining inhomogeneous oxide l a y e r [47]. 3) The f i n a l e t c h , a ten minute bath i n hot 0.05% by volume Br-methanoltt s o l u t i o n was terminated by f l u s h i n g the Br-methanol with d i o n i z e d water ( i n order to reduce the carbon content [48]), was used to g i v e a t h i n homogeneous oxide l a y e r of approximately 2 nm (see s e c t i o n 6.1). t C e r t i f i e d A.C.S. $ E l e c t r o n i c grade f t Reagent A.C.S. 20 4.2 D e p o s i t i o n of Zirconium The two methods used to o b t a i n Zr on GaAs were evaporation and s p u t t e r i n g . Two vacuum systems were used to evaporate Zr. The f i r s t , an u l t r a high vacuum system p r e v i o u s l y r e p o r t e d [49], mo d i f i e d to permit the e v a p o r a t i o n , was employed as i t allowed e l l i p s o m e t r i c monitoring and ion m i l l i n g . The ion m i l l i n g was to be used to remove the i n t r i n s i c oxide j u s t before evaporating the Zr. U n f o r t u n a t e l y , not only d i d t h i s prove to be almost impossible but the e v a p o r a t i o n was very d i f f i c u l t to c o n t r o l . Due to these problems a second vacuum system, a c o n v e n t i o n a l d i f f u s i o n type (CHA model SEC 600), was used i n s t e a d . Although the CHA d i d not have any method to remove the i n t r i n s i c oxide the e v a p o r a t i o n was e a s i l y c o n t r o l l a b l e . A Perkin-Elmer model 3140 RF s p u t t e r i n g system was set up to s p u t t e r Zr. The s p u t t e r i n g r a t e was c a l i b r a t e d and was found to be about 6 nm per minute at the f o l l o w i n g c o n d i t i o n s : a power input of 130 watts, 25 m i l l i t o r r s of Ar, and a target-sample s e p a r a t i o n of 4 cm. 4.3 Anodic O x i d a t i o n and Annealing The o x i d a t i o n techniques used to ob t a i n both the anodic n a t i v e oxide and^ the anodic z i r c o n i u m oxide ( Z r 0 2 ) were i d e n t i c a l . The o x i d a t i o n apparatus i s shown i n f i g u r e 4.1. The e l e c t r o l y t e , an AGW s o l u t i o n , c o n s i s t e d of one p a r t 3% by weight c i t r i c a c i d s o l u t i o n b u f f e r e d with NHftOH to a pH of 6, mixed with two p a r t s ethylene g l y c o l . The copper probe, that made e l e c t r i c a l c o n t a c t to the sample was never allowed to come i n t o c o n t a c t with the AGW s o l u t i o n . The back s u r f a c e s of the samples were stopped o f f with an etc h r e s i s t a n c e tape (3M #8402). A 21 *1 Figure 4.1 Anodic Oxidation Apparatus 22 constant c u r r e n t source was set up to give a c u r r e n t d e n s i t y of approximately 1 mA cm - 2. The n a t i v e oxide t h i c k n e s s was estimated from the formation v o l t a g e [14]. In the case of the Z r 0 2 , the formation voltage-time curve was used to i n d i c a t e when the Zr had been completely o x i d i z e d [44], When t h i s occured, there was a change in the slope of the curve. In order to a i d i n determining t h i s p o i n t , the program VS was w r i t t e n (see Appendix C f o r the source l i s t i n g ) . T h i s program samples the formation v o l t a g e f o r a 15 second p e r i o d a f t e r which l i n e a r r e g r e s s i o n i s done. The program then r i n g s the t e r m i n a l ' s b e l l when the v o l t a g e exceeds the p r e d i c t e d value by 0.1 of a v o l t . A t y p i c a l curve i s p l o t t e d i n f i g u r e 4.2. Upon completion of o x i d a t i o n the samples were r i n s e d i n d i o n i z e d water and methanol, then blown dry i n N 2. Subsequently, a 12% Ge 88% Au (by weight) a l l o y was evaporated as the back c o n t a c t , while A l was used f o r the gate e l e c t r o d e s . The A l e l e c t r o d e s , t y p i c a l l y 1.3 x 5.7 mm or 0.52 mm i n diameter and 500 nm t h i c k , were evaporated through one of two metal masks. Annealing v a r i e d between samples, but a l l samples were annealed at 300°C (except sample 6 which had a 10 minute anneal at 450°C). Samples 6,7,8,10 and 11 were a l l annealed twice, f i r s t i n N 2 then i n 25% H 2 75% N 2. The f i r s t anneal, j u s t a f t e r the back c o n t a c t was evaporated, l a s t e d 1 hour before the furnace was s h u t o f f a l l o w i n g the samples to c o o l down sl o w l y . The second anneal, f o l l o w i n g the evaporation of the A l e l e c t r o d e s , l a s t e d 10 minutes f o r samples 6 and 7, but only 2 minutes f o r samples 8,10 and 11. 23 Figure 4.2 Zr Formation Voltage-Time Curve (Sample 8) 24 Sample 12 was processed s l i g h t l y d i f f e r e n t l y as a r e s u l t of samples 8,10 and 11 (see s e c t i o n s 6.1 and 6.4) which had very poor C-V c h a r a c t e r i s t i c s . T h i s sample had the back c o n t a c t evaporated on before the s p u t t e r e d Zr was anodized. T h i s allowed the sample to be annealed, 300°C f o r 2 minutes i n 25% H 2 75% N 2, forming an ohmic contact at the back s u r f a c e before the Zr was anodized. 25 5. TESTING METHODS 5.1 E l l i p s o m e t r y A c o m p u t e r - c o n t r o l l e d Rudolph type 43603-200E n u l l e l l i p s o m e t e r [50] with a He-Ne l a s e r l i g h t source (X.=632.8 nm), was used to measure the t h i c k n e s s and i n d i c e s of both the n a t i v e and z i r c o n i u m oxide f i l m s as w e l l as the evaporated and s p u t t e r e d Zr f i l m s . As the samples were of constant t h i c k n e s s , t h i s can be done by two d i f f e r e n t methods. The f i r s t method i n v o l v e s o b t a i n i n g s e v e r a l *-A p o i n t s by changing the wavelength of the. l i g h t source. The second method r e q u i r e s o b t a i n i n g s e v e r a l *-A p o i n t s by changing the angle of i n c i d e n c e . In the present apparatus changing the wavelength would be extremely d i f f i c u l t . T h e r e f o r e , f i t t i n g t h e o r e t i c a l (+-A) curves to the m u l t i p l e angle of i n c i d e n c e data was used. Another method was a l s o used to o b t a i n the i n d i c e s f o r the n a t i v e oxide and GaAs s u b s t r a t e . T h i s was done by f i t t i n g a t h e o r e t i c a l (*-A) curve to data from a growing n a t i v e oxide at a f i x e d angle of i n c i d e n c e . For the purposes of these c a l c u l a t i o n s , the n a t i v e oxide was modeled as s i n g l e l a y e r i s o t r o p i c s t r u c t u r e . The Z r 0 2 was a l s o modeled as a s i n g l e i s o t r o p i c l a y e r , but a n a t i v e oxide l a y e r and a s u r f a c e f i l m (due to s u r f a c e roughness) were i n c l u d e d as r e q u i r e d i n order to o b t a i n reasonable f i t s . The programs ELLIPS ( w r i t t e n by D. Smith [50]) and ANALYS (see Appendix B f o r the i n s t r u c t i o n manual) were used i n the curve f i t t i n g p r o c e s s . 5.2 The High Frequency C-V A n a l y s i s Measurement of h i g h frequency C-V c h a r a c t e r i s t i c s i s a standard method of o b t a i n i n g i n f o r m a t i o n about the e l e c t r i c a l p r o p e r t i e s of oxide-semiconductor i n t e r f a c e s of MOS c a p a c i t o r s . 26 The a n a l y s i s of high frequency C-V curves, f i r s t given by Terman [51], i n v o l v e s comparing the measured c h a r a c t e r i s t i c s with t h e o r e t i c a l ones, which make s e v e r a l assumptions [51,52,53]. The standard assumptions u s u a l l y made a r e : 1) The semiconductor i s not degenerate. 2) The quasi-Fermi l e v e l s of the holes and e l e c t r o n s are equal to the bulk F e r m i - l e v e l . 3) A l l impurity atoms are i o n i z e d . 4) There are no mobile ions i n the oxide. 5) Tunneling c u r r e n t s i n the oxide are n e g l i g i b l e . 6) The semiconductor t h i c k n e s s i s much l a r g e r than the space charge l a y e r . Thus the r e s u l t s of the C-V a n a l y s i s can only be meaningful i f the above assumptions made i n modeling the C-V c h a r a c t e r i s t i c s are v a l i d . Capacitance - Voltage a n a l y s i s i s a powerful t o o l , i f the above c o n d i t i o n i s s a t i s f i e d , as i t can determine: 1) The approximate s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t w i t h i n a c e r t a i n range of s u r f a c e p o t e n t i a l . 2) The approximate net doping c o n c e n t r a t i o n and type w i t h i n the space charge l a y e r . 3) The approximate oxide l a y e r t h i c k n e s s (assuming the p e r m i t t i v i t y i s known). In order t o o b t a i n these r e s u l t s , many experimental measurements at small b i a s v o l t a g e increments are r e q u i r e d . Due to the l a r g e number of measurements r e q u i r e d , a PDP8/e computer was programmed to output the necessary b i a s v o l t a g e and read i n 27 MOS ITESTER BOONTON Offsetting PS 12bit AIX 16bit DAC Interface DANA K )> PDP8/e Figure 5.1 The 1 MHz C-V Apparatus 28 the obtained c a p a c i t a n c e (see Appendix A f o r the i n s t r u c t i o n manual and source l i s t i n g f o r the C-V program). The apparatus i s shown i n f i g u r e 5.1. From the experimental C-V curve the program c a l c u l a t e s the doping c o n c e n t r a t i o n and type, as w e l l as the oxide t h i c k n e s s assuming the C-V curve had both the i n v e r s i o n and accumulation r e g i o n s . The experimental curve can then be compared to a t h e o r e t i c a l curve i n order to c a l c u l a t e the s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t curve w i t h i n the band gap. In a n a l y s i n g C-V curves i t i s usual to assume that the maximum c a p a c i t a n c e , that i s the c a p a c i t a n c e i n the accumulation r e g i o n , i s e n t i r e l y due to the oxide c a p a c i t a n c e . From the sig n of the gate v o l t a g e at t h i s c a p a c i t a n c e , the semiconductor type can be determined. From the magnitude of the c a p a c i t a n c e the oxide t h i c k n e s s can be determined, assuming the oxide p e r m i t t i v i t y and the gate area are known. Once the oxide and minimum c a p a c i t a n c e s are known, the doping c o n c e n t r a t i o n i s found by i t e r a t i o n [52]. The d i f f e r e n c e between the i d e a l and measured gate v o l t a g e s , at given c a p a c i t a n c e s i n the d e p l e t i o n r e g i o n , are used to obtain the t o t a l s u r f a c e charge per u n i t area curve. I f t h i s curve i s then smoothed and d i f f e r e n t i a t e d , the s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t curve w i t h i n the band gap i s o b t a i n e d . I t should be noted t h a t , i n smoothing the s u r f a c e charge curve, one i s i n t r o d u c i n g e r r o r s . These e r r o r s are then magnified when the d i f f e r e n t i a t i o n i s c a r r i e d out. Thus the r e s u l t i n g s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t curve should only be used f o r order of magnitude comparisions. 29 Before one c a l c u l a t e s the s u r f a c e charge curve i t i s very important to ensure that the minimum and maximum ca p a c i t a n c e s f o r the t h e o r e t i c a l and measured C-V curves are eq u a l . T h i s w i l l f o r c e both the oxide t h i c k n e s s and the doping c o n c e n t r a t i o n of the two curves to be equal, assuming the c o r r e c t area, r e l a t i v e p e r m i t t i v i t y , band gaps, etc are gi v e n . I f t h i s i s not the case then no i n f o r m a t i o n w i l l be obtained about s u r f a c e charge or su r f a c e s t a t e s [53]. For example, i f the C-V curve does not reach the tr u e accumulation ( i . e . the true oxide c a p a c i t a n c e was not reached), then the high frequency C-V a n a l y s i s w i l l not give c o r r e c t or meaningful r e s u l t s . T h i s i s because e i t h e r the i n c o r r e c t p e r m i t t i v i t y or oxide t h i c k n e s s must be used i n order to f o r c e the maximum c a p a c i t a n c e between the t h e o r e t i c a l and measured C-V curves to be e q u a l . 5.3 V a r i a b l e Frequency C-V Measurements A FORTRAN program (VFCV) was w r i t t e n to measure v a r i a b l e frequency C-V c h a r a c t e r i s t i c s s i m i l a r to the 1 MHz C-V measuring system. The main d i f f e r e n c e between the two systems i s that CV uses a Boonton c a p a c i t a n c e / i n d u c t a n c e meter (model 71A) while VFCV uses a l o c k - i n a m p l i f i e r (PAR model HR-8) to measure the c a p a c i t a n c e . The system was r e q u i r e d i n order to see i f the ca p a c i t a n c e was frequency dependent. As the l o c k - i n a m p l i f i e r d i d not work the program was not i n f a c t used. Instead a Boonton b r i d g e (model 75C) was used. No h y s t e r e s i s i n f o r m a t i o n c o u l d be obta i n e d f o r those C-V curves generated by the b r i d g e . 30 6. RESULTS 6.1 E l l i p s o m e t r y The s i n g l e l a y e r i s o t r o p i c model f i t the e l l i p s o m e t r y data f o r the n a t i v e oxide extremely w e l l as shown i n f i g u r e s 6.1,6.2 and 6.3. F i g u r e 6.1 g i v e s the data and t h e o r e t i c a l (*-A) curves f o r a growing n a t i v e oxide at a f i x e d angle of i n c i d e n c e (70°). F i g u r e 6.2 shows a t y p i c a l set of m u l t i p l e angle of i n c i d e n c e data and computed curves f o r a f i x e d n a t i v e oxide t h i c k n e s s . Annealing the n a t i v e oxide in N 2 at 300°C f o r one hour d i d not change the index but the t h i c k n e s s decreased s l i g h t l y as can be seen i n f i g u r e s 6.2 and 6.3. These two f i g u r e s are f o r the same sample be f o r e and a f t e r a n n e a l i n g . Table 6.1 summarizes the o b t a i n e d i n d i c e s and t a b l e 6.2 l i s t s some p r e v i o u s l y r e p o r t e d i n d i c e s f o r X = 632.8 nm. As can be seen from these two t a b l e s the present i n d i c e s compare very w e l l with those p r e v i o u s l y r e p o r t e d . TABLE 6.1 Native Oxide I n d i c e s Obtained Index Anodic Native Oxide before annealing a f t e r a n nealing 1.815 1.815 Bare GaAs 3.84 - j0.2 31 Figure 6.1 Ellipsometry Plot for a Growing Native Oxide (Sample 1) Figure 6.2 Multiple Angle of Incidence Ellipsometry Plot for Native Oxide (Sample 7) Figure 6.3 Multiple Angle of Incidence Ellipsometry Plot for Annealed Native Oxide (Sample 7) 34 TABLE 6.2 Previous E l l i p s o m e t r y I n d i c e s Index Ref Anodic Nati v e Oxide before a n n e a l i n g before a n n e a l i n g before a n n e a l i n g a f t e r a n n e a l i n g 1 .85 1.79±0.05 1.778±0.013 1.746±0.009 54 55 56 56 Anodic Z r 0 2 on Zr 2.17- jO.033 57 Bare Zr F o i l 2.21 - J3.04 57 Bare GaAs 3.85 - jO.19 3.8 - jO.19 3.8 - jO.13 55 54 58 The two vacuum systems used to evaporate Zr onto GaAs gave s l i g h t l y d i f f e r e n t Zr i n d i c e s u s i n g the s i n g l e l a y e r i s o t r o p i c model. I t should be noted that a microprobe a n a l y s i s of the Zr f i l m evaporated from the UHVS, showed no t r a c e s of e i t h e r tungsten or copper. T y p i c a l m u l t i p l e angle of i n c i d e n c e t h e o r e t i c a l (*-A) curves and data are given i n f i g u r e s 6.4 and 6.5. The s p u t t e r e d Zr f i l m s had d i f f e r i n g i n d i c e s depending on the vacuum system's pressure j u s t p r i o r to b a c k f i l l i n g with Ar. F i g u r e s 6.6 and 6.7 give data and curves f o r a chamber pressure before b a c k f i l l i n g of 10~ 6 T o r r and 7 x 10~ 7 T o r r r e s p e c t i v e l y . S i n t e r i n g the s p u t t e r e d Zr f i l m s i n N 2 at 220°C for 15 minutes d i d not change the Zr index but a 5 nm t h i c k oxide (or n i t r i d e ) f i l m appeared on the s u r f a c e . T h i s oxide (or n i t r i d e ) consumed about 4 nm of the Zr. F i g u r e 6.8 g i v e s the data and curves f o r the same sample of f i g u r e 6.7 a f t e r a n n e a l i n g . Table 6.3 summarizes the i n d i c e s found. The present i n d i c e s are s i m i l a r to the p r e v i o u s l y r e p o r t e d Zr f o i l index (see t a b l e 6.2). Figure 6.4 Multiple Angle of Incidence Ellipsometry Plot for Evaporated Zr in UHVS (Sample 3) Figure 6.5 Multiple Angle of Incidence Ellipsometry Plot for Evaporated Zr in CHA (Sample 8) Figure 6.6 Multiple Angle of Incidence Ellipsometry Plot for Sputtered Zr P=10" 6T (Sample 9) 28.0 30.0 32.0 34.0 36.0 38.0 40 PSI / DEGREES Figure 6.7 Multiple Angle of Incidence Ellipsometry Plot for Sputtered Zr P=3x10"7T (Sample 10) Figure 6.8 Multiple Angle of Incidence Ellipsometry Plot for Annealed Sputtered Zr P=3x10"7T (Sample 10) 40 TABLE 6 . 3 Zirconium I n d i c e s Obtained Index Evaporated Zr i n UHVS in CHA 2 . 2 1 - j 3 . 1 8 2 . 2 1 - J 3 . 3 2 Sputtered Zr P = 1 0 - 6 T o r r P = 7 X 1 0 " 7 T o r r before a n n e a l i n g a f t e r a n n e a l i n g NF, NF 2 2 . 2 1 - J 2 . 9 5 2 . 2 1 - j 3 . 1 6 2 . 1 5 2 . 2 1 - j 3 . 1 6 The Z r 0 2 e l l i p s o m e t r y data f i t t e d the s i n g l e l a y e r i s o t r o p i c model reasonably w e l l . F i g u r e 6.9 shows the data and curves f o r the anodized evaporated Zr on GaAs. The index f o r the anodized s p u t t e r e d Zr i s s l i g h t l y d i f f e r e n t as shown i n f i g u r e 6.10. I t should be noted that a n o d i z a t i o n was not stopped when a l l the s p u t t e r e d Zr had been anodized, thus there i s a n a t i v e oxide underneath the Z r 0 2 . Annealing the Z r 0 2 i n N 2 at 300°C f o r one hour gave s e v e r a l very unexpected and i n t e r e s t i n g phenomena. For the anodized evaporated Zr, the index remained unchanged but many very small (500 - 1250 nm) "bumps" appeared on the s u r f a c e . F i g u r e 6.11 shows a SEM p i c t u r e of the s u r f a c e , from which i t was deduced (from the l o c a t i o n of the d e t e c t o r and sample t i l t ) t h a t the s u r f a c e phenomenon were indeed "bumps" and not p i n h o l e s . F i g u r e 6.12 g i v e s the data and curves f o r the annealed sample. I t should be noted that the oxide t h i c k n e s s decreased by about 4 nm. For the anodized s p u t t e r e d Zr no f i l m model was found that f i t t e d the e l l i p s o m e t r i c data, implying a r a t h e r complex s t r u c t u r e . Table 6.4 summarizes the Z r 0 2 i n d i c e s PSI / DEGREES , Figure 6.9 Multiple Angle of Incidence Ellipsometry Plot for Oxidized Evaporated Zr (Sample 8) Figure 6.10 Multiple Angle of Incidence Ellipsometry Plot for Oxidized Sputtered Zr P=3x10 _ 7T (sample 10) 43 • * m m m > m. -m 8000 X M a g n i f i c a t i o n F i g u r e 6.11 An SEM p i c t u r e of annealed Z r 0 2 (Sample 8) Figure 6.12 Multiple Angle of Incidence Ellipsometry Plot for Annealed Zr0 2 (Sample 8) 45 obta i n e d . The present i n d i c e s d i f f e r from the p r e v i o u s l y r e p o r t e d Z r 0 2 index, i n that the imaginary component was set to zero (see t a b l e 6.2). TABLE 6.4 Zirconium Oxide Ind i c e s Obtained Index O x i d i z e d Evaporated Zr before a n n e a l i n g 2.06 a f t e r a n n e a l i n g NF, 2. - jO.37 NF 2 2.06 Ox i d i z e d Sputtered Zr before a n n e a l i n g NF, 2.15 NF 2 1.815 a f t e r a n n e a l i n g 7 6.2 I n t r i n s i c Oxide The i n t r i n s i c oxide i s the oxide l a y e r which i s present j u s t a f t e r the GaAs has been etched but before the n a t i v e or zi r c o n i u m oxides are grown. A comparative study was done i n order to see how t h i s i n t r i n s i c oxide d i f f e r e d between: 1) As r e c e i v e d GaAs. 2) GaAs that r e c e i v e d only a 10 minute 0.05% Br-methanol e t c h . 3) GaAs that was prepared as d e s c r i b e d i n s e c t i o n 4.1. In a l l cases the r e f r a c t i v e i n d i c e s were the same as that of the n a t i v e oxide (see s e c t i o n 6.1). The d i f f e r e n c e s between the samples, were in the t h i c k n e s s of the i n t r i n s i c oxide and i n the s u r f a c e c l e a n l i n e s s . F i g u r e 6.13 shows a l l three s e t s of m u l t i p l e ' a n g l e of i n c i d e n c e e l l i p s o m e t r y data o v e r l a y e d on a set 46 Figure 6.13 Multiple Angle of Incidence Ellipsometry Plot for I n t r i n s i c Oxide + As received GaAs x GaAs etch 10 minutes in Br-methonal * GaAs prepared as in Section 4.1 47 of t h e o r e t i c a l *-A c u r v e s . Table 6.5 summarizes the r e s u l t s of the study. As can been seen from the t a b l e , the best r e s u l t s were obtained f o r the sample that had been prepared i n the manner given i n s e c t i o n 4.1. TABLE 6.5 Summary of Comparative Study Surface Thickness Surface c l e a n l i n e s s As r e c e i v e d 3. 2nm dusty under normal l i g h t Br-methanol 2.25nm dusty under microscope l i g h t Method of s e c t i o n 4.1 2.1 nm c l e a n under microscope l i g h t 6.3 Native Oxide The C-V c h a r a c t e r i s t i c s f o r the a n o d i c a l l y grown n a t i v e oxide were s i m i l a r to those p r e v i o u s l y r e p o r t e d [7,14,21,24]. A t y p i c a l set of C-V curves (10 kHz, 100 kHz, 1 MHz) are given i n f i g u r e 6.14 f o r the sample i n a l i g h t t i g h t box. As can be seen from the f i g u r e frequency d i s p e r s i o n occurred i n the accumulation r e g i o n . The conductance-voltage curves f o r 10 kHz and 100 kHz are given i n f i g u r e 6.15. From these curves i t i s seen that the oxide i s leaky i n the "accumulation" r e g i o n . F o l l o w i n g Varadarajan et a l [14] 1 MHz C-V curves were obt a i n e d at e l e v a t e d temperatures (see f i g u r e 6.16). The present curves were s i m i l a r to those p r e v i o u s l y o b t a i n e d . A w e l l d e f i n e d i n v e r s i o n region was formed f o r temperatures over 66°C (see f i g u r e 6.16a). I t was found that the i n v e r s i o n c a p a c i t a n c e i n c r e a s e d with temperature as theory p r e d i c t e d [ 1 ] . For temperatures over 86°C (see f i g u r e 6.16b) the accumulation r e g i o n s t a r t e d forming, although accumulation was not reached 48 F i g u r e 6.14 M u l t i p l e Frequency C-V Curves for N a t i v e Oxide (Sample 7) 49 F i g u r e 6.15 M u l t i p l e Frequency G-V Curves for N a t i v e Oxide (Sample 7) 50 GATE VOLTUGE GHTE VDLTflSE Figure 6.16 Elevated Temperature 1 MHz C-V Curves for Native Oxide (sample 7) 51 u n t i l 156°C (see f i g u r e 6.16c). From the accumulation c a p a c i t a n c e and knowing the a r e a , the oxide r e l a t i v e p e r m i t t i v i t y was found to be about 8.4. T h i s p e r m i t t i v i t y i s i n agreement with p r e v i o u s l y r e p o r t e d values of 8.2 and 8.5 [14,59]. The h y s t e r e s i s e f f e c t s at t h i s temperature were a l s o p r e v i o u s l y found at slow sweep r a t e s [14]. U n l i k e the previous C-V c h a r a c t e r i s t i c s , the present ones had an approximately constant f l a t b a n d v o l t a g e as the temperature was i n c r e a s e d . I t was a l s o found that the c h a r a c t e r i s t i c s s t a r t e d to degenerate at slower sweep r a t e s above 156°C (see f i g u r e 6.l6d). By i r r a d i a t i n g the sample with i n f r a red l i g h t the 1 MHz C-V curve had a w e l l d e f i n e d i n v e r s i o n region at 300°C (see f i g u r e 6.17). Using the above oxide and i n v e r s i o n c a p a c i t a n c e s along with the obtained oxide p e r m i t t i v i t y and known area, the doping c o n c e n t r a t i o n (at 300°C) was c a l c u l a t e d t o be about 8 x 1 0 1 7 cm - 3. T h i s i s . f a i r l y c l o s e to the manufacturer's s p e c i f i e d value of 3 x 1 0 1 7 cm" 3. 6.4 Zirconium Oxide As p r e v i o u s l y mentioned, strange t h i n g s happened to the Z r 0 2 d u r i n g a n n e a l i n g , and p r e d i c t a b l y the C-V c h a r a c t e r i s t i c s were poor. The c h a r a c t e r i s t i c s were i n f a c t so poor, that the Boonton bridge c o u l d not be balanced. The room temperature 1 MHz C-V curves f o r samples 8 and 11 are given i n f i g u r e 6 . 1 8 . F i g u r e 6.19 g i v e s s e v e r a l 1 MHz C-V curves at i n c r e a s i n g temperature f o r sample 10. There are a few i n t e r e s t i n g p o i n t s to note i n t h i s f i g u r e , these a r e : 52 Figure 6.17 Room Temperature 1 MHz C-V Plot with Infra-Red Light for Native Oxide (sample 7) CflTC vouTace core vouTace Figure 6.18 1 MHz C-V Curves for Zr0 2 (samples 8 and 10) 54 Figure 6.19 Elevated Temperature 1 MHz C-V Curves for Zr0 2 (sample 10) 55 1) The maximum v o l t a g e swing decreases with i n c r e a s i n g temperature implying that the oxide l e a k i n e s s i n c r e a s e s with temperature. 2) The curve at 68°C shows strong i n v e r s i o n . 3) The curve at 149°C shows what looks l i k e the accumulation r e g i o n . 4) The three curves i n between (88°C, 108°C, 128°C) show what look l i k e p a r t s of the d e p l e t i o n r e g i o n . 5) A l l of the curves have only a small amount of h y s t e r e s i s . From these p o i n t s i t i s concluded that as the temperature i s i n c r e a s e d the f l a t b a n d v o l t a g e i s s h i f t i n g n e g a t i v e l y . T h i s e f f e c t would imply i o n i c motion w i t h i n the o x i d e . A f l a t b a n d v o l t a g e s h i f t was a l s o found f o r sample 11 although i t was much smaller (see f i g u r e 6.20). Because the r e s u l t s of these samples were so poor, sample 12 was prepared somewhat d i f f e r e n t l y (see s e c t i o n 4.3). The a n o d i z a t i o n was c a r r i e d out u n t i l the formation v o l t a g e - t i m e curve i n d i c a t e d (see s e t i o n 4.3) that a l l of the Zr had been anodized. The e l l i p s o m e t r y r e s u l t s however, i n d i c a t e d t h a t 20 nm of Zr s t i l l had not been anodized. I t was assumed that the e l l i p s o m e t r i c model used was i n c o r r e c t , thus the sample was not anodized f u r t h e r . The r e s u l t i n g room temperature 1 MHz C-V curve was independent of b i a s (-10 v o l t s to 10 v o l t s ) p o s s i b l y i n d i c a t i n g a MOM rather than a MOS s t r u c t u r e . The sample was then annealed i n a 25% H 2 75% N 2 atmosphere at 300°C f o r 5 56 Figure 6.20 Elevated Temperature 1 MHz C-V Curves for Zr0 2 (sample 11) minutes to see i f the C-V curve would change. The e l e c t r i c a l p r o p e r t i e s were s i g n i f i c a n t l y changed by a n n e a l i n g as not only d i d the maximum v o l t a g e swing decrease to l e s s than 3 v o l t s , but the curve became U shaped. As the temperature was in c r e a s e d the C-V curves degraded. 58 7. CONCLUSIONS As p a r t of t h i s work s e v e r a l programs were w r i t t e n to a i d i n the c o n t i n u i n g GaAs work at UBC, these b e i n g : CV a FORTRAN program that measures and analyzes 1 MHz C-V c h a r a c t e r i s t i c s (see Appendix A), ANALYS a FORTRAN program to help analyse e l l i p s o m e t r y data (see Appendix B), and MTS a PAL8 program used to l i n k the PDP8/e and AMADAHL/470 computers. Two d i e l e c t r i c f i l m s were examined to judge t h e i r a b i l i t y i n p a s s i v a t i n g GaAs. The f i r s t , anodic n a t i v e oxide, has been p r e v i o u s l y r e p o r t e d by s e v e r a l authors [7,14,21,24]. In the present work the oxide was found to be leaky i n "accumulation" which might account f o r the frequency d i s p e r s i o n found i n t h i s r e g i o n . The C-V c h a r a c t e r i s t i c s improved c o n s i d e r a b l y as the temperature was i n c r e a s e d to 156°C i n agreement with Varadarajan et a l [14], although i t was found that at higher temperatures and slower sweep r a t e s (0.1 V/s) the c h a r a c t e r i s t i c s s t a r t e d to degenerate. At room temperature the 1 MHz C-V curve i n d i c a t e d t h a t i n v e r s i o n was not reached u n l e s s the sample was i r r a d i a t e d w ith i n f r a red' l i g h t . From these r e s u l t s the author has concluded that the anodic n a t i v e oxide does not possess the necessary e l e c t r i c a l p r o p e r t i e s r e q u i r e d . The second d i e l e c t r i c , Z r 0 2 , was t r i e d because only the oxygen ions move during anodic o x i d a t i o n . T h i s e f f e c t was hoped to prevent As m i g r a t i n g to the i n t e r f a c e . I t c o u l d not be determined i f the As m i g r a t i o n was i n f a c t prevented as the necessary equipment (Auger or ESCA) was not a v a i l a b l e . I t was found however, that a n n e a l i n g the oxide i n e i t h e r N 2 or 25% H 2 75% N 2 at 300°C f o r as l i t t l e as 5 minutes made 59 s u b s t a n t i a l changes i n the oxide. These changes were observed both o p t i c a l l y using an e l l i p s o m e t e r and e l e c t r i c a l l y from C-V curves. The e l e c t r i c a l c h a r a c t e r i s t i c s of the Z r 0 2 a f t e r a n nealing were extremely poor being e x c e s s i v e l y leaky. The 1 MHz C-V curves f o r sample 10 i n d i c a t e d a change in the f l a t b a n d v o l t a g e as the temperature was i n c r e a s e d . T h i s would tend to imply that i o n i c motion occurred w i t h i n the oxide. However, sample 11 only had a small f l a t b a n d v o l t a g e s h i f t while the C-V c h a r a c t e r i s t i c s f o r sample 12 degenerated r a p i d l y with i n c r e a s i n g temperature. The d i f f e r e n c e c o u l d be due the n a t i v e oxide that was d e t e c t e d (before a n n e a l i n g by the e l l i p s o m e t e r ) below the Z r 0 2 i n sample 10. The present r e s u l t s would tend to suggest t h a t the Z r 0 2 i s r e a c t i n g s t r o n g l y with the GaAs d u r i n g a n n e a l i n g . F u r t h e r work i s t h e r e f o r e r e q u i r e d to f i n d a s u i t a b l e temperature and atmosphere to c a r r y out the a n n e a l i n g . I t i s f u r t h e r suggested t h a t the c h a r a c t e r i s t i c s of r e a c t i v e l y s p u t t e r e d Z r 0 2 and ZrN be i n v e s t i g a t e d to see i f any improvement i s found over the a n o d i c a l l y o x i d i z e d Zr. REFERENCES S.M. Sze, "Physics of Semiconductor Devices", W i l e y - I n t e r s c i e n c e , 1969 K. Lehovec, "The Lure of GaAs", Presented at the Symposium on The Future of G a l l i u m Arsenide i n D i g i t a l and Microwave I n t e g r a t e d C i r c u i t s , June 19 1981, U n i v e r s i t y of B r i t i s h Columbia B.G. Streetman, " S o l i d State E l e c t r o n i c D e v i c e s", P r e n t i c e H a l l , 1972 "Semiconductors and Semimetals", Academic Press, 1966 v o l 2, e d i t e d by R.K. W i l l a r d s o n and A.C. Beer 0. Madelung, "Physics of III - V Compounds", John Wiley & Sons, 1964 H.H. Wieder, "Problems and Prospects of Compound Semiconductor F i e l d - E f f e c t T r a n s i s t o r s " , J . Vac. S c i . Technol., _T7, 1009 (1980) T. Ikoma, H. Yokomizo and H. Tokuda, "GaAs P a s s i v a t i o n and MOS Devices", Jpn. J . App. Phys. Supplement, 18-1, 131 (1979) T. Mimura and M. Fukuta, "Status of GaAs Metal-Oxide-Semiconductor Technology", IEEE Trans. E l e c t r o n D evices, ED-27, 1147 (1980) H. Takagi, G. Kano and I. Teramoto, "Thermal O x i d a t i o n of GaAs i n A r s e n i c T r i o x i d e Vapour", J . Electrochem. S o c , 125, 579 (1978) G.P. Schwartz, J.E. G r i f f i t h s , D. D i S t e f a n o , G. J . G u a l t i e r i and B. Schwartz, "A r s e n i c I n c o r p o r a t i o n i n Native Oxides of GaAs grown Thermally under A r s e n i c T r i o x i d e Vapour", App. Phys. L e t t . , 3 4 , 7 4 2 ( 1 9 7 9 ) L.A. Chesler and G.Y. Robinson, "dc Plasma A n o d i z a t i o n of GaAs", App. Phys. L e t t . , 3 2 , 60 ( 1 9 7 8 ) H. H. Wieder, " P e r s p e c t i v e s on I I I - V Compound MIS S t r u c t u r e s " , J . Vac. S c i . Technol., J_5, 1 4 9 8 ( 1 9 7 8 ) R.P.H. Chang and J . J . Coleman, "A new method of F a b r i c a t i n g G a l l i u m Arsenide MOS Devices", App. Phys. L e t t . , 3 2 , 3 3 2 ( 1 9 7 8 ) S. Varadarajan, M.A. L i t t l e j o h n and J.R. Hauser, " I n v e r s i o n and Accumulation Layer Formation a t E l e v a t e d Temperatures i n n-type GaAs-Anodic Oxide MIS Devices", Thin S o l i d F i l m s , 56, 235 (1979) R.P.H. Chang, " S e l e c t i v e Plasma O x i d a t i o n of GaAs - A Study of I n t e r f a c e P r o p e r t i e s " , Jpn. J . App. Phys. Supplement, 19-1, 483 (1980) W.E. S p i c e r , P.W. Skeath, C.Y. Su and I. Lindau, "New and U n i f i e d Model f o r Schottky B a r r i e r and I I I - V I n s u l a t e r I n t e r f a c e S t a t e s Formation", J . Vac. S c i . Technol., _1_6, 1422 (1979) H. Hasegawa and T. Sawada, " E l e c t r i c a l Modeling of Compound Semiconductor I n t e r f a c e f o r FET Device Assement", IEEE Trans. E l e c t r o n Devices, ED-27, 1055 (1980) R.P.H. Chang, J . J . Coleman, A.J. Polak, L.C. Feldman and C.C. Chang, " A p p l i c a t i o n of S e l e c t i v e Chemical Reaction Concept f o r C o n t r o l l i n g the P r o p e r t i e s of Oxides on GaAs", App. Phys. L e t t . , 34, 237 (1979) Y. Shinoda and M. Yanaguchi, "Plasma A n o d i z a t i o n of Oxygen-Sputtered GaAs S u r f a c e s " , App. Phys. L e t t . , 34, 484 (1979) H. Hasegawa and H.L. H a r t n a g e l , "Anodic O x i d a t i o n of GaAs i n Mixed S o l u t i o n s of G l y c o l and Water", J . Electrochem. Soc., 123, 713 (1976) M.K. Samokhvalov, V.V. Povichkov and A.M. Sverdlova, " E l e c t r i c a l P r o p e r t i e s of MIS S t r u c t u r e s based on G a l l i u m Arsenide with a N a t u r a l Anodic Oxide", M i c r o e l e c t r o n i c s , 7, 429 (1979) K. Mats u s h i t a , T. H a r i u , H. Adachi and Y. S h i b a t a , "Some Aspects on the Mechanism of Anodic O x i d a t i o n of GaAs", J . Electrochem. Soc., 126, 1268 (1979) K.M. Geib and C.W. Wilmsen, "Anodic Oxide/GaAs and InP I n t e r f a c e Formation", J . Vac. S c i . Technol., j_7, 952 (1980) D.L. L i l e and D.A. C o l l i n s , "The D i e l e c t r i c and I n t e r f a c i a l C h a r a c t e r i s t i c s of MIS S t r u c t u r e s on InP and GaAs", Thin S o l i d F i l m s , 56, 225 (1979) 62 [ 2 5 ] N. Yokoyama, T. Mimura, K. Odami and F. Fukuta, "Low-Temperature Plasma O x i d a t i o n of GaAs", App. Phys. L e t t . , 3J2, 58 ( 1 9 7 8 ) [ 2 6 ] T. Sugano, F. Koshiga, K. Yamaski and S. Takahashi, " 3 0 - 4 0 GHz GaAs I n s u l a t e d Gate F i e l d E f f e c t T r a n s i s t o r s " , IEEE I n t e r n a t i o n a l E l e c t r o n Devices Meeting, 148 ( 1 9 7 8 ) [ 2 7 ] H.C. Cassey, A.Y. Cho and E.H. N i c o l l i a n , "Use of Oxygen-doped A l Ga, As f o r the I n s u l a t i n g Layer i n MIS S t r u c t u r e s " , App. Phys. L e t t . , 3 2 , 6 7 8 ( 1 9 7 8 ) [ 2 8 ] W.S. Tang, " S e l f - T e r m i n a t i n g Thermal O x i d a t i o n of AlAs epi l a y e r s Grown on GaAs by Molecular Beam E p i t a x y " , App. Phys. L e t t . , 3 3 , 4 2 6 ( 1 9 7 8 ) [ 2 9 ] Dr. J . Hurd ( T e k t r o n i c s ) P r i v a t e Communication [ 3 0 ] N. Suzuki, T. H a r i u and Y. Shibata, " E f f e c t of N a t i v e Oxide on the I n t e r f a c e Property of GaAs MIS S t r u c t u r e s " , App. Phys. L e t t . , 3 3 , 761 ( 1 9 7 8 ) [ 3 1 ] H.L. H a r t n a g e l , " L a t e s t Developments i n Non-Silcon MIS Devices", S o l i d State Devices, nine i n v i t e d papers presented at the ESSDERC ' 7 8 (France) [ 3 0 ] D. B r o s s e t , B. A i and Y. Segui, "New Method of GaAs P a s s i v a t i o n with Thin Polymer F i l m s " , App. Phys. L e t t . , _33, 87 ( 1 9 7 8 ) [ 3 3 ] Dr. R. Koyama ( T e k t r o n i c s ) P r i v a t e Communication [ 3 4 ] M. Kusaka, M. H i r a i and S. Okazaki, " E l e c t r i c a l P r o p e r t i e s of Metal-Hafnium-Oxide-Gallium Arsenide MOS Diodes", Rep. Res. Lab. f o r Suface S c i e n c e , Okayama U n i v e r s i t y , 4 , 2 4 5 ( 1 9 7 8 ) [ 3 5 ] L.G. Meiners, R. Pan and J.R. S i t e s , "Oxide B a r r i e r s on GaAs by N e u t r a l i z e d Ion-Beam S p u t t e r i n g " , J . Vac. S c i . Technol., j _ 4 , 961 (1 9 7 7 ) [ 3 6 ] H. N i s h i and H.G. Revesz, "GaAs/Ta 2 0 5 and G a A s / A l 2 0 3 I n t e r f a c e S t r u c t u r e s " , J . Vac. S c i . Technol. , J _6 , 1 4 8 7 ( 1 9 7 9 ) [ 3 7 ] R.K. Smeltzer and C.C. Chen, "Oxidized Metal F i l m D i e l e c t r i c s f o r I I I - V Devices", Thin S o l i d F i l m s , 5 6 , 75 ( 1 9 7 9 ) B. L. Sharmu, P.L. B h a r t i , S.N. Mukerju and S. Mohan, "Low-Temperature D e p o s i t i o n of S i 0 2 Films on GaAs using T e t r a e t h o x y s i l a n e " , J . I n s t n . E l e c t r o n . & Telecom. Engrs., 23, 727 (1977) C. R. Z e i s s e , L . J . Messick and D.L. L i l e , " E l e c t r i c a l P r o p e r t i e s of Anodic and P y r o l y t i c D i e l e c t r i c s on G a l l i u m A r s e n i d e " , J . Vac. S c i . Technol., J_4, 957 (1977) S.H. Wemple, W.C. Niehous, H. Fukui, J.C. I r v i n , H.N. Cox, J.C.M. Hwang, J.V. DiLorenzo and W.O. S c h l o s s e r , "Long-Term and Instantanous Burnouts in GaAs Power FET's: Mechanisms and S o l u t i o n s " , IEEE Trans. E l e c t r o n D e vices, ED-28, 834 ( 1 9 8 1 ) T.P. Ma and K. Miyauchi, "MIS S t r u c t u r e s based on Spin-On S i 0 2 GaAs", App. Phys. L e t t . , 34, 88 (1979) B. B a y r a k t a r o g l u , F.L. Schuermeyer and J.T. Grant, "Study of the P r o p e r t i e s of GaAs-Anodic A 1 2 0 3 i n t e r f a c e s " , J . Vac. S c i . Technol., 16, 1483 (1979) H. Hayashi, K. K i k u c h i and T. Yamaguchi, "Capacitance-Voltage C h a r a c t e r i s t i c s of A l / A l 2 0 3 / p - G a A s Metal-Oxide-Semicondutor Diodes", App. Phys. L e t t . , 37, 404 (1980) D. W. Langer, F.L. Schuermeyer, R.L. Johnson, H.P. Singh, C.W. L i t t o n and H.L. H a r t n a g e l , "Chemical Reations of Oxide Layers on GaAs", J . Vac. S c i . Technol., J_7, 964 (1980) K. Kamimura and Y. S a k a i , "The P r o p e r t i e s of G a A s - A l 2 0 3 and I n P - A l 2 0 3 I n t e r f a c e s and the F a b r i c a t i o n of MIS F i e l d - E f f e c t T r a n s i s t o r s " , Thin S o l i d F i l m s , 56, 215 (1979) L. Young, "Anodic Oxide F i l m s " , Academic Press, 1961 A. Munoz-Yague, J . Piqueras and N. Fabre, " P r e p a r a t i o n of Carbon-Free GaAs S u r f a c e s : AES and RHEED A n a l y s i s " , J . Electrochem. S o c , 128, 149 (1981) A.Y. Cho and J.R. Authur, "Molecular Beam Ep i t a x y " , Progress i n S o l i d S tate Chemistry, 10, 157 (1975) 64 [49] M.A. Hopper, R.A. C l a r k e and L. Young, " Removal of Oxide Films from S i l i c o n Surfaces i n a High Vacuum System: An i n S i t u E l l i p s o m e t r i c Study", Surface Science, 56, 472 (1976) [50] D. Smith, "Thin Oxide F i l m s " , PhD T h e s i s , U n i v e r s i t y of B r i t i s h Columbia, 1981 [51] L.M. Terman, "An I n v e s t i g a t i o n of S u r f a c e S t a t e s at a S i l i c o n / S i l i c o n Oxide I n t e r f a c e Employing M e t a l - O x i d e - S i l i c o n Diodes", S o l i d State E l e c t r o n i c s , 5, 285 (1962) [52] G.B. Boyd, "MOS C-V Curve A n a l y s i s " , Unpublished [53] K.H. Z a i n i n g e r and G. W a r f i e l d , " L i m i t a t i o n s of the MOS Capacitance Method for the Determination of Semicondutor Surface P r o p e r t i e s " , IEEE Trans. E l e c r o n Devices, ED-12, 179 (1965) [54] A. Shimano, H. Takagi and G. Kano, " L i g h t - C o n t r o l l e d Anodic O x i d a t i o n of n-GaAs and i t s A p p l i c a t i o n to P r e p a r a t i o n of S p e c i f i e d A c t i v e Layers f o r MESFET's", IEEE Trans. E l e c t r o n Devices, ED-26, 1690 (1979) [55] C. Yamagishi, A. M o r i t a n i and J . Nakai, "Study of A n o d i z a t i o n Process on GaAs by i n S i t u D i f f e r e n t i a l R e f l e c t a n c e " , J . Electrochem. S o c , 127, 169 (1980) [56] P.A. Barnes and D.P. Schinke, " R e f r a c t i v e - I n d e x of a Native Oxide A n o d i c a l l y Grown on GaAs", App. Phys. L e t t . , 30, 26 (1977) [57] M.A. Hopper, J.A. Wright and D.J. DeSmet, "Anodic O x i d a t i o n of Zirconium: Evidence of T y p i c a l Value Metal Behavior", J . Electrochem. S o c , V2A, 44 (1977) [58] L.G. Meiners, " E l e c t r i c a l p r o p e r t i e s of the G a l l i u m A r s e n i d e - i n s u l a t o r i n t e r f a c e " , J . Vac. S c i . Technol., J_5, 1402 (1978) [59] D.L. L i l e , "The E f f e c t s of Surface S t a t e s on the C h a r a c t e r i s t i c s of MIS F i e l d E f f e c t T r a n s i s t o r s " , S o l i d S t a t e E l e c t r o n i c , 2\_, 1199 (1978) 65 APPENDIX A C - V I n s t r u c t i o n s & Program 1. I n t r o d u c t i o n : One method of . studying c e r t a i n p r o p e r t i e s of oxide semiconductor i n t e r f a c e s i s by a n a l y s i n g h i g h frequency c a p a c i t a n c e - v o l t a g e (C-V) c h a r a c t e r i s t i c s of metal oxide semiconductor (MOS) s t r u c t u r e s . The a n a l y s i s of C-V curves i n v o l v e s comparing the measured c h a r a c t e r i s t i c s with t h e o r e t i c a l ones, which make s e v e r a l assumptions. Capacitance-Voltage a n a l y s i s i s a powerful t o o l , as i t can determine: 1) The approximate s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t w i t h i n a c e r t a i n range of s u r f a c e p o t e n t i a l . 2) The approximate net doping c o n c e n t r a t i o n and type w i t h i n the space charge l a y e r . 3) The approximate oxide l a y e r t h i c k n e s s (assuming the p e r m i t t i v i t y i s know). In order to a s c e r t a i n these r e s u l t s many experimental measurements at small b i a s increments are r e q u i r e d . Due to the l a r g e number of measurements r e q u i r e d , a PDP8/e computer was programmed to output the necessary d.c. b i a s at a user d e f i n a b l e sweep r a t e (maximum of approximately 2 V / s ) , and then to read i n the obtained c a p a c i t a n c e . From t h i s experimental C-V curve the program t r i e s to c a l c u l a t e the doping c o n c e n t r a t i o n and type, as w e l l as the oxide t h i c k n e s s and the f l a t b a n d c a p a c i t a n c e . In i n s t r u c t i o n codes 6 & 7 (see s e c t i o n s 8. & 9.) the curve can be compared to the t h e o r e t i c a l one i n order to c a l c u l a t e the s u r f a c e s t a t e d e n s i t y per e l e c t r o n v o l t , u s ing Terman's method. At present the software has been setup f o r use with the Boonton model 71A c a p a c i t a n c e - i n d u c t a n c e meter. Consequently the software must be c a l i b r a t e d each time the program i s run or whenever the meter's s c a l e i s changed. A l s o as the 16 b i t DAC has been wired u n i p o l a r (0-250 v o l t s ) , i n s t e a d of b i p o l a r , an o f f s e t t i n g power supply i s r e q u i r e d so that the b i a s v o l t a g e can go n e g a t i v e . The d e f a u l t value of the o f f s e t t i n g power supply i s 15 v o l t s . 2. S t a r t i n g the Program In order to run the C-V program, the f o l l o w i n g procedure must be done. 66 (a) Turn on the Boonton model 71A cap a c i t a n c e - i n d u c t a n c e meter and allow to warm up f o r 20 - 30 mins. (b) Turn on the o f f s e t t i n g power supply and set nominally to 15 v o l t s . (c) Turn on the i n t e r f a c e rack 5 v o l t power supply, the DANA, the DAC power supply and the p l o t t e r . (d) Ensure that the DANA i s set on the 1000 v o l t D.C. range, and that the DANA OUTPUT button i s depressed. (e) Connect up the 12 b i t ADC to the >10 Ml? output on the back of the Boonton. (f) Connect the 1.6 b i t DAC to the p o s i t i v e of the o f f s e t t i n g power supply, then take the negative and the DAC's ground to the b i a s t e r m i n a l s on the back of the Boonton. (g) Load the d i s k o p e r a t i n g system (OS/8) - See op e r a t i n g system manual f o r i n s t r u c t i o n s , then enter at the t e r m i n a l .R FRTS <CR> *CV <ESC> where <CR> means the RETURN key where <ESC> means the ESCAPE key (h) Set the MOS TESTER to S-C (short c i r c u i t ) then put the c a p a c i t o r i n p l a c e , and c l o s e the l i d (note: there are two probes one f o r the gate and one f o r the guard r i n g -- the l e f t one i s f o r the guard r i n g ) . ( i ) Set the MOS TESTER to C-V and set the DANA's s c a l e to 10 v o l t s D.C. ( f o r v o l t a g e s over ±15 v o l t s use the 100 v o l t s c a l e ) . During the program i n i t i a l i z a t i o n the f o l l o w i n g o c c u r s . (a) The D.C. b i a s v o l t a g e i s set to zero (assuming that the o f f s e t t i n g power supply i s 15 v o l t s ) . (b) The p l o t t e r i s i n i t i a l i z e d . (c) D e f a u l t parameters f o r A l - S i 0 2 - S i are setup. (d) The screen i s c l e a r e d and the f o l l o w i n g i n s t r u c t i o n s are p r i n t e d on the screen. 67 KEYBOARD COMMANDS: 1 = CHANGE DEFAULT PARAMETERS 2 = IDEAL HIGH FREQ. C-V CURVE 3 = IDEAL LOW FREQ. C-V CURVE 4 = SET GATE VOLTAGE 5 = CALIBRATE CAPACITANCE 6 = GET EXP. C-V & NSS 7 = GET FULL C-V & NSS 8 = GET C-V FILE FOR PLOTTING & ANALYSIS 9 = STOP PROGRAM EXECUTION 10 = REPLOT DATA INSTRUCTION: The program i s ready f o r a new command every time the INSTRUCTION: prompt i s g i v e n . E n t e r i n g a code number ( f o l l o w e d by a return) i n response to the prompt causes the program to execute the a p p r o p r i a t e t a s k . At the end of the task (or upon a e r r o r r e t u r n from SPLINE-see s e c t i o n 8.) the program r e t u r n s to the keyboard command mode. I f an undefined command i s entered, the t e r m i n a l i s c l e a r e d and the i n s t r u c t i o n set i s again p r i n t e d out. The user can enter commands i n any order, s u b j e c t to c e r t a i n r e s t r i c t i o n s which are o u t l i n e d below. Notes: A l l entered numbers REQUIRE decimal p o i n t s . The f o l l o w i n g d e f a u l t v a l u e s are asigned: VGMIN = -10. VGMAX = 10. X AXIS LENGTH = 6. Y AXIS LENGTH = 8. Lowering switch r e g i s t e r zero w i l l i n ge n e r a l terminate the task ( c o n t r o l may or may not re t u r n to the K.C.M.). 3. I n s t r u c t i o n Code 1: changing the d e f a u l t parameters The user can change any eleven of the d e f a u l t parameters to the d e s i r e d v a l u e s . Some of the more obscure parameters are: PSIO i s the s u b s t r a t e p o t e n t i a l ( u s u a l l y 0 v o l t s ) , INC i s the s u r f a c e p o t e n t i a l increment f o r the t h e o r i c a l p l o t s , VGINC i s the b i a s increment f o r the C-V scan and START DELAY i s the delay between a p p l y i n g Vgmin and s t a r t i n g the scan. 4. I n s t r u c t i o n Code 2: t h e o r e t i c a l high f r e g . p l o t The user e n t e r s Nd, Na, Tox and the Area. The program uses these p l u s the d e f a u l t parameters that were set up at the s t a r t or those set up by the l a s t c a l l to i n s t r u c t i o n code 1, to generate a t h e o r e t i c a l curve which i n c l u d e s work f u n c t i o n 68 d i f f e r e n c e s . 5. I n s t r u c t i o n Code 3: t h e o r e t i c a l low f r e q . p l o t T h i s i s e x a c t l y the same as i n s t r u c t i o n code 2 except that a low frequency curve i s p l o t t e d i n s t e a d of a h i g h frequency curve. 6. I n s t r u c t i o n Code 4: set up a gate v o l t a g e T h i s i n s t r u c t i o n i s used to set up a gate v o l t a g e before (or a f t e r ) t a k i n g a C-V measurement. I t can a l s o change the o f f s e t v o l t a g e , but i f no o f f s e t v o l t a g e i s entered, i t maintains i t s p r e v i o u s v a l u e . I f a f t e r 50 ms the d e s i r e d gate v o l t a g e i s not obtained, the user i s informed and the program r e t u r n s to the keyboard command mode. The two p o s s i b l e reasons why the d e s i r e d gate v o l t a g e was not obtained a r e : 1) The o f f s e t v o l t a g e i s not l a r g e enough (eg wanting -20 v o l t s when the o f f s e t v o l t a g e i s only - 15 v o l t s ) . 2) The c a p a c i t o r i s leaky or has been destroyed. 7. I n s t r u c t i o n Code 5: c a l i b r a t i n g the capacitance T h i s i n s t r u c t i o n i s used to s c a l e the output v o l t a g e of the Boonton i n t o a c a p a c i t a n c e . I t a l s o a l l o w s the user to set an approximate sweep r a t e (maximum of about 1 V/s) and to set the number of readings per v o l t a g e step. I f the sweep r a t e i s not entered i t remains unchanged ( d e f a u l t value i s about .1 V / s ) . i f the number of readings i s not entered i t remains unchanged with a d e f a u l t value of 25. If the v o l t a g e read from the Boonton i s l e s s than or equal to zero, the user i s informed and again prompted to enter the c a p a c i t a n c e , sweep r a t e and number of readings. The two main reasons f o r t h i s c o n d i t i o n o c u r r i n g a r e : 1) The 12 b i t ADC i s not connected to the Boonton. 2) The sample i s not connected to the Boonton ( i e the MOS TESTER i s not on CV). 8. I n s t r u c t i o n Code 6: g e t t i n g a h a l f C-V curve & Nss / eV T h i s i n s t r u c t i o n generates the r e q u i r e d gate v o l t a g e , s t a r t i n g at Vgmin and incrementing by Vginc ( d e f a u l t i s 50 mv) to Vgmax (or Vgmin + 400*Vginc, whichever i s l e s s ) , and reads i n 69 the obtained c a p a c i t a n c e at each b i a s step. The sweep r a t e of the b i a s i s set by i n s t r u c t i o n code 5 and has a d e f a u l t value of approximately .1 V/s . I t should be p o i n t e d out t h a t i f the c a p a c i t o r i s "leaky" or i f the oxide has broken down, the DAC may not have the a b i l i t y to d r i v e the c a p a c i t o r i n t o accumulation. Thus the b i a s w i l l not get to Vgmin f o r P-type or to Vgmax f o r N-type. The user has an o p t i o n of three output modes, these are the p l o t t e r [PLOT] which i s the d e f a u l t , a f i l e [ F I L E ] , or both a f i l e and a p l o t [FPLOT]. If e i t h e r [FILE] or [FPLOT] are chosen there i s a n o t i c e a b l e delay a f t e r the sweep i s completed while the a r r a y s are w r i t t e n to the d i s k . A l s o i f [FILE] was chosen the program r e t u r n s to the keyboard command mode. I f the C-V curve i s reasonable ( i . e . i f the curve has i n v e r s i o n , d e p l e t i o n and accumulation r e g i o n s ) , the program w i l l then attempt to determine the oxide t h i c k n e s s , f l a t b a n d c a p a c i t a n c e , net doping c o n c e n t r a t i o n and type of the MOS sample. I f the program does not t h i n k the C-V curve i s good enough, i t then informs the user of the region i t d i d not l i k e and retur n s to the keyboard command mode (unless swith r e g i s t e r 1 i s lowered). I f these v a l u e s seem to be i n e r r o r , then the wrong area or r e l a t i v e p e r m i t t i v i t i e s were given and can be re - e n t e r e d . O p t i o n a l l y the user can have a t h e o r e t i c a l curve p l o t t e d , v a r y i n g the doping c o n c e n t r a t i o n and oxide t h i c k n e s s u n t i l a s a t i s f a c t o r y curve i s obtained. Then i f r e q u i r e d the program attempts to determine the number of s u r f a c e charges per square centimeter vs s u r f a c e p o t e n t i a l from the measured and t h e o r e t i c a l c urves. T h i s i s done w i t h i n the d e p l e t i o n region of the measured curve, which w i l l d e f i n e the s u r f a c e p o t e n t i a l range. T h i s data i s then smoothed i n t e r a c t i v e l y , so that the number of s u r f a c e s t a t e s per square centimeter per e l e c t r o n v o l t can be c a l c u l a t e d and p l o t t e d out (with or without a x e s ) . I f however, there are l e s s than three data p o i n t s an e r r o r r e t u r n i s executed from SPLINE ( t h i s i s a smoothing and d i f f e r e n t i a t i o n r o u t i n e ) , back to the keyboard command mode. The smoothing of the curve depends on the d e v i a t i o n of the ca p a c i t a n c e (DY), i e the l a r g e r the DY the " l o o s e r " the f i t to the p o i n t s . The program guesses at DY the f i r s t time through and subsequently p l o t s out a "smooth" curve and every second p o i n t . If t h i s "smooth" curve i s not smooth enough , the user i s given the c u r r e n t value of DY and i s prompted to enter another v a l u e . When the user i s s a t i s f i e d with the smoothness of the curve , the program asks i f axes are to be p l o t t e d f o r the Nss per eV vs s u r f a c e p o t e n t i a l c urve. 9. I n s t r u c t i o n Code 7: g e t t i n g a f u l l C-V curve & Nss / eV T h i s i s e x a c t l y the same as i n s t r u c t i o n code 6 except that the b i a s v o l t a g e i s swept from Vgmin to Vgmax back to Vgmin i n s t e a d of only from Vgmin to Vgmax. T h i s allows one to see the h y s t e r e s i s of the c a p a c i t o r . 70 10. I n s t r u c t i o n Code 8: g e t t i n g a C-V f i l e as input T h i s i n s t r u c t i o n reads a f i l e , that was generated from i n s t r u c t i o n code 6 or 7, i n such a manner so t h a t the f i l e can be p l o t t e d and ana l y s e d as i f the data had j u s t been obtained from i n s t r u c t i o n code 6 or 7. There i s a n o t i c e a b l e delay at the s t a r t of t h i s i n s t r u c t i o n as the f i l e i s being read i n . 11. I n s t r u c t i o n Code 9: stopping the program Execution of the program i s terminated and the user i s returned to the OS/8 o p e r a t i n g system. If f o r any reason the user wishes to stop the program when one of the commands i s being executed, t h i s can be accomplished by simultaneously p r e s s i n g CTRL and C. 12. I n s t r u c t i o n Code 10: r e p l o t i n g data T h i s i n s t r u c t i o n w i l l r e p l o t the C-V data, assuming that there i s something to p l o t . Otherwise, the i n s t r u c t i o n i s a no-op. I t should be noted that once the program has t r i e d to generate the s u r f a c e charge curve, the C-V data i s l o s t . C F I L E MOSCV C C THIS IS THE DRIVER ROUTINE FOR THE MOS C - V CURVE C ANAVSIS POMS. C C LOADER COMMAND IS AS FOLLOWS: C .R LOAD C »CV.CV.MP<MOSCV,IOT1.USR.INOUT.RDANA/O C »CVINS.CALCAP C *SETCV C *GDATA C 'EXPCV C »CALNSS/0 C 'SPLINE C »MCV.SETVG.CV.CVPLOT.CVOK.PLOTCV.QSSNSS.MINMAX/C C 'SCALE.OUTPUT,OANA,FILE 10.LINREG.FFREADS C LOGICAL HFREG. PLOT. ATA INTEGER TYPEA. ENTRY REAL MIN,- MAX REAL NI . NI2. LEN(2), IN(4), CAP(400). C2(40O), V0LT(4OO), V2(40O) C COMMON /BLOCK)/ PSIS. C, CD, COX. VG COMMON /BL0CK2/ BETA. KI. K2, PSIO. VOX, NO, PO. PHIMS. CHI COMMON /BL0CK3/ N. HFREO. PLOT. TYPEA, NUMBER. NUM2 COMMON /BL0CK4/ NI2. ESI, EOX. INC. AREA, VOINC COMMON /BLOCKS/ T, NI, ES. E I . K, EO. YES. EG, PHIM COMMON /BLOCKS/ LEN, VGMIN. VOTIC. CCOXM. CCOXT. VGMAX, ANS COMMON /BL0CK7/ EXPCOX, EXPMIN, TYPE COMMON /BLOCKS/ SCALE, OFFSET. DELAY. NOREAO, STDEL. SDELAV COMMON /ARRAY/ IN. CAP, VOLT, C2, V2 C DATA LEN /6. 8/, VGMIN /-10./, VGTIC /2/, YES /'Y' / OATA EO /8.8S4E-12/. T /300/. K /8.62SE-5/, DELAY /2500./ OATA NI /1.45EI0/. NI2 /2.1025E20/. ES / I I . 8 / , NOREAO /2S/ DATA EI /3.B/. PSIO 10.I, VGMAX /10/. INC /.005/. VOINC /.03/ DATA CCOXM 10.I. CCOXT /.IS/. AREA /7.854E-7/, EG /1.1/ DATA CHI /4.15/. PHIM /4.1/. SCALE / I . / . OFFSET /IB./ DATA STDEL /10/. SDELAY / I / C CALL PLOTS(.005. 0) CALL XYPLOT(0. O. -3) CALL 0ACI6(0FFSET) ESI • ES • EO EOX - EI * EO BETA • 1 / (K*T) ATA • .FALSE. C C WRITE OUT KEYBOARO COMMANDS C 10 CALL CVINS 20 WRITE (4.100) READ (4.110) INS IF (INS LE. O OR. INS .GT. 10) GO TO tO HFREG • .TRUE. PLOT • TRUE. C C DECODE KEYBOARD COMMANDS C IF (INS .EO. 1) CALL SETCV IF (INS EO. 2) GO TO 40 IF (INS EO. 3) GO TO 30 IF (INS EO. 4) CALL SETVG(0. IF (INS EO. 5) CALL CALCAP IF (INS EO. 6) GO TO 50 IF (INS EO. 7) GO TO 50 IF (INS EO. 8) GO TO 80 IF (INS EO. 9) CALL EXIT IF (INS EO. 10) GO TO 90 GO TO 20 HrREG - FALSE. CALL MCV CALL OUTPUT GO TO 20 50 ENTRY = INS - 5 CALL EXPCV(ENTRY, ERR) 60 IF (ERR EO 10 .OR. ERR .EO. 0) ATA • .TRUE. IF (ERR .NE. O) GO TO 20 CALL PLOTCV(ENTRY, MIN, MAX. ERR) 70 IF (ERR NE. 0 OR. ATA EO. .FALSE. ) GO TO 20 CALL CALNSS(MIN. MAX) ATA » .FALSE. GO TO 20 80 CALL GDATA(ENTRY, ERR) IF (ERR NE. 0) GO TO 20 GO TO 60 90 IF (ATA) CALL PLOTCVlENTRY. MIN. MAX. ERR) GO TO 70 C (00 FORMAT (/, ' INSTRUCTION: '. $) 110 FORMAT (12) C END C FILE CVINS C C THIS SUBROUTINE WRITES OUT THE COMMANDS C SUBROUTINE CVINS C CALL I O T O I 1 0 . 2 7 . 10) CALL 101(3110.72.10) CALL I0T(3110.27.10) CALL I 0 T O 1 10.74. 10) WRITE(4.B00) WRITE(4.B01) RETURN C 800 FORMAT(9X.'KEYBOARD COMMANDS:'.//. 1 IX. ' 1 • CHANGE DEFAULT PARAMETERS' ./. 2 IX. ' 2 • IDEAL HIGH FREG. C-V CURVE './. 3 IX, ' 3 * IDEAL LOW FREG. C-V CURVE' ./. 4 IX. ' 4 • SET GATE VOLTAGE',/, S IX. ' S • CALIBRATE CAPACITANCE'./. 6 IX. * 6 GET EXP. C-V ft NSS'./. 7 IX. ' 7 * GET FULL C-V ft NSS',/, 8 IX. ' 8 • GET CV FILE FOR PLOTTING ft ANALYSIS') FORMATJIX.' 9 • STOP PROGRAM EXECUTION',/, 0 IX. ' 10 • REPLOT DATA') c END C FILE CALCAP C C THIS SUBROUTINE WILL CALABRATE A MEASURED C VOLTAGE 10 A GIVEN CAPACTANCE. C SUBROUTINE CALCAP C REAL IN(4) C COMMON /BLOCKS/ SCALE, OFFSET. DELAY. NOREAD COMMON /ARRAY/ IN C 10 WRITE (4.40) CAI L FFREADO. IN. 4, ERR) IF (ERR NC. O .OR. IN(1) .LE. O) 00 TO 10 IF ( I N O ) .GT. O) NOREAO • IN(3) IF ( I N ( 2 ) GT. O) OELAY • 200 / IN(2) CAP • 1N(1) • ' 10 <- 12) VOLT • 0. DO 20 I • 1, NDREAD CALL A0C12(CAPT0T) IF (CAPTOT LE. 0) GO TO 30 20 VOLT • VOLT • CAPTOT SCALE • CAP • NOREAO / VOLT IF (SCALE .NE. O) RETURN 30 WRITE (4.50) GO TO 10 C 40 FORMAT (' ENTER CAPACITANCEJPFJ,SWEEP RATE IV/S)', 1 * * OF READINGS '. *) SO FORMAT (' CHECK THAT THE MOS TESTER IS ON CV AND THAT 1 THE 12 BIT A/0 IS CONNECTED') C END C F I L E SETCV C C THIS SUBROUTINE WILL CHANGE THE DEFAULT VALUES OF C BETA.INC.NI,ES.El.PSIO.EG.PHIM,CHI,VGINC.START DELAY. C SUBROUTINE SETCV C REAL NI. NI2. K. INC. EG. PHIM, CHI. IN(4) C COMMON /BLOCK2/ BETA. K1. K2. PSIO. VOX. NO, PO. PHIMS. CHI COMMON /BLOCK4/ NI2. E S I . EOX. INC. AREA. VGINC COMMON /BLOCKS/ T, NI, ES. EI, K, EO. YES, EG, PHIM COMMON /BLOCKS/ SCALE. OFFSET, OELAY, NOREAD. STOEL. SDELAY COMMON /ARRAY/ IN C C GET NEW BETA ? C 10 WRITE (4.130) T REAO (4.140) ANS IF (ANS EO. YES) GO TO 20 WRITE (4,150) REAO (4.ISO) T IF (T LT. 1) GO TO 10 BETA • 1 / (K*T) C C GET NEW NI 7 C 20 WRITE (4.170) NI REAO (4,140) ANS IF (ANS EO. YES) GO TO 30 WRITE (4.180) READ (4,160) NI NI2 - NI • NI C C GET NEW EG 7 C 30 WRITE (4.260) EG READ (4.140) ANS IF (ANS .EO. YES) GO TO 40 WRITE (4,270) READ (4.160) EG C C GET NEW PHIM 7 C 40 WRITE (4.280) PHIM READ (4,140) ANS IF (ANS EO. YES) GO TO 50 WRITE (4,290) REAO (4,160) PHIM C C GET NEW CHI 7 C 50 WRITE (4.30O) CHI READ (4.140) ANS IF (ANS EO. YES) GO TO 60 WRITE (4.310) READ (4.160) CHI C C GET NEW PSIO 7 C 60 WRITE (4,190) PSIO READ (4.140) ANS IF (ANS EO. YES) GO TO 70 WRITE (4.20O) READ (4,160) PSIO C C C GET NEW ES 7 C 70 WRITE (4.210) ES REAO (4,140) ANS IF (ANS EO. YES) GO TO 80 WRITE (4.220) REAO (4. 160) ES ESI » ES • EO C •C GET NEW EI 7 C 80 WRITE (4,230) EI READ (4.140) ANS IF (ANS EO. YES) GO TO 90 WRITE (4,220) READ (4,160) EI EOX » EI • EO C C GET NEW INC AND VGINC 7 C 80 WRITE (4.240) INC. VGINC REAO (4.140) ANS IF (ANS .EQ. YES) GO TO 110 100 WRITE (4,250) CALL FFREAD(2, IN, 4, ERR) IF (ERR NE. O OR. IN(1) .LE. O OR. IN(2) .LE. 0) GO TO 100 INC • IN(1) VGINC » IN(2) C C GET NEW START DELAY 7 C 110 WRITE (4,320) SDELAY READ (4,140) ANS IF (ANS EO. YES) GO TO 120 WRITE (4,330) READ (4.160) SDELAY STOEL " SDELAY • 10 120 RETURN C 130 FORMAT (' TEMP •'. F7.2, ' OK Y/N ','$) 140 FORMAT ( A l ) 150 FORMAT (' ENTER TEMP (KELVIN) '. $) 160 FORMAT (E20.B) 170 FORMAT (' NI •', E10.4. ' OK Y/N '. t ) 180 FORMAT (' ENTER NI (CM-3) '. « ) 190 FORMAT (' PSIO »', F6.3.' OK Y/N '. t ) 200 FORMAT (' ENTER PSIO '. $) 210 FORMAT (' RELATIVE PERMITTIVITY OF SEMI •'. F8.3. ' OK Y/N '. S) 220 FORMAT (' ENTER RELATIVE PERMITTIVITY '. t ) 230 FORMAT (' RELATIVE PERMITTIVITY OF INSULATOR •', F8.3. 1 ' OK Y/N '. S) 240 FORMAT (' INC •'. F8.5, ' VGINC •', F8.3. ' OK Y/N '. f) 250 FORMAT (' ENTER INC.VGINC *, $) -«l 260 FORMAT (' BANO GAP •'. F5.2. ' [EV] OK Y/N '. t ) 270 FORMAT (' ENTER BAND GAP [EV] '. $) 280 FORMAT (' METAL WORK FUNCTION »', F5.2, ' [EV] OK Y/N 290 FORMAT (' ENTER METAL WORK FUNCTION [EV] '. $) 3CO FORMAT (' CHI »' '. F5.2. ' [EV] OK Y/N ', $) 310 FORMAT (' ENTER CHI [EV] \ $) 320 FORMAT (' START OELAY •'. F5.2. ' [SEC] OK Y/N ', , $) 330 c FORMAT C ENTER START DELAY '. $) END C FILE GOATA C C THIS SUBROUTINE GETS THE AREA, ANO CAPACITANCE VS VOLTAGE C CHARACTERISTICS FROM A OUTPUT F I L E . C SUBROUTINE GDATA(PASS, ERROR) C INTEGER ENTRY. ERR. ERROR. TYPEA LOGICAL HFREG, PLOT RCAL C(4 0 0 ) . C2(400). V(400). V2(400). I N ( 4 ) . I N F I L E O ) . LEN(2) C COMMON /BLOCKS/ N, HFREG, PLOT. TYPEA, NUMBER, NUM2 COMMON /BL0CK4/ NI2. ESI, EOX. INC. AREA. VGINC COMMON /BLOCKS/ LEN. VGMIN. VGTIC. CCOXM, CCOXT. VGMAX. ANS COMMON /ARRAY/ IN, C. V, C2, V2 C OATA BLANK /' '/ C c C OET INPUT FDnnme C CALL F I L E I 0 ( 1, INFILE. ERROR) IF (ERROR .EO. 1) RETURN C C SETUP & GET AREA C 10 I • O. PASS - 1. CALL FFREAD(2, IN, 8. ERR) AREA • IN(1) FREO • IN(2) 20 CALL FFREADO, IN, 8. ERR) IF (ERR EO. 1) GO TO 20 IF (ERR EO. 10) GO TO 40 IF (IN(3) .NE. 2) GO TO 30 NUMBER • I PASS • 2. I • O 30 I • I • 1 C 2 ( I ) • IN(1) V 2 ( I ) • IN(2) IF (PASS EO. 1) C ( I ) • C 2 ( I ) IF (PASS EO. 1) V ( I ) • V 2 ( I ) GO TO 20 40 NUM2 » I IF (PASS .EO. 1) NUMBER • NUM2 VGMIN • I F I X ( V ( 1 ) - .8) VGMAX • IFIX(V(NUMBER) • .9) RETURN END C F I L E EXPCV C C THIS SUBROUTINE CONTROLS THE PROCESS OF GETTING C IN THE CAPACITANCE VS VOLTAGE CURVE OF A SAMPLE. C SUBROUTINE EXPCV(ENTRV, ERR) C • LOGICAL NPLOT. HFREO REAL C ( 4 0 0 ) . C2(400). LEN( 2 ) . V(400). V2<400). IN(4). O U TFILO) C COMMON /BLOCKS/ N, HFREO. NPLOT, TYPEA. NUMBER. NUM2 COMMON /BLOCK4/ NI2, ESI, EOX, INC. AREA. VGINC COMMON /BLOCKS/ LEN, VGMIN, VGTIC. CCOXM, CCOXT, VGMAX COMMON /BLOCKS/ SCALE. OFFSET. DELAY. NOREAD. STDEL COMMON /ARRAY/ IN. C, V, C2, V2 C DATA BLANK /' '/. FILE / ' F I L E ' / . FPLOT /'FPLOT'/. PLOT /'PLOT'/ DATA FREO /1E6/ C PASS • 1. 10 WRITE (4.210) READ (4.220) OUTYPE IF (OUTYPE .EO. BLANK) OUTYPE • PLOT IF (OUTYPE .EO. PLOT .OR. OUTYPE .EO. FILE .OR. OUTYPE .EO. FPLOT 1 GO TO 20 WRITE (4.240) GO TO 10 20 IF (OUTYPE .EO. PLOT) GO TO 30 CALL FILEI0(2. OUTFIL, ERR) IF (ERR EO. 1) RETURN 30 WRITE (4,230) CALL FFREAOO, IN. 4, ERR) IF (ERR .NE. 0 .OR. IN(2) .LT. IN(1)) GO TO 30 IF ( I N ( 1 ) .EO. O .AND. IN(2) .EO. 0) GO TO 40 VGMIN • IN(1) VGMAX • IN(2) I 40 IF (I N ( 3 ) .GT. O) AREA • IN(3) 50 VG • VGMIN CALL SETVG(1. ERR) IF (ERR .NE. 0) GO TO 190 C C ZERO OUT C AND V FOR START DELAY C DO 60 K • 1, STDEL 00 60 I • 1. 400. C 2 ( I ) • 0. V 2 ( I ) • 0. V ( I ) • O. 60 C ( I ) • 0. C C sat up Vg, delay f o r swaep rata, gat raal Vg and C. C 70 J • O. BO d • d + 1 IF ( d .GE. 400) GO TO 130 CALL DAC16(VG • OFFSET) DO 90 I • 1. DELAY 90 CONTINUE SWO • O. CALL IOT(3972, SWO. 10) IF (SWO .EO. O) GO TO 190 CALL DANA(REALVG, 0) V2(d) • REALVG CTOT • O. DO 100 I • 1, NOREAO CALL ADC12(CAPT0T) 100 CTOT • CTOT • CAPTOT IF (CTOT EO. O) GO TO 180 C2(d) • CTOT • SCALE / NOREAD IF (ARS(REALVG - VG) .LT. .B) GO TO 110 WRITE (4.250) GO TO 190 110 VG • VO • VGINC • (-2«PA5S + 3) IF (PASS .EO. 2) GO TO 120 V(d) •= REALVG C(d) ' C2(d) IF (d EO. 1) GO TO 80 IF (V(d) .LE. V ( d - 1)) d - d - 1 IF (REALVG .LT. VGMAX) GO TO 80 GO TO 130 120 IF (d EO. 1) GO TO 80 IF (V2(d) GE. V2(d - 1)) d • J - 1 IF (REALVG .GT. VGMIN) GO TO 80 130 NUM2 * d - 1 IF (PASS EO. 1) NUMBER • NUM2 IF (ENTRY .EO. 1 .OR. PASS .EO. 2) GOTO 140 PASS • 2. GO TO 70 140 CALL DAC16(0FFSET) IF (OUTYPE .EO. PLOT) RETURN N - NUMBER WRITE (9.260) AREA. FREO PASS - 1. WRITE (9.260) C ( 1 ) . V ( 1 ) . PASS 150 DO (GO I " J , N IF (PASS .EO. 1) WRITE (9,260) C ( I ) , V ( I ) 160 IF (PASS .EO. 2) WRITE (9,260) C 2 ( I ) . V 2 ( I ) IF (ENTRY .EO. 1 OR. PASS .EO. 2) GO TO 170 PASS - 2. N • NUM2 WRITE (9.260) C 2 ( 1 ) , V2(1). PASS GO TO 150 170 IF (OUTYPE .EO. FI L E ) ERR • 10. GO TO 20O 180 WRITE (4.270) 190 E1R • 1. 200 IF (OUTYPE .NE. PLOT) CALL USR(9. OUTFIL, 4. IERR) CALL 0AC16(0FFSET) RETURN C 210 FORMAT (' TYPE OF OUTPUT [PLOT,FILE,FPLOT) '. *) 220 FORMAT (A6) 230 FORMAT (' ENTER VGMIN.VGMAX,AREA(M2) '. *) 240 FORMAT (' MISSPELLED KEYWORD') 250 FORMAT (' GATE VOLTAGE NOT FOLLOWING — CHECK CAPACITOR') 260 FORMAT ( I X . 1PE15.8. 3X. 1PE15.8. 3X. 1PE7.1) 270 FORMAT (' ZERO READING FROM A/0-77') C END C FILE CALNSS C C THIS SUBROUTINE CALCULATES NSS VS PSIS GIVEN TWO CURVES. C SUBROUTINE CALNSS(MIN. MAX) C REAL CAP (4 0 0 ) . V ( 400). NSS (400). L, MIN. MAX. LEN( 2 ) , INC HEAL LOIFF, FUDGE. SURP0T(4OO). IN(4), NSSMIN EQUIVALENCE ( C A P ( t ) , N S S ( 1 ) ) . fV(1 ),SURPOT( 1 )) C COMMON /BLOCK 1/ PSIS, C. CD, COX. VG COMMON /BL0CK3/ N. FREG. PLOT. TYPEA. NUMBER COMMON /BL0CK4/ NI2, ESI, EOX. INC. AREA COMMON /BL0CK6/ LEN, VGMIN. VGTIC. CCOXM, CCOXT. VGMAX COMMON /BL0CK7/ EXPCOX, EXPMIN. TYPE COMMON /ARRAY/ IN, CAP. V C DATA 0 /1 6E-19/ C C PLOT IDEAL CURVE ? C WRITE (4,170) READ (4,140) ANS IF (ANS .NE. 'V*) RETURN PLOT - .FALSE. K • 0 C C GET INFO ON IDEAL CURVE. C 10 CALL MCV SINC • INC SPSIS - PSIS INC • .003 CALL OUTPUT WRITE (4,150) READ (4,140) ANS IF (ANS .NE. 'V' ) GO TO 10 PSIS « SPSIS C C GET NSS VS PSIS 7 C WRITE (4.160) READ (4.140) ANS IF (ANS .NE. 'V') RETURN DO 50 I * 1. NUMBER IF (CAP(I) .LT. MIN .OR. CAP( I) .GT. MAX) 00 TO 50 C C FIND A CAP. VALUE IN IDEAL CURVE THAT IS WITHIN FUDGE C OF EXP. CURVE C FUDGE • CAP(I) • .0005 INC • .01 PSIS • PSIS - 5 • INC LOIFF « O. 20 CALL CV DIFF • CAP(I) - C IF (VG .GT. VGMAX) GO TO 60 IF (ABS(DIFF) .LE. FUDGE) GO TO 40 IF (OIFF .GT. 0 .AND. LDIFF .GE. 0) GO TO 30 IF (DIFF .LT. 0 .AND. LDIFF .LE. O) GO TO 30 PSIS « PSIS - INC INC • INC / 2 DIFF - LDIFF 30 PSIS • PSIS + INC LDIFF * DIFF GO TO 20 C C CALCULATE NSS VS PSIS C 40 K « K • 1 FUDGE • .000001 NSS(K) - ABS(VG - V ( I ) ) • COX / (0*AREA*10000.) SURPOT(K) - PSIS IF (K EO. 1) GO TO 30 IF (SURPOT(K) GT. SURPOT(K - 1) • FUDGE) GO TO BO K • K - 1 . 80 CONTINUE 60 IF (K GE. 99) K • 88. S • K * SQRT(2»K) NSSMIN - NSS( 1 I DO 70 I • 2. K 70 IF ( N S S ( l ) LT. NSSMIN) NSSMIN • NS5(I) DY - NSSMIN • .003 INC - (SURPOT(K) - SURPOT(D) / 150 SURPOT(100) • SURPOT(I) - INC DO BO I • 101, 246 80 SURPOT(I) • SURPOT(t - 1) • INC IF (SURPOT(IOI) LT. SURPOT(D) SURP0T(101) • SURPOT(I) IF (SURPOT(248) .GT. SURPOT(K)) SURPOT(248) • SURPOT(K) SURPOT(249) • -1000. NSS(249) • -10OO. 80 CALL SPLINEIOY. S, K, ERR) IF (ERR NE. 0) RETURN SURP0T(K • 1) " 1000. 10O CALL OSSNSS(1) WRITE (4.120) READ (4,140) ANS IF (ANS EO. Y') GO TO 110 WRITE (4.130) DY DDY » DY READ (4,160) DY IF (DY .EO. DDY) GO TO 100 GO TO 90 110 CALL 0SSNSS(2) INC • SINC RETURN C 120 FORMAT (• CURVE FITTING OK Y/N *. *) 130 FORMAT (' DY IS NOW '. 1PE11.3. ' ENTER NEW OV '. t ) 140 FORMAT ( A l ) 150 FORMAT (' THEORETICAL CURVE OK Y/N '. $) 160 FORMAT (E15.7) 170 FORMAT (' PLOT THEORETICAL CURVE 7 Y/N '. t ) 180 FORMAT (' GET NSS VS PSIS 7 Y/N ', t ) C END C F I L E SPLINE C C THIS SUBROUTINE IS FROM A MTS PACKAGE AND HAS BEEN C MODIFIED TO SUIT My NEEDS (AND OS/8). C SUBROUTINE SPLINE(DYV.S,N,ERR) C DOUBLE PRECISION SS.OS,EE.W(1114),DY.P,H.F,G.E,DIFF REAL X(40O).YY(148). IN( 4 ) ,Y(4O0).S.XX(t48).VY1( 148) INTEGER A.B.C.D.R.R1.R2.T.T1.U.V C COMMON /ARRAY/ IN.Y.X EQUIVALENCE (XX( 1), X( 1 0 1 ) ) . ( Y Y ( 1 ) . Y ( 1 0 1 ) ) . ( YY 1 ( 1 ) , Y( 231 ) ) C ERR " 1 . IF (N.LT.3 .OR. N .GE. 99) RETURN NCOUNT-1 DY - DBLE(DYV) SS • DBLE(S) DS'SS IF(S.LE.O.O) SS«1.0D-8 EE-DS*0.5D-6 IF (S.LE.O.O) EE-0.30-6 NM=N-1 N2-N+2 NB = N NC*NB*N ND-NC+N NR-ND»N NR1-NR+N2 NR2-NR1+N2 NT -NR2+N2 NT 1=NT+N2 NU-NT1+N2 NV«NU*N2 DO 20 I • 1. 1114 20 W(I) • 0.000 P'O.ODO c C SET A TO OT«Y C SET R.P1 ,R2. TO 0*0 C H'X(2)-X(1) F - ( Y ( 2 ) - Y ( 1 ) ) / H 00 1 I-2.NM IF(H.LE.0.000) RETURN A-I G-H H - X ( I * 1 ) - X ( I ) E-F F - ( Y ( I * 1 ) - V ( I ) ) / H W(I)=F-E T-NT*I W(T+1)-.666G667D0*(Q+H) T1-NT1+I W(T1+1)-.3333333D0*H R2-NR2M W(R2*1)-DY/Q R-NR»I W(R+1)«DY/H R1-NR1»I 1 W(R1*1)"-DY/G-DY/H C C SET B.C.AND D TO QT'D'D^O C DO 2 I'2.NM B=NB+I R-NR +I R1"NR1*I R2*NR2+I W(B)"W(R*1)*W(R+1)*W(R1*1)«W(R1*1)+«(R2*1)*W(R2*1) C-NC»1 W(C)=W(R*1)*W(R1+2)+W(R1*1)*W(R2*2) D=NO+I 2 W(D)"W(R+1)*W(R2+3) C 3 CONTINUE C C DO A LOU DECOMPOSITON OF OT'D'D^O+P^T C DO 4 I-2.NM A-I R1-NRI+1 R'NRtI R2-NR2*! U-NU+I T1-NT1+I . B-NBH C-NC+I D=ND*I T-NT+I W(Rt)*F*W(R) W(R2-t)-G*¥(R-1) W(R* 1 )-1 000/(W(B)*P«W(T*1)-F»W<R1)-Q«W(R2-1)) W(U+1)-W(A)-W(R1)*W(U)-W(R2-1)*V(U-1) F-W(C)*P»W(T l-M)-H-W(RI) G-H 4 H>W(D) C C DO BACK SUBSTITUTION C DO 5 I-2.NM II-N2-I U-NU*-11 R»NR*II R1-NR1+II R2-NR2*II 3 W(U)-W(R)*W(U)-W(R1)*W(U+t)-V(R2)*V(U+2) E-0.000 H-O.OOO c C THE V IS REALLY D*D»0»U C 00 G I-1.NM U-NU+I V-NV+I G=H H « ( W ( U + 2 ) - W ( U + 1 ) ) / ( X ( I * t ) - X ( t ) ) W(V+1)-(H-G)*DY*0Y 6 E-E+W(V*1)*(H-G) • v l - v l G»-H*OY»OY V«NV+N W(V*1)»G E-E-G'H IF (E.LE.OS.OR.DABS(E-DS).LE,EE) GO TO 8 C C CALCULATE F A Q C FOR G CONSIDER ... A»X«I : A*(X»Y)«I•»•» C F-O.ODO G-0.000 DO 7 I-2.NM R-NRM R1=NR1M R2»NR2*I U»NU*I T'NT+I T1-NT1+I H-W(U)*W(T1)+W(U+1)«W(T*I)*W{U*2)«W(T1*1) F=F*W(U»1)*H H«H-W(Rt)*W(R)-W(R2-1)«W(R-1) G'G»H»W(R+1)»H 7 W(R*1)-H H-F-P*G IF (H.LE.O.OOO) GO TO 8 NC0UNT«NC0UNT+1 IF (NCOUNT.GT. ICO) RETURN C P»P*DSQRT(E/SS)*(E-OSQRT(DS*E))/H C GO TO 3 8 CONTINUE DO 9 I-I.N C-NC»I V*NV+I U'NU*I A-I V(A)-Y(I)-W(V+1> 9 W(C)»P»W(U*1) DO 10 1-1.NM 0»NO*I A M C-NC+I B*NB+I H«X(I«1)-X(I) W(D)'(W(C+1)-W(C))/(3.0D0*H) 10 W(B)"(W(A+1)-W(A))/H-(H»W(D)*W(C))*H d- 1 A- 1 B*A+N C-B*N D-C»N 00 IS 1*1.148 11 IF ( X X ( I ) . L T . X ( d ) ) 00 TO 14 IF ( X X ( I ) . L T . X ( d + 1 ) ) GO TO 13 IF (d.LT.NM) GO TO 12 IF (XX(I).E0.X(d+1)) GO TO 13 RETURN 12 J"d*1 A- J i B"A*N C-B»N •D'C+N GO TO 11 13 DIFF-XX(I)-X( J ) YY(I )<-W(A)*OIFF*(U(B)*OIFF*(W(C)«01FF*tl(D))) YY1(I)^W(B)«DIFF*(2.000*V(C)*3.0D0*DIFF*W(D)) C YY2<I)*2.O0O*W(C)*6.OOO«W(D) ,DIFF GO TO 15 14 IF(J.EO.1) RETURN J ' 1 A - J B = A + N C-B*N D = C*N GO TO 11 .18 CONTINUE ERR • 0. RETURN END CO C FILE MCV C C THIS SUBROUTINE SETS UP A LOW OR A HIGH FREQUENCY C - V CURVE C GIVEN NA.NO.PSIO.AREA,TOX.VGMIN,VGMAX C c c SUBROUTINE MCV LOGICAL HFREG, PLOT REAL I N ( 4 ) . K1. K2. NO. INC. NA. NO. N. NI2. LEN ( I ) , NI COMMON /BLOCK 1/ PSIS. C. CO. COX, VG COMMON /BLOCK2/ BETA. KI, K2, PSIO. VOX. NO. PO, PHIMS, CHI COMMON /BL0CK3/ N, HFREG. PLOT COMMON /BLOCK4/ NI2. ESI. EOX. INC, AREA COMMON /BLOCKS/ T. NI , ES, EI, K. EO. YES. EO, PHIM COMMON /BLOCKG/ LEN, VGMIN, VGTIC. CCOXM, CCOXT, VGMAX COMMON /BL0CK7/ EXPCOX, CMIN COMMON /ARRAY/ IN C DATA 0 /1.6E-I9/. CMTOM /1E6/ C C SET UP OF CONSTANTS C 10 WRITE (4.90) CALL FFREAD(4, IN, 4, ERR) IF (ERR .NE. O .OR. IN<3) .EO. 0) GO TO 10 N • I N ( I ) - IN(2) IF ( I N ( 4 ) .NE. O) AREA • IN(4) IN(3) • IN(3) • 1E-9 COX • EOX • AREA / IN(3) K1 • AREA • SQRT(ESl«Q»BETA/2> K2 • AREA • (1/COX) • S0RT(2*0*ESI/BETA) FERMI « EG / 2 - 0 • PSIO IF (N .LT. O) GO TO 20 C C N - TYPE SEMICONDUCTOR C NO • U N • SORT(N«N • 4*NI2))/2) • CMTOM PO • (NI2/N0) • 1.E12 PHIS • FERMI - AL0G(N0/(CMT0M*N!)) / BETA • CHI N • NO GO TO 30 C C P - TYPE SEMICOMDUCTOR C 20 PO • ((SORT(N*N • 4«NI2) - N)/2) • CMTOM NO • (NI2/P0) • 1.E12 PHIS » FERMI • CHI • ALOG(PO/(NI •CMTOM)) / BETA N • PO 30 IF ( NOT. PLOT) GO TO 60 C C PLOT OUT THE AXIS IF REOUIRED C EXPCOX • COX CMIN • EOX • AREA / (IN(3) + (EI/ES)*SQRT(4«ESI*K*T*AL0G(N/NI)/(0* IN))) 40 WRITE (4,100) CALL FFREA0(2, IN, 4, ERR) IF (ERR .NE. 0) GO TO 40 IF ( I N ( 1 ) .EO. O .AND. IN(2) .EO. O) GO TO 50 IF ( I N ( 2 ) LE. I N ( I ) ) GO TO 40 VGMIN • IN(1) VGMAX « IN(2) 50 CALL CVPLOT(1) C C FIND THE VALUE OF PSIS NEEDED TO GET VGMIN. C 60 PSIS - INC / 2 PHIMS " PHIM - PHIS 70 CALL CV IF (VG LE. VGMIN) GO TO 80 PSIS • PSIS - INC GO TO 70 80 IF (VG .LT. VGMIN) PSIS • PSIS • INC RETURN C 90 FORMAT (' ENTER NO.NA.TOX|NM),AREA[M21 '. ft) 100 FORMAT (' ENTER VGMIN,VGMAX ', t> C END SO C F I L E SETVG C C THIS SUBROUTINE SETS UP * GATE VOLTAGE C SUBROUTINE SETVG(ENTRY. ERR) C REAL LEN(2). IN(2) C COMMON /BLOCK6/ LEN. VGMIN COMMON /BLOCKS/ SCALE. OFFSET, OELAY COMMON /ARRAY/ IN C ERR • O. IF (ENTRY EO. <) GO TO 20 10 WRITE (4.50) CALL FFREA0(2. IN, 4. ERR) IF (ERR .NE. O) GO TO 10 IF ( I N ( 2 ) .GT. O) OFFSET • IN(2) VGMIN ' IN(1) 20 IN<2) - OFFSET DO 40 I • I. 5 CALL 0AC16(VGMIN * OFFSET) 00 30 II • 1. 2500 30 CONTINUE CALL OANAfREALVG, 0) IF (ABS(REALVG - VGMIN) .LT. 0.18) RETURN 40 OFFSET • OFFSET • VGMIN - REALVG OFFSET • IN(2) CALL DACI6(0FFSET) ERR • 1. WRITE (4.GO) RETURN C 50 FORMAT (' ENTER GATE VOLTAGE.OFFSET VOLTAGE '. f) GO FORMAT (' GATE VOLTAGE IS NOT FOLLOWING - CHECK OANA. OFFSET', t ' VOLTAGE OR CAPACITOR') C END C FILE CV C SUBROUIINE CV C LOGICAL HFREG. PLOT REAL K1. K2. NUM C COMMON /BLOCK 1/ PSIS. C. CD, COX, VO COMMON /BL0CK2/ BETA. K l . K2. PSIO, VOX. NO. PO. PHIMS. CHI COMMON /BL0CK3/ N. HFREO. PLOT C C GET BETA • DELTAPSI •> DELPSI C POS • 1. FUDGE * .000001 OELPSI • BETA • (PSIS - PSIO) IF (OEt.PSI LT. O) POS • -1. C C GET THE FUNCTION F(DELTAPSI.NO.POj C 11 • EXP(OELPSI) - DELPSI - 1 T2 • EXP(-OELPSI) • DELPSI - 1 IF (ARS(TI) LE. FUDGE OR. ABS(T2) .LE. FUDGE) 00 TO 30 F • POS • S0RT(P0«T2 • N 0 U 1 ) C C GET CD.VOX HENCE C AND VG C IF (HrREG) GO TO 10 NUM - NO • ( T l * DELPSI) - PO • (T2 - DELPSI) OEM - F GO TO 20 10 NUM • NO • ( T 1 * DELPSI) DEM • POS • S0RT(NO«T1) IF (N LT. 0) NUM • -PO • (T2 - OELPSI) IF (N LT. O) OEM « POS • S0RT(P0«T2) 20 CO • K1 • NUM / DEM VOX - K2 • F GO TO 40 30 CD » K l • S0RT(2*(NO • PO)) VOX • 0. 40 C - COX • CO / (COX • CD) VG • VOX • PSIS • PHIMS RETURN . END C FILE CVPLOT C C THIS SUBROUTINE ASKS IF AXES ARE TO BE PLOTTED IF C NOT AND NO PREVICES VALUES HAVE BEEN DEFINED THEN C DEFAULT VALUES ARE ASSIGNED. C SUBROUTINE CVPLOT(ENTRY) C LOGICAL HFREO. PLOT INTEGER TYPEA. ENTRY. SWO REAL LEN(2). MULT, IN<4), CAP(400). C2(400). VOLT(400). V2(40O) C COMMON /BL0CK3/ N. HFREO. PLOT. TYPEA. NUMBER, NUM2 COMMON /BLOCK4/ NI2, ESI. EOX. INC, AREA COMMON /BL0CK5/ T, NI . ES. E I . K, EO, YES, EO. PHIM COMMON /BL0CK6/ LEN, VGMIN. VGTIC. CM. CT. VGMAX, ANS COMMON /BL0CK7/ COX, CMIN. TYPE COMMON /ARRAY/ IN. CAP, VOLT, C2, V2 C OATA BLANK /' '/. CCOX /'C/COX'/. TOTC /'TOTC'/ DATA CCM /'C/CM'/ C C ASK IF AXES ARE TO BE PLOTTED C WRITE (4.140) READ (4.150) ANS IN( 1) - 0 IN<2) • O MULT - 1 TYPEA = 2 IF (ANS NE. YES) GO TO 40 IF (ENTRY .EO. 4) GO TO 30 C C GET AXES TYPE AND LENGTHS C 10 WRITE (4.160) REAO (4.150) TYPE IF (TYPE EO. BLANK) TYPE • CCOX IF (TYPE .EO. CCOX .OR. TYPE . EO. CCM .OR. TVPE . EO. TOTC) 1 GO TO 20 WRITE (4.180) GO TO 10 20 IF (TYPE .EO. TOTC) TYPEA • I IF (TYPE .EO. CCM) TYPEA • 3 30 WRITE (4.170) CALL FFREAD(2, IN. 4. ERR) IF (ERR .NE. O) GO TO 30 IN(1) • I F I X ( I N ( 1 ) ) IN(2) • I F I X ( I N ( 2 ) ) C C SET UP DEFAULT VALUES AS REQUIRED. C 40 IF (IN( 1 ) .GT. 0) LEN(1) • IN(1) IF ( I N ( 2 ) GT. O) LEN(2) - IN(2) IF (ENTRY EO. 4) RETURN CALL SCALE(VGMAX, VGMIN. LEN(1). VGMIN, VGTIC) VGMAX • VGMIN + VGTIC • LEN(I) GO TO (70. 50. 6 0 ) . TYPEA SO CMAX • 1. CCMIN • CMIN / COX CALL SCALE(CMAX. CCMIN. LFN(2). CM. CT) GO TO no 60 MULT * 1 / (AREA'IOOOO) 70 COX • COX * MULT • 10 12 CMIN « CMIN • MULT • 10 12 CALL SCALE(COX. CMIN. LEN(2), CM. CT) COX = 10 -12 / MULT C C PLOT AXES IT REQUIRED C 80 IF (ANS NE. YES) GO TO 90 IF (TYPEA EO. 1) CALL AXIS(0. O. 'CAPACITANCE / PF'. 16. LEN(2), 1 90. CM. CT) IF (TYPEA EO. 3) CALL AXIS(0. 0. 'CAPACITANCE PER UNIT AREA / PF 1PER CM«2'. 39. LEN(2), 90. CM. CT) IF (TYPEA .EO. 2) CALL AXIS(0. 0. 'C / COX'. 7. LEN(2). 90. CM. 1 CT ) CALL AXISIO. O. 'GATE VOLTAGE'. -12. LEN(1), 0, VGMIN. VGTIC) 90 IF (ENTRY EO. 1) GO TO 130 1O0 PEN • 3. N • NUMBER PASS " 1. 110 DO 120 I • 1, N Y • (CAP(I)/COX - CM) / CT IF (PASS .EO. 2) Y • (C2(I)/C0X - CM) / CT X ' (VOLT(I) - VGMIN) / VGTIC IF (PASS EO. 2) X • ( V 2 ( I ) - VGMIN) / VGTIC IF (Y .GT. LEN(2) .OR. Y .LT. O) GO TO 120 IF (X .GT. LEN(1) .OR. X .LT. 0) GO TO 120 SWO • 0 CALL IOT(3972, SWO, 10) IF (SWO NE. 1) GO TO 130 CALL XYPLOT(X. Y, PEN) PEN - 2 120 CONTINUE IF (ENTRY EO. 2 OR. PASS .EO. 2) GO TO 130 PASS » 2. N • NUM2 GO TO 110 130 CALL XYPLOKO. O, 3) RETURN C 140 FORMAT (' PLOT AXES 7 Y/N '. $) 150 FORMAT (A6) 1 160 FORMAT (' ENTER TYPE OF AXES (C/COX.C/CM.TOTCI ', S) 170 FORMAT (' ENTER X AXIS LENGTH.V AXIS LENGTH '. t ) 180 FORMAT (' MISSPELLED KEYWORD') C END co C FILE CVOK C C THIS FUNCTION CHECKS TO SEE IF C-V IS OK C IF OK THEN RETURNS 0. C RETURNS 1 IF SLOPE!1) > 01 C RETURNS 2 IF SLOPE)10) > .01 C RETURNS 3 IF SLOPE(2-9) < 5*SL0PE(1) OR 9*SLOPE(10) C FUNCTION CVOK(C. V) C LOGICAL HFREO. PLOT REAL C ( 4 0 0 ) . V(400). SLOPE( 10) C COMMON /BLOCKS/ N, HFREO, PLOT, TYPEA, NUMBER, NUM2 COMMON /BL0CK7/ COX C NN • NUMBER / 10 DO 10 1 * 1, 10 J • (I - 1) • NN • 1 CALL LINREG(V(d). C ( J ) . NN. SLOPE(I). VINT) 10 SLOPE(I) • AB S ( S L O P E O ) ) / COX CVOK • 1. IF (SLOPE(I) .GT. 0.01) RETURN CVOK - 2. IF (SLOPE!10) .GT. 0.01) RETURN CVOK - 3. OTEST • 5 • SL0PE(1) IF (SLOPE(IO) .GT. SLOPE(I)) DTEST • S • SLOPE(I) DO 20 I • 3, 9 IF (SLOPE(I) .GE. DTEST) CVOK - O. 20 CONTINUE RETURN END C FILE PLOTCV C C T h i s s u b r o u t i n e s e t s up » p l o t s the d a t a . I t a l s o c a l c u l a t e * C some parnmeters from the e x p e r i m e n t a l C-V c u r v e . C SUBROUTINE PLOTCV(ENTRY. MIN. MAX, ERR) C LOGICAL HFREG. PLOT REAL C(4 0 0 ) . V(400). C2(400). V2(400). IN( 4 ) . MIN, MAX C COMMON /BLOCKS/ NN. HFREG, PLOT, TYPEA, NUMBER. NUM2 COMMON /BL0CK4/ NI2. ESI. EOX. INC. AREA COMMON /BLOCKS/ T, NI. ES. E I . K. EO. YES COMMON /BL0CK7/ EXPCOX. EXPMIN COMMON /ARRAY/ IN. C. V, C2. V2 c N • NUMBER • 1 N2 - NUM2 • I V(N) • -1000. C(N) • -1000. V2(N2) • -1000. C2(N?) • -100O. CALL MINMAXH, C, V, ERR) IF (ENTRY NE. 2) GO TO 10 C0X1 • EXPCOX CMIN1 • EXPMIN CALL MINMAXH. C2. V2. ERR) IF (C0X1 .GT. EXPCOX) EXPCOX • COX 1 IF (CMIN1 .LT. EXPMIN) EXPMIN • CMINI 10 CALL CVPLOT(ENTRY + 1 ) 20 CALL MINMAX(2. C. V. ERR) IF (ERR .NE. O) RETURN MIN " (EXPCOX - EXPMIN) • .1 • EXPMIN MAX • (EXPCOX - EXPMIN) • .9 • EXPMIN WRITE (4,60) REAO (4.40) ANS IF (ANS EO. 'Y') RETURN 30 WRITE (4,50) CALL FFREADO. IN. 4. ERR) IF (ERR .NE . O) GO TO 30 IF ( I N ( I ) .GT. 0) AREA • IN(1) IF ( I N ( 2 ) GT. 0) EOX • IN(2) • EO IF (IN(3) .GT. 0) ESI • IN(3) • EO GO TO 20 C 40 FORMAT (A6) 80 FORMAT ('NO - RE-ENTER AREA.EI.ES '. « ) 60 FORMAT (' ARE THESE NUMBERS OK 7 Y/N '. f) C END C FIL E OSSNSS C C THIS SUBROUTINE PLOTS OS VS PSIS OR NSS / EV VS PSIS C DEPENDING ON WHAT ENTRY IS. C SUBROUTINE OSSNSS(ENTRY) C REAL IN(4). LEN(2), X(400). Y(400) C COMMON /BLOCK6/ LEN. VGM. VGT„ CM. CT. VQF, ANS COMMON /BLOCK?/ YMAX, YMIN COMMON /ARRAY/ IN. Y. X C C PLOT OS VS PSIS C PLOT NSS VS PSIS C CALL CVPL0T(4) GO TO (10. 2 0 ) . ENTRY lO CALL MINMAX(1. Y(101). X(101). ERR) N • 101 GO TO 50 30 YMAX • Y ( 2 5 l ) YMIN • Y(251) N • 251 DO 40 I • 253. 398 IF ( Y ( I ) .LT. YMAX) GO TO 30 YMAX - Y d ) 30 IF ( Y ( t ) .GT. YMIN) GO TO 40 YMIN • Y ( I ) 40 CONTINUE 60 CALL SCALE(YMAX, YMIN, LEN(3), YST, YTIC) CALL MINMAXd. X ( 1 0 l ) . Y(101), ERR) CALL SCALE(YMAX, YMIN. LEN(1), XST. XTIC) IF (ANS .NE. 'Y') GO TO 90 GO TO (60. 70). ENTRY 60 CALL AXIS(0. 0. 'NUMBER OF SURFACE CHARGES / CM«3'. 32. LEN(2), 1 90. YST. YTIC) GO TO 80 70 CALL AXIS(0. 0. 'NUMBER OF SUFRACE STATES / CM«2 - E V . 38. 1 LENT 2 ) . 90. YST. YTIC) 80 CALL AXIS(0. 0, 'SURFACE POTENTIAL (VOLTS)'. -29. LEN(1). 0, XST. 1 XTIC) 90 PEN = 3 . PASS « 1. 10O DO 120 I • N, N • 147. PASS J • 101 + I - N IF (PASS EO. 1) GO TO 110 IF ( X ( l ) EO. 10OO. .OR. X(I • 1) EO. 1000.) 00 TO 130 J • I no xx • (x(u) - XST) / XTIC YY • (Y( I) - YST) / YTIC IF (XX .LT. 0 OR. XX GT. LEN(1)) GO TO 120 IF (YY .LT. 0 OR. YY .GT. LEN(2)) GO TO 120 swo - o CALL I0T(3972, SWO. 10) . IF (SWO EO. 0) GO TO 130 IF (PASS EO. 1) CALL XYPLOT(XX, YY. PEN) IF (PASS .EO. 2) CALL SYMBOL(XX. YY. .07. 103. 0. -1) PEN • 2. 120 CONTINUE IF (ENTRY .EO. 2 OR. PASS .EO. 2) GO TO 130 N - 1 . PASS • 2. GO TO 100 130 CALL XYPL0T(O. 0. 3) RETURN END CO C FILE MINMAX C C THIS SUBROUTINE CALCULATES COX,CMIN AND SEMICONDUCTOR C TVPE C SUBROUTINE MINMAX(ENTRY. CAP, VOLT, ERR) C REAL CAP(400), V0LT(40O). MCC. NMCC, NI, IN(4) C COMMON /BLOCKS/ BETA COMMON /BLOCK4/ NI2, ESI. EOX. INC, AREA COMMON /BLOCK5/ T, NI. ES. E I . K, EO. YES. EQ, PHIM COMMON /BLOCK7/ EXPCOX, EXPMIN, TYPE C DATA 0 /1.GE-19/. MTOCM /1E-6/. TPF / 1 E U / , TNM /1E9/ C C SET UP CONSTANTS TO START C EXPCOX • CAP( 1 ) EXPMIN • CAP( 1) TYPE • '?' C C FIND EXPCOX AND EXPMIN. C DO 20 I • 2. 400 IF (CAP(I) LE. - 100.) GO TO 20 IF (CAP(I) .LT. EXPCOX) GO TO 10 EXPCOX • CAP(I) VGCOX • VOLT(I) 10 IF ( C A P ( t ) .GT. EXPMIN) GO TO 20 EXPMIN • CAP(I ) VGCMIN • VOLT(I) 30 CONTINUE 30 IF (ENTRY EO. 1) RETURN C C OETERMINE SEMICONDUCTOR TYPE. Xo. C f b . Cox, Cnln. C BUT FIRST SEE IF C-V CURVE GOOD ENOUGH TO TRY. C IF (VGCOX .LT. VGCMIN) TYPE • 'P* IF (VGCOX .GT. VGCMIN) TYPE • 'N' ERR • CVOK(CAP.VOLT) IF (ERR .EO. 0) GO TO 90 GO TO (40. 50. 60). ERR 40 IF (TYPE .EO. 'P') WRITE (4.160) IF (TYPE .EO. 'N') WRITE (4.170) GO TO 70 50 IF (TYPE EO. 'P') WRITE (4.170) IF (TYPE EO. 'N') WRITE (4.160) GO TO 70 60 WRITE (4.180) C C IF SW(1) • O OVERRIOE C 70 ERR • 1. CALL I 0 T O 9 7 2 . ERR. 10) IF (ERR .EO. 0) GO TO 80 WRITE (4.150) RETURN BO WRITE (4.190) 90 COM IN • EXPMIN • EXPCOX / (EXPCOX - EXPMIN) WRITE (4,170) ES. E I . AREA C C FIND NO.PO AND TOX C RHS • COMIN / AREA RHS • 4 • K • T • RHS • RHS / (ESMO) MCC • 2 • NI • 1.E6 100 NMCC • RHS • ALOG(MCC/NI) DIFF - NMCC - MCC IF (ABS(OIFF) LE. .0O1«NMCC) GO TO 110 MCC - NMCC GO TO I00 110 CFB • SORT(0'BETA«ESI«NMCC) • AREA CCFB ' (CFB'EXPCOX) / (CFB • EXPCOX) CFB • CCFB • TPF COX • EXPCOX • TPF CMIN • EXPMIN * TPF MCC • NMCC • MTOCM TOX • (EOX'AREA/EXPCOX) • TNM WRITE (4.130) TYPE. TOX. MCC WRITE (4,140) CFB. COX. CMIN RETURN C 120 FORMAT (/, 15X, • > » > > ' . ' EXPERIMENTAL RESULTS'. ' < « « ' , //. 1 IX, • > > » > ' , ' ASSUMING ES •'. F5.2, ' . EI •'. F9.8. 2 ' AND THE AREA »'. 1PE10.3. ' (M2) « « « ' ) 130 FORMAT (IX. '>>>', ' SAMPLE IS '. A l . '-TYPE'. /. IX. '»>'. . 1 ' OXIDE THICKNESS •'. F7.2, ' (NM]' , /, IX. • > » ' . 2 ' AVERAGE DOPING CONCENTRATION •'1PE10.2, ' (CM-3)') 140 FORMAT (' >>> FLATBAND CAP -'. F8.2. ' ( P F ] ' , /. ' » > COX •', 1 F8.2. ' ( P F ) - . /. ' » > CMIN •'. F8.2, * ( P F ] ' . /) 150 . FORMAT (' C - V CURVE NOT GOOD ENOUGH TO CONTINUE ••••••) 160 FORMAT (/, 20X, 'ACCUMULATION 7') 170 FORMAT (/. 20X, ' INVERSION 7') 180 FORMAT (/, 20X, ' DEPLETION 7') 190 FORMAT (19X. '•• OVERRIDING ••') C END 00 C FILE SCALE C C THIS SUBROUTINE CALCULATES THE START AND INCREMENT VALUES C FOR AN AXIS GIVEN THE MIN » MAX PTS. A NO THE AXIS LENGTH. C SUBROUTINE SCALE(YMAX, VMIN. LEN. START. TIC) C I REAL MIN. MAX C MAX • YMAX MIN • YMIN TIC • (MAX - MIN) / LEN DO 30 I » I. 99 IF (TIC .LT. 1) GO TO tO SCAL • 10 •* (I - 1) GO TO 20 10 SCAL • 10 *• (-1) 20 IF (TIC/SCAL .GT. 1 .AND. TIC/SCAL .LT. 10) 00 TO 40 30 CONTINUE 40 MAX • MAX / SCAL MIN • MIN / SCAL TIC • IFIX((MAX - MIN)/LEN) • I. IF (TIC .GT. 2) GO TO SO TIC • 2 GO TO 70 90 IF (TIC .GT. 9) GO TO 60 TIC • 5 GO TO 70 60 TIC - 10 70 START • IFIX(MIN - (TIC'LEN - (MAX - MIN))/2) IF ( IFIX(START/2) .EO. START/2 .OR. IFIX(START/S) .EO. START/5) 1 GO TO 80 START • START • 1 IF (START .GT. MIN) START • START - 1 80 IF (MIN .GT. 0 .AND. START .LT. O) START • 0. TIC • TIC • SCAL START • START • SCAL RETURN END C FILE OUTPUT C C THIS SUBROUTINE PLOTS A LOW OR A HIGH FREQUENCY C - V CURVE C GIVEN NA.ND.PSIO.TOX.AREA.VGMIN,VGMAX C SUBROUTINE OUTPUT C INTEGER TYPEA REAL INC, LEN(2) LOGICAL HFREG. PLOT C COMMON /BLOCK 1/ PSIS. C. CD. COX. VQ COMMON /BL0CK3/ N. HFREO. PLOT. TYPEA COMMON /BL0CK4/ NI2. ESI, EOX, INC, AREA COMMON /B10CK6/ LEN, VGMIN. VGTIC. CCOXM, CCOXT, VGMAX COMMON /BL0CK7/ EXPCOX • C C PLOT OUT THE C-V CURVE FROM VGMIN TO VGMAX. C PEN • 3. CMAX - COX IF ( .NOT. PLOT) CMAX • EXPCOX 10 CALL CV CCOX • (C/CMAX - CCOXM) / CCOXT C - C • IE 12 IF (TYPEA .EO. 1) CCOX • (C - CCOXM) / CCOXT IF (TYPEA .EO. 3) CCOX • (C/(AREA•1E4) - CCOXM) / CCOXT VG • (VQ - VGMIN) / VGTIC L IF (VG .GT. LEN(1)) GO TO 30 IF (CCOX .GT. LEN(2) .OR. CCOX .LT. O .OR. VO .LT. O) 1 GO TO 20 SWO • 0. CALL I0T(3972. SWO. 10) IF (SWO .EO. 0) GO TO 40 CALL XYPLOT(VG. CCOX. PEN) PEN • 2. 20 PSIS - PSIS • INC GO TO 10 C C DRAW IN FLATBAND CAPACITANCE C 30 IF ( .NOT. PLOT) GO TO 40 PSIS • O. CALL CV CCOX • (C/COX - CCOXM) / CCOXT C • C • IE 12 IF (TYPEA EO. 1) CCOX • (C - CCOXM) / CCOXT IF (TYPEA .EO. 3) CCOX • (C/(AREA*1E4) - CCOXM) / CCOXT V - (VG + 1 - VGMIN) / VGTIC CALL XYPLOKV. CCOX, 3) V - (VG - 1 - VGMIN) / VGTIC CALL XYPLOT(V, CCOX, 2) V - V - .4 CALL SYMBOHV. CCOX, .14. ' C , 0. 1) CCOX • CCOX - .15 V • V • .13 CALL SYMBOL(V, CCOX, .14. 'FB'. 0. 2) 40 CALL XYPLOT(0. O. 3) RETURN END C FILE FILEIO C C THIS SUBROUTINE SETS UP A INPUT OR AN OUTPUT C F I L E ON UNITS 8 8 9. FOname IS RETURNEO IN C FILE (3 ELEMENT ARRAY). C IF ENTRY » 1 : SETUP A INPUT FILE C IF ENTRY • 2 : SETUP A OUTPUT FILE C SUBROUTINE FILEIO(ENTRY, FILE, RTN) C REAL F I L E O ) C DATA BLANK /' '/ C C INPUT OR OUTPUT FILE 7 C RTN • 0. IF (ENTRY .EO. 3) GO TO 30 C C GET INPUT FDname C 10 WRITE (4,60) READ (4,50) FILE IF ( F 1 L E ( t ) .EO. BLANK) GO TO 40 CALL USR(8, F I L E , 2. ERR) IF (ERR .EO. 0) RETURN WRITE (4.70) GO TO 10 C C GET OUTPUT FDneme C 20 WRITE (4.60) REAO (4,50) F I L E IF ( F I L E ( I ) .EO. BLANK) GO TO 40 CALL USR(9, F I L E , 3. ERR) IF (ERR .NE. O) GO TO 30 WRIIE (4,80) REAO (4.50) ANS IF (ANS .NE. 'Y') GO TO 20 30 CALL USR(9, F I L E . 3. ERR) IF (ERR .EO. 0) RETURN WRITE (4.90) ERR IF (ERR EO. 1) WRITE (4.100) IF (ERR .EO. 2) WRITE (4.110) GO TO 20 C C SET RTN TO 1 NO FILE I/O SETUP. C 40 RTN • 1. RETURN C 50 FORMAT (3A6) 60 FORMAT (' ENTER FONAME(.EX) OR RETURN TO CANCEL '. $) 70 FORMAT (' FONAME(.EX) DOES NQT EXIST') BO FORMAT (' FDNAME(.EX) ALREADY EXISTS OK TO OVERWRITE 7 Y/N 90 FORMAT (' USR ERROR CODE ', I I . ' :ILLEGAL I ) 100 FORMAT ('•'. 'DEVICE NAME') 110 FORMAT ('•'. 'FILE NAME') C END C FILE LINREG C C T h i s s u b r o u t i n e t a k e s a l i n e a r r e g r e s l o n o f N p o i n t s C and c a l c u l a t e s aO.al f o r y • aO • a l • x C . SUBROUTINE LINREGfX, Y. N. A l , AO) C REAL X(N), YIN) C C OBTAIN SUMS C SUMX • 0. SUMY • O. SUMXX • O. SUMXY • 0. DO IO I • I, N SUMX • SUMX • X ( I ) SUMY • SUMY • Y ( I ) SUMXX • SUMXX * ( X ( I ) * X ( I ) ) 10 SUMXY • SUMXY • ( X ( I ) * Y ( I ) ) C C CALCULATE AO. A l C A l • (N»SUMXY - SUMX*SUMY) / (N'SUMXX - (SUMX*SUMX)) AO • SUMY / N - A l • SUMX / N RETURN END co C FI L E FFREAD C C THIS SUBROUTINE DOES A FREE FORMATEO READ C FROM •INUNIT" AND WILL C ALOW BLANKS OR COMMA'S BETWEEN ENTRY'S. C C IF INUNIT > 10 : UNIT • INUNIT - 10 S ASSUMES C THE FIRST VARIABLE IS ALPHA. THE REST OF THE C VARIABLES ARE NUMMERIC. C C NOTES: ALL ENTRY'S MUST HAVE DECIMAL POINT. C NO ALFA'S ALLOWED. C C ERR - 1 •> IF ENRTY WAS ALPHA C ERR • 10 *> IF END OF FILE WAS ENCOUNTERED C SUBROUTINE FFREADIN. VAR. INUNIT. ERR) C INTEGER N. ERR. BUFF(72) REAL VAR(N) LOGICAL NEG. EXPNEG C UNIT • INUNIT IF (INUNIT .GT. 10) UNIT • INUNIT - 10 EOF • O IF (UNIT .NE. 4) CALL CHKEOF(EOF) READ (UNIT.220) BUFF IF (EOF .NE. O) GO TO 210 DO 10 I " 1. 72 CALL CGET(BUFF(I). I, K) 10 B U F F ( I ) » K DO 20 I • 1. N 20 VAR(I) - O. ERR « 0. K » 1 KK • K IF (UNIT .EO. INUNIT) 00 TO BO DO 30 I - 1. G 30 CALL CPUT(VAR(1). t , 32) DO 40 I • 1. 72 dd • I IF ( B UFF(I) .NE. 32 .AND. BUFF(I) .NE. 44) GO TO 00 40 CONTINUE GO TO 190 90 00 60 d • 1 , 6 L - J • dd - 1 IF (BUFF ( L ) EO. 32 .OR. BUFF(L) .EO. 44) GO TO 70 60 CALL C P U T ( V A R d ) . J . BUFF (L ) ) 70 KK • 2 K « L • 1 BO DO 90 I - K. 72 IF ( B U F F ( I ) .GE. 48 .AND. BUFF(I) .LE. 57) GO TO 90 IF ( B UFF(I) .EO. 32 .OR. BUFF(I) .EO. 46) GO TO 90 IF ( B UFF(I) .EO. 44 .OR. BUFF(I) . EO. 45) GO TO 90 IF ( B U F F ( I ) .EO. 8 .OR. BUFF(I) .EO. 43) GO TO 90 GO TO 200 90 CONTINUE C II • KK DO 180 I • K. 72 46) GO TO 180 100 110 120 130 140 150 160 170 180 190 200 210 C 220 C IF ( B UFF(I) .NE. NEG • FALSE. EXPNEG « FALSE. EXP • O. DO 100 d • 1. 72 L * I - d IF (L .LT. K) GO TO 120 IF (BUIT(L) .EO. 32 OR. BUFF(L) IF (BUFF(L) .EO. 43) GO TO 120 IF (BUFF(L) EO. 45) GO TO 110 IF (BUFF(L) .EO. 46 OR. BUFF(L) VAR(II) • VAR(II) • (BUFF(L) - 48) NEG • .TRUE. 00 130 d - 1. 72 L » I • d IF (L GT. 72) GO TO 170 IF (BUFF(L) .EO. 5) GO TO 140 IF (BUFF(L) .EO. IF (BUFF(L) .EO. VAR( I I ) • VAR(I I ) DO 1G0 d • 1. 3 L " L •* 1 IF (L GT. 72) GO TO 170 IF (BUFF(L) EO. 32 OR. BUFF(L) IF (BUFF(L) .EO. IF (BUFF(L) EO. IF (BUFF(L) .NE. EXPNEG • .TRUE. GO TO 160 EXP • EXP • 10 • (BUFF(L) - 48) CONTINUE IF (NEG) VAR(II) • -VAR(II) IF (EXPNEG) EXP • -EXP VAR(II) • VAR(II) • 10 EXP II • II + 1 IF ( I I GT. N) GO TO 190 CONTINUE RETURN ERR > 1 RETURN ERR - 10 RETURN FORMAT (72A1) END 32 OR. BUFF(L) 46 .OR. BUFF(L) » (BUFF(L) - 48) 46 OR. BUFF(L) 43) GO TO 160 45) GO TO 150 .EO. 44) GO TO 120 .EO. S) GO TO 200 • lO (d - 1) .EO. 44) GO TO 170 .EO. 45) GO TO 200 > lO (-d) .EO. 44) GO TO 170 EO. 5) 00 TO 200 CO RALF V62A 4-SEP-81 PAGE 1 / / / / / / / / / / / / / / / -/ / / / / / / FILE I0T1.RA SUBROUTINE IOT<INST,AC,WAIT) • CALLING SEQUENCE: CALL IOT (INST, <INST> • <AC> <WAIT> » AC, WAIT) THE B-MODE INSTRUCTION TO BE EXECUTED (NORMALLY AN IOT INST ) THE VALUE OF THE AC WHEN THE INSTRUCTION IS EXECUTED. NUMBER OF WAITING LOOPS BEFORE RETURNING TO CALLER THE VARIABLE <AC> IS CHANGED TO BE EQUAL TO THE VALUE OF THE SW AFTER THE LAS INSTRUCTION IS EXECUTED. THIS FEATURE ONLY OCCURS IF INST WAS A "LAS' ,IF NOT <AC> IS NOT CHANGEO. <AC> CONTAINS SR #'uPON ENTRY 00000 1100 00001 0045 BASE SECTS 0 IOT /USE CALLER'S BASE PAGE SETX INST /SET IR TO 8-MODE 00002 O0O6 STARTD O0CO3 0G5O 00004 G201 00005 0O05 FLOAX FSTA STARTF O.S 3 /GET POINTER TO 1ST ARG /AND SAVE IT 00006 0601 00007 0020 OOOIO 0006 FLDAX ATX STARTD 3 0 /GET THE 1ST ARG /AND PASS IT TO TH 8-MODE CODE 00011 0660 00012 6201 00013 0005 FLOAX FSTA STARTF 0,6 3 /GET THE POINTER TO THE 2ND ARG /AND SAVE IT 00014 0601 00015 0024 00016 400O 00017 0035 FLDAX ATX TRAP4 3 4 POP /GET THE 2ND ARG /AND PASS IT TO THE 8-MODE CODE /GO TO THE 8-MODE 00020 0034 00021 6601 00022 0006 XTA FSTAX STARTD 4 3 /GET CONTENTS OF AC /AND PASS TO THE CALLER 00023 0670 00024 6201 00025 0005 FLDAX FSTA STARTF 0.7 3 /GET POINTER TO 3RD ARG /AND SAVE IT 00026 0601 0CO27 2400 *LOOP. 00030 0055 FLDAX FSUB 3 r /GET WAITING LOOP NUMBER /COUNT DOWN UNTIL <• 0 00031 1060 •JGT *LOCP O0O32 0027 0CO33 0210 O0O34 0O07 / FLDA JAC 30 /RETURN TO CALLER /VIA LOCATION 30 0O035 OOOO / PDP. /EXECUTE THE PDP8 COMMAND RALF V62A 4-SEP-fil PAGE l - l 00031 0003" S 7300 i CLA CLI 0004( ' 3247 1 I14B OCA FLAG /CLEAR r i Ati 0004 ' J » 245 TAD INST r rLHU 000*14 1 1260 I 7440 TAD NLAS /INST • LA*. 9 000*12 ) 3247 SZA w Ln) f 1 tic:* DCA FLAG /NO - CPT r i An 0004 5 ' 1 *lo 1 TAD AC ' at i r L A u /GET AC 00046 • 0000 i 526 1 INST, 0 /AND OUTPUT TUP r u e T B I / JMP NEXT r ™ u u | r u i iPie INSTRUCTION 0004 7 00050 0000 0000 FLAG, 0 0O05 1 TEMP, 0 00052 0000 0001 AC, 0 00053 0002 ONE, 1 /ARQ POINTER* rno ta*a* "D0054 00O3 TWO, 2 • rUK j H * c 00055 000 1 THREE, 3 00056 H 1 , F 1.0 00057 2000 00060 0000 0174 Ml A e 0006 1 T j c n rML*5 • 0174 00062 J < tJU 124 7 NEXT, DCA TEMP 000G 3 7 A An TAD FLAG 00064 f ** HfJ 5276 SZA 00065 1251 UMP RETURN / I F INST NP 1 AC nrtiniAi 0O066 7 t6o TAD AC ' * "J' .wc. LA5 RETURN /GET SWITCH P F R K T r o 00067 325 1 CMA CLL CML /SET UP FOR MACirfMA 00070 7010 i DCA AC 0007 1 FJOC I 1 PAR /ROTATF 1 Iuts iikiT*i 00072 4C<cD 1 5270 ISZ , »C *^  • c u i i m \jr4TIL /AC • 0 00073 i i JMP .-2 00074 7640 I WD 1 TEMP /MASK SWITCH unon 00073 : 2 5 i SZA CLA 00076 ' 7300 I BCTIinn * SZ j IC 00077 i 5203 KE URN, (:LA CLL 00100 ! 5635 C :DF CIF c )l IMPX P 'OP CO co RALF V62A 4-SEP-8I / FIL E USR.RA PAGE 1 HALF V62A 4-SEP-81 PAGE 1-1 SUBROUTINE USR (UNIT, NAME, FUNCT. ERROR) WRITTEN BY: ROBERT PHELPS BEHAVIOR LAB DEPT. RAO. BIOL, ft BIOPHYSICS UNIVERSITY OF ROCHESTER ROCHESTER. NY 14642 THIS ROUTINE ALLOWS RUN-TIME DECLARATION OF FILES IN D.E.C. FORTRAN IV FOR THE POP-B. DESCRIPTION OF PARAMETERS: UNIT - LOGICAL UNIT NUMBER ONLY NUMBERS 9 THRU 9 ARE ALLOWED. FEWER LOGICAL UNITS MAY BE ALLOWED DEPENDING ON CORE AVAILABILITY -- SEE PROGRAMMING NOTE BELOW. NAME - DEV:FILE.EX STORED IN FORMAT 3A6 OR EOUIVALENT. DEVICE ASSUMED TO BE DSK: IF NOT EXPLICITLY STATED. THIS PARAMETER MAY ALSO BE A HOLLERITH LITFRAL. NULL CHARACTERS ('*') AND SPACES ARE IGNORED IN THIS FIELO. FUNCT - FUNCTION: 2 - OPEN FILE FOR INPUT 3 - OPEN FILE FOR OUTPUT 4 - CLOSE OUTPUT FILE THE OUTPUT FILE NAME GIVEN FOR A <CLOSE> MUST AGREE WITH THE CORRESPONDING <OPEN> FILE NAME FOR THAT UNIT. CLOSING A FILE WITH 0 BLOCKS OR AN INPUT (FUNCT'2) FILE WILL DELETE THAT FILENAME FROM THE DIRECTORY. ERROR - RETURN ERROR CONDITION 0 - NO ERRORS. 1 - ILLEGAL DEVICE 2 - ILLEGAL FILE NAME 3 - ILLEGAL UNIT NUMRER (CORE EXCEEDEOI?) 4 - ILLEGAL FUNCTION CODE USER ERRORS MAY TERMINATE EXECUTION UNLESS THE /E OPTION WAS SPECIFIED TO FRTS. THE FOLLOWING USER ERRORS FROM <USR> ARE DEFINEO: 0002 - THE USER HAS DEFINED A NON-RESIDENT DEVICE HANDLER EXTERNAL TO <USR>. 00000 1030 00001 0132 /USING UNIT 5 ALLOWS 1000(8) FEWER WOROS FOR SOURCE CODE THAI /UNIT 6 WERE THE LOWEST UNIT NUMBER USED. / / RESTRICTIONS: BECAUSE «FRTS> LOADS NON-RESIDENT HAM /THE TOP OF CORE DOWN. AND <USR> ALSO USES THAT AREA, THE US /ALLOWED TO MAKE LOAD TIME /I/O UNIT DECLARATIONS TO DEVICES WITH NON-RESIDENT /HANDLERS EXTERNAL TO <USR>. TO 00 SO WLl CAUSE A FATAL /USER ERROR 2. IT IS RECOMMENDED, AND GENERALLY /MORE C0NV1ENENT TO USE INTERNAL HANDLERS AND /DECLARE ALL OTHER FILES AT EXECUTION TIME /WITH CALLS TO THIS SUBROUTINE. /THE USE OF <FRTS> INTERNAL HANDLERS, /SYS:. AND OEVICF.S CO-RESIOENT WITH SYS: ARE LEGAL, /EVEN IF DEFINEO EXTERNAL TO THIS SUBROUTINE. / /NOTE / / / MAXCOR-121 HGHLOC-123 / / /1247S /12476 /12477 / THIS PROGRAM REQUIRES ONE PATCH BE MADE TO <FRTS> BEFORE IT WILL RUN. IT IS OESCRIBEO BELOW: /THESE ARE LOCATIONS IN THE RESIOENT PART OF /<FRTS> AND REOUIRE THE FOLLOWING PATCH BE » /IN FRTS SO THEY WILL BE SET PROPERLY. THE /DELETES COOE WHICH INITIALIZES SYSTEMS WITH /ANALEX PRINTER, SO IF YOU HAVE AN ANALEX FIELD 7300 131 I 3010 1023 34 10 34 10 1025 34 10 1026 34 10 7000 9766 120 1; *2475 / / / / / / / / /12311 / / / / / HKEY-2761 EXTERN EXTERN SECT JA THIS PROGRAM ALSO REQUIRES THAT 'HKEY' BE THE LOCATION IN <FRTS> AS DEFINED BELOW: CGET CPUT USR #ST / /NOTE i / / / MUCH OF THIS CODE WAS LIFTED FROM A FORTRAN GENERATED ASSEMBLY LISTING. ACCEPT THIS AS AN APOLOGY FOR THE LACK OF COMMENTS IN SOME SECTIONS CO RALF V62A 4rSEP-B1 PAGE 1-2 CO012 COO 13 0CO14 00015 00016 00017 OO020 0O021 CO022 2523 2240 4000 1100 0002 1 1 10 0023 1030 0024 00042 00043 00044 00045 0CO46 0O047 0OO50 OO051 0O052 0423 1300 OOOO OOOO OOOO OOOO OOOO OOOO OOOO 00053 0040 00054 1030 00O53 0015 00056 0040 00057 OOOO 00060 OOOO 00064 OOOO 00065 OOOO 00066 OOOO 00100 00101 OO102 00103 00104 00105 00106 00107 001 10 001 1 1 OOt 12 001 13 001 14 001 15 00116 OOI 17 00120 00121 OOOI 2000 OOOO 0002 2000 OOOO 0002 3000 OOOO 0003 20OO OOOO 0003 3400 OOOO 0003 2400 OOOO "XR. *RET. "BASE, UNIT, FUNCT. ERROR, "DSK. ORG TEXT .•10 •USR • "GOBAK, COLON. PERFLQ. PERIOO. SPACE. X, "TMP. " L I T . MUNIT. SETX "XR SETB "BASE OA .•S ORG ORG ORG ORG .•6 .•3 .•3 .•3 TEXT •DSK»»#> /DEFAULT DEVICE NAME F 0.0 F 0.0 ORG FNOP JA "RET FNOP 0:0 ORG F 0.0 ORG ORG +3 ORG 0001 2000 OOOO 0002 2000 OOOO 0002 3000 OOOO 0003 2000 OOOO 0003 3400 OOOO 0003 2400 OOOO "BASE+30 .•03 ,•03 /PERIOD FLAG .•3 /1 /a /3 /4 n /5 /LOWEST UNIT NUMBER ALLOWED / THIS IS CHANGED OEPENDINO / CORE AVAILABILITY. RALF V62A 4-SEP -81 PAGE 1-3 00122 0004 0004 /9 00123 2200 2200 00124 OOOO OOOO 00125 0O03 0005 /IB 00176 2200 2200 00127 OOOO OOOO 00130 1030 "RTN, BASE "BASE JA "GOBAK 00131 0057 00132 0006 "ST. STARTD 00133 0210 0210 00134 6400 FSTA "GOBAK.O 00135 0057 00136 0200 0200 00137 1100 SETX "XR 00140 0002 0014 1 1110 SETB "BASE 00142 0023 00143 0101 LDX 0. 1 00144 OOOO 00145 6200 FSTA "BASE 00146 07 10 FLDAX "BASE,1+ 00147 6202 FSTA UNIT 00150 07 10 FLDAX "BASE,1+ 00151 6400 FSTA NAME 00152 0345 00153 0710 FLDAX "BASE.1+ 00154 6203 FSTA FUNCT 00155 0710 FLDAX "BASE,1+ 00156 6204 FSTA ERROR / INITIALIZE PROGRAM / SKIP. /JA SKIP2 AFTER FIRST ENTRY / / FIND OUT HOW MANY UNITS TO ALLOW / 00137 0400' FLDA MAXCOR /COMPUTE NUMBER OF LOCATIONS LEFT 00160 0121 00161 2400' FSUB HGHLOC 00162 0123 00163 1400 FADD 02400 / I FIELD LESS 5400 LOCS FOR B DEVICES 00164 0523 ' \ I NOTE: PO. 7600 RESERVED FOR OS/8 / PG. 7400 USED FOR OS/8 USR CALL 00165 1010 JGE SKCONT /ROOM FOR 5 DEVICES7 00166 0201 00167 1400 FADD 0I50O0 /NO 00170 0504 00171 4400 FMUL DIOOO /HOW MANY 1000 WORD 8L0CKS ARE THERE7 00172 0506 00173 0005 STARTF 00174 0004 FNORM 00173 4400 FMUL E30 /ALTHOUGH WE WERE WORKING WITH AN 00176 0312 /INTEGER ABOVE. THE FPP THOUGHT IT O RALF V62A 4-SEP-81 PAGE 1-4 00177 00200 00201 00202 00203 O0204 00203 00206 00207 002 10 002 1 1 00212 00213 0O214 00215 002 16 002 17 002 20 0022 1 00222 O0223 00224 00225 00226 O0227 00230 O0231 00232 O0233 00234 00235 00236 00237 00240 0024 1 00242 00243 00244 00245 00246 00247 00250 0025 1 00252 00253 00254 00255 00256 6224 OOOB 1100' 0121 0030 3400 0510 1 100 0161 0020 1400 0500 1 100 0031 0020 1 10O 0102 0020 1400 0502 1 100 0043 0020 1 100 0002 0400 0476 6400 0157 0400 0517 6400 0242 0106 7767 1 100' 4244 0030 1 100 OO02 2400 0523 1050 0263 2400 0525 1060 0263 SKCONT, FSTA MUNIT STARTO SETX MAXCOR XTA O F01V OtOX SETX LHIFLO I ATX O FAOD OCOF SETX FD1 SKC0N2. /HAD A BINARY POINT TO THE RT. OF THE /SIGN BIT. THIS.INSTRUCTION EFFECTIVELY /CHANGES THE NUMBER TO A REAL FPP INTEGER. /MINIMUM UNIT * ALLOWEO /GET HIGHEST FIELD /PUT IT INTO BITS 6-8 OF LO ORDER WORO /LOAD HIGHEST FIELD INTO LHIFLD /MAKE IT CDF H1FLD RALF V62A 00257 0100 00260 0002 00261 3000 00262 0000 00263 04O0 00264 052 1 00265 5400 002G6 0242 0026 7 2 160 00270 0242 0027 1 0005 4-SEP 81 PAGE 1-8 LOX 2.0 EXTERN SUE TRAP3 #UE SKC0N3. FLDA NINED FADDM SKC0N2 JXN SKC0N2.6+ SKIP2, STARTF *G0001" ORG /•••SOME OTHER HANDLER**'USER ERROR 2 /USER ILLEGALLY DECLARED A F I L E ! /INCREMENT TO NEXT DSRN ENTRY /•••END OF INITILIZATIN COOE*** COLON+OO 00061 0006 0006:3500:0000 ATX 0 /SET LOCATIONS USING IT 000C2 3500 SETX F02 00063 0000 ORG PER10D*OO ATX 0 00067 0006 0006:2700:0000 FADD ONED /MAKE IT CIF HIFLD 00070 00O71 2700 0000 SETX FI 1 0007 2 0006 ORG SPACE 6:2000:0 ATX 0 OO073 2000 SETX SXR 00074 0027 2 0000 0107 ORG LDX 1,7 #G0001 CHECK TO MAKE SURE USER 010 NOT DECLARE 0027 3 0001 OEVICE WITH HANDLER EXTERNAL TO THESE ROUTINES. 0027 4 0002 FCLA /INITIALIZE SOME VARIABLES... 00275 62 13 FSTA PERFLQ /NO PERIODS VET FLDA SKIPJA /SET INSTRUCTION SO THIS CODE 00276 6470 FSTA FILE-00O3.7 0027 7 034 1 FSTA SKIP.O / EXECUTES ONLY ONCE. 00300 6570 FSTA FILE-0003.7* 00301 034 1 00302 0205 FLDA #DSK /SETUP OEFAULT OEVICE FLDA SXDSRN /INITIALIZE SETX INSTRUCTION 00.103 6400 FSTA DEV 00304 0254 FSTA SKC0N2 00305 0217 FLDA #LIT+00 /FIRST CHARACTER IS * 1 00306 6207 FSTA N LDX -11,6 /SET COUNTER (MAX 0 DSRN ENTRIES) 00307 0G02 FLDAX UNIT /CHECK FOR LEGAL UNIT * 00310 2224 FSUB MUNIT SETX DSRN /STUFFED AND MOOIFIEO 0031 1 003 12 1 120 0000 JSA #LT / IF (UNIT. LT. MUNIT. OR. UNIT. OT.I XTA 0 /GET NEXT HANDLER ENTRY POINT 00313 6216 FSTA HUMP+OO SETX #XR O0314 0602 FLDAX UNIT 00315 2225 FSUB *LIT*22 FSUB D5200 00316 00317 1 120 0000 JSA #GT JLT SKC0N3 /INTERNAL HANDLER, IT'S OK 00320 1216 FADD *TMP*00 0032 1 1040 ONE *900 FSUB D2400 00322 0466 00323 0603 FLDA* FUNCT /CHECK FOR LEGAL FUNCTION CODE JOT SKC0N3 /RESIDENT HANDLER (E.G. SYS:), IT'S OK TOO 0032 4 2220 FSUB EXTERN *LIT*03 #LT RALF VG2A 0032S 1120 0032G OOOO 0O327 6216 00330 0603 00331 2222 00332 1120 00333 OOOO 00334 1216 00335 1040 00336 0472 4-SEP-81 PAGE 1-6 00337 0217 00340 6206 00341 00342 00343 00344 00345 0034G 00347 00350 00351 00352 00353 00354 00355 00356 00357 OO360 0036 1 00362 00363 00364 003S5 003G6 00367 00370 00371 00372 00373 00374 00375 1 130 OOOO 1030 0353 1030 0345 1030 0045 1030 0075 02 16 2212 1040 0376 0206 2223 1010 0443 0400 0344 6400 0254 0002 6400 0344 0217 6207 1030 0435 00376 0216 00377 2214 00400 1040 00401 04 12 00402 0213 00403 1040 00404 0443 00405 0223 00406 6213 / / / NAME. JSA #LT FSTA 'TMP+OO FLOAX FUNCT FSUB 'LIT+11 EXTERN 'GT JSA 'GT FAOO 'TMP+OO <JNE #901 IF (FUNCT.LT.2.OR.FUNCT.QT.4) GO RALF V62A TO 901 00407 6207 00410 1030 004 11 0435 4-SEP-B1 PUT DEV:FILE.EXT INTO CORRECT FORMAT FOR USR CALL 'LIT+OO FLOA FSTA 'GCO02. JSR JA #40. JA JA JA FLOA FSUB JNE I CGET . + 10 I X X COLON #40 / 00 100 1*1. 18 / CALL CGET (NAME. I. X) FLOA I FSUB #LIT*14 JGE 'DONE FLDA FILE FSTA DEV / IF (X.NE.COLON) GO TO 40 /COLON MUST BE COLUMN 6 OR BEFORE /COLON DEFINES DEVICE NAME FCLA FSTA FLDA FSTA JA FLDA FSUB JNE FILE 'LIT+OO N #100 x / I F (X.NE.PERIOD) GO TO 60 PERIOD '60 FLDA PERFLG JNE 'DONE /ONLV ONE PERIOD ALLOWED FLDA 'LIT*14 /SET TO OECODE EXTENSION FSTA PERFLG 004 12 004 13 00414 004 15 004 16 004 17 00120 004 2 1 004 22 004 2 3 00434 004 25 00-126 004 27 004 30 004 31 00-132 00-133 00434 0216 1000 04 35 22 15 1000 0435 1130 OOOO 1030 0432 1030 0344 1030 0050 1030 0075 0207 12 17 6207 004 35 0206 00436 1217 00437 6206 00440 2226 0044 1 1020 00442 0341 0044 3 0603 00444 2222 00445 1040 00446 0452 00447 0602 00430 3000 00451 OOOO 00452 1100 00453 0166 00454 0603 00455 0020 00456 0602 . 00457 0021 004 60 4000 00461 OOOO 00462 0032 00463 6604 00464 1030 00463 0130 00466 0221 00467 6604 «60. '100. 'DONE. FSTA JA PAGE 1-7 N #100 FLDA X JEO #10O FSUB SPACE JEO #10O JSR CPUT JA •10 JA FILE JA N JA X FLDA N FADD 'LIT+OO FSTA N FLDA I FADD 'LIT+OO FSTA I FSUB 'LIT»2S JLE 'G0002 /SKIP OVER NULL'S /SKIP OVER SPACES / CALL CPUT ( F I L E . N. X) / N«N41 / ICO CONTINUE FLDAX FUNCT FSUB 'LIT+11 JNE '101 EXTERN #ENDF FLOAX UNIT TRAP3 #ENDF /FUNCTION • CLOSE 7 /YES - END FILE '101. SETX FUNCTX /USR XR TO PASS PARAMETERS FLOAX FUNCT ATX O FLDAX UNIT ATX 1 TRAP4 'USRSE /TRAP TO THE USR CALLING ROUTINE XTA 2 FSTAX ERROR JA 'RTN /GET ERRNO AND RETURN IT #900. FLDA 'LIT+06 /ILLEGAL UNIT NUMBERIII FSTAX ERROR RALF V62A 4-SEP-81 PAGE 1-8 00470 1030 00471 0130 00473 0223 004 73 6604 00474 1030 00475 0130 00476 00477 00500 00501 00502 0O503 00504 00505 00506 00507 00510 0051 1 00512 0O5I3 00514 00515 005 16 00517 O0520 00521 00522 00523 00524 00525 COS 2 6 1030 0271 OOOO 6201 OOOO OOOI 0001 5000 0004 OOOO 0400 OOOO 0030 2000 OOOO OOOO 0010 1100' 4244 OOOO OOl 1 OOOO 3200 OOOO 2400 OOOOO OOOO O0OO1 00002 00003 00004 00005 0O006 00007 00010 0O01 1 00012 1367 7106 7004 1367 1332 1360 3362 6201 1762 3246 4-901. JA #RTN FLDA A-LIT+11 FSTAX ERROR JA *RTN /ILLEGAL FUNCTION COOEIII SKIPJA, JA SKIP2 DCDF. 0;CDF ONEO. 0:1 D13000. 1;5000 01000, 4;0 /0.001 D10X. 400:0 /O.I E30. D10. 30:2000:0 O; 10 /1.E30(2) SXDSRN. SETX OSRN NINEO, 0:11 05200. 0:5300 03400, 0:3400 SECTS 4USRSE: 0 /THIS ROUTINE SETS UP. ON PAGE 7400 OF THE HIGHEST FIELD, A /ROUTINE WHICH CALLS THE OS/8 USR (USER SERVICE ROUTINE). /IT IS NECESSARY TO DO THIS BECAUSE THE FORTRAN IV LOAOER /MAY LOAD ANY ROUTINE IN THE RESERVED AREA FOR /THE OS/8 USR (IOOOO - 11777). / / /IN CASE CLOSE FUNCTION. GET 0 BLOCKS WRITTEN / TAD UNITX CLL RTL RAL TAD UNITX TAD K6 TAD LDSRN DCA TEMO CDF O TADy. TEMO DCA SB /MULTIPLY BY 8 /OFFSET TO CURRENT BLOCK /START OF DSRN TABLE - 11 RALF V62A 4-SEP-81 PAGF 1-9 /MOVE USR CALLING ROUTINE TO DEFINED LOCATION / I E . PROTECT LOCS 10000-11777 00013 1333 TAD K7400 00014 3362 OCA TEMO 00015 1372 TAD *LUSR+1 00016 3363 DCA TEMQ2 00017 1354 TAD M200 00020 3364 DCA TEM03 00021 1371 TAD *LUSR 00022 0356 AND K7 00023 7106 CLL RTL 00024 7004 RAL 00025 1260 TAD #CDF 0002.6 3227 DCA • 1 00027 7402 FUSR, HIT /CDF ORIG. FIELD OF #USR 00030 1763 TAD% TEM02 0003 1 6201 F01, CDF 00 00032 3762 DCAV. TEMO 00033 23G2 ISZ TEMO 00034 2363 ISZ TEM02 00035 23G4 ISZ TEM03 00036 5227 JMP FUSR /SET FIELDS f AND CALL IT 00037 6224 RI F /GET CURRENT FIELD 00040 1260 TAD »CDF 0004 1 3242 DCA . + 1 0004 2 7402 HLT 00043 6202 F I 1 . CIF 00 00044 1366 TAD FUNCTX 00045 4753 JMS5C K740O 00046 OOOO SB, 0 /START BLOCK OF FILE OR LENGTH IF CLOSE 0004 7 OOOO NOBLKS, 0 /LENGTH OF FILE 00050 OOOO ENTPT, 0 /HANDLER ENTRY POINT 00051 3370 DCA / ERRUSR /SAVE ERROR RETURN VALUE /SETUP TO MOVE DSRN TABLE APPROPRIATELY 00053 1367 TAO UNITX 00053 7106 CLL RTL /MULTIPLY BY 9 00054 7004 RAL 00053 1367 TAD UNITX 00056 1360 TAD LDSRN 00057 3362 DCA TEMO 00060 6201 ••CDF, CDF 0 00061 3762 DCA* TEMO /DISABLE FILE IN CASE CLOSE FUNCTION 00062 7346 CLA CLL CMA RTL /-3 •> AC 00063 1366 TAO FUNCTX 00064 7740 SMA SZA CLA /CLOSE? 00063 9350 JMP USRSL9 /YES /MOVE HANDLER TO APROPRIATE BUFFER i 00066 7344 CLA CMA CLL RAL /-2 •> AC vO I*) RALF V62A 4-SEP-81 PAGE 1-10 00O67 00070 00071 00072 0OO73 00074 00075 00076 00077 OO100 OO101 00102 00103 00104 00105 00106 00107 001 10 001 1 1 001 12 001 13 0O1 14 OOI 15 00116 001 17 00120 00121 0O122 00123 00124 00125 00126 00127 OOI 30 00131 00132 0O133 00134 00135 00136 0O137 00140 0OI4 1 0O142 0O143 00144 00145 00146 0O147 1367 7112 7012 1355 3365 1357 3363 1355 3364 6201 1763 6201 3765 2363 2365 2364 53CO 6201 1250 3762 2362 7126 1365 1355 1361 3762 1374 0762 3773 2362 1365 1361 3762 2362 1365 3762 2362 7 146 3762 2362 1246 3762 2362 3762 2362 1247 3762 2362 3762 TAD UNITX CLL RTR RTR TAD M400 DCA LHNDR TAD K5200 DCA TEMQ2 TAD M400 OCA TEM03 USRL4. COF 0 TAD*/. TEM02 FD2. CDF 00 OCAy. LHNDR ISZ TEM02 ISZ LHNDR ISZ TEM03 JMP USRL4 /BUILD UP NEW DSRN TABLE FOR THIS UNIT / CDF O TAD ENTPT OCAX TEMQ ISZ TF.MQ CLL CML RTL TAD LHNDR TAD M400 TAD LHIFLO OCAy. TEMO TAD K7774 ANDX TEMO DCA-/. /VHKEV ISZ TEMO TAD LHNDR TAD LHIFLO DCA% TEMO ISZ TEMO T AO LHNDR DCA1/, TEMO ISZ TEMO CMA CLL RTL DCAX TEMO ISZ TEMO TAD SB DCA7. TCMO ISZ TEMQ DCA'/. TEMO ISZ TEMO TAO NOOLKS DCAX TEMO ISZ TEMQ OCA'/. TEMO /UNIT 9 •> AC-7O0O: UNIT S -> AC-6O0O /LOCATION FOR THIS UNIT'S HANOLER /ENTRY POINT /2 •> AC (FORMS CONTROL BIT) /HANDLER CODE WORD /•K« KLUOE TO LET FRTS KNOW WHICH / HANDLER IS IN CORE /BUFFER ADDRESS » FIELD /CHARACTER POINTER /-3 •> AC /CHARACTER COUNTER /START BLOCK /RELATIVE BLOCK /LENGTH OF FILE /STATUS WORD 00150 6203 00151 5600 USRSL5. CDF CIF O JMPX 'USRSE RALF V62A 4-SEP-B1 PAGE 1-11 00152 0006 K6. 6 00153 7400 K7400. 7400 00154 7600 M200. -200 00155 7400 M400. -400 00156 0007 K7., 7 00157 5200 K520O. 520O DSRN'4244 001 SO 4233 LDSRN, DSRN-11 /START LOCATION OF OSRN TABLE 00161 OOOO LHIFLO. 00 00162 OOOO TEMQ. 0 00163 OOOO TEMQ2, O 00164 OOOO TEMQ3. O 00165 OOOO LHNDR. O 00166 OOOO FUNCTX. O /STUFFED BY RALF CODE 00167 OOOO UNITX. O /STUFFED BY RALF CODE 00170 OOOO ERRUSR. 0 /READ BY RALF CODE 0017 1 OOOO #LUSR. AODR 'USR 00172 0200 00173 2761 'HKEY, HKEY /LOCATION OF HKEY IN FRTS / MUST AGREE WITH VERSIONII 00174 7774 K7774. 7774 / ORG .+177ft760O /USR CALLING SUBROUTINE FOR FORTRAN / / THIS ROUTINE IS MOVED TO PAGE 7400 OF THE HIGHEST / FIELD BEFORE EXECUTING TO AVOID BEING OVERWRITTEN BY THE USR / ROUTINE. NO FILE SPECIFICATIONS OTHER THAN INTERNAL / HANDLERS AND SYSTEM DEVICES MAY BE MADE EXTERNAL TO THESE / ROUTINES BECAUSE THE USE OF THIS ROUTINE WILL OVERWRITE / THE HANDLERS WHICH ARE STORED IN HIGH CORE. / / 0O200 OOOO 'USR. 0 / / ENTER WITH FUNCTION COOE IN THE AC / 2 - LOOKUP (OPEN FOR INPUT) / 3 - ENTER (OPEN FOR OUTPUT) / 4 - CLOSE (CLOSE OUTPUT FILE) / / DEVICE AND FILE NAMES ARE STUFFED BY THE CALLING / PROGRAM BEFORE THIS SUBROUTINE IS CALLED. / / CALLING SEOUENCE: / JMS *USR / START BLOCK OF FILE (RETURNED FOR COOE 2 * 3 ) / * BLOCKS SUPPLIED IF COOE 4 / NUMBER OF BLOCKS IN FILE (RETURNED FOR COOE 2 » 3) / ENTRY POINT OF HANDLER AS READ INTO PAGE 5200 / <RETURN> RALF V62A 4-SEP-81 PAGE 1-12 AC ON EXIT CONTAINS ERROR CONDITION: 0 - NO ERROR 1 - ILLEGAL OEVICE 2 - ILLEGAL FILE NAME 00201 3266 DCA FUNCTV /SAVE FUNCTION CODE 00202 1600 TADX *USR /GET * BLOCKS IN CASE CLOSE FUNCTION 00203 3270 DCA *BLKS 00204 6214 RDF /SET INSTRUCTION FIELD FOR RETURN 00205 1221 TAD 'CIF 00206 3330 DCA EXIT4 00207 7040 CMA /MAKE IT CDF 002 10 1330 TAD EXIT4 0021 1 3307 DCA EXIT 00212 334 1 DCA ERRNO /INITIALIZE ERROR RETURN VARIABLE 00213 7040 CMA 002 14 1221 TAD *CIF / - I IN AC MAKES IT COF 00215 6224 RIF 002 16 3217 DCA . + 1 00217 7402 HLT /SET DATA FIELD TO CURRENT FIELO / CORE FOR USR CALL 00220 6002 IOF 0022 1 6202 acir. CIF 0 00222 4732 JMSX K7607 /CALL SYSTEM HANDLER 00223 52 10 5210 / WRITE 10000-11777 ft 17400-17777 00224 7400 7400 00225 0027 27 00226 7402 HLT /DEVICE ERROR 00227 6202 CIF 0 002 30 4732 JMSX K7607 /READ IN USR 00231 0610 610 00232 OOOO 0 00233 0013 13 00234 7402 HLT 00233 6202 CIF 0 -00236 4732 JMSX K7607 /READ IN FIELD ONE TABLES 00237 0210 210 00240 7400 7400 0024 1 0037 37 00242 7402 HLT / ••••PERFORM USR FUNCTIONS 00243 6212 CIF 10 00244 4733 JMSX K200 /RESET 00243 0013 13 00246 OOOO 0 00247 1334 TAD 1 <520l /SET PAGE FOR HANDLER 00230 3236 DCA ENTRY RALF V62A 4-SEP-B1 PAGE 1-13 00251 6212 CIF 10 00252 4733 JMSX K20O /FETCH 00253 OOOI 1 00254 OOOO DEV, 0 /(STUFFED BY RALF ROUTINE) 00255 OOOO DEVNO, 0 00256 5201 ENTRY, 5201 00257 5336 JMP ERR /ILLEGAL DEVICE 00260 1342 TAD 'LFILE /SET POINTER TO FILE 0026 1 1343 TAD KOFSET 00262 3267 OCA LFILE 00263 1255 TAD DEVNO /GET DEVICE NUMBER 00264 62 12 CIF 10 00265 4733 JMSX K200 /PERFORM FUNCTION 00266 OOOO FUNCTY, 0 SB2. 0026 7 OOOO LF I L E . 0 00270 OOOO 'BLKS. 0 0027 1 5333 JMP FRR2 /FILE ERROR / CORE 00272 6202 EX1T2. CIF 0 00273 4732 JMSX K7607 /SAVE FIELO ONE TABLES 00274 4310 4210 00275 7400 7400 00276 0037 37 00277 7403 HLT 00300 6202 CIF 0 00301 4732 JMSX K7607 /RESTORE CORE 00302 1210 1210 00303 7400 7400 00304 0027 27 00305 7402 HLT 00306 600) ION 00307 7402 EXIT, HLT 00310 )267 TAD SB2 0031 1 3600 OCAX *USR 00312 2 200 ISZ 'USR 003 13 )267 TAD SB2 00314 7640 SZA CLA 00315 5320 JMP .+3 003 16 7040 CMA 003 17 5322 JMP .+3 00320 )270 TAD *BLKS 0032 1 704) CIA 00322 3G00 DCA"/. *USR 00323 2 200 ISZ 'USR 00324 1256 TAO ENTRY 00325 3600 DCAX *USR 00326 2200 ISZ 'USR 00327 134 ) TAD ERRNO 00330 7402 EXIT4. HLT 00331 5600 JMPX 'USR /RETURN SB a 'BLKS /NON-FILE STRUCTURED 0EVICE7 /YES - SET MAX NUMBER OF BLOCKS VO RALF V62A 4-SEP-81 PAGE 1-14 00332 7607 K7607. 7607 00333 0200 K200. 20O 00334 5201 K5201. 5201 00335 7201 00336 70O1 00337 334 1 00340 5272 0034 1 0000 ERR2. CLA IAC ERR, IAC OCA ERRNO v)MP EXIT2 ERRNO, O /SYSTEM HANDLER ENTRY POINT /USR ENTRY POINT /PAGE FOR HANDLER (» TWO PAGES AVAILABLE) /ILLEGAL FILE NAME /ILLEGAL DEVICE NAME 00342 0344 «LFILE, AND FILE 7200 OOOO OOOO OOOO OOOO 00343 00344 00345 00346 00347 00350 OOOO 00351 OOOO 00352 OOOO 00353 OOOO 00354 OOOO KOFSET. F I L E . 7200 0;0;0;0;0:0;0;0:0 /LOCATION OF FILE ON PAGE 7400 /•AND' NEEDED TO TRICK ABSOLUTE REFERENCE /CHECK IN RALF. /OFFSET TO REAL EXECUTION ADDRESS RALF V62A 4-SEP-B1 PAGE 1 • SUBROUTINE ADC12(V) • SUBROUTINE DAC16(V) CALL DAC16IV) V-VOLTAGE WORD (0-65533) CALL A0C12(V) V - VOLTAGE WORD (-10.,10.) SECTS INOUT ENTRY ADC 12 ENTRY DAC 16 00900 1116 TEXT +INOUT* 00001 1723 OOOO 2 2400 / OOOO 3 OOOO / DACB. 0 00004 7300 CLA CLL 00005 1253 TAD B8 /GET MOST SIG WORD 00O06 0251 AND K17 /MASK LOW 4 BITS 00O07 7010 RAR 00010 7012 RTR /ROTATE INTO HIGH 4 BITS 0001 1 7012 RTR 00012 3253 DCA ANGH /AND SAVE IT 00013 1256 TAO C8 /GET LEAST SIG WORD 00014 7012 RTR 00015 7012 RTR /ROTATE RIGHT 4 BITS 00016 0252 AND K377 /MASK 8 LOW ORDER 00017 1253 TAO ANGH /GET HIGH BITS 00O20 7040 CMA /COMPLEMENT 0002 1 6173 6173 /AND OUTPUT TO THE DAC 00022 1256 TAD C8 /GET LEAST SIG WORD AGAIN 00023 0251 AND K17 /MASK LOW ORDER 4 BITS O0024 7010 RAR 00025 7012 RTR 00026 7012 RTR /ROTATE INTO HIGH 4 BITS O0O2 7 704O CMA /COMPLEMENT 00030 6423 6423 /AND OUTPUT TO THE DAC 0003 1 7300 CLA CLL 00032 6203 COF CIF 0 /RETURN TO CALLING 00033 5603 / JMPX DAC8 /ROUTINE 00034 OOOO / PDPAD. OOOO 00035 7 300 CLA CLL 00036 6422 6422 00037 642 1 DELAY. 6421 00040 5237 JMP DELAY 00041 6424 6424 00042 7004 RAL 0004 3 7040 CMA 0OO44 7010 RAR RALF V62A 4-SEP-81 PAGE 1-1 0GO4S 3250 OCA VOLTS 00046 6203 CDF CIF 0 00047 5634 JMPX PDPAD 00050 OOOO VOLTS, OOOO 00051 0017 f K17. 17 00052 0377 K377. 377 CO053 OOOO ANGH. 0 /HIGH ORDER ANGLE WORD 00054 OOOO A8. 0 /LIST OF DECODED ANGLE 00055 OOOO BB. 0 /WORDS IN BCD 00056 OOOO C8. / 0 1 BASE 0 00057 OO06 0AC16. STARTO 00060 1 too SETX #IR /SET TO ROUTINE'S INDEX 0O061 0104 00062 0610 FLDAX 0, 1 /GET PTR TO ARG 00063 6201 FSTA 3 /AND STORE IT 00064 0005 STARTF 1 00065 0601 FLDAX 3 /GET THE VOLTAGE WORD 0O0G6 4400 FMUL #64K /AND SCALE TO THE DAC RANGE OOOG7 0107 O0070 3400 FDIV #25 /DIVIDE BY THE GAIN OF 0007 1 01 12 /THE DAC (ASSUMED TO BE 25) 00072 1010 uGE OK / I F LESS THAN 0 MAKE • 0. 00073 0075 00074 0002 FCLA 00075 0010 OK. ALN 0 /MAKE IT AN INTEGER 00076 6400 FSTA AS /PASS TO 8-MODE 00077 0054 00100 4000 TRAP4 DAC8 /CALL 8-MODE ROUTINE 00101 0003 00102 0210 FLDA 30 /GET RETURN ADDRESS OO103 00O7 / JAC /RETURN TO CALLER 00104 OOOO / #IR. OOOO /THIS ROUTINE'S INDEX 00105 0001 0001 /XR 1 00106 OO02 0002 /XR2 0O107 0015 #64K. F 6553.8 /FULL SCALE FOR DAC 001 10 3146 00111 30OO OO112 0003 #23, F 25.0 /GAIN OF THE DAC 00113 3100 00114 OOOO 00115 OOOO OOIIG OOOO 00117 OOOO O0t20 OOOO / THIS PROGRAM RETURNS A VOLTAGE MEASUREMENT / BY WAY OF A 12 BIT A TO D CONVERTER / PERAMETER IS PASSED BY LOADING AND THEN / CALLING ON THE PROGRAM ADC12(PERM) / THAT IS ALL #BASE, F 0.0 4-XR, 0.0 RALF V62A 4-SEP-BI PAGE 1-2 00121 OOOO 00122 OOOO 00123 OOOO #V0LT. F 0.0 0O124 OOOO 00123 OOOO 00126 0010 SCALE. F 20O.0 00127 3100 00130 OOOO 0013 1 1030 4G0BAK, , JA . 00132 0131 BASE 0 00133 0006 ADC 12. STARTD 00134 02 10 FLDA 30 00135 6400 FSTA #GOBAK 00136 0131 00137 0200 FLDA 0 00140 1 100 SETX <TXR 0014 1 0120 0O142 1 1 10 SETB /•BASE 00143 0115 BASE #BASE 00144 0101 LDX 0. 1 00143 OOOO 00146 6200 FSTA 4BASE 00147 0710 FLDAX #BASE.1+ 00150 6202 FSTA »VOLT 00151 0005 STARTF 00152 4000 TRAP4 PDPAD 00153 0034 00154 1 100 SETX VOLTB 0O155 0050 00156 0030 XTA 0 00157 4 203 FMUL SCALE 00160 6602 FSTAX fVOLT 00161 1030 JA AT.OBAK 00162 0131 RALF V62A 4-SEP-81 PAGE 1 RALF VG2A 4-SEP-B1 PAGE 1-1 / FILE RDANA 00034 6314 6314 /GET VOLTAGE WORD 3 / 0OO35 0340 AND KI7 /MASK BITS 8-11 SECTS RDANAB 00036 3350 OCA V8A /AND STORE / 00037 6314 6314 /GET THE WORD AGAIN / LIST OF SUBROUTINE NAMES 00040 7012 RTR /ROTATE RIGHT 4 TIMES ENTRY RDANA 00041 7013 RTR / 00042 0340 AND K17 /MASK BITS 8-11 / LIST OF DATA ENTRY POINTS 00043 3351 DCA V8B /AND STORE ENTRY VBA 0004 4 6314 6314 /GET THE WORD AGAIN ENTRY RANGB 00045 7O04 RAL /ROTATE LEFT / 00046 7006 RTL /5 TIMES 1 0004 7 7006 RTL 1 00050 0340 AND K17 /MASK BITS 8-11 / READ THE DANA 00051 3352 DCA V8C /AND STORE ooooo OOOO RDANA. 0 / / INITIALIZE SYSTEM DIRECT COMMAND / UNPACK VOLTAGE WORD 2 COOOI 7300 CLA CLL 00052 6312 63 12 /GET VOLTAGE WORD 2 00002 1360 TAO FASTS 00053 0340 AND K17 /MASK BITS 8-11 OOOO 3 1361 TAD HIGH /OUTPUT A HIGH TO DANA 00054 3353 OCA VBD /AND STORE 0O004 6323 6323 /OUTPUT TO DEVICE 32 00055 6312 6312 /GET THE WORD AGAIN / 0OO56 7012 RTR /ROTATE RIGHT 4 TIMES 1 TEST FOR SYSTEM RDY--GROUND TRUE,AC06 0O057 7012 RTR 0OO05 7300 FLO. CLA CLL 00060 0340 AND K17 /MASK BITS 8-11 OOOOG 6311 6311 /LOAD FROM DEVICE 31 0006 1 3354 DCA V8E /AND STORE OOO07 0341 AND K40 /MASK AC06 / coo to 7440 SZA /IS IT ZERO? / UNPACK VOLATQE WORD 1 0O011 5205 JMP FLO /NO. TEST AGAIN 00062 6311 6311 /GET VOLTAGE WORD 1 1 OO063 7006 RTL /ROTATE LEFT 2 TIMES / START CONVERSION--SET SYS OIR 00064 0334 AND K l /MASK BIT 11 / TO 0. WAIT, THEN BRING HIGH AGAIN. 00065 3355 DCA V8F /AND STORE 0O012 1360 TAD FASTS / 00013 .1362 TAD LOW /OUTPUT A LOW TO DANA / DETERMINE POLARITY O0014 6323 6323 /YES. OUTPUT DATA WORD 00066 6311 6311 /GET VOLTAGE WORD 1 / 00067 0343 AND K400 /MASK AC03 0O015 7O0O NOP 00070 7450 SNA /IS IT ZERO? CO016 7 COO NOP 0OO71 5275 JMP POS /YES. SIGN IS POSITIVE CO017 70O0 NOP 00072 1334 TAO K l /NO. SET SIGN CODE-1 0OO20 7000 NOP /WAIT BEFORE BRINGING SYSTEM 00073 3357 DCA SGN 00021 7000 NOP /DIRECT COMMAND HIGH AGAIN 00074 5276 JMP RANG /GO TO RANGE TEST CO022 70OO NOP 00075 3357 POS. DCA SGN /SET SIGN COOE-0 00023 7CO0 NOP / 0O024 1360 TAD FASTS / DETERMINE VOLTAGE RANGE OO025 1361 TAD HIGH /OUTPUT A HIGH TO DANA / START BY TESTING FOR IV RANGE 00026 6323 6323 /OUTPUT TO DEVICE 32 00076 6313 RANG. 6312 /GET VOLTAGE WORD 2 / 00077 0347 AND K6000 /MASK ACOO AND AC01 / CHECK FOR END OF CONVERSION 00100 7640 SZA CLA /AC'O? / DATA READY --GROUND TRUE,AC04 00101 5304 JMP RO /NO. TRY NEXT RANGE 00027 7300 DFLQ, CLA CLL 00102 3356 DCA RANG8 /YES. SET RANGE CODE-0 0O030 6311 6311 /LOAO FROM DEVICE 31 00103 5332 JMP OUT /RETURN 00031 0343 AND K200 /MASK AC04 / TRY IV RANGE 00032 7440 SZA /IS IT ZERO? O0104 631? RO. 6313 /GET VOLTAGE WORD 2 OO033 5227 JMP DFLG /NO. TRY AGAIN 00105 0346 AND K5400 /MASK AC0O.AC02, AND AC03 / C0106 7440 SZA /AC-O? / 00107 5313 JMP R1 /NO. TRY NEXT RANGE / DECODE VOLTAGE WORDS TO OECIMAL 001 10 1334 TAO K l /YES. SET RANGE CODE-1 / START WITH VOLTAGE WORD 3 OO11 1 3356 DCA RANG8 HALF V62A 4-SEP-81 PAGE 1-2 CO112 5332 JMP OUT /RETURN / TRY 10V RANGE OO113 0345 RI. AND K5000 /MASK ACOO AND AC02 OOI 14 7640 SZA CLA /AC-07 00 113 5321 JMP R2 /NO. TRY NEXT RANGE 001 16 1333 TAO K2 /YES. SET RANGE CODE-2 00117 3356 OCA RANG8 00120 5332 JMP OUT /RETURN / TRY 100V RANGE 00121 6312 R2. 6312 /GET VOLTAGE WORD 2 00122 0344 AND K4400 /MASK ACOO ANO AC03 00123 7640 SZA CLA /AC-07 00124 5330 JMP R3 /NO. TRY NEXT RANGE 00125 1336 TAD K3 /YES. SET RANGE CODE-3 00126 3356 DCA RANG8 00127 5332 JMP OUT /RETURN / MUST BE 1000V RANGE 0O13O 1337 R3. TAD K4 /SET RANGE COOE-4 00131 3356 DCA RANG8 00132 6203 OUT. CDF CIF 0 /RETURN TO CALLING 00133 5600 JMPX RDANA 00134 0001 K1. 1 00135 0002 K2. 2 00136 0003 K3. 3 00137 0004 K4, 4 0O140 0O17 K17. 17 0014 1 0040 K40. 40 0O142 0200 K200. 200 00143 0400 K400. 400 00144 4400 K4400. 4400 00145 5000 K5000. 5000 00146 5400 K5400. 5400 00147 6000 K60O0. 6000 OO150 OOOO V6A, 0 /LIST OF DECODED 00151 OOOO V8B. 0 /VOLTAGE WORDS 00152 OOOO V8C, 0 00153 OOOO V8D. 0 00154 OOOO VBE, 0 00155 OOOO V8F. 0 00156 OOOO RANG8, 0 /RANGE CODE WORD 00187 OOOO BON. 0 /•ION eODI WORO 00160 OOOO FASTB. 0 00161 2007 HIGH, 2007 00162 0007 LOW, 0007 RALF V63A 4-SEP-81 PAGE t SUBROUTINE DANA(VDANA,IF ST) 00000 00001 00002 00003 00004 00005 00006 00007 00010 0001 1 00012 00013 00014 00015 00016 00017 00020 0002 1 00022 0002 3 00024 00029 0002 G 0002 7 00030 0003 1 00032 00033 00034 00039 00036 00037 00040 0004 1 00042 0004 3 1030 0122 0401 1601 OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO oooo 0000 OOOO OOOO OOOO OOOO OOOO oooo 0000 OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO oooo OOOO OOOO OOOO OOOO OOOO / ' / / ......... / / CALL DANA(VDANA,IFST) / READS THE VOLTAGE FROM THE DANA / VDANA * VOLTAGE AT THE DANA INPUT. IFST • SUPERFAST POINTER • O SUPERFAST • 2048 NORMAL TL. D. E. F. SECT DANA EXTERN RDANA EXTERN V8A EXTERN RANG8 JA #ST TEXT +DANA+ 'BASE. F O.O #XR, F O.O VDANA. F 0.0 IFST. F O.O F 0.0 F 0.0 F 0.0 F O.O F O.O F 0.0 F O.O /BASE PAGE /INDEX REG 0-2 /VOLTAGE WORD POINTER /TEMP STORAGE LOCATION /VOLTAGE DECADE WORDS vO VO RALF V62A 4-SEP-B1 PAGE 1-1 00044 OOOO 0O04S OOOO RANGE, F 0.0 /DANA RANGE WORD 00046 OOOO 00047 OOOO 00050 OOOO SINE. F 0.0 /VOLTAGE SIGN WORD 00051 OOOO 00052 OOOO 00053 7777 '4096. F 0.409S /TABLE OF CONSTANTS 00054 3215 00055 5613 00056 0002 'TWO. F 2.0 00057 2000 0OOG0 OOOO 0006 1 0001 #TENO. F 1.0 00062 2000 00063 OOOO OOOG4 OO04 'TEN1, F 10.0 00065 2400 000G6 OOOO 00067 0007 #TEN2. F 100.0 00070 3100 00071 OOOO 0007 2 0012 'TENS. F 1000.0 OO073 3720 00074 OOOO 00075 0016 'TEN4, F 10000.0 00076 2342 00077 OOOO 00100 0021 *TEN5. F 100000.0 OOIOI 3032 00102 4000 00103 7772 'TENM2. F 0.01 00104 2436 00105 5605 00106 7767 'TENM3, F 0.001 00107 2030 001 10 4467 001 11 7763 'TENM4. F 0.0001 00112 32 15 00113 56 13 001 14 7760 'TENM8. P 0.00001 OOI 15 2476 OOI 16 1326 OOI 17 7755 'TENM6, F O.OOOOOI 00120 2061 00121 5736 BASE 0 OOI 22 OO06 #ST. STARTD 00123 02 10 FLOA 30 /GET RETURN FROM CALLER OOI 24 6400 FSTA 'GOBAK 00125 0267 00126 0200 FLDA 0 /GET POINTER TO ARG ADDRESS 00127 1 100 SETX *XR /SET TO THIS ROUTINES INDEX C0130 0007 00131 11 10 SETS 'BASE /SET TO THIS ROUTINES BASE RALF V62A 00132 0004 00133 0101 00134 OOOO 00135 6200 00136 0710 00137 6202 00140 0710 0014 1 6203 00142 0005 00143 0603 00144 0010 00145 6400 0014G OOOO 00147 4000 00150 OOOO 00151 1100 00152 OOOO 00153 0030 00154 6205 00155 0031 00156 6206 00157 0032 00160 6207 0016 1 0033 00162 6210 00163 0034 00164 62 11 00165 0035 00166 6212 00167 0036 00170 6213 0017 1 0037 00172 6214 00173 0206 00174 4220 00175 1205 00176 6204 00177 0207 00200 422 1 00201 5204 00202 02 10 00203 4222 00204 5204 00205 0211 00206 4223 00207 5204 00210 0212 002 11 4224 00212 5204 00213 0214 4-SEP-B1 PAGE 1-2 BASE 'BASE LDX O. 1 FSTA 'BASE FLDAX 'BASE.** /GET FIRST ARO AODRESS FSTA VDANA /STORE ARO FLDAX 'BASE,1* FSTA IFST STARTF FLDAX IFST ALN 0 FSTA RANGB TRAP4 RDANA / / DECODE THE VOLTAGE WORDS SETX V8A / XT A 0 /GET WORD A FSTA A XTA 1 /GET WORD B FSTA B XTA 2 /GET WORD C FSTA C XTA 3 /GET WORD D FSTA D XTA 4 /GET WORD E FSTA E XTA 9 /GET WORD F FSTA F XTA 6 /GET RANGE WORD FSTA RANGE XTA 7 /GET SIGN WORD FSTA SINE FLDA B FMUL 'TEN! FADO A FSTA TL FLDA C FMUL 'TEN2 FAODM TL FLOA 0 FMUL 'TENS FADDM TL FLDA E FMUL #TEN4' FADDM TL FLOA F FMUL 'TENS FAUDM TL OECODE FOR SIGN BIT FLOA SINE RALF VG2A 4-SEP-81 PAQE »-3 00214 10O0 JEO *POS 002 IS 0222 00216 0002 FCLA 00217 2217 FSUB 'TENO 00220 1030 JA 'NEXT 00221 0223 00222 0217 *P0S. FLDA #TENO 00223 7204 'NEXT. / FMULM TL / / DECODE FOR VOLTAGE RANGE 1 RETURN TO CALLING ROUTINE WHEN FINISHEO / OECODING RANGE 00224 0213 FLDA RANGE 00223 1040 JNE 'RO 00226 0234 0O227 0231 FLDA 'TENM6 /RANGE* .000001 00230 4 204 FMUL TL 00231 6602 FSTAX VDANA 00232 1030 JA 'GOBAK O0233 0267 00234 22 17 'RO. FSUB 'TENO 00235 1040 JNE *R1 00236 0244 00237 0230 FLDA 'TENM5 /RANGE* .00001 00240 4204 FMUL TL 0024 1 6602 FSTAX VDANA 00242 1030 JA 'GOBAK 00243 0267 00244 22 17 'RI. FSUB 'TENO 00245 1040 JNE «R2 00246 0254 00247 0227 FLDA 'TENM4 /RANGE* .000* 00250 4 204 FMUL TL 00251 6602 FSTAX VDANA 00252 1030 JA 'GOBAK 00253 0267 00254 2217 *R2. FSUB 'TENO 00255 1040 JNE *R3 00256 0264 00257 0226 FLDA 'TENM3 /RANGE* .001 00260 4204 FMUL TL 00261 6602 FSTAX VDANA 00262 1030 JA 'GOBAK 00263 0267 00264 022S 'R3. FLDA 'TENM2 00265 4204 FMUL TL O0266 6602 FSTAX VDANA 00267 1030 'GOSAK. JA . O027O 0267 102 APPENDIX B ANALYS I n s t r u c t i o n s 1. I n t r o d u c t i o n : T h i s program was w r i t t e n to analyse the e l l i p s o m e t e r data t h a t i s obtained when us i n g RUDOLF (See User's Guide to Software Support f o r the Rudolph E l l i p s o m e t e r ) . I t i s not intended to re p l a c e ELLIPS which i s on MTS, but r a t h e r , to bridge the gap between RUDOLF and ELLIPS. 2. Loading the Program: In order to run the ANALYSis program, do the f o l l o w i n g : (a) Load the d i s k o p e r a t i n g system (OS/8) (See ope r a t i n g system manual f o r i n s t r u c t i o n s ) . Then enter at the t e r m i n a l .R FRTS <CR> *ANALYS <ESC> Where <CR> means the RETURN key Where <ESC> means the ESCAPE key (b) Turn on P l o t t e r and L i n e P r i n t e r i f needed. During the Program i n i t i a l i z a t i o n the f o l l o w i n g sequence occurs: (a) The d e f a u l t parameters f o r S i 0 2 - S i are set up. (b) The p l o t t e r i s i n i t i a l i z e d . (c) The screen i s c l e a r e d and the f o l l o w i n g i n s t r u c t i o n s are p r i n t e d on the screen. KEYBOARD COMMANDS: 1 = CHANGE THE DEFAULT PARAMETERS 2 = CALCULATE PSI AND DELTA < A,P 3 = CALCULATE TOX < A,P 4 = CALCULATE TOX < PSI,DELTA 5 = GET PSI AND DELTA < N0,N1,N2,TOX 6 = GET TC AND DELTA C < A1,P1,A3,P3 7 = SET UP WINDOWS 8 = RESET WINDOWS 9 = STOP PROGRAM EXECUTION 10 = CALCULATE N2 < A,P,N0,N1=1 11 = CALCULATE N2 < PSI,DELTA,NO,N1=1 12 = PLOTSEE 13 = GET NF,NS,[TOX] < PSI,DELTA,AI FILE INSTRUCTION: 103 The program i s ready f o r a new command every time the INSTRUCTION: prompt i s p r i n t e d out. E n t e r i n g a code number (f o l l o w e d by h i t t i n g the r e t u r n key) i n response to the prompt causes the program to execute the a p p r o p r i a t e t a s k . At the end of the task (or i n some cases when Switch R e g i s t e r Zero i s depressed) the program r e t u r n s to the keyboard command mode. If an undefined command i s entered, the t e r m i n a l i s c l e a r e d and the i n s t r u c t i o n set i s again p r i n t e d . Notes: T h i s program works i n NANOMETERS NOT ANGSTROMS. A l l entered numbers REQUIRE decimal p o i n t s . I t i s customary when e n t e r i n g i n d i c e s that the imaginary component i s always a p o s t i v e number. The r e a l component of the index cannot be l e s s than one. The d e f a u l t v a l u e s f o r the a x i s a r e : PSI LENGTH = 6. DELTA LENGTH = 8. PSIMIN = 0. PSI DEGS/INCH = 15. DELTA MIN = 0. DELTA DEGS/INCH = 45. 3. I n s t r u c t i o n Code 1: changing the d e f a u l t parameters The user can change any e i g h t of the d e f a u l t parameters to the d e s i r e d v a l u e s . 4. I n s t r u c t i o n Code 2: c a l c u l a t i n g PSI and DELTA With t h i s i n s t r u c t i o n the user can get PSI and DELTA from a s i n g l e input from the t e r m i n a l [SCREEN], or two inputs from the t e r m i n a l [2ZONE], from a f i l e of two zone balances generated by ELLIP [ F I L E ] , or a f i l e from the repeated balance r o u t i n e generated by RUDOLF [RBAL ]. In [RBAL] the user has a c h o i c e of two types of a n a l y s i s : PSI Vs DELTA [PSIDEL] or PSI Vs TIME and DELTA Vs TIME [VSTIME]. There are f i v e types of output, these being: The screen [SCREEN], the l i n e p r i n t e r [LPT], a f i l e [ F I L E ] , the p l o t t e r [GRAPH], or a f i l e and a p l o t [FPLOT]. I f [GRAPH] or [FPLOT] i s chosen, the user can choose e i t h e r a normal p l o t [PLOT], or symbols p l o t t e d ( i n t h i s case +) a t the c o o r d i n a t e s [SYMBOL]. At the end of the p l o t the user can have a g r i d o v e r l a y e d onto the graph. 104 I f [FILE] or [RBAL] are s e l e c t e d , the user i s prompted to enter the input f i l e . I f a n u l l l i n e i s entered, the program r e t u r n s to the keyboard command mode. T h i s i s a l s o t r u e when e n t e r i n g the output f i l e name i n [FILE] or [FPLOT], Once the program has s t a r t e d reading the data, d e p r e s s i n g switch r e g i s t e r zero w i l l abort the i n s t r u c t i o n and r e t u r n to the keyboard command mode. In a l l cases the f i r s t o p t i o n i s the d e f a u l t o p t i o n , and thus need not be entered ( i e enter a n u l l l i n e ) . If an unknown command i s entered, the program assumes that the keyword was m i s s p e l l e d and the user i s prompted to re- e n t e r the command. 5. I n s t r u c t i o n Code 3: c a l c u l a t i n g Tox < A,P The command c a l c u l a t e s the oxide t h i c k n e s s assuming the i n d i c e s and the other d e f a u l t values have been set up c o r r e c t l y . 6. I n s t r u c t i o n Code 4: c a l c u l a t i n g Tox < PSI,DELTA Th i s i s the same as i n s t r u c t i o n code 3, except that PSI and DELTA are entered i n s t e a d of A and P. 7. I n s t r u c t i o n Code 5: g e t t i n g PSI and DELTA < NM,NF,NS=1. T h i s command c a l c u l a t e s PSI and DELTA s i m i l a r l y to ELLIPS. The commands supported are NF, NS, AI, THIC, and CTAB. The command format i s the same as ELLIPS except that the user i s not prompted f o r input v a r i a b l e s i f they were not entered i n the command s t r i n g . The output can be d i r e c t e d to the screen [SCREEN], the l i n e p r i n t e r [LPT], a f i l e [ F I L E ] , the p l o t t e r [PLOT], or p l o t t e d and put i n a f i l e [FPLOT]. By d e p r e s s i n g switch r e g i s t e r zero the command i s aborted and c o n t r o l r e t u r n s to the keyboard command mode. 8. I n s t r u c t i o n Code 6: g e t t i n g TC and DELTA C Th i s command w i l l c a l c u l a t e a new TC and DELTA C f o r the qu a r t e r wave p l a t e . 9. I n s t r u c t i o n Code 7: s e t t i n g up f o r window compensation T h i s i n s t r u c t i o n i s used to have the program a u t o m a t i c a l l y c o r r e c t f o r the windows of a c e l l . I t r e q u i r e s a two zone balance of the same sample with and without the windows (AI must be the same). 105 10. I n s t r u c t i o n Code 8: r e s e t t i n g to no window c o r r e c t i o n T h i s i n s t r u c t i o n i s used to c a n c e l i n s t r u c t i o n code 7. 11. I n s t r u c t i o n Code 9: stopping the program T h i s i n s t r u c t i o n r e t u r n s the user to the OS/8 ope r a t i n g system. 12. I n s t r u c t i o n Code 10: c a l c u l a t i n g NS < A,P,NM,NF=1. T h i s i n s t r u c t i o n c a l c u l a t e s the index of an i n f i n i t l y t h i c k f i l m (assumed to be the s u b s t r a t e ) . I t then changes NF to 1.0 and NS to the c a l c u l a t e d index. 13. I n s t r u c t i o n Code 11: c a l c u l a t i n g NS < PSI,DELTA,NM,NF=1. T h i s i n s t r u c t i o n i s the same as i n s t r u c t i o n code 10 execpt PSI and DELTA are entered i n s t e a d of A and P. 14. I n s t r u c t i o n Code 12: to p l o t out a f i l e T h i s i n s t r u c t i o n i s used to p l o t out an e x i s t i n g f i l e that has been entered by hand or by i n s t r u c t i o n code 2. 15. I n s t r u c t i o n code 13: c a l c u l a t i n g NF and NS. T h i s i n s t r u c t i o n attempts to c a l c u l a t e NF and NS f o r a sample, given : 1) A set of PSI'S and DELTA'S at s e v e r a l AI'S assuming a constant oxide t h i c k n e s s (which i s a l s o computed). 2) A set of PSI'S and DELTA'S at constant AI for a growing f i l m . T h i s program not only r e q u i r e s a GOOD s t a r t i n g p o i n t , but may take up to 10 minutes to converge. The i n d i c e s c a l c u l a t e d are not u s u a l l y very good, but they do serve as a good s t a r t i n g p o i n t f o r curve f i t t i n g . C FILE VS C C T h i s program o b t a i n s the s l o p e and V I n t e r c e p t of the C o v e r p o t e n l a l - t I m e C c u r v e , then I t r i n g s the t e r m i n a l ' s b e l l when the v o l t a g e d i v e r g e s C from t h i s s t r a i g h t l i n e . C REAL X(150). V(150). M C C s e t u p f o r a n o d i z a t i o n : wait h ere u n t i l v o l t a g e > 0. C 10 IF (FOANA(O) .LT. 0 ) GO TO 10 C C a n o d i z a t i o n has s t a r t e d : Ignore f i r s t 7 seconds of c u r v e C I • MTIME(O) SO IF (MTIME(I) .LT. 7) GO TO 20 C C s t a r t s a m p l i n g c u r v e t o get s l o p e a I n t e r c e p t of l i n e C DO 40 I • 1. 150 30 IF (MTIME(I) LT. (70 • D/10.) GO TO 30 V ( I ) • FDANA(O) 40 X ( I ) ' (70 • I) / 10. CALL L INREG(X, V. 150, M, Et) WRITE (4,90) M, B DO GO I • 1. 50000 50 IF (MTIME(I) LT. (220 • D/10.) GO TO 80 V • FOANA(O) IF (V - (M'((220 • I)/10.) • B) .GT. .1) GO TO 70 SO CONTINUE STOP 7© T • (220 • I) / 10. WRITE (4.100) T, V SO CALL I0T(3I10. 7. 10) GO TO BO STOP 90 FORMAT (• SLOPE • '. F9.4. • V INTERCEPT • '. F9.4) lOO FORMAT (' TIME • '. F9.3. ' MAX VOLTAGE • '. F9.2) END 10 C C C FILE LINREG T h i s s u b r o u t i n e t a k e s a l i n e a r r o g r e s l o n o f N p o i n t s and c a l c u l a t e s aO.al f o r y • aO * a l • * SUBROUTINE LINREO(X. V, N. At, AO) REAL X(N), V(N) OBTAIN SUMS SUMX « O. SUMY - 0. SUMXX • 0. SUMXY • O. 00 10 I • 1. N SUMX • SUMX • X ( I ) SUMY • SUMY • Y ( I ) SUMXX • SUMXX • ( X ( I ) * X ( I ) ) SUMXY • SUMXY • ( X ( I ) * Y ( I ) ) CALCULATE AO. A l At • (N'SUMXY AO • SUMY / N RETURN END SUMX'SUMY) / (N* SUMXX A l • SUMX / N <SUMX*SUMX)I < 171 W > O TJ C TJ n M O 35 ft) a 1-4 >->• vt n rt 3 to o LTi RALF ' V82A 4-SEP- 81 PAGE 1 / F I L E / RDANA / / SECTS RDANA8 / LIST OF SUBROUTINE NAMES i ENTRY ROANA i LIST OF DATA ENTRY POINTS ENTRY V8A / / ENTRY RANG8 i READ THE DANA OOOOO OOOC RDANA, 0 / INITIALIZE SYSTEM DIRECT COMMAND 00001 7 3 CO CLA CLL 0O002 13GO TAD FASTS 0O003 1361 TAD HIGH /OUTPUT A HIGH TO DANA OOO04 6323 / 6323 /OUTPUT TO DEVICE 32 / / TEST FOR SYSTEM RDY--GROUND TRUE,AC06 OOOOS 730O FLO. CLA CLL OO006 6311 6311 /LOAD FROM OEVICE 31 00007 034 1 AND K40 /MASK AC06 OOOIO 7440 SZA /IS IT ZERO? OOOI1 5205 JMP FLO /NO. TEST AGAIN / START CONVERSION--SET SYS OIR 1 TO O. WAIT, THEN BRING HIGH AGAIN. 00012 1360 TAO FAST8 00013 1362 TAO LOW /OUTPUT A LOW TO DANA OOOI 4 6323 i 6323 /YES. OUTPUT DATA WORO OOOIS 7000 f NOP 0O01S 70OO NOP OOOI 7 7000 NOP OOO20 7000 NOP /WAIT BEFORE BRINGING SYSTEM OO021 7000 NOP /DIRECT COMMAND HIGH AGAIN 0O022 7000 NOP 00023 7000 NOP OO024 1360 TAD FASTS 00023 1361 TAD HIGH /OUTPUT A HIGH TO DANA 00026 6323 / 6323 /OUTPUT TO OEVICE 32 i / CHECK FOR END OF CONVERSION 1 DATA READY--GROUND TRUE,AC04 00027 7300 DFLO, CLA CLL 00030 6311 6311 /LOAD FROM OEVICE 31 00031 0342 AND K200 /MASK AC04 0O032 7440 SZA /IS IT ZERO? 00033 5227 / JMP DFLG /NO. TRY AGAIN / / DECOOE VOLTAGE WOROS TO DECIMAL / START WITH VOLTAGE WORD 3 RALF V62A 4-SEP-81 PAGE 1-1 00034 6314 6314 /GET VOLTAGE WORD 3 00035 0340 AND K17 /MASK BITS 8-11 O0O36 3350 DCA V8A /AND STORE 00037 6314 6314 /GET THE WORD AGAIN 00040 7012 RTR /ROTATE RIGHT 4 TIMES 0004 1 7012 RTR 00042 0340 AND K17 /MASK BITS 8-11 00043 3351 OCA VflB /AND STORE 0004 4 6314 6314 /GET THE WORD AGAIN 00045 7004 RAL /ROTATE LEFT 00046 7006 RTL /5 TIMES 0004 7 7006 RTL 00O5O 0340 AND K17 /MASK BITS 8-11 0003 1 3352 j DCA V8C /AND STORE f 1 UNPACK VOLTAGE WORD 2 00052 6312 6312 /GET VOLTAGE WORD 2 00053 0340 AND K17 /MASK BITS 8-11 00054 3353 DCA V8D /AND STORE 00055 6312 6312 /GET THE WORO AGAIN 00056 7012 RTR /ROTATE RIGHT 4 TIMES 00057 7012 RTR OOOGO 0340 AND K17 /MASK BITS 8-11 0006 1 3354 1 OCA V8E /AND STORE 1 1 UNPACK VOLATGE WORD 1 00062 631 1 6311 /GET VOLTAGE WORD 1 00063 7006 RTL /ROTATE LEFT 2 TIMES 00064 0334 AND K l /MASK BIT 11 00065 3355 1 DCA V8F /AND STORE I / DETERMINE POLARITY 00066 6311 631 1 /GET VOLTAGE WORD 1 00067 0343 AND K400 /MASK AC03 00070 7450 SNA /IS IT ZERO? 00071 5275 JMP POS /YES. SIGN IS POSITIVE 0007 2 1334 TAD K l /NO. SET SIGN CODE-1 0007 3 3357 DCA SGN 00074 5276 JMP RANG /GO TO RANGE TEST 00073 3357 POS, / DCA SGN /SET SIGN COOE'O / / DETERMINE VOLTAGE RANGE • / START BY TESTING FOR .IV RANGE 00076 6312 RANG, 6312 /GET VOLTAGE WORD 3 O0077 0347 A NO K6000 /MASK ACOO AND AC01 00100 7640 SZA CLA /ACO? 00101 5304 JMP RO /NO. TRY NEXT RANGE 00102 3356 DCA RANGB /YES. SET RANGE CODE-0 00103 5332 JMP OUT /RETURN / ' TRY IV RANGE 00104 6312 RO, 63 12 /GET VOLTAGE WORD 3 00105 0346 AND K540O /MASK AC00.AC03. AND AC03 00106 7440 SZA /AC-O? 00107 5313 JMP RI /NO. TRY NEXT RANGE 001 10 1334 TAD K l /YES. SET RANGE CODE-1 00111 3356 OCA RANGB RALF V62A 4-SEP-B1 PACE 1-2 OO112 5332 / JMP TRY 10V OUT RANGE /RETURN OO113 0345 RI. AND K5000 /MASK ACOO A NO AC02 00114 7640 SZA CLA /AC-07 001 15 5321 JMP R2 /NO. TRY NEXT RANGE 00116 1335 TAD K2 /YES. SET RANGE CODE-2 001 17 3356 DCA RANG8 00120 5332 JMP OUT /RETURN / TRY 100V RANGE 00121 6312 R2. 6312 /GET VOLTAGE WORD 2 00122 0344 AND K44O0 /MASK ACOO AND AC03 00123 7640 SZA CLA /AC»07 00124 5330 JMP R3 /NO. TRY NEXT RANGE 0012S 1336 TAD K3 /YES. SET RANGE CODE-3 00126 3356 DCA RANG8 00127 5332 JMP OUT /RETURN / MUST BE 1000V RANGE 00130 1337 R3. TAD K4 /SET RANGE CODE-4 00131 3356 DCA RANG8 00132 6203 OUT. CDF CIF 0 /RETURN TO CALLING 00133 5600 JMPX RDANA 00134 0001 K1. 1 00135 0O02 K2. 2 00136 0003 K3. 3 00137 0O04 K4. 4 00140 0017 K17. 17 0014 1 0040 K40. 40 00142 0200 K200. 200 00143 0400 K400. 400 00144 4400 K440O, 4400 00145 50O0 K5000. 5000 00146 5400 K540O. 5400 00147 6000 KGOOO. 6000 00150 OOOO V8A , 0 /LIST OF DECODEO 00151 OOOO V8B. 0 /VOLTAGE WORDS 00152 OOOO V8C. O 00153 OOOO V80. 0 00154 OOOO V8E . 0 00155 OOOO V8F , 0 00156 OOOO RANGB, 0 /RANGE CODE WORD 00157 OOOO SGM. 0 /SIGN CODE WORD C0160 OOOO FAST8. 0 00161 2007 HIGH. 2007 00162 0O07 LOW, 0007 RALF V63A 4-SEP-81 PAGE 1 00000 00001 0OOO2 00003 00004 00005 00006 00007 00010 0001 1 00012 00013 00014 00015 00016 00017 00020 00021 00022 00023 00024 00025 00026 0002 7 00030 0003 1 00032 00033 00034 00035 00036 00037 00040 0004 1 00042 00043 1030 0117 0401 1601 OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO OOOO / FILE FDANA.RA / / ......... / / •••• / / REAOS THE VOLTAGE FROM THE DANA FUNCTION FDANA(IFST) IFST • SUPERFAST POINTER • 0 SUPERFAST • 2048 NORMAL SECT FDANA B, E. F. EXTERN RDANA EXTERN V8A EXTERN RANGB JA #ST TEXT +DANA+ 'BASE. F 0.0 'XR, F O.O IFST. F O.O TL. F O.O A. F 0.0 F 0.0 F 0.0 F 0.0 F O.O F 0.0 /BASE PAGE I /INDEX REG 0-2 /TEMP STORAGE LOCATION /VOLTAGE DECADE WORDS RANGE. F 0.0 /DANA RANGE WORD RALF V62A 4-SEP-81 PAGE 1-1 00044 \ OOOO 00045 i OOOO SINE. F 0.0 /VOLTAGE SIGN WORO 0004E : oooo 0004 7 ' oooo OO05C > 7777 '4096. F 0.4096 /TABLE OF CONSTANTS 00051 32 15 O0052 56 13 00053 i 0002 'TWO. F 2.0 00054 2000 00055 OOOO 00056 0001 'TENO. F 1.0 00057 2000 00060 OOOO 00061 0004 •TEN1. F 10.0 00062 2400 O00S3 OOOO 00064 0007 'TENS. F 100.0 00065 3100 O0066 OOOO 00067 0012 *TEN3. F 1000.0 00070 3720 0007 1 OOOO 0007 2 0016 •TEN4. F 10OOO.O 0007 3 2342 OO074 OOOO 00075 002 1 'TENS, F 100000.0 00076 3032 O007 7 4000 O0100 7772 'TENM2. F 0.01 O0101 2436 00102 5605 O0I03 7767 'TENM3, F 0.001 00 104 2030 00105 4467 O0106 7763 'TENM4. F 0.0001 0OI07 3215 OOI 10 56 13 001 11 7760 'TENMS. F O.OOOOl 001 12 2476 001 13 1326 001 14 7755 'TENM6. F O.OOOCOt 001 15 206 1 OOI 16 5736 1 / 3ASE 0 001 17 0006 'ST. STARTD OOI 20 0210 1 :LDA 30 /GET RETURN FROM CALLER 0012 1 6400 1 rSTA 'GOBAK OOI 22 0255 00123 0200 1 :LOA O /GET POINTER TO ARO ADORESS 00124 1 100 < >ETX 'XR /SET TO THIS ROUTINES INDEX OOI 25 0007 00126 11 10 •ETB 'BASE /SET TO THIS ROUTINES BASE 00127 0004 E IASE 'BASE 00130 i 0101 I -DX 0. 1 RALF V62A 00131 OOOO 00132 6200 00133 07 10 00134 6202 00135 0005 00136 0602 00137 0010 00140 6400 00141 OOOO 00142 4000 00143 OOOO 00144 1100 00145 OOOO 00146 0030 00147 6204 00150 0031 0015 1 6205 00152 0032 00153 6206 00154 0033 00155 6 207 00156 0034 00157 6210 00160 0035 00161 6211 00162 0036 00163 6212 00164 0037 001G5 6213 00166 0205 00167 4217 00170 1204 0017 1 6203 00172 0206 00173 4220 00174 5203 00175 0207 00176 4221 00177 5203 00200 0210 00201 4222 00202 5203 00203 0211 00204 4223 00205 5203 00206 0213 00207 1000 00210 0215 00211 0002 00212 2216 4-SEP-BI PAGE 1-2 FSTA 'BASE FLOAX 'BASE FSTA IFST STAR1F FLOAX IFST ALN 0 FSTA RANGB I* /STORF FIRST ARC'S ADDRESS TRAP4 RDANA / / DECOOE THE VOLTAGE WORDS SETX V8A / XTA 0 /GET WORO A FSTA A XTA 1 /GET WORD B FSTA B XTA 2 /GET WORD C FSTA C XTA 3 /GET WORD D FSTA 0 XTA 4 /GET WORD E FSTA E XTA S /GET WORO F FSTA F XTA 6 /GET RANGE WORD FSTA RANGE XTA 7 /GET SIGN WORD FSTA SINE FLDA B FMUL 'TEN1 FADO A FSTA TL FLDA C FMUL 'TEN2 FADOM TL FLDA D FMUL #TEN3 FAOOM TL • FLDA E FMUL *TEN4 FADDM TL FLDA F FMUL 'TEN3 FADDM TL OECOOE FOR SIGN BIT FLDA SINE JEO #POS FCLA FSUB 'TENO RALF V63A 4-SEP-Bl PAGE 1-3 00213 1030 OA 'NEXT 00214 0216 0O215 0216 'POS, FLDA 'TENO 00216 7203 'NEXT. / FMULM TL / / OECODE FOR VOL 1 RETURN TO CALL: / OECOOING RANGE 00217 0212 FLDA RANGE 00220 1040 JNE 'RO 00221 0226 00222 0230 FLDA 'TENM6 00223 4203 FMUL TL 00224 1030 JA 'GOBAK 00225 0255 00226 2216 #R0. FSUB 'TENO 00227 1040 JNE 'RI 00230 0235 00231 0227 FLDA 'TENM5 00232 4203 FMUL TL 00233 1030 JA 'GOBAK 00234 0255 00235 2216 'RI, FSUB 'TENO O0236 1040' JNE 'R2 00237 0244 00240 0226 FLDA 'TENM4 0024 1 4203 FMUL TL 00242 1030 JA 'GOBAK 00243 0255 00244 22 16 »R2. FSUB 'TENO 00245 1040 JNE #R3 00246 0253 00247 0225 FLDA 'TENM3 00250 4203 FMUL TL 00251 1030 JA 'GOBAK 00252 0253 O0253 0224 #R3. FLDA 'TENM2 00254 4203 FMUL TL 0025S 1030 'GOBAK. JA . 00256 0255 /RANGE*. 000001 /RANGE-. 00001 /RANGE-.0001 /RANGE-.001 RALF V62A 4-SEP-Bl PAGE 1 / FILE MTIME.RA / / / FUNCTION MTIME(N) / / N - 0 RESET CLOCK. RETURNS ZERO / • 1 RETURNS TIME / SECTS TIMES ENTRY MTIME ooooo 1524 TEXT +MTIME* 00001 1115 00002 0500 / 00003 OOOO RCLOCK. 0 O0O04 6374 6374 /RESET CLOCK 00005 6203 CDF CIF 0 00006 5603 JMPX RCLOCK 00007 OOOO GTIME. 0 00010 6371 6371 /CLOCK READY 7 0001 1 52 10 JMP .-1 /NO TRY AGAIN 00012 6361 6361 /LOAD LOW ORDER CLOCK 1 00013 3232 OCA TIM1 00014 6362 6362 /LOAD HIGH ORDER CLOCK 00015 3234 DCA TIM3 00016 1232 TAD TIM1 00017 7010 RAR 00020 3232 DCA TIM1 0002 1 7004 RAL 00022 3233 DCA TIM2 00023 1234 TAO TIMS 00024 7010 RAR -00025 3234 DCA TIMS 00026 7004 RAL 00027 3233 DCA TIM4 00030 6203 CDF CIF 0 0003 1 5607 JMPX GTIME 00032 OOOO TIM1, 0 00033 OOOO TIM2, 0 00034 OOOO TIMS. 0 00035 OOOO TIM4. / 0 00036 OOOO / 'BASE. F 0.0 00037 OOOO 00040 OOOO 00041 OOOO 'XR. F 0.0 00042 OOOO 0004 3 OOOO 00044 OOOO N. F O.O 00045 OOOO 00046 OOOO 00047 OOOO TEMP. F O.O 00050 OOOO 00051 OOOO 00052 OOOO TEMPI. F O.O RALF V62A 4-SEP-B1 PAGE 1-1 00053 OOOO 00054 OOOO 00055 OOOt 0005G 2000 00057 OOOO 00060 00O2 00061 2000 00062 OOOO 00063 7763 00064 3215 00065 5613 00066 7777 00067 3215 00070 5613 0007 1 0006 00072 02 10 00073 6400 00074 0143 00075 0200 00076 1100 00077 0041 00100 1110 00101 0036 00102 0101 00103 OOOO 00104 6200 00105 07 10 00106 6202 00107 0005 00110 1100 00111 0032 00112 0602 00113 100O 0011 4 0145 00115 2205 00116 1000 00117 0123 00120 0002 00121 1030 00122 0143 00123 4000 00124 OO07 00125 0O30 00126 4206 00127 6203 00130 003 1 00131 1203 00132 4207 00133 6203 00134 0032 00135 4206 00136 6204 'ONE. F 1.0 'TWO. F 2.0 'TENM4. F O 0001 #4096. F 0.4096 / BASE 0 MTIME. STARTO FLOA 30 FSTA 'GOBAK /PUT IN RETURN LINK FLDA 0 SETX *XR SETB 'BASE BASE 'BASE LDX 0.1 FSTA 'BASE FLDAX 'BASE,1* FSTA N STARTF SETX TIM* FLDAX •JEO FSUB JEO FCLA JA GETIME. TRAP4 XTA FMUL FSTA XTA FADD FMUL FSTA XTA FMUL FSTA N RESET 'ONE GETIME 'GOBAK GTIME 0 'TWO TEMP 1 TEMP 'TENM4 TEMP 2 'TWO TEMPI /RESET CLOCK /GET TIME /RETURN AS N NOT EQUAL TO 0 OR RALF V62A 4-SEP-B1 PAGE 1-2 00137 0033 00140 1204 00141 4210 00142 1203 00143 1030 00144 0143 00145 4000 00146 0003 00147 0002 00150 1030 00151 0143 XTA 3 FADD TEMPI FMUL '4006 FADD TEMP 'GOBAK. JA / RESET. TRAP4 RCLOCK FCLA JA 'GOBAK RALF V62A 4 SEP-BI PAOE I / / / / / / / / / / / / / / / / / / / / / / F I L E IOTI.RA SUBROUTINE IOT(INST,AC,WAIT) CALLINQ SEQUENCE: CALL IOT (INST. AC. WAIT) <INST> • THE 8-MODE INSTRUCTION TO BE EXECUTED (NORMALLY AN IOT INST.) <AC> • THE VALUE OF THE AC WHEN THE INSTRUCTION IS EXECUTED. <WAIT> - NUMBER OF WAITING LOOPS BEFORE RETURNING TO CALLER THE VARIABLE <AC> IS CHANGED TO BE EQUAL TO THE VALUE OF THE SW AFTER THE LAS INSTRUCTION IS EXECUTED. THIS FEATURE ONLY OCCURS IF INST WAS A "LAS" .IF NOT. <AC> IS NOT CHANGED. <AC> CONTAINS SR ' UPON ENTRY BASE 0 /USE CALLER'S BASE PAGE SECTS IOT OOOOO 1100 SETX INST /SET IR TO 8-MODE COOOt 0045 OOOO 2 0006 STARTD OOOO 3 0650 FLDAX 0.9 /GET POINTER TO 1ST ARG 00004 6201 FSTA 3 /AND SAVE IT 00005 0005 STARTF 00006 0601 FLDAX 3 /GET THE 1ST ARG O0007 0020 ATX 0 /AND PASS IT TO TH 8-MODE CODE 0OO10 0006 STARTD 00011 0660 FLDAX 0.6 /GET THE POINTER TO THE 2ND ARG 00012 6201 FSTA 3 /AND SAVE IT O0013 0005 STARTF 00014 0601 FLDAX 3 /GET THE 2ND ARG 000<5 0024 ATX 4 /AND PASS IT TO THE 8-MODE CODE 0O016 4000 TRAP4 POP /GO TO THE 8-MODE 00017 0033 00030 0034 XTA 4 /GET CONTENTS OT AC 0O02 1 6601 FSTAX 3 /AND PASS TO THE CALLER O0022 0006 STARTD O0023 0670 FLDAX 0.7 /GET POINTER TO 3RD ARO 00024 6201 FSTA 3 /AND SAVE IT 00025 0003 STARTF 00026 0601 FLDAX 3 /GET WAITING LOOP NUMBER 0OO27 2400 'LOOP, FSUB *1 /COUNT DOWN UNTIL <• 0 OO030 0055 00031 1060 JGT 'LOOP 0O032 0027 00033 02 lO FLOA 30 /RETURN TO CALLER 0O034 0007 JAC /VIA LOCATION 30 0O033 OOOO / / POP. /EXECUTE THE POPS COMMAND RALF V62A 4-SEP-81 PAGE 1-1 OO036 7300 CLA CLL 00037 3247 DCA FLAG /CLEAR FLAG 00040 1243 TAD INST 0004 1 1260 TAD NLAS /INST • LAS 7 0004 2 7440 SZA 00043 3247 DCA FLAG /NO - SET FLAG 0004 4 125 1 TAD AC /GET AC 00015 OOOO INST. O /AND OUTPUT THE INSTRUCTION 00046 5261 / JMP NEXT O004 7 OOOO FLAG. 0 00050 OOOO TEMP, 0 0005 1 OOOO AC, 0 00052 0001 ONE, 1 /ARO POINTERS FOR IR'S 00053 0002 TWO, 2 00054 0003 THREE. 3 00055 OOOI '1 . F 1.0 00056 2000 00057 OOOO OOORO 0174 NLAS. 0174 0006 1 3250 NEXT. DCA TEMP 00062 1247 TAD FLAG 0O0G3 7440 SZA 00064 5276 JMP RETURN / I F INST .NE. LAS RETURN 0O065 1251 TAD AC /GET SWITCH REGISTER OOOGG 7 160 CMA CLL CML /SET UP FOR MASKING 000G7 325 1 OCA AC 00070 7010 RAR /ROTATE LINK UNTIL 0007 1 2251 ISZ AC /AC • O 00072 5270 JMP .-2 00073 0250 AND TEMP /MASK SWITCH WORD 00074 7640 SZA CLA 00075 2251 ISZ AC 0O076 7300 RETURN, CLA CLL 00077 6203 CDF CIF 0 OOI CO 5633 JMPX POP 

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-0065620/manifest

Comment

Related Items