UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Digital disk recorder for geophysics Chapel, Brian Ernie 1985

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

Item Metadata

Download

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

Full Text

DIGITAL DISK RECORDER FOR GEOPHYSICS by BRIAN ERNIE CHAPEL B . S c , The U n i v e r s i t y of B r i t i s h Columbia, 1980 A THESIS SUBMITTED IN PARTIAL,FULFILLMENT OF ) THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE i n THE FACULTY OF GRADUATE STUDIES (Department of Geophysics and Astronomy) We accept t h i s t h e s i s as conforming to the r e q u i r e d standard THE UNIVERSITY OF August (c) B r i a n E r n i e BRITISH 1985 Chapel, COLUMBIA 1985 In presenting t h i s thesis i n p a r t i a l f u l f i l m e n t of the requirements for an advanced degree at the University of B r i t i s h Columbia, I agree that the Library s h a l l make i t f r e e l y available for reference and study. I further agree that permission for extensive copying of t h i s thesis for scholarly purposes may be granted by the head of my department or by his or her representatives. I t i s understood that copying or publication of t h i s thesis for f i n a n c i a l gain s h a l l not be allowed without my written permission. Department of G e o p h y s i c s and Astronomy The University of B r i t i s h Columbia 1956 Main Mall Vancouver, Canada V6T 1Y3 D a t e 26 A u g u s t , 1985 i i A B S T R A C T T h i s t h e s i s d e s c r i b e s the design and t e s t i n g of a f l o p p y d i s k d r i v e based d i g i t a l r e c o r d e r . The device was o r i g i n a l l y b u i l t f o r a geomagnetic r e s e a r c h p r o j e c t , but i s a l s o s u i t a b l e f o r other phenomena with time s c a l e s from f r a c t i o n s of a second to approximately one day. The system i s designed s p e c i f i c a l l y to improve the r e l i a b i l i t y f o r long-term o b s e r v i n g programs and to enhance the e f f i c e n c y of the subsequent data a n a l y s i s procedures. Using an STD-Z80 BUS microcomputer, under the c o n t r o l of a F o r t h language program, the re c o r d e r s t o r e s d i g i t a l data on removable 8-inch f l o p p y d i s k s . T h i s t h e s i s e x p l i c i t l y addresses the is s u e of c o s t and p r o v i d e s the necessary d e t a i l f o r r e p r o d u c t i o n of the d e v i c e . A procedure i s d e s c r i b e d f o r p r e p a r i n g the a c q u i r e d data f o r a n a l y s i s using computing f a c i l i t i e s equiped with an a p p r o p r i a t e d i s k reader. A l s o presented i s a q u a n t i t a t i v e and q u a l i t a t i v e e v a l u a t i o n of the r e c o r d e r ' s performance when a p p l i e d to both s y n t h e t i c and n a t u r a l s i g n a l s . The l a t t e r i n c l u d e geomagnetically induced c u r r e n t s i n power t r a n s m i s s i o n l i n e s . i i i TABLE OF CONTENTS ABSTRACT i i TABLE OF CONTENTS i i i LIST OF TABLES v i LIST OF FIGURES v i i LIST OF PHOTOGRAPHS v i i i ACKNOWLEDGEMENTS ' ix Chapter 1: INTRODUCTION 1 1.1: Problem 2 1.2: Requirements 3 Chapter 2: HARDWARE 6 2.1: Media S e l e c t i o n 6 2.2: D e s c r i p t i o n 8 2.2.1: STD-Z80 BUS 12 2.2.2: MD-CC8 19 2.2.3: SPS 90T 19 2.2.4: HFPS 024 022 21 2.2.5: QumeTrak 824DC 21 2.2.6: MDX-FLPO 22 2.2.7: MDX-AIO 23 2.2.8: MDX-BCLK 24 - 2.2.9: MDX-DRAM16 25 i v 2.2.10: MDX-CPU2 25 2.2.11: MDX-DRAM32 29 2.2.12: 7904 29 2.2.13: DTM 35 2.2.14: PM 41 2.2.15: Packaging 46 Chapter 3: SOFTWARE 49 3.1: A l g o r i t h m 49 3.2: Language S e l e c t i o n 55 3.3: Program 57 3.3.1: mdx-aio_setup 61 3.3.2: mdx-bclk_setup 61 3.3.3: d o i t 63 3.3.4: r e c o r d 64 3.4: I n s t a l l a t i o n 67 3.5: Demultiplex 70 Chapter 4: EXPERIMENTS 72 4.1: Labo r a t o r y T e s t s 72 4.2: Ingeldow T e s t s 83 4.3: W i l l i s t o n T e s t s 85 Chapter 5: CONCLUSION 92 V FOOTNOTES 102 BIBLIOGRAPHY 104 Appendix A: INSTRUCTIONS 105 Appendix B: PARTS LIST 109 Appendix C: PROMETHEUS LISTING 110 Appendix D: DEMULTIPLEX LISTING 120 Appendix E: INPUT DATA 127 Appendix F: OUTPUT DATA 128 v i LIST OF TABLES Table 2.1: STD BUS D e f i n i t i o n 14 Table 2.2: STD-Z80 BUS D e f i n i t i o n 15 Table 2.3: CC-8 Power Connections 20 Table 2.4: Memory Type S e l e c t i o n 26 Table 3.1: DDT Changes 68 v i i LIST OF FIGURES F i g u r e 2.1: System Overview , 10 F i g u r e 2.2: STD BUS Example 13 F i g u r e 2.3: 2.5 MHz M o d i f i c a t i o n 28 F i g u r e 2.4: 7904 Overview 32 F i g u r e 2.5: 7904 User Area 33 F i g u r e 2.6: 7904 User Components 34 F i g u r e 2.7: DTM Input Schematic 37 F i g u r e 2.8: DTM Output Schematic 38 F i g u r e 2.9: DTM Front Components 39 F i g u r e 2.10: DTM Back Components 40 F i g u r e 2.11: PM Schematic 43 F i g u r e 2.12: PM Components 44 F i g u r e 2.13: C o n t r o l Panel • 45 F i g u r e 3.1: Disk Format 50 F i g u r e 3.2: Data Format 52 F i g u r e 3.3: Prometheus Flowchart 54 F i g u r e 3.4: Memory Map 58 F i g u r e 3.5: I/O Map 59 F i g u r e 4.1: D i g i t i z a t i o n Q u a n t i z a t i o n 74 F i g u r e 4.2: D i g i t i z a t i o n Experiment 75 F i g u r e 4.3: D i g i t i z a t i o n T r a n s i t i o n s 77 F i g u r e 4.4: Conversion Accuracy 82 F i g u r e 4.5: Trace Expansion 84 F i g u r e 4.6: Sample Events 87 v i i i LIST OF PHOTOGRAPHS Photo 2.1: Recorder Modules 11 Photo 2.2: Recorder E n c l o s u r e 47 Photo 2.3: Recorder i n Operation 48 ACKNOWLEDGMENTS I would l i k e to thank Prof. T. Watanabe f o r h i s guidance and enthusiasm. V a l u a b l e c r i t i c i s m s of the manuscript were made by P r o f . R. D. R u s s e l l . I would a l s o l i k e to thank Dr. R u s s e l l f o r i n t r o d u c i n g me to the STD BUS and to F o r t h . T h i s work was made p o s s i b l e with the generous f i n a n c i a l support of the Science C o u n c i l of B.C. and the v a l u a b l e t e c h n i c a l support of R.- M. Shier and the B.C. Hydro and Power A u t h o r i t y . I am g r e a t f u l to Dr. B. B. Narod f o r many t e c h n i c a l d i s c u s s i o n s and to members of t h i s department's s t a f f and the s t a f f of B.C. Hydro and to f e l l o w graduate students f o r t h e i r c o o p e r a t i o n . I would a l s o l i k e to thank F. Awofeso f o r reminding me, R. M i l l e r f o r s e t t i n g an example, and e s p e c i a l l y D. G i l l i a m f o r having f a i t h and f o r c h e e r i n g me on. 1 Chapter 1 : INTRODUCTION R e c o r d i n g equipment i s e s s e n t i a l for almost e v e r y l o n g - t e r m g e o p h y s i c a l o b s e r v a t i o n - g r a v i t y , m i c r o s e i s m s , weather m o n i t o r i n g , and so f o r t h . The s i m p l e s t r e c o r d i n g t echn ique i s to have a person r e p e a t e d l y read the n e c e s s a r y in s t ruments and w r i t e down the r e s u l t s . The many d i s a d v a n t a g e s to t h i s method a r e o b v i o u s . Though a tremendous improvement, the use of c h a r t paper or p h o t o g r a p h i c f i l m s t i l l has severe l i m i t a t i o n s , p a r t i c u l a r l y w i th r e g a r d to subsequent m a n i p u l a t i o n of the a c q u i r e d d a t a . D e s p i t e the f l e x i b i l i t y p r o v i d e d by magnetic r e c o r d e r s , inadequacy of such equipment has been the most severe o b s t a c l e for a v a r i e t y of l o n g - t e r m o b s e r v a t i o n s i n g e o p h y s i c s . I t was the most s e r i o u s problem i n geomagnetic o b s e r v a t i o n done as a space p h y s i c s r e s e a r c h program by the Geophys i c s and Astronomy Department of the U n i v e r s i t y of B r i t i s h C o l u m b i a . A p p r o x i m a t e l y 20% of o b s e r v a t i o n s made wi th the e x i s t i n g i n s t r u m e n t a t i o n were l o s t at the r e c o r d i n g s i t e . These s i g n a l s were e i t h e r t o t a l l y unusable or not r e c o r d e d at a l l because of equipment f a i l u r e . The s i g n a l s t h a t were s u c c e s s f u l l y r e c o v e r e d are i n a form tha t 2 r e q u i r e s awkward c o n v e r s i o n for use on the UBC Computing Centre f a c i l i t i e s and i s very d i f f i c u l t to use w i th a microcomputer . 1.1: Problem The items of equipment r e s p o n s i b l e for d i f f i c u l t i e s in the f i e l d are s low-speed FM r e c o r d e r s t h a t put 7 channe l s of ana log d a t a onto h a l f - i n c h wide magnetic t a p e . S e v e r a l u n i t s are a v a i l a b l e but the ones t h a t have proved most r e l i a b l e are a v e r s i o n of the model 17373 made by G e o t e c h . T h i s d e v i c e uses a tape speed of 10/160 inches per second so i t f i l l s a s tandard 3,600 foot tape in e x a c t l y 8 d a y s . There have been many i n s t a n c e s of v a l u a b l e data be ing l o s t due to mechanica l f a i l u r e of these r e c o r d e r s . A 1977 e x p e d i t i o n to R i v e r t o n , Mani toba as p a r t of the I n t e r n a t i o n a l Magnetospher i c Study (IMS) was s e v e r e l y hampered by the c l u t c h s l i p p i n g and c a u s i n g the r e c o r d e r to s t o p . An IMS t r i p to L i t t l e Grand R a p i d s , Mani toba in the f o l l o w i n g year was p lagued by s i m i l a r prob lems . Because of i n t e r m i t e n t b e h a v i o r of the tape t r a n s p o r t mechanism, a lmost no u s a b l e data came from a s t a t i o n set up at Pemberton, B r i t i s h Columbia in the summer of 1979. I t may be that the problem a r i s e s from the d i f f i c u l t y of p r o v i d i n g adequate l u b r i c a t i o n to the m e c h a n i c a l components at such low speeds . A s i d e from the f a c t t h a t they o f t e n f a i l to operate c o r r e c t l y , one of the most obv ious d i s a d v a n t a g e s of these r e c o r d e r s i s t h a t they are very e x p e n s i v e , c o s t i n g a p p r o x i m a t e l y $20,000 e a c h . They are a l s o expens ive to 3 operate. Tapes c o s t $70 each, a recent tape t r a n s p o r t r e p a i r b i l l was f o r $3,000, and i t i s always most r e g r e t a b l e when the expenses of f i e l d work do not r e s u l t i n the c o l l e c t i o n of usable d a t a . Other problems i n d i r e c t l y a s s o c i a t e d with the use of these tape r e c o r d e r s are those r e l a t e d to the l a b o r a t o r y playback equipment. T h i s c o n s i s t s mainly of a $40,000 Sangamo model 3500 tape recorder which has cost thousands of d o l l a r s f o r r e p a i r s to i t s tape t r a n s p o r t mechanism. 1.2: Requirements Aside from reducing cost and improving r e l i a b i l i t y , the s p e c i f i c o b j e c t i v e s f o r the new recorder were d i c t a t e d by i t s intended a p p l i c a t i o n . The s i g n a l s t h a t i t d e a l s with are n a t u r a l magnetic v a r i a t i o n s and geomagnetically induced c u r r e n t s (GIC). T h e i r c h a r a c t e r i s t i c s , however, are common to many other types of g e o p h y s i c a l s i g n a l s . The phenomena s t u d i e d at the U n i v e r s i t y of B r i t i s h Columbia range from d i u r n a l GIC v a r i a t i o n s to m i c r o p u l s a t i o n s with p e r i o d s as short as a f r a c t i o n of a second. In a s p e c i f i c o b s e r v i n g program f o r which we intended to use the recoder, s i g n a l s have p e r i o d s of 20 seconds or l o n g e r . T h e r e f o r e , a sampling i n t e r v a l of 10 seconds was a requirement, as was a f l a t response down to 0 Hz (DC). The l a t t e r i s a l s o important, e s p e c i a l l y f o r a long-term monitoring of GIC which has been of p a r t i c u l a r i n t e r e s t i n recent y e a r s . Most of the data i s c o l l e c t e d at l o c a t i o n s that are beyond 4 a d i s t a n c e of easy d a i l y access from the U n i v e r s i t y of B r i t i s h Columbia. The r e c o r d i n g tapes of the o l d system are u s u a l l y , changed by v o l u n t e e r s t a t i o n keepers who are a s s o c i a t e d with the r e c o r d i n g s i t e . Experience i n d i c a t e s that asking these i n d i v i d u a l s to a t t e n d to the machine no more o f t e n than once a week does not c h a l l e n g e the g o o d w i l l through which they lend t h e i r i n v a l u a b l e a s s i s t a n c e . Seven days i s a l s o convenient because i t f i t s most e a s i l y i n t o the working schedules of the s t a t i o n keepers. However, the c a p a c i t y to r e c o r d f o r at l e a s t one e x t r a day i s important because i t a l l o w s the person to take h o l i d a y s because he or she does not have to r e p l a c e the r e c o r d i n g media at an exact time on a c e r t a i n day of the week. GIC o b s e r v a t i o n s u s u a l l y i n v o l v e the measurement of only one q u a n t i t y but f o r m i c r o p u l s a t i o n s the three orthogonal components of the l o c a l magnetic f i e l d must be recorded s i m u l t a n e o u s l y . So, the time between media changes in the new recorder had to accommodate at l e a s t 18 samples per minute f o r 8 c o n s e c u t i v e days, a t o t a l of 207,360 v a l u e s . When tapes of zero input s i g n a l from e x i s t i n g r e c o r d e r s are played back, the output has a t y p i c a l peak-to-peak noise of about 25 m i l l i v o l t s . Since the l a r g e s t input v o l t a g e range that these tape r e c o r d e r s can accomodate i s ±2.5 v o l t s , t h i s g i v e s a s i g n a l - t o - n o i s e r a t i o of 40 dB. The new recorder needed a dynamic range of at l e a s t as much as t h i s to maintain or improve the s i g n a l - t o - n o i s e c h a r a c t e r i s t i c s of recorded data. Another requirement, p r a c t i c a l and d i f f i c u l t to implement, was that the recorder be easy to use by s t a t i o n keepers who 5 t y p i c a l l y get about 15 minutes of i n s t r u c t i o n along with a one page o p e r a t i n g procedure, and a phone number at which to c a l l us f o r a s s i s t a n c e . The e n t i r e d e sign process r e q u i r e d a n t i c i p a t i n g the necessary operator i n t e r v e n t i o n f o r every imaginable s i t u a t i o n . The importance of "user f r i e n d l i n e s s " cannot be over emphasized. To be of any value f o r f u t u r e a n a l y s i s , the recorded n a t u r a l phenomena must be accompanied by r e l i a b l e time s i g n a l s . In the o l d method, using an analog r e c o r d e r , at l e a s t one of the seven channels was used to re c o r d a puls e d time code on the tapes. The pu l s e s were p r o v i d e d by a low frequency WWVB ra d i o r e c e i v e r and/or a de d i c a t e d d i g i t a l c l o c k which was mo d i f i e d by K. Hayashi of the U n i v e r s i t y of Tokyo to c r e a t e analog-coded time s i g n a l s . Each type of c l o c k caused some t r o u b l e . In some l o c a t i o n s the WWVB s i g n a l s are e c l i p s e d by mountainous t e r r a i n or are too weak to r e c e i v e because of d i s t a n c e from the t r a n s m i t t i n g s t a t i o n i n F o r t C o l l i n s , Colorado. The other c l o c k has a tendency to make e r r a t i c jumps in time and date due to n o i s e s p i k e s i n the s u p p l i e d power. Both of these d e v i c e s generate time marks that are normally deciphered by v i s u a l i n s p e c t i o n of ch a r t r e c o r d s . Decoding by computer i s d i f f i c u l t , though not i m p o s s i b l e as demonstrated by S. Watanabe of the Radio Research Labs of the Japanese M i n i s t r y of Posts and Telecommunications. I t was f o r these reasons t h a t the new recorder had t o inc l u d e a c l o c k which was not only more r e l i a b l e but capable of ge n e r a t i n g a code ready f o r a computer to read i n the same manner as the n a t u r a l geomagnetic s i g n a l s . 6 Chapter 2: HARDWARE S e v e r a l p o s s i b l e approaches to the q u e s t i o n of how the d e s i r e d r e c o r d e r should be b u i l t were c o n s i d e r e d b e f o r e any money was s p e n t . The most fundamental q u e s t i o n which had to be answered was the c h o i c e of r e c o r d i n g media , f o l l o w e d by the g e n e r a l na ture of the c o n t r o l l i n g mechanism. 2 . 1 : Media S e l e c t i o n I t would have been a lmost i d e a l to s t o r e f i e l d data d i r e c t l y onto 9 - t r a c k computer t a p e s . U n f o r t u n a t e l y t h i s was not p r a c t i c a l f or s e v e r a l r e a s o n s , the most o b v i o u s be ing c o s t . The l e a s t expens ive c o m m e r c i a l l y a v a i l a b l e d i g i t a l tape d r i v e was more expens ive than a s low-speed ana log tape r e c o r d e r . A l s o , such d e v i c e s cannot be t r a n s p o r t e d e a s i l y by one person and almost wi thout e x c e p t i o n they are in tended f o r use i n e n v i r o n m e n t a l l y c o n t r o l l e d rooms. The most s o p h i s t i c a t e d method g iven s e r i o u s c o n s i d e r a t i o n was the use of n o n - v o l a t i l e magnet ic bubble memory d e v i c e s . These would have had the advantage of be ing v e r y s m a l l and 7 l i g h t . U n f o r t u n a t e l y i t i s d i f f i c u l t to imagine a storage medium that c o u l d be more i n c o n v i e n t f o r t r a n s f e r r i n g data to the U n i v e r s i t y of B r i t i s h Columbia r e s e a r c h computer. A very strong p o s s i b i l i t y was the c h o i c e of d i g i t a l c a s s e t t e tapes used with Geotech M i c r o c o r d e r s by the U n i v e r s i t y of B r i t i s h Columbia seismology group. Though l e s s expensive than slow-speed analog tape r e c o r d e r s , the major disadvantage of t h i s approach i s t h a t the data c a s s e t t e s are no e a s i e r to use than the present analog tapes. Though the c a s s e t t e s c o n t a i n data i n d i g i t a l form, that i n f o r m a t i o n must s t i l l be t r a n s f e r r e d to 800 bpi tapes in the l a b before being moved to the Computing Centre. The r e c o r d i n g medium f i n a l l y chosen was the floppy d i s k . Because the UBC Computing Centre o n l y has f a c i l i t i e s f o r the 8-inch, s i n g l e d e n s i t y ones, they were the obvious c h o i c e f o r use i n a r e c o r d e r . Cost was c e r t a i n l y not a problem because a s i n g l e h i g h q u a l i t y d r i v e , capable of r e c o r d i n g on both s i d e s of an 8-inch f e x i b l e d i s k , has a r e t a i l p r i c e of about $600 and the d i s k s themselves c o s t l e s s than $7 each. Using the above mentioned requirements of being a b l e to r e c o r d 3 channels sampled every 10 seconds f o r 8 days (and s t o r e d as 2-byte words), a storage c a p a c i t y of 414,720 bytes was r e q u i r e d . T h i s i s 19% l e s s than the 512,512 bytes t h a t can be recorded on both s i d e s of an 8-inch f l o p p y d i s k u s i n g the popular, but i n e f f i c i e n t , IBM 3740 format supported at UBC. With a l l other f a c t o r s l e f t unchanged, t h i s g i v e s an e x t r a r e c o r d i n g time margin of more than one and a h a l f days. The f l o p p y d i s k a l s o s a t i s f i e s the ease-of-use requirement. The operator has to do 8 l i t t l e more than open and c l o s e a door on a d r i v e when changing d i s k s . There are no c o n f u s i n g tape t h r e a d i n g diagrams to f o l l o w . See Appendix A for complete d e t a i l s on the d i s k change procedure. Once they have been ret u r n e d to UBC, f l o p p y d i s k s only have to be c a r r i e d to the computing center before they can be manipulated l i k e the d i g i t a l tapes that are kept on the racks t h e r e . Another advantage of the d i s k s i s that they weigh only 56 grams each compared to 1,720 grams for an analog tape. T h i s makes them much cheaper to m a i l to UBC from the observing s i t e s . Though not an i n i t i a l requirement, f l o p p y d i s k s are the only medium that c o u l d e a s i l y be used with a microcomputer should t h a t be d e s i r e d as an a l t e r n a t i v e to the use of a mainframe computer f o r data r e d u c t i o n and a n a l y s i s . Equipment f o r i n t e r f a c i n g microcomputers to such t h i n g s as 9-track tape d r i v e s i s very r a r e by comparison. A l s o , u n l i k e the v a r i o u s forms of r e c o r d i n g tape, a f l o p p y d i s k allows almost immediate access to any p o r t i o n of data s t o r e d on i t . 2.2: D e s c r i p t i o n A f l o p p y d i s k d r i v e by i t s e l f i s of no use as a r e c o r d i n g d e v i c e . Among other t h i n g s , an a n a l o g - t o - d i g i t a l c o n v e r t e r i s e s s e n t i a l , as i s a means of c o n t r o l l i n g the d i s k d r i v e . While i t i s c o n c e i v a b l e that a l l d e s i r e d f u n c t i o n s c o u l d have been implemented with d i s c r e t e l o g i c , a microcomputer was used to achieve the d e s i r e d r e s u l t s . The l a t t e r approach was most c e r t a i n l y e a s i e r than the former would have been, and the f i n a l 9 r e s u l t was d e f i n i t e l y more f l e x i b l e . M i c r o c o m p u t e r c o n t r o l was seen to be p o s s i b l e i n t h r e e d i f f e r e n t f or m s: a c o m m e r c i a l l y a v a i l a b l e u n i t , a computer b u i l t from i n d i v i d u a l components , or a d e v i c e assembled from a s e l e c t i o n of manufactured c i r c u i t b o a r d s . The f i r s t approach would have meant b u y i n g a p e r s o n a l computer worth at l e a s t $2 ,000 . T h i s would i n c l u d e such t h i n g s as a v i d e o m o n i t o r and keyboard t h a t would not be r e q u i r e d i n the f i e l d u n i t s , thus add i ng to the expense w i t h o u t g a i n i n g any r e q u i r e d f u n c t i o n a l i t y . In a d d i t i o n to the added weight and f r a g i l i t y , t h i s might be more c o n f u s i n g for the s t a t i o n k e e p e r s . The i m p l i c i t presence of a BASIC language i n t e r p r e t e r i n some of these computers , p a r t i c u l a r l y the cheaper ones , would a l s o be a waste because the r e q u i r e d speed and p e r i p h e r a l c o n t r o l would r e q u i r e the use of a lower l e v e l l a n g u a g e . D e s i g n i n g a computer d e d i c a t e d t o the t a s k from i n d i v i d u a l components would have had a l o t of advantages over a commerc ia l u n i t . In p a r t i c u l a r , c o s t would be m i n i m a l and no space or weight would be squandered . However, t h i s would have taken much l o n g e r to complete and would have t u r n e d the whole endeavor i n t o more of an e n g i n e e r i n g f e a t than a g e o p h y s i c a l i n v e s t i g a t i o n . The a p p r o a c h f i n a l l y taken was t o assemble a microcomputer from the s m a l l e s t number of c o m m e r c i a l c i r c u i t boards as w e l l as hand-made o n e s . The r e q u i r e d major f u n c t i o n s were to be per formed by the commerc ia l c i r c u i t boards which were complemented w i t h o n l y t h r e e s i m p l e and very s p e c i a l i z e d boards that we b u i l t o u r s e l v e s . 1 0 SPS +12 9 0 T -i2 - t G N D -6 1 QUMETRAK 6 5 8 2 4 D C 2 + ? MOTOR "30 36 8 W l M D c 8 Wl M D X - F L P 0 MP X - A 1 0 ^ 10 M D X - B C L K a3 3L / - A T M D X - D R A M I 6 v - 7 v- -V A-M D X - C P U 2 M D X - D R A M 3 2 7 9 0 4 PI P2 GND +24 L H P F S 0 2 4 0 2 2 P3 D T M System Overview DP D F C E P4 P M A B F i g u r e 2. 1 12 Geomagnetic o b s e r v a t i o n s are u s u a l l y most v a l u a b l e i f they are made w i t h an a r r a y o f s t a t i o n s o p e r a t i n g s i m u l t a n e o u s l y . T h e r e f o r e i t i s v e r y d e s i r e a b l e to a c q u i r e the c a p a b i l i t i e s f or e a s i l y a s s e m b l i n g a l a r g e number of r e c o r d e r s . T h i s was a n o t h e r major f a c t o r t h a t a l lowed the ready-made boards to p r e c l u d e the use of hundreds of d i s c r e t e components s i n c e our system i s i n t e n d e d as a p r o t o t y p e of s i m i l a r r e c o r d e r s for such p u r p o s e s . F i g u r e 2.1 i s a b l o c k diagram of the new r e c o r d e r and Photo 2.1 shows some of i t s major components . A l l memory and I / O a d d r e s s e s ment ioned i n the f o l l o w i n g t ex t are hexadec imal v a l u e s . 2 . 2 . 1 : STD-Z80 BUS There are a number of f a m i l i e s of computer boards that are i n t e n d e d f o r use i n the manner i n d i c a t e d above . The STD BUS system from Mostek and P r o - L o g was the f i n a l and a lmost obv ious c h o i c e . I t was no more expens ive than any o t h e r system and d i d not take up an e x c e s s i v e amount of space ; What made the "Standard Bus" the c l e a r c h o i c e was the f a c t t h a t i t i s very w e l l s u p p o r t e d and p r e c i s e l y d e f i n e d by a l a r g e number of m a n u f a c t u r e r s . A l l but one of our boards are a c t u a l l y made f o r the STD-Z80 BUS. T h i s i s a s u p e r s e t of the o r i g i n a l STD BUS tha t s u p p o r t s the Mode 2 i n t e r r u p t s t r u c t u r e of the Z80 m i c r o p r o c e s s o r . T h i s does not s i g n i f i c a n t l y compromise the f l e x i b i l i t y of a v a i l a b l e modules because the Z80 i s by f a r the USER'S I N T E R F A C E P R O C E S S O R S •oes 280 WOO OTM£R RAM ROM •OLENOlO VALVV CED AMALOQ I/O TTTTTTTL. UART C O N T R O L PAWCL CRT OTHER MOUSTRtAJ. I/O O P T o - * N * v r TRtAC RELAY Ofl lVERS STD BUS I N T E R F A C E STD BUS Implementation. SOURCE: Pro-Log Corporation STD BUS Example F i g u r e 2. S T D BUS Pinouu with Signal Flow Referenced lo the Processor Card. C O M P O N E N T SIDE M N E M O N I C S 1 C N A L F L O W D E S C R I P T I O N C I R C U I T SIDE P I N M N E M O N I C S I C N A L F L O W D E S C R I P T I O N L O G I C P O W E R BUS • 5 V D C C N D V B B »l . In In In Logic Power (bussed) Logic Ground (bussed) Logic Bias Hi (-SV) • 5 V D C C N D VBB «2 In In In Logic Power (bussed) Logic Ground (bussed) Logic B i l l «2 (-5V) D A T A BUS D3 D2 D l DO In/Out I n / O u l In/Out I n / O u l Low-OrdeT D a u Bus Low-Order Data Bus Low-Order D a u Bus Low-Order Dala Bus D7 D6 D5 Di I n / O u i I n / O u i In/Out In /Ou i High-Order D a u Bus High-Order Data Bus High-Order D a u Bus High-Order D a u Bus A D D R E S S B U S A7 A 6 A3 At AS A 2 A l AO Out O u i O u i O u i O U I O U I O U I O U I Low L o w Low-Low' L o w Low-Low-Low Order -Order Order Order Order Order Order Older Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address B u i AIS A M A l ] A I 2 A l l AIO A9 A8 O u i Out Out Out O u i O u i O U I O U I High High High High High High High High • Order Order OrdeT Order Order Order Order Order Addreis Bus Address Bus Address Bus Address Bus Addreis Bus Addreis Bus Address Bus Address Bus C O N T R O L BUS WR» I O R Q « I O E X P R E F R E S H . S T A T U S ! • B U S A K * I N T A K * W A I T R Q * S Y S R E S E T ' C L O C K " P C O O u i Out I n / O u l O u i O U I O U I O U I In O U I O U I O U I Write lo Memory or I / O I / O Addreis Select I / O Expansion Refresh T i m i n g C P U Suius Bus Acknowledge Interrupt Acknowledge Wait Request System Reset Clock Irom Processor Priority Chain Out R D * M E M R Q * M E M E X M C S Y N C * S T A T U S 0* BUSRQ» I N T R Q . N M 1 R Q * P B R E S E T ' C N T R L * P Q O u i Out I n / O u i Out O u i In In In In In In Read Memory or I / O Memory Addresi Select Memory Expansion C P U Machine Cycle Sync. C P U S u i u i Bus Request Interrupt Request Nonmaskable Interrupt Push-Button Reset A U X T i m i n g Priority Chain In A U X I L I A R Y P O W E R BUS A U X C N D A U X *V In In A U X Cround (busied) A U X Poiitive (»I2V DC) A U X C N D A U X -V A U X Cround (busied) A U X Negative (-I2V DC) • Low-level active indicator SOURCE: Pro-Log Corporation STD BUS D e f i n i t i o n Table 2, 1 5 MD-STD-280 BUS DESCRIPTION BUS PIN MNEMONIC DESCRIPTION 1 »5V • 5Vdc System power 2 *5V + 5Vdc system power 3 GND Ground-System signal ground and DC return 4 GND Ground-System signal ground and DC return 5 -5V -5Vdc system power 6 -5V -5Vdc System power 7 D3 Data Bus (Tri-state, input/output, active high). D0-D7 constitute an 8 D7 8-bit bidirectional data bus. The data bus is used for data exchange 9 D2 with memory and I/O devices. 10 D6 11 D1 12 D5 13 DO 14 D4 15 A7 16 A15 Address Bus (tri-state, output active high). A0-A15 make up a 16-17 A6 bit address bus. The address bus provides the address for memory 18 A14 (up to 65K bytes) data exchanges and for I/O device data 19 A5 exchanges. I/O addressing uses the lower 8 address bits to allow 20 A13 the user to directly select up to 256 input or 256 output ports. AO is 21 A4 the least significant address bit. During refresh time, the lower 7 22 A12 bits contain a valid refresh address for dynamic memories. 23 A3 24 A11 25 A2 26 A10 27 A l 28 A9 29 AO 30 A8 31 /WR Write (Tri-state. active low) /WR indicates that the CPU data bus holds valid data to be stored in the addressed memory or I/O device. 32 /RD Read (Tri-state. output, active low) /RD indicates that the CPU wants to read data from memory or an I/O device The addressed I/O device or memory should use this signal to gate data onto the CPU data bus. 33 /IORO Input/Output Request (Tri-state. output, active low) The /IORQ signal indicates that the lower half of the address bus holds a valid I/O address for an I/O read or write operation. An /IORQ signal is also generated with an / M l signal when an interrupt is being acknowledged to indicate that an interrupt response vector can be placed on the data bus Interrupt Acknowledge operations occur during / M l time, while I/O operations never occur during / M l lime. 34 /MEMRQ Memory Request (Tri-state. output, active low) The /MEMRQ signal indicates that the address bus holds a valid address lor a memory read or memory write operation STD-Z80 BUS D e f i n i t i o n T a b l e 2 .2a 1 6 BUS PIN MNEMONIC DESCRIPTION 35 /IOEXP I/O Expansion, not used on Mostek MD cards (Normally strapped to ground on the Mostek motherboard) 36 /MEMEX Memory Expansion, not used on Mostek MD cards. (Normally strapped to ground on the Mostek motherboard) 37 /REFRESH REFRESH (Tri-state. output, active low) /REFRESH indicates that the lower 7 bits of the address bus contain a refresh address for dynamic memories and the /MEMRQ signal should be used to perform a refresh cycle for all dynamic RAMs in the system. During the refresh cycle. A7 is a logic 0 and the upper 8 bits of the address bus contain the I register. 38 /MCSYNC Not generated by the Mostek CPU cards /MCSYNC can be generated by gating the following signals: /RD + /WR - /INTAK. By connecting a jumper on the MDX-CPU. this line becomes /DEBUG (Input). /DEBUG is used in conjunction with the DDT-80 operating system on the MD-DEBUG card and the MD-SST card for implementing a hardware single step function When pulled low, the /DEBUG line will set an address modification latch which will force the upper three address lines A15. A14. and A13 to a logic 1. These address lines will remain at a logic 1 until reset by performing any I/O operation. 39 /STATUS 1 (M1) Machine Cycle One. (Tri-state. output, active low) / M l indicates that the current machine cycle is in the op code fetch cycle of an instruction. Note that during the execution of two byte opcodes. / M l will be generated as each op code is fetched These two byte opcodes always begin with a CBh, DDh. or FDh. / M l also occurs with /IORQ to indicate an interrupt acknowledge cycle. 40 /STATUS 0 Not used on Mostek MD cards. 41 /BUSAK Bus Acknowledge (Output, active low). Bus acknowledge is used to indicate to the requesting device that the CPU address bus. data bus. and control bus signals have been set to their high impedance state and the external device can now control the bus 42 /BUSRQ Bus Request (Input, active low). The /BUSRQ signal is used to request the CPU address bus. data bus. and control signal bus to go to a high impedance state so that other devices can control those buses. When /BUSRQ is activated, the CPU will set these buses to a high impedance state as soon as the current CPU machine cycle is terminated and the /BUSAK signal is activated. 43 /INTAK Interrupt'Acknowledge (Tri-state. output, active low). The /INTAK signal indicates that an interrupt acknowledge cycle is in progress, and the interrupting device should place its response vector on the data bus. The /INTAK signal is equivalent to an /IORQ during an / M l STDrZ80 BUS D e f i n i t i o n T a b l e 2 .2b 1 7 BUS PIN MNEMONIC DESCRIPTION 44 /INTRO Interrupt Request (Input, active low). The Interrupt Request signal is generated by I/O devices. A request will be honored at the end of the current instruction if the internal software controlled interrupt enable flip flop (IFF) is enabled and if the /BUSRQ signal is not active. When the CPU accepts the interrupt, an interrupt acknowledge signal /INTAK (/IORQ during an /Ml) is sent out at the beginning of the next instruction. 45 /WAITRQ Wait Request (Input, active low). Wait Request indicates to the CPU that the addressed memory or I/O device is not ready for a data transfer. The CPU continues to enter wait states for as long as this signal is active. This signal allows memory or I/O devices of any speed to be synchronized to the CPU. Use of this signal postpones refresh as long as it is held active. 46 /NMIRQ Non Maskable Interrupt Request (Input, negative edge triggered). The Non Maskable Interrupt Request line has a higher priority than the /INTRQ line and is always recognized at the end of the current instruction, independent of the status of the interrupt enable flip-flop. /NMIRQ automatically forces the CPU to restart to location 0066h. The program counter is automatically saved in the external stack so that the user can return to the program that was interrupted. Note that continuous WAIT cycles can prevent the current instruction from ending, and that a /BUSRQ will override a /NMIRQ. 47 /SYSRESET System Reset (Output, active low). The System Reset line indicates that a reset has been generated either from an external reset or the power on reset circuit. The system reset will occur only once per reset request and will be approximately 2>JS in duration. A system reset will also force the CPU program counter to zero, disable interrupts, set the 1 register to OOh. set the R register to OOh. and set Interrupt Mode 0. 48 /PBRESET Push Burton Reset (Input, active low). The Push Button Reset will generate a debounced system reset. 49 /CLOCK Processor Clock (Output, active low) Single phase system clock. 50 /CNTRt. Not used on Mostek MD cards 51 PCO Priority Chain Output (Output, active high) This signal is used to for a priority interrupt daisy chain when more than one interrupt driven device is being used. A high level on this pin indicates that no other devices of higher priority are being serviced by a CPU interrupt service routine PCI Priority Chain In (Input, active high). This signal is used to form a priority interrupt daisy chain when more than one interrupt driven device is being used A high level on this pin indicates that no other devices of higher priority are being serviced by a CPU interrupt service routine. 53 AUX GND Auxiliary Ground (Bussed) 54 AUX GND Auxiliary Ground (Bussed) STD-Z80 BUS D e f i n i t i o n Table 2.2c BUS PIN MNEMONIC DESCRIPTION 55 + 12V +12Vdc system power 56 -12V -12Vdc system power NOTES 1 Inpui-'Ouiout references o' each signal are marie wnn respect IO MDX -CPU module 2 The following signals have pull-up resistors / W H . / R O /IORO. /MEMRO. /REfRESH. /OEBUG. / M l . 'BUSRO. /INTAK. /INTRO. /WAITRO. /NMIRQ. /SYSRESET. /PBRESET ana /CLOCK SOURCE: Mostek Corporation STD-Z80 BUS D e f i n i t i o n Table 2. 2d 19 most popular processor used with the STD BUS. F i g u r e 2 . 2 (1) i s an example of an STD BUS system. Table 2.1 (2) d e f i n e s the STD BUS and Table 2 . 2 (3) i s a more d e t a i l e d d e s c r i p t i o n of the STD-Z80 BUS. Every STD BUS module i s b u i l t on a 165 mm long by 114 mm wide p r i n t e d c i r c u i t board. The back edge of each board i s etched with 56 p i n s corresponding to each of the 56 l i n e s d e f i n e d f o r the STD BUS. A l l of the odd numbered p i n s are on the component s i d e of the board and the even numbered p i n s are etched onto the opp o s i t e s i d e . The most obvious p h y s i c a l embodiment of the STD BUS i s the ca r d cage i n t o which a l l the cards of a system are i n s t a l l e d . I t c o n s i s t s of a p r i n t e d c i r c u i t backplane to which are at t a c h e d a number of 56 p i n c a r d edge connectors. The i n d i v i d u a l modules are plugged i n t o these connectors. The c a r d cage i s a l s o a suppo r t i n g frame f o r the car d s , with s l o t s t h a t guide and he l p h o l d each one i n p l a c e . 2 . 2 . 2 : MD-CC8 The c a r d cage used f o r the computer i s the model MD-CC8 from Mostek. Aside from a l l o w i n g communication among modules, i t i s a l s o used f o r power supply d i s t r i b u t i o n . A small t e r m i n a l s t r i p i s used f o r t h i s purpose, as d e s c r i b e d i n Table 2 . 3 ( 4 ) . 2 . 2 . 3 : SPS 90T The Standard Power model SPS 90T power supply can d e l i v e r 1.6A at +12V, 1.6A at - 1 2 V , and 7A at +5V s i m u l t a n e o u s l y . CONNECTOR DESIGNATION WIRE STD BUS PIN# COLOR PIN # 1.2 +5V RED . 1 . 2 3 ,4 ,5 GND BLACK 3,4 6 - 1 2 V PURPLE 56 7 +12V ORANGE 55 8 AUX GND BLACK 53,54 SOURCE: Mostek Corporation CC -8 Power Connections Table 2 . 21 F i g u r e 2.1 shows how a l l of these sources are d i s t r i b u t e d to the STD BUS c a r d cage and how the +5V i s connected to the disk d r i v e . The onl y m o d i f i c a t i o n made to the SPS 90T was the a d d i t i o n of a General E l e c t r i c M130LA20A metal oxide v a r i s t o r (GE-MOV) acro s s i t s AC input to suppress v o l t a g e t r a n s i e n t s . 2.2.4: HFPS 024 022 The Hammond HFPS 024 022 power supply can d e l i v e r 2.2A at +24V. Fi g u r e 2.1 shows how i t i s connected to both the motor and the p r i n t e d c i r c u i t board of the d i s k d r i v e . The only m o d i f i c a t i o n made to the HFPS 024 022 was the a d d i t i o n of a GE-MOV as d e s c r i b e d above f o r the SPS 90T. A 1.5A slow-blow fuse i s i n s t a l l e d i n s e r i e s with the l i v e s i d e of the three conductor AC power cable b e f o r e i t reaches e i t h e r of the power s u p p l i e s . 2.2.5: QumeTrak 824DC The fl o p p y d i s k d r i v e used f o r the recorder i s a QumeTrak 824DC from Qume. T h i s model was s e l e c t e d because i t was one of the m i n o r i t y of 8-inch d r i v e s capable of w r i t i n g to both s i d e s of a flop p y d i s k and because i t uses a DC motor. The l a t t e r f a c t o r was r e l e v a n t f o r two reasons. I t would make i t p o s s i b l e ( i f ever d e s i r e d ) to run the e n t i r e recorder from b a t t e r i e s without the use of an i n v e r t e r and would a v o i d s w i t c h i n g a higher v o l t a g e AC source which might r a d i a t e a st r o n g e r e l e c t r o m a g n e t i c t r a n s i e n t to m i c r o p u l s a t i o n sensors. The d i s k d r i v e communicates with the STD BUS module that c o n t r o l s i t through a 50 conductor ribbon c a b l e that i s a t t a c h e d to the back of the QumeTrack p r i n t e d c i r c u i t board with an edge connector. There are s e v e r a l "customer s t r a p p a b l e o p t i o n s " (5) which allow the user to a l t e r c e r t a i n f u n c t i o n s of the 824DC. These have been l e f t as s u p p l i e d by the manufacturer with two e x c e p t i o n s . Side S e l e c t Option 2 was implemented by p h y s i c a l l y c u t t i n g away a t i n y p i e c e of the p r i n t e d c i r c u i t board's f o i l p a t t e r n l a b e l e d "S2" and s o l d e r i n g together two spots on the f o i l p a t t e r n l a b e l e d "S3". T h i s i s necessary so that the second si d e of a d i s k i s used as i f i t was i n a second d i s k d r i v e . In Use Option 2 i s used so that the LED on the f r o n t of the d r i v e goes on only when the head i s moving or data t r a n f e r s are t a k i n g p l a c e . T h i s was accomplished by c u t t i n g t r a c e Z to form an open c i r c u i t and by s o l d e r i n g t r a c e s D and Y. A 1N4454 diode, reverse b i a s e d , i s i n s t a l l e d a c r o s s the wires s u p p l y i n g power to the motor. T h i s i s to h e l p p r o t e c t the MOSFET i n the Parameters Module (PM) by a b s o r b i n g very b r i e f s p i k e s that might occur when c u r r e n t i s removed from the windings of the motor. 2.2.6: MDX-FLPO A Mostek MDX-FLPO f l e x i b l e d i s k d r i v e c o n t r o l l e r , plugged i n t o s l o t number 8 of the c a r d cage, i s used to send data to the QumeTrak 824DC (6). I t has a 50 conductor p l u g on the f r o n t of the board i n t o which the ribbon c a b l e from the d i s k d r i v e i s plugged. There are a l s o s e v e r a l p a i r of Wire Wrap (7) pi n s on the board. P a i r s E12 and E13 are short c i r c u i t e d with small "jumper" plugs, s u p p l i e d by the manufacturer, i n order to giv e the board a base address of EO i n the Z80 I/O address space. P a i r s E2, E5, E7 and E8 have jumpers because the MDX-FLPO i s connected to an 8-inch d i s k d r i v e . There i s a l s o a s h o r t i n g plug a c r o s s p a i r E2 i n order to mimic the presence of two s i n g l e - s i d e d d r i v e s . T h i s i s done to s i m p l i f y the d i s k c o n t r o l software f o r the s i n g l e d r i v e c o n f i g u r a t i o n of t h i s p a r t i c u l a r c o n t r o l l e r and d i s k d r i v e combination. 2.2.7: MDX-AIO A Mostek MDX-AIO analog input/output module (8), plugged i n t o s l o t number 7 of the c a r d cage, i s used to convert analog input v o l t a g e s to d i g i t a l form. In a d d i t i o n to n a t u r a l s i g n a l s , i t a l s o d i g i t i z e s c e r t a i n p u l s e s from the MDX-BCLK. A 34 conductor ribbon cable b r i n g s s i g n a l s to a plug on the f r o n t of the module from the D i s t r i b u t i o n Panel (DP) and from the c l o c k module. P a i r s of p i n s on the input p l u g : 1, 2; 4, 5; 7, 8; 10, 11; 13, 14; and 17, 16; are connected to the sequence ( l e f t to r i g h t ) of double banana t e r m i n a l s on the D i s t r i b u t i o n Panel that correspond to the low (blue) and h i g h (yellow) s i d e s of analog input channels 1 through 6. Pins 20 and 22 are connected to p o i n t s E and C r e s p e c t i v e l y , of the Parameters Module. Pins 19 and 23 go to p i n s 3 and 1 of the small plug on the f r o n t of the c l o c k module. I t i s through these 4 connections that the MDX-AIO monitors the 1 second and 1/16'th second p u l s e s . S e v e r a l wire wrap connections must be made on the analog input/output board. Jumpers between the p a i r s of p i n s : 3, 4; 11, 12; and 13, 14; put the board's base address at 8FFB of the Z80 memory address space. The p a i r s : 27, 28; 45, 46; and 49, 50; are e l e c t r i c a l l y connected to s e l e c t the d i f f e r e n t i a l input mode. Connections between pins 33 and 34 and between p i n s 35 and 36 s e l e c t an input range of ±10 v o l t s . A jumper from p i n 23 to p i n 25 i s used to get 2's compliment coding of the d i g i t i z e d v a l u e s . Connections between the p a i r s of p i n s : 37, 38; 41, 42; 17, 19; and 20, 22; are made to c o n f i g u r e the d i g i t a l - t o - a n a l o g c o n v e r t e r s f o r 2's complement, ±10 v o l t s . However, the analog output c a p a b i l i t i e s of the module were only used d u r i n g t e s t i n g of e a r l y MDX-AIO c o n t r o l a l g o r i t h m s . 2.2.8: MDX-BCLK A Mostek MDX-BCLK b a t t e r y c l o c k and calendar module (9) i s plugged i n t o s l o t number 6 of the card cage. The s e t t i n g and reading of t h i s d e v i c e i s done s t r i c t l y through i t s c o n n e c t i o n to the STD BUS. I t c o n t a i n s b a t t e r i e s which charge when s u f f i c i e n t power i s a p p l i e d to the module and which can keep the c l o c k running f o r up to f i v e days i f the e l e c t r i c a l supply i s i n t e r u p t e d . The f r o n t of the board has a small p l u g which i n c l u d e s p i n s c a r r y i n g 1/16'th second, 1 second, 1 minute, and 1 hour p u l s e s . There are c e r t a i n user s e l e c t a b l e o p t i o n s a v a i l a b l e as jumper connections but the board i s used e x a c t l y as s u p p l i e d by the manufacturer. T h i s i n c l u d e s those p i n s i n t e n d e d f o r address d e c o d i n g because wi th none of them c o n n e c t e d , the module has a base address of FE i n the Z80 I / O addres s sp ac e . 2 . 2 . 9 : MDX-DRAM16 A Mostek MDX-DRAM16 dynamic memory board (10) i s p lugged i n t o s l o t number 5 of the c a r d cage . T h i s d e v i c e i s a lmost i d e n t i c a l to o ther MDX-DRAM modules of s i z e s r a n g i n g from 8K to 32K. I t d i f f e r s from the o t h e r s o n l y i n that i t i s p o p u l a t e d w i t h h a l f of the maximum number of 4116 c h i p s tha t i t can h o l d . C o n n e c t i o n s are made on the board from p i n H to p i n J and from p i n B to p i n C so tha t the remain ing c i r c u i t r y works w i t h t h i s p a r t i c u l a r amount of memory. The o n l y o ther m o d i f i c a t i o n made to the board was the s e t t i n g of the four element DIP s w i t c h l o c a t e d at the back of the b o a r d . Elements 1 and 3 are in the u p / o u t p o s i t i o n and e lements 2 and 4 are i n the down/ in p o s i t i o n so t h a t the board has a base address of A000 in the Z80 memory address space . 2 . 2 . 1 0 : MDX-CPU2 A Mostek MDX-CPU2 c e n t r a l p r o c e s s o r module (11) i s p lugged i n t o s l o t number 4. In our c a s e , the c h o i c e of s l o t s for the v a r i o u s boards i s s imply a matter of f i t t i n g the boards i n t o the c a r d cage as c o n v e n i e n t l y as p o s s i b l e . The CPU board comes w i t h 6 empty s o c k e t s for memory c h i p s . Each of those l a b e l e d U9, U14, U15 and U16 now c o n t a i n s a 4108 (1K x 8) s t a t i c RAM JUMPER CONNECTIONS FOR VARIOUS MEMORY TYPES FOR MEMORY TYPE: CONNECT JUMPER PINS: 2758 EPROM 1 to 8 3 to 10 5 to 4 7 to 9 2716 EPROM 1 to 8 3 to 2 5 to 4 7 to 9 2732 EPROM 1 to 8 3 to 2 5 to 4 7 to 11 MK4801 SRAM 1 to 8 3 to 9 5 to 4 7 to 6 MK4118 SRAM 1 to 8 3 to 9 5 to 4 7 to 6 MK4802 SRAM 1 to 8 3 to 2 5 to 4 7 to 6 MK34000 ROM 1 to 8 3 to.2 5 to 4 7 to 9 SOURCE: Mostek C o r p o r a t i o n Memory Type S e l e c t i o n T a b l e 2.4 c h i p . The sockets l a b e l e d U7 and U8 each c o n t a i n a 2716 (2K x 8) EPROM c h i p . The one i n U7 i s a s l i g h t l y m o d i f i e d copy of a Mostek MK6235 DDT PROM and the one in U8 i s an MK6286 DCF PROM from the same manufacturer. The r o l e of a l l these i n t e g r a t e d c i r c u i t memories i s d e s c r i b e d i n Chapter 3. T h i s module has many user s e l e c t a b l e o p t i o n s . Table 2.4 (12) shows the connections that s p e c i f y what type of dev i c e i s i n s t a l l e d i n each of the 6 a v a i l a b l e s o c k e ts. A short wire jumper between p i n s 3 and 4 of J3 causes the 6 user s u p p l i e d c h i p s to r e s i d e at t h e i r a p p r o p r i a t e p l a c e s i n the Z80 memory address space. T h i s p a r t i c u l a r c o n f i g u r a t i o n i s one of only four o p t i o n s that are a v a i l a b l e without having a new address decoder PROM programmed. . A jumper between p i n s 3 and 4 of J5 i s very important because i t s p e c i f i e s t h at when the CPU i s r e s e t i t i s to begin execution at memory adress E000 where the DDT EPROM i s i n s t a l l e d . None of the memory de v i c e s used i n t h i s computer are slow enough to r e q u i r e use of the wait s t a t e o p t i o n a v a i l a b l e on the CPU board because i t s c l o c k runs at 2.5 MHz. Except f o r the MDX-FLPO d i s k c o n t r o l l e r , a l l of the boards used i n t h i s computer are capable of working with our 4 MHz v e r s i o n of the MDX-CPU2. In order to accomodate the slow d i s k c o n t r o l l e r , the 4 MHz o s c i l l a t o r module on the CPU board was re p l a c e d with a 2.5 MHz o s c i l l a t o r c i r c u i t as shown i n F i g u r e 2.3. 820ft 0J04 uF 620 A 5.0 MHz . 5 MHz M o d i f i c a t i o n F i g u r e 2 . 2 . 1 1 : MDX-DRAM32 A Mostek MDX-DRAM32 dynamic memory module (13) i s i n s t a l l e d in s l o t number 3 of the c a r d cage . I t i s f u l l y p o p u l a t e d w i t h 4116 memory c h i p s and c o n n e c t i o n s are made on the board between p i n s H and J , p i n s B and C , and p i n s E and F so tha t the c i r c u i t r y works w i t h t h i s p a r t i c u l a r amount of memory. The o n l y o ther m o d i f i c a t i o n made to the module was the s e t t i n g of a l l 4 e lements of the DIP s w i t c h l o c a t e d at the back of the board to the up/on p o s i t i o n . T h i s g i v e s the e n t i r e b l o c k of memory a base address of 0000. 2 . 2 . 1 2 : 7904 A P r o - L o g 7904 Decoded I / O U t i l i t y C a r d (14) i s i n s t a l l e d i n s l o t number 1 of the c a r d cage but because of added wire wrap p i n s , i t o c c u p i e s the volume a l l o c a t e d for s l o t number 2 as w e l l . T h i s module i s used as an i n t e r f a c e between the computer and the hardware tha t was b u i l t f or communication w i t h the r e c o r d e r ' s human o p e r a t o r . I t i s a l s o used to g i v e the so f tware a means of c o n t r o l l i n g the d i s k d r i v e motor . A 40 c o n d u c t o r r i b b o n c a b l e a t t a c h e d to P1 near the middle of the c a r d and e x i t i n g from the f r o n t i s used to connect the 7904 to P3 of the D a t e / T i m e Module (DTM). S i m i l a r l y , a 24 conductor r i b b o n c a b l e a t t a c h e s P2 on the c a r d to P4 on the Parameters M o d u l e . F i g u r e 2.4 (15) i s a f u n c t i o n a l d iagram of the 7904. A jumper i s i n s t a l l e d between l o c a t i o n s SX and S5 and between l o c a t i o n s SY and SO to give the board a base address of AO i n the Z80 I/O address space. The 7904 i s mostly an empty e l e c t r o n i c breadboard. I t does however, c o n t a i n enough d i g i t a l l o g i c i n the form of decoders and b u f f e r s to make d e a l i n g d i r e c t l y with the STD BUS l i n e s unnecessary f o r most a p p l i c a t i o n s . The one e x c e p t i o n made to t h i s i n our a p p l i c a t i o n was the grounding of the IOEXP l i n e (STD BUS #35) to make t h i s module c o n s i s t e n t w i t h the Mostek STD-Z80 BUS modules. The 7904 occupies 8 s e q u e n t i a l l y addressed p o r t s so i t r e s i d e s at l o c a t i o n s AO through A7. I/O i s addressed by the Z80 with the l e a s t s i g n i f i c a n t h a l f of the same 16 address l i n e s that i t uses f o r memory. Whether the CPU wants to communicate with an I/O d e v i c e or a memory device i s s p e c i f i e d by whether the address p l a c e d on the bus i s accompanied by a s i g n a l on the IORQ l i n e or the MEMRQ l i n e . The former i s the one used by the decoded I/O u t i l i t y c a r d . The c a r d s e l e c t decoder i s only a t t a c h e d to address l i n e s A3 through A7 so that i t can d e t e c t the jumper s p e c i f i e d base address whereas both of the port s e l e c t decoders are a t t a c h e d to the three l e a s t s i g n i f i c a n t address b i t s so that they can determine which one of t h e i r 8 r e s p e c t i v e s t robe l i n e s to a c t i v a t e . Whether an input strobe or an output s t r o b e i s turned on f o r a p a r t i c u l a r I/O o p e r a t i o n i s determined by the presence of a s i g n a l on the RD l i n e or the WR l i n e r e s p e c t i v e l y . The 7904 p r o v i d e s 8 b i t s of b u f f e r e d output from, and input t o , the data bus. However, t h i s p a r t of the board i n c l u d e s no combinational l o g i c so that whatever i s on the data 31 bus i s always a v a i l a b l e on the output data l i n e s and whatever i s on the input data l i n e s w i l l go to the data bus. So, i t i s the r e s p o n s i b i l i t y of the designer to use the input and output s t r o b e s f o r proper management of input and output data l i n e s . A l s o provided on the c i r c u i t c a r d are a b u f f e r e d system r e s e t l i n e , a spare i n v e r t e d input NAND gate and p r i n t e d c i r c u i t paths f o r the +5V and the GND connections to the STD BUS. Fi g u r e s 2.5 and 2.6 show the a d d i t i o n s made to the 7904 on i t s breadboard area. U1 i s a 4514 COS/MOS 4- b i t strobed l a t c h and a 4-to-16 l i n e decoder-. I t l a t c h e s "on", whichever of i t s 16 output l i n e s corresponds to the bi n a r y value present on i t s 4 input l i n e s at the time i t s strobe l i n e goes low. These r e c e i v e the 4 hig h order output data b i t s from p o i n t s OD4, OD5, OD6 and OD7 on the 7904. I t s i n h i b i t c o n t r o l l i n e i s t i e d to ground because there i s no need to f o r c e a l l of i t s outputs to the same s t a t e . U5 i s a 7475 TTL 4- b i t b i s t a b l e l a t c h . I t s 4 input data l i n e s read the same 4 data b i t s as do those of U1 . A high-to-low t r a n s i t i o n of i t s 2 enable l i n e s l a t c h e s the value s from p o i n t s OD4, OD5 and OD6 to the Parameters Module v i a P2. Poin t OD7 i s s i m i l a r l y used except that an i n v e r t e d output from one of the l a t c h e s i s connected to the plug through a 10K r e s i s t o r . U4 i s a l s o a 7475. I t i s used i n the same way as U5 except that i t l a t c h e s the va l u e s of the lower 4 output data b i t s (from p o i n t s OD0, OD1, OD2 and OD3) without i n v e r t i n g any of them. U2 i s a 4042 COS/MOS quad c l o c k e d D l a t c h . I t i s used to t r a n s f e r values from the same output data p o i n t s as U4, sending 32 OAT*. BUS t> D0-D7 RD- <*>• A0-A2 WR" <*> IORO" IOEXP-ADDRESS A3-A7 SYSRESET* Q-7 / OUTPUT PORT SELECT DECODER I -c CARD SELECT DECODER I/O PROTOTYPING STROBE" « . « IN' BREAOBOARO OUTPUT STROBE* O RESET* I ;  •INDICATES ACTIVE LOW LOGIC SOURCE: Pro-Log C o r p o r a t i o n 7904 Overview F i g u r e 2.4 21 23 25 27 29 31 ? 22 ? 24 <p 26 ? 28 P 30 ? 32 II 9 I 0 8 " 7 6 • 5 4 I 8 i 7 2 0 | g Ul s 3 2 1 2 2 l 2 2 3 PI + 5v 24 f ODI OD0 OD2 o OD3 GND J +5v — 0 8 16 6 14 2 13 10 7 II 4 I 5 U 2 4 5 6 7 IS0 ISI 3 5 U 6 8 IS2 7 I S 3 9 1 I S 4 1 1 IS7 14 2 12 15 4 6 10 P 2 1— — 1 a I 22 I 21 23 35 35 17 15 13 I I 7904 U s e r A r e a 36 4 0 14 12 10 PI F i g u r e 2 . 5 7 9 0 4 7904 User Components Figure 2.6 them t o the Date/Time Module v i a P1. Because the p o l a r i t y l i n e i s t i e d h i g h , i t does t h i s whenever i t s c l o c k input i s high and l a t c h e s the value present when the c l o c k goes low. U3 i s a 4049 CMOS hex i n v e r t i n g b u f f e r . I t uses the output strobe from p o i n t OS0 to c o n t r o l the enable l i n e s of U4 and U5. I t uses the output strobe from OS7 to c o n t r o l the strobe input to U1 and the c l o c k input of U2. U6 i s a 4050 CMOS hex n o n - i n v e r t i n g b u f f e r used to make 3 of the 7904 output strobes (IS1, IS2, IS3) a v a i l a b l e to the Date/Time Module v i a P1 and to make 3 others (ISO, IS4, IS7) a v a i l a b l e to the Parameters Module v i a P2. Paths have been added to the 7904 which b r i n g data b i t s to ID0 through ID7 d i r e c t l y from the DTM and PM v i a the ribbon c a b l e s a t t a c h e d to P1 and P2, r e s p e c t i v e l y . Both plugs c a r r y +5V and GND l i n e s and P2 a l s o connects the +12V and PBRESET l i n e s to i t s ribbon c a b l e . 2.2.13: DTM A Date/Time Module (DTM) was c o n s t r u c t e d to simultaneously d i s p l a y the c u r r e n t date and time of the MDX-BCLK and to enable the operator to enter the i n i t i a l v a l u e s of these q u a n t i t i e s at setup time. An AND Model FE0601 l i q u i d d i s p l a y i s used to c o n t i n u o u s l y show the date as 6 7-segment 3/4 inch high d i g i t s . From l e f t to r i g h t they represent the l a s t 2 d i g i t s of the caland a r year, the two d i g i t s of the month of the year, and the two d i g i t s of the day of the month. Two decimal p o i n t s are a l s o d i s p l a y e d ; one separates the p a i r of year d i g i t s from the p a i r of month d i g i t s and the other separates the p a i r of month d i g i t s from the p a i r of day d i g i t s . Below the date d i s p l a y i s an i d e n t i c a l LCD panel that c o n t i n u o u s l y d i s p l a y s the c u r r e n t hours, minutes, and seconds as s i m i l a r p a i r s of d i g i t s but separated by c o l o n s r a t h e r than decimal p o i n t s . At the bottom of the f r o n t of the module, below the two l i q u i d c r y s t a l d i s p l a y s , i s a set of 6 thumbwheel switches, each of which can be set to the d i g i t s .0 through 9. At recorder setup time, these switches are set to the date and then to the time a c c o r d i n g to the same sequence of d i g i t s that i s used f o r the d i s p l a y s . The same switches are a l s o used at i n i t i a l i z a t i o n time to s e l e c t which of the 6 d i f f e r e n t i a l i n p uts to the A/D c o n v e r t e r are to be used and which i n t e r n a l channel d e s i g n a t o r s the operator wishes them to correspond t o . F i g u r e s 2.7 and 2.8 d e s c r i b e the DTM c i r c u i t r y and F i g u r e s 2.9 and 2.10 show how the module i s packaged. The ribbon c a b l e connector i s on the rear board with the three i n t e g r a t e d c i r c u i t s . The two boards are h e l d together with f i v e p l a s t i c spacers that leave room f o r the wire wrap c o n n e c t i o n s . Depending on the v a l u e s that the thumbwheel switches have been, set t o , some combination of the 4 SPST c o n t a c t s w i t h i n each of them w i l l be c l o s e d . The switches are arranged i n 2 - d i g i t p a i r s : SI, S2; S3, S4; and S5, S6; which, v i a the ribbon c a b l e and plugs P1 and P3, have t h e i r common t e r m i n a l s connected to the input s t r o b e s IS1, IS2 and IS3 r e s p e c t i v e l y , of the 7904 module. S i m i l a r l y , t h e i r data t e r m i n a l s are connected to input data l i n e s IDO through ID7. The switches S1, S3 and S5, which are used to s e l e c t the 10's d i g i t s of the 37 r-Or l— t>f ID CO -t>f O f - 1 CM rO CO -Of-CO CO i. i 4 Q — CMrQ 00 -KJ-* ' -KJ-CM co 8 rO to cn rO OJ rO CD CM CM rO r- — CM rO —' CM rO rO O rO <D CM CD 3 m r9 CM rO 8 CD CM CM rO r> — CM ro CO CM r-CM U3 CM m CM 00 3 m rO s> s; rO rO CD rO CM rO CO CM CM rO r- — CM rO . rO rO rO it 6 <> o o 6 6 6 o 6 sj- in io r~ <3" co i o r — 3 rO "° CM "° CM _» CM ~° CM CL DTM Input Schematic F i g u r e 2.7 38 U7 L C D U8 L C D 2 2 3 4 5 6 7 8 9 10 II 12 13 14 15 16 1 7 18 19 20 2 I 22 23 24 25 26 37 38 39 40 2 50 49 I 44 43 8 7 6 46 45 39 38 12 I I 10 41 40 35 34 16 15 14 37 36 48 47 4 3 18 32 3 26 25 24 23 22 28 27 30 29 20 19 2 3 4 5 6 7 8 9 10 1 1 12 13 14 15 16 1 7 18 19 20 2 1 22 23 24 25 26 35 36 37 38 39 40 48 47 4 3 2 50 49 44 43 8 7 6 46 45 10 4 40 I 35 34 16 15 14 37 36 30 29 20 19 18 32 3 I 26 25 24 23 22 28 27 39 38 12 U9 2 3 4 5 6 7 8 9 10 I I 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 35 36 37 38 39 40 DTM Output Schematic F i g u r e 2.8 39 DIODES WW M <D THU 2 e MBW 3 HE E 0 L 6 WIT 2 CH E S 8 e D T M FRONT DTM Front Components F i g u r e 2 .9 U 7 D T M B A C K DTM Back Components Figure date and time q u a n t i t i e s , share the high n i b b l e while the switches S2, S4 and S6 share the low n i b b l e . U7, U8 and U9 are 7211 4 - d i g i t CMOS d i s p l a y d e c o d e r / d r i v e r s . U7 generates the year and month d i g i t s for LCD1. U8 generates the day d i g i t s f o r LCD1 and the hour d i g i t s f o r LCD2. U9 generates the minute and second d i g i t s f o r LCD2. The 4 d i g i t s e l e c t inputs to each of the d i s p l a y d r i v e r s are used to s p e c i f y one of 12 LCD d i g i t s a c c o r d i n g to which one of the outputs from U1 on the 7904 i s l a t c h e d "on". The 4 data inputs to each of the d i s p l a y d r i v e r s share the 4 b i t s from the output data l i n e s OD0 through OD3 from the 7904 as l a t c h e d by U2 at the P1 end of the 40 conductor ribbon c a b l e . A l l but 3 of the connections between the 3 d i s p l a y d r i v e r s and the 2 l i q u i d c r y s t a l d i s p l a y panels are used to c o n t r o l i n d i v i d u a l d i s p l a y segments. The +5V and GND l i n e s come from the 7904 v i a P3. 2.2.14: PM A Parameters Module (PM) was c o n s t r u c t e d to serve a number of f u n c t i o n s . I t c o n s i s t s of two main p a r t s , an e l e c t r o n i c breadboard and a C o n t r o l Panel, j o i n e d by a bundle of wires. Both of these are d e s c r i b e d i n F i g u r e 2.11. The c i r c u i t board i s shown i n F i g u r e 2.12 and the C o n t r o l Panel i s shown i n F i g u r e 2.13. The PM has 4 thumbwheel swithces j u s t l i k e those of the DTM. The lower two of these, S9 and S10, are no longer used, having been i n s t a l l e d f o r d i a g n o s t i c purposes d u r i n g the development p r o c e s s . The top p a i r , S7 and S8, are used to s p e c i f y the number of channels to be recorded and the sampling i n t e r v a l , r e s p e c t i v e l y . The common t e r m i n a l s of these two switches are connected to the 7904 input strobe ISO v i a P2, the 24 conductor ribbon c a b l e and P4. T h e i r data t e r m i n a l s are s i m i l a r l y connected to input data l i n e s IDO through ID7, S7 being used by the low n i b b l e and S8 by the high n i b b l e . In the "D" p o s i t i o n S17 connects the A/D c o n v e r t e r to the 1 second p u l s e s while i n the "F" p o s i t i o n i t a t t a c h e s i t to the 1/16'th second s i g n a l . The toggle switch i s o r i e n t e d on the board so t h a t the "D" connection i s made i n the up p o s i t i o n . The purpose of S17 i s to s p e c i f y whether the numbers s e l e c t e d on S8 r e f e r t o a range of long or short i n t e r v a l s . U10 i s a 4013 CMOS dual type D f l i p - f l o p . Only h a l f of i t i s used and a l l unused inputs are t i e d low. The r e s e t l i n e i s connected to an RC network with a 0.68 second time constant so that when power i s a p p l i e d to the c i r c u i t , that input i s high and the f l i p - f l o p output i s low. T h i s causes LED D2 to turn on as a s i g n a l f o r the operator to press the system r e s e t button, S16. By the time t h i s a c t i o n i s taken the r e s e t l i n e i s low and the r e l e a s e of the button causes a low-to-high t r a n s i t i o n at the c l o c k i n p u t . The r e s u l t i n g high output turns D2 o f f . These, a l o n g with a l l other switches and LED's are l o c a t e d on the C o n t r o l Panel. V i a plug P4 and the 24 conductor ribbon c a b l e , the pushbutton and toggle switches, S11 through S15, are connected to p o i n t s IDO through ID5. They share the s i g n a l from IS7 on the 7904 module. The remaining LED's are a t t a c h e d to the outputs of U4 and U5 that l a t c h v a l u e s from p o i n t s OD0 2 2 V 2 8 ~S7 2 2 111 2 8 S9 SI0 8 A 4 A S8 i A 4 5 A 8 to c -* ro •a s HX-H>H-H>l sn SI2 1 3 - CONTROL PANEL SI4 - w -P4 o A « B 0.68[iF I0K' 10K A A V 1M 14 U I 0 6 7 8 9 10 II 1000. S I 7 C o , r -E o--<>D rt -of D2 SI6 g i t . . ^ 2 V 2 2 2 2 2 23 24 3 13 14 15 16 17 18 19 A B I0K Q l a SLOW 3 8 Channels Interval F A S T I0K 0 U n u s e d 0 • • >2_ S wi t cheSr^ U I 0 PM PM Components O R E S E T m 45 (Sfl (&} (®1 2 3 CONTROL PANEL O OK? O NEW DATE O NEW T I M E O S T A R T C L O C K O START R E C O R D I N G O NORMAL O HOLD HOLD F I N I S H ® C O N T I N U E CON T I N U E C o n t r o l Panel F i g u r e 2.13 through 0D6. When i t i s necessary to turn on the d i s k d r i v e motor, the output data l i n e 0D7 from the 7904 i s used to turn o f f Q1 and consequently to turn on Q2. P o i n t s A and B, at the output of Q2 are i n s e r i e s with the +24 v o l t power supply and the motor. D1 p r o t e c t s Q2 from r e v e r s e s p i k e s when the motor i s turned o f f . The +12V l i n e f o r the NPN t r a n s i s t o r and the MOSFET comes onto the board from the 7904 v i a P4, as do the +5V and GND l i n e s . 2.2.15: Packaging The e n t i r e recorder i s e n c l o s e d w i t h i n a Zero Centurion s u i t c a s e s t y l e aluminum e n c l o s u r e shown i n Photo 2.2. The power s u p p l i e s , d i s k d r i v e , and c a r d cage are h e l d i n place by metal s t r a p s that are a t t a c h e d to a 3/4 inch plywood base. The base s i t s on the bottom of the c a b i n e t and i s wedged in with more metal s t r a p s . The C o n t r o l Panel s i t s on top of the Standard power supply. The tops of the Hammond power supply and the d i s k d r i v e are both f i t t e d with t h i n metal covers f o r t h e i r own p r o t e c t i o n and f o r operator s a f e t y . The Date/Time Module and the Parameters Module are hinged to the i n s i d e of the rim of the c a b i n e t . When i n use, the DTM i s p l a c e d on top of the d i s k d r i v e to g i v e access to the D i s t r i b u t i o n Panel which s i t s below i t d u r i n g t r a n s i t . The AC power cor d i s s t o r e d i n f r o n t of the Standard power supply and i s accessed by t e m p o r a r i l y l i f t i n g up the Parameters Module. Photo 2.3 shows the r e c o r d e r ready to be used. co Chapter 3: SOFTWARE Two computer programs had to be w r i t t e n f o r the equipment d e s c r i b e d above to become a f u n c t i o n i n g g e o p h y s i c a l instrument. One, a r b i t r a r i l y c a l l e d Prometheus, r e s i d e s w i t h i n the d i g i t a l r e c o rder and enables the device to c o n t r o l i t s e l f . The other, c a l l e d Demultiplex, i s on the UBC General System computer and i s used to convert the recorded data i n t o a simple format f o r a n a l y s i s by other programs. 3.1: Algor ithm The general d e s c r i p t i o n of the d i g i t a l r e c o r d e r ' s i n t e r n a l o p e r a t i o n evolved i n p a r a l l e l with plans f o r the nature of i t s hardware. Once the idea of w r i t i n g t o IBM 3740 format f l e x i b l e d i s k s with a modular Z80 microcomputer had been f i n a l i z e d , i t became p o s s i b l e to approach the q u e s t i o n of how to accomplish t h i s . The r e s u l t was p r i m a r i l y determined by the d i s k format and the data format. F i g u r e 3.1 shows the IBM 3740 d i s k format. Each s i d e i s d i v i d e d i n t o 77 c o n c e n t r i c t r a c k s , numbered (toward the ce n t e r ) DISK FORMAT Disk : Side A Side B Side: ( View l o o k i n g down on d i s k w i t h i n d r i v e . ) ( L a b e l s are on s i d e f a c i n g upwards. ) Manufacturer's Labe l • - - ^ D i s k ^ - V ' ' * wi th in VN j a c k e t ) \ \ D a t a I d e n t i f i c a t i o n L a b e l \ — A & I n d e x H o l e s D r i v e H o l e s / / / / w r i t e / P r o t e c t ^ N o t c h D i s k Format F i g u r e 3.1 51 from 00 to 76. In most a p p l i c a t i o n s , there are c e r t a i n r e s t r i c t i o n s on the use of t r a c k 00 and on the four innermost ones. These do not apply to our work because the degree of c o n t r o l o f f e r e d by both the MDX-FLPO and the Computing Centre equipment used f o r reading the d i s k s a l l o w s us to use those t r a c k s i n the same way as the o t h e r s . Each t r a c k i s d i v i d e d i n t o 26 s e c t o r s , numbered from 1 to 26, of 128 bytes each. The storage of 10-bit data v a l u e s from the MDX-AIO was p o t e n t i a l l y awkward or wasteful because a l l the data on d i s k i s arranged as bytes of 8 b i t s each. To have to use 2 bytes f o r every 10-bit value would have been u n f o r t u n a t e . W r i t i n g a l l the 10-bit words end-to-end without regard f o r where they would be broken by byte boundaries would c e r t a i n l y have been p o s s i b l e , and not p a r t i c u l a r l y d i f f i c u l t to program. However, having the data staggered i n t h i s way would have been a d e f i n i t e nuisance as i t would have made such v a l u a b l e t o o l s as d i s k and f i l e dump programs v i r t u a l l y u s e l e s s f o r quick and simple i n s p e c t i o n of the data. The s o l u t i o n to the data format q u e s t i o n came from the i n c o r p o r a t i o n of the time s i g n a l s . These c o n s i s t of the 6 p a i r s of BCD d i g i t s r e p r e s e n t i n g the year, month, day, hours, minutes and seconds. Using a p a i r of bytes f o r each 10-bit data value would be a waste of 6 b i t s per word. However, a s i n g l e decimal d i g i t can be represented with o n l y 4 b i t s , so a simple yet e f f i c i e n t s o l u t i o n was to i n t e r l a c e the time and v o l t a g e data as shown in F i g u r e 3.2. Each of the 6 time d i g i t s i s s t o r e d s e q u e n t i a l l y at the high end of a 16-bit word that has a corresponding v o l t a g e value s t o r e d i n i t s 10 l e a s t DATA FORMAT Track: 26 s e c t o r s I I 1 I I I I I I M I I M I I I I I I T I I I I I Sector: I I 10 groups & 1 block 4 = J L U Group: Block: Word: 6 words r H R M N S c II 1 1 1 8 bytes YR MO DY 1 • I n t e r v a l # Channels 2 bytes time d i g i t 1 0 - b i t s i g n a l value 1 Data Format F i g u r e 3.2 s i g n i f i c a n t b i t s . Only 2 b i t s are wasted i n between. Since the time changes f a r more o f t e n than the date, the l a t t e r does not have to be recorded n e a r l y as o f t e n . With each word occupying 2 bytes, the 128 bytes of each s e c t o r can accomodate 10 whole 6-word groups. T h i s leaves 8 bytes at the end of each s e c t o r that are used to s t o r e not only the date but the number of channels and the sampling i n t e r v a l as w e l l . The 6 d i g i t s of the date are s t o r e d with one p a i r of BCD d i g i t s i n each of 3 b y t e s . The number of channels and the sampling i n t e r v a l (or r a t e ) are s t o r e d as 1 byte each. When the recorder i s s t a r t e d up, the f i r s t t h i n g i t does i s input c e r t a i n parameters and i n i t i a l v alues as s u p p l i e d by the o p e r a t o r . I t then begins e x e c u t i n g an i n s t r u c t i o n loop which d i g i t i z e s a l l of the s p e c i f i e d inputs at the end of each sampling i n t e r v a l and s t o r e s them in memory. When enough data i s accumulated to f i l l a t r a c k , i t i s w r i t t e n to the d i s k . The operator may r e p l a c e a d i s k at almost any time although t h i s i s best done when the second s i d e i s almost f u l l . Should the operator be l a t e the recorder w i l l s t a r t r e c o r d i n g over the d i s k s t a r t i n g at the beginning of the f i r s t s i d e . T h i s p r e f e r e n c e f o r the p r e s e r v a t i o n of the most recent s i g n a l s i s a r b i t r a r y but i t i s simpler f o r the s t a t i o n keeper to deal with because the a l t e r n a t i v e would have been to suspend execution when a d i s k i s f u l l , thus making some a c t i o n necessary to s i g n a l resumption of the r e c o r d i n g p r o c e s s . The loop continues u n t i l e i t h e r a s i g n a l to do otherwise i s r e c e i v e d from the operator or power i s removed. F i g u r e 3.3 i s a f l o w c h a r t f o r the r e c o r d i n g a l g o r i t h m . PROMETHEUS FLOWCHART Operator s e t s a l l switches to t h e i r i n i t i a l v a l u e s , turns on on power, and presses RESET button. Read i n valu e s of a l l thumbwheel switches. IF l e s s than 5 channels are to be used, THEN e x t r a c t year from l a s t 2 thumbwheel swi t c h e s . D i s p l a y date and time. IF operator i n d i c a t e s date or time must be changed THEN r e s e t c l o c k . Read date from thumbwheel switches when operator presses a button. IF t h i s i s a l e a p year THEN set c l o c k a c c o r d i n g l y . Set month and day. Read time from thumbwheel switches when operator presses a button. Set hours, minutes and seconds. S t a r t c l o c k running when oprator p r e s s e s a button. S t a r t r e c o r d i n g when operator p r e s s e s a button. S t a r t d i s k d r i v e motor. Wait f o r i t to get up to speed. WHILE t e r m i n a t i o n of exe c u t i o n has not been requested DO Move recorder head to outermost t r a c k . Turn o f f motor. FOR track_number FROM 0 TO 76 DO FOR sector_number FROM 1 TO 26 DO IF i t i s almost time to f i l l a t r a c k THEN s t a r t the d i s k d r i v e motor ELSE IF h o l d switch i s on THEN suspend e x e c u t i o n u n t i l i t i s turned o f f . FOR t i m e _ d i g i t FROM 1 TO 6 DO D i s p l a y date and time. FOR scan_number FROM 1 TO 6/number_of_channels DO FOR channel_number FROM 1 TO number_of_channels DO D i g i t i z e c u r r e n t channel. Combine d i g i t i z e d v alue with c u r r e n t t i m e _ d i g i t . Store r e s u l t a n t 16-bit value i n next a r r a y memory . l o c a t i o n . FOR pulse_number FROM 1 TO s a m p l i n g _ i n t e r v a l DO WHILE a low-to-high c l o c k event has not occured D i g i t i z e p u l s e s i g n a l from c l o c k module. Write date, number_of_channels, and s a m p l i n g _ i n t e r v a l to end of data a r r a y . Move head to next t r a c k . F i l l t r a c k from data a r r a y i n memory. Stop motor. Switch to opposite s i d e of d i s k . Terminate e x e c u t i o n . Prometheus Flowchart F i g u r e 3.3 Normally, the motor of an 8-inch floppy d i s k d r i v e r o t a t e s whenever the computer i t i s a t t a c h e d to i s turned on. Since our a p p l i c a t i o n r e q u i r e s the computer to run almost c o n t i n u o u s l y , the c i r c u i t r y d e s c r i b e d in Chapter 2 i s used to keep the motor t u r n i n g only when necessary i n order to prevent i t from wearing out. T h i s i s under c o n t r o l of the software. The motor i s a c t u a l l y s t a r t e d w e l l before i t i s needed i n order to assure t h a t i t i s up to i t s r e q u i r e d speed by the time data needs to be w r i t t e n . 3.2: Language S e l e c t i o n C a r e f u l c o n s i d e r a t i o n had to be given t o the language i n which the d i g i t a l r e c o r d e r ' s c o n t r o l program was to be w r i t t e n . Program s i z e , e x ecution speed and ease of programming were a l l f a c t o r s c o n t r i b u t i n g to the f i n a l d e c i s i o n . A c c o r d i n g to the manufacturers' s p e c i f i c a t i o n s (16), i t takes l e s s than 125 m i l l i s e c o n d s f o r the d i s k d r i v e and i t s c o n t r o l l e r t o f i l l one t r a c k with data and at most 250 m i l l i s e c o n d s t o get to the begin n i n g of the next t r a c k . Since the STD BUS has to be used f o r t r a n s f e r r i n g data from memory to the d i s k c o n t r o l l e r , the A/D c o n v e r t e r cannot put new data i n t o memory at the same time. T h i s p l a c e d a lower l i m i t of 375 m i l l i s e c o n d s on the sampling i n t e r v a l f o r u n i n t e r u p t e d r e c o r d i n g . So the u l t i m a t e i n ex e c u t i o n speed, as would be o f f e r e d by assembly language, was not r e q u i r e d . However the opposite extreme, popular implementations of BASIC, was estimated t o be too slow, e s p e c i a l l y f o r st e p p i n g through the analog input channels. Doing t h i s as q u i c k l y as the A/D con v e r t e r w i l l a llow assures n e a r l y simultaneous sampling of the v a r i o u s analog i n p u t s . Reasonable speed a l s o c o n t r i b u t e s to a c c u r a t e t i m i n g because i t minimizes the delay between when a time s i g n a l i s generated and when the sampling a c t u a l l y o c c u r s . Although n a t i v e code comp i l e r s , such as those for P a s c a l , would have o f f e r e d a compromise i n speed between that of an assembler and an i n t e r p r e t e r , they have the disadvantage of o f t e n generating very l a r g e object modules. A l s o , many compilers a v a i l a b l e f o r microcomputers have been found to generate convoluted, i n e f f i c i e n t code. Since the language had to be s e l e c t e d before the program was w r i t t e n , when we d i d not know how much code would be produced, we had to c a u t i o u s l y budget the a v a i l a b l e memory. One d e f i n i t e requirement f o r the language was that i t had to allow d i r e c t c o n t r o l over a l l p a r t s of the computer. Z80 assembly language o b v i o u s l y s a t i s f i e s t h i s requirement best while some implementations of higher l e v e l languages l i k e BASIC or P a s c a l do not s a t i s f y i t at a l l . However, programming i n assembler i s comparatively much more d i f f i c u l t and can very q u i c k l y become e x c e d i n g l y t e d i o u s . A l s o , n e i t h e r the assembly language source programs nor the r e s u l t a n t o b j e c t code would be t r a n s p o r t a b l e should a d i f f e r e n t p r o c e s s o r be s e l e c t e d l a t e r . C l e a r l y , a compromise was r e q u i r e d . The language chosen f o r the job was F o r t h (17). I t i s a s t a c k - o r i e n t e d language that generates very compact code that can g e n e r a l l y execute i n about twice the time r e q u i r e d f o r code from an assembler. I t a l s o a l l o w s very d i r e c t c o n t r o l of the host computer and i n c l u d e s an assembler f o r s i t u a t i o n s i n which maximum speed i s r e q u i r e d or where exact behavior of the c e n t r a l p r o c e s s i n g u n i t must be s p e c i f i e d . Modern F o r t h was invented by Ch a r l e s Moore of the N a t i o n a l Radio Astronomy Observatory as a data a c q u i s i t i o n language (18). Consequently, i t i s not s u r p r i s i n g that i t served our a p p l i c a t i o n so admirably. I t s most f a v o r a b l e c h a r a c t e r i s t i c i s the inherent ease with which new f u n c t i o n s can be added to the language. A F o r t h program c o n s i s t s of a s e r i e s of d e f i n i t i o n s of such "words", each making use of previous d e f i n i t i o n s , f o l l o w e d by one f i n a l "word" which i s the main program. Not only does F o r t h o f f e r the speed of a compiler, i t has the i n t e r a c t i v e nature of an i n t e r p r e t e r which f a c i l i t a t e s program development. V e r s i o n s of F o r t h were a l s o a v a i l a b l e from at l e a s t as many d i f f e r e n t vendors as any other microcomputer language. The one we f i n a l l y used was from Supersoft Inc. and cost about $200. E s t a b l i s h e d by i t s c r e a t o r as a p u b l i c domain product, F o r t h i s p a r t i c u l a r l y f r e e of the • r e s t r i c t i v e l i c e n s i n g c o n s i d e r a t i o n s of such languages as UCSD P a s c a l , a very expensive product. 3.3: Program Appendix C i s a l i s t i n g of the Prometheus program which c o n t r o l s the d i g i t a l r e c o r d e r . The source code embodies c e r t a i n conventions beyond the syntax of the language. A l l F o r t h reserved words and Z80 op codes are shown i n upper case Address MEMORY MAP Hardware Function Label FFFF FFOO FEFF F000 EFFF ECOO E7FF EO00 DFFF D400 D3FF MDX-CPU2 SRAM MDX-CPU2 SRAM MDX-CPU2 EPROM none MDX-CPU2 EPROM MDX-DRAM16 CPU scratchpad M/OS-80 BIOS DCF not used DDT OPI dcfbase A000 8FFF 8FFE 8FFD 8FFC 8FFB 7FFF MDX-DRAM16 none MDX-AIO none FORTH symbol t a b l e ( d i c t i o n a r y ) not used channel hi g h b i t s low b i t s not used DUP, reco r d , mew, e t c . mux msd l s d 0100 0100 • • 0000 MDX-DRAM32 MDX-DRAM32 a r r a y s , v a r i a b l e s , stacks M/OS-80 data, I,J,K, e t c . Memory Map Fig u r e 3.4 59 I/O MAP Address Hardware F u n c t i o n Label FF MDX-BCLK increment h i FE it none read/wr i t e not used l o E7 • • • • MDX-FLP DCF EO none not used A7 l e d s , s w i t c h e s • • 7904 operator I/O AO none not used l c d s , i o - b a s e 7F • • MDX-CPU2 CTC 7C none not used 00 I/O Map F i g u r e 3.5 60 although upper case t e x t a l s o occurs w i h t i n the comment f i e l d s . Words which communicate with the operator by reading switches or t u r n i n g on LED's have names ending with a q u e s t i o n mark or an underscore c h a r a c t e r . A l s o any word that r e t u r n s a l o g i c a l v a lue to the t o p - o f - s t a c k has a name ending with a q u e s t i o n mark. The comments ( d e l i m i t e d by parentheses) d e s c r i b e the purpose of each d e f i n e d word; those of p a r t i c u l a r i n t e r e s t are d e s c r i b e d below. F i g u r e s 3.4 and 3.5 are maps showing the use of memory and of the Z80 I/O p o r t s , r e s p e c t i v e l y . The frequent XOR'ing of a p a i r of 1-bit masks i n the F o r t h code i s done to assure that only one C o n t r o l Panel LED i s on at a time d u r i n g normal o p e r a t i o n and to keep the motor o f f when i t i s not needed. T h i s i s necessary because the motor and a l l LED's, except f o r the one by the RESET button, are c o n t r o l l e d by i n d i v i d u a l b i t s of the same I/O byte. A s i m i l a r use of b i t masks i s used to read i n d i v i d u a l switches which share the same address as the LED's. When the recorder i s plugged i n , i t s power comes on and a the top LED i s i l l u m i n a t e d . T h i s i s a request f o r the operator to set the 6 thumbwheel switches on the DTM to i n d i c a t e which of the double banana i n p u t s on the D i s t r i b u t i o n Panel are to be used. The operator must then i n s t a l l a program d i s k and press the system-reset button. T h i s causes l o a d i n g of the c o n t r o l program i n t o memory and i n i t i a t e s i t s e x e c u t i o n . When l o a d i n g i s complete, the operator r e p l a c e s the program d i s k with a formatted data d i s k . I n s t r u c t i o n s to the operator are i n the form of p r i n t e d l a b e l s beside LED's on the C o n t r o l Panel and the more d e t a i l e d t e x t i n Appendix A. The l a s t word d e f i n i t i o n i n the l i s t i n g , "mew" ( l i n e s 470 to 475), i s the main module of the program. The word "powerup" ( l i n e s 11 to 13) does nothing more than c o n t r i b u t e to the documentation. I t simply r e p r e s e n t s what the hardware does and the a c t i o n s that the operator takes before the software assumes c o n t r o l . The word "mew" ends with "shutdown" ( l i n e s 465 to 467) which stops program e x e c u t i o n and t u r n s on a l l LED's (except RESET) as an i n d i c a t i o n of what has happened. 3.3.1: mdx-aio_setup The next word in mew, "mdx-aio_setup" ( l i n e s 49 to 60), i s where the program assumes c o n t r o l . L i n e 50 turns o f f the d i s k d r i v e motor by sending a 0 b i t out through U5 on the 7904. The other 7 b i t s are sent out as 1's i n order to turn o f f a l l the C o n t r o l Panel LED's. Next, the thumbwheel switches are read. The v a l u e s of the two at the top of the PM are s t o r e d as the sampling i n t e r v a l and the number of channels. Then, the 6 input l i n e assignments are read, one p a i r at a time, i n t o an a r r a y . 3.3.2: mdx-bclk_setup The purpose of "mdx-bclk_setup" ( l i n e s 258 to 254) i s to i n i t i a l i z e the timekeeping f u n c t i o n s . I t s f i r s t a c t i o n , performed by " c o l d _ y e a r ? " ( l i n e s 114 to 118), i s not obvious. T h i s i s a t r i c k that sometimes compensates f o r the f a c t t h a t the MCX-BCLK does not generate any year d i g i t s . If the operator has s p e c i f i e d the use of fewer than 5 input channels and has set the le f t m o s t 2 of the 6 DTM thumbwheel switches to the l a s t 2 d i g i t s of the c u r r e n t year, " c o l d _ y e a r ? " w i l l s t o r e t h e i r value as the c u r r e n t year. T h i s i s a very obscure f u n c t i o n and a s t a t i o n keeper would not be expected to use i t s i n c e i t i s only r e l e v a n t at times when the recorder i s set up in a new c o n f i g u r a t i o n . At l i n e 260 the 3 p a i r s of date d i g i t s and 3 p a i r s of time d i g i t s are put on the stack by "date" ( l i n e s 120 to 133) and "time" ( l i n e s 135 to 138), r e s p e c t i v e l y , and then sent to the LCD panels by " d i s p l a y " ( l i n e s 146 to 155). The word " d i s p l a y " sends 12 d i g i t s out to the DTM one at a time as the 4 l e a s t s i g n i f i c a n t b i t s of a data byte while the d i g i t p o s i t i o n (0 to 11) occupies the 4 most s i g i n i f i c a n t b i t s . These 2 n i b b l e s go through d i f f e r e n t c i r c u i t r y on the 7904, the high one being converted to a group of strobe l i n e s , to become the inputs to the 3 d e c o d e r / d r i v e r s on the DTM. Next, "change?" ( l i n e s 157 to 171) r e t u r n s a l o g i c a l value depending on which button the operator pressed when asked ( v i a an LED and a l a b e l ) whether or not i t was necessary to change the d i s p l a y e d date and/or time. T h i s i s where " c o l d _ y e a r ? " becomes u s e f u l . I f the recorder i s being r e s t a r t e d a f t e r a power outage, the value of the year w i l l have vanished s i n c e i t i s s t o r e d i n memory as a program v a r i a b l e . By always g e t t i n g the i n i t i a l year value from the switches, the program u s u a l l y e l i m i n a t e s the need to re s e t the date and time because most power outages are short enough f o r the MDX-BCLK to have r e t a i n e d a l l of the other d i g i t s . I f the operator i n d i c a t e s that a change i s necessary, " s e t _ b c l k " ( l i n e 240 to 248) pro v i d e s a s e r i e s of prompts f o r i n p u t t i n g new va l u e s f o r the date and time with the pushbuttons and thumbwheel switches. The word " s t a r t _ b c l k _ " ( l i n e s 250 to 256) waits f o r the operator to s t a r t the c l o c k running. Clock r e a d i n g i s i n i t i a t e d by w r i t i n g to the low c l o c k p o r t . The d i g i t s subsequently read from the same p o r t represent that part of the date/time code s p e c i f i e d by the b i t p a t t e r n of the wr i t e o p e r a t i o n . If the low port w r i t e i s i n s t e a d f o l l o w e d by wr i t e o p e r a t i o n s to the high p o r t , the s p e c i f i e d p a r t of the date/time code i s incremented. The c l o c k module i s set by a combination of such w r i t e and read o p e r a t i o n s and increment sequences. 3.3.3: d o i t The word " d o i t " ( l i n e s 318 to 321) i s c r u c i a l to c o n t r o l of the f l o p p y d i s k d r i v e . U n l i k e a l l but one other of the words d e f i n e d i n t h i s program, i t i s an assembly language r o u t i n e . A Z80 assembler i s i n c o r p o r a t e d i n t o our v e r s i o n of F o r t h and d e f i n i t i o n s that use i t are d e l i m i t e d by the F o r t h r e s e r v e d words CODE and EDOC. C o n s i s t e n t with the p o s t f i x n o t a t i o n of F o r t h , the order of the op codes and operands i s reve r s e d from that of a c o n v e n t i o n a l assembler. A l l f u n c t i o n s of the MDX-FLPO are c o n t r o l l e d by using the Mostek Disk C o n t r o l Firmware which i s s t o r e d i n p a r t of the DCF PROM i n s t a l l e d on the MDX-CPU2. Communication wi t h the DCF i s done v i a a 48 byte a r r a y , d e c l a r e d as " i o c s v e c t " ( l i n e 272). I t s base address i s as s i g n e d the name "iocsb a s e " ( l i n e 273) and the base address of the DCF i s given the name "dcfbase" ( l i n e 303). V a r i a b l e names are given to c e r t a i n l o c a t i o n s w i t h i n " i o c s v e c t " ( l i n e s 274 to 281). Of p a r t i c u l a r i n t e r e s t i s the l o c a t i o n to which request codes are sent, " r q s t " ( l i n e 275). These codes ( l i n e s 304 to 306) are the a c t u a l i n s t r u c t i o n s to the c o n t r o l l e r while the other p a r t s of " i o c s v e c t " h o l d the arguments f o r and the r e s u l t s of, those i n s t r u c t i o n s . V a r i o u s words i n the Prometheus program, p a r t i c u l a r l y " f i l l _ t r a c k " ( l i n e s 392 to 398), w r i t e to the array and then use " d o i t " to cause the d e s i r e d a c t i o n . T h i s CODE d e f i n i t i o n does three t h i n g s . F i r s t , i t puts the base address of the " i o c s v e c t " a r r a y i n t o the IY r e g i s t e r of the Z80 which i s where the DCF expects to f i n d i t . Next, i t turns c o n t r o l of the CPU over to the DCF code which operates the MDX-FLPO. F i n a l l y , " d o i t " r e t u r n s c o n t r o l to the F o r t h language and program. 3.3.4: r e c o r d The d e f i n i t i o n of " r e c o r d " ( l i n e s 440 to 463) s p e c i f i e s the m a j o r i t y of the work done by the program. I t uses " s t a r t _ r e c _ " ( l i n e s 311 to 316) to wait f o r the operator to press a button and then " s p i n _ d i s k " ( l i n e 354 to 355) to s t a r t the d i s k d r i v e motor. The d e f i n i t i o n of " i n e r t i a " ( l i n e s 357 to 361) does nothing but waste time f o r about 15 seconds i n order to g i v e the motor time to get up to i t s r e q u i r e d speed. The r e s t of " r e c o r d " i s i n a h i e r a r c h y of loops, nested to a depth of s i x , which execute u n t i l the operator g i v e s e i t h e r of two stop s i g n a l s . A l l of t h i s i s best seen i n the flowchart (F i g u r e 3.3), the l i s t i n g being mainly a source of d e t a i l s . The innermost loop ( l i n e s 452 to 454) i s the heart of the r e c o r d i n g p r o c e s s . Here, one of the 6 time d i g i t s i s s h i f t e d from the l e a s t s i g n i f i c a n t to the most s i g n i f i c a n t n i b b l e of the 16-bit t o p - o f - s t a c k element. Next, an a n a l o g - t o - d i g i t a l c o n v e r s i o n i s performed on the c u r r e n t input channel. The r e s u l t i n g v a l u e i s XOR'ed with the time d i g i t so t h a t the former becomes the 10 l e a s t s i g n i f i c a n t b i t s of the t o p - o f - s t a c k . Then, the c u r r e n t s t a t e of the three innermost loops i s used by "to_ram" ( l i n e s 339 to 343) to s t o r e t h i s new member i n the next a v a i l a b l e l o c a t i o n of the ar r a y "data". Because 1, 2, 3 or 6 channels may be i n use, the innermost loop w i l l have to execute 6, 3, 2 or 1 times, r e s p e c t i v e l y , f o r each pass of the next outer loop i n order to sequence through a l l 6 of the time d i g i t s . Due to the use of F o r t h and the f a s t c o n v e r s i o n time of the A/D c o n v e r t e r module, the inner loop executes q u i t e q u i c k l y so the second innermost loop spends the m a j o r i t y of i t s time between sampling scans of the group of d e s i r e d input channels. T h i s time i s consumed by " i n t e r v a l " ( l i n e s 410 to 424). T h i s word uses MDX-AIO d i f f e r e n t i a l input #6 to monitor e i t h e r the 1 Hz or 16 Hz pu l s e s from the MDX-BCLK u n t i l i t has counted as many p u l s e s as i n d i c a t e d by the "INTERVAL" thumbwheel switch at setup time. The p o s i t i o n of the "SLOW/FAST" to g g l e switches c o n t r o l s which p u l s e t r a i n i s used. The operator can s a f e l y r e p l a c e d i s k s at any time except near times when data i s being w r i t t e n . The LED on the f r o n t of the d i s k d r i v e i s used as a warning to i n d i c a t e these times. Aside from e n a b l i n g the motor to achieve proper r o t a t i o n speed, t u r n i n g i t on before i t i s needed g i v e s the operator an a u d i b l e warning that a w r i t e o p e r a t i o n i s about to take p l a c e and that i t would be best to wait u n t i l the "IN USE" LED has turned on and o f f before changing d i s k s . T h i s avoids the problem of the d i s k d r i v e s t a r t i n g to do a n y t h i n g when i t s door i s open. Under some circumstances (mainly d u r i n g short l a b o r a t o r y t e s t s at higher sampling r a t e s ) , i t i s d e s i r a b l e to s t a r t and stop the r e c o r d i n g p r o c e s s . The "HOLD/CONTINUE" t o g g l e switch makes t h i s p o s s i b l e . In the "CONTINUE" p o s i t i o n i t operates normally but i n the "HOLD" p o s i t i o n i t stops r e c o r d i n g and i l l u m i n a t e s the "HOLDING" LED as soon as i t has enough data to f i l l an i n t e g r a l number of s e c t o r s . A r e t u r n to "CONTINUE" a l s o causes a r e t u r n to the "NORMAL" LED. Unplugging the r e c o r d e r from i t s source of AC power or p r e s s i n g the "RESET" button w i l l o b v i o u s l y stop the d e v i c e , however, there i s a more o r d e r l y method which assures that no data i s l o s t . P u t t i n g the "FINISH/CONTINUE" t o g g l e switch i n the "FINISH" p o s i t i o n w i l l cause the recorder to stop a f t e r i t has f i l l e d the l a s t t r a c k on the second s i d e of the c u r r e n t d i s k . The main purpose of t h i s i s to i n d i c a t e a p r e f e r e n c e f o r not r e c o r d i n g over e a r l i e r data i n case the operator f a i l s to change d i s k s on time. T h i s works even i f the switch was i n the "FINISH" p o s i t i o n before the d e v i c e was turned on, the r e s u l t being that e x a c t l y one e n t i r e d i s k gets f i l l e d . 3.4: I n s t a l l a t i o n In the e a r l y stages of i t s development, our d i g i t a l r e c o rder was imagined as having i t s c o n t r o l program permanently r e s i d e n t i n some EPROM memories on an STD BUS c a r d . However, due to some awkward c o n f i g u r a t i o n r e s t r i c t i o n s of the a v a i l a b l e boards and i n order to s i m p l i f y the i n s t a l l a t i o n of new v e r s i o n s of Prometheus, the program was made to be loaded and executed from a d i s k f i l e . A l l of the program development f o r c o n t r o l of the recorder was done with the same computer hardware as was used i n the f i n a l d e v i c e , augmented by a t e r m i n a l and a s e r i a l i n t e r f a c e c a r d . The Mostek M/OS-80 V e r s i o n 3.0 o p e r a t i n g system was used for such t h i n g s as f i l e h a n d l i n g and e d i t i n g . The DDT (Mostek "Designer's Development Tool") PROM mentioned above was s u p p l i e d with our MDX-SIO s e r i a l i n t e r f a c e module through which the t e r m i n a l was connected to the computer. T h i s firmware i s e s s e n t i a l f o r the s t a r t u p of the o p e r a t i n g system so i t had to be i n the recorder f o r l o a d i n g of the program f i l e . However, our o r i g i n a l DDT from Mostek was not designed to ignore the absence of a t e r m i n a l so the m o d i f i c a t i o n s d e s c r i b e d i n Table 3.1 had to be made to our copy of the c h i p f o r use i n the r e c o r d e r . When the computer i s powered on and the system-reset button i s pressed, the CPU begins executing i n s t r u c t i o n s s t a r t i n g at memory l o c a t i o n E000 because of the o p t i o n s e l e c t i o n d e s c r i b e d i n Chapter 2. The MDX-CPU2 i s c o n f i g u r e d such that the DDT EPROM occupies 2K of memory s t a r t i n g at that DDT CHANGES Memory Address O r i g i n a l Contents New Contents E21 1 00 28 E21 2 00 FA E237 .18 20 E242 2E CB E243 0D BF DDT Changes Table 3.1 l o c a t i o n . A f t e r jumping past the i n s t r u c t i o n s that would f a i l to execute as d e s i r e d because of the absence of a t e r m i n a l , our modified copy of DDT behaves j u s t l i k e the o r i g i n a l from Mostek. I t loads and executes block 0 from the system d i s k which c o n t a i n s a b o o t s t r a p program that c h a i n s to the SYSTEM.COM f i l e from the same d i s k . T h i s i n t u r n loads the M/OS-80 oper a t o r i n t e r f a c e (OPI) from the f i l e 0PI.COM. Then, i f there i s a f i l e on the d i s k c a l l e d STARTUP.COM, that f i l e loads and s t a r t s e x e c u t i n g . I t i s by p u t t i n g the compiled Prometheus program i n t o a f i l e with named STARTUP.COM that the recorder c o n t r o l program can get s t a r t e d . In t h i s way, no operator i n t e r v e n t i o n i s r e q u i r e d other than p l u g g i n g i n the record e r , i n s t a l l i n g a system boot d i s k , and momentarily p r e s s i n g the system-reset button. The f i r s t i n d i c a t i o n that the r e c o r d e r c o n t r o l program has loaded and i s running i s that a date and time are d i s p l a y e d on the l i q u i d c r y s t a l d i s p l a y panels and the "OK? YES" LED i s on. F i g u r e 3.4 shows where the firmware and d i s k based software r e s i d e i n memory. The 4K of RAM from FOOO to FFFF i s e s s e n t i a l f o r the s t a r t u p sequence. The f i r s t 100 bytes of memory are re s e r v e d f o r use by M/OS-80, as i s the case f o r CP/M which i t i s supposed to be compatible with. A l l of memory from there up to the bottom of OPI i s the T r a n s i e n t Program Area (TPA) where user programs r e s i d e . The r e c o r d e r ' s system boot d i s k was made by f i r s t using the o p e r a t i n g system's WRTSYS program to copy the system area from the master M/OS-80 d i s k to a new blank formatted d i s k . Next, the SYSTEM.COM and 0PI.COM f i l e s were c o p i e d t o the same d i s k with the COPY command. F i n a l l y , the SYSMAKE u t i l i t y s u p p l i e d with Supersoft F o r t h was used to compile the Prometheus program i n t o an executable f i l e c a l l e d STARTUP.COM, thus completing the system d i s k . The compiled code was 8,009 bytes long with 4,128 bytes a l l o c a t e d f o r the program and 3,881 bytes f o r the v a r i a b l e s . U n l i k e t r u e n a t i v e code com p i l e r s , F o r t h cannot generate machine language i n s t r u c t i o n s c o n t a i n i n g a b s o l u t e l y no overhead. There must always be a pa r t of the executable code that i s not a d i r e c t r e s u l t of the a p p l i c a t i o n source because part of the language i t s e l f must be present f o r the code to execute. In our case, only the 1.4K p r i m i t i v e l i b r a r y and the 1K inner i n t e r p r e t e r were i n c l u d e d because the compiler, console I/O, f i l e system, and user I/O segments were not needed i n the r e c o r d e r . The p r i m a t i v e l i b r a r y c o n t a i n s d e f i n i t i o n s of the most fundamental words of F o r t h such as the a r i t h m e t i c o p e r a t o r s and stack m a n i p u l a t i o n i n s t r u c t i o n s . The inner i n t e r p r e t e r i s r e s p o n s i b l e f o r the lowest l e v e l f l o w - o f - c o n t r o l i n the language that maintains c o n t i n u i t y from one F o r t h word to the next. 3.5: Demultiplex The source code f o r the P a s c a l program Demultiplex i s s t o r e d on the UBC General System i n an MTS f i l e c a l l e d DEMUX.PAS and a l i s t i n g of i t appears i n Appendix D. I n s t r u c t i o n s f o r i t s use are i n c l u d e d i n Appendix A. Compared to Prometheus, t h i s program i s much simpler because i t i s not as d i r e c t l y t i e d t o so many hardware d e t a i l s . A l s o , t h i s program i s much more readable because P a s c a l i s a more t r a d i t i o n a l language, using a l g e b r a i c i n f i x n o t a t i o n (ex. 3 + 4 ) r a t h e r than an e x p l i c i t stack (ex. 3 4 + ) . Demultiplex i s not intended as a p a r t i c u l a r l y optimum program, but r a t h e r as an example of how to e x t r a c t time and v o l t a g e s i g n a l s because an i n v e s t i g a t o r might want to do t h i s i n any number of ways. T h i s program simply reads the floppy d i s k data from an MTS l i n e f i l e and w r i t e s i t to another MTS l i n e f i l e as 2, 3, 4 or 7 columns of numbers. These represent the time c o o r d i n a t e and 1, 2, 3 or 6 v o l t a g e channels. Each l i n e of the former f i l e h olds one s e c t o r of d i s k data as a s e r i e s of c h a r a c t e r s . The program goes through these input l i n e s one at a time, using three major procedures, u n t i l the end i s reached. C a r e f u l use of l i n e range s p e c i f i e r s appended to the input f i l e name make i t p o s s i b l e to r e s t r i c t input to a subset of the e n t i r e f i l e . The procedure " e v a l _ t i m e " ( l i n e s 127 to 143) generates each time c o o r d i n a t e as a decimal day r e a l number. " E v a l _ s i g n a l s " ( l i n e s 146 to 166) regenerates the analog s i g n a l v a l u e s as signed f l o a t i n g p o i n t numbers s c a l e d to the same ±10 v o l t range as the A/D c o n v e r t e r i s set up f o r . The procedure "put_columns" ( l i n e s 169 to 182) w r i t e s the r e s u l t s to the output f i l e i n a convenient format. To maintain p r e c i s i o n , a l l values are presented to at l e a s t one more s i g n i f i c a n t f i g u r e than c o u l d be r e s o l v e d by the o r i g i n a l hardware. Any a n a l y s i s program that uses t h i s data can mask out any s u p e r f l o u s d i g i t s with i t s input statements. Examples of input and output data are shown i n Appendicies E and F, r e s p e c t i v e l y . Chapter 4: EXPERIMENTS T e s t i n g of our d i g i t a l data a c q u i s i t i o n system was done at three d i f f e r e n t l o c a t i o n s . a n d the r e s u l t s of these experiments were s t u d i e d i n three d i f f e r e n t ways. They are summarized here with sample data from each s i t e presented in the manner most s u i t a b l e to what was done t h e r e . 4.1: Laboratory T e s t s One of the ways in which the the U n i v e r s i t y of B r i t i s h Columbia space p h y s i c s group uses the data that i t c o l l e c t s i s by c a r e f u l l y measuring s e l e c t e d f e a t u r e s of i n t e r e s t i n g geomagnetic events. In order f o r a recorded s i g n a l to p r o v i d e an a c c u r a t e r e c o r d of a p h y s i c a l q u a n t i t y , the sensing and r e c o r d i n g equipment must be adequately c a l i b r a t e d . Since c a r e f u l a t t e n t i o n has a l r e a d y been p a i d to the c a l i b r a t i o n of our a m p l i f i e r s , m i c r o p u l s a t i o n c o i l s (19,20), and GIC t r a n s d u c e r s (21,22), we c o n c e n t r a t e d our e f f o r t s on the d i g i t a l r e c o r d e r a l o n e . The goal of the c a l i b r a t i o n procedure was simply to determine, as a c c u r a t e l y and p r e c i s e l y as necessary, what input v o l t a g e s cause the whole range of p o s s i b l e recorded v a l u e s . As d e s c r i b e d i n Chapter 2, our a n a l o g - t o - d i g i t a l c o n v e r t e r i s c o n f i g u r e d to accept input s i g n a l s ranging between f u l l - s c a l e v a l u e s of -10.00 v o l t s (-FS) and +10.00 v o l t s (+FS). Since the MDX-AIO c o n v e r t s each input v o l t a g e i n t h i s range to a 1 0 - b i t , two's compliment, b i n a r y i n t e g e r , i t can generate 1024 d i f f e r e n t v a l u e s from -512 to +511 i n c l u s i v e (60dB). I d e a l l y , each of these p o s s i b l e output values should correspond to a 19.53 mv wide range of input v o l t a g e s ( ( + 10.00V)-(-10.00V)/1024 = 0.0195.3V ). 19.53 mv i s the value of the l e a s t s i g n i f i c a n t b i t (LSB). None of these ranges . should o v e r l a p and there should be no gaps between them. The only ambiguity i s when an input v o l t a g e i s e x a c t l y the v o l t a g e at which a t r a n s i t i o n between two output v a l u e s occurs. In t h i s case whatever the output i s , i t w i l l be one of those two i n t e g e r s . There i s no way of d i s t i n g u i s h i n g a constant input v o l t a g e j u s t above the bottom of a 19.53 mv range from an input v o l t a g e j u s t below the top of the same range. According to the manufacturer, the i n t e g e r generated by the A/D c o n v e r t e r i s a f u n c t i o n of the input v o l t a g e such t h a t : INTout = -512 + ( ( V i n - ( - F S ) ) DIV LSB ) where: INTout i s the i n t e g e r r e s u l t V i n i s the input v o l t a g e DIV i s an d i v i s i o n operator which r e t u r n s an i n t e g e r and drops the remainder. A graph of t h i s f u n c t i o n i s shown i n F i g u r e 4.1 with a small 74 I N T o u t F i g u r e 4.1 DIGITAL VOLTMETER ADJUSTABLE DC VOLTAGE SOURCE DATA ACQUISITION COMPUTER MDX-AIO . « n w . » m W i T a M in X I d K) rt c (0 M -t-( N fl> 0) 3 rt fl> • D O rt 3 A Forth program running i n the computer causes recording and d i s p l a y i n g of the hexadecimal i n t e g e r s generated by the A/D c o n v e r t e r i n response to the v a r i o u s input v o l t a g e s . CJl sample pi e c e e n l a r g e d to show the shape of the curve i n more d e t a i l . The experiment shown in F i g u r e 4.2 was used to determine whether the A/D c o n v e r t e r behaved as expected. An i n i t i a l p l o t of V i n vs. INTout was too c l o s e to the p r e d i c t e d r e s u l t to show d i s c r e p a n c i e s on any reasonable s c a l e , so a d i f f e r e n t method was used with the same setup. I d e a l l y , the input v o l t a g e s at which t r a n s i t i o n s between two adjacent i n t e g e r r e s u l t s occur are V i n = -FS + ( N x LSB ) where the index "N" i s any i n t e g e r from 1 to 1023, i n c u s i v e . The idea was to a d j u s t the power supply output l e v e l u n t i l a v o l t a g e that caused j i t t e r i n g between the two i n t e g e r s on e i t h e r s i d e of each of 20 s e l e c t e d t r a n s i t i o n s was found. These t r a n s i t i o n v o l t a g e s were to be compared with the p r e d i c t e d ones. In p r a c t i c e , however, such f i n e adjustment of the power supply was very d i f f i c u l t so a s l i g h t l y m o d i f i e d procedure was used. Instead of one v o l t a g e being recorded f o r each of the 20 N v a l u e s ( t r a n s i t i o n s ) , s i x to e i g h t d i f f e r e n t v o l t a g e s near each of those expected t r a n s i t i o n s were recorded, along with a r e c o r d of whether each output i n t e g e r was the high one or the low one. These r e s u l t s are shown in F i g u r e 4.3. Each box i n the f i g u r e i s 40 mv wide and 2 hexadeximal i n t e g e r l e v e l s high and shows the p r e d i c t e d Vin vs. INTout behavior as a s o l i d curve and the experimental r e s u l t as a broken curve f o r 20 d i f f e r e n t v a l u e s of N. Each d o t t e d v e r t i c a l l i n e was drawn h a l f way between the lowest v o l t a g e that gave the high output i n t e g e r and the h i g h e s t v o l t a g e that gave the low output DIGITIZATION TRANSITIONS 2 02 - -201 -9 .9 7 I v -8 .516 v —I 2 4 D t p ~ -I 2 4 C l N = 77 f— - 9 . 5 0 6 2 6 0 - -2 7F 7 .520 v 1 Nr. 128 i— - .7.5 10 v - 6 . 4 8 4 v H 2 D4 2 D 5 f r ~ * I I I N - 181 1— -6 .4 7 5 v - 5 . 5 2 6 v 1 • -i i i N= 230 1 2 E 6 - - r — 2 E 5 D i g i t i z a t i o n T r a n s i t i o n s F i g u r e 4.3a -5 .5 I 8 v DIGITIZATION TRANSITIONS - 4 . 5 4 9 v 1 3I8--317 N= 280 1 - 4 , 5 4 l v - 3 . 5 l 3 v 34 D -3 4 C - 3 .506 v 3 8 1-3 80 - 2 . 4 9 7 v f -N r 385 1 -2 .491 v - I .519v 3 B 3 -3B 2 - 1.514'v - 0 . 5 4 I v 3 E 5 -3 E 4 1— r i i . . . i N = 485 1 D i g i t i z a t i o n T r a n s i t i o n s F i g u r e 4.3b - 0 . 5 3 8 v DIGITIZATION TRANSITIONS + 0 . 4 7 5 v + 1 . 5 1 2 v 0 I 9•-0 I 8 f_ f 1 1 — 1 N = 537 J 0 4 E••• 0 4 D + 0 . 4 7 8 v + 1 . 5 1 3 v 0 8 0 - -+ 2 . 4 9 0 v 1 J N - 6 4 0 1 + 2 . 4 8 9 v • - 0 7 F 0 C C - -+ 3 . 9 7 7 v 1 + 3 . 9 7 4 v • - 0 C B 0 0 . -+ 4 , 9 9 4 v 1 -r-. i N = 768 1 + 4 . 9 8 9 v • - 0 F F D i g i t i z a t i o n T r a n s i t i o n s F i g u r e 4 . 3 c DIGITIZATION TRANSITIONS 3 4 -+ 6 . 0 0 1 2 v -+-+ 6 , 0 0 5 v -•133 16 6 -+ 6 . 9 9 1 v 1 N = 870 i + 6 . 9 8 1 v • - I 6 5 9 A - -+ 8 . 0 0 9 v 1— - J - - 1 9 9 i + 7 . 9 9 7 v + 9 , 0 0 8 v I C D - -— - 1 - - I C C + 8 . 9 9 3 v F E --+ 1 0 . 0 4 7 v — f->•- -» - - I F D N= 1022 1 + 9 . 9 5 0 v D i g i t i z a t i o n T r a n s i t i o n s F i g u r e 4.3d 81 i n t e g e r . The d i f f e r e n c e between these estimated t r a n s i t i o n v o l t a g e s and t h e i r r e s p e c t i v e p r e d i c t e d v a l u e s , that i s the v o l t a g e d i f f e r e n c e between the broken v e r t i c a l l i n e segment and the s o l i d v e r t i c a l p a r t of each curve, i s graphed i n F i g u r e 4.4. While the d i g i t a l voltmeter used had a l e a s t s i g n i f i c a n t d i g i t that corresponded to i n t e r v a l s of 1 mv, most of the estimated t r a n s i t i o n v o l t a g e s have a l a r g e r e r r o r because of the v o l t a g e d i f f e r e n c e between the two nearest surrounding experimental p o i n t s from which they were i n t e r p o l a t e d . The curve i n F i g u r e 4.4 should be a s t r a i g h t l i n e c o i n c i d e n t with the h o r i z o n t a l a x i s . I t s departure from that i d e a l i s exagerated by the v e r t i c a l s c a l e . The h o r i z o n t a l broken l i n e s represent ±1 LSB ( l e a s t s i g n i f i c a n t b i t ) boundaries so the r e s u l t s are s t i l l w i t h i n the manufacturers s p e c i f i c a t i o n s of ±1/2 LSB f o r n o i s e e r r o r and *1 LSB as a maximum n o n l i n e a r i t y . The o v e r a l l p o s i t i v e slope of the curve i n d i c a t e s a s l i g h t l y lower gain than expected. T h i s r e s u l t c o u l d be i n c l u d e d i n the c a l i b r a t i o n of a m i c r o p u l s a t i o n or GIC r e c o r d i n g system that the d e v i c e might be a p a r t o f . However, the e r r o r s from such components as a H a l l - e f f e c t GIC sensor might be overwhelming. As a t e s t of d r i f t the t r a n s i t i o n measurements were done as 2 groups of 10 approximately 10 hours apart with a l l of the equipment c o n t i n u o u s l y turned on. The t r i a l s were done in an i n t e r l a c e d f a s h i o n such t h a t no t r a n s i t i o n was measured on the same day as i t s n e i g h b o r ( s ) . No t r a c e of d r i f t , which would be expected as a superimposed z i g z a g shaped component, i s apparent 82 Conversion Accuracy F i g u r e 4.4 i n F i g u r e 4.4. The accuracy of the b a t t e r y c l o c k module was found to be somewhat l e s s impressive. I n c l u d i n g times of being powered s t r i c t l y by i t s i n t e r n a l b a t t e r i e s , the l o n g e s t p e r i o d of continuous l a b o r a t o r y o p e r a t i o n f o r the MDX-BCLK board was 82 days. During t h i s time, when the module i s not known to have been subjected to temperatures below 15°C or above 30°C, i t m o n o t o n i c a l l y gained 43 seconds. T h i s i s s l i g h t l y worse than the worst case expected from the manufacturers s p e c i f i c a t i o n s but s t i l l t o t a l l y adequate f o r our needs. 4.2: Ingeldow T e s t s From 15 June, 1983 to 17 June, 1983 our data a c q u i s i t i o n system was used to d i g i t a l l y r e c o r d GIC s i g n a l s at the Ingeldow s u b s t a t i o n of the B r i t i s h Columbia Hydro and Power A u t h o r i t y . It was attached,, through a m i c r o p u l s a t i o n a m p l i f i e r and a n t i - a l i a s i n g f i l t e r , to a H a l l - e f f e c t t r a n s d u c e r which was i n s t a l l e d around the ground l e a d of a t r a n s f o r m e r at one end of a major 3-phase power t r a n s m i s s i o n l i n e . The top of F i g u r e 4.5 i s an analog c h a r t r e c o r d of a segment of data from that s i t e which was captured s i m u l t a n e o u s l y by one of the o l d Geotech tape r e c o r d e r s and our d i g i t a l r e c o r d e r . Below that i s a p l o t , broken i n t o two p i e c e s , of the d i g i t a l r e c o r d of the same i n t e r v a l from the same source. The l a t t e r has had a v o l t a g e gain f a c t o r of 4 a p p l i e d to i t and has had i t s time a x i s expanded by a f a c t o r of 2. The DC o f f s e t has a l s o been removed by s u b t r a c t i n g the average v o l t a g e value f o r the e n t i r e t r a c e 84 Trace Expansion F i g u r e 4.5 from each sample. In both cases the upwards d i r e c t i o n r e p r e s e n t s c u r r e n t flowing out of the ground. The purpose of t h i s comparison was to demonstrate the p o t e n t i a l s u i t a b i l i t y of our d i g i t a l r e c order f o r r e s e a r c h p r o j e c t s which r e l y h e a v i l y on numerical computation f o r data a n a l y s i s . 4.3: W i l l i s t o n T e s t s From 21 June, 1983 to 4 J u l y , 1984 the d i g i t a l r e c o r d e r was i n s t a l l e d at the W i l l i s t o n s u b s t a t i o n of B.C. Hydro. For the f i r s t 32 days i t was operated almost c o n t i n u o u s l y . The only i n t e r u p t i o n s were one shutdown i n order to search f o r r a d i o frequency i n t e r f e r e n c e (RFI) and one due to a severe e l e c t r i c a l storm. B.C. Hydro determined to t h e i r own s a t i s f a c t i o n t h a t the recorder was not r e s p o n s i b l e f o r the RFI problem. The shutdown on the 32'nd day was due to problems with the a m p l i f i e r s to which the recorder was connected. Before the recorder c o u l d be r e t u r n e d to s e r v i c e a l a b o r d i s p u t e i n t e r v e n e d and the experiment was not continued u n t i l 5 February, 1984. Then our most s e r i o u s problem became e v i d e n t . The s t a t i o n keepers reported continuous d i f f i c u l t i e s with the r e c o r d e r , p a r t i c u l a r l y due to i t s behavior d u r i n g the system boot procedure. C a r e f u l examination of the l o g book e n t r i e s from t h i s p e r i o d e x p l a i n e d why. The o p e r a t o r s were not f o l l o w i n g t h e i r i n s t r u c t i o n s as w e l l as they had s i x months e a r l i e r . Although a number of t h i n g s were done i n c o r r e c t l y the major source of d i f f i c u l t y was the procedure f o r s e t t i n g the c l o c k . In p a r t i c u l a r , the s t a t i o n keepers were e n t e r i n g the year v a l u e as the day va l u e , the month f o r the year, and the day v a l u e as the month. Because t h i s was a prototype device and because we underestimated the number of t h i n g s that c o u l d be done i n c o r r e c t l y , there was no p r o v i s i o n i n the software f o r d e a l i n g with such s i t u a t i o n s . I n s p i t e of these d i f f i c u l t i e s , a s u r p r i z i n g amount of GIC data was cap t u r e d c o r r e c t l y . While i t was not p r a c t i c a l to examine a l l of the n e a r l y 10 Megabytes of data r e t u r n e d from W i l l i s t o n , f i v e of the more i n t e r e s t i n g events were i s o l a t e d and p l o t t e d with the a p r o p r i a t e h o r i z o n t a l and v e r t i c a l s c a l i n g f a c t o r s f o r comparison with s t r i p c h a r t records made at r e c o r d i n g time. These are shown i n F i g u r e s 4.6a through 4.6e. The times are i n U n i v e r s a l Time and the upwards d i r e c t i o n on the page r e p r e s e n t s c u r r e n t f l o w i n g out of the ground. Although the accompanying d i g i t a l c l o c k s i g n a l s were i n v a l i d and the t i m e s c a l e of the o r i g i n a l c h a r t paper records made r e s o l u t i o n of the sampling i n t e r v a l s i m p o s s i b l e , t h i s does demonstrate that the d i g i t a l r e c o r d e r i s s u i t a b l e f o r our t h i r d method of study, q u a l i t a t i v e examination of the shapes of i n d i v i d u a l events. 00 88 Sample Event Fi g u r e 4.6b Sample Event F i g u r e 4. 91 Sample Event F i g u r e 4.6e Chapter 5: CONCLUSION Perhaps the most s t r i k i n g f e a t u r e of t h i s d i g i t a l data a c q u i s i t i o n system i s that i t serves our purposes b e t t e r than the o l d analog tape system yet uses only about 1/200'th as much magnetic r e c o r d i n g s u r f a c e . There i s , of course, nothing magical about t h i s . Our improved e f f i c i e n c y i s very much the r e s u l t of t a i l o r i n g the instrument p r e c i s e l y to our experimental requirements. By using 3 channels and a 1 second sampling i n t e r v a l f o r the GIC t e s t s , we captured only as much inf o r m a t i o n as the phenomena r e q u i r e d . S i m i l a r l y , f o r d i f f e r e n t circumstances the r a t e at which a fl o p p y d i s k i s used i s d i r e c t l y p r o p o r t i o n a l to the number of channels used and i n v e r s e l y p r o p o r t i o n a l to the l e n g t h of the sampling i n t e r v a l . T h i s - i s i n marked c o n t r a s t to the 10/160 ips analog tape r e c o r d e r s which cannot be slowed down to o f f e r l e s s than a 2 Hz bandwidth and which o f f e r no i n c r e a s e i n r e c o r d i n g time even i f only 1 of t h e i r 7 channels i s used. Slower v e r s i o n s of these analog r e c o r d e r s are a v a i l a b l e but they too have the i n f l e x i b i l i t y of a f i x e d speed and have demonstrated an even higher mechanical f a i l u r e r a t e . In a d d i t i o n to the use of a f l o p p y d i s k d r i v e , our d i g i t a l recorder owes pa r t of i t s data storage c a p a c i t y to i t s A/D c o n v e r t e r . The analog tape r e c o r d e r s have a dynamic range of about 250 based on the r a t i o of the maximum input v o l t a g e range they can accomodate (+2.5 v o l t s to -2.5 v o l t s ) without o b j e c t i o n a b l e d i s t o r t i o n to the r e s i d u a l peak-to-peak n o i s e (20 m i l l i v o l t s ) e x t r a c t e d from a blank tape with the same playback g a i n . Because the m i c r o p u l s a t i o n a m p l i f i e r s we use are capable of u n d i s t o r t e d output s i g n a l s i n excess of ±10 v o l t s , the procedure with analog tape r e c o r d i n g has been to simultaneously re c o r d each channel with 2 d i f f e r e n t a m p l i f i e r gains so that i f the high one, intended to capture weak f e a t u r e s , should s a t u r a t e when t h i n g s are most i n t e r e s t i n g the low one s t i l l r e t a i n s the d e t a i l s of the strong events. T h i s , of course, i s an unfortunate but necessary way to consume.the r e c o r d i n g media. The A/D c o n v e r t e r , with i t s dynamic range of j u s t over 1000, reduces the number of channels that must be recorded by a f a c t o r of 2 because i t a l l o w s both of these extremes to be accomodated by a s i n g l e channel. One of the most s a t i s f y i n g f e a t u r e s i s the format i n which the data i s s t o r e d on d i s k , p a r t i c u l a r l y the i n t e r l a c i n g of the time d i g i t s and the d i g i t i z e d v o l t a g e s . However, t h i s d i d c o n s t r a i n the number of channels to the i n t e g e r f a c t o r s of the number of time d i g i t s (1, 2, 3 or 6 channels f o r 6 time d i g i t s ) . Yet due to e l i m i n a t i o n of the p r e v i o u s l y r e q u i r e d m u l t i p l e g a i n redundancy t h i s has not been found to be a s i g n i f i c a n t l i m i t a t i o n . A consequence of t h i s format i s that an e n t i r e time c o o r d i n a t e i s w r i t t e n no l e s s o f t e n than once f o r every 6 time i n t e r v a l s . T h i s occurs i n the 1 channel case. When 6 channels are needed the e n t i r e time code i s recorded every time the group of input s i g n a l s i s d i g i t i z e d . So, durin g data r e d u c t i o n the number of time c o o r d i n a t e s that must be i n t e r p o l a t e d i s at worst (the 1 channel case) 5 f o r every one i n i t i a l l y recorded. At best (the 6 channel case) no i n t e r p o l a t i o n i s r e q u i r e d . S i m i l a r l y , 3 or 2 time c o o r d i n a t e s must be i n t e r p o l a t e d f o r each one on the data d i s k when 2 or 3 channels, r e s p e c t i v e l y , are i n use. T h i s , combined with the f a c t that each a n a l o g - t o - d i g i t a l conversion i s d r i v e n d i r e c t l y by the c l o c k module, makes i t very easy f o r the Demultiplex program to generate a time c o o r d i n a t e f o r the beginning of every sampling i n t e r v a l . In p a r t i c u l a r , only a very short s e c t i o n of data (6 sampling i n t e r v a l s at most) i s needed to i d e n t i f y the time of each s i g n a l v a l u e . T h i s i s u s u a l l y b e t t e r than the 1 minute c y c l e s of a WWVB c l o c k and i s a tremendous advantage over the pulse-coded c l o c k s used with the analog tape r e c o r d e r s which can r e q u i r e as much as an hour's worth of data i n order to i d e n t i f y the time. Another convenience of t h i s time format i s t h a t , because each time and date d i g i t i s s t o r e d as a bi n a r y coded decimal d i g i t , a person who understands the format does not even have to take a d i s k t o the Computing Centre or to run the Demultiplex program i n order to determine when a p a r t i c u l a r d i s k s e c t o r was recorded. Rather, i t i s only necessary to dump the data i n q u e s t i o n onto a t e r m i n a l screen and i n s p e c t the hexadecimal numbers as d e s c r i b e d i n Appendix E. The 2 unused b i t s between the time d i g i t and the v o l t a g e value are not a s e r i o u s waste and because of t h e i r p o s i t i o n only two t r i v i a l software changes would b e . r e q u i r e d to accomodate a 12-bit A/D c o n v e r t e r . At present they are a convenient demarcation bewteen the v o l t a g e values and the time d i g i t s . One p o s s i b l e f u t u r e use f o r the 3 unsused bytes in the 8 byte block at the end of each s e c t o r might be as a p l a c e to s t o r e a 2 or 3 d i g i t code. I t would be s p e c i f i e d at setup time, to i n d i c a t e such t h i n g s as the l o c a t i o n of the r e c o r d i n g s i t e and/or something about the nature of the sensors or a m p l i f i e r s . In t h i s way, even i f a l l w r i t t e n i n f o r m a t i o n f o r a p a r t i c u l a r d i s k was h o p e l e s s l y l o s t i t would s t i l l be p o s s i b l e to completely i d e n t i f y the data. Since t h i s code would be w r i t t e n at the end of a s e c t o r along with the date, number of channels, and sampling i n t e r v a l , i t would occur o f t e n enough that the contents of even a s m a l l , f o r g o t t e n MTS f i l e c o u l d be thoroughly i d e n t i f i e d with only v i s u a l i n s p e c t i o n . Our experimental r e s u l t s were q u i t e encouraging. During more than f i v e months of f i e l d o p e r a t i o n s our only f a i l u r e s were those due to human e r r o r and we now have a f i r m understanding of the causes of those problems. Our l a b o r a t o r y t e s t s showed that the r e c o r d e r can indeed s t o r e data a c c u r a t e l y enough f o r subsequent c a r e f u l measurements. We saw that the data i t s t o r e s i s s u i t a b l e f o r such numerical p r o c e s s i n g as s p e c t r a l a n a l y s i s . A l s o demonstrated was our a b i l t i y to reproduce events f o r c o n v e n t i o n a l g r a p h i c a l examination. One disadvantage of our d i g i t a l recorder i s the need for an a n t i - a l i a s i n g f i l t e r . Such hardware, which can take many forms depending on the a p p l i c a t i o n (such as the damping of a seismograph) i s r e q u i r e d wherever a continuous s i g n a l i s converted i n t o a sequence of d i s c r e t e samples. T h i s i s i n order to prevent i n t e r p r e t i n g high frequency components as anamalous low frequency f e a t u r e s . F o r t u n a t e l y t h i s i s not a very complicated d e v i c e . Ours was four i d e n t i c a l low-pass f i l t e r s operated i n p a r a l l e l , and c o n f i g u r e d f o r easy s e l e c t i o n of the corner frequency. The d e c i s i o n to turn on the d i s k d r i v e motor only when needed, though c o n t r a r y to the norm f o r 8-inch d r i v e s , was made to extend the l i f e t i m e of the motor. T h i s has turned out to have been a very f o r t u i t o u s course of a c t i o n . No problems were observed with our d i s k d r i v e whereas the motors of some almost i d e n t i c a l d r i v e s in t h i s Department which were operated almost c o n t i n u o u s l y have s i n c e burned out. There i s one aspect of the work on our new data a c q u i s i t i o n system that was a d e f i n i t e disappointment. Rather than being e a s i e r f o r the s t a t i o n keepers to use than the analog tape r e c o r d e r s , the recorder has proven to be c o n s i d e r a b l y more co n f u s i n g f o r them. T h i s was d r a s t i c a l l y evident from the s c e n a r i o s i n Chapter 4 d e s c r i b i n g the l o s s of data at W i l l i s t o n . With the b e n i f i t of h i n d s i g h t t h i s i s not s u r p r i s i n g . Though d u r i n g normal o p r a t i o n the s t a t i o n keeper has very l i t t l e to do (steps 26 to 31 of the Operating I n s t r u c t i o n s ) , there are over 40 switches, l i g h t s , d i g i t s and l a b e l s to c a t c h h i s or her a t t e n t i o n ! T h i s i s an order of magnitude g r e a t e r apparent complexity than that of the Geotech r e c o r d e r s . In r e t r o s p e c t the i n c r e a s e d frequency of operator e r r o r seems to have been i n e v i t a b l e . The obvious q u e s t i o n i s how these d i f f i c u l t i e s c o u l d have been avoided. Many of the steps i n Appendix A are concerned with a v o i d i n g any l o s s of data d u r i n g times that correspond to tape changes f o r the analog r e c o r d e r s and with s e t t i n g the c l o c k a f t e r long power i n t e r u p t i o n s . The obvious s o l u t i o n to the former source of c o n f u s i o n would have been to simply ignore the problem that we t r y to a v o i d . Because the p h y s i c a l motions of changing d i s k s can be accomplished i n a f r a c t i o n of the time r e q u i r e d f o r a tape change, data would r a r e l y be l o s t . The e x t r a e f f o r t r e q u i r e d to keep the r e c o r d e r f u n c t i o n i n g , even i f the d i s k change i s done at e x a c t l y the wrong moment, now appears to be very worthwhile. There now e x i s t s at l e a s t one commercially a v a i l a b l e WWV c l o c k that generates a computer compatible time s i g n a l . Using 3 shortwave f r e q u e n c i e s i t can set i t s e l f very a c c u r a t e l y anywhere on t h i s c o n t i n e n t and can do so f a r more o f t e n than necessary f o r our purposes. Using one.of these GC-1000 c l o c k s from H e a t h k i t E l e c t r o n i c s would e l i m i n a t e many steps from the Operating I n s t r u c t i o n s and would s i m p l i f y the programming. F i n a l l y , r e p l a c i n g the LED's and most of the switches with a 20 or 40 c h a r a c t e r l i q u i d c r y s t a l d i s p l a y module and at most a hexadecimal keypad would probably take the r e c o r d e r to i t s p r a c t i c a l l i m i t of o p e r a t i o n a l s i m p l i c i t y . I t should be p o s s i b l e with such a measure to e l i m i n a t e a l l of the p r i n t e d i n s t r u c t i o n s i n Appendix A except f o r those that should only be r e l e v a n t to the i n v e s t i g a t o r ( s ) s e t t i n g up the instrument a t a new l o c a t i o n or removing i t from s e r v i c e . Before f i e l d t e s t i n g we d i d r e a l i z e that c o r r e c t o p e r a t i o n of the recorder would probably be l e s s obvious to the s t a t i o n keepers than i t was to us. What we f a i l e d to a n t i c i p a t e was the extent of t h i s d i s p a r i t y . Part of the m o t i v a t i o n f o r u s i n g l a b e l e d switches and l i g h t s with p r i n t e d i n s t r u c t i o n s r a t h e r than a s i n g l e l i n e t e x t d i s p l a y was to avoid problems caused by " f e a r " of computers on the part of the s t a t i o n keepers. While t h i s may have been a reasonable c o n s i d e r a t i o n at the time, i t now appears to be c o u n t e r p r o d u c t i v e . Since p e r s o n a l computers and data t e r m i n a l s are becoming i n c r e a s i n g l y commonplace, i t would probably be best f o r f u t u r e v e r s i o n s of the rec o r d e r to look more l i k e j u s t another "harmless" computer d e v i c e . Many advances have occurred i n microcomputer technology s i n c e we s e l e c t e d the hardware f o r our data a c q u i s i t i o n system. Some of the most impressive achievements have been i n the area of mass stor a g e . Though 8-inch d r i v e s have d i m i n i s h e d i n p o p u l a r i t y , some manufacturers now produce h a l f - h e i g h t v e r s i o n s . Some pers o n a l computers are now capable of s t o r i n g 1.2 Megabytes on a 5 1/4 inch d i s k e t t e and some manufacturers c l a i m to have 800 K i l o b y t e c a p a c i t y 3 1/2 inch m i c r o f l o p p y d r i v e s . Some of these new computers are even a v a i l a b l e at the U n i v e r s i t y of B r i t i s h Columbia Computing Centre. U n f o r t u n a t e l y , there are problems. Taking a d i s k to one of the Computing Centere's p e r s o n a l computers and sending i t s cont e n t s to one of the b i g computers i s s t i l l not as f a s t as reading the same amount of data from the 8-inch d r i v e s because the p e r s o n a l computers are a l l connected to MTS as t e r m i n a l s , through much slower (9600 baud) communication l i n k s . Another d i f f i c u l t y with t h i s method i s that a l l such data t r a n s f e r s i n v o l v e f i l e s r a t her than byte-by-byte copying of an e n t i r e d i s k . To use such t e r m i n a l - l i k e f a c i l i t i e s we would have had to w r i t e the r e c o r d e r ' s c o n t r o l program i n a c o n s i d e r a b l y more complex manner. Microcomputers have a l s o seen a tremendous improvement i n memory s i z e and CPU s o p h i s t i c a t i o n . However, n e i t h e r of these are p a r t i c u l a r l y r e l e v a n t to our r e l a t i v e l y simple needs. What has been encouraging i s that there now e x i s t STD BUS modules that have more f u n c t i o n s on i n d i v i d u a l c a r d s . For example, i t i s p o s s i b l e to f i n d a CPU, 64K of memory, and a d i s k c o n t r o l l e r together on one card, as w e l l as A/D converter boards that i n c l u d e c l o c k s . A l s o , the p r i c e s and e l e c t r i c a l consumptions of these m u l t i f u n c t i o n cards are l e s s than those of the i n d i v i d u a l c i r c u i t boards. Since so much recent a t t e n t i o n has been devoted to p e r s o n a l computers, p a r t i c u l a r l y those with 16 b i t and even 32 b i t wide data paths, not as much has happened which might o f f e r a l t e r n a t i v e s to the STD BUS f o r small d e d i c a t e d a p p l i c a t i o n s such as our own. One of the most v a l u a b l e l e s s o n s learned from t h i s i n v e s t i g a t i o n was the extreme s u i t a b i l i t y of the F o r t h language to the development of instrument c o n t r o l programs. I t s i n t e r a c t i v e nature and low l e v e l c a p a b i l i t i e s made i n d i v i d u a l components of the program and the equipment s u r p r i s i n g l y easy to t e s t . The code generated took up a very modest amount of 100 memory and c o u l d e a s i l y be put i n t o EPROM c h i p s . We found the language i n h e r e n t l y easy to l e a r n and books on the s u b j e c t were both p l e n t i f u l and readable. Our v e r s i o n of Forth d i f f e r s from most in that i t uses the computer's o p e r a t i n g system to d e a l with the source code as*CP/M f i l e s r a t h e r than as "screens" handled d i r e c t l y by the language. F o r t h screens are 1024 byte b l o c k s of source code, u s u a l l y 16 l i n e s of 64 c h a r a c t e r s , that occupy an i n t e g r a l number of d i s k s e c t o r s . We found no reason to s t r o n g l y p r e f e r e i t h e r method. If we were to use what we have l e a r n e d from t h i s i n v e s t i g a t i o n to b u i l d more d i g i t a l r e c o r d e r s f o r use i n a c h a i n of m i c r o p u l s a t i o n or GIC s t a t i o n s , the d e v i c e s would not be very d i f f e r e n t from the one we have. Some t h i n g s would be s i m p l e r . The c a r d cage might c o n t a i n h a l f as many boards, there c o u l d be a s e l f - s e t t i n g WWV c l o c k , the power s u p p l i e s would probably be s m a l l e r and the d i s k d r i v e would be only h a l f i t s present h e i g h t . The C o n t r o l Panel, Date/Time Module and the Parameters Module would most l i k e l y be r e p l a c e d by a very simple box having only a 40 c h a r a c t e r alphanumeric l i q u i d c r y s t a l d i s p l a y and a hexadecimal keypad. A l l of the software would, be moved to EPROMS from the system-boot d i s k so the l i s t of i n s t r u c t i o n s would d e f i n i t e l y be reduced to a small f r a c t i o n of i t s present s i z e . A l s o , we would do much more l a b o r a t o r y t e s t i n g of the d e v i c e i n the hands of t h i r d p a r t i e s before p u t t i n g u n i t s i n t o the f i e l d . Most i m p o r t a n t l y , however, i s what would not change. F u n c t i o n a l l y the r e c o r d e r would be very much the same as i t i s now. The Prometheus program, because i t i s w r i t t e n i n F o r t h would be p a r t i c u l a r l y easy to modify f o r the s i m p l i f i e d c l o c k s i g n a l and user i n t e r f a c e s . • The d i s k data format and the Demultiplex program would remain e x a c t l y as they a r e . The work d e s c r i b e d i n t h i s t h e s i s was a success i n terms of what we intended to accomplish. We d i d design, b u i l d and t e s t a p r o t o t y p e d i g i t a l data a c q u i s i t i o n system. For our a p p l i c a t i o n s t h i s device worked as w e l l as the equipment i t was intended to r e p l a c e and demonstrated almost a l l of the intended improvements over that analog system. A l s o , our f i e l d t e s t s have q u i t e c l e a r l y shown us what changes should be made to f u t u r e v e r s i o n s of the recorder i n order to completely s a t i s f y our e x p e c t a t i o n s . Most i m p o r t a n t l y , however, we have learned enough about d i g i t a l i n s t r u m e n t a t i o n to enable us to much more e f f e c t i v e l y apply the c u r r e n t advances i n e l e c t r o n i c technology to g e o p h y s i c a l i n v e s t i g a t i o n s . FOOTNOTES ) Pro-Log C o r p o r a t i o n , S e r i e s 7000 STD BUS T e c h n i c a l Manual, (Monterey, CA: Pro-Log C o r p o r a t i o n , 1981), p. 1-1 . ) I b i d . , p. 1-2. ) Mostek C o r p o r a t i o n , 1980 Micro Systems Data Book, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1980), pp. 3-2 to 3-5. ) Mostek C o r p o r a t i o n , MD S e r i e s Microcomputer Modules Operations Manual, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p.2. ) Qume Co r p o r a t i o n , QumeTrak 842 Product S p e c i f i c a t i o n , (San Jose, CA: Qume C o r p o r a t i o n , 1981), p. 11. ) Mostek C o r p o r a t i o n , Operations Manual f o r MDX-FLP MK77652, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p. 1-1 . ) "Wire Wrap" i s a r e g i s t e r e d trademark. ) Mostek C o r p o r a t i o n , Operations Manual f o r A/D Converter Module MDX-AIO, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981 ) , p. 1-1 . ) Mostek C o r p o r a t i o n , Mostek MDX-BCLK Operations Manual, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p. 1-1. ) Mostek C o r p o r a t i o n , Operation Manual f o r MDX-DRAM, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p. 1-1. ) Mostek C o r p o r a t i o n , Mostek MDX-CPU2 Operations Manual, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p. 1-1. ) I b i d . , p. 3-1. ) Mostek C o r p o r a t i o n , Operations Manual f o r MDX-DRAM, ( C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981), p. 1-1. ) Pro-Log C o r p o r a t i o n , User's Manual 7904 Decoded I/O U t i l i t y Card, (Monterey, CA: Pro-Log C o r p o r a t i o n , 1980), p. 2. ) I b i d . ) Qume C o r p o r a t i o n , QumeTrak 842 Product S p e c i f i c a t i o n , (San Jose, CA: Qume C o r p o r a t i o n , 1981), p. 1. 103 17 ) John S. James, "What i s FORTH? A T u t o r i a l I n t r o d u c t i o n , " BYTE, August 1980, p. 100. 18 ) Charles H. Moore, "The E v o l u t i o n of FORTH, an Unusual Language," BYTE, August 1980, p. 84. 19 ) K. Hayashi, T. Oguti, T. Watanabe, L. F. Zambersky, "Absolute S e n s i t i v i t y of a High-u Metal Core S o l e n o i d as a Magnetic Sensor," J o u r n a l of Geomagnetism and G e o e l e c t r i c i t y , V o l . 30, pp. 619 to 630. 20 ) L. F. Zambersky, T. Watanabe, R. D. R u s s e l l , T. Oguti, K. Hayashi, "A New Method to C a l i b r a t e Induction Magnetometers," J o u r n a l of Geomagnetism and G e o e l e c t r i c i t y , V o l . 32, pp. 47 to 56. 21 ) D. H. B o t e l e r , " H a l l - E f f e c t Current Transducers, U.B.C. / B.C. Hydro SIC Study," I n t e r n a l r e p o r t , A p r i l , 1979. 22 ) R. M. S h i e r , Personal communication, 18 January, 1983. BIBLIOGRAPHY James, John S. "What Is FORTH? A T u t o r i a l I n t r o d u c t i o n . " BYTE August 1980, pp. 100-134. Moore, C h a r l e s H. "The e v o l u t i o n of FORTH, an Unusual Language." BYTE, August 1980, pp. 76-90. Mostek C o r p o r a t i o n . MD S e r i e s Microcomputer Modules Operation Manual. C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. . Operations Manual f o r MDX-FLP MK77652. C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. . Operations Manual f o r A/D Converter Module MDX-AIO C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. . Mostek MDX-BCLK Operations Manual. C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. . Operations Manual f o r MDX-DRAM. C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. . Mostek MDX-CPU2 Operations Manual. C a r r o l l t o n , TX: Mostek C o r p o r a t i o n , 1981. Pro-Log C o r p o r a t i o n . S e r i e s 7000 STD BUS T e c h n i c a l Manual. Monterey, CA: Pro-Log C o r p o r a t i o n , 1980. . User's Manual 7904 Decoded I/O U t i l i t y Card. Monterey, CA: Pro-Log C o r p o r a t i o n , 1980. Qume C o r p o r a t i o n . QumeTrak 842 Product S p e c i f i c a t i o n . San Jose, CA: Qume C o r p o r a t i o n , 1981. Hayashi, K. e t . a l . "Absolute C a l i b r a t i o n of a High-u Metal Core S o l e n o i d as a Magnetic Sensor." J o u r n a l of Geomagnetism and G e o e l e c t r i c i t y , V o l . 30, pp. 619-630. Zambersky, L. F. e t . a l . "A New Method to C a l i b r a t e I n d u c t i o n Magnetometers." J o u r n a l of Geomagnetism and G e o e l e c t r i c i t y , V o l . 32, pp. 47-56. B o t e l e r , D. H. " H a l l - E f f e c t Current Transducers, U.B.C. / B.C. Hydro SIC Study." I n t e r n a l r e p o r t , A p r i l 1979. 105 Appendix A: INSTRUCTIONS 1 ) Place the recorder h o r i z o n t a l l y on a sturdy f l a t s u r f a c e . I t must be near enough to the s i g n a l source to be reached with the s i g n a l c a b l e s . Although no i n t e r f e r e n c e from the recorder has been observed, i t should not be any c l o s e r to the s i g n a l source than necessary. 2 ) Open the l i d of the r e c o r d e r . 3 ) L i f t the Date/Time Module from i t s storage l o c a t i o n i n the near l e f t corner of the recorder and p l a c e i t , with the d i s p l a y s and switches upwards, on the d i s k d r i v e cover. 4 ) Plug the s i g n a l c a b l e s i n t o any of the double banana connectors of the D i s t r i b u t i o n Panel i n the near r i g h t corner of the r e c o r d e r . The inputs are numbered 1 to 6 from l e f t to r i g h t . The yellow connectors are the high s i d e s and the blue ones are the low s i d e s . 5 ) A s s i g n each of as many of the channels as necessary to each of the input s i g n a l s . T h i s i s done by s e t t i n g , from l e f t to r i g h t , as many of the thumbwheel switches as there are input s i g n a l s to the numbers of those input l i n e s . The remainder of the thumbwheel switches ( i f any) may be l e f t alone or set to 0 f o r c l a r i t y . 6 ) Set the "# CHANNELS" thumbwheel switch of the Parameters Module i n the near l e f t corner of the rec o r d e r to e i t h e r 1, 2, 3 or 6 a c c o r d i n g to the number of i n p u t s used. 7 ) Set the "INTERVAL" thumbwheel switch of the Parameters Module to the d e s i r e d sampling i n t e r v a l from 1 to 9. 8 ) Set the "SLOW/FAST" t o g g l e switch to the "SLOW" p o s i t i o n i f the v a l u e set i n step 7 i s to be used as a number of seconds or to the "FAST" p o s i t i o n t o s e l e c t 1/16 seconds. 9 ) L i f t up the Parameters Module i n the near l e f t corner of the r e c o r d e r . E x t r a c t the AC power cable and l e t i t hang out from the f a r l e f t corner of the r e c o r d e r . Replace the Parameters Module. 10 ) Set the "HOLD/CONTINUE" toggle switch to the "CONTINUE" p o s i t i o n . 106 11 ) Set the "FINISH/CONTINUE" toggle switch to the "CONTINUE" p o s i t i o n . 12 ) Plug the AC power c a b l e i n t o an e l e c t r i c a l o u t l e t . 13 ) Press the l a t c h l a b e l e d "PRESS" on the f r o n t of the d i s k d r i v e and open i t s access door. 14 ) Remove the "SYSTEM BOOT" d i s k from i t s paper envelope and i n s e r t i t i n t o the d i s k d r i v e while h o l d i n g onto l a b e l e d edge with the l a b e l f a c i n g upwards. When the d i s k i s pressed f a r enough i n t o the d r i v e , i t w i l l not s p r i n g back when r e l e a s e d . 15 ) Press down on the access door u n t i l i t c l i c k s shut. 16 ) Press and r e l e a s e the button beside the i l l u m i n a t e d "RESET" l i g h t . 17 ) Wait f o r the "IN USE" l i g h t on the f r o n t of the d i s k d r i v e to go o f f and f o r the "OK?" l i g h t to come on. Immediately check the date and time as soon as they appear on the Date/Time Module d i s p l a y p a n e l s . 18 ) Remove the f l o p p y d i s k and r e t u r n i t to i t s envelope. 19 ) With a t h i c k f e l t pen, g e n t l y w r i t e the c u r r e n t date and time on the l e f t s i d e of the l a b e l of a new, p r e v i o u s l y formatted, f l o p p y d i s k . 20 ) Put the data d i s k i n the d r i v e j u s t as f o r the "SYSTEM BOOT" d i s k . 21 ) I f both the date and time were c o r r e c t i n s t e p 17, momentarily press button #1 and s k i p t o s t e p 25, otherwise, press button #2. 22 ) When the "NEW DATE" l i g h t comes on, set the 6 thumbwheel switches on the Date/Time Module to the c o r r e c t year, month, and day p a i r s of d i g i t s from l e f t to r i g h t (ex. 84.06.23). Then press button #3. 23 ) When the "NEW TIME" l i g h t comes on, set the same 6 thumbwheel switches to the hour, minute, and second p a i r s of d i g i t s (ex. 21.49.34) f o r about a minute ahead of the c o r r e c t time. 1 07 24 ) Wait u n t i l the s p e c i f i e d time a r r i v e s and then press button #2. 25 ) Press button #3 when r e c o r d i n g i s to begin. 26 ) For a convenient length of time before the d i s k i s to be f u l l , watch the recorder u n t i l the "NORMAL" l i g h t goes o f f and comes back on aga i n . 27 ) Then remove the data d i s k and immediately r e t u r n i t to i t s paper envelope. 28 ) Gently w r i t e the date and time on the r i g h t s i d e of the l a b e l on the removed d i s k . 29 ) Gently w r i t e the date and time on the l e f t s i d e of the l a b e l of a new, p r e v i o u s l y formatted, data d i s k . 30 ) I n s t a l l the new d i s k in the d r i v e . 31 ) Return to step 26 f o r normal o p e r a t i o n . 32 ) To s i g n a l the recorder to shut i t s e l f o f f when the c u r r e n t d i s k i s f u l l , put the "FINISH/CONTINUE" toggle switch i n the "FINISH" p o s i t i o n at any time. 33 ) If f o r any reason, u s u a l l y d u r i n g high speed t e s t s , i t i s necessary to t e m p o r a r i l y suspend o p e r a t i o n of the re c o r d e r , simply put the "HOLD/CONTINUE" toggle switch i n the "HOLD" p o s i t i o n f o r as long as necessary. 34 ) To shut down the recorder at any time simply remove the data d i s k when the "NORMAL" l i g h t i s on and p u l l the AC power p l u g . 35 ) Before t r a n s p o r t , unplug a l l the s i g n a l c a b l e s , r e s t o r e the Date/Time Module to i t s storage l o c a t i o n above the D i s t r i b u t i o n Panel, and put the AC power cable back under the Parameters Module. 36 ) To use the a c q u i r e d data, f i r s t take the d i s k s of i n t e r e s t to the UBC Computing Center where they are to be kept and a s s i g n e d Rack Numbers. 37 ) Use these numbers and the procedure d e s c r i b e d i n the document UBC Floppy Disk to copy the d i s k s i n t o MTS l i n e f i l e s . 108 38 ) Create a one l i n e f i l e , " p a r s f i l e " c o n t a i n i n g a "1", the d i g i t of the sampling i n t e r v a l (1 to 9), the number of channels, and the number of s e c t o r s to be read. Each q u a n t i t y must be proceded by at l e a s t on space. For example: " 1 8 3 200" i s a v a l i d l i n e f o r the contents of t h i s f i l e . The "1" may be r e p l a c e d by a "16" i f the data was recorded with one of the s h o r t e r sampling i n t e r v a l s . If w r i t t e n records of the sampling i n t e r v a l or number of channels are l o s t , that i n f o r m a t i o n may be found by examining the MTS input f i l e " i n f i l e " as d e s c r i b e d i n Appendix E. 39 ) Create an MTS l i n e f i l e , " o u t f i l e " to h o l d the dem u l t i p l e x e d data. 40 ) Create an o b j e c t f i l e of the Demultiplex program with the f o l l o w i n g command l i n e : $RUN *PASCAL SCARDS=DEMUX.PAS SPUNCH=DEMUX.OBJ 41 ) F i n a l l y , use the f o l l o w i n g command l i n e to run the Demultiplex program: $RUN DEMUX.OBJ S C A R D S = p a r s f i l e + i n f i l e SPRINT=outfile 109 Appendix B: PARTS LIST Quantity D e s c r i p t i o n Notes ! Mostek MK77983 Card Cage MDX-CC8, 1 Standard SPS 90T Power Supply 1 Hammond HFPS 024 022 Power Supply General E l e c t r i c M130LA20A GE-MOV 1 3-conductor AC power c a b l e 1 1.5 A slow-blow fuse 1 i n - l i n e fuse h o l d e r 1 Qume QumeTrak 824DC d i s k d r i v e I n t e r n a t i o n a l R e c t i f i e r 1N4454 1 Mostek MK77652-0 c o n t r o l l e r MDX-FLP0 1 Mostek MK77654 analog module MDX-AIO 1 Mostek MK77976 b a t t e r y c l o c k MDX-BCKL 1 Mostek MK77754-4 memory board MDX-DRAM16 1 Mostek MK77853-4 CPU module MDX-CPU2 1 Mostek MK6235 DDT EPROM modi f i e d 1 Mostek MK6286 DCF PROM Mostek MK4801 s t a t i c RAM 1 TI SN74LS04N hex i n v e r t e r on CPU2 1 5.00 MHz o s c i l l a t o r c r y s t a l on CPU2 1 0.104 uF c a p a c i t o r on CPU2 820 Ohm r e s i s t o r on CPU2 1 Mostek MK77752-4 memory board MDX-DRAM32 1 Pro-Log decoded I/O u t i l i t y c a r d 7904 1 Siemens SCL4514BE l a t c h & decoder U1 N a t i o n a l Semiconductor DM74LS75N U4, U5 1 F a i r c h i l d 4042PC quad l a t c h U2 1 Motorola MC14049UB hex b u f f e r U3 1 Siemens SCL4050BE hex b u f f e r U6 9 10 K Ohm r e s i s t o r s on 7904 100 Ohm r e s i s t o r s on 7904 1 40-conductor DIP plu g & socket P1 1 24-conductor DIP plu g & socket P2 1 55cm 40-conductor r i b b o n c a b l e 7904 to DTM 1 35cm 24-conductor r i b b o n c a b l e 7904 to PM 7 16 p i n DIP Wire Wrap socket on 7904 1 24 p i n DIP Wire Wrap socket on 7904 6 decimal thumbwheel switches SI to S6 24 N a t i o n a l 1N4733A s i g n a l diode on DTM 2 AND Model FE0601 LCD p a n e l s on DTM 3 I n t e r s i l ICM7211 d e c o d e r / d r i v e r s U7, U8, U9 1 40-conductor DIP plu g & socket P3 3 40 p i n DIP Wire Wrap socket on DTM 1 I n t e r n a t i o n a l 1N4454 diode on PM 1 Motorola 2N4400 NPN t r a n s i s t o r Q1 110 1 I n t e r n a t i o n a l R e c t i f i e r IRF530 Q2 MOSFET 4 10 K Ohm r e s i s t o r on PM 1 M Ohm r e s i s t o r on PM 100 Ohm r e s i s t o r on PM 0.68 uF c a p a c i t o r on PM Motorola MC14013B dual f l i p - f l o p U10 SPDT t o g g l e switch S1 7 2 decimal thumbwheel switches S7, S8 3 N a t i o n a l 1N4733A s i g n a l diode on PM 2 decimal thumbwheel switches not used 8 N a t i o n a l 1N4733A s i g n a l diode not used 1 24-conductor DIP p l u g & socket on P4 1 16 p i n DIP Wire Wrap socket on PM 2 SPST t o g g l e switch S14, S15 3 SPST momentary pushbutton switch S11 to S13 1 SPST momentary pushbutton switch S16 1 Texas Instruments TIL216 LED on CP 1 Zero 43cm x 53cm x 19cm case 1 ( Program PROMETHEUS ) 2 3 4 5 DECIMAL ( Set the c u r r e n t r a d i x t o 2 . ) 6 7 : BINARY 8 2 BASE I ; 9 10 11 : powerup ( E l e c t r i c a l power has been r e s t o r e d . The u s e r has been ) 12 ( i n s t r u c t e d t o i n s t a l l a d i s k and s e t a l l s w i t c h e s ) 13 ; ( r e l e v a n t t o a n a l o g I n p u t . RESET has been p r e s s e d . ) 14 15 16 ( DECLARATIONS ) 17 BINARY 18 11110000 CONSTANT h l n l b b l e 19 00001111 CONSTANT l o M b b l e 20 10000000 CONSTANT motor 21 DECIMAL 22 0 VARIABLE r a t e 23 0 VARIABLE c h a n n e l s 24 0 VARIABLE mon1 25 0 VARIABLE mon2 26 6 CONSTANT p u l s e s 27 7 BARRAY 1 n - l 1 n e s 28 HEX 29 AO CONSTANT l o - b a s e 30 l o - b a s e 7 + CONSTANT l e d s 31 l e d s CONSTANT s w i t c h e s 32 33 DECIMAL 34 35 : s p l i t ( Move the h i g h n i b b l e of the low b y t e of the t o p - o f - s t a c k ) 36 ( e lement t o the low n i b b l e of the h i g h b y t e . ) 37 DUP h l n l b b l e & 4 <-L SWAP 1on1bb1e & X| ; 38 39 : s e l b l t ( Put a " 1 " 1n the d e s i r e d b i t p o s i t i o n of the low ) 40 DUP 0= IF *( b y t e of a new t o p - o f - s t a c k e l e m e n t . ) 41 DROP 1 42 ELSE 43 1 SWAP 44 1+ 1 DO 45 2 * 46 LOOP 47 ENDIF ; 48 49 : m d x - a 1 o _ s e t u p ( S t o r e the s w i t c h p o s i t i o n s as v a r i a b l e v a l u e s . ) 50 motor COM l e d s ZOUT 51 4 0 DO 52 1 o - b a s e I + ZIN COM 53 I CASE 54 0 =: s p l i t DUP r a t e B! 8 ->L c h a n n e l s B! ; ; 55 1 =: s p l I t 0 l n - 1 1 n e s ! : ; 56 2 = : s p l 1 t 2 1n -11nes ! ; ; 57 3 =: s p l 1 t 4 1 n - l 1 n e s ! ; ; 58 NOCASE =: ; ; 59 CASEND 60 LOOP ; 61 62 63 ( DECLARATIONS ) 64 ' 1 o - b a s e CONSTANT l e d s 65 1 o - b a s e 1+ CONSTANT whee lbase 66 BINARY 67 1111111100000000 CONSTANT M b y t e 68 0000000011111111 CONSTANT l o b y t e 69 00000000 VARIABLE r e g ( 8 b i t v i r t u a l r e g i s t e r ) 70 10000000 CONSTANT newyear 71 HEX 72 FE CONSTANT l o FF CONSTANT h i ( m d x - b c l k p o r t s ) 73 00 VARIABLE y r 00 VARIABLE mo 00 VARIABLE dy ( d a t e ) 74 00 VARIABLE hr 00 VARIABLE mn 00 VARIABLE s c ( t i m e ) 75 76 DECIMAL 77 78 : r e l e a s e ( Send a 0 t o a n o n e x l s t a n t d i s p l a y d i g i t . ) 79 h l n l b b l e l e d s ZOUT ; 80 81 : s h i f t ( Remove t h e h i g h b y t e f rom the t o p - o f - s t a c k e lement and p l a c e i t ) 82 ( on the t o p - o f - s t a c k 1n the low b y t e p o s i t i o n . ) 83 DUP l o b y t e & SWAP M b y t e 5 8 ->L ; 84 85 : s e t b l t ( Set a d e s i r e d b i t i n t h e 8 b i t v i r t u a l r e g i s t e r . ) 86 s e l b l t r e g BQ | r e g B! ; 87 88 : r e s b f t ( R e s e t a d e s i r e d b i t 1n the 8 b i t v i r t u a l r e g i s t e r . ) 89 s e l b l t COM r e g BP & r e g B! ; 90 91 : send ( W r i t e t o t h e low c l o c k p o r t . ) 92 r e g BP l o ZOUT ; 93 94 : r e c v ( Read f rom the low c l o c k p o r t . ) 95 l o ZIN ; 96 97 : s e p a r a t e ( Remove the h i g h n i b b l e f rom the low b y t e of the t o p - o f - s t a c k ) 98 ( e lement and p l a c e 1t on the t o p - o f - s t a c k as t h e low n i b b l e ) 99 ( of the low b y t e of a new t o p - o f - s t a c k e l e m e n t . ) 100 s p l i t s h i f t ; 101 102 : bcd1+ ( Inc rement a 2 - d l g 1 t b i n a r y coded d e c i m a l number. ) 103 s e p a r a t e SWAP 1+ 10 /MOD ROT + 10 MOD 16 * X| ; 104 105 : l e a p ? ( I s t h i s a l e a p y e a r ? ) 106 y r B@ 4 MOD 0= ; 107 10.8 l e a p _ s e t ( Set the l e a p year c a l e n d a r . ) 109 7 s e t b l t ; 1 10 111 r e v e r s e ( Exchange n i b b l e s i n the low b y t e . ) 112 DUP h l n l b b l e & 4 ->L SWAP l o n l b b l e & 4 <-L X| ; 1 13 114 : c o l d _ y e a r ? ( Can the y e a r d i g i t s be e x t r a c t e d f rom 2 thumbwheel ) 115 . ( s w i t c h e s ? ) 116 c h a n n e l s 9 3 <= IF 117 1 o - b a s e 3 + ZIN COM r e v e r s e y r B! 118 ENDIF ; 1 19 120 : d a t e ( Put t h e d a y , month and y e a r d i g i t s on the s t a c k . ) 121 6 r e s b l t 5 s e t b l t 4 r e s b l t 3 r e s b l t 2 r e s b l t send r e c v 122 DUP newyear & IF 123 1 r e s b l t send 1 s e t b l t send 124 y r BP bcd1+ y r B! 125 l e a p ? IF 126 l e a p _ s e t 127 ENDIF 128 01 DUP mo B! SWAP DROP 129 ENDIF 130 s e p a r a t e 131 6 s e t b l t send r e c v DUP dy B! s e p a r a t e 132 4 ROLL 4 ROLL . 133 y r B@ s e p a r a t e ; 134 135 : t i m e ( Put the s e c o n d s , m i n u t e s and hours on the s t a c k . ) 136 5 r e s b l t 4 s e t b l t 3 r e s b l t 2 r e s b l t send r e c v s e p a r a t e 137 4 r e s b l t 3 s e t b l t send r e c v s e p a r a t e 4 ROLL 4 ROLL 138 3 r e s b l t 2 s e t b l t send r e c v s e p a r a t e 6 -ROLL 6 -ROLL ; 139 140 : combine ( Combine the h i g h n i b b l e of the low b y t e of the n e x t - o n - s t a c k ) 141 ( e lement w i t h the low n i b b l e of the low b y t e of the ) 142 ( t o p - o f - s t a c k e lement as the h i g h and low n i b b l e s of the low ) 143 ( b y t e of the t o p - o f - s t a c k . ) 144 4 <-L X| ; 145 CO 146 : d i s p l a y ( Send the 12 d a t e and t ime d i g i t s t o the L C D ' s , one b y t e a t a ) 147 ( t i m e w i t h the h i g h n i b b l e as the d i g i t p o s i t i o n and the low ) 14S ( n i b b l e as t h e d i g i t v a l u e . ) 149 6 0 DO 150 12 ROLL 151 LOOP 152 12 0 DO 153 r e l e a s e I combine l e d s ZOUT 154 r e l e a s e I 1+ combine l e d s ZOUT 155 2 +LOOP ; 156 157 : change? ( I l l u m i n a t e the "OK?" LED and w a i t u n t i l the o p e r a t o r ) 158 ( p r e s s b u t t o n #1 f o r "OK" o r b u t t o n #2 t o change s o m e t h i n g . ) 159 0 s e l b l t motor X| COM l e d s ZOUT 160 BEGIN 161 3 s e l b l t s w i t c h e s ZIN COM & IF 162 1 DUP 163 ELSE 164 2 s e l b l t s w i t c h e s ZIN COM & IF 165 2 DUP 166 ELSE 167 0 168 ENDIF 169 ENDIF 170 END 171 2 = ; 172 173 : r e s - a n d - d l s ( Reset and d i s a b l e the c l o c k . Reset the c a l e n d a r . ) 174 0 0 r e g B! send 0 s e t b l t send 1 s e t b l t send ; 175 176 : d a t e ? ( I l l u m i n a t e the "NEW OATE" LED and wat t f o r the o p e r a t o r t o ) 177 ( p r e s s b u t t o n #3 t o s i g n a l t h a t the 6 d a t e d i g i t s have been s e t ) 178 ( and a r e r e a d y t o be r e a d . ) 179 1 s e l b l t motor X| COM l e d s z o u t 180 BEGIN 181 1 s e l b l t s w i t c h e s ZIN COM & 182 END 183 3 0 DO 184 whee lbase I + ZIN COM r e v e r s e 185 LOOP 186 dy B! mo B! y r B! ; 187 188 : t i m e ? ( I l l u m i n a t e the "NEW TIME" LED and w a i t f o r the o p e r a t o r t o ) 189 ( p r e s s b u t t o n #1 t o s i g n a l t h a t the 6 t i m e d i g i t s have been s e t ) 190 ( a r e r e a d y t o be r e a d . ) 191 2 s e l b l t motor x| COM l e d s zou t 192 BEGIN 193 3 s e l b l t s w i t c h e s ZIN COM & 194 END 195 3 0 DO 19G w h e e l b a s e I + ZIN COM r e v e r s e 197 LOOP 198 s c B! mn B! h r B! ; 199 200 : bump ( W r i t e t o the h i g h c l o c k p o r t . ) 201 0 h i ZOUT ; 202 203 : month_set ( Set the c u r r e n t month . ) 204 5 s e t b l t send 205 BEGIN 206 r e c v mo BP <> WHILE 207 bump bump 208 REPEAT ; 209 210 : d a y _ s e t ( Set t h e c u r r e n t d a y . ) 211 6 s e t b l t send 212 BEGIN 213 r e c v dy BP <> WHILE 214 bump bump 215 REPEAT ; 216 217 : h o u r _ s e t ( Set the s t a r t i n g h o u r . ) 218 5 r e s b l t 219 BEGIN 220 4 s e t b l t 3 r e s b l t send 221 r e c v h r BP <> WHILE 222 4 r e s b l t 3 s e t b l t send 223 bump bump 224 REPEAT ; 225 226 : m1nute_set ( Set t h e s t a r t i n g m i n u t e . ) 227 4 r e s b l t 3 s e t b l t send 228 BEGIN 229 r e c v mn BP <> WHILE 230 bump bump 231 REPEAT ; 232 233 : s e c o n d _ s e t ( Set the s t a r t i n g s e c o n d . ) 234 3 r e s b l t 2 s e t b l t send 235 BEGIN 236 r e c v s c BP <> WHILE 237 bump bump 238 REPEAT ; 239 240 : s e t _ b c l k ( Set the m d x - b c l k c l o c k and i 241 r e s - a n d - d l s 242 d a t e ? 243 l e a p ? IF 244 l e a p s e t 245 ENDIF 246 month s e t day s e t 247 t ime? 248 h o u r _ s e t m i n u t e s e t second s e t ; 249 250 : s t a r t b c l k ( I l l u m i n a t e the "START CLi 251 ( r u n n l n i 252 3 s e l b l t motor X COM l e d s zout 253 BEGIN 254 2 s e l b l t s w i t c h e s ZIN COM & 255 END 256 0 r e s b l t send ; 257 258 : m d x - b c l k s e t u p ( Set and s t a r t the bat 259 c o l d y e a r ? 260 d a t e t i m e d i s p l a y 261 change? IF 262 s e t _ b c l k 263 s t a r t b c l k 264 ENDIF ; 265 266 267 ( DECLARATIONS ) 268 BINARY 269 0000000010000000 CONSTANT s t a t m a s k 270 0000001111111111 CONSTANT datamask 271 DECIMAL 272 48 BARRAY l o c s v e c t 273 0 l o c s v e c t CONSTANT l o c s b a s e 274 l o c s b a s e 3 + CONSTANT un11 275 l o c s b a s e 15 + CONSTANT r q s t 276 l o c s b a s e 25 + CONSTANT ubf f r 277 l o c s b a s e 27 + CONSTANT u s l z e 278 l o c s b a s e 30 * CONSTANT s c t r 279 l o c s b a s e 31 + CONSTANT t r k 280 l o c s b a s e 32 + CONSTANT 1 s c t r 281 l o c s b a s e 34 + CONSTANT n s c t r 282 077 CONSTANT t r a c k s 283 026 CONSTANT s e c t o r s 284 128 CONSTANT s c t r ?en 285 002 CONSTANT w o r d l e n 286 006 CONSTANT t l m e l e n 287 s c t r l e n 4 - CONSTANT r c r d l e n 288 l o - b a s e 4 + CONSTANT mon1tor 289 128 CONSTANT 2 . 5 v 0\ 290 048 CONSTANT s l d e O 291 049 CONSTANT s i d e l 292 0 0 0 VARIABLE s c t r n u m 293 r c r d l e n t l m e l e n / w o r d l e n / CONSTANT c y c l e s 294 r c r d l e n s e c t o r s * w o r d l e n / CONSTANT d a t a l e n 295 r c r d l e n s e c t o r s * u s l z e ! 296 d a t a l e n ARRAY d a t a 297 s l d e O u n i t B! 1 s c t r B! 0 t r k B! 298 p u l s e s 6 1 n - l 1 n e s B! 299 HEX 300 8FFB CONSTANT mux 301 mux 1 + CONSTANT 1sd 302 mux 2 + CONSTANT msd 303 ECOO CONSTANT d c f b a s e 304 12 CONSTANT w r t c o d e 305 13 CONSTANT seek 306 14 CONSTANT r e s t o r e 307 00 FFEO B! 00 FF24 B! FFFF FFOO ! 308 309 DECIMAL 310 311 : s t a r t _ r e c _ ( I l l u m i n a t e the "START RECORDING" LED and w a i t f o r the ) 312 ~ ( o p e r a t o r t o p r e s s b u t t o n #3. ) 313 4 s e l b l t motor X| COM l e d s z o u t 314 BEGIN 315 1 s e l b l t s w i t c h e s ZIN COM & 316 END ; 317 318 CODE d o l t ( Tu rn o v e r p r o c e s s o r c o n t r o l t o the Mostek D i s k C o n t r o l ) 319 ( F i r m w a r e . ) 320 l o c s b a s e IY LD d c f b a s e CALL $NEXT dP 321 EDOC 322 323 : z e r o _ h e a d ( Move d i s k d r i v e head t o t r a c k z e r o . ) 324 r e s t o r e r q s t B l d o l t ; 325 326 . : a l p s t a t ? ( I s c o n v e r s i o n c o m p l e t e d ? ) 327 msd B9 s t a t m a s k & ; 328 329 : measure ( Put the 1 0 - b 1 t Input v a l u e on the t o p - o f - s t a c k . ) 330 1sd 9 datamask & ; 331 332 : a - t o - d ( D i g i t i z e an a n a l o g v o l t a g e f rom the c h a n n e l i n d i c a t e d by the ) 333 1 n - l 1 n e s B@ mux B! ( t o p - o f - s t a c k . ) 334 BEGIN 335 a l o s t a t ? 0= 336 END 337 measure ; 338 - J 339 : t o _ r a m ( Put the l a t e s t d i g i t i z e d v a l u e , combined w i t h the a p p r o p r i a t e ) 340 ( t i m e d i g i t I n t o the nex t p o s i t i o n of the a r r a y " d a t e " w h i c h ) 341 ( h o l d s enough d a t a t o f i l l a d i s k t r a c k . ) 342 c h a n n e l s p * + SWAP t l m e l e n * + 343 t l m e l e n c y c l e s * 2 + s c t r n u m @ 1 - * + d a t a ! ; 344 345 - . ' append ( Put t h e d a t e , number of c h a n n e l s , and s a m p l i n g r a t e i n t o t h e ) 346 ( a r r a y " d a t a " a f t e r a l l the t i m e and v o l t a g e s i g n a l s f o r a ) 347 ( s e c t o r have been s t o r e d t h e r e . ) 348 t l m e l e n c y c l e s * 2 + s c t r n u m P * 2 DUP 349 y r B@ SWAP d a t a ! 350 mo B@ 8 <-L dy B@ X| SWAP 1+ d a t a ! 351 w h e e l b a s e 2 + ZIN COM r e v e r s e s p l i t I s c t r ! 352 r a t e BP 8 <-L c h a n n e l s BP x| n s c t r ! ; 353 354 : s p 1 n _ d 1 s k ( A p p l y power t o the d i s k d r i v e m o t o r . ) 355 00 COM l e d s ZOUT ; 356 357 i n e r t i a ( G i v e t h e motor t i m e t o get up t o i t s r e q u i r e d s p e e d . ) 358 55 0 DO 359 505 0 DO 360 LOOP 361 LOOP ; 362 363 : f 1 n d _ t r a c k ( Move the r e a d / w r i t e head t o the next t r a c k of the d i s k . ) 364 seek r q s t B! d o l t ; 365 366 : s t o p _ d i s k ( 111 urn 1 n a t e ' t h e "NORMAL" LED and remove power f rom the d i s k ) 367 ( d r i v e m o t o r . ) 368 5 s e l b l t motor X| COM l e d s ZOUT ; 369 370 : h o l d ? ( I f t h e "HOLD/CONTINUE" t o g g l e s w i t c h 1s 1n the "HOLD" p o s i t i o n , ) 371 ( i l l u m i n a t e the "HOLDING" LED and j u s t w a i t u n t i l the s w i t c h Is ) 372 ( r e t u r n e d t o the "CONTINUE" p o s i t i o n . ) 373 5 s e l b l t s w i t c h e s ZIN COM & 374 IF 375 6 s e l b l t motor X| COM l e d s ZOUT 376 BEGIN 377 5 s e l b l t s w i t c h e s ZIN COM S NOT 378 END 379 s t o p _ d 1 s k 380 ENDIF ; 381 CO 382 : p r e p a r e ( I f t h e s e c t o r f o r w h i c h d a t a Is about to be c o l l e c t e d 1s the ) 383 ( l a s t one f o r the next t r a c k t o be w r i t t e n , t h e n ge t t h e motor ) 384 ( g o i n g , o t h e r w i s e see 1f the o p e r a t o r w i s h e s t o suspend ) 385 ( e x e c u t i o n . ) 386 s e c t o r s - - 1 <= IF 387 sp1n_d1sk 388 ELSE 389 h o l d ? 390 ENDIF ; 391 392 : f l l l _ t r a c k ( F i l l t h e c u r r e n t d i s k t r a c k w i t h the c o n t e n t s of t h e ) 393 ( a r r a y , " d a t a " . ) 394 0 d a t a u b f f r ! 395 w r t c o d e r q s t Et! 396 s e c t o r s 0 DO 397 I 1+ s c t r B! d o l t 398 LOOP ; 399 400 CODE hang ( S t o p t h e CPU c o m p l e t e l y . ) 401 HALT $NEXT JP 402 EDOC 403 404 : bomb ( W r i t e t o d i s k any d a t a a c c u m u l a t e d s i n c e the l a s t t r a c k was ) 405 ( f i l l e d and then shut down c o m p l e t e l y . ) 406 append 407 s p i n _ d 1 s k i n e r t i a f 1 n d _ t r a c k f 1 l l _ t r a c k s t o p _ d i s k 408 6 s e l b l t motor X| COM l e d s zou t hang ; 409 410 : I n t e r v a l ( Use the A/D c o n v e r t e r to count as many 1 s e c o n d or ) 411 ( 1/16 s e c o n d p u l s e s f rom the b a t t e r y c l o c k as i n d i c a t e d by ) 412 ( s a m p l i n g i n t e r v a l thumbwheel s w i t c h . ) 413 0 414 BEGIN 415 p u l s e s 416 BEGIN 41.7 DUP DUP a - t o - d 2 . 5v < SWAP a - t o - d 2 . 5v < & 418 END 419 BEGIN 420 DUP DUP a - t o - d 2 . 5 v > SWAP a - t o - d 2 . 5 v > & 421 END 422 d r o p 1+ DUP r a t e @> > = 4 2 3 . END 424 DROP ; 425 426 : f i n i s h ? ( I s t h e "FINISH/CONTINUE" t o g g l e s w i t c h i n the " F I N I S H " ) 427 ( p o s i t i o n ? ) 428 4 s e l b i t s w i t c h e s ZIN COM & ; 429 430 : f l 1 p _ s 1 d e ( S w i t c h t o the o p p o s i t e s i d e of the d i s k and f i n d o u t 1f the ) 431 ( o p e r a t o r has I n d i c a t e d the need f o r a shutdown when the ) 432 ( d i s k i s f u l 1 . ) 433 u n i t B& 434 s l d e O = IF 435 s l d e l u n i t B! 0 436 ELSE 437 S ldeO u n i t B! f i n i s h ? 438 ENDIF : 439 440 : r e c o r d ( C o l l e c t and s t o r e d a t a u n l t l l s i g n a l l e d t o do o t h e r w i s e . ) 44 1 s t a r t _ r e c _ 442 s p 1 n _ d l s k I n e r t i a 443 BEGIN 444 z e r o _ h e a d s t o p _ d l s k 445 t r a c k s 0 DO 446 I t r k B! 447 s e c t o r s 0 DO 448 I 1+ s c t r n u m ! I p r e p a r e 449 c y c l e s 0 DO 450 d a t e t i m e d i s p l a y t i m e 451 t l m e l e n c h a n n e l s P / 0 DO 452 c h a n n e l s & 0 DO 453 12 <-L I a - t o - d X| K I J to_ram 454 LOOP 455 I n t e r v a l 456 LOOP 457 LOOP 458 append 459 LOOP 460 f 1 n d _ t r a c k f 1 1 l _ t r a c k s t o p _ d 1 s k 461 LOOP 462 f l 1 p _ s t d e 463 END ; 464 465 : shutdown ( Remove power f rom the d i s k d r i v e m o t o r , t u r n on a l l the ) 466 ( L E D ' s e x c e p t f o r the "RESET" one , and s t o p the CPU. ) 467 00 l e d s ZOUT hang ; 468 469 470 : mew ( M a s t e r C o n t r o l Word ) 47 1 powerup 472 m d x - a 1 o _ s e t u p 473 m d x - b e l k _ s e t u p 474 r e c o r d 475 shutdown ; 476 477 478 479 [ E N D - O F - F I L E ] O 1 PROGRAM d e m u l t i p l e x ( I n p u t , o u t p u t ) ; >£j 2 TJ 3 CD 4 3 5 CONST 6 num_t1me_d1g1 t s = 6 ; s e c t o r _ l e n = 128; num_cyc les = 10; ^ 7 8 TYPE O 9 s e q u e n c e _ t y p e = A R R A Y [ 0 . . n u m _ t I m e _ d 1 g 1 t s ] OF r e a l ; "* 10 s e c t o r _ t y p e = A R R A Y [ 1 . . s e c t o r _ l e n ] OF c h a r ; 11 D 12 VAR M 13 num_chan, y e a r , d a y , d a t e , c y c l e _ n u m : I n t e g e r ; 3< 14 s e c t o r : s e c t o r _ t y p e ; ^ 15 t1me_sequence , s 1 g n a l _ s e q u e n c e : s e q u e n c e _ t y p e : H3 16 17 • t> 18 PROCEDURE c l e a r _ t 1 m e _ s e q u e n c e ( VAR t1me_sequence : s e q u e n c e _ t y p e ) ; ^ 19 CONST 20 num_t1me_d1g1ts = 6 ; 21 VAR f 22 t1me_d1g1t_num : I n t e g e r ; £^ 23 BEGIN { c l e a r _ t 1 m e _ s e q u e n c e } ,_g 24 FOR t l m e _ d l g l t_num : = 0 TO num_t 1 me_d 1 g 1 t s DO I-I 25 t1me_sequence( t1me_d1g1t_num) := 0 . 0 Z 26 END; { c l e a r _ t 1 m e _ s e q u e n c e } ^ 27 28 29 30 31 32 33 34 35 36 37 . 38 39 40 4 1 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 PROCEDURE g e t _ d a t e ( VAR CONST 1 ; f e b = 2 ; 7 ; aug = 8 ; y e a r , d a y , d a t e : i n t e g e r j an = J u l = VAR month : BEGIN r e a d l n mar = sep = apr o c t 4 ; 10; may nov 1 n t e g e r ; ( y e a r , month , day ); CASE month OF J a n f e b mar a p r may j u n J u l aug sep o c t nov dec END; d a t e : d a t e d a t e d a t e d a t e : d a t e ; d a t e d a t e d a t e : d a t e : d a t e : d a t e {CASE} 0 31 59 90 120 151 181 212 243 273 304 334 MOD 4 = 0 ) AND ( month > f e b ) IF ( y e a r THEN d a t e := d a t e + d a t e := d a t e + day END; {get_date } PROCEDURE g e t _ s e c t o r ( VAR s e c t o r : s e c t o r _ t y p e ); CONST s e c t o r _ l e n = 128; VAR byte_num : I n t e g e r ; BEGIN { g e t _ s e c t o r } FOR byte_num := 1 TO s e c t o r _ l e n DO r e a d ( s e c t o r ( b y t e _ n u m ) ) ; r e a d l n END; { g e t _ s e c t o r } j u n = 6 ; dec = 12; 70 PROCEDURE e v a l _ t 1 m e ( c y c l e _ n u m : I n t e g e r ; s e c t o r : s e c t o r _ t y p e ; d a t e : I n t e g e r ; 71 VAR t1me_sequence : s e q u e n c e _ t y p e ; num_chan : I n t e g e r ) ; 72 CONST 73 n u m _ t 1 m e _ d 1 g l t s = 6 ; 74 VAR 75 y e a r , d a y , t1me_d1g1t_num : I n t e g e r ; 76 o l d _ t 1 m e _ v a l , n e w _ t 1 m e _ v a l , t , s a m p l 1 n g _ 1 n t e r v a l : r e a l ; 77 78 FUNCTION t i m e ( cyc1e_num ; I n t e g e r ; s e c t o r : s e c t o r _ t y p e ) : r e a l ; 79 CONST 80 num_t1me_d1g1ts = 6 ; 81 VAR 82 t 1 m e _ d l g l t _ n u m , t1me_d1g1t : I n t e g e r ; . t1me_val : r e a l ; 83 BEGIN {t ime} 84 t1me_va1 := 0 . 0 ; 85 FOR t1me_d1g1t_num := 1 TO num_t1me_d1g1ts DO 86 BEGIN 8 7 - t1me_d1g1t := 88 o r d ( s e c t o r ! ( c y c l e _ n u m - 1 ) * n u m _ t 1 m e _ d 1 g l t s * 2 + t 1 m e _ d 1 g i t _ n u m * 2 ) ) DIV 16; 89 CASE t1me_d1g1t_num OF 90 1: t i m e _ v a l := t1me_val + t i m e _ d 1 g 1 t * ( 1 0 / 2 4 ) ; 91 2 : t1me_va l := t1me_va1 + t 1 m e _ d i g i t * ( 1 / 2 4 ) ; 92 3 : t1me_va l := t1me_val + t 1 m e _ d i g 1 t * ( (1/24) * (10/60) ) ; 93 4 : t1me_va l := t1me_val + t i m e _ d i g i t * ( (1/24) * (1/60) ) ; 94 5 : t i m e _ v a l := t1me_val + t l 'me_d1g1t * ( (1/24) * (1/60) * ( 1 0 / 6 0 ) ) ; 95 6 : t1me_va1 := t1me_va l + t i m e _ d 1 g 1 t * ( (1/24) * (1/60) * ( 1 / 6 0 ) ) 96 END {CASE} 97 END; 98 t i m e := t1me_va l 99 END; {t ime} 100 M to 101 PROCEDURE new_day ( VAR y e a r , d a y , d a t e : I n t e g e r ) ; 102 BEGIN {new_day} 103 d a t e := d a t e + 1 ; 104 IF day > 365 105 THEN 106 BEGIN 107 y e a r := y e a r + 1 ; 108 day := 1 109 END 110 ELSE 111 IF day = 365 112 THEN 113 BEGIN 114 . . . IF y e a r MOD 4 = 0 115 THEN 116 day := day + 1 117 ELSE 118 BEGIN 119 y e a r := y e a r + 1; 120 day := 1 121 END 122 END 123 ELSE 124 day := day + 1 125 END; {new_day} 126 127 BEGIN {eval_t ihne} 128 o l d _ t i m e _ v a l := t1me_sequence ( n u m _ t i m e _ d i g 1 t s ) ; , . 129 o l d _ t 1 m e _ v a 1 := o l d _ t i m e _ v a 1 - t r u n c ( o l d _ t i m e _ v a 1 ) ; 130 new_t1me_val := t i m e ( c y c l e _ n u m , s e c t o r ) ; 131 IF new_t1me_val < o l d _ t i m e _ v a 1 132 THEN 133 new_day ( y e a r , d a y , d a t e ) ; 134 t := d a t e + new_t1me_va1; 135 t 1 m e _ s e q u e n c e ( 0 ) := 11 me_se'quence( num_t 1 me_d1 g1 t s ) ; 136 IF t i m e _ s e q u e n c e ( 0 ) = 0 . 0 137 THEN 138 t i m e _ s e q u e n c e ( 0 ) := t ; 139 s a m p l 1 n g _ 1 n t e r v a l := ( t - t1me_sequence (0 ) ) / ( num_t1me_d1g1ts DIV num_chan ) ; 140 FOR t1me_d1g1t_num := num_t1me_d1g1ts DOWNTO 1 DO 141 t1me_sequence ( t1me_d1g l t_num) := 142 t - s a m p l 1 n g _ 1 n t e r v a l * ( ( num_t1me_d1g1ts - t1me_d1g1t_num ) DIV num_chan ) 143 END; {eval_t1me} 144 145 146 PROCEDURE e v a 1 _ s 1 g n a l s ( cyc1e_num : I n t e g e r ; s e c t o r : s e c t o r _ t y p e ; 147 VAR s I g n a l _ s e q u e n c e : s e q u e n c e _ t y p e ) ; 148 CONST 149 n u m _ t i m e _ d i g 1 t s = 6 ; range = 1024; maxpos = range DIV 2 - 1 ; s c a l e = 10 / 5 1 2 ; 150 VAR 151 t1me_d1g1t_num, h 1 g h _ b y t e , l o w _ b y t e , magn i tude : I n t e g e r ; 152 s 1 g n a l _ v a 1 : r e a l ; 153 BEGIN { e v a l _ s I g n a l s } 154 FOR t1me_d1g1t_num : - 1 TO num_t ime_d1g1ts DO 155 BEGIN 156 h1gh_byte := ( cyc1e_num - 1 ) * num_t1me_d1g1ts * 2 + t ime_d1g1t_num * 2 : 157 low_by te := h1gh_by te - 1; 158 magn i tude := ( o r d ( s e c t o r ( h i g h _ b y t e ) ) * 256 + o r d ( s e c t o r ( 1 o w _ b y t e ) ) ) MOD r a n g e ; 159 IF m a g n i t u d e > maxpos 160 THEN 161 s 1 g n a l _ v a l := magn i tude - range 162 ELSE 163 s i g n a l _ v a l := m a g n i t u d e ; 164 s1gna l_sequence ( t1me_d1g1t_num) := s 1 g n a 1 _ v a l • s c a l e 165 END 166 END; (eva1_s1gna1} 167 168 169 PROCEDURE p u t _ c o l u m n s ( num_chan : I n t e g e r ; t1me_sequence , s1gna1_sequence : s e q u e n c e _ t y p e ) ; 170 CONST 171 num_t1me_d1g1ts = 6 ; 172 VAR 173 i , j : i n t e g e r ; 174 BEGIN {put_columns> 175 FOR 1 := 1 TO num_t1me_d1g1ts DIV num_chan DO 176 BEGIN 177 w r i t e ( t1me_sequence(1*num_chan) 12 : 7 ) ; 178 FOR j := 1 TO num_chan DO 179 w r i t e ( s 1 g n a 1 _ s e q u e n c e ( ( 1 - 1)*num_chan+j) 10 : 3 ) ; 180 w r t t e l n 181 END 182 END; {put_co1 uitins) 183 184 185 en 186 BEGIN { d e m u l t i p l e x } 187 c l e a r _ t 1 m e _ s e q u e n c e ( t1me_sequence ) ; 188 r e a d ( num_chan ) ; 189 g e t _ d a t e ( y e a r , d a y , d a t e ) ; 190 . WHILE NOT eof DO 191 BEGIN 192 g e t _ s e c t o r ( s e c t o r ) ; 193 FOR c y c l e _ n u m := 1 TO n u m _ c y c l e s DO 194 BEGIN 195 e v a l _ t l m e ( c y c l e _ n u m , s e c t o r , d a t e , t l m e _ s e q u e n c e , num_chan ) ; 196 e v a l _ s 1 g n a l s ( c y c l e _ n u m , sec to r " , s i g n a l _ s e q u e n c e ) ; 197 p u t _ c o l u m n s ( num_chan, t1me_sequence , s I g n a 1 _ s e q u e n c e ) 198 END 199 END 200 END. { d e m u l t i p l e x } en Appendix E: INPUT DATA 6811 2C52 2E30 CD51 6702 9400 I I I I I I 1 5 3 5 0 0 0511 8E52 0130 8751 5912 CD60 I I I I I I 1 5 3 5 1 6 B911 EF52 0130 6851 0932 6E20 I I I I I I 1 5 3 5 3 2 D513 0950 1432 5E53 5640 D182 I I I I I I 1 5 3 5 4 8 2E13 CD50 6732 2363 D500 9742 I I I I I I 1 5 3 6 0 4 8300 1206 0000 0308 I I I I I 83 12 6 3 4 0611 1A52 DA30 6751 9C02 1B80 I I I I I I 1 5 3 5 0 8 6711 FE52 2E30 CD51 6722 2340 I I I I I I 1 5 3 5 2 4 D111 5152 3A30 6851 F142 F500 I I I I I I 1 5 3 5 4 0 F113 4950 B732 4C53 2150 6862 I I I I I I 1 5 3 5 5 6 3A13 6850 0232 4F63 0B10 1422 I I I I I I 1 5 3 6 1 2 The above i s a sample of the hexadecimal data d i r e c t l y from a fl o p p y d i s k . T h i s i s the c o n t e n t s of one s e c t o r i n c l u d i n g 10 groups of v o l t a g e samples and time d i g i t s and the block at the end which c o n t a i n s the dat e , sampling i n t e r v a l , and number of channels . T h i s p a r t i c u l a r example was from 15:35:00 to 15:36:12 on 12 June 1983 (83.06.12). The sampling i n t e r v a l was 4 seconds and 3 channels were recorded. Because only 3 channels are used, the complete time code i s w r i t t e n once every 8 seconds. A l s o , due to the way the Z80 microprocessor w r i t e s 16-bit v a l u e s i n t o memory, a l l p a i r s of bytes are p h y s i c a l l y s t o r e d (as shown here) i n reverse order from t h e i r l o g i c a l d e f i n i t i o n s (as shown i n F i g u r e 3.2). Appendix F: OUTPUT DATA TIME CH#1 CH#2 CH#3 162.6493056 7.05 -3.82 0.92 9.02 -2.04 2.90 162.6493981 5.13 -0.53 4.27 7.03 -2. 95 0.53 1 62.6494907 5.11 -2.80 0.02 7.65 -1 .76 4.01 162.6495833 7.03 -4.99 0.90 9.02 -2.04 0.68 162.6496759 8.63 -4.70 0.02 7.05 -0.20 2.15 162.6497685 9.10 -1 .60 1.14 7.05 -4.71 4.79 162.6498611 -9.20 0.18 -0.41 -9.51 1 .68 -4.11 162.6499537 -9.75 1 .43 -3.60 -6.52 0.65 -2.05 162.6500463 -5.93 4.01 -2.04 -5.71 4.17 -2.97 162.6501389 -6.16 2.04 -0.06 -6.58 0.22 -0.14 The above i s an example of the output of the Demultiplex program. I t re p r e s e n t s the same data shown i n Appendix E. The time c o o r d i n a t e i s expressed i n decimal days, 11 June being the 162'nd day of 1983. The va l u e s i n the other columns are i n v o l t s . Every a l t e r n a t e time value has been omitted i n order to i l l u s t r a t e the need f o r i n t e r p o l a t i o n i n t h i s 3 channel case. 

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

Comment

Related Items