fxfn; "WY: 4‘. A #1 iv a}: 'i '. w, v.“ «. . ‘ E‘Mfl“ NEW w h,” 1 11L“ ‘7“; "'5'“ 991%?» mkgsi‘wizgw‘ ‘ ‘11. L i L! y if}. "v V :3 a . v} , ‘1 ‘1' w‘. 9 l ' ‘1‘ ‘1‘ _ “:2" :1 ‘33.“, t‘x‘x‘u 21' 31:3“ ‘1“ -. 1‘ ~ . “. '~ - :1.‘ “WWW ‘x‘x‘ ‘r: ‘1‘ "« W akfi‘fiwfiggg \fisfiw‘fi‘g a. V l.‘ ‘2‘ _ 5‘“ ‘7‘: ‘ a -. try . ’1 HT?! ‘3‘." :fflbfi‘kkck 392%}:12‘1 - .~. Jaw‘xxx : ‘ .. x , .cv xv i‘ _. f“. '..‘!‘Hc‘1 . - “‘1 . fix'i‘é‘r’ "111* L‘ * ‘L‘; \V‘» ‘i‘xn‘f‘ ‘ . 1‘3. ' v u E: ‘ .‘I ~ .. ,4 a . ' ‘ . I 1‘ “ g‘m W- . \J i . {Emu “12% . win him ‘ga‘ a ' w‘g‘fl‘, Efi‘ék as} ' , . . $5 . d - 1 . 0- 1 .x‘u \\ mm 1 N‘r =. ‘9‘- q: 1‘ -“1-:: w 1 “‘3“ ‘~ ~ "FM“ u xx 1 ‘ ' ' ‘ -.1='*‘1‘13J‘IEC‘9’ ‘ ' fiééi ‘ ’ER “5133"“. ‘hvgv: ~ , ~ ‘ , V . ‘2. 3 " ‘fi 1:“? Et‘m . . ‘iwz’u‘ukwn". V}. "‘3“ “r“ ‘ EVE R H. 4"“: .. ‘ ; . mm s ‘- Qfiiufing‘t ." WEE-3‘19- " . ii'zwm‘é L“ t t‘. , iW‘Wé‘EQ‘HVéhm“ ‘1: :fi‘vhb“ 3 i” Yi‘tHEH‘i'j 130‘ 3‘33”?!le MW“ HM: 4‘ W'We-AFW‘ Li MW ‘8 ”*Wn'n‘i‘v ~in 3: Mm. 1 '3 ‘14:,“ v ‘ -'. 01%;"- ‘M gig!” ‘ am I. }‘ 1 “N” r"! This is to certify that the thesis entitled THE DESIGN AND APPLICATION OF A VIDICON RAPID SCANNING SPECTROPHOTOMETER T0 STOPPED—FLOW KINETICS presented by Erik Mattis Carlson has been accepted towards fulfillment of the requirements for Ph.D. Chemistry degree in Major professor Date Se tember 5 1978 0-7639 LIBRARY Michigan State , ‘ University > THE DESIGN AND APPLICATION OF A VIDICON RAPID SCANNING SPECTROPHOTOMETER TO STOPPED—FLOW KINETICS By Erik Mattis Carlson A DISSERTATION Submitted to Michigan State University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Department of Chemistry 1978 ABSTRACT THE DESIGN AND APPLICATION OF A VIDICON RAPID SCANNING SPECTROPHOTOMETER TO STOPPED-FLOW KINETICS BY Erik Mattis Carlson A rapid scanning stopped-flow spectrophotometer has been devel- oped. The use of a silicon vidicon array detector enables reactions to be simultaneously monitored over a spectral region of approximate- ly 280 nm. Under computer control, this spectral region can be divided into between 16 and 4096 wavelength channels, which can be scanned at frequencies from 4 kHz to 100 kHz. This allows a spec— trum with 100 channels to be acquired in as little as 1 msec. The slow response time of the silicon vidicon detector was found to limit its usefulness in the monitoring of fast reactions with large changes in absorbance. Further experiments showed that the response time of the detector can be improved by decreasing the frequency at which the wavelength channels are scanned, increasing the number of channels per spectrum and/or adjusting experimental conditions such that the signal level from the detector is about 50% of saturation. The instrument is controlled by a multi-microcomputer system. One microcomputer controls the vidicon spectrophotometer. The complete automation of the stopped-flow mixing system is handled by a second microcomputer. Another microcomputer handles interactions with the operator, mass data storage and communications with a laboratory minicomputer. A fourth microcomputer coordinates the Erik Mattis Carlson activities of the other three. The use of a multi—microcomputer system simplifies the software requirements for the individual microcomputers, improves system modularity and allows a number of operations to proceed simultaneously. A new computer language called CONVERS-M was developed to operate in the multi—microcomputer system. This language allows new commands, which are geared directly to the instrument, to be easily created and used. Commands have been created which dramat— ically simplify the coordinations of activities among the micro- computers. The use of CONVERS-M has greatly improved the versatility of the instrument by allowing new modes of operation to be rapidly developed and easily modified. The instrument has been applied to an investigation of unusual reaction rates encountered in a kinetic method for determining the total protein content of human blood serum using the biuret reaction. The unusual behavior was found to be primarily due to a shift in the wavelength of maximum absorbance in the early part of the reac- tion. Further studies indicated that the cupric tartrate complex in the reagent was absorbing over the same wavelength region and causing the shift. To my devoted wife Stephanie and Mom and Dad ii ACKNOWLEDGMENTS My sincere appreciation goes to Professor Chris Enke for the help and encouragement he has shown me throughout the course of my research at Michigan State University. I want to especially thank Professor G. E. Leroi for serving as second reader for this thesis and Professor Stan Crouch for many valuable discussions. I would like to thank Michigan State University and the Office of Naval Research for the financial support they provided. I want to thank the members of Professor Enke's research group for their help and friendship, especially Spyros Hourdakis, Rick Yost and Jim Hornshuh. My special appreciation goes to my parents for their encourage- ment and confidence which has helped so much. To my wife, Stephanie, I offer my highest appreciation. Her love and good humor have been a constant aid. The help she provided in the preparation of this thesis, by typing the initial and final drafts, proofreading and drawing nearly all of the figures, was tremendous. iii TABLE OF CONTENTS LIST OF TABLES. LIST OF FIGURES . CHAPTER 1 — INTRODUCTION. CHAPTER 2 — ROUTINE OPERATION OF THE INSTRUMENT . A. Introduction . B. An Overview of the Instrument. C. Multi-Microcomputer System Software. D. Data Analysis Software . . . . . CHAPTER 3 — A GENERAL PURPOSE MULTI-MICROCOMPUTER SYSTEM FOR RESEARCH INSTRUMENTATION . A. Introduction . . . . . . . . . . . . . B. The Evolution of the Multi-Microcomputer System. C. The Structure of the Multi-Microcomputer System. D. The External Communications System . CHAPTER 4 - THE DESIGN OF A RAPID SCANNING SPECTROPHOTOMETER FOR STOPPED-FLOW KINETICS . A. Introduction . B. Rapid Scanning Techniques in Stopped-Flow Kinetics . 1. Mechanical Scanning Techniques. 2. Array Detectors . C. The Design of the Vidicon Rapid Scanning Spectrophotometer. . . . . . . CHAPTER 5 — THE DESIGN AND CONSTRUCTION OF AN AUTOMATED STOPPED-FLOW MIXING SYSTEM. . . iv Page . vii . viii 16 21 21 22 3O 44 47 47 48 48 50 51 63 1.3.34 Page A. Introduction . . . . . . . . . . . . . . . . . . . . 63 B. The Stopped-Flow Mixing System . . . . . . . . . . . 63 C. Stopping Syringe Velocity/Position Transducer. . . . 68 CHAPTER 6 - CHARACTERIZATION OF THE VIDICON, RAPID SCANNING, STOPPED—FLOW SPECTROPHOTOMETER. . . . . . . . . . 73 A. Introduction . . . . . . . . . . . . . . . . . . . . 73 I B. Characterization of the Vidicon Spectrophotometer. . 73 1. Introduction. . . . . . . . . . . . . . . . . . 73 2. Vertical Scan Frequency . . . . . . . . . . . . 74 3. Resolution. . . . . . . . . . . . . . . . . . . 80 4. Electron Beam Current . . . . . . . . . . . . . 87 5. Charge Integration. . . . . . . . . . . . . . . 87 6. Lag . . . . . . . . . . . . . . . . . . . . . . 91 C. Characteristics of the Stopped-Flow Mixing System. . lOl D. The Monitoring of a Relatively Rapid Reaction. . . . 108 CHAPTER 7 — AN INVESTIGATION OF THE BIURET REACTION . . . . . 110 A. Background . . . . . . . . . . . . . . . . . . . . . 110 B. Experimental . . . . . . . . . . . . . . . . . . . . 112 C. Analysis of the Biuret Reaction Spectra. . . . . . . 120 CHAPTER 8 - A USER-DEFINABLE LANGUAGE FOR COMPUTERIZED INSTRUMENTATION. . . . . . . . . 129 A. The Role of Software in Computerized Instrumentation. . . . . . . . . . . . . . . . . . . 129 B. Programming with CONVERS—M . . . . . . . . . . . . . 136 C. The Structure of CONVERS-M . . . . . . . . . . . . . 141 APPENDIX A - CONVERS—M USER'S GUIDE . . . . . . . . . . . . . 147 A. Introduction . . . . . . . . . . . . . . . . . . . . 147 v .45. l- .‘a' -"- wars-'1- um:- "..-' .--..--.- "r1 '2-:.';.--r-:1_ -'-::..:1 - "*dTfiffi.) Page B. Special Characters . . . . . . . . . . . . . . . . . 147 C. Labels . . . . . . . . . . . . . . . . . . . . . . . 148 D. Parameter Passing. . . . . . . . . . . . . . . . . . 149 E. Mode Word. . . . . . . . . . . . . . . . . . . . . . 152 F. Using the Floppy Disk Drive. . . . . . . . . . . . . 152 v i G. Assembly (Compilation of Stored Routines). . . . . . 154 H. Communication with the PDP ll/40 . . . . . . . . . . 155 I. Error Codes. . . . . . . . . . . . . . . . . . . . . 157 APPENDIX B - CONVERS—M BASIC COMMAND LIST . . . . . . . . . . 160 A. Coordinator's Basic Command List . . . . . . . . . . 160 B. Communicator's Basic Command List. . . . . . . . . . 168 APPENDIX C - CONVERS—M FLOW CHART . . . . . . . . . . . . . . 171 APPENDIX D - PROGRAM LISTINGS . . . . . . . . . . . . . . . . 174 A. Microcomputer Programs . . . . . . . . . . . . . . . 174 B. Minicomputer Programs. . . . . . . . . . . . . . . . 206 REFERENCES. . . . . . . . . . . . . . . . . . . . . . . . . . 214 vi LIST OF TABLES Table Page 2—1. Routine Instrumental Commands . . . . . . . . . . . . . 8 2—2. Instrumental Parameter Codes. . . . . . . . . . . . . . 11 3-1. Backplane System Bus Assignments. . . . . . . . . . . . 45 8—1. Comparison of Common Programming Languages. . . . . . . 135 A-l. Monitor Error Codes . . . . . . . . . . . . . . . . . . 158 A-2. 'PIP' Error Codes . . . . . . . . . . . . . . . . . . . 159 vii I #7 '7 v l“ .. 1 LIST OF FIGURES Figure Page 2-1. Block Diagram of a Rapid Scanning Stopped-Flow Spectrophotometer . . . . . . . . . . . . 5 ' 2-2. Block Diagram of the Vidicon Rapid Scanning Stopped—Flow Spectrophotometer . . . . . . . . . . . . 7 2-3. Absorption Spectra at Various Times During the Biuret Reaction with Human Serum . . . . . . . . . . . 18 2—4. Absorbance (575 nm) Versus Time for the Biuret Reaction with Human Serum. . . . . . . . . . . . . . . 19 2-5. Absorbance (839 nm) Versus Time for the Biuret Reaction with Human Serum. . . . . . . . . . . . . . . 20 3-1. Distributed Single Minicomputer System. LP = Line Printer; FL - Floppy Disk Drive; DSC = Disk Drive; TRM Terminal . . . . . . . . . . . 23 Ill 3—2. Distributed Single Microcomputer System. LP = Line Printer; FL = Floppy Disk Drive; DSC = Disk Drive; TRM = Terminal; MC = Microcomputer . 24 3-3. Dedicated Bus System . . . . . . . . . . . . . . . . . 26 3-4. Time Shared Bus System . . . . . . . . . . . . . . . . 26 3—5. Cross-Bar Matrix Switch System . . . . . . . . . . . . 27 3—6. Master-Slave System. . . . . . . . . . . . . . . . . . 31 3-7. Distributed Multi—Microcomputer System. LP = Line Printer; FL = Floppy Disk Drive; DSC = Disk Drive; TRM = Terminal; MC = Microcomputer; TTY = Teletype . . . . . . . . . . . . . . . . . . . . . . . 32 3-8. The Basic Bus Switch System. . . . . . . . . . . . . . 34 3-9. Memory Maps of Typical Slave and Coordinator Microcomputers . . . . . . . . . . . . . . 35 3-10. Basic Slave Bus Switch . . . . . . . . . . . . . . . . 37 viii Figure 3—11. 3-12. 3-13. 3-14. 4-1. 4-2. 4-3. 4—4. 4-5. 5-1. 5-2. 5-3. 5-4. 6-1. 6-3. 6—4. 6—5. 6—6. 6—7. 6—8. 6—9. Addition of DMA Mass—Transfer . . . . . . . . . . Basic Coordinator Bus Switch. . . . . . Addition of the Register Bus. Register Bus Switch . . . . . . . . . The Silicon Vidicon Tube. . . Raster Scan Pattern . The Silicon Vidicon Target. Equivalent Circuit for the Silicon Vidicon Target . Detector Control System . Data Aquisition System. Block Diagram of the Stopped—Flow Mixing System . Stopped-Flow System Mixer and Observation Cell. Stopping Syringe Velocity/Position Transducer . Velocity/Position Transducer Processing Circuitry . Relative Intensity Versus Frequency . Relative Intensity Corrected for Varying Exposure Time Versus Frequency. Relative Vertical Drive Amplitude Versus Frequency. The Effect of Instantaneous Changes in Vertical Scan Frequency. . . . . . . . . . . Relative Intensity Versus Resolution. Relative Intensity Versus Channel Separation. Beam Width Versus Focus Coil Current. The Effect of Instantaneous Change in Resolution. Relative Intensity Versus Grid 1 Voltage at Various Frequencies. ix Page 39 4O 42 43 53 53 56 57 58 61 65 67 69 71 75 76 77 79 81 83 84 86 88 vi... ' _ iii-a ' __ ti:- :’ I wan-'5 fishing.“ . .. - I“ .3311 . __ ' -_ '-".I' ; .-:—:' . s . - I -- ”$1.. -,.~‘:.“-1-:I- l . - I Figure Page 6-10. Effect of Rapid Changes in Charge Integration at ‘ Various Integration Levels . . . . . . . . . . . . . 90 1 j 6-11. Signal Decay After Removal of Illumination . . . . . 93 1 6-12. Relative Lag Versus Relative Intensity . . . . . . . 95 6-13. Relative Lag Versus Resolution (Frequency = 25 kHz). 96 6—14. Relative Lag Versus Vertical Scan Frequency ' (Resolution = 255 Channels/Frame). . . . . . . . . . 97 6—15. Relative Lag Versus Relative Vertical Target Position . . . . . . . . . . . . . . . . . . . . . . 99 6-16. Relative Lag Versus Grid 1 Voltage . . . . . . . . . 100 6-17. Flow Velocity Output for 5 Separate Runs . . . . . . 103 6-18. A - Syringe Distance Traveled Versus Time B - Syringe Velocity Versus Time . . . . . . . . . . 104 7—1. Absorption Spectra at Various Times During the Biuret Reaction with Human Serum (2.2 g/L) . . . . . 115 7-2. Absorbance Versus Time for the Biuret Reaction with Human Serum. (a) 575 nm; (b) 752 nm. . . . . . 116 7-3. Absorbance (839 nm) Versus Time for the Biuret 1 Reaction with Human Serum. . . . . . . . . . . . . . 117 7—4. Absorption Spectra at Various Times During the Biuret Reaction with Bovine Serum Albumin (3.3 g/L). 118 7—5. Absorbance Versus Time for the Biuret Reaction with Bovine Serum Albumin. (a) 586 nm; (b) 779 nm . 119 7-6. Absorption Spectra at Various Times During the Biuret Reaction with Bovine Serum Globulin (3.3.g/L) 120 7-7. Absorbance Versus Time for the Biuret Reaction with Bovine Serum Globulin. (a) 578 nm; (b) 775 nm. 122 7-8. Absorption Spectrum of the Copper-Protein Complex from the Biuret Reaction with Human Serum After About 25 Minutes . . . . . . . . . . . . . . . . . . 123 7-9. Absorption Spectrum of the Biuret Reagent. . . . . . 124 1 H.5- 31: -.- Luv-1min?) :r-J- : '.':-' : ' -. '- 1 "-'-" .‘J. Hi Figure 7-10. 8-1. 8-2. 8—3. 8-4. C-1. C—2. C—3. Page Absorption Spectrum of the Copper-Protein Complex from the Biuret Reaction with Bovine Serum Albumin After About 25 Minutes . . . . . . . . . . . 126 Programming Levels of Various Computer Languages . . 134 The Structure of a Command Definition. . . . . . . . 142 CONVERS-M Library Searching Procedure. . . . . . . . 143 CONVERS-M Memory Allocation. . . . . . . . . . . . . 145 Flow Chart of the CONVERS—M Command Decoding Software. . . . . . . . . . . . . . . . . . 171 Flow Chart of the CONVERS-M Assembler. . . . . . . . l72 Flow Chart of the Label Decoding Software. . . . . . 173 xi r——’—' CHAPTER 1 INTRODUCTION Most traditional spectrophotometric detection systems used for stopped—flow kinetics are capable of monitoring reactions at only a single wavelength at a time. This is a severe limitation for many applications. For example, shifts in the wavelength of maximum absorbance due to interfering species and the presence of inter- mediates in reactions are very difficult to detect with this type of system. Recent developments in techniques for rapid wavelength scanning have helped to overcome this limitation. Rapid scanning systems allow spectra to be acquired rapidly enough to allow re— actions to be monitored over an entire spectral region. This dissertation describes the design and characterization of a multi-microprocessor controlled vidicon rapid scanning stopped-flow spectrophotometer and its application to stopped-flow kinetics. Each chapter was written to be as independent of the other chapters as possible. This allows the reader to study only those chapters in which he has special interest. A better understanding of the total instrument, however, can be obtained by first reading Chapter 2. Chapter 2 contains an overview of the instrument and a description of its normal operation. A powerful new multi—microcomputer system for instrumental control is described in Chapter 3. The first part of the chapter reviews traditional multi-microcomputer architecture. The rest of the chapter contains a discussion of the design details of the new multi-microcomputer system. This system simplifies hardware and software design and makes possible the acquisition of multiple types of data, coupled with simultaneous data analysis and instrument control. An understanding of this chapter is not necessary before reading any of the other chapters; however it does help to show how the various parts of the instrument are coupled together. A new user—definable language which operates in the multi- microcomputer system is described in Chapter 8. This language allows the creation of commands which interact directly with the instrument. Because of this, instrumental control routines can be rapidly created and modified making the total instrument very versatile. Chapters 4 and 5 provide construction details of the vidicon spectrophotometer and the stopped-flow mixing system respectively. The first part of Chapter 4 also includes a review of all of the rapid scanning techniques which have been applied to stopped-flow kinetics. Before any instrument can be operated with confidence, its operating characteristics must be well understood. Chapter 6 describes a variety of experiments which were designed to help characterize both the vidicon rapid scanning spectrophotometer and the stopped—flow mixing system. The vidicon detector's slow re- sponse time is its most serious limitation to its use in stopped—flow kinetics. Chapter 6 contains a detailed study of the conditions under which the vidicon's response time can be optimized. A final test of the system was its application to the determination of the rate constant for the well known iron/thiocyanate reaction. A, ”mmujflg'fi 5.“,va aims}? lmchi- «If? '3: 3.113 mutil- m‘ 155: '1' 1-.-l.i|h"‘"5 ~_--.u J'-."u-.' --.'i. --"‘- " 235::- '- -~ ' -"" _;" r‘-_'.:.;..' B:i::_ -|; . if“- The biuret reaction is the basis for the standard clinical chem— istry technique for determining total serum protein. The traditional procedure involves letting the biuret reaction go to completion, which takes at least 20 to 30 minutes. Recently, kinetic methods utilizing the biuret reaction have decreased the analysis time to only a few seconds. Although these techniques appear promising, a number of problems still exist. Chapter 7 describes the application of the rapid scanning stopped-flow system to an investigation of these prob- lems. a». liking-2 man. .m- ' " 'fh _.‘gfi..:.o.1,._ ‘ “.7 . CHAPTER 2 ROUTINE OPERATION OF THE INSTRUMENT A. Introduction The purpose of this chapter is to introduce the reader to the routine operation of the instrument. This is done by first pre- senting an overview of the basic parts of the instrument and des- cribing the function of each part. The next section describes the instrument's basic operating software. The data evaluation rou— tines for use on our minicomputer are presented in the last section. B. An Overview of the Instrument In traditional stopped-flow spectrophotometers the reaction under investigation is monitored by recording the change in absorb— ance with time of either a reactant, product or intermediate in the reaction. Since only a single wavelength can be monitored at a time, this process must be repeated for each wavelength at which the reaction is to be studied. The use of a rapid scanning spectropho— tometer adds another dimension to the spectrophotometric study of stopped-flow reactions by enabling the reaction to be monitored over an entire spectral region. A block diagram of a typical rapid scanning stopped—flow instrument is shown in Figure 2-1. The upper half of the figure shows the stopped-flow mixing system. This is simply a solution handling system for rapidly mixing two solutions (here labeled sample and reagent) and delivering them to an obser- vation cell. To monitor any subsequent reaction, light is passed m.) in {gig-xiii“.'o:.uI-r.¢:1-uzx_{-"n'v .1. rum-taf- Lil"? “.1- para-‘11.; u... . ... -. _ .: .- - _ ' , 'IIr-l‘..';l.1'. ;s_--- - ‘.r -. 5'- SAMPLE DETECTOR ABSORBANCE DATA PROCESSING Figure 2-1. Block Diagram of a Rapid Scanning Stopped-Flow Spectrophotometer. through the observation cell, dispersed by a monochromator and focused onto the rapid scanning detection system. The result is a three—dimensional portrait of the reaction, with time, absorbance and wavelength forming the three dimensions. , The instrument described in this dissertation is controlled by four microcomputers. A block diagram of this system is shown in ' ‘ Figure 2-2. Three of the microcomputers are used for controlling the three major sections of the instrument, while the fourth micro- computer coordinates the activities of the other three. Microcom— puter number 1 of Figure 2—2 controls the instrument's communication with the outside world (see Chapter 3). This includes interaction with the operator and a floppy disk mass storage device, and commun- ication with our PDP 11/40 minicomputer. Microcomputer number 2 controls the vidicon rapid scanning spectrophotometer (see Chapter 4). The vidicon spectrophotometer is a very sophisticated television camera which allows spectra to be acquired very rapidly. The oper- ation of the stopped-flow mixing system is controlled by microcom- puter number 3 (see Chapter 5). This microcomputer not only handles the entire mixing sequence, it also determines when the solutions have completed mixing. This is very important, for it is at that time that the rapid scanning system must begin acquiring data. C. Multi-Microcomputer System Software A listing of all of the routines mentioned in this chapter can be found in Appendix D. The most important instrumental routines are summarized in Table 2—1. This table lists the routine's name, N III VID . _‘_ ICON uu" —’ . COORD AAICRC) ' C Figure 2—2. Block Diagram of the Vidicon Rapid Scanning Stopped-Flow Spectrophotometer. [Iii-villi; iI .mpon m30fl>ogm mcflmmho Houmm mo uommumc muon we r .Houusgm may mcomo . M .muon m50fl>ogm mcflmwho psocuwz we wommuwv muofim mo .mwommpmw Haw mo>osom . .muomuuzo 30: z moumosu 2 .mo wommumc mo Edaficfle can ezefixme esp mwcflm ma .cmmgm ecu mo mow ecu um mafia m mcflzwhc kn uofim >.x ecu :o x we COHuflmom 0:“ moumooq x .moEHp z Eoumxm zofimlwommoum can mesmSHm z .AHOEoE dump cooflwfl> 8 ecu :fl 2 camcofi mo muommumc mo gonad: ofinfiwmom Edeflxms ecu mouwoau 0.2 .m0 pomuuso :fi monoum wed womwumw :ooflcfi> :owo mo 2 Hoccmzo on «web ecu moxmh z.mu .xaoEoE mump :oofivfl> memofio : .mo wommumw mnmofiu mo .Hma :fl pfismoy mohoum can Hwo Scam Nmo wommumw muomypnsm NmQ.HmQ Foam 2mmo Foam: HHZHE H302 x<2 004 :wqu ZMZQ EDD xwmqu m ew2uuxm m meuoum mo cm> .xuuusouuo mcucceem :oouwu> ecu meNuHmuuucc I HH2H> .Zm ecum ecu meEe: paw cmuc AQQOcm :o muuoemm mo segue euuuce ecu meuoum 2m mmOHmH .Euom HeEuoew cu chusueu ecu ou ma uemeuew musmuso mo H209 .zc euue ecu mesa: new cmue smm0uu so we commune meuoum zc.mo macaw .ueuuscm ecu memoHu I 932m .mhuoemm cm mcummucm Heume Esuuuemm c meuuzvom may ucuom Hewwuuu Heume :ouuumusvue euew mcumec MmeEuu z Eeumxm mcuxue ecu mecmSHm Mm.mh.z z ecu Eoum mceom meuusvo< I z uceuuso ecu musmuso I esom .c.e.ucooc .HIN muses . c159 10 any input parameters and the function of each routine. All of this software is written in the new computer language CONVERS-M, which is described in Chapter 8. The normal operation of the instrumental software is presented in this section by describing the procedure involved in a typical stopped-flow experiment. Before the instrument can be used for an experiment, the de- sired scan parameters for the vidicon spectrophotometer must be established. The input and output of these scan parameters, as well as a number of other instrumental parameters, are controlled by a set of parameter handling routines. Each parameter is identified by a 2 to 4 letter code. The important instrumental parameters, their identification codes, and their default values are listed in Table 2-2. When the operator wishes to examine the current value of the parameters, he simple types POUT (Parameter OUTput) at the ter- minal. This causes the terminal display to be cleared and the identification code for each parameter along with its current value to be displayed. The operator can alter any of the parameters by using the SET command. Upon typing this command, the routine outputs an asterisk (*) to the terminal. The operator then types the identification code for the parameter he wishes to alter along with its new value. After this parameter has been entered the routine outputs another asterisk indicating it is ready to input another parameter. Parameter input is completed by typing END. For example, if the operator wished to change the number of scans which were averaged together (AVGS) to 4 and the number of integration frames per readout frame (INT) to 2, he would type: .muemeuec mo Hecesz o at .muequdo mo Hecesz o 0* W .euHsvoe ou euuoemm mo Hecesz H mzum .mqeom Hem Hecceco mo Recess ecu wecHEHeueoV .uceEeHUCH anew HeucoNHHo: mmHecceco NoHvov wen .uon ecu mo ESEHcHE Ho uemeuec e mo esHe> EDEHcHz 0 2H: .uon ecu mo ESEwaE Ho uemeuec e mo esHe> ESEme: o x fimzxmmvnm ommm 1 .uemeuew :ooHcH> come :H mayo: Ho Hecasz 0 meme 1 .xde :OHueumeucH Use meew oHcouuueHm mHH >cmo .uequso coee :H meuos mo Hecesz o memo .3528 52: mafia; z. 3.5 93-32 32% .Hecuewou emeue>m ou euuoemm Ho hecssz H mo>< .uecuemou emeue>e ou muuoemm mo mxeuue mo Hecesz H < COHumHuomeo esHe> uHsmmeo ewou .mevou ueueaeuem HmucessuumcH .NIN eHcmH 12 SET * AVGS 4 * INT 2 * END Many of the data handling routines of the instrument operate on an entire set of data at a time. The size and number of these sets of data are variable and must be initialized by the operator. The software recognizes two distinct types of data. The most common type of data is the data generated by the vidicon spectrophotometer. Sets of this type of data are simply referred to as "datasets". Sets of the other type of data are referred to as "cut-sets". This name comes from the type of data which is normally stored in these sets, which involves "cuts” of intensity with time through the stopped—flow spectra at a single wavelength. All vidicon datasets must reside within the 8 k-byte vidicon data memory area. The memory allocation for the datasets is established by the DMEM com- mand. If the following command sequence is typed at the terminal: DMEM 102 0 the DMEM routine will divide the data memory into datasets, each of which contains 102 words of storage (2 bytes/word). The largest possible number of datasets will be created (40 in this case) and each will be initialized to contain zeros. The creation of cut—sets is controlled by the command MCUT. The creation of two cut—sets would be accomplished by typing: 1 1 1 .5 I - _I- " - - I . u h 4 I - 'r '- as". 13 MCUT 2 The length of each cut-set in words would be equal to the current number of datasets. When a reference to a specific set of data is required by a data handling routine, the reference must consist of two parts. The first part of the reference is a single letter which specifies the type of data involved (C for cut-sets and D for vidicon datasets). The second part of the reference specifies the decimal number of the set of data (from 1 to a number equal to the total number of sets). For example, if the operator wished to plot the data contained in vidicon dataset number 23, he would type: PLOT D 23 Normally it is desired that the reaction data from the instrument be in the form of the absorbance versus time over a specified spectral region. Since the only output from the vidicon spectrophotometer is in the form of the signal intensity versus wavelength, it is necessary to calculate the absorbance values. This is done by a data evaluation routine on our laboratory minicomputer. The absorbance (A) at wave- length I is derived from the signal intensity (S) of a reaction spec- trum by the equation: udnere RI is the signal intensity with a reference solution and DI is the signal obtained when no light is falling on the detector (dark .. . . ' .I ._r- __ . r, liiL-lai Tar-.35! $11.35*. ‘- . in. one: 3' '! ui.’ ".. 31:; .!='.'I '5‘“; "'1 - --. | - 14 current signal). This requires that three different types of data be acquired. First, the observation cell must be filled with the sel- ected reference (100% transmittance) solution. In order to assure that old solutions have been removed completely from the observation cell and drive syringes of the stopped-flow mixing system, the system must be flushed a number of times with the reference solution. This is accomplished by the FLUSH command. This command acquires an octal number from the operator which designates the number of times the stopped—flow mixing system is to be flushed. After the flushing is completed, the operator acquires and stores the reference spectrum by typing the following set of commands: OPEN CLR8K SCAN STORE D 1 * FILEl The OPEN command causes the shutter to the light source to open. The next instruction (CLR8K) clears the dataset memory. The spectrum is obtained by the SCAN command. The spectrum, which is placed in data— set D l by the SCAN command, is then stored on a floppy disk mass storage device by the command STORE. This command sends an asterisk to the terminal and the operator then specifies the name for the file which is to be created. The dark spectrum is obtained in a similar Jnanner except that the command SHUT (which closes the shutter) is used in place of the OPEN command. 15 The next step in the procedure is to fill the syringes with the two reactant solutions. This is accomplished by again flushing the system by using the FLUSH command. The following command sequence is then used to acquire the intensity versus time profile for the re- action: OPEN CLR8K SFSCAN l,47,5 The first two commands open the shutter and clear the dataset memory. The next command (SFSCAN) requests three parameters from the operator. The first parameter indicates the number of times the mixing system is to be flushed before the actual data run is taken. The next parameter is the trigger point. The trigger point is used to specify the time at which the reactant solutions are mixed and the spectra can begin to be taken. Under normal operation the trigger point is always set to 47. (For more information on the trigger point and its selection, see Chapters 5 and 6.) The final parameter specifies the number of spectra which are skipped between the acquisition and storage of succeeding spectra. The array of spectra which is acquired by the SFSCAN command can be stored on floppy disk by using the command TSTORE. This command is similar to the STORE command described earlier, except that TSTORE outputs the entire array of datasets instead of just a single dataset. TSTORE also sends an asterisk to the terminal, in- dicating that the operator should enter the name of the file that is to be created. 16 The reference and dark spectra should be taken immediately before the reaction spectra. This helps to eliminate any errors caused by slow drifts in the light source, dark current, etc. in the vidicon spectrophotometer. The more powerful data analysis routines are all run on our PDP 11/40 minicomputer. The process by which the data files are trans- ferred from the instrument to the minicomputer is described in Sec— tion H of Appendix A. The operation of some of the data evaluation routines is the subject of the next section. D. Data Analysis Software A great many routines were created on our PDP ll/40 minicomputer for the analysis of various types of data from the vidicon stopped- flow system. All but two of these were special purpose routines which were used for only a short time (primarily during the characterization of the instrument). The two routines which are described in this section are general purpose routines which were used for most of the standard data analysis. All operator interactions are handled through the minicomputer's terminal. When the data files are first transferred from the instrument to the minicomputer, they are stored in binary format to conserve space. Since files in binary format are more difficult to work with, almost all of the data evaluation and plotting routines were designed to work with standard ASCII file formats. The program CONV is used to convert the binary files into ASCII files. The program first requests the file names of the input and output files. The program assumes 17 that the body of the data in the input file consists of only a single variable (the 'Y' value). The operator then supplies an initial value and an increment for a second variable (the 'X' value). Upon completion of the conversion the output file contains the entire set of data in the form of X and Y data pairs. The evaluation of the stopped—flow reaction data is performed by the SF program. This program starts by requesting three binary input files. The first 2 files must contain the reference and dark spectra. The third file contains the array of stopped-flow reaction spectra. At this point, the data can be thought of as a three— dimensional array with absorbance, wavelength and time forming the three dimensions. The SF program allows two—dimensional slices to be made through this array. These slices can be in the form of either the absorbance versus time at a specified wavelength of the absorbance versus wavelength at a specified time. Figure 2-3 shows typical data from the vidicon stopped—flow spectrophotometer. This figure shows the absorbance versus wavelength at various times during the biuret reaction with human serum protein (see Chapter 7). Figures 2-4 and 2—5 show the absorbance versus time for this reaction at wavelengths of 575 nm and 839 nm respectively. The sensitivity of the vidicon system for monitoring reactions is quite apparent in Figure 2-5, where the total absorbance change is less than 0.01. 01$ ABSORBANCE 550 Figure 2-3. 18 g 700 WAVELENGTH (IIIII) Absorption Spectra at Various Times During the Biuret Reaction with Human Serum. 850 0.25 AISOR BANCE Figure 2-4. 19 I 2 3 4 5 TIME (n Absorbance (575 nm) Versus Time for the Biuret Reaction with Human Serum. 0.02 3 ABSORBANCE Figure 2-5. 20 I 2 3 4 5 TIME (s) Absorbance (839 nm) Versus Time for the Biuret Reaction with Human Serum. CHAPTER 3 A GENERAL PURPOSE MULTI—MICROCOMPUTER SYSTEM FOR RESEARCH INSTRUMENTATION A. Introduction For many years the automation of laboratory instrumentation was accomplished almost exclusively through the use of minicomputers. Although minicomputers were far less expensive than large computer systems, they were still expensive enough that most research laborator- ies could not afford to use a separate minicomputer for each automated instrument. Normally, a single minicomputer was used to control a number of instruments. This reduced the total cost of the computer system; however, the finite speed of the minicomputer meant that only a small number of these instruments could be operated simultaneously. More recently, the falling costs of minicomputer systems and particu- larly the introduction of small, inexpensive microprocessors has made it economically feasible to use one or even more computers to control each instrument. This has made it possible for laboratory computer systems to be implemented in a variety of configurations (1-6). The optimum configuration of a laboratory computer system depends on the environment in which it is found. In our research group we have devel- oped a powerful multi—microcomputer system for controlling sophisti- cated instrumentation in research laboratories. The evolution of our laboratory computer system from a single minicomputer is traced, and details of its current hierarchical multi-microcomputer configuration is presented in the following sections. 21 22 B. The Evolution of the Multi-Microcomputer System Originally, all the computerized instrumentation developed in our research laboratory was controlled by a single minicomputer. In its most advanced form, this single minicomputer system contained a Digital Equipment Corporation PDP 11/40 minicomputer and various peripheral devices. This system is shown in Figure 3-1. This type of laboratory computer system had a number of disadvantages, the major one being that almost all of the instruments interfaced to the system required the full-time attention of the minicomputer. This meant only a single instrument could be operated at any one time. Also, relatively complex interfaces were required to connect the instruments to the minicomputer. In order to overcome these difficulties, we began to search for ways to improve our laboratory computer system. The first proposed improvement to the laboratory computer system was to place a microcomputer on each instrument. The proposed system is shown in Figure 3—2. The microcomputers would handle the high—speed data acquisition and instrumental control for each instrument. Any high—level data evaluations which were required would still be handled by the minicomputer. With this system, routine operation of the instrument could be performed without requiring intervention from the minicomputer, thereby allowing any number of instruments to be operated simultaneously. Also, due to the microcomputer's simpler bus structure, interfacing to the microcomputer was much simpler than interfacing directly to the minicomputer. The use of a single microcomputer to control an entire instrument would be perfectly adequate for a large variety of applications. ‘- 23 INSTRUMENT INSTRUMENT Figure 3-1. Distributed Single Minicomputer System. LP = Line Printer; FL = Floppy Disk Drive; DSC = Disk Drive; TRM = Terminal. INTERFACE INTERFACE 24 INSTRUMENT INSTRUMENT COMMUN. CONTROL Figure 3-2. Distributed Single Microcomputer System. LP = Line Printer; FL Floppy Disk Drive; DSC = Disk Drive; TRM = Terminal; MC Microcomputer. 25 However, many of the instruments we planned on implementing required the asynchronous acquisition of multiple types of data at extremely high data rates, coupled with simultaneous data evaluation and instru— mental control. These instruments were complex enough that it would have been extremely difficult to control them even with a dedicated minicomputer and obviously impossible with a slower microcomputer. The solution to this problem was to use a number of microcomputers. By careful planning in the initial design of an instrument, tasks which must be performed simultaneously can be assigned to different microcomputers. In this way complex problems of simultaneous data acquisition and/or instrumental control can be reduced to a few vir- tually independent, synchronous tasks. This makes the required hard- ware and software for any single microcomputer in the system far easier to create and modify. The overall effectiveness of any multiple microcomputer system is determined to a large extent by the structure of the communication system within and between the various microcomputers in the system. A great many different configurations of multi-microcomputer systems have appeared in the literature (7—16). Almost all of these multi- microcomputer systems can be described in terms of three basic con- figurations: the dedicated bus system (Figure 3-3), and the time— shared bus system (Figure 3-4), and the cross-bar matrix switch system (Figure 3-5). More complex configurations consist of either expansions of these basic systems (e.g. multiple time—shared buses) or combinations of them. The dedicated bus configuration (Figure 3—3) is the simplest form 26 Figure 3-3. Dedicated Bus System. Figure 3-4. Time Shared Bus System. 27 I/O I I/O 2 Figure 3-5. Cross-Bar Matrix Switch System. I IIIIIIIIIIIIIIIIlIIIIIIIIIIIIII!!!!!!!!EEEEEEEEE============::::;__-—_g=z.s_-v , 28 of multi-microcomputer system. It consists of a number of virtually independent microcomputers interconnected by means of a communications bus. The communications bus can have many different forms. The bus can connect I/O ports on the microcomputers or even be a direct CPU to CPU link. Both serial and parallel data transfer formats can be im- plemented, depending on the speed and complexity requirements of the system. Since the individual microcomputers are virtually independent, timing conflicts between them are essentially eliminated. This results in overall high system throughput with relatively simple hardware and software required to maintain the communications link. The major disadvantages of this type of system are difficulty in expansion and the inability of the system to reassign tasks dynamically in case of a single microcomputer failure. In its simplest form, the time-shared bus system, (Figure 3—4) consists of a single bus shared by all the CPU's, memory and I/O ports in the system. A bus arbitrator is required to resolve timing con- flicts on the bus. The major disadvantage of this type of system is the reduction in system throughput caused by bus conflicts between CPUs. This situation can be improved (but never eliminated) by removing the program memory and some of the I/O ports from the time-shared bus and dedicating them to individual CPUs. In this way bus conflicts can occur only when the microcomputers are accessing common memory and I/O ports found on the time-shared bus. Communication between microcom- puters in this system is normally accomplished by storing status words in ”mailbox addresses" located in the common memory. The major advantages of this type of configuration are relatively low intercon- nection costs, modularity and the ability to reassign tasks dynamically 29 on the time-shared bus. The most powerful of the three basic systems is the cross-bar matrix switch configuration (Figure 3-5). With this configuration, any CPU can access any memory or I/O port in the system. Conflicts only occur when one device is accessed simultaneously by more than one CPU. This configuration has very high system throughput, while retaining the ability for dynamic task reassignment. Unfortunately, the extreme complexity and cost of the matrix switch severely limits the size and expandability of this configuration. In any multi-microcomputer configuration the individual micro- computers can either all be of the same "importance" or one or more can be selected to be more "important” than the others. In a system utilizing dynamic task assignments, this can take the form of a micro— computer which determines the tasks that will be assigned to the rest of the microcomputers. Its most extreme form is a hierarchical master- slave system in which the slave microcomputers are essentially intelli— gent peripherals of the master microcomputer. The multi-microcomputer configuration which we finally adopted can best be described as a hierarchical master-slave system with a hybrid dedicated-bus/time—shared bus configuration. The master-slave config- uration was selected to simplify the coordination of the various tasks in the system. The high throughput required in the complex instruments we planned to computerize was best accomplished through the use of an essentially dedicated bus configuration. Some characteristics of a shared memory system were also utilized for a simple yet powerful inter— processor communications system. An approximate block diagram of the 30 system is shown in Figure 3-6. A detailed description of this system is presented in the next section. The resulting laboratory computer system is shown in Figure 3—7. Communications between the minicomputer and the multi—microcomputer systems is accomplished through the use of a communications controller developed in our laboratory (17). Simple instruments which require only a single microcomputer could also be developed and could communi- cate with the minicomputer through this communications controller. C. The Structure of the Multi-Microcomputer System The multi-microcomputer system which we developed is based on Intel's 8080A microprocessor chip. This microprocessor was selected because of its high speed, extensive and relatively powerful instruc- tion set and the availability of a large variety of standard support chips. Although the system hardware would allow the use of virtually any microprocessor chip, this has never been attempted due to the complexity of the software which would be required in a system having a variety of instruction sets. Each individual microcomputer in the system has a standard 8080A structure with memory-mapped I/O used exclusively. A basic familiarity of this structure and the standard 8080A bus signals is necessary to fully understand the detailed structure of the multi-microcomputer system. This information is readily available in the literature (18). During the actual execution of an assigned task, each micro- computer is completely independent of the others. The sequencing and coordination of the individual tasks is accomplished by a single Figure 3-6. _ -421“ kgrfi ,, _ 31 SLAVE T SLAVE 2 MASTER Master-Slave System. 32 INSTRUMENT CONUAUN. CONTROL INSTRUMENT Figure 3-7. Distributed Multi-Microcomputer System. LP = Line Printer; FL Floppy Disk Drive; DSC = Disk Drive; TRM = Terminal; MC Microcomputer; TTY = Teletype. II II 33 microcomputer which we have appropriately labelled the coordinator microcomputer. The coordinator microcomputer communicates with the slave microcomputers in the system through the use of a dedicated communications bus. When in use, this communications bus is a simple extension of the coordinator's local bus. The communications bus consists of 16 address lines, 8 data lines and 5 control lines (MEMW, MEMR, DBIN, READY and MASTER—RESETU. A bus switching system is utilized to insure that only one slave is accessed at a time. A basic block diagram of this system is shown in Figure 3-8. The bus switch is controlled by the upper address bits. We have found that in most cases a total of three address bits (allowing a total of 7 slave micro- computers) is optimum. The memory maps of typical slave and coordin- ator microcomputers are shown in Figure 3-9. With this configuration, an 8K block of each slave is accessible by the coordinator. This address block is always arranged to coincide with the start of the address space in the slave. Normally this block contains the slave's random access memory (RAM) and any I/O ports which might be useful to have accessible to the coordinator. The remaining 56K of the slave's memory contains the rest of the I/O ports and the slave's read only memory (ROM). The basic communications system also includes a set of three lines connecting the coordinator with the slaves. These lines consist of a slave hold line, task completed flag and reset line for each slave in the system. The hold line is used to allow the coordinator to control When each slave in the system is running. The task completed flag iJidicates when a slave has completed an assigned task. The coordinator 34 COORDINATOR SLAVE I COMMUNICATIONS BUS Figure 3-8. Basic Bus Switch System. 35 64K COORDINATOR SLAVE 64 K IUOT SLAVE 7 ACCESSIBLE BY 56K COORDINATOR ROAA SLAVE I LOCAL RAM, ROM, I/O Figure 3—9. Memory Maps of Typical Slave and Coordinator Microcomputers. can force any slave to start program execution at address zero by using that slave's reset line. The circuit diagram of a standard slave bus switch is shown in Figure 3-10. When the coordinator attempts to access an address on the slave, the address decoder causes a hold to be sent to the slave CPU. The coordinator's READY line is also pulled down causing the coordinator to go into a wait state. When the slave completes its current instruction cycle the HLDA (HoLD Acknowledge) line goes high, and the slave's system bus is tri—stated. This causes the bus switch to be enabled and the coordinator to be released from its wait state to complete the transfer. The DBIN signal from the coordinator‘s control bus determines the direction of the data transfer through the bus switch. The bus switch and the three external control lines enable the coordinator to exercise a high degree of control over the execution of tasks by the slaves. The lowest address block in each slave contains RAM program memory. The first few addresses always contain a subroutine call instruction. When the coordinator requires a task to be performed by a slave, the coordinator uses the bus switch to place the address of the subroutine which accomplishes that task into this subroutine call instruction. The coordinator then resets the slave and releases its hold line. The slave will execute the sub— routine call and perform the desired task. On returning from the task subroutine the slave sends the task completed flag to the coordinator. For simplicity, the task completed flag is usually generated by the INTE (INTerrupt Enable) signal in the slave's CPU. This allows a COMMUNICATIONS BUS Figure 3-10. 37 SLAVE CPU III I ADDRESS BUS D ATA BUS SWITCH CONTROL BUS Basic Slave Bus Switch, 38 single, rapid one byte instruction to generate the flag. General purpose routines have been created which greatly simplify the pro- gramming required to enable the coordinator to force a slave to execute a specific subroutine. Further details about these routines are found in Chapter 8. In most applications, the bus switch and external control lines are adequate for all forms of communication between the various micro- computers. Certain applications however, require more advanced forms of communication. One such situation is the need to transfer large blocks of data at very high data rates. The coordinator can be used to transfer blocks of data, but its data transfer rate is limited to a maximum of 50 kHz. By using direct memory access (DMA) circuits the data transfer rate can be raised to at least 1 MHz. If these DMA cir— cuits were located on the coordinator's bus the coordinator's through- put would be seriously reduced. To alleviate this problem, the basic system can be modified as shown in Figure 3-11. By placing a bus switch between the coordinator's system bus and the communications bus, the coordinator can be isolated from the communications bus when it is being used for DMA data transfers between slaves. DMA transfers are set up by the coordinator. Any conflicts on the communications bus between the coordinator and the DMA circuitry are resolved by the switch control. The coordinator is always given the highest priority for communications bus access. Figure 3—12 shows the standard bus switch for the coordinator. When the coordinator attempts to access an address requiring the use of the communications bus, the communica- tion bus request line (CBR) goes high. Whether or not the coordinator 39 COORDINATOR CONTROL l o SLAVE I CONTROL I 0 SLAVE 2 Figure 3-11. Addition of DMA Mass-Transfer. 40 m D m m 2 O z < E z 3 E E O U DATA BUS CONTROL BUS Figure 3-12. Basic Coordinator Bus Switch, 41 is granted immediate access to the bus is determined by the state of the communication bus busy line (EBB). When this line is high, the coordinator is granted immediate access. If the bus is currently busy, this line will be low, and the coordinator will enter a wait state until the current DMA transfer cycle is completed. Another form of communication which is sometimes required is the transfer of status words or a few bytes of data between slaves. This can be accomplished by the coordinator, but the resulting transfer is extremely slow and degrades the throughput of the coordinator and both slaves. To overcome this limitation, an additional dedicated communi— cations bus was designed. This new bus, named the register bus, is shown in Figure 3-13. The register bus consists of 8 address lines, 8 data lines and 3 control lines (MEMR, MEMW and DBIN). All micro— computers in the system have equal priority for access to the register bus. By means of the register bus, it is possible to access special registers which are located on the individual microcomputers. In this way, slave 1 could write a status word into a special register located on its bus and that status word could be read by any other microcomputer in the system by using the register bus. Bus conflicts on the register bus are resolved by the register bus switch circuit (Figure 3-14) and a register bus controller circuit. Each micro— computer requiring access to the register bus must contain the bus switch circuit. When a microcomputer requires the use of the register bus, it generates a chip select dfifi signal that causes a register bus rcsquest (BBB) to be sent to the controller. The microcomputer will be iri a wait state until the register bus busy line (RBB) goes high and - m I I I I OL CONTR COORDINATOR CONTROL I I/O 0 2 g 9 m m .4 U5 "'1 z CONTROL SLAVE] CONTROL a Q a p c < I I V‘ g u s - ° 2 E l/O O u I SLAVE 2 I ‘n . 0 I/O 2 Figure 3-13. Addition of the Register Bus. 43 __ -, READY Bl. . ADDRE DECOD REGISTER BUS CPU SS ER 3-STATE ADDRESS BUS BUS DATA BUS CONTROL BUS SWITCH DIR Figure 3-14. Register Bus System. 44 it is granted access to the bus. Even when the register bus and DMA transfer circuits are included, the total circuitry required to implement the inter-processor communi- cations system is surprisingly small. The standard use of wire wrapping for all digital circuit connections allows the microcomputer and inter- face chips to be packed tightly together. Often the entire slave microcomputer system including the CPU, memory, task interface and all the bus interfacing circuits can be easily contained on a single 6 x 8 inch circuit card. An entire multi-microcomputer system is normally contained in a standard BUD card rack. This card rack contains twelve, 58 pair printed circuit board edge connectors. The lower 39 pairs of the edge connectors are bused together. The pin assignments of this backplane system bus are given in Table 3-1. The upper 19 pair of connectors are available for individual connections between boards and to external circuits. D. The External Communications System One of the primary design goals of this laboratory computer system was to make each instrument virtually independent of the mini— computer during standard operation. In order to accomplish this goal adequately, the operator must be able to run a variety of experiments with the instrument, evaluate the results and store selected results without any intervention from the minicomputer. The ability to design and execute totally new experiments without using the minicomputer would also greatly improve overall laboratory throughput. The realization of these goals requires rather complex Table 3-1. Pin Component Side 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 45 Backplane System Bus Assignments. Data II II II Address II II II DBIN ONAOONAO‘ 32 MASTER RESET Address 14 II 10 II 8 Address 6 II 4 II 2 II 0 + 24V - 24V - 15V + 15V + 5V Wire Wrap Side Data II II II Address HWU‘IVI—‘LNUIV El Address II II MEMW MEMR GND + 24V — 24V - 15V + 15V GND GND Comments Register Bus II II II II II II II II II II Communications Bus II II II II II II II II II II II II II II II II II II II Power II II II II II II II -_,.. 46 communications external to the multi-microcomputer system. The system currently provides a variety of modes of external communication. Typically, communication between the operator and the system is accomplished through a video terminal. This terminal consists of a Ball 9 inch CRT monitor, a Matrox MTX—16328L 16 x 32 character alpha- numeric display circuit, a Matrox MTX-2562-1 graphics display circuit and an Electronics Warehouse EW—lOO ASCII keyboard. The alphanumeric capabilities of the terminal allow it to be used not only for operating the instrument, but also for program development. The terminal's graphics system allows preliminary data from the instrument to be easily displayed. A Persci Model 270 Dual Diskette Drive with a Model 1070 Intelligent Diskette Controller provides local mass storage for programs and data. Parallel, high speed data transfers between the minicomputer and the multi-microcomputer systems are performed through the use of a communications controller developed in our laboratory (17). This controller also contains a link to a teletype for generating printed copies of programs and data. All of these communications tasks are performed by a single slave micro, the communicator slave micro. Standard routines have been developed for all of these task; details of these routines can be found in Chapter 8. CHAPTER 4 THE DESIGN OF A RAPID SCANNING SPECTROPHOTOMETER FOR STOPPED-FLOW KINETICS A. Introduction Most spectrophotometric detectors used for stopped—flow kinetics monitor the course of a reaction at only one or two wavelengths. The ability to monitor the course of a reaction simultaneously over a range of wavelengths offers tremedous advantages in certain applica- tions. One of the most important applications of rapid wavelength scanning techniques in stopped—flow kinetics is in the determination of the number and types of species present, particularly the detection of reaction intermediates and the subsequent investigation of the kinetics of the formation and decay of these intermediates (19, 20). Rapid scanning techniques also allow two or more reactions to be monitored at different wavelengths simultaneously (21, 22). Also, many standard kinetics investigations could benefit by the initial use of a rapid scanning system for establishing the optimum analysis condition for later study with a more sensitive single wavelength system (23). The first part of this chapter contains a review of the types of rapid wavelength scanning techniques which have been applied to stopped-flow kinetics. The last section describes the design of the silicon vidicon rapid scanning spectrophotometer which was used throughout this research. 47 48 B. Rapid Scanning Techniques in Stopped-Flow Kinetics A great many techniques have been developed which allow a range of wavelengths to be rapidly scanned, and a number of excellent re— views can be found in the literature (24—27). However, only a few rapid scanning techniques have been applied to stopped-flow kinetics. These techniques can be divided into two general categories according to the method by which the wavelength is scanned. Mechanical scanning techniques involve the mechanical movement of a mirror, grating, or other element in the optical system, which causes the wavelength region to be swept past a stationary detector. Array detectors com— prise the other general category. In this method, the dispersed spectrum falls directly on the array detector, which performs the wavelength sorting electronically. 1. Mechanical Scanning Techniques The first application of rapid scanning techniques to stopped- flow kinetics was reported by Dye and Feldman (28). The system utilized a Perkin—Elmer Model 108 rapid scanning monochromator (no longer commercially available), and wavelength scanning was accom- plished by a rapidly rotating mirror. The resulting spectra were displayed on an oscilloscope. This system has since been modified and interfaced to a minicomputer (29, 30). The scan rate can be varied between 3 and 150 spectra per second. With a fixed sampling rate of 20.4 kHz, the resolution at the above scan rates varies from 136 to 6800 sampled points per spectrum. The width of the wavelength region which is scanned can be varied by the tilt of the rotating 49 mirror. Noise levels as low as 0.002 A.U. (absorbance units) have been reported (31). A mechanical scanning technique is also used in the system de— veloped by Wightman, et a1. (32). This system is based on the Harrick Scientific Corporation rapid scanning spectrometer originally developed by Kuwana (33). Wavelength scanning is accomplished by the mechanical movement of a small mirror mounted on a low inertia galvanometer armature. The movement of the mirror is produced by the application of a sawtooth or triangular waveform to the galva— nometer. The width of the spectral region scanned, the number of sampled points per scan, the scan rate and the repetition rate can all be varied under computer control. At maximum, a 50—point 250 nm spectrum can be scanned in 1.2 msec with a repetition rate of 500 Hz. However, wavelength nonlinearities were observed at high scan rates. Single scan noise levels as low as 0.01 A.U. were reported (32). Hollaway and White have developed a rapid scanning stopped—flow spectrophotometer for applications in biochemical studies (34). This system utilizes a Norcon Model 501 scanning monochromator. Wavelength scanning is accomplished by the rotation of a wheel con- taining 24 mirror pairs. Variations in the mounting of the 24 mirror pairs causes a different baseline for each spectrum. This problem has been overcome by a circuit which switches in a correcting voltage for each spectrum. The detection system is linear over a range of 1.5 absorbance units. The single spectrum noise was found to be normally less than 0.02 A.U. A single spectrum of about 200 nm is taken in l msec with a repetition rate of 800 spectra/sec. A total 50 of 32 spectra, each consisting of 256 8—bit words, can be stored with the current system. Another rapid scanning stopped—flow system for biochemical ap— plications has been reported by Faini, et a1. (35). Mechanical wavelength scanning is accomplished by the movement of a small grat— ing attached to a galvanometer. A computer—generated triangular waveform is used to move the galvanometer. A 128 point 400 nm spectrum can be acquired in 6 msec. However, the repetition rate is only 50 spectra/sec. 2. Array Detectors The first application of an array detector to stopped—flow kinetics was demonstrated by Milano, et a1. (36). This system utilized a silicon vidicon TV camera tube (RCA No. 4532A) as a detector. The original system could operate over the wavelength region from 400 to 800 nm. Later, the use of a silicon vidicon tube with a fused silica faceplate (RCA No. C23246) extended the useful wavelength region down to about 200 nm (19). The wavelength region scanned in single spectrum could be varied from 100 to 400 nm by changing the grating. Scanning rates could be varied from less than 0.1 Hz up to 250 Hz for the standard 200 point spectrum. The de- tector response was found to be linear with intensity over a range of four orders of magnitude. The single scan noise of this system was 0.002 A.U. Nieman and Enke also developed a silicon vidicon rapid scanning spectrophotometer which has been applied to stopped-flow kinetics (23, 51 37, 38). This system was shown to be linear over at least 3 1/2 orders of magnitude with a single scan signal-to-noise ratio of 220. The number of electronic channels in the 230 nm wide wavelength window could be varied from 32 to 4096 under computer control. Scan repetition rates as high as 500 Hz could be achieved. Dessy has reported the design of a rapid scanning stopped—flow spectrophotometer which utilizes a self-scanning linear photodiode array as a detector (39). However, no data have ever appeared on the characterization or application of this system. The lack of application of linear photodiode arrays as stopped-flow detectors is probably due to the low sensitivity and S/N ratio which have been reported for these devices. Yates and Kuwana evaluated the use of a linear photodiode array as a rapid scanning detector and found that it was linear from 0 to 1.5 A.U. and had a maximum signal-to-noise ratio of only 100 (40). They believed that much of their noise was due to their signal processing electronics. Other sources have reported somewhat better results (41, 42). C. The Design of the Vidicon Rapid Scanning Spectrophotometer This section contains an overview of the design of the vidicon spectrophotometer which was used throughout this research. The actual construction of the scanning and detection circuitry was done by Jim Hornshuh, and construction details can be found in his thesis (43). The silicon vidicon tube was selected as the detector in the stopped—flow system for a number of reasons. Previous experience in 52 our group with the vidicon detector (38) had convinced us of the power of this detector and suggested methods by which the overall performance of the system could be improved. In general, vidicon detectors tend to show lower noise levels than mechanically scanned detector systems. This is due primarily to a combination of two factors. The main source of noise in mechanical systems often results from mechanical vibrations in the scanning element (32), which are eliminated in the vidicon detector. Further noise improvements are a result of the integrating character of the vidicon detector. Finally, the vidicon detector allows sophisticated yet flexible computer control of the electronic scanning circuitry. The silicon vidicon tube which was selected in this work was the RCA C23246. This tube has a fused silica faceplate to allow operation in the UV region. Figure 4-1 shows the typical arrangement of a silicon vidicon tube and associated magnetic deflection coils. When the dispersed radiation is focused on the vidicon target an equivalent charge pattern is generated. This charge pattern is read out by scanning an electron beam across the target. Normally, scan— ning is performed by a raster scan technique as shown in Figure 4—2. With this type of pattern, the horizontal or wavelength axis is generated by a staircase deflection of the electron beam by the horizontal deflection coil. Each step in the staircase represents a separate wavelength. Vertical scanning along the slit height axis is accomplished by applying a sawtooth waveform to the vertical deflection coil. The dashed lines in Figure 4—2 represent the ver- tical and horizontal retrace paths followed by the electron beam. 53 ALIGNMENT COIL \ FOCUSING cons I: DEFLECIION YOKE TARGETN ELECTRON GUN l NELECTRON BEAM I ANODE MESH—)1 VIDEO SIGNAL Figure 4-1. The Silicon Vidicon Tube. WAVELENGTH Figure 4—2. Raster Scan Pattern. I . - ' ' I' I I a- ' I. - I" I it” _-.-— _ . l- .. _ . _ ..—.—— -_ .g._ I ,_ @‘m :._-=»-,.—_-, .3 z— .4 ‘ 54 Any undesired read out of the target during retrace can be eliminated by blanking (turning off) the electron beam. For a silicon vidicon, the amount of current which exists during the scanning of the photo— induced charge pattern, can be related to the incident photon flux by the equation (44): where: I = Video current, amps Q = Quantum efficiency of the photosurface e = Electron charge, c N = Incident photon Density, quanta cm_2s_1 A = Target area scanned per channel, cm2 T = Detector exposure time, s T = Time to scan area A, 5 Typically, the video output current varies from a few nanoamperes to a maximum of about 700 - 800 nA. The integrating character of the silicon vidicon detector is indicated by the fact that the video current is directly proportional to the detector exposure time. To understand fully the way in which the vidicon detector integrates the incident photon flux, it is necessary to look at the vidicon target in more detail. The target consists of an n—type silicon wafer which is approximately 7/8 inch in diameter (45). The edges of this wafer are made relatively thick for improved strength while the center is extremely thin, normally about 5 - 50 pm thick. The central section of the wafer contains a large array of silicon 55 photodiodes, which are simply islands of p-type silicon (see Figure 4—3). The packing density of the photodiode array is typically 1800 diodes per linear inch. The active video area of the wafer is typically 5/8 inch in diameter. The p—n junctions form charge de- pletion regions which essentially isolate the p-type islands from the substrate and allow them to function as charge storage areas. The p-type islands can be thought of as the combination of a capac- itor (charge storage region) and a photodiode. Figure 4—4 shows an equivalent circuit for the vidicon target based on this concept. The electron beam is normally kept at a voltage of -8V with respect to the substrate. As the electron beam moves across the target the p- type islands are charged to —8V. When photons fall on the opposite side of the wafer, they generate electron—hole pairs. The voltage across the wafer tends to draw the holes into the p-type islands, which thereby slightly discharge the stored charge. When the electron beam rescans these diodes the current necessary to recharge the diodes to -8V is equal to the amount of charge discharged by the photon— generated electron—hole pairs. When no light is incident on the target, charge depletion still occurs due to thermally generated electron-hole pairs. This gives rise to a video output in the ab— sence of illumination known as the dark current. The silicon vidicon spectrophotometer control functions, which are of primary importance to its use in rapid scanning applications, are shown in Figure 4—5. All of these functions are completely under computer control. The vertical scan frequency can be varied from 3.91 kHz to 1 MHz, but the data acquisition system limits the 55 photodiodes, which are simply islands of p-type silicon (see Figure 4-3). The packing density of the photodiode array is typically 1800 diodes per linear inch. The active video area of the wafer is typically 5/8 inch in diameter. The p-n junctions form charge de- pletion regions which essentially isolate the p—type islands from the substrate and allow them to function as charge storage areas. The p—type islands can be thought of as the combination of a capac- itor (charge storage region) and a photodiode. Figure 4-4 shows an equivalent circuit for the vidicon target based on this concept. The electron beam is normally kept at a voltage of —8V with respect to the substrate. As the electron beam moves across the target the p— type islands are charged to -8V. When photons fall on the opposite side of the wafer, they generate electron—hole pairs. The voltage across the wafer tends to draw the holes into the p-type islands, which thereby slightly discharge the stored charge. When the electron beam rescans these diodes the current necessary to recharge the diodes to -8V is equal to the amount of charge discharged by the photon- generated electron-hole pairs. When no light is incident on the target, charge depletion still occurs due to thermally generated electron—hole pairs. This gives rise to a video output in the ab- sence of illumination known as the dark current. The silicon vidicon spectrophotometer control functions, which are of primary importance to its use in rapid scanning applications, are shown in Figure 4-5. All of these functions are completely under computer control. The vertical scan frequency can be varied from 3.91 kHz to 1 MHz, but the data acquisition system limits the 56 Si02 INSULATION (_.. G PHOTON —-> ’ DEFLECTION \ \/ REGION \ I I / ELECTRON BEAM ”I’m -8V P-TYPE ISLAND N-TYPE SUBSTRATE VIDEO OUTPUT Figure 4-3. The Silicon Vidicon Target. 57 __TARGET E E L ECTRON BEAM VIDEO OUTPUT Figure 4-4. Equivalent Circuit for the Silicon Vidicon Target. H Qqu mmmmsm mwuzuHI mm>Hzo onhumAme 4~mo onHumqmmo A moeuzm20mmm 4 .m-v ”Aswan 59 maximum practical vertical scan frequency to 100 MHz. The vertical scan frequency is produced by taking the output of a 10 MHz crystal oscillator through an 8-bit programmable divider circuit. The vertical scan frequency is then produced by dividing the divider circuit frequency by 10. The square wave created by the vertical frequency generator is then sent to the vertical deflection driver, which creates an approximately 200 mA peak—to—peak sawtooth waveform in the vertical deflection coil. The final division by 10 in the frequency generation system is done to create a control signal which is always exactly 10 times higher in frequency than the vertical scan frequency. This control signal is used in the video signal processing system discussed later. The horizontal deflection circuitry creates the programmable staircase waveform used for electron beam deflections on the wave- length axis. The staircase waveform is produced by the continuous addition, into an accumulator, of a programmable 8-bit step width value. The 12-bit accumulator is reset to zero on overflow. The number of steps per staircase can be found by dividing 4096 by the step width value. This technique allows the number of channels per spectrum (steps per staircase) to be varied from 16 to 4096. The addition is controlled by the vertical scan. The accumulator output goes to a D/A converter (DAC) and finally to the horizontal deflec- tion driver, which drives the 20 mA pp staircase through the hori- zontal deflection coil. The length of time required to read out a single spectrum de- pends on both the vertical scan frequency and the number of channels 60 per spectrum. The single spectrum scan time in msec can be deter- mined by dividing the number of channels per spectrum by the vertical scan frequency in kHz. For example, a vertical scan rate of 50 kHz with 100 channels per spectrum would result in a spectral scan time of 2 msec. The final control system of major importance in rapid scanning regulates the electron beam current. The beam current is controlled by the negative voltage applied to Grid 1 in the vidicon tube; the more negative the voltage the smaller the beam current. This voltage is controlled by an 8—bit DAC coupled with a high voltage buffer amplifier. The voltage on Grid 1 can be varied from about zero V to over -100 V. Figure 4—6 shows the data acquisition system. Amplifiers Al — A3 constitute the preamplification system for the vidicon detector. They are mounted within a few inches of the vidicon tube. The video output current from the vidicon target is converted to a voltage signal by amplifier Al. This voltage level is then amplified and driven back to the multi-microcomputer control system by A2 and A3. Additional voltage gain is provided by A4, and the resulting signal is electronically integrated by A5. The conversion of the integrator output to a digital form is accomplished by a sample- and-hold and a 12-bit A/D converter. A programmable, crystal-con- trolled sequencer is used to control the data acquisition system. The control of solid state switches 51 and $2 assures that A5 inte— grates the signal only from a single vertical scan. These switches can also be programmed to enable a limited amount of vertical scan 61 SLAVE MEMORY M,CR° 2 I II II "OGRAMMABH FAST CRYSTAL-CONTROLLED ADD‘R SEQUENCER DMA INTEGRATOR VIDEO INVERTER WITH GAIN CURRENT TO VOLTAGE CONVERTER Figure 4-6. Data Acquisition System. BUFFER WITH GAIN BOOSTER 62 resolution to be obtained. The section of the vertical scan which is integrated can be varied, under computer control, by varying the timing of the closure of $1. In this way, up to 8 or 9 bands (depending on the vertical scan frequency) can be resolved on the vertical axis. The data rates of up to 100 kHz of which the system is capable are much too fast for the microcomputer to acquire through software. To overcome this limitation, a specialized direct memory access (DMA) circuit was designed. This DMA circuit can be programmed to store spectra at any location within an 8K—byte data memory block. The DMA circuit operates by adding together the contents of the data memory and the incoming spectral data. This allows simple averaging of multiple spectra. The number of bytes of precision used can be varied under software control. .. ,gfl4,>¥ CHAPTER 5 THE DESIGN AND CONSTRUCTION OF AN AUTOMATED STOPPED-FLOW MIXING SYSTEM A. Introduction The stopped-flow mixing system described in this chapter is simply a sample handling system which allows two solutions to be rapidly mixed (in less than 0.01 s) and delivered to an observation cell. Any subsequent reaction between the two solutions can then be monitored by the vidicon spectrophotometer (see Chapter 4). The first stopped-flow mixing system was constructed by Chance in 1940 (46—48). Since that time a large number of modifications and ap— plications of stopped—flow mixing systems have appeared in the lit- erature. Recently an excellent review of the stopped—flow technique and existing stopped-flow instrumentation was published (49). The level of automation in stopped-flow systems varies widely. In the most highly automated systems (50-53), the instrument is nearly completely automated from the initial sample preparation through data acquisition and analysis. In the stopped-flow system described in this chapter, a slightly more conservative approach to the auto- mation of the instrument was taken. In this system the sample preparation has been left to the operator. B. The Stopped-flow Mixing System The stopped-flow mixing system will be described in this section by first describing the overall operation of the system. The function 63 64 and construction of each of the major components of the system will then be presented in more detail. A block diagram of the stopped-flow mixing system is shown in Figure 5-1. In a normal stopped-flow run (or push), the first oper- ation is the filling of the drive syringes with the sample solutions. This is accomplished by the pneumatic drive piston shown at the top of Figure 5—1. The drive piston pulls the syringe plungers back, while the check valves insure that the syringes are filled from the sample solutions only. Next, the direction of the air pressure in the drive piston is switched, energizing the drive syringes. No solution flows at this time since the check valves keep the solutions from returning to the sample containers and the 3-way slider valve shown at the right of Figure 5-1 is in the closed position. The flow begins when the position of the pneumatically controlled slider valve is switched, connecting the Observation cell to the stopping syringe. The flow continues to force the plunger of the stopping syringe to move back until the end of the plunger strikes the stopping block. At this time the solution flow stops rapidly and the reaction occurring in the observation cell can then be monitored. After the reaction is completed, the slider valve changes position, which connects the stopping syringe to the waste container. Springs mounted on the stopping syringe push the plunger into the syringe, and force the solution out into the waste container. The various parts of the system are connected together by 1/8 inch Teflon tubing (1.5 mm I.D.) with Altex chemically inert tubing end fittings (Altex Scientific Inc., part no. 200-15). The pneumatic 65 STOPPING BLOCK DRIVE HSTON DRIVE SYRINGES STOPPING SYRINGE CHECK ‘VALvEs SAMPLE SOLUTIONS 3-WAY‘ SLIDER VALVE Figure 5-1. Block Diagram of the Stopped—Flow Mixing System. 66 drive piston (Schrader Gold Medallion miniature pneumatic cylinder; 1 1/8 inch bore, 1 inch stroke) is controlled by a Scoville pneumatic solenoid air valve (part no. 41001—1115). The drive and stopping syringes were made by the Michigan State University Glass Shop by sealing together precision bore pyrex tubing (Wilmad Glass Co. Inc., with 0.1736 and 0.1751 inch I.D.) and Altex glass connectors (Altex Scientific Inc., part no. 200—28). The syringe plungers are 1 ml gas—tight syringe plungers (Glenco Scientific Inc., part no. 19925—P—l). The check valves (The Lee Co., part no. TCKA6201050A) were modified to fit the Altex connector system by drilling out the ends of the check valves. The 3-way slider valve (Altex Scientific Inc., part no. 201—04, 201-12, 201-13) is controlled by a solenoid air valve (Altex Scientific Inc., part no. 903-00). Both this solenoid air valve and the one controlling the drive piston can be opened and closed under computer control through the use of solid state relays (Teledyne Relays, part no. 611—3). A cut—away view of the stopped—flow mixer and observation cell is shown in Figure 5-2. All of the components, except for the tubing end fittings and the quartz rods, were constructed by the Chemistry Department Machine Shop. The light path is connected to the stainless steel observation cell by 2 mm quartz rods with ground and polished ends (Wilmad Glass Co., Inc.). The quartz rods are sealed to the ends of the observation cell by the compression of teflon washers by aluminum compression fittings. The Notz—type, Kel F mixer (54) is also sealed to the observation cell by compression from the'Teflon mixer adapter. 67 02:»: H 00¢ N:_<....O 20.35328 g n. n” _ner THU .300 soapmcfiomno 28 ~23: Eoumxm onmIOOmmoum .Num 6.22m: xuoam ._._mu HH— «mImsS 20:: fig _HUHHD B «32.2 C —W \ \ EE .— 5 z I“ p- E “I > Z < —I III 8 0 Figure 6—1. 75 50 FREQUENCY (kHz) Relative Intensity Versus Frequency. IOO > y- 7: z I“ .— E O IN )— S 8 8 O U 0 Figure 6-2 76 so I00 FREQUENCY (ka) Relative Intensity Corrected for Varying Exposure Time Versus Frequency. RELATIVE VERTICAL DRIVE AMPLITUDE Figure 6-3. 77 so 100 FREQUENCY (kHz) Relative Vertical Drive Amplitude Versus Frequency. 78 target and, therefore, a decrease in intensity. In kinetics experiments it would often be very useful to be able to change the vertical scan frequency during the course of a reaction. For example, the early, rapid portion of a reaction could be observed at a high scan frequency for good time resolution and then, as the reaction slows down, the scan frequency could be decreased to maximize the observed intensity. To study the effect of changes in frequency, the vidicon target was exposed to constant illumination by placing a red LED a few inches from the target. The horizontal resolution was set at 255 channels per frame. The vidicon detector response was observed at the center of the target for 10 frames. The frequency was then changed and the response was observed for an additional 40 frames. Figure 6—4 shows the results that were obtained. When the frequency was increased from 25 kHz to 50 kHz the observed intensity decreased as expected. Approximately 11 scans were required to bring the re— sponse within 10% of the final 50 kHz value. When the frequency was decreased from 50 kHz to 25 kHz, a tremendous spike was observed in the vidicon response. This can be explained by remembering that at 50 kHz a significantly smaller portion of the target is being scanned. The portions of the target which are not being scanned are in satura- tion. When the frequency is reduced to 25 kHz, the portions which were in saturation are again being scanned. This results in a sharp increase in observed intensity which requires at least 30 scans to bring it within 10% of the final 25 kHz value. The large number of scans required to re-establish steady state severely limits the usefulness of frequency changes during the course of a reaction. 3W2' Wm. II 93%”; 4,- > p- 8 z I“ o— E II > 7. < -I III I 0 Figure 6-4. 79 IO 20 so 40 ‘ SCAN NUMBER The Effect of Instantaneous Changes in Vertical Scan Frequency. 50 80 3. Resolution It has already been established that the resolution of the vidicon spectrophotometer is limited by the vidicon detector (43), and it is determined by the number of channels per frame which are used. The maximum resolution which can be obtained is limited by the electron beam width of the vidicon detector. To study the resolution of the vidicon detector, the target was illuminated with a tungsten continuum. Figure 6-5 shows the relationship between the observed intensity at a vertical scan frequency of 25 kHz and the number of channels per frame. As the number of channels per frame is increased the exposure time is also increased. Normally an increase in ex— posure time results in an increase in observed intensity. However, the observed intensity is relatively constant from about 65 channels/ frame to over 400 channels/frame. Previous studies (37, 38) have interpreted this plateau region as an area in which the increase in exposure time is balanced by the reduction in signal caused by the partial overlap of adjacent channels. The extreme width of the plateau region makes the ”balance” theory rather suspect. A more reasonable explanation of the plateau region can be devel- oped as follows. Since the exposure time is proportional to the number of channels, the intensity is also proportional to the number of channels. The number of channels per frame is also inversely proportional to the effective target area scanned. Therefore, the signal intensity increase due to the increased exposure time is exactly canceled by the decrease in the effective target area per channel. In order for this explanation to be valid, the charge 81 RELATIVE INTENSITY o 500 IOOO CHANN E LS/ FRAME Figure 6-5. Relative Intensity Versus Resolution. 82 generated by photons falling upon the areas between the channels must also be read out by the electron beam. This requires the migration of charge from the saturated regions between the channels into the channel areas themselves. Charge migration in regions of saturation is a well known phenomemon which is normally referred to as "blooming” or ”bleeding" (56). The implications can be more easily understood if the data of Figure 6-5 are expressed in terms of the observed intensity as a function of the channel separation. The channel separation is determined by dividing the width of the scanned portion of the vidicon target (12.8 mm wide) by the number of channels. This relationship is shown in Figure 6—6. The rapid decrease in intensity at small channel separations is due to the increasing overlap of adjacent channels. A much less dramatic decrease in intensity is also observed when the channel separation becomes relatively large. This is due to the increasing probability of electron—hole recombination when relatively extensive charge migration is required. The intersection of the region of adjacent channel overlap and the plateau region should give a good indication of the electron beam width. This technique was used in an experiment to determine the minimum electron beam width which can be obtained. The results are shown in Figure 6-7. The optimum current through the focus coil was determined to be approximately 39.2 mA. This is very close to the recommended current of approximately 40 mA (57). The minimum beam width, as determined by this technique, is approx- imately 30 pm, which is significantly narrower than the 54 um beam width previously reported for this instrument (43). It also differs N RELATIVE INTENSITY Figure 6—6. 83 100 CHANNEL SEPARATION (pm) Relative Intensity Versus Channel Separation. 200 3 40 BEAM WIDTH 00m) 30 20 37 Figure 6-7. 38 39 4O FOCUS CURRENT (Inc) Beam Width Versus Focus Coil Current. 4T 42 85 significantly from the 51 um (58) and 62 um (59) beam widths that were reported for similar systems. This indicates that most of the reading capability is concentrated in the center of the beam, while the diffuse edges of the beam make the actual beam width much larger. This new technique is nevertheless very important since it provides a very reproducible indication of the relative beam width, which is independent of the bandpass of the monochromator used in the system. At a given vertical scan frequency, the length of time required to scan an entire frame depends on the number of channels per frame. This means that a trade-off between resolution and frame scan rate can be made. For example, it might be advantageous to select low resolution, high frame scan rate conditions in the early, rapid part of a reaction and then change to high resolution, low scan rate conditions toward the end of the reaction. To investigate the feas— ibility of this mode of operation, the vidicon target was illuminated by placing a red LED a few inches from the target. The vertical scan frequency was set at 25 kHz and the number of channels per frame was changed from 127 to 511. The results of this experiment are shown in Figure 6—8. 90% of the final steady state intensity was obtained within 4 to 5 frames. Similar results were obtained when the number of channels was changed from 511 to 127. The relatively rapid re— establishment of equilibrium indicates that this mode of operation would indeed be feasible, especially if the change in the resolution were not as drastic as that shown in Figure 6—8. 30° RELATIVE INTENSITY 2.5 Figure 6—8. 86 I27 CHANNELS IO 20 30 4O 50 SCAN NUMBER The Effect of Instantaneous Change in Resolution. 87 4. Electron Beam Current The electron beam current is determined by the negative voltage which is applied to Grid 1 in the vidicon tube. The beam current is decreased by making the voltage on Grid 1 more negative. In the 1 current system the grid voltage can be varied from about +4 V to -110 V. To determine the optimum beam current, the vidicon target was illuminated by a tungsten continuum, and the resolution was set at 511 channels per frame. The relationship between the intensity observed at the center of the target and the Grid 1 voltage at var- ious vertical scan frequencies is shown in Figure 6—9. The rapid decrease in observed intensities at large grid voltages is due to the beam current being reduced to a level where it no longer suffices to read out all the charge stored on the target. As long as the beam current is larger than the minimum required to read out the charge, the observed intensity appears to be independent of beam current. If care is taken in selecting a beam current which is large enough to read out the largest signal expected, then the beam current should never have to be changed. This is quite fortunate, because even though the Datel AM301A high voltage amplifier used to generate the grid voltage is supposed to have a slew rate of 100 V/usec, the actual observed slew rate of the grid voltage is only 15 V/sec. 5. Charge Integration Charge integration is a signal enhancement technique which takes advantage of the integrating character of the silicon vidicon. In 88 IO EH: INTENSITY RELATIVE o W O '50 - I00 GRID I VOLTAGE (V) Figure 6-9. Relative Intensity Versus Grid 1 Voltage at Various Frequencies. 89 charge integration the electron beam is turned off for a number of scans and the photon-generated charge is allowed to accumulate. When the accumulated charge is finally read out an increase in the signal is observed which is linearly related to the integration time. Since the S/N (signal—to-noise ratio) increases linearly with the number of scans integrated, while the S/N increases only with the square root of the number of scans averaged, charge integration can be a very useful signal enhancement technique (38, 43, 60). Signal enhancement by charge integration could be quite useful in kinetics experiments. If a constant integration time was used throughout a reaction, the signal level for the entire reaction could be increased. Even greater benefit could be derived if the integra- tion time could be varied during the course of a reaction. For example, if the percent transmittance decreased dramatically during the course of a reaction, the signal level could be increased by using longer charge integration times. In order to determine if integration times could be rapidly changed, the following experiment was performed. The vidicon target was illuminated by a tungsten continuum and the resulting charge was read out at a vertical scan frequency of 25 kHz with a resolution of 101 channels per frame. The number of frames during which the beam was turned off was varied from 0 to 7. The results are shown in Figure 6—10. It is painfully apparent that integration times cannot be rapidly changed. At least 15 to 20 frames were required to reach 90% of the final steady state value. These results indicate that only constant integration times can be used for kinetics applications. 90 RELATIVE INTENSITY ° 20 4o SCAN NUMBER Figure 6-10. Effect of Rapid Changes in Charge Integration at Various Integration Levels. 91 6. Lag As the electron beam travels across the vidicon target not all of the charge stored there is read out. The percentage of the total charge which is left behind is defined as the lag. Lag seriously degrades the response time of the vidicon detector and, therefore, it is the feature which most severely limits the applicability of vidicon detectors to fast kinetics. This section contains the results of a number of experiments which were designed to assess the severity of the lag in the vidicon spectrophotometer and to determine optimum conditions for limiting the effect of the lag. Since it is virtually impossible to actually measure the amount of charge left behind on the target, techniques must be developed which provide an indication of the amount of charge left behind. This is most commonly done by continously scanning the vidicon tar— get under illumination, then rapidly removing the illumination and observing the signal obtained after one or more complete frames have been scanned. All of the lag experiments reported in this section were performed using the same procedure. First the target was illum— inated by placing a red LED a few inches from the target. A number of frames were scanned with the LED turned on. The LED was then turned off and the signal decay was observed until a constant signal was obtained. The lag was then defined in the following manner: 92 where S1 is the signal measured one frame after the LED has been turned off, S is the average signal obtained while the LED is on ILL and SD is the average dark signal. Figure 6-11 shows a sample lag decay curve. Comparison of the lag measured in different laboratories is often extremely difficult due to the varying experimental conditions under which the lag was measured (19, 27, 38). Often the conditions are not mentioned at all. The most commonly published data are measured at standard television scan rates. The lag decay curve shown in Figure 6-11 was obtained with the scan parameters which most closely approximate those used for standard television rates. The vertical scan frequency was 15.87 kHz and the resolution was 272 channels per frame. All other parameters were optimized for min- imum lag. The resulting lag was 12.0%. This is in good agreement with one group (27) which reported a lag of 14% under similar con— ditions. Another source (38) listed a lag of 7% after three read- out frames, whereas our system shows only 4.9% lag after three read- out frames. The remainder of this section is devoted to studies of how the various scan parameters affect the observed lag. The purpose of these studies is to determine how the parameters can be varied to minimize the lag. The reproducibility of the lag over periods of up to 6 hours was found to be fairly good, with 1 to 5 percent relative standard deviations being typical. When these same lag measurements were made over a period of a few weeks, relative pre- cisions as poor as 50% were observed. The poor reproducibility of RELATIVE INTENSITY Figure 6-11. I0 20 30 4O SCAN NUMBER Signal Decay After Removal of Illumination. 94 the lag did not significantly affect the overall trends in the lag which are reported in this section. Since the actual lag values are not very reproducible, only the relative changes in the measured lag are reported in each of the following experiments. Lag is dependent upon the magnitude of the signal read out from the vidicon target. Figure 6-12 shows the relationship between the relative lag and the signal magnitude. This experiment was performed at a vertical scan frequency of 25 kHz, a resolution of 255 channels per frame and a Grid 1 voltage of -23 V. Normally, lag tends to improve at higher signal levels. However, as the signal level ap- proaches saturation, the lag increases rapidly. The increase in lag at low signal levels is due primarily to the target potential being discharged only slightly, resulting in a low potential difference between the cathode and the target. This results in a lowered beam landing efficiency and increased lag. The resolution which is selected also appears to have a sig- nificant effect upon the observed lag. Figure 6-13 shows the re- lationship between relative lag and resolution at a vertical scan frequency of 25 kHz and a Grid 1 voltage of -23 V. The decrease in lag at higher resolutions is due primarily to the decrease in the channel separation. Decreasing the channel separation decreases the saturated area between the channels, therefore decreasing the rel- ative lag. The vertical scan frequency has a dramatic effect upon the ob- served lag. Figure 6—14 shows the frequency dependence of the rel- ative lag at a resolution of 255 channels per frame and a Grid 1 V RELATIVE LAG Figure 6-12. 95 SATURATION 102 103 RELATIVE INTENSITY Relative Lag Versus Relative Intensity. "‘I 0 < -l W Z )— < -J “I 8 O 0 Figure 6-13. 96 300 600 CHANNELS/ FRAME Relative Lag Versus Resolution (Frequency = 25 kHz). 97 RELATIVE LAG 0 so IOO FREQUENCY (kHz) Figure 6-14. Relative Lag Versus Vertical Scan Frequency (Resolu- tion = 255 Channels/Frame). 98 voltage of -23 V. The increase in the lag at higher vertical scan frequencies is due to a number of factors. Since the observed intensity decreases rapidly at higher frequencies, the intensity dependence of the lag results in an increase in the observed lag. The beam residency time decreases with increasing frequency, also causing an increase in the lag. Another cause of the increased lag at high frequencies is the incomplete scanning of the upper and lower edges of the target. As shown in Figure 6-3 the amplitude of the vertical scan varies significantly with frequency. The edges of the target are not scanned because it would be impractical to increase the electron beam; rectangular scanning pattern to cover the entire circular, active region of the target. Since the edges are in saturation, the observed lag is increased in the scanned portions of the target near the upper and lower edges. A limited amount of vertical resolution is possible in the vidicon spectropho- tometer by varying the electronic delay and integration times in the amplifier chain (43). Figure 6—15 shows the dependence of the lag on the vertical target position at a resolution of 255 channels per frame. The vertical scan frequency was set to 25 kHz at which the vertical drive amplitude is near maximum. The edges of the target do show a significantly higher lag than the center of the target. (The very high lag at the left edge of the graph is due to the inclusion of the vertical retrace.) The last parameter which was found to significantly affect lag is the beam current. Figure 6-16 shows the relationship between the relative lag and the voltage applied to Grid 1 (the higher the 99 RELATIVE LAG 0 RELATIVE VERTICAL POSITION I Figure 6—15. Relative Lag Versus Relative Vertical Target Position. RELATIVE LAG Figure 6-16. 100 -40 GRID I VOLTAGE (V) Relative Lag Versus Grid 1 Voltage. '80 101 voltage, the lower the beam current). This experiment was performed at a vertical scan frequency of 25 kHz and a resolution of 101 channels per frame. The lag is seen to reach a broad minimum at a Grid 1 voltage between about -10 V and —30 V. The decrease in lag at Grid 1 voltages above about ~60 V is quite unexpected. Above -60 V the beam current is no longer large enough to completely read out all the stored charge and the observed intensity decreases rapidly (see Figure 6—9). Both of these factors should result in a dramatic increase in the lag. No matter what the reason is for the observed decrease in lag, the signal degradation at these voltages makes operation under these conditions impractical. In this section it has been demonstrated that although lag is a serious problem in the vidicon spectrophotometer, its effects can be minimized by the careful selection of the scanning conditions. In general, the lag can be decreased by setting the Grid 1 voltage to about —18 V, decreasing the vertical scan frequency and/or increasing the number of channels per scan. Adjustment of the ex— perimental conditions so that the signal intensity is about 50% of saturation will also decrease the observed lag. C. Characteristics of the Stopped-Flow Mixing System The purpose of the stopped—flow mixing system is to mix rapidly together two solutions and deliver them to an observation cell where any subsequent reactions can be monitored by the vidicon spectro— photometer. In order to be able to investigate relatively rapid reactions the mixing system must be capable of mixing the two 51:33:9quan 531m: :52 E“ 03- .moflr. am; 2:11» SEVILLE Was. {he '21-?! ['1' 2: :1g.xen~ mantel 145-nu! n- = ---:-:n 4mm win V" 102 solutions both rapidly and reproducibly. The mixing characteristics and other important characteristics of the stopped-flow mixing system developed in this work will be presented in this section. The stopped—flow mixing characteristics are highly dependent upon the solution flow velocity. In the current system, the solution flow velocity is monitored by a transducer which consists of a transparent ruling (with 50 lines/inch) mounted on the stopping syringe, and an opto—interrupter module. (A complete description of this transducer can be found in Chapter 5.) The transducer allows the measurement of the length of time in usec, between the lines as they pass the opto-interrupter. Figure 6-17 shows the flow velocity output for 5 separate stopped—flow pushes. Line number 47 represents the point at which the flow comes to a stop. The erratic output observed after this line, is due to mechanical vibrations in the flow transducer. (Further experiments showed that no vibration or cavi— tation effects occured in the flow cell.) Curve A of Figure 6—18 shows the distance traveled by the stopping syringe during a typical run. The entire distance is covered in about 0.03 s. Curve B of Figure 6—18 shows the syringe velocity profile. The velocity pro- file was calculated from the lower curve by performing a linear least squares fit to 4 points at a time. The slope of this tangent line was then taken as the velocity at the mid-point. The single most important characteristic of a stopped-flow mixing system is its dead time. The dead time can be defined as the length of time between the theoretical start of a reaction and the earliest time at which the reaction can be monitored. In a properly TIME hnuc) Figure 6-17. 103 30 LINE NUMBER Flow Velocity Output for 5 Separate Runs. 60 I00 0 O O O 70 VELOCITY (cm/soc) 60 2.0 I.5 I.0 DHIANCE km) I5 Figure 6-18. 104 25 40 TIME (mm) A - Syringe Distance Traveled Versus Time. B - Syringe Velocity Versus Time. 50 105 operating stopped—flow, dead time is determined primarily by the length of time required for the solution to flow from the point of first mixing to the center of the Observation cell. The actual dead time can be longer than this due to slow mixing, cavitation and other problems; however these problems should be minimal in a prop- erly operating system. For the dead time to be reproducible, the solution flow rate must be reproducible during the final portion of the flow. Figure 6—17 shows that the flow profile is quite reproducible from about line number 26 to the end of the flow. This corresponds to about the last 12 msec of the solution flow. The average syringe velocity over this section is 87.8 i 0.9 cm/s, which yields a solution flow rate of 13.6 i 0.1 ml/s with the current stopping syringe. This means that 0.163 t 0.002 ml of solution flow through the cell during this time. Since the combined volume of the mixing chamber and the observation cell is 0.134 i 0.0007 ml, the entire observation cell should be completely flushed during the most reproducible portion of the flow. This should result in a very reproducible dead time. The dead time of the system was investigated by two methods. The length of time required for the solution to flow from the point of first mixing to the center of the observation cell can be deter- mined by the following equation: where t is the dead time, V is the dead volume (the volume between d d -_—.- mushy-IRE ...-. -l..- . .--'-""- :.'I..I.I: ...'. :a ..' I f - ... .' . . . I . . II' ""I if)", 106 the point of first mixing and the center of the cell), vS is the syringe velocity and As is the cross sectional area of the syringe. The value of vs used should be the average syringe velocity just prior to the stopping of the flow. It should be measured over a time approximately equal to the dead time. The average syringe velocity over this period was 85.4 i 1.1 cm/s. Calculations based on the cell specifications yielded a value of 0.103 t 0.005 ml for Vd and 0.155 r 0.002 cm2 for As' This results in a dead time of 7.7 i 0.4 msec. The uncertainty in the dead time is primarily due to the uncertainty in the dead volume. This uncertainty could be improved by determining a more precise value for Vd' The above method for calculating the dead time does not include any effects from mixing, cavitation and other problems which can affect the performance of the stopped-flow mixing system. The traditional method for determining dead times is the extrapolation technique (61), whereby the total dead time including mixing and other problems is measured. In this technique the absorbance of a chemical reaction in the stopped—flow is recorded with time, normally on an oscilloscope. The experimental curve is then extrapolated back to zero absorbance. The dead time is the time between the extrapol- ated point of zero absorbance and the time at which the extrapolated and experimental curves coincide. This technique, with a photomulti- plier tube employed as a detector was also used to determine the dead time. The dead time was found to be 8 i l msec. The large uncertainty is due to the difficulty of performing the extrapolations. The difference between the two dead time values is not significant. 107 Two solutions were used to determine whether equal volumes are delivered from the two drive syringes. One syringe was filled with 0.0017 M K2Cr207 in 0.2 M H2804 and the other syringe was filled with 0.2 M H2804. The absorbance of this mixture at 435 nm was determined, the solutions switched and the new absorbance determined. The ab- sorbance which was found when the KZCrZO7 solution was in the left syringe was found to be larger than the absorbance when it was in the right syringe. The ratio of the absorbances was found to be 1.03 i 0.02. The ratio of the volumes of the syringes is also equal to this value. Whenever quantitative measurements are performed with this stopped-flow apparatus, the above difference in syringe volumes must be compensated for in the calculations. The pathlength of the stopped-flow observation cell was designed to be 2.0 cm. The actual pathlength was determined by comparing the absorbance of a solution in a cuvette having a calibrated pathlength and the same solution in the stopped—flow cell. The pathlength of the cell was found to be 1.96 i 0.04 cm. When solutions to be used in stopped-flow experiments are changed, the drive syringes must be flushed a number of times. The number of times that the syringes must be flushed to ensure complete removal of the old solutions varies with the type of solutions used. In most cases at least 30 to 40 flushes of the drive syringes are required. Since about 0.42 ml of solution is required for each flush, the total amount of solution required is about 12 to 17 ml. - - '4. :4 . “a h: :_~_ . .' _ 108 D. The Monitoring of a Relatively Rapid Reaction The capabilities of the entire system were determined by monitoring a relatively rapid reaction which has a large change in absorbance. The large change in absorbance causes a drastic change in the amount of light falling on the vidicon detector. If the lag of the vidicon is going to cause any errors when fast reactions are followed, these errors should show up in this type of application. The reaction which was selected was the iron—thiocyanate reaction (62), carried out with an excess of iron. Under these conditions the equilibrium equation involved is: k i 2- <— 4 k2 FeSO + + SCN' Fe(SCN)2+ + so 4 and the rate law is (62): d [Fe(SCN)2+] = k1 [FeSO4+] [SCN’] — k2 [Fe(SCN)2+]. ““EF‘"‘" A solution of 0.0800 M Fe3+ was mixed with a 0.0102 M SCN_ solution. The reaction was carried out in 0.02 M H2504. The ver- tical scan frequency for the vidicon spectrophotometer was set to 25 kHz, 102 vertical channels per scan were acquired, and the Grid 1 voltage was set to —21.5 V. The resulting kinetics data were evalua- ted by using a curve-fitting routine called KINFIT-4 (63) to deter- mine the rate constant. This was done at two different wavelengths. At 583 nm the average forward rate constant (k) was found to be 96 M-1 sec-l, while at 658 nm a value of 196 M.1 sec_1 was determined. 109 Previously reported values for this rate constant are 208 M-1 sec-1 (62), 228 M_1 sec"1 (54) and 212 M-1 sec_1 (36). The rate constant 1 —l of 196 M_ sec is in about the right range; however, the value determined at 583 nm is far too low. The reason for this is lag problems in the vidicon detector. At 583 nm the light intensity from the tungsten source is much lower than at 658 nm. Also, under the conditions of this experiment the absorbance.change at 583 nm is greater (total absorbance change of 1.68) than at 658 nm (total absorbance change of 0.31). Both of these factors result in a dramatic increase in the detector lag at 583 nm. The results of this study indicate that although the stopped- flow system has a far slower response time than a standard single wavelength instrument, it can still be used to monitor fairly rapid reactions provided care is taken in selecting the conditions under which the reactions are studied. The light intensity falling on the vidicon detector should be kept as high as possible. Also the absorbance changes which are studied must be kept small. CHAPTER 7 AN INVESTIGATION OF THE BIURET REACTION A. Background The biuret reaction is the basis for the standard clinical chem- istry technique for determining the total protein content of blood serum (64), which can be a very useful aid in the diagnosis of a number of diseases. The normal total serum protein level in a healthy adult is between 6.0 and 8.5 g/100 ml (64). A number of diseases show symptoms of hypoproteinemia, in which the total serum protein level drops below 6.0 g/100 ml. An elevation in total serum protein level is encountered in multiple myeloma and in any disease which results in dehydration. The biuret reaction is a complexation reaction between the cupric ion (Cu2+) and the peptide bonds of the protein which occurs in alkaline solution. Although the exact structure of the complex is unknown, the Cu2+ is believed to interact with the carbonyl (-C=O) and imine (=N-H) groups of the peptide bond. The Cu2+ is normally linked to between four and six peptide bonds (64). When the biuret reaction was first introduced, the procedure was relatively complex and the reagents were unstable, resulting in poor reproducibility. Kingsley (65) simplified the technique and made it reproducible enough for routine clinical use. Since that time a number of variations and improvements on the basic technique have appeared (66, 67). In the standard biuret technique, the reaction is allowed to go to completion and then the absorbance of the complex is 110 111 measured at 550 nm. This technique tends to be rather slow since the reaction, though very rapid over the first few seconds, does not go to completion for at least 20 to 30 minutes. Koch, et al. (68) reported a kinetic method for determining total serum protein using the biuret reaction. In this study a centrifugal analyzer, the CentrifiChem Fast Analyzer (Union Carbide Corp.), was used. They found that reasonable results could be ob— tained by this method in as little as 18 5. They reported a precision of 2.9% for replicate runs and a 3.4% precision for day-to-day results. One limitation of this technique is that assayed human blood serum has to be used for standardizations. In the standard biuret technique, assayed bovine serum albumin can be used as a standard. Bovine albumin was found to react much more rapidly in the early part of the reaction than human serum. They also found that bovine albumin could be used as a standard if the analysis time was lengthened to at least 93 s. Savory, et a1. (69) tried to use this kinetic method, but found it to be relatively imprecise and subject to analysis errors in patients with certain diseases. Recently, Wai-Tak Law and S.R. Crouch of the Michigan State Un- iversity Department of Chemistry have been investigating a more rapid rate method for total serum protein using the biuret reaction in a stopped-flow spectrophotometer (70). The reaction is monitored by following the growth of the absorbance of the copper—protein complex at 550 nm. Good results have been Obtained in as little as 0.1 s. The average relative standard deviation for replicate runs was 3.1%; when the analysis time was increased to 10 s the precision improved 112 to 0.83%. The experimental rate curve for this reaction is very complex. After an induction period of about 20 msec, the reaction rate increases rapidly until it reaches a peak at just over 100 msec. After this peak the rate falls Off irregularly over a long time per- iod. Most of the reaction occurs within the first 30 s, but the reaction doesn't go to completion until after 20 to 30 minutes. Just as Koch had discovered earlier (68), bovine protein samples react more rapidly than human protein samples and therefore cannot be used as standards. To gain a better understanding of the biuret reaction, Wai-Tak Law and I decided to investigate the reaction by using the vidicon rapid scanning stopped-flow spectrophotometer. The first goal of this investigation was to study the very unusual rate behavior of the biuret reaction with human serum protein. The second goal was to study the variations in the reaction rates observed in the biuret reaction with bovine serum proteins and human serum protein. We felt that these studies would help to characterize the new rate method and also serve as a basis for determining future directions in characterizing the new rate method. B. Experimental The biuret reagent used in this work was prepared by dissolving 24.0 g of sodium hydroxide, 4.0 g of sodium potassium tartrate and 0.5 g of potassium iodide in approximately 800 ml of water. When the reagents were completely dissolved, 1.2 g of cupric sulfate was added and the solution diluted to 1 liter. After standing for a few L80 ., ‘. .>.j':_._ _‘ nfi-Mgn ”Mural—n, [1.0 2153:1111: :- . '- -: I ' 1' "'T III‘EII’I- I.‘ 113 hours, the solution was filtered. The sodium potassium tartrate is used to complex the copper and keep it in solution. The biuret blank reagent was prepared in the same way as the biuret reagent except that no cupric sulfate was added. The various serum protein samples were prepared by making an approximately 1 to 30 dilution of the serum samples with 1.9% saline solution. The human serum samples were Moni—Trol I (Dade Division American Hospital Supply Corp.). The bovine serum protein samples were bovine serum albumin and bovine serum globulin (Sigma Chemical Co.). The following vidicon scan parameters were used throughout this study: the vertical scan frequency was set at 25 kHz with 102 chan- nels per scan frame. This results in a scan time of 4.08 msec/frame. The beam current was set to about —23 V. No charge integration was performed. The following general procedure was used for all of the stopped- flow data presented in this chapter: the stopped—flow system was first flushed approximately 30 times with the appropriate serum sample and the biuret blank reagent. With the shutter open, 16 scans from the vidicon detector were averaged to yield the reference (100% transmittance) spectrum. The shutter was then closed and another 16 scans were averaged to form the dark current spectrum. Next, the blank reagent was replaced by the biuret reagent and the stopped-flow system flushed another 30 times. The system was always flushed l or 2 more times immediately before each stopped—flow run. The reaction was monitored by collecting successive spectra, each of which was the 114 average of 4 frames. A total of 25 frames were skipped between the acquisition of successive spectra. This results in the acquisition of one spectrum every 118.32 msec. A total of 40 spectra are acquired during each push. To gain better precision, four separate pushes were always averaged together. The reaction was initially investigated by centering the wave— length window of the vidicon detector at the absorbance maximum of the copper-protein complex (550 nm). It was soon discovered that an isobestic point existed at about 690 nm. The wavelength window was then moved to cover the region from about 550 nm to 850 nm. Figure 7-1 shows selected spectra from the biuret reaction with human serum protein. Two isobestic points are observed, at about 690 nm and 802 nm. The sharp irregularities that occur periodically in the spectra (e.g. 640 nm, 730 nm, 810 nm, etc.) are due to slight shifts in the vidicon's electron beam retrace pattern which are not completely corrected for when the absorbances are calculated. Figure 7—2 and 7—3 show the absorbance change with time which occurs at wavelengths of 575 nm, 752 nm and 839 nm (corresponding to the vertical lines in Figure 7-1). Figure 7-4 shows selected spectra from the biuret reaction with bovine serum albumin. In this case only a single isobestic point was found, at 690 nm. For this reason, the reaction profile has a dramatically different appearance from the human serum. Figure 7—5 shows the absorbance changes which occur at 586 nm (a) and 779 nm (b). The final serum sample investigated with the biuret reaction was bovine serum globulin; the results are shown in Figure 7—6. The ..- ’_ ’. 4‘ , z .: ‘. . ‘ — ,. . “1 .tnaEthrA}; iM.2;-m,_m-mnnsim suntan my in . ("a , _ , . may .5 -- - 115 015 ABSORBANCE 550 700 350 WAVELENGTH (nm) Figure 7-1. Absorption Spectra at Various Times During the Biuret Reaction with Human Serum (2.2 g/L). Figure 7-2. ABSORIANCI 0.050 ABSORIANCE TIME (I) Absorbance Versus Time for the Biuret Reaction with Human Serum. (a) 575 nm; (b) 752 nm. ABSORBANCE Figure 7-3. I 2 a 4 5 TIME (s) Absorbance (839 nm) Versus Time for the Biuret Reaction with Human Serum. 0.4 ABSOR BANCE 550 Figure 7-4. 118 700 350 wAvnENGIH(nm) Absorption Spectra at Various Times During the Biuret Reaction with Bovine Serum Albumin (3.3 g/L). Figure 7-5. In 9 z < I I O a I d a I 0 o I 2 3 4 5 TIME (II 0.05 b 3 z < 2 o In G < O o I 2 3 4 5 TIME (I) Absorbance Versus Time for the Biuret Reaction with Bovine Serum Albumin. (a) 586 nm; (b) 779 nm. .c....... in! .3. ’1 . l. 1.67l 0.04 s 0.4“ 0.25 s ABSORBANCE 0.13 I 550 Figure 7-6. 700 ISO WAVELENGTH (nm) Absorption-Spectra at Various Times During the Biuret Reaction with Bovine Serum Globulin (3.3 g/L). 121 reaction profile is quite similar to the bovine serum albumin reaction. The single isobestic point is shifted slightly to 676 nm. The ab- sorbance changes which occur at 578 nm (a) and 775 nm (b) are shown in Figure 7—7. C. Analysis of the Biuret Reaction Spectra The absorbance of the copper—protein complex should increase during the course of the reaction. The existence of isobestic points and wavelength regions over which the absorbance decreases with time indicates the presence of at least one interfering species which absorbs over this wavelength region. No interference had been pre- viously reported, and this discovery is the most important result of the current investigation. To determine the extent of this interference the identity of the new species and the spectral regions over which all of the species present during the reaction absorb, must be determined. Figure 7-8 shows the absorption spectrum of the copper complex with human serum protein. It was obtained by letting the biuret reaction go to com— pletion (about 25 min.). A comparison of this spectrum and the spectra in Figure 7-1 indicates that there is only a single inter- fering species which absorbs over this spectral region. The increase in absorbance with time at wavelengths below 690 nm and above 800 nm is due to the copper-protein complex. The cupric tartrate complex present in the biuret reagent was identified as the interfering species. Figure 7-9 shows the absorption spectrum of the cupric tartrate complex, with the biuret Figure 7-7. ABSORIANCE AISORIANCE "M! (II Absorbance Versus Time for the Biuret Reaction with Bovine Serum Globulin. (a) 578 nm; (b) 775 nm. 123 ABSORBANCE 550 700 :50 WAVELENGTH (nm) Figure 7-8. Absorption Spectrum of the Copper-Protein Complex from the Biuret Reaction with Human Serum After About 25 Minutes. 124 0.1 AB SORBANCE 550 700 850 WAVE LENGTH (nm) Figure 7-9. Absorption Spectrum of the Biuret Reagent. 125 blank used as a reference. The cupric tartrate complex shows an absorption maximum at about 660 nm and it still has significant absorbance at 550 nm. The interference from the cupric tartrate complex causes a decrease in the observed rate of absorbance change for the copper-protein complex, and accounts for the wavelength shift of the absorption maximum with time. Since the cupric tartrate complex does not absorb above 800 nm, it does not explain the relatively large absorbance changes observed for both bovine serum samples between 800 nm and 850 nm (see Figure 7-4 and 7-6). Figure 7-10 shows the absorbance spectrum of the copper—protein complex from bovine serum albumin after about 25 min- utes of reaction. Again, there is essentially no absorbance above 800 nm. Both of the bovine serum samples also showed slight shifts in the absorption maxima with time; however the shifts were far less dramatic than those found in the human serum samples. These obser- vations indicate that the absorbance from interfering species in the biuret reaction with the bovine serum samples has a maximum at a larger wavelength than the cupric tartrate complex. One possible explanation for this is that a new copper complex of unknown composi- tion is formed almost immediately after the bovine samples and the biuret reagent are mixed. The decrease in the concentration of the cupric tartrate complex reduces its interference at 550 nm. Also, since the absorption maximum of the new interfering species occurs at longer wavelengths that the cupric tartrate complex, it is likely that its absorbance at 550 nm is significantly less than the absorbance of the cupric tartrate complex. This lessened interference 126 (L3 03 ABSORBANCE 0.1 550 70° :50 WAVE LENGTH (nm) Figure 7—10. Absorption Spectrum of the Copper-Protein Complex from the Biuret Reaction with Bovine Serum Albumin After About 25 Minutes. 127 in the bovine samples at 550 nm could account for the higher rate of absorbance change observed in these samples. Two important discoveries have resulted from this investigation of the biuret reaction. The first major result was the discovery of a chemical species in the reaction which absorbed over the same wavelength region as the copper—protein complex. This discovery enabled the new species to be identified as the cupric tartrate com- plex and the extent of its interference on the observed rate of ab- sorbance change for the copper—protein complex could be determined. The second important finding was the discovery that the interfering species in the biuret reaction with bovine serum samples are differ— ent, and that the absorption maximum of the interference lies at longer wavelengths than that of the cupric tartrate complex. On the basis of these results it is possible to suggest further studies which could help characterize the biuret reaction. The rate curve should be investigated at wavelengths below 550 nm. In this region the absorbance of the cupric tartrate complex should be relatively small. This study would help to quantify the effect of the cupric tartrate complex on the reaction rate at 550 nm. Also, comparisons with the bovine serum samples would indicate if the differences in the rates were due to the cupric tartrate complex interference. (At the present time this study could not be performed on the vidicon system, since a problem with the monochromator dramatically reduced the sensitivity of the system below 550 nm.) Another important study would be to identify the interfering copper complex in the biuret reaction with the bovine serum samples. 128 Once identified, the spectral region over which it absorbs could be determined and its effect on the rate curve at 550 nm could be more precisely determined. One critical question which has not been addressed at all is whether the many different proteins found in human serum samples react with the biuret reagent at different rates. The irregular decrease in the rate curve for the biuret reaction could be due to these varying rates. This is a very important problem, since cer— tain diseases cause increases or decreases in only a single type of protein (64), and kinetic analysis may be able to differentiate the different types. CHAPTER 8 CONVERS-M A USER-DEFINABLE LANGUAGE FOR COMPUTERIZED INSTRUMENTATION A. The Role of Software in Computerized Instrumentation As the use of computers in the sciences becomes more and more common, their role is rapidly shifting. Throughout most of their history computers have been large and expensive, forcing them to be used primarily as remote, off—line data processors. In this type of application the principal task of the computer was to perform data file manipulations and complex mathematical processing of already existing data. As computers became smaller and less expensive, ex— amples of computers also being used for data acquisition and real— time instrumental control became more common. With the recent intro- duction of small and inexpensive microprocessors, computers are now being found in a rapidly expanding variety of scientific instrumenta— tion. This has caused a dramatic shift in the types of tasks that a computer is commonly required to perform. Sequencing, formatting, self—checking, operator interaction, monitoring, communications, and many other modes of automation are increasingly common in dedicated systems. Since most of the common computer languages were written long before the rapid increase in computerized instrumentation, a re— evaluation in terms of current applicability is in order. It is necessary to set up some criteria by which to compare the various 129 --. wm'mi‘m am 'Ié-ié‘awfi’mi“ I I." fi:-"."0 IiJi'.‘ '3‘. -l' 130 computer languages. A large percentage of the most important criteria can be summed up with the conclusion that the computer language must enable the programmer to create the required software as rapidly as possible. The speed with which the programmer completes the necessary software is primarily determined by the number of lines of code that he is required to write. Therefore, the language must be versatile enough and of a high enough level that most tasks can be accomplished with only a few lines of code. Also, it is important that there be a library of commonly used routines (e.g. least squares fit, etc.) so that the programmer need not create them all himself. Obviously, if the completed software does not execute rapidly enough to accomplish the desired task, than it does not matter how few lines of code were necessary to create the software. Therefore, the execution speed of the language is very important. It is always important that the completed software take up as little computer memory as possible and this is especially critical when the computerized instrument is to be mass produced. The above criteria (program level, routine libraries, execution time and memory requirements) will be applied to the evaluation of the languages most commonly used in computerized instrumentation. The most basic type of computer language is machine code, which is the numeric code used directly by the computer and therefore is the only code upon which the computer actually operates. All other computer languages must first have their commands translated into machine code before they can be executed. Routine computer pro- gramming is seldom done in machine code for many reasons. Since the 131 language is entirely numeric, programs in machine code are extremely lengthy and very tedious to write. Also, each type of computer has its own specific machine code, which makes the development of stan— dard routine libraries impossible. The programming level of assembly language is only slightly higher than that of machine code. The real advantage of assembly language lies in its use of English mnemonics to replace the numeric codes of machine language. Before any assembly language program can be used, all of the English mnemonics must be converted to their machine code equivalents. This is most commonly done through the use of a program called an ”assembler”. Assembly language is extensively used in computerized instrumentation because it is the most common computer language now in general use which can be applied to instru- mental control and data acquisition. Well written assembly language programs require less memory and execute faster than programs written in any other type of code; however, it shares with machine code a number of distinct disadvantages. Since it is a low level language, even simple tasks require many lines of assembly code. Each type of computer has its own assembly language, resulting in the establish- ment of very few common routine libraries. The mathematical cap— abilities of different assembly languages vary with the type of computer which is used, but at best they include only integer arith— metic, with multiply and divide capabilities being rather uncommon. FORTRAN and BASIC are the two high level computer languages which are most Often used in computerized instrumentation. Their command structures enable them to handle file manipulations and 132 complex mathematics that would be extremely difficult and lengthy if done with assembly language. As with any high level language, a single line of FORTRAN or BASIC code can perform operations which would require many lines of code if written in assembly language. Before any FORTRAN or BASIC program can be executed, it must be converted into machine code. All FORTRAN languages and a few types of BASIC accomplish this conversion through the use of a "compiler” program. The compiler creates an executable machine language program which is equivalent to the original FORTRAN or BASIC program. Most types of BASIC use an "interpreter" program instead of a compiler. The lines of BASIC code are interpreted and executed one line at a time. Since most computers have compiler and/or interpreter programs available, FORTRAN and BASIC programs can be run on almost any type of computer. BASIC, and especially FORTRAN, have been used long enough that extensive libraries or common routines are in existence. Un- fortunately, FORTRAN, and especially BASIC, routines tend to be quite slow during actual execution and their memory requirements are high. In addition, standard FORTRAN and BASIC contain no commands which could be used for data acquisition or instrumental control. The way in which FORTRAN and BASIC are adapted for such use is by programming in assembly language. Assembly language subroutines are written for the various modes of instrumental control and data acquisition. These routines are then linked together with the FORTRAN or BASIC routines which handle the data processing. It is obvious that there is no single computer language currently in general use which can easily solve all the problems normally found 0 0 79:61 7" '_ 2. .11... 4-2.,ril.M > The instruction '<<' tells the CONVERS—M monitor that a new command "(113.1“: In I-I I-.i ‘.'.'i.l1!I'IH:]n'."! If .- -1.. II a.r'.":::-.nr1m 1+3.- ' .I- I-I’L'X": 137 named FLOW is about to be defined. The next four lines are assembly language instructions which, when executed, interact with the hard- ware and cause the valve to open. The final instructin, '>>', sig- nals the monitor that the definition has been completed. The completed command can be used in two different ways. When only the command is typed at the terminal it is being used in the run mode. In this mode the command is executed, causing the valve to open. This allows testing of the new command and, later on, provides a simple method of testing the valve and associated electronics in case of a hardware failure. The other mode in which FLOW can be used is in the creation of new commands. This mode, defined as the compile mode, will be illustrated through the use of another example. A more complex task that must sometimes be performed in the stopped-flow system is to empty the sample and reagent syringes. The syringes can be partially emptied by opening the flow valve, then closing it and allowing the reacted chemicals to be expelled to the waste container. If this is repeated a number of times, the syringes will be emptied. A command called EMPTY was created to accomplish this task by typing the following: << EMPTY PUSH PSW MVI A,4 :10 WAIT FLOW WAIT WASTE -. . ‘1' ,u.-._ . -‘ J?" W-:- _4‘, I. I... mm” f" .-: : I: '1 1' ... ._._ _II.‘ -_'=' .I. .53 Hull-“mgr, Stag-f .I III I‘ III .9150“ ELI-'- ”“qu 138 DCR A JNZ .10 POP PSW >> The definition of the EMPTY command differs in only two ways from the simple definition of the command FLOW. First there are three commands, including FLOW, which are not assembly language commands. The other two non—assembly level commands are WAIT, which causes the system to wait until the valves have switched and the solutions have stopped moving, and WASTE, which causes the solution to be emptied to the waste container. Both of these commands have been previously defined, just as FLOW was. In this mode the FLOW command is not ex- ecuted immediately. Rather, a subroutine call to the routine FLOW is linked into the EMPTY command. The other new technique which is illustrated in the EMPTY command is the use of branching within a command definition. In this case it is desired to execute the command sequence, WAIT, FLOW, WAIT and WASTE, four times. This is accomplished by three assembly language instructions. First the instruction 'MVI A,4' loads the accumulator register in the computer with 4. The command sequence is then exe- cuted once, the 'DCR A' instruction causes the accumulator to be decremented by one and if the result is non-zero the 'JNZ .10' instruction causes the system to branch back to the WAIT command referenced by the ‘:10' label. In general, any location within a command definition can be labeled with an octal number between 1 and 139 177, preceeded by a colon (e.g. :10, :4, :103, etc.). This location can then be referenced by repeating the octal number, this time preceeded by a decimal point (e.g. .10, .4, .103, etc.). In all the preceeding examples, when a command was used in the compile mode, a subroutine call to the specified command was linked into the definition. This is the simplest and most common type of command. A more powerful and versatile type of command, the macro command, is any command which causes more than a simple subroutine call to be linked into the definition. One way in which a macro command might be used would be to speed up the execution of a command by linking the actual assembly code for the command into the definition instead of linking in a subroutine call to the command. For example, forty percent of the execution time of the FLOW command is involved in the subroutine call and the return from the subroutine. If these steps were eliminated, the command would execute much more rapidly. The FLOW command could be made into a macro command by defining it in the following way: << FLOW MODE FLOW 300 MAC 7 PUSH PSW MVI A,4 STA 16000 POP PSW >> _ _I. .3.“ i-""-‘3 .L I -- ..”; his“, my. -. ("Em -.aow E's-Ififl'fi II1 I; "III M .IT.I.!. mm Ian-salam- 1.2111594? -.-.'.' ..-T LIE-5 5'173'4‘5WI‘ 5‘ .obdu - - . :- :---'I I-I":'!I.-:".‘I 'T.r-I'.-'.: .1..-:: - - .:_".. 1'. - 1'1 .--_..1:;;.1‘I'sb 140 Only two new lines of code are required to make FLOW into a macro command. The first new line of code, starting with MODE, informs the monitor that the command FLOW should execute even in the compile mode. The second new line of code starting with MAC, causes the four assem- bly language instructions (7 bytes of code) to be linked into a def- inition when the FLOW command is used. CONVERS—M was designed to operate in the multi-microcomputer system described in Chapter 3. CONVERS—M enables most of the details of the interaction between the microcomputers to be kept transparent to the programmer. Each microcomputer is assigned a number with the coordinator designated as microcomputer 0. To create commands in any of the microcomputers, it is first necessary to specify in which microcomputer the commands are to be created. For example, the FLOW command described earlier must reside in the stopped—flow microcompu- ter which is microcomputer 4. By typing 'MICRO 4' at the terminal, any commands, including FLOW, which are now created will reside in microcomputer 4. Once the commands are created in the slave micro- computers, it is necessary to be able to create routines in the coordinator which are able to cause these routines in the slaves to be executed. This is accomplished through the use of four macro commands. An example of a program segment, which would cause the command FLOW to be executed by the stopped-flow slave, is the following: SETUP 4,FLOW RUN 4 :10 FLAG 4 JZ .10 L— 9 I I 4 ».x-‘ Lanna-Ian I t ,"- 141 STOP 4 The first line specifies that the command FLOW on slave 4 is to be executed. The next line creates a code which will cause slave 4 to begin execution of the FLOW command. The next two lines form a loop which checks the 'task completed flag' of slave 4 to determine when the FLOW command has completed execution. This final line causes slave 4 to halt any further program execution. For further details on programming with CONVERS—M, refer to Appendix A (The CONVERS—M User's Guide) and Appendix B (CONVERS-M Basic Command List). C. The Structure of CONVERS—M The command library of CONVERS—M is structured to allow for simple expansion. As new commands are created, they are entered into the library. Figure 8-2 shows the way in which a typical library command is stored in memory. The body of the command definition is preceeded by the command header. This header contains the command name, a two byte link address used during library searching, and a mode byte which specifies the mode in which the command is used. Whenever a command is used, it is necessary to search the library in order to find the command. The search of the library is accom- plished through the use of the link addresses stored with each command. Figure 8—3 shows how the library search is performed. The library is searched beginning with the last command that was entered. If that command is not the one sought, then the search is transferred to the address stored in the link address following the command name. Hg-I: ._- I - '"I-L' I " : 'Il-IIIJ' ' -' ‘21:" '5‘me ’5 5 ‘- .' "'. . . .. " ..." .. ."' ' ‘1, tom's; Inn-fi- 291ml“ w: 1qu. :II‘!‘ runs InrmwnTrb I PTnI? In REIT Barmlnflft IraI' s41 ai‘afl "I'll. :' l-.' . .: I-.I- -_ -.".'ll. --- ' ‘-" 5.";‘1 -."I'-:.".'I" Storage Location KOOO\IO\UI-I>> The Structure of a Command Definition. SUBROUTINE NKDDE LINK lINK ‘ Figure 8-3. CONVERS-M Library Searching Procedure. 144 The link address points to the command name which is the next lowest in the library. This process is continued until either the command being sought is found or the entire library is searched with no match being found. The end of the library is found when the link address points to a command name whose length is zero. If the char- acter string being searched for is not found in the library, then the attempt to interpret the character string continues on through a number of levels. For example, in the compile mode, the character string is compared to assembly language instructions to determine if there is a match. The entire process of character string interpreta— tion is shown, in detail, in Appendix C (The CONVERS—M Flow Chart). When CONVERS-M operates in the multi-microcomputer system each microcomputer contains its own separate library of commands. The coordinator microcomputer contains almost all of the CONVERS—M monitor overhead for the entire system. The basic memory allocations for CONVERS-M in the coordinator and a typical slave microcomputer are illustrated in Figure 8-4. The first 1 K (the first 1024 memory locations) in the coordinator contain the CONVERS—M system routines. These are routines that are not stored in the normal library format. This is the heart of the CONVERS-M monitor. The first section of code found here is the system initialization routine, which is exe- cuted only when the entire system is reset. Next comes the character string interpreter, followed by the assembler routines, the label decoding routines, and finally, the assembly language conversion tables. The next 1 K of memory contains the minimal CONVERS-M library. Here are found routines, stored in the normal library format, which 145 COORDINATOR SLAVE MEMORY MEMORY TOP OF MEMORY Figure 8-4. SUBROUTINE RETURN STACK T SOFTWARE STACK SPECIFIC APPLICATION LIBRARY 1 MINIMAL CONVERS LIBRARY CONVERS SYSTEM ROUTINES 2K IK 0 CONVERS-M Memory Allocation. SUBROUTINE RETURN STACK T SOFTWARE STACK SPECIFIC APPLICATION LIBRARY CONVERS OVERHEAD ”at“ 13A“ QI-F.‘ _ a .—..an. 146 are essential to the operation of the monitor. Above this is free memory, available for the storage of specific application libraries. The top of the memory in each of the microcomputers is reserved for the subroutine return stack. Below this is found the software stack which is used in one type of parameter passing. (See the section on parameter passing in Appendix A). The memory allocation in the slave microcomputers, as indicated in Figure 8—4, is much simpler. Here the CONVERS—M monitor overhead requires only about 20 locations. The upper half of this area contains monitor parameter storage locations. In the lower half of this area reside the four to six assembly lan— guage instructions which are required to enable any routine in the slave to be executed. These instructions first load the hardware stack pointer and then perform a subroutine call to the desired routine. Upon return from this routine, the slave signals the coor— dinator that it has completed the routine and then halts. In this way the coordinator can cause any routine in the slave to be executed by simply placing the address of that routine in the subroutine call and then running that microcomputer. Since the monitor overhead is so small in the slave microcomputers, most of the memory is left free for the specific application libraries for the slaves. w-E 9H3 : ' .--.' 2.3.: .-_..uu~:~.- APPENDICES APPENDIX A CONVERS-M USER'S GUIDE APPENDIX A CONVERS-M USER'S GUIDE A. Introduction This Appendix is only designed to give details on some of the programming conventions used in CONVERS-M and is, therefore, not a complete manual for the use of CONVERS-M. The structure of CONVERS-M and some examples of its use can be found in Chapter 8. Appendix B contains a listing of all the commands which are found in the minimum CONVERS-M library and a flow chart of the operation of the CONVERS-M monitor appears in Appendix C. B. Special Characters Most operating systems input an entire line of characters before actually beginning to interpret the character string. CONVERS-M oper- ates On character strings which are smaller than this. Here, a char- acter string is defined as a group of characters followed by a separator which is either a comma, space, tab, or carriage return. The monitor does not differentiate among the four separators, therefore, in any specific application, it does not matter which of the four separators is used. The following two program segments differ only in the separ- ators which are used and, therefore, are compiled identically by the monitor. MVI A,10 :10 DCR A 147 3:11 ":0 “WWW 33:3. _EIIEIJD amig- cu .."rr';: ' ,.', "' (".Il‘pu'fl ..1.‘ '--.- ' J'I'fl': H'- . |.1 i:.\'..'l.'I-L'J'fial"'7.'l Enimm 148 JNZ .10 MVI,A 10,:10 DCR A,JNZ .10 The semicolon is a special character which is used to indicate a comment. Comments are character strings which appear on the term- inal, but are ignored by the CONVERS-M monitor. A comment begins with a semicolon and is terminated by a carriage return. There are no re- strictions on the characters which may appear within a comment. ** ; Examples of Comments ** MVI A,10 ; At the end of a line ; Between Lines 10 DCR A JNZ .10 C. Labels Labels are character strings which are used to define or reference locations within a command definition. They are always octal numbers between 1 and 177, preceeded by either a period or a colon (e.g. :10, .26, :170, etc.). If the label starts with a colon, then it iS defin- ing a location. A single octal number can define only a single location. If a second label definition is attempted with the same octal number, then the monitor will signal an error by outputting a 'P', indicating that the number was used in a previous definition. These defined _ .. 'I ;,.... .....:. . n.1,. L5 “_f ...: "I... ......” , .,_ ._ .. . . 149 locations can now be referenced by using the same octal number, this time preceeded by a period. When a command is being created, a temporary library of the label definitions and references is stored in memory. This temporary library is located just below the software stack. Each time a label is defined, the memory address at which the compiler will next store code is entered into the temporary library. Whenever that label is referenced, this address is stored in the next two bytes of the command definition. An example of the use of labels is shown in the simple timing loop routine shown below. LDA .20 :10 DCR A JNZ .10 RET :20 10 In this example the 'A' register is loaded with the octal value 10. This register is decremented until it is zero, and then command is returned to the calling routine. D. Parameter Passing It is often necessary to transfer data or parameters from one routine to another. There are a number of ways that this can be accomplished. The most common method is to use the software stack. The software stack is a last-in—first—out data buffer located near the top of memory below the subroutine return stack. The address, at which "{'ni'r'lIgfiz-a‘jmiffimui .. 'I I: .. "- a"? --‘. '21. .-n.1uf'3-F 9111i: dyad JIM-Jr -.=;.-«.--a’-toa :21” "Mm-”I 3'3"! I I. . . .--.-.-.-.-_- 7...... ..-,:...-: 1v .2.-'::"‘.5"I “vat-"Mi“ .3: 150 the data is currently being stored, is kept in the stack pointer which occupies two bytes of storage in the monitor. As this data buffer fills, the data is stored in successively lower memory addresses. This leaves the bottom of memory free for the user's software. There are four commands in the basic monitor which simplify the use of the soft- ware stack. To move a single byte of data onto the software stack, the 'ON' command is used. This command moves a single byte of data from the 'A‘ register onto the stack. To retrieve this byte, the 'OFF' command is used. This command removes a byte from this stack and places it in the 'A' register. In the following example, the first program segment places the octal number 10 onto the stack and the second segment retrieves that number, and moves it to the 'B' register. MVI A,lO 0N OFF MOV B,A It is also possible to use the software stack for two byte data. In this case the command 'PUSHZ” puts the two bytes contained in the 'H‘ and 'L' registers on the stack. The command 'POPZ' removes two bytes of data from the stack and places it in the 'H‘ and 'L' registers. Another method of passing data to another routine, is to store the data directly after the call to that routine. An example of an assembly language routine which could accept this type of data transfer, is the following: , ‘L ‘ ‘h‘t’ J1 , .7 "f ‘ ', W - 5,9375.) {M id?“ $5M»! 4 .WII ’dlfi’lf 151 << WAIT XTHL MOV A,M INX H XTHL :10 DCR A JNZ .10 This routine causes a time delay whose length is determined by the byte of data following a call to this routine. For example, if the line 'WAIT 6' appeared in a command definition, then the internal loop in the 'WAIT' routine would be executed six times. The actual transfer of the data to the 'WAIT' routine is accomplished by the assembly language instructions which form the second through fifth lines of the definition. These four lines of code move the byte into the 'A' register and also increment the return address to insure that the return will occur to the location after the data byte. This type of parameter passing is used primarily when the data is predefined and will never change. The above 'WAIT' routine would be a good example in an application where a number of software delays, each of a different predetermined length, were needed. Variable data is best handled through the software stack. When it is necessary to pass data very rapidly between routines, the internal registers of the computer can be used. Another technique which is almost as fast is to use a predetermined address in memory to store the common data. These last two methods should only be used when no other method is fast enough, since it requires the programmer to 152 remember in which registers or memory addresses the data must be stored. E. Mode Word Each command definition has a one byte mode word stored with it. The default mode specifies that when the monitor is in the run state the routine will execute only if the coordinator microcomputer's library is currently loaded and the routine is found in that library. If the monitor is in the compile state, a call to the routine will be compiled only if the routine is found in the currently loaded library. Bit 6 and bit 7 in the mode word are the 'run only' bits. They are used to override the default actions and cause routines to be executed when they normally would not be. Since the monitor can only execute routines found in the coordinator's library, these mode bits only affect routines found in that library. Bit 7 is the 'run only' bit for the coordinator's library. If the coordinator's library is currently loaded and bit 7 is set, the routine will execute regardless of whether the monitor is in the run or compile state. Bit 6 is the 'run only' bit for a slave's library. If a slave's library is currently loaded and the routine is found in the coordinator's library, the routine will execute regardless of the state of the monitor. If both bits are set, then the routine will always run. F. Using the Floppy Disk Drive Mass data storage for the multi—microcomputer system is accomplished through the use of floppy disks. They are used for storing binary programs, command definitions and data. Most of the programmer's 153 interaction with the floppy disk drive is handled by the 'FLOPY' routine. The floppy disk drive is interfaced through the Persci Model 1070 Intelligent Diskette Controller. Since the controller contains a powerful set of commands for manipulating files on the disks, the 'FLOPY' routine simply serves as a means of passing these commands from the user to the controller. A complete description of the con— troller's commands can be found in the product specifications for the Model 1070 controller (73). The 'FLOPY' routine interacts in a special way with two of the controller's commands. The controller's 'LOAD' (L) command causes the contents of the specified file to be listed on the terminal. The 'SAVE' (S) command can be used to create files on the disk. The process of creating a file is started when the 'SAVE' command is entered. The file name specified with the command is entered on the disk as the name of the new file which is being created. From this point on, everything that is typed at the terminal will be entered into a data buffer. Each time a carriage return is typed, the contents of the buffer are written into the disk file. When a control/C is typed, the input is terminated and the disk file is closed. An example of the creation of the disk file, WAIT.CON, is shown below. FLOPY * S WAIT.CON << WAIT MVI A,10 :10 DCR A JNZ .10 . . I. 'p r" r|. . a I. sum-w _LL‘: : r 7 154 >> (CTRL/C) * In the above example the asterisks (*) are output by the 'FLOPY' routine whenever it is inputting command strings to be sent to the controller. To terminate the 'FLOPY' routine and return to the monitor, control/C is typed at the terminal. G. Assembly (Compilation of stored routines) It would be extremely tedious if the programmer had to enter, at the keyboard, the definitions for all the commands not already found in the monitor, which he planned to use during that session. To alleviate this, it is possible to enter command definitions that were previously stored on floppy disks. This is done through the use of the 'ASSM' routine. The 'ASSM' routine interacts with the floppy disk controller in much the same manner as the 'FLOPY' routine described in the preceed- ing section. In this case, when the controller's 'LOAD' (L) command is used, the contents of the specified file are compiled into the library which is currently loaded. For example, to compile the 'WAIT' routine, which was used as an example in the last section, the following would be typed: ASSM # L WAIT.CON The number sign (#) is output by the 'ASSM' routine to indicate that it ‘ ' .... . 'l'lll‘ " -. u; I 155 is ready for a controller command. As the 'WAIT' routine is read from the disk, it is output to the terminal along with any output (normally error messages) from the monitor itself. As soon as the end of the disk file is encountered, the system returns to the monitor. Since the entire disk file is output to the terminal, it is often difficult to notice any error messages which the monitor might output. This problem can be overcome by the 'DCRT' command which allows only output from the monitor to be sent to the terminal when the 'ASSM' routine is used. The 'DCRT' command inputs an octal number from the terminal. If the number is 6, then all input from the disk will be sent to the terminal also. If the number is not 6, the terminal out- put is disabled. The 'ASSM' routine functions by forcing all input to the monitor to come from the floppy disk instead of the terminal as it normally does. Upon encountering the end of file from the disk, monitor input once again comes only from the terminal. For this reason, almost any commands which are allowed at the terminal can be input from floppy disk as well. The only exceptions are commands which also use the floppy controller. This means that batch streams can be stored on the disks and executed at any time. H. Communication with the PDP 11/40 It is often necessary to send files to and from the PDP 11/40 minicomputer. This communication is accomplished by the 'PIP' routine in the multi—microcomputer system. (This routine is not found in the basic CONVERS—M library, it must be loaded from floppy disk). When "..I- -. _"-. -r" 'ij‘xfiflifnt-m sin: m raw-H: maxi. :r {W ._ ' * -,.‘ 'ZIIIZ'.’ n' .Hn,':;j-". "' all? 'JEIII ”HENRI-r “.7955“? I -H"- i . ' “‘ . I .. ,_ :I.u _- -.- - ... : :. «M -.r.;1_-_- -. '- ri L": I"? 11 I I I" .I I?!” ' ':!'.z 156 this routine is run, it first outputs a dollar sign ($) indicating that it is requesting the mode of the current transfer. This mode that must be input is made up of two characters. The first character indicates the destination of the transfer. If the character which is typed is a 'U', then the destination of the transfer is the floppy disk in the multi— microcomputer system. If this character is an 'M', then the destination is the PDP 11/40. The second character defines the type of transfer which will take place. If the character is an 'N', it indicates that the transfer will be a 'normal' transfer. This means that an exact copy of the file will be transferred. The character 'A' indicates that the transfer will be an ASCII transfer. This is necessary since the CONVERS-M system uses only a carriage return to terminate a line, where- as, the PDP 11/40 uses both a carriage return and a line feed to termin- ate a line. This problem is corrected during an ASCII transfer. When the 'PIP' routine outputs a number sign (#), it indicates that it is ready to input a standard file specification for the PDP 11/40. After that has been input, the routine will output an asterisk (*), this time requesting a file name to be used on the floppy disk in the multi—microcomputer system. Once this file name has been input, the transfer will take place and the routine will be ready to input the next transfer mode from the user. As example of an ASCII transfer from a floppy disk on the PDP ll/40 to the multi—microcomputer system is shown below. $UA # FL:WAIT.CON 157 * WAIT.CON $ In the above example the file 'WAIT.CON' is transferred from the PDP 11/40 to the microcomputer system and placed in a file also named 'WAIT.CON'. To terminate the 'PIP' routine and return to the monitor control/C is typed at the terminal directly after the dollar sign ($). 1. Error Codes Due to the necessity of keeping the CONVERS-M monitor 'short and simple', the error codes that are output by the system are limited. The monitor itself has only three different error codes. By far the most common error code is the question mark (?). This error can mean nearly anything. Some typical examples are: input of an unknown character string, illegal micro number, illegal label, illegal register during assembly, attempt to input something besides an octal number when an octal number is required, etc. At times the system can appear to 'lock up' and output question marks no matter what is typed. This can be caused by one of two problems. First, there are some routines that require the input of an octal number and they will continue to output question marks until an octal number is typed at the terminal. The second problem which can cause the system to 'lock up' is when an assembly language instruction is used which requires the use of a register code (e.g. MOV A,B etc.). The system will output question marks until a correct register code is input. The other two error codes which the monitor uses involve improper use of labels or command names. The three error codes used by the 158 monitor are listed in Table A-1. More detailed error codes are often encountered when using any of the routines which interact with the floppy disk controller. These er- ror codes are part of the software which comes with the controller and all are self-explanatory (2). Table A—1. Monitor Error Codes. Error Code Error Nearly anything P Indicates a previously defined command name or label definition nnnU Indicates an undefined label with 'nnn' being the label in question Sometimes detailed error codes are also found when using the 'PIP' routine to transfer routines to and from the PDP ll/40. The detailed error codes are sent by the PDP ll/4O when it encounters an error in the transfer. The 'PIP' routine also outputs a number of error codes, all of which begin with the letter 'F'. These 'PIP' error messages are listed in Table A—2. _. —— . -\ll ... 159 Table A-2. 'PIP' Error Codes. Error Code F0 F1 F2 F3 F4 F5 Error Impossible? error code No ACK/EOT from PDP 11/40 on start up NAK from the PDP 11/40 (ll/40 found an error) Checksum error during transfer to PDP 11/40 Checksum error during transfer from PDP 11/40 Unknown code sent from PDP ll/4O APPENDIX B CONVERS-M BASIC COMMAND LIST ASCII ASSM BININ CONVERS-M BASIC COMMAND LIST A. Coordinator's Basic Command List Performs octal to ASCII or ASCII to octal conversions. (i.e. adds or subtracts 6O octal to or from the data.) The top of the stack must contain a mode byte. Mode = O: ASCII to Octal Mode = l: Octal to ASCII INPUT OUTPUT Top of Stack: Mode # Char. # Char. Etc. Etc. Is used to compile commands which are stored on floppy disk. Details of its use are given in section G of Appendix A. Reads an octal number (between 0 and 177777) from the termin— al. The octal number is converted to binary and the 2—byte result is stored on the stack. Top of Stack: Low Byte High Byte If the input from the terminal is not octal, a question mark is output and a new number is accepted. 160 BINOCT BINOUT CLEAN CRLF DEP 161 Converts a 2—byte binary value on the stack to octal and puts the resultant octal digits on the stack. INPUT OUTPUT Top of Stack: Low Byte # of Digits High Byte Least Sig. Digit Etc. Most Sig. Digit Leading zeros are suppressed on output. Converts a 2-byte binary number found on the stack to octal and outputs it to the terminal with leading zeros suppressed. Top of Stack: Low Byte High Byte Is used to remove unwanted data strings from the stack. The top of the stack must contain the number of bytes to be re- moved. Causes a carriage return / line feed to be output to the terminal. (Run only mode) — is used to alter a location in memory. DEP AAA DDD EXM FLAG FLOPY LP MAC 162 AAA - Octal address in memory DDD — Octal data to store in AAA (Run only mode) — is used to examine a location in memory. EXM AAA AAA — Octal address to examine The octal contents of AAA will be output to the terminal. Is a macro routine which creates a code segment to check the task completed flag of the specified slave microcomputer. If the task is completed the internal zero flag will be reset. Handles file manipulations on the floppy disks. It is described in section F of Appendix A. Inputs an octal number from the terminal. If it is a 5, then the output of the 'FLOPY' routine is sent to the TTY instead of the terminal. If any other number is input, then the 'FLOPY‘ routine functions normally. Simplifies the creation of macro routines. When run, it enables strings of code to be linked into a definition. MAC 3, CALL 1106 The above example causes the three byte instruction, CALL 163 1106, to be linked into the definition. MCHG Loads the CONVERS-M library of the micro corresponding to the l-byte number on the top of the stack, (i.e. 0,1,2,3, etc.) MESSAG Causes a message to be written on the terminal. INPUT EXAMPLE Top of Stack: # Char. 4 Last char. sent '2' Etc. 'T' First char. sent 'U' '0' Output of example: OUT2 MICRO Loads the CONVERS-M library of the micro corresponding to the octal number input from the terminal. MICRO DD DD — Octal micro number between 0 and NMICRO inclusive NMICRO — Current number of micros in the system This value is stored at octal location 52. MODE Allows the mode word of a routine to be changed. MODE NAME DATA NAME = Name of the routine . {EH-Ir. _ .. - .1 245‘ m' I 1a: - " — -:-.l [‘5' 1‘. I “HAW! "‘1' 'U‘; ..., -{--"" T'- 1.- OCTBIN OFF ON 164 DATA = The new mode Converts the octal digits (0—7) found on the stack to a single 2-byte binary word. INPUT OUTPUT* Top of Stack: # Char. Low Byte Most Sig. Digit High Byte Etc. Least Sig. Digit * If there are too many digits or if the data is not octal, the carry flag is set (otherwise clear) and the output is: OUTPUT Top of Stack: # Char. left Etc. Pops one byte off of the software stack and puts it into the 'A' register. A < = ((Stack)) (Stack) < = (Stack)+l Pushes one byte from the 'A' register onto the software stack. ((Stack)-l) < = A (Stack) < = (Stack)-l POPZ PUSHZ RUN SEARCH 165 Pops two bytes off the software stack and puts them in the 'H and L' registers. L< ((Stack)) H< ((Stack)+l) (Stack) < = (Stack)+2 Pushes two bytes from the ‘H and L' registers onto the soft- ware stack. ((Stack)—l < II H ((Stack)-2 < L (Stack) < = (Stack)-2 Is a macro routine for creating program segments which reset and run the specified slave micro. RUN 2 This example will create a program segment which will reset and run slave micro number 2. Searches the loaded CONVERS—M library for a match to the character string found on the stack. If a match is found the carry flag is set, otherwise it is cleared. T_§_.3££ 3J1“!- 1- i 166 INPUT OUTPUT Top of Stack: # Char. No Change First char. of name Etc. SETUP Is a macro routine for creating program segments which enable specified routines on slave micros to be executed when the 'RUN' command is used. SETUP 1,INIT In the above example, the library of micro number 1 is searched and the address of the routine, 'INIT‘, is compiled into a program segment which, when run, will load that address into the initial call of micro number 1. STRING Inputs a character string from the terminal. OUTPUT EXAMPLE Top of Stack: # Char. 4 First char. in '0' Etc. 'U' 'T' '2: Input from terminal for example: OUT2 WHAT Outputs a question mark to the terminal. /DI /FR /1<1 << 167 (Run only mode) - lists all the names of the commands in the CONVERS—M library which is currently loaded. The first com- mand listed is the last command that was entered. (Run only mode) — outputs the difference between the address of the bottom of the stack and LASTAD. This gives a rough idea of the free core available. (Since the bottom of the stack will decrease during program execution, this value is larger than the actual core available.) (Run only mode) — removes the last entered command from the CONVERS-M library. (Run only mode) - outputs the current value of LASTAD to the terminal. (i.e. the address at which code will next be stored.) (Run only mode) — is used to begin the creation of a new command. It switches the mode to compile mode and requires the input of a command name which has not been previously defined. The command name is then entered and linked into the CONVERS—M library. << NAME NAME — Command name of any length. >> ASM CRT FCMD 168 (Run only mode) - terminates the creation of an instruction by placing a return at the end of the routine and flags any undefined labels as errors. The system then returns to the run state . B. Communicator's Basic Command List Is used by the 'ASSM' routine in the coordinator's library and has no use outside of this context. Outputs a single byte, from the 'A' register, to the term— inal. It also handles the special characters: carriage return, tab, delete and page. The contents of the 'A' register are unchanged upon return. Causes the command stored on the software stack to be sent to the floppy disk controller. If an error is encountered the carry will be set. The 'A' register indicates the state of the controller after accepting the command. 'A' Reg. State 0 Command completed. 3 Controller ready to accept data to place in a file. 5 Controller ready to output data from a file. FLOPl INIT INPUT LINE 169 Is used by the coordinator's 'FLOPY' routine and is of no other use to the programmer. Initializes the communicator micro. The keyboard is cleared, the floppy disk drive motor is disabled, both drives are write protected, the terminal is paged and the software stack is reset. Is the character string input routine for the monitor. It inputs characters until it finds one of the separator char- acters (space, comma, tab or carriage return). OUTPUT Top of Stack: # Char. Last char. typed Etc. First char. typed Inputs an entire line of characters from the terminal. OUTPUT Top of Stack: # Char. First char. typed Etc. Last char. typed If a control/C character is encountered, the software stack is cleared and the carry bit is set. OFF ON PRINT READ TOUT TTY 170 See the Coordinator's Basic Command List. See the Coordinator's Basic Command List. Causes a character string to be output to the terminal. INPUT Top of Stack: # Char. First char. printed Etc. Last char. printed Reads a byte from the keyboard and places it in the 'A' register. Sends a byte from the 'A' register to the teletype. The contents of the 'A' register are unchanged upon return. Outputs the 'A' register to the teletype. It also handles the tab and carriage return special characters. ' ".3235 fir‘n%snaift '4 APPENDIX C CONVERS-M FLOW CHART APPENDIX C CONVERS—M FLOW CHART INPUT CHAR. STRING SEARCH CURRENT LIBRARY SEARCH COORDINAYOI'S UBRARY COORD. LIBRARY LOADED EXECUTE ROUTINE LABEL OR ASSM. COORD. RUN ONLY BIT SET ? ENTER CALL TO ROUTINE Figure C-l. Flow Chart of the CONVERS-M Command Decoding Software. 171 172 SET CARRY LOAD ASSM. CODE TABLE WITH CORRECT If OF CHARACTERS. FIRST TYPE OF ASSM. CODE. SEARCH TABLE OF CURRENT TYPE OF ASSM. CODE. NEXT TYPE OF ASSM. CODE EXECUTE APPROPRIATE HANDLER DEPENDING ON TYPE OF ASSM. CODE FOUND. CLEAR CARRY Figure C-Z. Flow Chart of the CONVERS-M Assembler. Figure C-3. SEARCH LABEL LIBRARY DEFINITION FOUND? SEND 'P' FOR PREVIOUSLY DEF. 173 GET FIRST CHAR. ENTER IT IN THE LIBRARY ENCODE LABE L SEARCH LABEL LIBRARY DEFINITION FOUND ? STORE ADDRESS AT LASTAD Flow Chart of the Label Decoding Software. APPENDIX D PROGRAM LISTINGS i I######################### I I#####################fi##fi I IBATCH STREAM TO INITIALIZE MICRO 2 MICRO 0 APPENDIX D A. Microcomputer Programs ILOAD THE ROUTINE :10 kc BOOT2 MVI STA MVI LXI LXI LDAX MOV INX INX DCR JNZ RET A: m N I x - 'GUIZUUIU ya 0 2 106 .40000 > 0 O IMICRO 2 CONVERS-M OVERHEAD l :30 LXI CALL RST HLT 40120 40016 11500 0:0 MV STA STA HLT SP.11777 O 2 A; 12 12 1 0003 0002 IMICRO 2 PARAMETER STORAGE AREA l ---c~>wo- “o o oo OOH0~OOOHHV00MOO OOOOOOFA‘O‘OO U U 532 £34 i36 ;4O i42 :44 i46 550 352 i54 556 560 :62 ib4 ;65 DPTS AVGS PTS INT FREQ BEAM DELY #D #C GPTS AVGA SCNS IIIIIIIIIIIIIII 174 iBOOT MICRO 2 iTHO MICROS iSEND 100 BYTES iSTART OF MICRO 2 iSTART OF TABLE iSTORE IT sMICRO # 2 iLASTAD 5LINKAD iSOFTNARE STACK sENABLE HOLD iSEND THE FLAG DATAO TOTAL POINTS IN ONE D NUMBER OF SCAN AVERAGES HORIZONTAL SCAN INC. NUMBER OF INTEGRATIONS VERTICAL SCAN FREQUENCY BEAM CURRENT ELECT. DELAY AND INT. NUMBER OF DATASETS NUMBER OF CUTS NUMBER OF GRAPH POINTS NUMBER OF ARRAY AVERAGES ERROR STATUS NUMBER OF SCANS DATA1 (POST-INT FOR LAG) DATA2 (PRE-SCANS FOR LAG 0 366 - O 567 - 0.0 570 - CPT 0,0 z72 - OVL 0,0 ;74 - NAV 0,0 :76 - 51000 5100- 010 .102— MIN 210 I 104' MAX iRUN THE ROUTINE BOOT2 iREMOVE THE ROUTINE I IKI i#####fi#################%# I MICRO 2 i######################### << VSET PUSH H PUSH PSN MVI All STA 120010 5 STA 120013 ; STA 120014 F LDA 44 3 STA 140000 5 LDA 46 . STA 140001 5 MVI A.13 STA 140002 , LDA 42 . STA 140004 I STA 140003 5 LDA 36 . STA 140005 . POP PSW POP H >> .< SFLAG I PUSH PSW I :10 LDA 140011 I RAL JNC .10 STA 140010 . pr Pew . CC ADDR PUSH PSW LHLD 10 i MOV AIH ANI 77 i MOV HIA pop Psu << BSCAN i PUSH PSN SFLAG ; SFLAG I MVI A121 STA 120013 I '44 TO 58 USEC. 'SCAN FLAG DATAG (POST-SCANS DATA4 TOTAL POINTS IN ONE CUT OVERLAP POINTS PER DATA CURRENT MONOCHROMATOR NEW MONO. HAVELENGHT FREE ADDRESS FOR CUTS MINIMUM MAXIMUM S p 5INITIALIZE VIDICON BY ES OF PRECISION ET AIN & TURN F.A. EAT. F.A. COUNTERS BEAM CURRENT 2 T S G OFF I B ‘DELY ELECT. DELAY AND INT. 'ggég ON THE BEAM ‘VERTICAL SCAN FREQUENCY RESET FLOPS 'PTS ‘HORIZONTAL SCAN INC. 'RETURN ON SCAN FLAG TOTAL 'CLEAR SCAN FLAG ‘30 TO 44 USEC. TO RETURN iLOAD DATASET MAP LASTAD CLEAR MICRO BIT SETUP SCAN CLEAR SCAN FLAG 'SYNCHRONIZE WITH SCAN ‘SET F.A. SCAN BIT POP 33 PS“ i******************** gROUTINE TO TAKE MULTIPLE SCANS FROM THE IVIDICON. ALL PARAMETERS PASSED THROUGH {REGISTERS FOR SPEED. ON INPUT: SCAN ADDRESS POINTER l i i i i i i i i i i i i H&L B C A ON RETURN: H&L B&C D&E A SCAN AVG. SCAN INT. 176 NUMBER OF SCANS TO TAKE NEW SCAN ADDRESS POINTER UNCHANGED UNCHANGED CLEARED i******************** %< MSCAN 10 :30 :40 :50 :60 c< ENDS, PUSH STA XRA MOV CMP JZ INX MOV INX XCHG SHLD MOV MOV XRA CMP JZ MVI STA MVI STA SFLAG DCR JNZ MVI STA MVI STA HOV SFLAG DCR JNZ MOV XCHG 76 O DCR JNZ PUP \ ‘> PUSH MVI STA SFLAG LDA ANI STA STA ‘ 0 ‘ m 3 O 3 0 -m moo O ... H A‘ M‘ h OHOHO ONO O pd N w um- #sw Ovow r‘ O 0 m m'm OH)H)‘0 hflNfiV ODIFH IMI'OOD‘U FOMOHO ~ N IO A .10 D PSW AI1 120013 120016 3 60 120017 ITAKE MULTIPLE SCANS INUMBER OF DATASETS iHIGH BYTE OF ADDRESS iIF 0 - END OF MAP iLON BYTE OF ADDRESS iDATASET ADDRESS ISAVE # INT. ISAVE # AVG. iTEST IF INT. iJUMP IF NO INT. iCLEAR F.A. SCAN BIT iCLEAR BEAM SCAN BIT IINT. STARTS ON FLAG ITEST IF LAST INT iSET BEAM SCAN BIT iSET F.A. SCAN BIT iREPLACE # OF INT ISCAN STARTS ON FLAG iTEST IF LAST AVG. iREPLACE # AVG. iMVI AI 5% SCANS ITEST IF LAST SCAN IROUTINE TO TERMINATE iCLEAR F.A. SCAN BIT iTERMINATES ON FLAG IGET ERROR STATUS ISTORE IN ERROR STATUS iCLEAR ERROR FLAG 177 POP PS“ 4’) << OPEN2 IOPEN THE SHUTTER PUSH PS“ :10 AB? $20004 ITEST IF ALREADY OPEN JNZ .20 STA 120007 UMP .10 :20 POP Psw I,” {{ SHUT2 ICLOSE THE SHUTTER PUSH PSU :10 LDA 120004 iTEST IF ALREADY SHUT ANI 2 J2 .20 STA 120007 JMP .10 :20 POP Psw << SCAN2 ISETUP AND TAKE MULTIPLE SCAN LDA 55 IAVGA (ARRAY AVG.) :10 PUSH PSN LDA 34 IAVGS (SCAN AVG.) MOV BIA LDA 4o IINT MOV CIA LDA 62 ISCANS STA 120017 ICLEAR ERROR FLAG ADDR ILOAD DATASET MAP BSCAN iSETUP SCANS MSCAN iTAKE THE SCANS ENDS IEND SCANS POP PSH DCR A ICHECK IF LAST ARRAY AVG. 9N2 .10 4’ J {C LAG2 ISTUDY VIDICON LAG LDA 56 iAVGA (ARRAY AVG.) :10 STA .20 LDA 34 IAVGS (SCAN AVG.) MOV BIA LDA 4o IINT (PRE-INT) MOV CIA LDA 64 IPOST—INT MOV OIA LDA 66 IPOST—SCANS MOV EIA LDA 65 IPRE—SCANS STA 120017 ICLEAR ERROR FLAG ADDR ILOAD SCAN TABLE BSCAN ISETUP SCANS MSCAN iTAKE INIT. SCANS MOV CID IPOST—INT MOV AIE iPOST-SCANS MSCAN iTAKE FINAL SCANS ENDS iEND SCANS 7e iMVI A. :20 o IAVGA DCR A JNZ .10 \. 4'} I###########u##########a## ' MICRO 1 Z#############0«########## I I' 178 << R1140 :10 LDA 16000 ANI 2 JNZ .10 LDA 16300 >> << “1140 PUSH PSW :10 LDA 16000 RRC JNC .10 POP PSW STA 16300 >> ;********** ITHIS ROUTINE OPENS FLOPPY FILES FOR I/O IUSING THE FLOPPY LOAD OR SAVE COMMANDS. iAN ASCII ’5’ IN THE AC OPENS THE FILE iFOR OUTPUT. AN ASCII ’L’ IN THE AC IOPENS THE FILE FOR INPUT. (I.E. THE FILE iNAME IS INPUT FROM THE KEYBOARD I THE IAC IS PUT IN FRONT AND THE STRING IS iSENT TO THE FLOPPY. ;********** {C FILE PUSH B MOV CI MVI AI CRT LINE JC .5 OFF iREMOVE # CHAR. MOV MOV IPUT COMMAND ON ON MOV INR ON FCMD ISEND & DECODE IT :50 POP B ; ********** ITHIS ROUTINE DECODES MESSAGES FROM THE i11/40. THIS RESULTS ARE: ICARRY ACC MESSAGE FROM 11/40 OI) iSAVE THE CHAR. 2 I’*’ O I» 3’? w 0) I CLR 0 ACK/EOT - COMMAND RECEIVED & COMPLETED I CLR 1 ENQ/EOT - 11/40 EXPECTS DATA FROM MICRO I CLR 2 SOH - 11/40 SENDING DATA TO MICRO I CLR 3 BEL/EDT - 11/40 EXPECTS FILESPEC FROM MICRO I SET 25 NAK/EOT - ERROR MESSAGE - ANY CHARS. BETWEEN I NAK & EOT ARE SENT TO THE CRT. i ————— --— —————————————————— iANY CHARS. NOT MATCHING THE ABOVE ARE ASSUMED TO BE A MESS IAND ARE SENT TO THE CRTI UNTIL ONE OF THE ABOVE CODES iARE FOUND. ;**§******* {C MDEC PUSH B :10 R1140 IGET A CHAR. MVI BIO IINIT. RETURN CODE CPI 6 I’ACK’ JZ .20 CPI 25 I’NAK’ JZ .50 I**ERROR** INR B CPI 5 I’ENG’ JZ .20 INR B CPI 1 J2 .30 INR B CPI 7 J2 .20 CRT JMP .10 :20 R1140 CPI 4 JNZ .60 :30 MOV AIB POP B STC CMC RET :50 R1140 CPI 4 JZ .60 CRT JMP .50 :60 POP B MVI AI25 ETC ;******%**§ 179 I’SOH’ i’BEL’ iNEXT CHAR. i’EOT’ 5**ERROR** iGET NEXT CHAR. I’EOT’ iTHIS ROUTINE SENDS THE CHAR STRING iON THE STACK TO THE 11/40 AND iUSES MDEC TO DECODE THE REPLY ;***§****** {{ MCMD PUSH B OFF MOV BIA :10 OFF w114o DCR B JNZ .10 MVI AI4 w114o POP B UPEC i*******§** iTHIS ROUTINE SENDS THE iGET THE DATA iSEND IT i’EOT’ B REG. TO THE 11/40 iTHE 11/40’S REPLY IS DECODED AND THE ICARRY SET IF IT IS NOT ACK/EOT i******%*§* <£ CKSUM MOV AIB W1140 MDEC ORA A RZ SIC ;******%*** iSEND IT iDECODE ANSWER IACK/EOT? (ZERO) ITHIS IS A ROUTINE WHICH HANDLES TRANSFERS iBETWEEN A MICRO FLOPPY AND THE 11/40. iIT SHOULD BE LOADED INTO THE COMMUNICATOR ;********** << PIP :10 MVI AI44 CRT LINE RC OFF CPI 2 J2 . MOV BIA :14 OFF DCR B 51$! IGET A 2 LETTER COMMAND i2 LETTERS? iREMOVE IF NOT 2 LETTERS 180 JNZ .14 MVI AI77 i’?’ CRT JMP .10 :20 ON iREPLACE # CHAR MVI AI4 iSETUP COMMUNICATION STA 16000 MVI AI6 i’ACK’ W1140 MDEC IWHAT RESPONSE? ORA A IZERO? CNZ .150 i**ERROR** NO ACK/EOT ON STAR :30 MCMD ISEND COMMAND &DECODE RESP CC .150 5**ERROR** NAK FROM 11/40 :151 CPI 0 iACK/EOT ? JZ .10 iDONE CPI 1 511/4O EXPECTS DATA JZ .40 ggI 260 Ill/4O SENDING DATA S§I 3100 511/40 WANTS FILESPEC CALL .150 5**ERROR** UNKNOWN CODE 2153 JMP .10 i ********** iDATA FROM FLOPPY TO 11/40 ; **§******* :40 MVI AI114 i’L’ FILE JC .40 iIF ERROR TRY AGAIN :41 LXI BI1 iCHECKSUM=0IBYTE COUNT=1 LXI HI177750 5-30 DAD SP IFIND ADDRESS FOR DATA BUFFER SHLD .46 42 CALL 1106 iDINP JC .44 iEOF DCX H MOV MIA iSTORE DATA INR C JNZ .42 5377 MAX 244 MOV EIC DCR C 32 .50 IALL DONE MOV AIC 21140 iSEND BYTE COUNT I 46 OI 0 DC H :47 MOV AIM W1140 ISEND DATA DCX H XRA B iFORM CHECKSUM MOV BIA DCR C iDONE? JNZ .47 CKSUM iSEND & CHECK CHECKSUM CC .150 i**ERROR** CHECHSUM ERROR :152 XRA A , CMP E iZERO FOR CONTINUE JZ .41 :50 XRA A W114O iZERO BYTE COUNT TO TERMINATE JMP .10 i *******%** iDATA FROM 11/40 TO FLOPPY ; *§*******§ :60 MVI AI123 i’S’ FILE JC .60 ITRY AGAIN :62 R1140 iGET BYTE COUNT ORA A iZERO? 181 JZ .70 iALL DONE MOV CIA MVI BIO iINITIALIZE CHECKSUM :64 R1140 iGET THE DATA CALL 1123 iDOUT XRA B iFORM CHECKSUM MOV BIA DCR C iDONE? . JNZ .64 R1140 iGET CHECKSUM CMP B SMATCH? 32 .66 MVI AI25 iDON'T MATCH! W1140 iSEND ’NAK’ MVI AI4 i’EOT’ W1140 CALL 1171 iEOTS - CLOSE FILE CALL .150 i**ERROR** CHECKSUM ERROR :66 MVI AI6 i’ACK’ W1140 MVI AI4 i’EOT’ W1140 JMP .62 iNEXT :70 CALL 1171 iEOTS JMP .10 ,' ********** iFILESPEC FOR 11/40 5 ********** 1100 MVI AI43 i’#’ CRT LINE JC .100 JMP .30 iGO SEND IT i *********% iERROR CODE ROUTINE ; ********** 3150 LXI HI.160 iADDRESS TABLE POP D iRETURN ADDRESS MVI BI5 iMAX. # OF ERROR CODES :156 MOV AIM iGET LOW BYTE ADDRESS CMP E iMATCH? JZ .157 INX H INX H iPOINT TO NEXT ADDRESS DCR B JNZ .156 1157 MVI AI106 i’F’ CRT MOV AIB ADI 60 iCONVERT TO ASCII CRT JMP .10 {C DFILE iOPEN DATA FILE PUSH PSW :10 MVI AI123 i’S’ FILE iOPEN THE FILE JC .10 iERROR POP PSW CC DATAF ISEND BYTE TO FLOPY PUSH PSW LDA 7 CALL 1123 iDOUT POP PSW {C AXIS IROUTINE TO DRAW AXIS PUSH PSW PUSH H PUSH B PUSH XRA STA STA MVI STA LXI CALL LXI CALL POP POP POP POP RET 121I3I2 21I31I2 MVI PUSH MVI MOV INX MOV INX :14 STA DCR JNZ DCR JNZ POP DCR 9N2 \ J} J. PUSH PUSH PUSH PUSH LHLD MOV INX MOV INX PUSH MOV INX MOV INX MOV CMA STA XTHL MOV STA MVI STA DAD XTHL POP LHLD MOV INX MOV .bH ' EZII‘ lTl' OHIOIDNIGH- PJ J) [U 3 34> “(13‘ H 0 LL ALL; I: 0 ISO 00 ‘ ‘ U" [0‘ H hm HH 0‘0 - I—I-Ho O O ‘ ‘O U] 33 2 ~ IUImUIUImHIUGU (It~ IUHPJI PJ 3 3 3 0 O H [U 0“ 0“ O 0 cm s 'UUJUIZIZHU UHDH) H D U] 2 >13 ‘ 0’) NZ \1 182 IgLEAR THE GRAPHICS IY iY AXIS TABLE I41I31 I241I3 iLOW LEVEL PLOTTING ROUTINE iLASTAD iXINIT iSAVE XINIT iXINC INEXT Y DATA IY VALUE 5X VALUE ITURN ON POINT IINR X ILASTAD IUPDATE XINIT iGRAPHICS ON UNTIL CTRL/C 183 STA 16500 ITURN ON GRAPHICS :10 READ CPI 3 ITEST FOR CTRL/C JNZ .10 MVI A.17 STA 15500 ITURN ON VRAM POP PSW {C LOCIT iDRAWS LINE AT SPECIFIED X MVI AI27 STA 16500 ITURN ON GRAPHICS LHLD 10 ILASTAD MOV ILOAD X POINT IN B&C INX MOV INX MOV INX MOV LXI :10 DAD DCX MOV ORA JNZ MOV STA XRA STA LXI MVI :20 STA DCR JNZ DSP IVRAM ON AT CTRL/C I’d iXINC 03 I! 3 3 CC iXINIT C 5X VALUE iY VALUE IC=5 ILINE DOWN [04:09.) PJIO G! O O N H OH O -o»>w»>HD-n)woxoxm1wxo o-~o~ 0w» m 0 ######################### MICRO 0 ######################### C. C. C. C. (*)(*)(*)(*)(*)(*)(*)(*) IGENERAL PURPOSE CONVERS-M IROUTINES (*)(*)(*)(*)(*)(*)(*)(*) C. C. C. C. C. C. C. C. .. ;‘C.C.C.C MCHG STRING SEARCH 184 CLEAN JC .20 POP PSW ON MCHG JMP .5 :20 LHLD 36 MOV AIH ANI 37 MOV HIA POP PS ON MCHG PUSH2 MOV AIB ON RMICRO xx CC SUB2 ;(D&E) = (D&E) - (H&L PUSH LDAX SUB STAX INX INX LDAX SBB STAX INX JNC DCX XRA STAX INX STAX :10 INX (I) Z 'UUUUUIDU' IUZUUIUZU‘O H 0 0') C {< DIV 316-BIT BY B-BIT iSAVE STATUS AND REGISTERS .0 C U] I 1) [I] Z IGET DIVISOR IGET DIVIDEND iBIT COUNTER C H :10 MOV CC iROTATE LOW BYTE CC IROTATE HIGH BYTE iDECREMENT COUNTER C 19' OI 2hr" DUDO ta COUI ‘LJ UODIDF'DI‘J) :20 SUB HHHM 0000 :30 MOV iCOMPLEMENT HIGH BYTE DI D” G“ U‘ 51' I F) CMA ICOMPLEMENT LOW BYTE 18S MOV LIA PUSH2 IGUOTIENT ON STACK MOV AID ON IREHAINDER ON STACK g8; IRESTORE STATUS AND REGISTERS POP POP >> {< DIV3 I24—BIT X 16—BIT PUSH ISAVE STATUS AND REGISTERS PUSH PUSH PUSH POP2 MOV MOV POP2 MVI STA XRA MOV :10 MOV MOV RAL MOV INX MOV RAL MOV INX MOV RAL MOV DCX DCX LDA DCR JZ STA MOV RAL MOV MOV RAL MOV JNC MOV SUB MOV MOV SBB STC CMC JMP :20 MOV SUB MOV MOV SBB JNC MOV MOV ADD MOV MOV ADC JMP :25 000 :30 MOV CMA VIUU (n 5: U) 2 iGET DIVISOR iLOW BYTE TO REG C iHIGH BYTE TO REG B IADDRESS OF 3-BYTE DIVIDEND 1 IBIT COUNT D no (3011) '0‘ ~\ DZDZDZDDUIL-JII" CCC IROTATE DIVIDEND LEFT ONE BIT C C C iMSB OF DIVIDEND INTO CARRY C N U! IDECREMENT BIT COUNT IIF A=0I JUMP TO EXIT IELSE STORE COUNT AND CONT iMSB OF DIVIDEND INTO REM 'D' II: DIZ DIX DUND‘ ‘ T00 "1010 CC IJUMP IF BORROW ON SUBTRACT iSUBTRACT LOWER BYTES CC EJDI’TIODiup pm D‘ UD ITIOD OD iSUBTRACT HIGH BYTES iLOOP iSUBTRACT LOW BYTES CH CC ISUBTRACT HIGH BYTES iJUMP IF NO BORROW IRESTORE D iELSE ADD DIVISOR BACK CCH C C ' GDMODU‘ Roma)- H iAND LOOP iSTORAGE LOCATION FOR BIT IGET QUOTIENT AND COMPLEMENT 3 0 0D FIDO CD "10 D 186 MOV INX MOV CMA MOV INx MOV CMA MOV INX PUSH2 POP POP POP POP ***§*************** OUTINE TO INPUT ASCII TO LASTAD "' STRING iTHE ABOVE EXAMPLE WOULD CAUSE THE iASCII REPRESENTATION OF STRING TO iBE STORED AT LASTAD PRECEEDED iBY THE NUMBER OF CHARACTERS IN THE ISTRING. THE STRING IS STORED FIRST iCHARACTER FIRST. i******************** i C DZDZD C iADDRESS OF NEXT DATA WORD iRESTORE STATUS AND REGISTERS 1061 I: DI: DIZ 712! *V 0 IJ 3 '0 U) 2 CC CC.C CC " IINPUT ASCII TO LASTAD MODE ".Soo ICHANGE TO RUN ONLY MODE SESING IGET THE CHARACTER STRING MOV CIA Ia CHAR. LHLD 32 iLASTAD MOV MIA INx H :10 OFF MOV MIA iSTORE NEXT CHAR. INX H DCR C JNZ .10 SHLD 32 IUPDATE LASTAD CC BINDEC I16-BIT BINARY TO 5 DIGIT BCD PUSH H PUSH B PUSH PSW MVI C,5 IINITIALIZE BCD DIGIT COUNTER MOV BIC :10 SNI A,12 IDIVISOR FO 10 DIV IDIVIDE BINARY NUMBER BY 10 OFF IGET REMAINDER PUSH PSW IAND SAVE DCR C IDECREMENT BCD COUNT JNZ .10 iJUMP IF MORE LEFT POP2 IGET GUOTIENT MOV CIB IREINITIALIZE BCD COUNTER :15 POP PSW IRECOVER REMAINDER CPI 0 518 IT A ZERO? JNZ .25 iNOI REST OF DIGITS ARE SIGN 383 g iYESI DECREMENT COUNT JNZ .15 iJUMP IF MORE TO DO INR C INR B JMP .25 :20 POP PSW 187 :25 ON IPUT REMAINDER ON STACK DCR C UNz .20 MOV AIB IGET NUMBER OF NON—ZERO DIGIT ON iAND PUT ON STACK POP PSW POP B POP H >> CC DECBIN IDECIMAL TO BINARY CONVER PUSH H PUSH B PUSH D PUSH PSW OFF IR CHARACTERS MOV BIA LXI H.o IINITIALIZE THE BUFFER :10 MVI 0.0 OFF IGET A DIGIT MOV EIA CPI 12 518 IT BCD? UNC .30 iJUMP IF ERROR DAD D IADD THE DIGIT TO THE BUFF UC .30 ITOO LARGE IF CARRY DCR B ILAST DIGIT? Uz .20 IUUMP IF DONE MVI C.11 IIF NOT THEN BUFFER x 10 MOV EIL MOV DIH :15 DAD D IADD 10 TIMES FOR MULTIPLY UC .40 ITOO LARGE IF CARRY DCR C IAODED 10 TIMES? UNz .15 UMP 1o IBACK TO GET A DIGITEE :20 PUSH2 IPUT THE RESULT ON THE STAC POP PSW POP D POP B POP H STC g2? ICLEAR THE CARRY (NO ERROR) :30 DCR B :40 MOV AIB ON I# CHARACTERS LEFT POP PSW POP D POP B POP H STC ISET THE CARRY (ERROR FLAG) << DECOUT PUSH PSW BINDEC ICONVERT BINARY NUMBER TO DEC SNI AII ASCII ICONVERT TO ASCII CHARACTERS MESSAG iOUTPUT ‘ POP PSW CC DECIN IINPUT A DECIMAL # PUSH PSW :10 SgglNG A IINPUT ASCII STRING ON IASCII =\ OCTAL MODE ASCII ICONVERT TO BCD DECBIN ICONVERT TO BINARY Uc .20 IERROR FLAG SET? POP PS RET 188 :20 CLEAN NHAT UMP 10 >> {4 RUN2 PUSH PSW RUN 2 :10 FLAG 2 U2 .10 POP PSW >> {a (*)(*)(#)(*)(*)(*)(*)(*) 'ROUTINES TO INTIIALIZE AND 'ACCESS DATA MEMORY '(*)(*)(*)(*)(*)(*)(*)(*) CCCCC.C.C.C. C C {C MINIT LXI H,o SHLD 40050 SHLD 40052 SHLD 40054 SHLD 40032 SHLD 40070 LXI H.51000 SHLD 40100 LHLD 40010 MVI M.o {{ DMEM DECIN DECIN POP2 SHLD 40072 POP2 SHLD 40032 MOV E.L MOV D,H DAD D SHLD .30 XCHG LHLD 40010 SHLD .20 LXI H.77777 :10 MOV A.H CPI 140 RC XRA A MOV MIA DCX H DCX D MOV AID ORA E UNz .10 INX H XCHG 41 20 0,0 MO AID ANI 77 MOV MIA INX H MOV MIE INX H MVI M.o SHLD .20 LXI H.40050 IREMOVE GARBAGE ISEND A ’7’ TO TTY ITRY AGAIN IRUN VIDICON MICRO iINITIALIZE DATA & CUT MEMORY I#D IfiC IGPTS IDPTS iCPTS iTDP OF CUT MEMORY IFREE ADDRESS - CUTS iLASTAD IZERO DATASET MAP IDMEM DPTS OVLP IDPTS IOVLP iDVLP iDPTS I2 BYTES PER POINT iLASTAD iEND OF DATA MEMORY iBOTTOM OF DATA MEMORY ILAST POINT? ILXI HI iLASTAD TABLE iREMOVE MICRO BIT iSTORE LOW BYTE iEND OF TABLE MARK I#D (# OF DATASETS) 189 INR M LHLD 40072 IOVLP (OVERLAP OF DATASETS) XCHG DCX H DAD D DAD D 2 21 -L :30 0.0 'D UMP .10 {{ MCUT iMCUT # DECIN i# POP2 MOV CIL LHLD 40050 i#D (# OF DATASETS) SHLD 40070 iCPTS (# OF POINTS PER CUT) MOV EIL MOV DIH DAD SHLD XCHG LHLD XRA 210 CMP JZ INX INX JMP :20 INX SHLD . LHLD 230 XRA MOV DCX DCX MOV ORA JNZ INX XCHG 41 TLXI H! :40 OIO iADDRESS OF CUT MAP MO iHIGH BYTE FIRST INX MOV ILOW BYTE IMOVE END OF DATA MARK YT S S PER POINT '2 CC. B E XI D PT * C i2 BYTES PER POINT ITOTAL # OF BYTES ILASTAD iSKIP OVER DATASET MAP b ' U 0 w 0 O H O I'II'ZD N O p» O O iADDRESS OF CUT MAP 0100 iFREE ADDRESS D U iTEST IF ZERO IQUUNJIXDD O C INX MVI SHLD LXI INR iINC. # OF CUTS XCHG 21 ILXI DI :50 860 H I# OF BYTES DCR C i# OF CUTS TO CREATE JNZ .30 SHLD 40100 iNEW FREE ADDRESS {C TAB SPARAMETER TABLE AVGS 40034 AVGA 40056 INT 40040 PTS 40036 FREQ 40042 BEAM 40044 DELY 40046 DPTS 40032 CPTS 40070 GPTS 40054 SCNS 40062 #D 40050 #00 TO U KITIKIKIZ C‘hC CCCCCCCCCCCC CCCCCCCCCCCC I \l (‘I :10 :40 :50 :60 :10 :30 \\\‘\\ O‘JOCCCCCC O I m X ‘Y’ ‘0‘ 3O #- UN} 3 :30 (DH C C U] @0130 DIN' II' 00000' 3DU Z WUUU U) E D ' DIDUI'U HC ...: - UP 30(1) 04: (.J ‘ ‘0 300 U D' G! DIET OD0‘ 00 C 190 40052 40072 40074 40102 40104 0I0 IPARAM. NAME TO CRT I# CHAR. IRETURNS WITH PARAMETER iSTACK IADDRESS OF PARAMETER TABLE HITAB ISAVE STACK ILXI iEND OF TABLE 5% CHAR. IRESTORE STACK ILCMP IMATCH idUMP OVER ADDRESS iGET THE ADDRESS iGET RID OF STACK ICLEAR CARRY - FOUND ISET CARRY — NOT FOUND iPARAMETER OUTPUT ROUTINE HITAB PARAMETER TABLE 191 ON MESSAG MVI AI40 iSPACE CALL .50 INX H MOV EIM iADDRESS OF DATA INX H MOV DIM INX H PUSH H iSAVE POINTER XCHG MOV EI IGET THE DATA INX H MOV D XCHG PUSH2 DECOUT iOUTPUT THE PARAMETER POP H MVI AI11 iTAB CALL .50 UMP .20 250 ON MVI AI1 ON MESSAG RET :60 POP B POP D POP H 139*” P {{ SET iROUTINE TO SETUP VIDICON PUSH H PUSH P :10 41I1I 52 5 1i * PUSH2 MESSAG STRING CHECK JC .10 IERROR MOV AIH iALL DUNE ORA L d2 .20 iALL DONE IF ZERO DECIN iGET THE VALUE XCHG PDP2 XCHG MOV INX MOV .JMP :20 POP ’39P II '4 C ISTORE IT iNEXT PARAMETER 200 m ID‘ZIZ mH‘ (*)(*)(*)(*)(*)(*)(*)(*) DATA FILE MANIPULATION AND STORAGE ROUTINES (*)(*)(*)(*)(*)(*)(*)(*) C. C. C. C. C. C. C. C. C. C {C CFIND ICFIND NUMBER PUSH PSW PUSH H PUSH D :10 DECIN LDA 40052 i#C (NUMBER OF CUTS) POP2 CMP JNC WHAT JMP :20 XCHG LHLD XRA :30 CMP JZ INX INX JMP :40 INX MOV DCR RAL MOV DAD MOV INX MOV XCHG PUSH2 LHLD SHLD POP POP ’39P CC DFIND PUSH PUSH PUSH :10 DECIN LDA POP2 CMP \JNC WHAT UMP :20 MOV DCR RAL MOV MVI LHLD DAD INX MOV DCX MOV ORI MOV LHLD XCHG DAD DAD PUSH2 LHLD MOV SUB MOV MOV SBB MOV SHLD POP POP {39" {c TFINB 'F M O a h (D H O (D O p—C O w 0 C mIgom DDI‘II‘ZD 33) m 40070 40054 PSW PSW 40050 ‘ F C H m PC) 0 or ~ 0“ SD03 3 co» m ‘0 U m OD ZID ["0 0C DJHUDJHJDFWUDJh 0C1 hCh‘DJHnICLhUFI DD“ 0 h m 2 192 ILASTAD ISKIP OVER DATASET MAP iPOINT TO CUT ADDRESS iCUT ADDRESS TO STACK iGPTS = CPTS iDFIND NUMBER INUMBER OF THE DATASET ICURRENT NUMBER OF DATASETS ILASTAD IPOINT TO DATASET ADDRESS iGET LOW BYTE OF ADDRESS iHIGH BYTE OF ADDRESS iMICRO ADDRESS 3 IOVLP (DATASET OVERLAP) I2 BYTES PER POINT IDATASET ADDRESS TO STACK IDPTS (POINTS PER DATASET) iGPTS = DPTS - OVLP iTFIND TYPEINUMBER PUSH PUSH :10 STRING POP2 PUSH2 CLEAN DCR JZ :20 WHAT 3MP :30 MOV CPI JNZ DFIND JMP :40 CPI JNZ CFIND :50 POP '39? > aa‘ LHLD MOV ORI MOV INX MOV LHLD MOV CMA MOV MOV CMA MOV INX CFIND DECIN POP2 DCX XCHG DAD BAD XCHG POP2 XCHG LDA :10 PUSH MOV STAX INX INX MOV STAX INX DCX DAD DAD POP DCR UNz LHLD BOLD {C STORE TFIND SETUP CALL SETUP LXI MVI A.H 10 00 I Oh mo 20 U1 0 IM DflmeUUDUIOD 3 H m 0 E 40050 40070 1IDFILE .60 1IDATAF HI40032 BI44 193 iGET THE IC = CUT TYPE (CFIND) I D = DATA iSHOULD BE 1 ILASTAD IREPLACE 5D&E = F iDPTS (P 5138(C = '- iINPUT D iPOINT iH 52 &L POI BYTES ID&E POI iRD ICUT DST POINT MICRO ADDRESS BITS IRST DATASET OINTS PER DATASET) DPTS ESTINATION NT TO SOURCE PER POINT NT TO DESTINATION (# OF DATASETS) iPOINT TO NEXT DATASET i2 BYTES PER POINT iCHECK I iCPTS F LAST DATASET #D ISTORE DATASET ON FLOPY IDATASET ADDRESS iOPEN THE FILE IRUN IT iDATA BYTE TO FLOPY IPARAMETER STORAGE ;# BYTES 194 :20 MOV AIM IGET A BYTE INX H CALL .50 iSTORE IT DCR B JNZ .20 LHLD 40054 IGPTS XCHG POP2 IDATASET ADDRESS => H&L :30 gay SIM ILOW BYTE OF DATA CALL .50 iSEND LOW BYTE TO THE FLOPPY TNX SIM IHIGH BYTE OF THE DATA CALL .50 iSEND HIGH BYTE TO THE FLOPPY DCX D iTEST IF END OF DATA MOV AID ORA E JNZ .30 LXI HI1171 iSETUP 1IEOTS SHLD 20004 CALL .60 MVI AI166 iREPLACE THE HLT STA 20007 RET :50 STA 20007 IDATA BUFFER :60 RUN 1 :64 FLAG 1 IMICRO DONE YET 9.2 - 64 CC TSTORE ISTORE ALL DATASETS SETUP 1IDFILE IOPEN THE FILE CALL .60 SETUP 1IDATAF LXI HI40032 iSTART OF PARAMETERS MVI CI44 :10 TRX SIM iGET A BYTE CALL .50 ISEND IT TO THE FLOPPY DCR C JNZ .10 LHLD 40072 iOVLP MOV CIL MOV BIH iB&C = OVERLAP LHLD 40032 IDPTS MOV AIL SUB C MOV LIA MOV AIH SBB B MOV HIA SHLD .30 I#POINTS = DPTS - OVLP LHLD 40010 ILASTAD SHLD .24 IADDRESS POINTER :20 41 ILXI HIADDRESS POHINTER :2 OIO IADDRESS POINTER MOV AIM iHIGH BYTE OF DATASET ADDRESS CPI 0 I0 IF END OF DATASETS JZ 40 iEND OF DATASETS ORI 140 IREPLACE MICRO ADDRESS BITS T8: aIA iHIGH BYTE OF DATASET ADDRESS MSV EIM iLOW BYTE OF DATASET ADDRESS X H SHLD .24 IREPLACE ADDRESS POINTER XCHG DAD B DAD B iH&L = DATASET ADDRESS + 2 21 iLXI DI#POINTS :30 0:0 I#POINTS :34 MO AIM ILOW BYTE OF DATA CALL .50 iSEND LOW BYTE TO FLOPPY :40 :50 :60 :70 {c MAX :10 :20 :30 :100 :110 INX MOV CALL INX DCX MOV ORA UNZ UMP LXI SHLD CALL MVI STA RET STA RUN FLAG dz 4' .r’ TFIND LHLD MOV MOV POP2 MOV INX MOV XCHG SHLD SHLD XCHG LXI INX INX DCX MOV ORA UZ CALL UC DCX DCX CALL UC DCX DCX MOV STAX INX INX MOV STAX UMP LHLD SHLD LHLD SHLD RET LDAX CMP RNZ DCX DCX LDAX CMP INX INX RET OIO GI 03 ‘mDUI'DI NI OO‘NU OOHOA U H 0 ‘0 "0 U S " 01m 50% NH 7 NH 3 3 I70 H 00 m p HH 00 O 3 C ‘UDUIUDUI h'k OHOHH fiNHHO 3 0000 h m UI3UUI 30 195 iHIGH BYTE OF DATA ISEND HIGH BYTE TO FLOPPY iTEST IF LAST POINT iNEXT DATASET iSETUP 1IEOTS IREPLACE HLT ON MICRO 1 iDATA BUFFER iMAX TYPEINUMBER iGPTS EB&C = GPTS IH&L = ADDRESS iMIN IMAX IHIGH BYTE OF MAX IPOINT TO NEXT DATA POINT iTEST IF LAST POINT iCHECK FOR NEW MAX iUUMP IF NEW MAX iPOINT TO MIN iUUMP IF NOT NEW MIN IGET LOW BYTE iGET THE HIGH BYTE iMIN iMAX IMIN - ...-C".- BRIAB ngHa - -- 17:2 :10 ." A... \ \ <. "C .’-.’. C \. :10 TFIND POP2 TFIND PUSH2 RBACK RCLEAR PUSH PUSH PUSH PUSH LHLD XCHG POP2 MVI MOV XRA MOV INX DCR UNZ DCX MOV ORA UNZ POP POP POP TFIND RCLEAR CLR8K PUSH PUSH LXI XRA MOV INX MOV CPI UC POP POP UI'U 40054 I‘DI I 'UIUI' PSW H «>530 O O m p DCUIU 'UIUGT MDU‘ OI3DOw H ‘ R] O U 0 U] 2 PSW H HI60000 'UI' IUDI3D HO‘ OOI [D Z: iRO iDS iGP iSR ;# IDO iCL IGP IDA i2 ICL iNE 196 IMAX UTINE TO SUBTRACT TWO DATA SETS T TS C PTS. NE IBACK DSTISRC I "> U 4 {C MPLOT :10 :30 TFIND POP2 SHLD SETUP LXI PUSH2 XRA MOV INX MOV INX MVI LHLD PUSH2 SHLD DIV3 POP2 LHLD MOV INX MOV INX LXI INX LDAX MOV INX INX LDAX MOV INX SHLD LHLD SHLD LXI LXI SUB2 LHLD MVI INR MOV RAL MOV MOV RAL MOV UNC MOV INR STA LHLD MOV CMA MOV MOV CMA MOV INX 41 0I0 MO INX MOV INX SHLD XCHG DAD 76 0 m Uh r H I I.100 C 83I3I3D IH‘ OLIJ D D U|\l AN HI40102 C CHC CC ‘00 D ID F‘HO MOD ID F' C C C Uta D0 D0" DD' I D!— pmm' C 10212131 3 3 .24 CD 197 ISRC IPLOT H iBUFFER IX SCAL iGPTS i250/GP iREMOVE ILASTAD IXINIT IX SCAL IDESTIN iMAX iSCALE iROTATE iSRC iDATA = iMVI iSHIFT IPLOTTING ROUTINE ANDLER ING TS ADDRESS = 0 E HIGH BYTES ATION = MAX - MIN SCALE UNTIL CARRY DATA - MIN AISHIFT :34 :40 :44 :50 ICC ‘C- :10 C. C. C. C. C. C. C. C. C. C. J- \. \. \ :10 .’. .l . \C‘. :10 LOC OPEN PUSH SETUP RUN FLAG U2 ‘3’?" SHUT PUSH SETUP RUN FLAG U2 {”9” J-I' .40 EIL DIH .34 AID .60 50 IH .20 IDSP HA» FD'I .64 1IAXIS HH .10 HHH3I3PJU .10 (*)(*)(*)(*)(*)(*)(*)(*) HIGH LEVEL VIDICON SPECTROPHOTOMETER ROUTINES (*)(*)(*)(*)(*)(*)(*)(*) SW IOPEN2 11‘ [00.11013 [nu- £0 ‘UJ (DZ ‘0‘ IUI'JI'J'U I C 4 PJ U)» 20 198 ISTA iDST IPLOT IT iLXI iPOINTS iTURN ON DST HIPOINTS GRAPHI IROUTINE iDRAW THE AXIS iPLOT THE DATA ILOCATES CTRL/C ENDS TO DRAW AXIS SPECIFIED IRELATIVE LOCATION (1-NPTS) iMICRO 1 LASTAD IOPEN THE SHUTTER iCLOSE THE SHUTTER VINIT SETUP 89“? C’ VERR PUSH PUSH LHLD XRA CMP UZ PUSH2 BINOUT POP POP 33 {C SCAN SETUP RUN2 YERR {{ LAG DECIN POP2 MOV STA LXI MVI DECIN XCHG POP2 XCHG MOV INX DCR UNZ SETUP RUN2 VERR CC ‘5') r' ‘f \ \. :10 :10 C. C. C. C. MICRO -<.< BOOT4 MVI STA MVI LXI LXI LDAX MOV INX INX DCR UNZ RET LXI CALL EI HLT 100050 100016 105300 0 0 :10 :30 2ISCAN2 AIL 40040 HI40064 CI3 2I LAG2 ######################### 0 ######################### 000 - - C M. ‘ HI—A .h 00C 00 ‘ $01300]:me D y-A 0 SPI3777 HHHHH \IO‘JDNO 199 IINIT iVIDICON ERROR STATUS IPRE- IINT IDATA IMICR LASTAD LINKAD SOFTWAR END OF IALIZE VIDICON IOUTPUTS VIDICON ERR ITAKE A SET OF SCANS ILAG PRE-INTIPOST-INTI INTEGRATIONS STORAGE LIZE MICRO #4 IA CROS 17 BYTES T OF MICRO 4 O #4 E STACK LIBRARY TIMES TO FLUSH V0 > BOOT4 /KI 200 520 - # VEL. PTS I##4####fi#######fi#######fi# MICRO 4 I##4###################### {C DRIVE4 PUSH XRA STA POP P) {C FILL4 PUSH MVI STA E’PP {C FLOW4 PUSH MVI STA ‘39P {< WAIT4 PUSH PUSH PUSH MVI :10 MVI :20 MVI :30 DCR UNZ DCR UNZ DCR UNZ POP POP POP >> {< PUSHIT FILL4 WAIT4 DRIVE4 WAIT4 FLOW4 {C EMPTY MVI :10 WAIT4 FLOW4 WAIT4 DRIVE4 DCR .sz CC FLUSH4 PUSH PUSH LDA MOV :10 WAIT4 PUSHIT PSW A 16000 PSW ‘UHD‘U 0 O [00“ (.0 200.12 "U U) Z AI4 16000 '0 U) U) (.0th Z 8 \IV \IV Q ~\\ 0 'UGJU' 0' Cd' OOUUUU'U H N O O U) E D .10 DUI-A511) ‘ \l U) D Z iRETURN STOPPED FLOW iFILL S.F. SYRINGES IRUN A PUSH ON S.F. ILONG WAIT (APPROX. 3 iFILL THE SYRINGES AND DO A S.F. PUSH IFILL THE SYRINGES IPRESSUREIZE THE SYRINGES IDO THE PUSH iEMPTY THE DRIVE SYRINGES iFLUSH OUT THE S.F. iTIMES TO FLUSH iTAKE A PUSH 201 WAIT4 DRIVE4 IEXHAUST TO WASTE EMPTY IEMPTY THE SYRINGES DCR B UN: .10 POP B POP PSW >> {C CLEAR1 ICLEAR CLOCK # 1 PUSH PSW MVI AI377 IDONN COUNTERS STA 12000 STA 12000 POP PSW CC CLEAR2 ICLEAR CLOCK # 2 PUSH PSW MVI A.377 IDOWN COUNTERS STA 12001 STA 12001 POP PSW CC VEL§R A IRECORD A TIME PROFILE A STA 20 I» POINTS = 0 MVI AIeo IINIT COUNTER # 1 STA 12003 MVI AI160 IINIT COUNTER # 2 STA 12003 CLEARI ICLEAR COUNTER # 1 CLEAR2 ICLEAR COUNTER # 2 LHLD 10 ILASTAD MOV AIH ANI 37 IREMOVE MICRO ADDRESS MOV HIA LXI D.2o IADDRESS OF THE 4 OF COUNTS LDA 16000 INATCH POSITION FLAG RAR IBIT 0 IS THE FLAG UNC .20 iWATCH COUNTER # 2 :10 LDA 16000 IPOSITION FLAG RAR UC .10 LDA 12000 IGET THE LOW BYTE MOV MIA ISTORE IT INX H LDA 12000 IGET THE HIGH BYTE MOV MIA ISTORE IT INX H XCHG 1939 M IINC. THE 5 OF POINTS CLEAR1 ICLEAR COUNTER # 1 :20 R23 15000 IPOSITION FLAG UNC .20 LDA 12001 IGET THE LOW BYTE MOV MIA ISTORE IT INX H LDA 12001 IGET THE HIGH BYTE MOV MIA ISTORE IT INX H XCHG IDEG M IINC. THE # OF POINTS CLEAR2 ICLEAR COUNTER # 2 UMP .10 iWATCH COUNTER # 1 C .. J’) ##3##################8### C. C. C. C. MICRO 202 O I######################### l i- << {C :10 A A A Al A A :10 1C STOP ISTOP ALL SLAVE MICROS PUSH PSW XRA A STA 16000 IOUTPUT STA 46 iOUTPUT SAVE POP PSW RUN4 IRUN MICRO #4 RUN 4 FLAG 4 U2 .10 LDA 46 ANI 77 ICLEAR RUN BIT STA 16000 STA 46 DRIVE IRETURN STOPPED-FLOW PUSH PSW SETUP 4IDRIVE4 RUN4 POP PSW WASTE DRIVE IRETURN TO DEFAULT 4’.) FILL IFILL S.F. SYRINGES PUSH PSW SETUP 4IFILL4 RUN4 POP PSW FLOW IRUN A PUSH ON S.F. PUSH PSW SETUP 4IFLOW4 RUN4 POP PSW FLUSH iFLUSH THE S.F. BININ I4 OF TIMES TO FLUSH POP2 MOV AIL STA 100017 SETUP 4IFLUSH4 39N4 NAIT IA CALL HERE CAUSES 99.999 PUSH H PUSH PSW 41,367.50 iLXI HI367I50 SHLD .100 LXI H..100 MVI AI3S7 STA .100 DCR M UNz .20 INX H DCR M UNz .10 NOP NOP POP PSW POP H RET 0 9x VEL IRECORD A TIME PROFILE 203 CFIND IINPUT DATASET TO STORE IT IN SETUP 4IPUSHIT RUN4 iSTART THE PUSH SETUP 4IVEL4 RUN 4 iSTART TAKING DATA MVI AI12 iWAIT 1 SEC TO COLLECT DATA :10 WAIT DCR A UNZ .10 STOP SETUP 4IEMPTY RUN4 IEMPTY THE DRIVE SYRINGES LDA 100020 5% POINTS STA 40070 ICPTS STA 40054 iGPTS MOV CIA MVI BIO IDON’T CAUSE TROUBLE :gfig iGET DATASET ADDRESS (FROM CFIND) LHLD 100010 iSTART OF DATA :20 MOV AIM iGET A BYTE CMA iTHEY’RE DOWN COUNTERS STAX D ISTORE THE DATA INX H INX D MOV AIM iHIGH BYTE CMA STAX D INX H INX D DCR C IDONE? UNZ .20 MVI AI1 STA 40056 iAVGA = 1 STA 40034 IACGS = 1 J7 a) I#4###4######4444444#44444 ' MICRO 4 2######################### << VCNT LDA 2o MOV C.A LDA 16000 RAR UNC .20 :10 LDA 16000 RAR UC .10 DCR C R2 :20 LDA 16000 RAR UNC .20 DCR C Rz UMP .10 J’s" << VSF4 PUSHIT ITAKE A PUSH VCNT iWAIT FOR THE TRIGGER POINT i ;##################8###### I I I ,I- r C“. :10 :30 :40 :60 MICRO VSF2 LDA MOV LDA MOV LDA MOV MVI LHLD MOV ANI MOV STA LDA RAL UNC STA MVI STA MVI MSCAN DCR U2 CMP UZ PUSH MVI STA LDA RAL UNC STA DCR UNZ POP UMP ENDS {C SFMAXE :10 i I##4###################### I I######################### I LHLD LDA MOV MVI LDA MOV STA LDA RAL UNC STA DCR UNZ MVI STA MVI MSCAN ENDS C C J) In" MICRO 2 '##4###################### 50 DIA [.0010~ JP‘ «5 D HuIijI-som 00 HH- HO 0H0 HOFJOO OOD I OD H H- LJ 0 ~ru~ 4»- A» \r o~ ~ HHDU‘ mGU >H1>w o I} p H .3) H0030 OO OOD OD H 00 HH- HO O C.A O ‘IU‘H DH 4h OH H (J DHD' NH' 0 204 i# SCANS TO TAKE 5# SCANS TO SKIP i# AVERAGES ;# INT. = 0 iDATASET POINTER IREMOVE MICRO BITS ICLEAR SCAN FLAG iREAD SCAN FLAG iCLEAR SCAN FLAG iSET F.A. SCAN BIT iTAKE 1 SCAN ILAST SCAN? iSKIP = O? ISTOP F.A. iREAD THE SCAN FLAG ICLEAR SCAN FLAG iLAST SCAN TO SKIP? iDATASET POINTER iNUMBER OF AVERAGES ifi INT. = 0 I# SCANS TO SKIP iCLEAR SCAN FLAG iREAD THE SCAN FLAG iCLEAR THE SCAN FLAG ISKIP? iENABLE F.A. 51 SCAN 205 I {C SFSgAgP iSFSCAN # SKIP:TRIGGER.# DECIN 5% TO SKIP POP2 MOV A:L STA 40064 DECIN iTRIGGER POINT POP2 MOV AIL STA 100020 FLUSH iFLUSH IT SETUP 2IVSF2 SETUP 4IVSF4 RUN4 iRUN THE STOPPED-FLOW QUE? iTAKE THE SPECTRA SETUP 4IEMPTY iEMPTY THE SYRINGES sg~4 << SFMSTOP ;SFMAX # SKIP.DATASET.TRIG DECIN 5% SKIP POP2 MOV A.L STA 40064 :10 DECIN 5DATASET # LDA 40050 FCURRENT # 0F DATASETS POP2 CMP JNC WHAT JMP :20 NOV DCR RAL MOV MVI LHLD DAD MOV ANI MOV SHLD DECIN iTRIGGER POINT POP2 MOV STA FLUSH SETUP FMAX2 SETUP RUN4 iRUN THE STOPPED-FLOW Sggg ;TAKE THE SCAN gaggP 4,EMPTY ;EMPTY THE SYRINGES Ir, J, 'l— ‘Hm [—00 0- iDATASET TABLE iREMOVE MICRO ADDRESS BITS bIVDUbUm DD' 0‘ \1‘ OD I 00D H 0 \l 0~ iFLUSH IT bl‘J PD ‘ h on (U) 0!" U] 0 '11 [U b O 206 B . Minicomputer Programs Cit-*4?***********§********** CONV2.FTN THIS ROUTINE IS USED TO CONVERT STANDARD BINARY FILES FROM THE FIEESDN SYSTEM INTO ASCII *****fi********§********** BYTE IFILE(24);OFILE(24) INTEGER PARAM(20):COUNT,DATA<1024) 10 NRITE(6.900) FORMAT(’ INPUT FILE:'/) READ(6I905)IFILE 905 FORMAT(24A1) IERR=0 CALL FORPIP< 00A .4 U) m 0 ll 'maa< "UJAHO UUJAHO DAD-c OH XMHH *OVH (MDT! 0 flHmH II A II II AOO\I II II AOOV II I! OHM "'10 OOH HOOVOVH ox4< I FORMAT(’ READ(6I9 IERR=O CALL FOR IF(IERR) WRITE(6. GOTO 75 WRITE(6.9 FORMAT(’ GOTO 75 CALL ASSIG DO 120 I=1 WRITE(4:90 FORMAT(’RD CONTINUE ENDFILE 4 GOTO 65 END l / 1 "U VCVflI \‘ 0h1'fl1 OTIOHC £2 8 I N I 7 COUNT 1000.0) + TSEC 000000.0)/Y(I) C 1 D ) T I ( 1 ) ) LE ALREADY EXISTS’) ( ) I OUNT 000.0) + TSEC X 4 O X 2 U 0 G ~H r4 m L 9 IF NT (I 15 2=V/T. 3=D/T. FILE:’/) EIIERR) 0 ILEI24IIERR) );YO(I) .5) 4=END’/) REFERENCES 10. ll. 12. 13. 14. 15. 16. 17. 18. REFERENCES R.E. Dessy, Anal. Chem., 39, 1100A (1977). C.A. Korn, Computer Desigp, 177 (June, 1977). W.J. Lennon, in Computer Networking and Chemistr , P. Lykos, Ed., Amer. Chem. Soc., Washington, D.C., 1975, pp. 67-84. P. Day, in Computer Networking and Chemistry, P. Lykos, Ed., Amer. Chem. Soc., Washington, D.C., 1975, pp. 85-107. R.L. Ashenhurst, in Computer Networking and Chemistry, P. Lykos, Ed., Amer. Chem. Soc., Washington, D.C., 1975, pp. 108-117. J.C. Emery, in Computer Networking and Chemistry, P. Lykos, Ed., Amer. Chem. Soc., Washington, D.C., 1975, pp. 219-230. B.C. Searls and D.E. Freberg, Computer, 8, 22 (1975). D.H. Chung, Electronic Desigp, 133 132 (1976). D.R. McGlynn, Microprocessors: Technology, Architecture, and Applications, John Wiley and Sons, Inc., 1976, pp. 182-187. D.H. Chung, Electronics, 102 (January, 1977). P.M. Russo, Computer, 193 67 (1977). A.J. Weissberger, Computer Desigp, 151 (June, 1977). D. Phillips and A. Goodman, Electronics, 109 (July, 1977). C.J. Sipple, Digital Desigp, 68 (August, 1977). D.J. Mueller, Computer Desigp, 81 (October, 1977). G. Adams and T. Rolander, Computer Desigp, 81 (March, 1978). S. Hourdakis, Ph.D. Thesis, Michigan State University, 1978. Intel Corporation, Intel 8080 Microcomputer Systems User's Manual, Intel Corporation, Santa Clara, CA., 1976. 214 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 215 M.J. Milano and H.L. Pardue, Anal. Chem., 41, 25 (1975). R.B. Coolen, Ph.D. Thesis, Michigan State University, 1974. M.J. Milano and H.L. Pardue, Clin. Chem., 21, 211 (1975). G.M. Rider and D.W. Margerum, Anal. Chem., 42, 2098 (1977). T.A. Nieman, F.J. Holler, and C.G. Enke, Anal. Chem., 48, 899 (1976). G.C. Pimentel, Appl. Opt., Z, 2155 (1968). R.E. Santini, M.J. Milano, and J.L. Pardue, Anal. Chem., 45, 915A (1973). Y. Talmi, Anal. Chem., 47, 658A (1975). Y. Talmi, Anal. Chem., 423 697 (1975). J.L. Dye and L.H. Feldman, Rev. Sci. Instrum., El, 154 (1966). N. Papadakis, R.B. Coolen, and J.L. Dye, Anal. Chem., 42, 1644 (1975). R.B. Coolen, N. Papadakis, J. Avery, C.G. Enke, and J.L. Dye, Anal. Chem., 423 1649 (1975). N. Papadakis, Ph.D. Thesis, Michigan State University, 1974. R.M. Wightman, R.L. Scott, C.N. Reilley, and R.W. Murray, Anal. Chem., 4Q, 1492 (1974). J.W. Strojek, C.A. Gruver, and T. Kuwana, Anal. Chem., 41, 481 (1969). M.R. Hollaway and H.A. White, Biochem. J., 149, 221 (1975). C.J. Faini, R.J. Desa, and J. Lee, in Flavins and Flavoproteins, T.P. Singer, Ed., Elsevier Scien. Pub. Co., Amsterday, Neth., 1976, pp. 82-86. MJ.Mflmm,HJHIQNMm PE.Cmm,R£.Smmhd,DM.Mmgmwm and J.M.T. Raycheba, Anal. Chem., fig, 374 (1974). T.A. Nieman and C.G. Enke, Anal. Chem., 483 619 (1976). T.A. Nieman, Ph.D. Thesis, Michigan State University, 1975. R.E. Dessy, in Computers in Chemical Research and Education, D. Hadi, Ed., Elsevier Scien. Pub. Co., Amsterdam, Neth., 1973, pp. 121—134. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 216 D.A. Yates and T. Kuwana, Anal. Chem., 4§3 510 (1976). G. Horlick and E.G. Codding, Anal. Chem., 4a, 1490 (1973). G. Horlick, Appl. Spect., g9, 113 (1976). J.E. Hornshuh, Ph.D. Thesis, Michigan State University, 1978. D.G. Mitchell, K.W. Jackson, and K.M. Aldous, Anal. Chem., 4;, 1215A (1973). R.E. Johnson, Applications of RCA Silicon Diode Array Target Vidicons, Camera Tube Application Note AN-4623, RCA Electronics Components, Harrison, N.J., 1971. B. Chance, J. Franklin Inst., 232, 455 (1940). B. Chance, J. Franklin Inst., 2323 613 (1940). B. Chance, J. Franklin Inst., 3223 737 (1940). S.R. Crouch, F.J. Holler, P.K. Notz, and P.M. Beckwith, Appl. Spect. Rev., 123 165 (1977). D. Sanderson, J.C. Bittikofer, and H.L. Pardue, Anal. Chem., 44, 1340 (1970). G.E. Mieling, R.W. Taylor, L.G. Hargis, J. English, and H.L. Pardue, Anal. Chem., 4§3 1686 (1976). K.R. O'Keefe and H.V. Malmstadt, Anal. Chem., 707 (1975). B.W. Renoe, K.R. O'Keefe, and H.V. Malmstadt, Anal. Chem., 48, 661 (1976). P.K. Notz, Ph.D. Thesis, Michigan State University, 1977. F.J. Holler, S.R. Crouch, and C.G. Enke, Anal. Chem., 48, 1429 (1976). E.G. Douglas, IEEE Trans. Electron. Devices, ED—22, 224 (1975). Data Sheet on Delfection Assembly Type CYlOO, Penn—Tran Corp., Bellefonte, Penn. L.A. Selke, IEEE Trans. Electron Devices, ED—l6, 625 (1969). R.L. Felkel, Jr., and H.L. Pardue, Anal. Chem., 42, 1112 (1977). T.B. McCord and M.J. Frankston, Appl. gptics, 443 1437 (1975). J.E. Stewart, Durrum Application Notes No. 4, Durrum Instr. Corp., Palo Alto, CA. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 217 J.F. Below, Jr., R.E. Connick, and C.P. Coppel, J. Amer. Chem. Soc., §Q, 2961 (1958). J.L. Dye and V.A. Nicely, J. Chem. Ed., 4§, 443 (1971). N.W. Tietz, Fundamentals of Clinical Chemistry, W.B. Saunders Co., Philadelphia, PA., 1976, pp. 298-304. G.R. Kingsley, J. Biol. Chem., 131, 197 (1939). A.G. Gornall, C.J. Bardawill, and M.M. David, J Biol. Chem., 177, 751 (1949). J.W. Mehl, E. Pacovska, and R.J. Winzler, J Biol. Chem., 177, 13 (1949). T.R. Koch, C.P. Johnson, and M.E. Chilcote, Clin. Chem., 39, 392 (1974). J. Savory, M.G. Heintges, M. Sonowane, and R.E. Cross, Clin. Chem., 24, 1102 (1976). Wai-Tak Law, Ph.D. Thesis, Michigan State University, 1978. M.B. Denton and 5.8. Tilden, paper no. 225 presented at the Pittsburgh Conference on Analytical Chemistry and Applied Spectros Copy, 1978. C.H. Moore, Astron. Astrophys. Suppl., 45, 497 (1974). Product Specifications on Model 1070 Intelligent Diskette Controller, Persci, Marina Del Ray, CA. w ”'TITIITTITTJMTMMTTMTMTTWF