• ^£5^^^^*^ . o ^-o.^^' • • %/ * o ^ c,-^' ,^J < ^^0^ f "ov* .'^^o*- ''*'*o«' r»^W'-. •'ov*' »°-'*. •-. ^^V.-J,!^^^ .oo^.^^^o ,/\^^/\, , V '-^^0^ o r. '-n^O^ o. * -y >* "^ .'■. O A" .,.' A' . •< '-^^0^ °^^W" -oV^ X-^^ • ^^\ '-^^.^ 0^ .1.'^'* "> v' . IC 9062 Bureau of Mines Information Circular/1986 Microcomputer-Based Instrumentation System for Monitoring Ground Support in a Deep Mine Shaft By J. K. Whyatt and E. L. Hardin UNITED STATES DEPARTMENT OF THE INTERIOR 'm mmm miimmm mm ii mmiiii i mim mmmm Information Circular 9062 Microcomputer- Based Instrumentation System for Monitoring Ground Support in a Deep Mine Shaft By J. K. Whyatt and E. L. Hardin UNITED STATES DEPARTMENT OF THE INTERIOR Donald Paul Hodel, Secretary BUREAU OF MINES Robert C. Horton, Director A r\0 ^0 Library of Congress Cataloging in Publication Data: Whyatt, J. K. (Jeff K.) Microcomputer-based instrumentation system for monitoring ground support in a deep mine shaft. (Bureau of Mines information circular ; 9062) Bibliography: p. 15-16. Supt. of Docs, no.: I 28.27: 9062. 1. Ground control (Mining)— Measurement— Data processing. 2. Rock deformation— Idaho— Shoshone County — Data processing. 3. Silver mines and mining— Idaho— Shoshone County. 4. Microcomputers— Pro- gramming. I. Hardin, Ernest L. II. Title. III. Series: Information circular (United States. Bureau of Mines) ; 9062. TN295.U4 [TN288] 622s [622'.25] 85-600257 CONTENTS Page Abstract 1 Introduction 2 Shaft conditions 2 Ob j ectlves 2 Acknowledgments 2 Instrument specification 3 Closure 3 Lining pressure 4 Lining strain 5 Temperature 6 Instrument modifications 6 Extensometers 9 Pressure cells 10 Strain gauges 10 Data acquisition system 10 Underground subsystem 11 Surface subsystem 12 Installation plan 12 2,414 level 12 4,063 level 13 5,191 level 15 5,955 level 15 Summary 15 References 15 Appendix A. — Instrument calibration 17 Appendix B . — User ' s guide to MDAP85 20 Appendix C. — Program listings 33 ILLUSTRATIONS 1. Total and measurable rock displacement at the 2,414 level 4 2. Electrical schematic of the multiple-point borehole extensometer 5 3. Electrical schematic of the pressure cell 6 4. Electrical schematic of the concrete embedment strain gauge 7 5. Electrical schematic of the thermistor 8 6. Multiple-point borehole extensometer Installation 9 7. Multiple-point borehole extensometer head protection 9 8. Encapsulated strain gauge Installation 5,960 level 10 9. Data acquisition system configuration at the Sliver Shaft 11 10. Instrument location by level 13 11. Instrument Installation at the 2,414 and 4,063 levels 14 A-1. Cast pressure cell 18 A-2. Pressure cell calibration curves 19 B-1. System configuration 21 B-2. Arbiter schematic 22 B-3 . Program flow chart 23 B-4. 'ACQUIR' printed output 27 B-5. 'PRINT' output format 30 TABLES A-1, Pressure cell grout mix 17 B-1 . Hardware list 22 UNIT OF MEASURE ABBREVIATIONS USED IN THIS REPORT op degree Fahrenheit Si ohm ft foot % percent in inch psi pound per square inch kfi kilohm s second lb pound V volt liF microfarad V dc volt , direct current min minute W watt mV millivolt yr year MICROCOMPUTER-BASED (NSTRUMENTATION SYSTEM FOR MONITORING GROUND SUPPORT IN A DEEP MINE SHAFT By J. K. Whyatt ^ and E. L. Hardin ^ ABSTRACT This report describes a microcomputer-based instrumentation system for structural monitoring of the circular, concrete-lined Silver Shaft in northern Idaho. The 1-ft-thick concrete lining and surrounding rock mass were instrumented with a total of 12 multiple-point borehole exten- someters, 16 pressure cells, 22 concrete embedment strain gauges, and 12 thermistors. The instruments were distributed among four test sites and installed immediately above the shaft bottom during sinking at the 2,414, 4,063, 5,191, and 5,955 levels. Limited access to the instru- ments prompted the development of a microcomputer-based remote data acquisition system that could be operated from the surface. The system scanned the instruments on a programmed schedule, printed out reduced data, and stored the data for plotting and recall. Data acquisition from off-site and uploading of data to mainframe computers were accom- plished by the addition of modems to the basic system. The system is suitable for use in monitoring the structural behavior of any deep mine opening, especially in harsh operating environments and where access is limited. ^Mining engineer, Spokane Research Center, Bureau of Mines, Spokane, WA. ^Geophysicist, Science Applications Inc., Las Vegas, NV. ""'"""——"■" INTRODUCTION Bureau of Mines personnel instrumented Hecla's Silver Shaft near Mullan, ID, as part of a research program into shaft support design. A major task within this project was the development of a rugged instrumentation and data acquisition system for shaft conditions. Instru- ments were installed at the 2,414, 4,063, 5,191, and 5,955 levels in the shaft dur- ing sinking over a 3.5-yr period. SHAFT CONDITIONS Severe time and environmental con- straints were major considerations for instrumentation system design. The Sil- ver Shaft was on the critical path for developing new areas of Hecla's Lucky Friday Mine, so interference with sinking operations had to be held to an absolute minimum. Three days were allotted for installation at each level, one of which was always a holiday. No time was al- lowed for in-shaft troubleshooting or manual data collection. Shaft environ- mental conditions were quite hostile to installation and operation of the instru- mentation system and included: 1. Limited access, 2. Cramped space. 3. Humidity, 100 pet, 4. Corrosive, highly conductive water inflow. 5. Rock temperature, 120° F. 6. Shock and flyrock from blasting. 7. Mud, dust, and falling debris, OBJECTIVES The objective of this shaft design re- search project was to monitor rock mass behavior and the loads induced in the concrete lining during and after sinking of the Silver Shaft. The data were used by Bureau researchers to determine design criteria and establish models that pre- dict changes in shaft behavior with vari- ations in stress field, rock properties, and support system. In addition, the data collected by the instrument system were furnished to the shaft sinking con- tractor and mining company for internal use. Application of ground support design experience acquired at other shafts is difficult. Differences in rock proper- ties, geologic structure, in situ stress field, and the proximity of surrounding excavations may result in significantly different results for similar support methods. The Bureau is presently working to bridge this gap by developing quanti- tative records of shaft performance and improved predictive models for designing shaft ground support systems. In summary, the instrumentation goals were as follows: 1. Provide accurate, timely data on rock mass and concrete lining behavior for on-site correlation with daily events and observations. 2. Establish a data base that would be useful for establishing shaft design criteria. The main body of this report covers the data acquisition system, instrument spec- ification, instrument modifications, and the installation plan. Instrument cali- bration, a program user's guide, and software listings are included as ap- pendixes. Separate reports cover data analysis (1-2).-^ ACKNOWLEDGMENTS J. R. McVey, supervisory electronics technician, and P. A. Edminster, elec- tronics technician, of the Bureau's Spo- kane Research Center assisted with micro- computer and data acquisition hardware specification and equipment maintenance. R. Muhs , mining engineer, also of Spokane Research Center, was the lead on-site person for routine data collection activ- ities, liaison with Hecla personnel, and ■^Underlined numbers in parentheses re- fer to items in the list of references preceding the appendixes. equipment operation and maintenance. Mr. Pete Boyko, project manager, Hecla Mining Co., provided all necessary arrangements for use of Hecla facilities and equip- ment, and for installation of instruments in the shaft. INSTRUMENT SPECIFICATION Measurements indicative of the behav- ior of the supported rock mass , the ef- fectiveness of the ground support sys- tem, and the design strength safety factor of the ground support system were needed to meet project goals. Radial closure of the shaft was anticipated to far exceed any tangential displacement, and would provide valuable data for judg- ing the stability of the shaft. Elas- ticity theory predicts a reduction of radial closure rate with continued shaft advance; however, if closure accelerated, or even failed to slow significantly, the concrete lining would be in danger of failing. The effectiveness of a ground support system could be determined by measuring the increase in rock mass cohesion and the confinement provided at free faces. Cohesion of the rock mass is increased by installation of bolts that intersect planes of weakness and prevent block movement. The performance of bolts in this manner is hard to measure with available instrumentation. A second way the bolts provide support is by applying confining pressure to free faces. This pressure can be determined by measuring the tension in individual bolts with strain gauges or rock bolt load cells. The Silver Shaft utilized Split Set'* and grouted rock bolts, which are essentially passive, since they require rock movement for developing tension. Unfortunately, the variability of bolt performance and the difficulty in providing survivable instruments for the bolts precluded their instrumentation. The second part of the ground support system was the concrete lining installed throughout the shaft. The lining pro- vided confinement to the rock mass and ^Reference to specific trade names and manufacturers is made for identification purposes only and does not imply endorse- ment by the Bureau of Mines . sealed the surface to prevent rock degra- dation and spalling. As with the bolts, the lining requires shaft closure for de- veloping a support load; however, the lining was relatively brittle and could rupture if overloaded, a problem not en- countered with the bolts. Sampling of the hoop (tangential) stress yielded an estimate of the support load and strength safety factor. Thus , the primary measurements sought from the Silver Shaft were the radial closure of the shaft and the hoop stress in the concrete lining. Instru- ment specifications required ruggedness, dc voltage output compatible with the data acquisition system, sensitivity, and appropriate operating ranges. CLOSURE The simplest method of measuring clo- sure is with a tape extensometer. This method, and any other requiring shaft ac- cess or installation of a wire or rod across the shaft, were unsuitable because of interference with sinking operations. Closure was measured indirectly with borehole extensometers, which used deep anchors as a stable reference. In addi- tion to the deep reference and collar an- chors, other anchors were installed to provide a radial deformation profile of each borehole. The profile was useful for delineating zones of block movement and rock yielding, which are important in designing shaft support, as well as for confirming the stability of the deepest anchor. Positioning the deepest anchor and specifying the range and accuracy of transducers required a prediction of the radial displacement as a function of dis- tance into the shaft wall and distance to the shaft bottom. This estimate was made for the first installation with the elas- tic solution (3) as follows: lUHHUIJHHUHHHIl lUAMWUnSBOi u. = 1 - v2 v(l + v) ^x "*" ^y r + ^x "*" ^y r - where Up Sx E a = r = V = radial displacement maximum horizontal stress minimum horizontal stress modulus of deformation shaft radius (without lining) radius of depth of interest Poisson's ratio 6 = angle from Sx direction. Examination of equation 1 revealed that radial deformation would decay rapidly with increasing radius. Figure 1 is a plot of this behavior for typical 2,414- level rock properties and stress field. The two curves represent the total and measurable elastic deformations. Mea- surable deformation is the 10% to 30% of the total that occurred after extensom- eter installation (4_) . The change in displacement with radial distance (i.e., slope) approached zero at about 45 ft, or twice the unlined shaft diameter of 22 ft. Thus, for purely elastic behav- ior, an anchor at 2 diameters could be 1 I I r 1 I \ 1 I I r KEY ■Total elastic displacement •Measurable elastic displacement J \ \ L 5 10 15 20 25 30 35 40 45 50 55 60 DISTANCE, ft FIGURE 1. - Total and measurable rock displace- ment at the 2,414 level. ^x ^y 4a2\ r T + — ■) cos 29 ^x ^y a'^ r^ cos 26 (1) considered stable. To be conservative, the deep anchor was placed at 55 to 60 ft, while the intermediate anchors were placed at 2, 5, 10, 15, and 30 ft to pro- vide the deformation profile, Extensometer accuracy was limited pri- marily by rod friction effects to about ±0.005 in (5^), while data acquisition system resolution was limited to 0.1% of total range. In order to provide range for possible outward movement and extra closure, 2-in ranges were chosen for the first two levels. To allow for inelastic rock deformation, 4-in ranges were speci- fied for the last two levels. A sche- matic of the extensometer is shown in figure 2. LINING PRESSURE Measurement of tangential lining pres- sure was complicated by the distribu- tion of superimposed localized bending and shear stresses. Shear stresses were avoided by virtue of the flat jack pres- sure cell design chosen. The influence of bending stresses was minimized by positioning the cells to measure tangen- tial stress at the middle of the lining. The tangential load produced by a given rock displacement was estimated by com- bining thin-wall cylinder solutions for both radial displacement and tangential stress due to an external hydrostatic pressure to give St = UpE/a (2) where Sf = average tangential (hoop) stress a = inside radius E = modulus of deformation Up = radial displacement. For a displacement of 0.005 in, the tangential stress in the liner would Junction box r Regulated^ Current power . . . ^ . limiting supply . ^ , , , resistor i|| :7^i|l|i ^AA^ 1 5 Vdc 50/i( 1 %) 1 / 4 W 'I Transmitter 1 Gain: 5 m V Range: 0-50m V A/D converte ( V) = 1/100 Borehole anchor rods Borehole collar 4-in range linear potentiometer FIGURE 2. - Electrical schematic of the multiple-point borehole extensometer. increase by 162 psi. Pressure cells of the type used have a sensitivity of with- in 10 to 15 psi, which is the limiting factor for ranges up to 10,000 psi, where the 0.1% resolution of the data acquisi- tion system becomes important. The range of cells used corresponds to the expected stress range of to 3,000 psi. Labora- tory tests of concrete cylinders showed a uniaxial compressive strength of around 3,500 psi. A schematic of the pressure cell is shown in figure 3. LINING STRAIN Concrete typically displays an increas- ing strength and deformational modulus with time, suggesting that lining strain is load-path dependent. Early loading of the lining while still green may be relieved by creep of the concrete lin- ing. Finding the amount of creep and the effect of increasing modulus requires measurement of strain in the concrete lining. The strain readings were also valuable as a backup in case of pressure cell failure. Concrete embedment strain gauge specifications are comparable with those of the pressure cells , with a sen- sitivity of ±20 microstrain and a range of to 20,000 microstrain. Figure 4 is a schematic of the embedment strain gauge circuit. Junction box r Regulated^ Current P°*«^ limiting supply resistor 1 - Shield Cabling Semiconductor pressure transducer Gauge body Mortar briquette FIGURE 3. - Electrical schematic of the pressure cell. TEMPERATURE The grout curing in the extensometer boreholes and the concrete lining pro- duced significant heat and elevated the temperature of the instruments for a short time after installation. Although the instruments were expected to function at the expected maximum temperatures, temperature was monitored for correction of instrumentation data. Thermistors were specified to handle a range of tem- peratures from 60° to 160° F and for dur- ability. The schematic for the thermis- tor is shown in figure 5. INSTRUMENT MODIFICATIONS The instruments installed in the Silver Shaft were mostly of proven designs that were available "off the shelf," although they required modification for efficient installation and protection against shaft conditions. These modifications evolved with the project, resulting in the de- signs presented here. Junction box r Regulated power supply ■il-^'I'l'^— Current limiting resistor ■^VAA/' 5Vdc 1 8a( 1 %) 1 /2W •I Lb Transmitter 2 Gain: 2 5 m V Range: 0-25mV A/D converter Voltage divider (V)= V Bridge completion circuit potted in an aluminum tube Embedment strain gauge FIGURE 4. - Electrical schematic of the concrete embedment strain gauge. r Junction box 25a Regulated power supply 5Vdc 1 00 Completlon resistors Lir Transmitter 2 Gain:100mV Range: -50mV to + 5 m V A/D converter Voltage divider (V)=1 / 1 OV ^ Thermistor ( 3kA or 3 OKa) I (Controls current through the thermistor) _J FIGURE 5. - Electrical schematic of the thermistor. EXTENSOMETERS Geokon model A3 multiple-point borehole extensometers with inflatable anchors were modified for ease of installation and increased protection against lining installation, blasting shock, and fly- rock. These modifications did not affect the operation of the instrument but were additions to the packaging of system components. The limited time and space available at the shaft bottom demanded that the exten- someters be preassembled at the surface, lowered to the bottom of the shaft be- neath the muck bucket, and inserted into the borehole while still hanging beneath the muck bucket (fig. 6). The sling for suspending the extensometer protected the displacement transducers in the head from loading by the weight of the anchors and anchor rods , while it preserved the flex- ibility of the instrxoment for bending into the borehole. The sling consisted of a steel cable attached to the head of the extensometer to support the blast Muck bucket Cable sling Extensometer 4-in-diam pipe to 5.900-ft station Nylon rope 50-lb weight FIGURE 6. - Multiple-point borehole extensom- eter installation. bottom lowered at protection enclosure and electronics , and a polypropylene rope that was run along the length of the instrument, tied off at each anchor and at the head, in order to support the weight of the rods and anchors. A 50-lb weight tied to the bottom of this rope minimized swinging while the instrument was lowered to the of the shaft. The assembly was slow speed and monitored for fouling in the shaft steel. The sling was easily disassembled during instrument installation. Protection against blasting shock and flyrock damage to the extensometer and readout cables was provided as shown in figure 7. The major components were the head enclosure can, the blast shield, and the cable armor. The head enclosure was basically a steel can mounted to the base of the extensometer head to protect the transducers and electrical connections. Holes were provided for water drainage and exit of the signal cables. The en- closure also served to retain the grout in the borehole. The blast shield was a 3/8-in steel plate rockbolted over the extensometer head, which was recessed Bull hose "^'°^^^^ "^T^^: '^WTT FIGURE 7. - Multiple-point borehole extensom- eter head protection. uumiuMumiMiia ia 10 into a "doghole." The signal cables were delivered in 3/8-in conduit with water- proof connectors. Additional cable pro- tection was provided by the head enclo- sure and blast shield at the extensometer head, and a covering of 3-in compressed air bullhose tied to the wire mesh, which extended up to the concrete lining. The cables were then run through a 4-in schedule 40 pipe in the lining to the junction box on the station above. PRESSURE CELLS Geokon model 3600, 9-in-diam, mercury- filled pressure cells with semiconductor pressure transducers were precast in grout blocks for precrimping in the lab. The crimp tube of the pressure cell is used to expand the cell and establish positive contact with the concrete. Con- tact is often lost during curing of the concrete because of water migration to the steel and differential thermal expan- sion. Precasting enabled contact to be established in the laboratory instead of the shaft, and eliminated the need to ex- pose the crimp tube to shaft conditions. The stiffness contrast between the grout and cell required a final calibration (appendix A) . Anchor wires were cast along with the cells into 13- by 13- by 4-in blocks, which tended to float in the liner con- crete. The wires were tied to 18-in, U-shaped rebar anchors placed in the con- crete. The cell cables were encased in 3/8-in flexible conduit that ran up the shaft wall to a 4-in pipe in the liner pour above, and finally to the junction box on the station above. STRAIN GAUGES Four-inch Ailtech Concrete Embedment Strain Gauges were precast in a number of different briquettes for protection against damage during installation. The final briquette design was a 3-in-diam by Strain gauge briquett FIGURE 8. - Encapsulated strain gauge instal- lation, 5,960 level. 6-in cylinder cast using the shaft con- crete mix (large aggregate removed) 3 days before installation (fig. 4). Tie wires were cast through the briquettes for anchorage during installation. The anchors were similar to the pressure cell anchors. Bridge completion circuits were built in 1/2-in aluminum conduit, potted in place, and cast in the ends of the briquettes. The strain gauge cables were protected by flexible conduit and wired in groups of five, as shown in figure 8. DATA ACQUISITION SYSTEM A primary concern in designing the instrumentation system for the shaft was ensuring accurate, timely collection of data from the instruments. Previous experience (6-7) with shaft data col- lection and anticipated shaft conditions indicated the need for a remote data acquisition system (RDAS). The goals of 11 the Silver Shaft project necessitated frequent readings for several months' time. The operating specifications of the RDAS included frequent scanning of the instruments, preservation of instrument accuracy, and transmission of data to the surface over distances up to 6,800 ft. In addition, the system had to provide instrument data quickly and clearly to mine engineers and had to be easy to use. Finally, the shaft cable requirements were minimized to control costs and in- stallation time, especially for the deeper levels. The RDAS was based on a Bureau of Mines design (7) for a blind shaft boring ma- chine, which included an underground sub- system to read instruments and transmit data to the surface, and a surface sub- system to receive, reduce, and store the data. The underground subsystem included an instrumentation power supply, volt- meters, analog to digital (A/D) convert- ers, and digital transmitters enclosed in a sealed junction box. The surface sub- system included a digital receiver, data LOCAL (Mine office) T>:^jB!W\t?'/n\'F^;i 2,0 1 4 ft Test level 1 4,0 63ft Test level 2 5, 191ft Test level 3 5,9 55ft Test level 4 Junction box Bottom at 6,2 f t FIGURE 9. - Data acquisition system configuration at the Silver Shaft. buffer, and microcomputer. The system and instrumentation levels are illus- trated in figure 9. UNDERGROUND SUBSYSTEM The underground subsystem for each level was built around two Burr-Brown Micromux #6820 transmitters. Each trans- mitter measures voltage outputs from 16 instruments and transmits the readings to a receiver on the surface over a single twisted-pair telephone cable. The trans- mitters operate automatically, continu- ously scanning instruments and transmit- ting data. The transmitters, and a 5-V dc regu- lated power supply for instrument excita- tion, were sealed in a 24-in (wide) by 36-in (high) by 12-in (deep) stainless steel junction box (J-box) for protection against corrosion, shock, and invasion. Instrumentation, mine power, and trans- mission line connections into the box were made through waterproof bulkhead connectors. A 100-W heater inside the box was operated continuously to maintain REMOTE ( S p o l< a n e Research Center) ^^-— J-\^ J 1) Micro- 1 ^ k^ it computer — n r\ f\ ' ^ M a i n frame i 1 Receiverand i microcomputer Commercial phon line via modem //sx Sensors 12 a slightly elevated temperature and pre- vent condensation. Each J-box was in- stalled in a nearby station, as close as possible to the instrumented level. SURFACE SUBSYSTEM The twisted-pair telephone cables from the transmitters were run up the shaft, through a buried PVC conduit to the mine office, and into a Micromux #6800 receiver. The receiver collected the transmitted data as ASCII code in a buf- fer that was refreshed every 10 s (for a two-transmitter system) . The contents of the buffer were available for reduction and storage by a microcomputer. A software package, MDAP85, was de- veloped for the Hewlett-Packard HP-85 microcomputer to collect and process the buffered data. Specifications of the package include: Automatic data sampling time inter- vals from 3 min to several hours (all channels) . Immediate data reduction and printout. o Produce on-site CRT or hard-copy plots of results. 100-scan automatic storage capacity. Long-distance automatic data collec- tion through modems . Data file uploading to mainframe computers via modems . User friendly. Capable of monitoring two instrumen- tation levels. A detailed user's guide and program listings are included as appendixes B and C, respectively. INSTALLATION PLAN The instrumentation levels were located so as to provide a profile of changing behavior with depth while focusing on deeper, and hence more highly stressed, sections of the shaft. The geology was fairly consistent with depth, except for occasional minor faults and joint sets that were not mapped beforehand, and played little part in locating the in- strument levels. However, the orienta- tions of some of the extensometer bore- holes had to be slightly adjusted where weak, ravelly rock or faulting was en- countered. Since the instruments had to be installed with a minimum of inter- ference with sinking operations, the exact depth of each level was determined by the timing of holidays when sinking was halted. 2,414 LEVEL The first set of instruments, consist- ing of multi-point borehole extensome- ters, concrete pressure cells, and ther- mistors, was installed at a depth of 2,414 ft. Definition of radial deforma- tion as a function of angle around the shaft was sought to determine the influ- ences of bedding, rock properties, and in situ stress field. This suggests the installation of six extensometers at 60° angles , which was considered too expensive and time consuming to be prac- tical. Instead, three extensometers were specified, as this would provide suffi- cient data to determine the effects of major discontinuities and the in situ stress field. The total closure measure- ments depended on the symmetry of the shaft, although the closure at each ex- tensometer towards the center of the shaft was estimated from the stable an- chor. In order to study the influence of bedding on deformation, the extensometers were oriented parallel, perpendicular, and at 45° to the bedding strike. The pressure cells monitored hoop stress in the lining. In an ideal lining with no shear on the rock-concrete inter- face, opposite sides of the lining carry identical loads and the magnitude of the loads is directly related to the in situ stress field. In order to directly com- pare measured liner stress with the pre- dictions of idealized models, four pres- sure cells were installed at 90° angles starting with shaft north. Temperature variations due to curing of borehole grout and the lining concrete were measured with thermistors at each of the pressure cells , at one of the exten- someter heads , and at three points along one of the extensometer boreholes. 13 The extensometers were installed as close as possible to the shaft bottom (about 4 ft). The kerb ring form was then lowered to the shaft bottom, and the pressure cells were installed with the concrete pour. Installing the 1-ft-thick concrete lining to within 4 ft instead of the usual 20 ft, of the shaft bottom in- creased the maximum possible elastic load imparted to the lining. Plan and section views of the instrument configur- ation are shown in figures 10^ and 11, respectively. 4,063 LEVEL The instrumentation plan was modified at the 4,063 level by eliminating the -E 1 P C 4 S G 2 E 2 PCS A, 2,414 level E 3 B, 4,063 level KEY E Borehole e x t e n s o m e t e r SG Strain gauge PC Pressure cell /f'E2 S G 8 //SG4 P C 2 E3 N P C 4 ■E 1 P C 4 S G 4 S G 6 C, 5,191 level 3 6 9 I 1 I I D, 5, 960 level Scale, ft FIGURE 10. - Instrument location by level. E 3 14 Galloway Cactus grab Borehole extensometer Muck bucket Concrete forms Split Set rock bolts Pressure cell and strain gauge 7MVWM'^W/MlWyMrF ?/^^^,Mit=^/MVt^ -7?7 Kerb ring FIGURE 11. - Instrument installation at the 2,414 and 4,063 levels. borehole thermistors, which showed little response at the 2,414 level, and adding concrete embedment strain gauges (fig. lOB). These gauges were installed next to each pressure cell to measure the strain equivalent to the stress measured by the pressure cells. Creep strains could then be estimated by assuming a value for liner modulus and substracting load cell strain estimates from strain gauge readings. In order to avoid dam- aging the gauges during installation, they were precast in 3- by 5- by 6-in briquettes of fine aggregate concrete and 98% cured before installation. The addi- tion of the briquette complicated data interpretation by introducing a constant- ly changing modulus contrast between the curing concrete and the more fully cured briquette. 15 5,191 LEVEL modulus during the first few days after installation. Changes were made in instrument selec- tion and placement, as well as installa- tion procedure, for the third level. In anticipation of plastic rock behavior, liner installation was delayed 2 days for 20 ft of additional shaft sinking, which is the normal procedure. The amount of elastic deformation "felt" by the lining was thereby reduced, but the sequence was more representative of the normal sinking cycle. In addition, the range of the ex- tensometer transducers was increased to 4 in. The selection of instruments was modi- fied by replacing the four pressure cell thermistors with unencapsulated strain gauges (fig, IOC), Data from the first two levels had well defined the tem- perature changes due to the curing con- crete, and additional data were needed on concrete lining performance. The un- encapsulated gauges were installed in an attempt to judge the effects of the pre- cast briquettes. Ceramic aggregate was used to reduce the strain gauge briquette modulus in order to increase gauge sen- sitivity and more nearly match lining SUMMARY 5,955 LEVEL Further adjustments to instrument se- lection and placement were made for the final level (fig, lOP), but the instal- lation procedure remained the same as for the 5,191 level. The extensometers were modified by removing the 2-ft an- chors and converting to hydraulic an- chors, but still grouting the borehole. The unencapsulated strain gauges were eliminated because of their excessive failure rate (75%) , but the number of encapsulated gauges was increased from 4 to 10. Eight of the gauges were distrib- uted at equal intervals around the shaft, and the remaining two were placed to the inside and outside of the liner to mea- sure the strain gradient across the thickness of the lining. The briquettes for this level were 3-in-diam cylinders 6 in long, of shaft mix concrete that was poured 3 days before installation to minimize modulus contrast at any given time and to ensure that the final moduli were equal. An effective microcomputer-based in- striimentation system for monitoring ground support in a deep mine shaft was developed and implemented. Experience from four instrumentation levels was used to refine the instrumentation system to its present state. The system has operated without maintenance for months under harsh mine conditions, alleviating the need to send personnel underground, and providing results quickly. It is suited to most underground instrumenta- tion projects, although modifications may be needed if transmission distance is substantially greater than 6,800 ft. Since the development of this system, it has become a standard at the Bureau's Spokane Research Center and is being used, with some modifications, for moni- toring construction of a rectangular shaft and coal mine ground support. Im- plementation of the system has reduced personnel requirements in the field, in- creased the frequency and accuracy of data collection, and reduced mobilization time for field projects. Uploading of data to the Bureau's mainframe computer in Spokane has facilitated handling of the typically extensive data bases that result from these projects. REFERENCES 1. Board, M. P., and M, J. Beus. In- strumentation and Preliminary Analysis of a 6,200-ft Deep Circular Shaft in North- ern Idaho. Paper in Proceedings of the Symposium on Geomechanics Applications in Underground Hardrock Mining (Denver, CO, Oct. 20-26, 1984). Soc. Min. Eng. AIME, 1984, pp. 127-140. 2. Beus, M, J., and M. P. Board. Field Measurement of Rock Displacement 16 and Support Pressure at 5,955-ft Level During Sinking of Deep Circular Shaft In Northern Idaho. BuMlnes RI 8909, 1984, 11 pp. 3. Obert, L. , and W. I. Duvall, Rock Mechanics and the Design of Structures in Rock. Wiley, 1967, p. 108. 4. Schwartz, C. W. , and H. H, Ein- stein. Improved Design of Tunnel Sup- ports: Volume 1 - Simplified Analysis for Ground-Structure Interaction in Tun- neling. U.S. Dep. Transportation, Rep. DOT-TSC-UMTA-80-27.I, June 1980, v. 1, 450 pp. 5. Cording, E. J, , A. J. Hendron, W. H. Hansmire, J. W. Mahar, H, A. MacPherson, R. A, Jones, and T. D. O'Rourke. Methods for Geo technical Observations and Instrumentation in Tunneling (grant GI-33644x, Nat. Scl. Foundation). Univ. IL, Dep. Civil Eng. , Champalgn-Urbana, IL, 1975, 2 volumes, v. 1, 296 pp. 6. Gooch, A. E., and J. P. Conway. Field Measurement and Corresponding Finite-Element Analysis of Closure During Shaft Sinking at the Lucky Friday Mine. BuMlnes RI 8193, 1976, 19 pp. 7. McVey, J. R. , W. C. Vilwock, and P. F. Sands. Computer Monitors Twenty- Four Foot Blind Shaft Boring Machine. Paper in Proceedings of the Western Min- ing Industry Electro-Technology Confer- ence (Reno, NV, Sept. 14-16, 1981). Univ. NV - Reno, 1981, 24 pp. 17 APPENDIX A. — INSTRUMENT CALIBRATION Although the instruments installed in the shaft were acquired commercially, some laboratory work was necessary to confirm factory calibrations , compensate for instrument modifications, and inves- tigate possible sources of error. LINEAR POTENTIOMETERS All of the linear potentiometers were calibrated prior to the final assembly of the extensometers . The potentiometer was wired into the data acquisition system, clamped in a calibration jig, and cali- brated with a micrometer. The raw data output was plotted against displacement in a least squares fit. CONCRETE PRESSURE CELLS The placement of concrete pressure cells in concrete often results in the formation of a gap on the steel-concrete interface. Migration of water from the hot, curing concrete mass to the cooler steel surface of the pressure cell may contribute to the problem. Another pos- sibility is decoupling during cooling be- cause of the greater thermal expansivity of the steel. To overcome this problem, the pressure cells were first cast in a grout "brick." A cast pressure cell is shown in figure A-1, The grout mix design (table A-1) was developed specifically to match the fully cured modulus of the grout with that of the Silver Shaft concrete. Thus, the pressure cell was thought not to be a "high modulus inclusion" in the cured liner, which could concentrate stress. With the grout brick in contact with the concrete in the liner, void pro- duction was minimized. A "cold joint" formed between the concrete and brick, but it was perpendicular to the applied compressive stress and probably did not influence the load transfer. Each cell was cast in a grout brick with dimensions of 13-in by 13-in by 4-in thick. Following 4 h of curing, the cells were placed in moist polyethylene bags to allow a slow cure. After 7 days, the cell-grout assemblies were calibrated in a compression testing machine. The applied stress was brought up in 100-psi TABLE A-1, - Pressure cell grout mix Parts by weight Component : Cement (port land lA) . . Water Sand 8 4 32 units , and the output voltage of the pressure transducer was recorded. An example of the voltage output versus stress is given in figure k-lA, When the cells exhibited nonlinearity at low ap- plied stress (fig. A-2S) , the pinch tube was crimped, forcing mercury into the cell. Two other calibrations were performed. First, the temperature sensitivity of the cell-grout system was examined. The as- sembly was placed in an oven at room temperature. The temperature of the oven was raised in approximate 10° F inter- vals , each time allowing the gauge out- put to stabilize. The results of this calibration are shown in figure A-2C. The purpose of this test was to examine any voltage offset due to temperature expansion of the various system compo- nents under zero applied stress. As seen in figure A-2C, a change in gauge output of only 0.35 mV was experienced. This change is 1% of total gauge output from to 1,000 psi and represents a calcu- lated stress change of only 10 psi. This negligible change indicates low thermal sensitivity of the instrument. A second test was performed to ex- amine any slope change in the calibration curves as a function of temperature. The cell was heated to 120° F, then removed from the oven while insulated; a calibra- tion load cycle was then performed as quickly as possible. The subsequent cal- ibrations indicated no significant change in the slope of the stress-voltage curve, so the stress-voltage curves at ambient temperature were used throughout the project, THERMISTORS AND STRAIN GAUGES The thermistors were calibrated by the manufacturer prior to shipment. Strain gauge reduction data were supplied by the manufacturer. 18 FIGURE A-1. - Cast pressure eel 19 > E 3 Q- I- D o 2 5 5 7 5 STRESS, psi 00 1,250 0.7 . 6 5 . 60 . 5 5 . 5 . 4 5 . 4 . 35 1 -C 1 1 1 1 1 1 1 i • - • - - • — - • — - • • - • _ • 1 1 1 1 1 1 1 1 1 1 90 100 110 120 130 140 150 160 170 180 190 200 TEMPERATURE, "F FIGURE A-2. - Pressure cell calibration curves. 20 APPE^fDIX B.— USER'S GUIDE TO MDAP85 INTRODUCTION MDAP85 is a BASIC language program written for collecting and reducing data from a Mlcromux data acquisition system with an HP-85 microcomputer. The origi- nal version of this program was developed by Terra Tek Engineering under Bureau contract J0205048 entitled, "Structural Evaluation of a Circular, Concrete-Lined Shaft In a Deep Vein Mine." This program was enhanced by the Bureau for monitoring Instrumentation at the 5,955 level of Hecla's Sliver Shaft Mullan, ID. Program enhancements made by the Bureau Include: 1. Automatic data acquisition via telephone modem. 2. Uploading from HP-85 data tapes to a Burroughs 6800 mainframe. 3. Enhanced output Including change In data since last scan. MDAP85 can collect data from up to 32 channels from each of two different In- strumentation sites for a total of 64 channels. MDAP85 consists of several different program modules, most of which are stored on a tape cartridge referred to throughout this manual as the "pro- gram tape." Other routines for long-term plotting and data uploading are stored on a tape cartridge referred to as the "utility tape." BASIC listings of all program modules are given In appendix C. The use and purpose of each program mod- ule, as well as the hardware and software required to utilize this program, are described In this appendix. HARDWARE REQUIREMENTS The hardware (figure B-1 and table B-1) Is grouped Into three subsystems: the Mlcromux transmitters underground, a lo- cal data acquisition system at the mine office, and a remote data acquisition system at Spokane Research Center, Addi- tional remote systems could be added, although only one could collect data at a time. The arbiter (fig. B-2) was built to allow remote access on demand, but It momentarily prevents the local system from collecting data. The local and re- mote HP-85 's are not aware of each other, so the mine office HP-85 can be elimi- nated If only remote data collection Is desired. PROGRAM MDAP85 The maximum RAM available for the HP-85 Is 32K, which Is Insufficient to hold the entire MDAP85 program In memory. There- fore, the program has been divided Into eight Integrated program modules and two Independent utility modules. The pro- gram modules share a parameter file, data files, and program tape, and they auto- matically load and run each other. The utility modules are actually a separate set of programs designed for special ap- plications and are not required for day- to-day data acquisition. A program flow chart showing the relationships between program modules , data files , Mlcromux hardware, and mainframe computer Is given In figure B-3. The program modules Include: 1. Autost: This module prompts the operator to set time and date for use by several other program modules and Is run automatically If the program tape Is In- stalled In the HP-85 on power up. 2. CONTRL: Main module for activating other modules. 3. INPUT: For entering Instrument calibration factors and system operation parameters Into file PFILE. 4, ACQUIR: Collects data from the Ml- cromux receiver via RS232 Interface, re- duces and prints the data, and loads the scan Into the data file, 5, PQUIR: Collects data from the Ml- cromux receiver via telephone lines , re- duces and prints the data, and loads the scan Into the data file, 6, STORE: Transfers the program tape data file onto mass storage tapes, 7, PRINT: Prints the acquired data files, 8. PLOT: Plots a single data file on the CRT or graphics plotter. 21 Spokane Research Center Mine office HP-85 I M o d e m I — + Plotter H P- IB HP-8 5 ^---^e-^l^ T e I e p h o line Racal-Vadic V A35 5 RS232 Burroughs 6800 M i c r o m u X receiver I _TI Surface In shaft //xy^\\=8«| iiJS5?s:w Silver Shaft J M i c r omu X transmitter rmr M i c r mu X transmitter M i c r cm u X transmitter ► Test site 1 (32 channels maximum) ► Test site 2 (32 channels maximum) FIGURE B-1. - System configuration. 22 DB 25F to Micromux 1 > 2> DB ride Y4V 1 85 3>- 5>- 7>- 20>- IN400 7 Triad F90-X Black-yellow 500mF/25V ^ 3 90n 1 /2 W ■u-_r ^ LED remote .■> LED local 2 N 3 90 6 3 9 0a 1 / 2 W FIGURE B-2. - Arbiter schematic. DB 25M to modem <2 -<3 ■<5 -<7 -<8 -<20 DB 25F to HP-85 — <1 ■<2 -<3 <5 r< < TABLE B-1. - Hardware list Underground subsystem: Transmitters Burr-Brown Micromux #6820 On-site data acquisition hardware: Microcomputer HP-85 Memory module (16K) HP-82903A Series 80 ROM drawer HP-82936A HP-IB interface HP-82937A Opt-001 serial interface HP-82939A HP-85 plotter-printer ROM HP-00085-15002 HP-85 input-output ROM HP-00085-15003 HP-85 advanced programming ROM HP-00085-15005 Opt-002 graphics plotter HP-7470A Receiver Burr-Brown Micromux #6800 Hardware for remote data acquisition: Microcomputer HP-85 Memory module (16K) HP-82903A Series 80 ROM drawer HP-82936A HP-IB interface HP-82937A HP-85 plotter-printer ROM HP-00085-15002 HP-85 input-output ROM HP-00085-15003 HP-85 advanced programming ROM HP-00085-15005 HP-95 modem HP-82950A Opt-002 graphics plotter HP-7470A Receiver (on-site) Burr-Brown Micromux #6800 Modem (on-site) ' Racal-Vadic VA355 Additional hardware for combined remote and local data acquisition: ^ Arbiter (on-site).... Custom built (figure B-2 for spec.) ^Only 1 receiver required for combined remote and local data acquisition. 23 A u t o s t CONTRL (Power up) [ PQUIR A CQUIR "T — I — I" INPUT fi PRINT STORE — rT~ r PLOT P F I L E .J Data file < i 1 N P L O T M I c r o m u X Data Acquisi- tion System ss^y MO D AT A 1- T Mass storage B 6 80 computer KEY -*■ Program control -*• D a t a flow I I Program modules I ' I Data files FIGURE B-3. - Program flow chart. The utility modules include: 1. NPLOT: Plots multiple data files on the CRT or graphics plotter. 2. MODATA: Transmits data files as character data through the phone modem. This module was designed for uploading data to Spokane Research Center's Bur- roughs 6800 computer and may require mod- ification for use with other computers. The data files include: 1. PFILE: The parameter file that holds data reduction and program control parameters. 2. Data file: The file on the program tape that stores data as collected up to the maximum allowable number of scans. 3. Mass storage: A separate tape for permanent storage of completed data files. Each of these modules, when activated, presents a menu on the CRT that shows the function of software keys (K1-K8) throughout that module. Then the oper- ator can choose one of the options pre- sented in the menu and press the corre- sponding software key in order to execute the option. In almost all cases, once execution of an option is completed, the program will again present the menu for a new option (exceptions being options to exit or stop a module). For each program module, the menu al- ways includes two options: HELP and EXIT (or STOP in the case of module CONTRL). The option HELP gives a brief description of the functions of software keys. In some modules, it also provides additional information regarding the execution of the program. The EXIT option stops the execution of an active module and activates the CONTRL module automatically. This is the only way through which the operator can halt execution of one module and activate 24 another one. In CONTRL module, the STOP option halts execution of program MDAP85 altogether. The MDAP85 program can be activated either from the module Autost or by di- rect application of system LOAD and RUN commands to any of its eight program modules. For example, enter: LOAD "CONTRL" and RUN. MODULE AUTOST The function of Autost is to set the computer's clock. The computer loses its settings of time and date any time the computer is turned off. Since the com- puter's time and date are recorded dur- ing data acquisition, they should be cor- rected when the power is turned back on again. Program Autost is started by: 1 . Turning the power on while the pro- gram tape cartridge is installed in the tape drive; the system will automatically load and run Autost. 2. Inserting the program tape car- tridge in the tape drive and typing the following commands: Load "Autost" RUN Autost prompts the operator to enter the current time (24-hour format) and date. 2 After these values are entered satisfactorily, the program prompts whether or not the operator wants to run program MDAP85. Depending on the opera- tor's answer, the program will either either activate the program module CONTRL or stop execution. MODULE CONTRL The function of this module is to acti- vate the other modules of program MDAP85. When any of the other modules exit, con- ^All of the alphabetic inputs and an- swers to the questions posed in module Autost or program MDAP85 must be in up- percase characters. trol returns to module CONTRL. The key assignments for CONTRL are — Kl - INPUT K2 - ACQUIR K3 - PQUIR K4 - STORE K5 - PRINT K6 - PLOT K7 - HELP K8 - STOP Notice that the first six software keys are assigned to six major modules of pro- gram MDAP85. The operator can activate any of these modules simply by pressing the corresponding key. MODULE INPUT The INPUT module allows the operator to enter instrument parameters and calibra- tion factors into the computer for each channel. These parameters and factors are then written to a parameter file, PFILE, on the program tape cartridge, which is read by modules ACQUIR and PQUIR. The menu in this module presents the following assignments for the soft- ware keys: Kl - GENERAL General inputs include the address of the Micromux receiver, the number of Micromux transmitters, and the number of active "projects." A "project" is de- fined as a set of two transmitters (32 channels) that are monitored on the same time schedule. The number of channels per project can only be changed by modifying the program. A maximum of two projects may be monitored. The Silver Shaft system collects 32 channels of data from two Micromux transmitters at each instrumented level. The address of the Micromux receiver is zero. If a group of Micromux receivers are wired in the same RS232 line, each must have a unique address . See the Micromux manual for further details. K2 - PROJECT Project inputs are the project name, the excitation channel address, and the mttiitnrMtr^\rwirrm 25 extensometer type. Instrumentation power supply voltage may vary and is included as a variable for data reduction. The extensometer type identifies the formula used in ACQUIR and PQUIR for extensometer data reductoion. K3 - CHANNEL Those parameters specific to each channel can be entered into the computer by this option. (Note that channels 1-32 are used for project 1 and channels 33-64 are used for project 2). The channel in- puts consist of channel title, reduction type, printing flag, conversion factors, and low and high limits. The reduction type is an integer number that is used for two different purposes. First, it specifies the type of signal for each channel; this in turn identifies the type of formula to be used in module ACQUIR for conversion of signals to engineering units. Second, the reduction type is used to identify the individual extensom- eters and their anchors. The channel re- duction types, their values, and the use of conversion factors is covered in the next section. The low and high limits specify the expected low and high values of the final converted data for each channel. These limits are used to show whether the data acquired are within the expected range. "PFILE" for proj- on the HP-85 K4 - PRINT 1 This option prints ect 1 (channels 1-32) printer, K5 - PRINT 2 This option prints "PFILE" for proj- ect 2 (channels 33-64) . K6 - HELP K7 - EXIT number for CHANNEL before the correspond- ing parameters are dislpayed. ) In order to enter or change a parameter, the oper- ator must roll the cursor to the appro- priate location on the screen and change that parameter. After all parameters on the screen are satisfactory, "END LINE" is pressed and the computer reads the en- tire page of parameters. When module INPUT is exited, the pro- gram writes all of the parameters in the file PFILE. To transfer PFILE and its contents from the program tape cartridge to another tape, module INPUT must be ac- tivated. When the menu is presented, the operator replaces the program tape car- tridge with the second tape and executes the option EXIT. This procedure causes the parameter file, PFILE, to be trans- ferred onto the second tape cartridge. The program MDAP85, however, stops execu- tion after this operation. MODULES ACQUIR AND PQUIR These modules are used for data ac- quisition in program MDAP85. When acti- vated, they read the contents of the pa- rameter file written by module INPUT and create one active data file for each active project (if they do not already exist) on the program tape cartridge. These files are FILE01 and FILE02, which are used to store the data taken for projects 1 and 2, respectively. The menu includes the following software key assignments: Kl - MANU 1 Each time this option is executed, the Micromux receiver will be prompted and data from channels 1-32 stored in FILE01. Then the scan (data taken from channels 1-32) will be printed on the HP-85 printer (fig. B-4) and the menu will be presented again, K2 - MANU 2 In the case of K1-K3, the computer dis- plays the existing parameter values on the CRT. (The operator must enter a project nximber for PROJECT or a channel This option is identical to MANU 1, except that the data will be taken for project 2 (channels 33-64) and the re- sults will be written to FILE02. ■Mi 26 K3 - AUTO 1 This option scans for project 1 data automatically. When this option is cho- sen, the operator will be prompted for the desired time interval between scans and also the time elapse before automatic data acquisition starts. The scan inter- val is the time between successive scans , and the time elapse is the time before the first data scan. For example, if the time Interval is 5 min and the time elapse is 20 min, the program waits for 20 min and then starts the process of taking data at 5-min in- tervals. The time interval can be any value between 3 and 1,440 min, while the time elapse can be any positive value up to 1,440 min. After these values are entered, the program presents the menu and displays the time at which the next scan will be taken automatically. This routine is re- peated after each scan. The actual pro- cess of taking, storing, and printing data by the computer in this mode is the same as in the manual mode. While the program is waiting in the automatic mode, the operator can execute any other option presented in the menu. In order to stop or adjust the automatic data acquisition for project 1, the soft- ware key, K3, must be pressed while the menu is displayed on the CRT, K4 - AUTO 2 This option takes data for project 2 in the automatic mode and is identical to AUTO 1, K5 - DISP 1 This option takes data for project 1 and displays it on the CRT. Unlike the first four options, however, it does not store and print the data. After the data point is taken, the operator will be re- quired to enter a particular channel num- ber (for selective channels) or press "END LINE" (for successive channels) in order to display the data for each chan- nel on the CRT. If a zero is entered in- stead of a channel number, the program will exit this option and present the menu. K6 - DISP 2 This option is identical to DISP 1 except that it takes data for project 2. K7 - HELP K8 - EXIT If automatic data acquisition is to be activated for both projects, the time interval and the time elapse for each project must be chosen carefully in order to avoid any time conflict. The operator should note that it might take up to 3 min per scan for data to be taken, stored, and printed. Therefore, the time difference between any two scans from projects 1 and 2 must be greater than 3 min to avoid conflict. It was mentioned earlier that the data taken for projects 1 and 2 are stored in FILE01 and FILE02, respectively. Each of these files has a maximum storage capac- ity of 100 scans. These files must be transferred onto a mass storage tape be- fore this capacity has been reached or the computer will halt. The transfer can be accomplished by using module STORE, as described in the next section. When using the PQUIR version of this module, the phone number is inserted at line 298. The phone number consists of a string of digits and "@" characters. The @ character causes a second delay in the dialing sequence. This is convenient when dialing through building switch- boards, etc., where a second dial tone is created. Output from PQUIR differs from output from ACQUIR in that the raw data string is printed out before each data table in order to help identify line noise and protocol problems. MODULE STORE The data stored in files FILE01 and FILE02 can be transferred from the pro- gram tape cartridge to a mass storage tape by module STORE. For this module. wwtt«w PROJECT 1 «^^^«» DATA SCAN #93 TIPOE: 12:50:02 DATE: OA/ig/83 27 CHANNEL ENGINEERING NET MUX NAME UNITS CHANGE DATA E1-1 COL 1.341 0.00 004 E1-2 30' 0,369 0.00 028 E1-3 15' 1.046 0.02 185 E1-^ 10' 1.396 0.00 042 E1-5 5' 1.271 0.13 223 E2-1 50' 0.019 -0.02 015 E2-2 COL 1.147 0.00 050 E2-3 15' 1.293 0.00 303 E2-4 10' 0.775 0.02 137 E2-5 5' 1.189 0.00 240 E3-1 CuL -0.168 0.00 347 E3-2 30' 0.141 0.00 337 E3-3 15' -1.036 0.03 034 E3-4 10' -0.922 -0.00 038 E3-5 5' -0.950 0.00 038 EXITE 4.973 0.00 663 PC-1 885.990 -2.62 337 PC-2 773.450 0.00 304 PC-3 1842.300 -2.50 740 PC-4 1211 .100 0.00 452 5G-1 1014.800 0.00 545 SG-2 726.720 0.00 512 5G-3 967.560 0.00 278 5G-4 764.560 0.00 545 SG-5 1223.600 -10.50 610 SG-6 805.370 0.00 659 SG-7 1024.900 0.00 636 SG-8 492.810 0.00 374 SG-9 774.180 0.00 548 SG-10 942.200 0.00 534 SHORT 0.000 0.00 000 EXITE 2 0.000 0.00 511 FIGURE B-4. - 'ACQUIR' printed output. 28 the menu presents the following software key assignments: Kl - STORE 1 This option transfers the data con- tained in FILE01 onto a mass storage tape. K2 - STORE 2 This option transfers the data con- tained in FILE02 onto a mass storage tape. K3 - HELP K4 - EXIT When either of the first two options is chosen, the program reads the data from the corresponding file into the internal memory of the computer. It then prompts the operator to replace the program tape cartridge with a mass storage tape. Af- ter this replacement, the program prints out the tape directory and prompts for a new file-name for the file being trans- ferred. The file-name entered must have from one to six alpha-numeric characters, and must be different from those already in the tape directory. The program then transfers the data from the computer in- ternal memory into the newly created mass storage tape file. When the transfer is completed, the updated catalog will be presented and the operator will be asked to put the pro- gram tape cartridge back into the tape drive. At this point, the operator will be given a chance to purge the original file (whether the original is FILE01 or FILE02) . The option for purging must be chosen if the file is full or if the op- erator wants to restart data acquisition with scan 1. One of the most probable errors during data transfer occurs when the mass stor- age tape is full. In this case, the com- puter prints an error message on the theirmal printer and gives the operator a chance to use amother mass storage tape cartridge. This module can also be used to trans- fer files between mass storage tapes by renaming the file to be transferred as FILE01 or FILE02 and using the appropri- ate option. MODULE PRINT This module prints the contents of FILE01, FILE02, and mass storage files on the HP-85 thermal printer. In this module, the following software key as- signments are in effect: Kl - PRINT 1 This option prints the contents of FILE01. K2 - PRINT 2 This option prints the contents of FILE02. K3 - STORED This option prints the contents of any file that has been stored on a mass storage tape by module STORE. K4 - HELP K5 - EXIT If the option for printing a stored file is chosen, the program prompts the operator to insert the mass storage tape containing the stored data into the tape drive. Then it prints the tape di- rectory and prompts for the name of the file to be printed. Note that the file- name entered must be one of those in the tape directory; otherwise, the program will print an error message and ask the operator to put the program tape car- tridge back into the tape drive. For all the print options , the program reads the file header and displays (on the CRT) the project number and ID, the total number of data scans in the file, the time and date of the first data scan, and the time and date of the last data scan stored in the file. Then it prompts for the time interval (starting and end- ing date and time) that identifies those data scans to be printed. After these 29 values are entered, the program starts printing the data. The printout contains the project file and Information (project number and ID, etc.) and also all of the data scans taken within the time Interval entered. For each data scan, the printout contains the data scan number, the time and date at which It was taken, and 32 channels of data. For each channel, the channel number and title, raw and converted values, and the channel condition are printed out. The channel condition can Indicate one of the following conditions: low (LOW), high (HIG) , error (ERR) , and change (CHG). The LOW and HIG Indicate whether the data taken are lower or higher than expected limits. The ERR Indicates that an error has occurred In the conversion of raw data. The CHG indicates that there has been a significant change (more than 5%) in the value of converted data, with respect to the average of values from the previous four data points. Fig- ure B-5 shows a typical printed output from the "PRINT" option. When the printing is finished, the pro- gram asks the operator to put the program tape back into the tape drive (if the option STORED was chosen for printing) and presents the menu. MODULES PLOT AND NPLOT These modules plot the converted data versus time on the CRT or the graphics plotter. The menu presents the following software key assignments: Kl - PLOT 1 This option plots data from FILE01. K2 - PLOT 2 This option plots data from FILE02. K3 - STORED This option plots data from any file that has been stored on a mass storage tape by module STORE, K4 - HELP K5 - EXIT When changing tapes (for stored files) and reading the files, these software keys function in a manner similar to those in module PRINT. The only differ- ence is when one of the plot options is chosen, the program transfers the con- tents of the corresponding file into the internal memory of the computer. This will serve to speed up the plotting pro- cess, since the program will not have to read the data from a file during plotting, Whe the transfer of data is complete, the program starts the plotting process. First, it displays the project and file Information on the CRT and prompts for the time interval (starting and ending date and time) for the plot; this time Interval is used both for identification of the data to be plotted and for plot- ting and labeling the x-axis. The pro- gram also prompts for the minimum and maximum values to be used in plotting and labeling the y-axis. After the above values are entered, the operator must choose between plotting on the CRT or the graphics plotter. .Due to its size, the plots made on the CRT are very coarse and should be used only for a preliminary check of the results. The graphics plotter is used for making com- plete, detailed plots. If the operator chooses to plot on the CRT, the program will start plotting the x- and y-axis. Otherwise, it will ask for the y-axis la- bel to be entered, and the plotter to be set (change of paper, etc.); then plot- ting and axes labeling is initiated on the graphics plotter using pen 1. Next, the program asks whether to plot data. This question provides an oppor- tunity to discontinue a plot; it also provides a pause for changing the plot- ter pen (in the case of the graphics plotter) . If the operator decides to continue plotting, the program will ask for the following inputs: channel number for the plot, number of points to bypass for identification (graphics plotter only) , option for connecting the data points (graphics plotter only), and a plotting factor or modulus for strain gauge channels (graphics plotter only) . 30 **:*:** PROJECT 1 ***** DATA SCAN #1 TIME: 22:33:11 DATE: 02/19/83 CHANNEL CHANNEL CHANNEL RAW CON NUMBER NAME VALUE DATA 1 El-1 50' -6.870E-01 507 LOW 2 El-2 30' 1.956E-02 428 HIG 3 El-3 15' -5.207E-02 417 LOW A El-4 10' -6.868E-01 028 LOW 5 El-5 5' -3.285E-01 331 LOW 6 E2-1 50' -1.318E+00 002 LOW 7 E2-2 30' -1.378E-01 372 LOW b Lz-j 15' -6.021E-02 286 T OT ' 9 E2-4 10' -9.835E-01 018 LOW 10 E2-5 5' -1.205E-01 234 LOW 11 E3-1 50' -1.149E-01 334 LOW 12 E3-2 30' -4.124E-02 278 LOW 13 E3-3 15' -4.830E-02 265 LOW 14 E3-4 10' -6.206E-02 242 LOW 15 E3-5 5' -7.013E-02 248 LOW 16 EXCITE 4.973E+00 663 HIG 17 PC-1 9.192E+01 000 HIG 18 PC- 2 4.763E+01 000 HIG 19 PC- 3 7.220E+01 000 HIG 20 PC-4 3.423E+01 000 HIG 21 SG-1 -5.127E-06 000 LOW 22 SG-2 -1.081E-05 000 LOW 23 SG-3 -1.486E-05 000 LOW 24 SG-4 -5.481E-05 000 LOW 25 SG-5 -1.978E-05 000 LOW 26 SG-6 -7.898E-06 000 LOW 27 SG-7 -6.756E-06 000 LOW 28 SG-8 -7.515E-06 000 LOW 29 SG-9 -7.630E-05 000 LOW 30 SG-10 -4.246E-05 000 LOW 31 O.OOOE+00 000 32 O.OOOE+00 505 FIGURE B-5. . 'PRINT' output format. 31 Then, it plots the data for the channel number entered. The process of plotting data (de- scribed above) will be repeated until the operator discontinues plotting, or the data for a maximum of six channels are plotted. After the plotting is discon- tinued, the operator will be asked if more plots are to be made from the file currently in computer memory. Depending on the answer, the program will either restart the plotting process or display the menu. Module PLOT has the capacity of plot- ting data from only one file per graph. In order to plot data from several files, the utility program NPLOT can be inde- pendently loaded and activated. With a few exceptions, the inputs and outputs of program NPLOT are similar to those of module PLOT. One such exception is that it is not necessary to remove the mass storage tapes and replace the pro- gram tape until all desired files are plotted. MODULE MODATA This module is a modified version of HP's MODCOM, which is supplied with the 82950A modem. It has been modified to translate numeric data files written by MDAP85 with 32 channels of data to char- acter data and transmit those data to the SRC B6800 computer. A sequential data file with automatic line numbering on each carriage return must be set up on the B6800 to receive the data. There is no host prompt, and no delay is re- quired between lines. Specific software instructions are, the same as for the original MODCOM program and will not be repeated here. A binary program sup- plied with MODCOM is necessary to run MODATA. CONVERSION OF DATA TO ENGINEERING UNITS During data acquisition, the Micromux telemetry equipment converts the analog signals for each channel to integer val- ues (raw data) ranging from 000 to 999. The raw data, when received by HP-85, must be converted to engineering units. This conversion takes place in module ACQUIR using the parameters and conver- sion factor stored in parameter file PFILE. First, the raw data for each channel are converted to voltage according to the following formula: Vi = D,-C0, - CI i where i = channel number C0 = conversion factor CI = voltage offset D = raw data V = channel voltage After this conversion, various reduc- tion formulas are used to convert the voltage to other engineering units. The specific formula used for each channel depends on its signal type, which is de- termined from its reduction type entered in module INPUT, For the current system setup, five types of signals are analyzed. These signal types are described in the follow- ing sections. Excitation Voltage For this type of signal, no other con- version takes place after the conversion of raw data to voltage. The reduction type for a channel with this type of signal (excitation channel) must be set to zero. The excitation voltage is used in the conversion of data for other types of signals. Borehole Extensometers The reduction type for a channel with this type of signal is computed according to the following formula: R, = ION + r where i = channel number N = extensometer number 32 r = anchor number R = reduction type. In this way, the individual extensome- ters and anchors can be identified by the channel reduction type. The refer- ence anchor for each extensometer type must be set equal to one. This program is currently set up for five anchor extensometers . The extensometer type (referred to in module INPUT) specifies the formula used for data reduction. The Silver Shaft project used a reduction type set equal to two, which specifies the following steps: Ai = C2 Di (Ve^/Ve) + C3 where Aj = channel i's absolute displacement C2 = calibration slope (in/digit) C3 = calibration zero Dj = digital output for channel i Vex = excitation voltage Vc = calibration voltage Solve for relative displacement from "stable" reference anchor: for r = 1 dj = Aj for r=2to5 di=di-At Concrete Pressure Cells The reduction type for this type of signal must be set equal to four. The following formula is used for conversion of voltage to tangential linear stress for channel i: cTi = [V,-C3,/(C5,-Vex)] + C4i/C5i + C2 where C2 = offset from calibration, psi, set at installation C3 = voltage used in calibration C4 = calibration offset, V C5 = slope from calibration, V/psi a = pressure, psi. Embedment Strain Gauges The reduction type for this type of signal must be set equal to six. The following formula is used for conversion of voltage to tangential linear strains for channel i : ei = [4Vi/[Vex-C3,] - C4,] where C3 = gauge factor C4 = strain offset e = linear strain. Temperature Sensor The reduction type for this type of signal must be set equal to one. The following formula is used for conversion of voltage into temperature for channel i: Ti = C2i*Vi - C3i where C2 = conversion factor (°F/V) C3 = temperature offset, °F T = temperature, °F, 33 APPENDIX C— PROGRAM LISTINGS PROGRAM 'AUTOST' 100 ! This is the "Autost" 110 ! program -for HP-85. 120 ! It asks -for time and date 130 ! and runs program 'MDAPOS'. 140 DIM R*C303 150 ON ERROR GOTO 160 160 CLEAR 170 DISP USING 180 180 IMAGE " PROGRAM =" Autost ="', 3/ 190 DISP "Enter DATE and TIME" 200 L INPUT "mm/dd/yyyy hh:mm:ss",R* 210 R$=TRIM$(R*) 220 A=HMS(R*CLEN(R*)-7:) 230 B=MDY(R$C1, 10] ) -MDY (" 12/31 / 1981 " ) 240 SETT I ME A,B 250 ON ERROR GOTO 260 260 CLEAR 270 DISP "TIMES ",TIME$ 280 DISP "DATE: ", MDY* (DATE+MDY (" 12/31 / 1981 ") > 290 DISP USING 300 300 IMAGE 3/ 310 LINPUT "TIME, DATE ok , Dl (2) , Tl (2) OFF ERROR GOTO 730 OFF ERROR CREATE " F I LE02 ",102, 586 ASSIGNtt 2 TO "FILE02" CRT OFF PRINT* 2, 1 PRINT* 2,2 ! Key assignments. ENABLE KBD 32 ON KEY* 1, "MANU ON KEY* 2, "MANU ON KEY* 3, "AUTO ON KEY* 4, "AUTO ON KEY* 5, "DISP ON KEY* 6, "DISP ON KEY* 7, "HELP ON KEY* 8, "EXIT CLEAR I? KEY LABEL DISP USING 840 IMAGE 3/," ***** 'PQUIR' opt ions*****" , 2/ DISP USING 860 ; Y(1),Y(2) IMAGE "Proj *1: ",DDD," scan CONTROL S,4 ; 26 ) CONTROL S,2 ; 6 :> WAIT 2000 ! WAIT FOR DIAL TONE 1" GOTO 2600 r> " GOTO 2640 1" GOTO 3110 *? " GOTO 3130 1" GOTO 3390 t? " GOTO 3410 GOTO 3820 GOTO 4040 scan (s) 38 1040 FOR 1 = 1 TO LEN(H:;*) 1050 K1*=K*CI, i: 1060 IF Kl $="!?" THEN WAIT 500 •? GOTO 1150 1070 K=NUM(Kl$)-48 1080 IF H::=0 THEN K=10 1090 FOR J=l TO K 1100 ASSERT S;5 i? ON TIMER# 3,51 GOTO 1120 1110 GOTO 1110 1120 ASSERT S;6 i? ON TIMER# 3,25 GOTO 1140 1130 GOTO 1130 1140 OFF TIMER# 3 6' NEXT J 1150 WAIT 700 I? NEXT I 1160 ON TIMER# 3,30000 GOTO 1180 1170 GOTO 1190 1130 CONTROL 10,2 ; 4© WAIT 30000 i? PRINT "1180 ERR" i? OFF TIMER# 3 i? GOTO 950 1187 HALT 10 I? OFF TIMER# 3 i? GOTO 950 1190 CONTROL S,2 ; 7 1200 STATUS 10,3 ; B6' Z4=0 1210 IF B=l THEN 1230 ELSE B=B-2 1220 IF B<1 THEN 1200 ELSE 1210 1230 OFF TIMERtt 3 1231 ON ERROR GOTO 1233 1232 B*="0" I? TRANSFER B* TO 10 INTR 1233 ON ERROR GOTO 1232 1235 CONTROL B*,0 ; 1,0 1240 B*= i' OUTPUT 10 USING "#,Z,A" ; M, "?" 1250 TRANSFER 10 TO B* INTR ; COUNT T*49 i? WAIT 5000 1255 OFF ERROR 1260 CONTROL 10,2 ; 4 1270 PRINT B* 1280 TO=TIME 1285 ON TIMER# 3,30000 GOTO 1187 1290 OFF TIMER# 3 i? DO=DATE 1291 IF NUM(B*)<4S THEN PRINT "1291" i? ENTER B$ USING "#,X" i? X=l i? SF LAG 10 1292 IF NUM(B*)>57 THEN PRINT "1292" 6' ENTER B$ USING "#,X" S' X=l i? SF LAG 10 1300 FOR I=T TO 1 STEP -1 1310 K=16*(I-1> 1320 FOR J=l TO 16 1330 ENTER B$ USING "#,3Z" ; D(J+K) 1340 NEXT J 1350 IF X<2 THEN PRINT "1350" i? ENTER B« USING "#,X" 1355 X=X+1 1360 NEXT I 1365 IF FLAG (10) THEN B*="" i? TRANSFER 10 TO B* INTR ; COUNT 1 1370 RETURN 1380 ! 1390 ! Change to engin. unit. 1400 Ll(l)=-1 I? Ll(2)=-1 1410 L2(l)=-1 I? L2(2)=-l 39 1420 FOR 1=1 TO 16 1430 L3(1,I)=0 I? L3<2,I)=0 1440 L4(1,I)=0 I? L4(2,I)=0 1450 NEXT I 1460 J=E(G) 1470 ON ERROR GOTO 1570 1480 V(J)=C<1, J)*DC(9,J) THEN L4(K,K1)=1 1560 GOTO 1590 1570 PRINT USING 1580 ; G 1580 IMAGE "*****ERROR - CONVERSION 0JECT",3D 1590 FOR I=32*(G-1)+1 TO 32*G ON ERROR GOTO 1990 IF I=J THEN 2070 V(I)=C(1, I>*D(I)+C(2,I) Q=IP(I/17)+1 IF G=2 THEN Q=IP ( (1-32) /17) +1 Ql=I-16*Q-32*G+48 IF RdXll THEN 1740 J1=IP(R(I)/10) OF DATA",/, "EXCITATION CHANNEL, PR 1600 1610 1620 1630 1640 1 650 1660 1670 1680 1690 1700 1710 1 720 1730 1 740 1 920 1750 1760 1770 1780 1790 1 800 1810 1820 1830 1 840 1850 1 860 1870 1880 1 890 1900 1910 J2=RMD(R(I) , 10) IF Jl>3 THEN IF J2<1 THEN IF J2>6 THEN Z(J1, J2)=I ON X(G) GOTO 1920 1920 1920 1790, 1860 ON R ( I > + 1 GOTO 1 750 , 1 770 , 1 790 ,1810,1 840 , 1 860 , 1 900 , 1 920 , 1 920 , 1 920 , F < I ) =V (I ) GOTO 1950 F(I)=C(3, I)*V(I)-C(4, I) GOTO 1950 F(I)=C<4, I)*V(I)/(C(6, I)*V1)-C(5, I)/C(6, I) GOTO 1950 U=LOG( (V1/V(I)-1)*C(4, I) ) F(I)=1/(C(3, I)*U-t-C(4, I) )-C(5, I) GOTO 1950 F(I)=C(4, I)*V(I)/(C(6, I)*V1)+C(5, I)/C(6, I)+C(3, I) GOTO 1950 F(I)=C(3, I)*D*Vl/5.0075+C(4, I) ! NEW EXTENSOMETER ! REDUCTION FORMULA GOTO 1950 F(I)=4*V(I)/(V1*C(4, I) )-C(5, I) GOTO 1950 40 1 920 V ( I ) =0 1930 F ( I ) =0 1 940 GOTO 2070 1950 IF R(I) >10 THEN 2070 1960 IF F(I)C(9,I) THEN L4(Q,Q1)=1 1 980 GOTO 2070 1990 IF 0=1 THEN 2020 2000 0=1 1? BEEP 1? PRINT USING 2010 ; Y(G)+1 2010 IMAGE "*****ERROR - CONVERSION OF SCAN: " , /, DDD, " CHANNEL (S) " 2020 PRINT USING 2030 ; I 2030 IMAGE 15X,DDD 2040 V(I)=0 1? F(I)=0 2050 L3(Q,Q1)=1 2060 L4(Q,Q1)=1 2070 NEXT I 2080 FOR J 1 = 1 TO 3 2090 ON ERROR GOTO 2110 2100 Zl <1)=F(Z(J1, 1) ) 2110 FOR J2=2 TO 5 2120 ON ERROR GOTO 2140 2130 Zl (J2)=Z1 (l)-F(Z(Jl, J2) ) 2140 NEXT J2 2150 FOR J2=l TO 5 2160 ON ERROR GOTO 2260 2 1 70 I=Z(J1, J2) 2180 Z(J1,J2)=0 2190 F(I)=Z1 (J2> 2200 Zl +1 2770 IF G=2 THEN Q=IP ( ( 1-32) /17) +1 V730 Ql=I-16*Q-32*G+48 7740 IF F(I)>C(9,I) THEN L4(Q,Q1)=1 2260 NEXT J2 7770 NEXT Jl 2280 OFF ERROR 2290 FOR 1=1 TO 2 2300 FOR J=l TO 15 2310 IF L3(I,J)=0 THEN LI < I ) =L1 ( I ) -2-M J-1 ) 2320 IF L4(I,J)=0 THEN L2 ( I ) =L2 ( I ) -2'- ( J-1 ) 2330 NEXT J 2340 IF L3=0 THEN Ll< I ) =BINEOR (LI ( I ) , -32768) 2350 IF L4(I,16)=0 THEN L2 ( I ) =BINEOR (L2 ( I ) , -32768) 2360 NEXT I 2370 RETURN 2380 ! 2390 ! Write record on -files. 2400 Jl=32* (G-l)+l 2410 J2=32*G 2420 K=0 2430 FOR I=J1 TO J2 41 2440 2450 2460 2470 2480 2490 2500 2510 2520 2530 2540 2550 2560 2570 2580 2590 2600 2610 2620 2630 2640 2650 2660 2670 2680 EN", 2690 2700 2710 2720 2730 2740 2750 2760 2770 2780 2790 2800 2810 2820 2830 2840 ANGE 2850 2860 2870 2880 2890 2900 2910 2920 2930 K=K+1 F2 >1 THEN 2510 Dl (G)=DO I? Tl (G)=T0 CRT OFF PRINT# PRINT# CRT ON RETURN G,2 ; Y ,D1 (G) ,T1(G) ,DO,TO,G G,Y(G)+2 ; T0,D0,F1 () ,D3(") ,L1 <) j,L2() ! Manu, Auto project # 1,2. ON TIMER# 1,T8(1)*60000 GOTO 2580 T7 ( 1 ) =RMD ( T I ME+TS ( 1 ) *60 , 86400 ) G=l GOTO 2650 ON TIMER# 2,T8<2)*60000 GOTO 2620 T7 (2) =RMD +1 2950 K1=K>7 2960 J=0 2970 IF BIT(L1 (Q) ,Q1) THEN J=J+1 2980 IF BIT(L2(Q) ,Q1> THEN J=J+2 2990 IF J=0 THEN A*=" 3000 IF J=l THEN A*="LOW" 3010 IF J=2 THEN A*="HIG" 3020 IF J=3 THEN A*="ERR" 3030 PRINT USING 3040 ; H*CK, Kl D , F ( I ) , F2 ( I ) , D ( I ) 3040 IMAGE 8A,X,MDDDDD.DDD, X, MDDD. DD, X, 3Z 3050 NEXT I 3060 PRINT USING 3070 3070 IMAGE 5/ 3080 GOTO 730 3090 ! 3100 ! Auto, project #1,2. 3110 G=l 3120 GOTO 3140 3130 G=2 3140 IF A(G)=0 THEN 3180 3150 A1440 THEN 3190 3260 LINPUT "Input time elapse be-for start (MIN=0 min,MAX=1440 min)" ,A$ 3270 T9=VAL(A*) 3280 IF T9<0 THEN 3260 3290 IF T9>1440 THEN 3260 3300 IF T9=0 THEN T9=.0005 3310 OFF ERROR 3320 T8(G)=T3 3330 IF G=l THEN ON TIMER# G,T9*60000 GOTO 2580 3340 IF G=2 THEN ON TIMER# G,T9*60000 GOTO 2620 3350 T7 (G) =RMD (TIME+T9* 60, 86400) 3360 GOTO 730 3370 ! 3380 ! Display o-f data. 3390 G=l 3400 GOTO 3420 3410 G=2 3420 CLEAR i? ENABLE KBD 255 3430 GOSUB 970 43 3440 IF 0#0 THEN 730 3450 GOSUB 1400 3460 Jl=32*(G-l)-»-l 3470 J2=32*G 3480 I=J1-1 3490 ENABLE KBD 1 3500 DISP "Input channel # to be displayed" 3510 DISP USING 3520 ; J1,J2 3520 IMAGE 2/, 2X, DD, "-" , DD, 3X, "= channel -for display" ,/,"- END LINE='= n ext channel " 3530 DISP USING 3540 3540 IMAGE 4X,"0",5X,"= exit display ",3/ 3550 ON ERROR GOTO 3640 3560 LINPUT "Channel #:",A* 3570 J=VAL(A$) 3580 OFF ERROR 3590 IF J=0 THEN 730 3600 IF JJ2 THEN 3550 3620 I=J 3630 GOTO 3670 3640 OFF ERROR 3650 1=1+1 3660 IF I>J2 THEN I=J1 3670 Q=IP(I/17)+1 3680 IF G=2 THEN Q=IP ( ( 1-32) / 17) +1 3690 Ql=I-16*Q-32*G+47 3700 K=8*(I-1)+1 3710 Kl=K-t-7 3720 CLEAR 3730 DISP USING 3740 K, /, "Channel valu MDD.DDD i,h*ck,k:id,f(I) 3740 IMAGE "Channel #",6X,"= ", DD, /, "Title" , lOX, "= e",2X,"= ",MD.DDDe 3750 DISP USING 3760 ; D 3780 IMAGE "Low",12X,"= " , D, / , "Hi gh" , 1 1 X, "= ",D,8/ 3790 GOTO 3550 3800 ! 3810 ! Help. 3820 ENABLE KBD 1 i? CLEAR 3830 DISP USING 3840 3840 IMAGE 9X , " *****HELP*****" , 2/ 3850 DISP "The keys operate as -follows:" 3860 DISP USING 3870 3870 IMAGE 1/,"K1= 'MANUAL' acquisition pro j . 1 " , / , "K2= 'MANUAL- acquis i tion proj . 2" 3880 DISP USING 3890 3890 IMAGE "K3= 'AUTO' acquisition proj roj.2" 3900 DISP USING 3910 3910 IMAGE "K5= 'DISPLAY' data -for proj 1",/,"K4= 'AUTO' acquisition p 1",/,"K6= 'DISPLAY' data -For p ■ Bwot 44 ",/,"KS= 'EXIT' module ' ACQUIR'" , 3/ LINE' -For more help", A* roj.2" 3920 DISP USING 3930 3930 IMAGE "K7= 'HELP= 3940 L INPUT "Hit 'END 3950 CLEAR 3960 DISP USING 3970 3970 IMAGE 2/, "Note: the max # o-f scans that can be stored -for each pr oj. is 100." 3980 DISP USING 3990 3990 IMAGE "In 'DISPLAY' n",/, "-files. ",7/ 4000 L INPUT "Hit 'END LINE' to 4010 GOTO 730 4020 ! 4030 4040 4050 4060 4070 4080 4090 4 1 00 mode, the data" ,/, "taken will not be stored i return", A* KBD OFF ! Exit. CLEAR I? ENABLE OFF TIMER# 1 I? ASSIGNS 1 TO * ASSIGNtt 2 TO * ENABLE KBD 33 i? CRT ON CHAIN "CONTRL" END O TIMER# 2 45 MODULE 'ACQUIR' 1 00 102 104 106 108 110 112 1,Q, 114 116 118 120 124 126 128 1 30 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 175 176 177 178 180 132 184 186 188 190 192 194 196 This is module 'ACQUIR'. It is the acquiring seg- ment o-f data acquisition program 'MDAP85'. OPTION BASE 1 DIM P*C643,H*C512D,B$C204] INTEGER M,T,N,E(2> ,X(2) ,R(64) ,S<64) ,D0,D1(2) ,D2,D(64) ,Y(2) Q1,L1 (2) ,L2(2) ,G,0 INTEGER Z(3,6) , Jl , J2, D3 (32) , L3 (2, 16) , L4 (2, 16) , A (2) SHORT C(9,64) ,V(64) ,F(64) ,F1 (32) ,Z1 (6) ,V1,F2(32) REAL T0,T1 (2) , T2, T3, T4, T5, T6, T7 (2) ,T8(2) ,T9,U D2=DATE I? T2=TIME CLEAR DISP USING 126 IMAGE 9X, "MODULE 'ACQUIR"',2/ DISP "TIME: ",HMS$(T2) DISP "DATE: ", MDY* (D2+MDY (" 12/31/1981 ") ) DISP USING 134 IMAGE 3/, " Wait" WAIT 2000 I? ENABLE KBD I ! Read parameter -file. I,J,K,K ASSIGNtt CRT OFF READ# 1 CLEAR ASSIGNtt 1 TO "PFILE" N,M,T,E() ,X() ,R() ,S() ,C(, ) ,P*,H$ 1 TO * ! Initialize variables. Dl (1)=D2 I? Dl (2)=D2 Tl (1)=T2 I? Tl (2)=T2 Y(1)=0 I? Y(2)=0 A(1)=0 I? A(2)=0 FOR 1=1 TO 6 Z 1 ( I ) =0 FOR J=l TO 3 Z(J, I)=0 NEXT J NEXT I FOR J=l TO 32 Fl (J)=0 NEXT J ! Create output -files. ON ERROR GOTO 192 ASSIGNtt 1 TO "FILEOl" OFF ERROR P*C 1, 30], H*C 1,256] Yd) ,D1 (1) ,T1 (1) PRINTtt 1,1 READ# 1,2 GOTO 203 OFF ERROR CREATE " F I LEO 1 " , 1 02 , 586 ASSIGNtt 1 TO "FILEOl" 46 m^mrutntiMm^ fa 198 200 202 203 204 206 208 210 rr* 1 TJ 214 216 218 220 224 226 228 230 232 234 236 238 240 244 246 248 250 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 2S4 286 288 290 294 296 298 CRT OFF PRINT# 1,1 ; P*C 1, 30], H*C 1,2563 PRINT# 1,2 ; Yd) ,D1 (1) ,T1 (1) ,D2,T2, 1 IF N=l THEN GOTO 230 ON ERROR GOTO 218 ASSIGN# 2 TO "FILE02" OFF ERROR PRINT# 2,1 ; P$C31, 603, H*C257, 5123 READ# 2,2 ; Y (2) , Dl (2) , Tl (2) OFF ERROR GOTO 234 OFF ERROR CREATE " F I LE02 " ,102, 586 ASSIGN# 2 TO "FILE02" CRT OFF PRINT# 2,1 ; P$C31,60],H*[257, PRINT# 2,2 ; Y (2) , 01(2) , Tl (2) , 5123 D2,T2,2 ! Key assignments ENABLE KBD 32 ON KEY# 1, "MANU "MANU ON ON ON ON ON ON ON k:ey# KEY# KEY# KEY# KEY# KEY# KEY# 1" GOTO 598 7 " GOTO 606 1" GOTO 694 f " GOTO 698 1" GOTO 750 c* " GOTO 754 GOTO 836 GOTO 880 "AUTO 4, "AUTO 5, "DISP 6, "DISP 7, "HELP 8, "EXIT CLEAR I? KEY LABEL DISP USING 256 IMAGE 3/, " ***** DISP USING 260 IMAGE "Proj #1: FOR 1=1 TO 2 IF A=0 L4(l, I)=0 I? L4(2, I>=0 NEXT I J=E(G) ON ERROR GOTO 394 V(J)=C(1, J)*D(J)+C(2, J) FC(9, J) THEN GOTO 398 print using 396 ; g image "*****error - . ;d for i=32*(g-1)+1 to 32*g on error goto 478 L3(K,K1) L4(K,K1) CONVERSION OF DATA" ,/, "EXCITATION CHANNEL, PRO nnniin— iMnnnnnnrTTHn 48 402 IF I=J THEN 494 404 V(I)=C(1, I)*D3 THEN 464 420 IF J2<1 THEN 464 422 IF J2>6 THEN 464 424 Z(J1,J2)=I .426 ON X(G) GOTO 438,452 428 ON R(I)+1 GOTO 430,434,438,442,448,452,460,464,464,464,464 430 F(I)=V(I) 432 GOTO 470 434 F(I)=C(3, I)*V(I)-C(4, I) 436 GOTO 470 438 F(I)=C(4, I)*V(I)/(C(6, I)*V1)-C(5, I) /C(6, I) 440 GOTO 470 442 U=LOG< (V1/V(I)-1) *C(4, I) ) 444 F(I)=1/(C(3, I)*U+C(4, I) )-C(5, I) 446 GOTO 470 448 F(I)=C(4, I)*V(I)/(C(6, I)*V1)+C(5, I)/C(6, I)+C(3, I) 450 GOTO 470 452 F(I)=C(3, I)*D/(V1*C(4, I) )-C(5, I) 462 GOTO 470 464 V(I)=0 466 F(I)=0 468 GOTO 494 470 IF R(I)>10 THEN 494 472 IF F(I)C(9,I) THEN L4(Q,Q1)=1 476 GOTO 494 478 IF 0=1 THEN 484 480 0=1 I? BEEP I? PRINT USING 482 ; Y(G)+1 482 IMAGE "*****ERROR - CONVERSION OF SCAN: " , / , DDD, " CHANNEL(S) 484 PRINT USING 486 ; I 486 IMAGE 15X,DDD 488 V(I)=0 ft' F(I)=0 490 L3(Q,Q1)=1 492 L4(Q,Q1)=1 494 NEXT I 496 FOR J 1 = 1 TO 3 498 ON ERROR GOTO 502 500 Zl (1)=F(2 (Jl, 1) ) 502 FOR J 2=2 TO 5 504 ON ERROR GOTO 508 49 506 508 5 1 512 514 516 518 520 524 526 528 530 534 536 538 540 542 544 546 548 550 552 554 556 558 560 562 564 566 568 569 570 572 574 576 578 580 582 584 586 588 590 592 594 596 598 600 602 604 606 Zl (J2)=Z1 (l)-F(Z(Jl, J2) > NEXT J2 FOR J2=l TO 5 ON ERROR GOTO 532 I=Z (Jl, J2) Z(J1, J2)=0 F(I)=Z1 (J2> Z1(J2)=0 Q=IP(I/17)H-1 IF G=2 THEN Q=IP ( (1-32) / 17) +1 Ql=I-16*Q-32*G+48 IF F(I)C(9, I) THEN NEXT J2 NEXT Jl OFF ERROR FOR 1=1 TO 2 FOR J=l TO 15 IF L3(I,J)=0 THEN IF L4(I,J)=0 THEN NEXT J IF L3(I, 16) =0 IF L4(I, 16) =0 NEXT I RETURN L3(Q,Q1)=1 L4(Q,Q1)=1 LI (I)=L1 (I)-2-(J-l) L2(I)=L2(I)-2-"-(J-l) THEN LI (I)=BINE0R1 THEN 580 D 1 ( G ) =D0 li' TUG) =T0 CRT OFF PRINT# G,2 ; Y (G) , Dl (G) , Tl (G) , DO, TO, G PRINT# G,Y(G)H-2 ; TO, DO, Fl ( ) , D3 ( ') , LI () CRT ON RETURN I ! Manu, Auto project # 1,2. ON TIMERtt 1,T8(1)*60000 GOTO 594 T7 (1 ) =RMD (TIME+TS ( 1 ) #60, 86400) G=l GOTO 608 ON TIMERtt 2,T8(2) *60000 GOTO 602 T7 ( 2 ) =RMD ( T I ME+T8 ( 2 ) *60 , 86400 ) G=2 L2() 50 60S IF Y(G)<100 THEN 618 610 BEEP 612 PRINT USING 614 ; G 614 IMAGE "*****ERRGR - MAX # OF SCANS" ,/, "FOR PROJECT # ",D, " HAS BEE 1 N", /, "REACHED. " 616 GOTO 234 618 CLEAR li' ENABLE KBD 620 GOSUB 278 622 IF 0#0 THEN 234 624 GOSUB 360 626 Y(G)=Y(G)+1 628 GOSUB 560 630 CRT OFF 632 PRINT USING 634 ; G 634 IMAGE ,3/,5X, "*****PROJECT ",D," *****" 636 PRINT USING 638 ; Y(G) 638 IMAGE "SCAN # " , DDD 640 PRINT "TIME: ",HMS$(TO) 642 PRINT "DATE: ", MDY$ (DO+MDY (" 12/31 / 1981 ") ) 644 PRINT USING 645 645 IMAGE 2/, "CHANNEL ENGR. NET uMUXNAME UNITS CHA NGE DATA" 646 iZ'C'TMT " " rKiN 1 647 FOR 1=21 TO 30 648 F ( I ) =F ( I ) * 1 000000 li' F2 ( I ) =F2 ( I ) * 1 000000 649 NEXT I 650 FOR I=32*(G-1)+1 TO 32*G 652 IF S(I)=0 THEN 682 654 Q=IP(I/17)+1 656 IF G=2 THEN Q=IP ( (1-32) / 17) +1 658 ai=I-16*D-32*G+47 660 K=8*(I-1)+1 662 Kl=K+7 664 J=0 666 IF BIT(L1 1440 THEN 710 LINPUT "Input time elapse be-for start (MIN= min,MAX=1440 min) (MIN=0 min,MAX=1440 min) T9=VAL(A$) IF T9<0 THEN 724 IF T9>1440 THEN 724 IF T9=0 THEN T9=.0005 OFF ERROR T8(G)=T3 IF G=l THEN ON TIMER# IF G=2 THEN ON TIMER# T7 (G) =RMD : i t . 880 CLEAR IP ENABLE KBD 882 OFF TIMER# 1 1? OFF TIMER# 2 884 ASSIGNtt 1 TO * 886 ASSIGNS 2 TO * 888 ENABLE KBD 33 i? CRT ON 890 CHAIN "CONTRL" 892 END 53 MODULE 'INPUT' 1 00 1 02 1 04 106 loa 110 112 114 116 118 120 124 126 128 1 30 132 134 136 138 1 40 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 ! This is module - INPUT ^ . ! It is the input segment ! o-f data acquisition ! program ■■"MDAP85^. OPTION BASE 1 DIM P$C64],H*C512] INTEGER M,T,N,E(2) SHORT C(9,64) CLEAR DISP USING 120 IMAGE 9X, "MODULE ENABLE KBD 1 Z*C512: X(2) ,R(64) ,S(64) I NPUT '■ Wait ! Read -file. ON ERROR GOTO 144 ASSIGN# 1 TO "PFILE" CRT OFF READ# 1 ; CLEAR ASSIGNtt 1 OFF ERROR OFF ERROR N,M,T,E() ,X() ,R() ,S(> ,C(, ) ,P*,H* TO * li' GOTO 190 ! Initialize variables. M=0 T=4 N=2 Ed) =0 E(2)=0 X ( 1 ) =0 X ( 2 ) =0 FOR 1=1 TO 64 R (I ) =0 S4 THEN 222 266 IF N<1 THEN 222 268 IF N>2 THEN 222 270 OFF ERROR 272 GOTO 190 274 ! 276 i Project inputs. 278 ENABLE KBD 33 280 FOR 1=1 TO N 282 ALPHA 1,1 1? CLEAR 284 L1=CURSR0W 286 DISP USING 288 ; I 288 IMAGE 3X, "*****PRQJECT INPUTS <", Z ,") *****" ,3/ 290 ON ERROR GOTO 282 292 LINPUT "Project #:",K* 294 N1=VAL(K*) 296 IF NKl THEN 282 298 IF Nl>2 THEN 282 300 J1=1+30*?",A* 323 IF A*="Y" THEN 190 324 ALPHA Ll,l i? OFF CURSOR 326 AREAD Z* 328 ON ERROR GOTO 282 330 P*CJ1, J23=Z*C193,222: 332 E(N1)=ABS(VAL(TRIM*(Z*C279,288D) ) ) 334 X(N1)=ABS32*N1 THEN 282 340 IF X(N1)<1 THEN 282 I 342 IF X(N1)>2 THEN 282 J 344 OFF ERROR \ 346 NEXT I ! I 348 GOTO 190 ' I 350 ! I 352 ! Channel inputs. ' 354 ENABLE KBD 33 356 CLEAR 358 DISP USING 360 360 IMAGE 4X, "*#**)KCHANNEL INPUTS*****" 362 DISP USING 364 364 IMAGE 3/, "Input channel # -for each ",/, "channel . " 366 DISP USING 368 368 IMAGE /,"Note: a 'O' -for channel # wi 1 1 " , / , "exi t this routine", 2/ 370 ON ERROR GOTO 372 372 LINPUT "Channel #:",K* 374 N1=VAL(K*) 376 IF N1=0 THEN 462 378 IF NKO THEN 372 380 IF Nl>64 THEN 372 382 ALPHA 1,1 i? CLEAR 384 L1=CURSR0W 386 OFF ERROR 388 DISP USING, 390 ; Nl 390 IMAGE 7X, "***Channel ",2D," *♦*", 392 J1=8*(N1-1)+1 394 J2=Jl+7 396 DISP USING 398 ; H*CJ1,J2D 398 IMAGE "Title (8 char) = ",K 400 DISP USING 402 ; R(N1) 402 IMAGE "Reduction type = " , DD 404 DISP USING 406 ; S(N1) 406 IMAGE "Printing -flag = " , DD 408 DISP USING 410 ; C ( 1 , Nl ) , C (2, Nl ) , C (3, Nl ) 410 IMAGE "C0",13X,"= " , MD. DDDDE, / , "CI " , 13X , "= " , MD. DDDDE, / , "C2" , 13X , " ■*******»******'—*—*» 56 _ II ~ J MD.DDDDE 412 DISP USING 414 ; C (4, Nl ) , C (5, Nl ) , C (6, Nl ) 414 IMAGE "C3",13X,"= " , MD. DDDDE, /, "C4" , 13X, " = ", MD.DDDDE,/, "C5", 13X, " II MD.DDDDE 416 DISP USING 418 ; C(7,N1) 418 IMAGE "C6",13X,"= ", MD.DDDDE 420 DISP USING 422 ; C (8, Nl ) , C (9, Nl ) 422 ,2/ 424 IMAGE "Low limit", 6X,"= " , MD. DDDDE, /, "High limit", 5X, "= ", MD.DDDDE IF P0#0 THEN 520 426 ALPHA Ll+13, 1 428 ON ERROR GOTO 432 430 LINPUT "Inputs ok(Y)?",A* 432 ALPHA L 1 , 1 1? OFF CURSOR 434 ARE AD 1% 436 ON ERROR GOTO 382 438 H$CJ1, J2 3=TRIM*(Z*C49,64D) 440 R ) 444 IF R(N1> >36 THEN 382 446 IF S(N1) >1 THEN 382 448 FOR 1=1 TO 9 450 J1=32*(I-1)+145 452 J2=J1+15 454 C(I,N1>=VAL 484 DISP "DATE: ", MDY* (DATE+MDY (" 12/31/1981 ") ) 486 n T cc' " " U i car 488 DISP " " 490 GOTO 226 492 DISP USING 494 494 IMAGE 4X, "*****PROJECT INPUTS*****" , 3/ 496 N1=P0 498 DISP USING 500 ; Nl 500 IMAGE "Project # =",3D 502 J 1 = 1+30* 0 THEN 200 BEEP IF G=l THEN PRINT IF G=2 THEN PRINT ASSIGN# 1 TO * GOTO 126 BEEP PRINT "*****ERROR - NO DATA (' FILEOl') "*****ERROR - NO DATA ('FILE02') "*****ERROR "*****ERROR OFF ERROR i? IF G=l THEN IF G=2 THEN PRINT GOTO 126 Y1=0 I? ON ERROR GOTO 218 FOR J=l TO Y ASSIGN ASSIGN 'FILEOl' 'FILE02' 59 204 206 208 210 T' 1 TJ 214 216 218 220 224 226 228 230 232 234 236 238 240 242 244 246 248 250 the mass storage tape and hit =* END LINE^" IF IF IF IF IF 254 256 258 ECTED" 260 IF 262 264 266 268 270 E" 272 274 276 278 280 282 284 286 288 290 294 296 298 300 302 READ# l,J+2 ; T ( J ) , D ( J ) , Fl ( ) , D4 ( ) , LI ( J ) , L2 ( J) , L3 ( J) , L4 ( J) Y1=Y1+1 FOR K=l TO 32 F=F1 (K) D30 THEN 240 236 BEEP I? PRINT "*****ERROR - NO DATA" 238 GOTO 426 240 DISP USING 242 ; G,P* 242 IMAGE 5X , " *>lc***PROJECT ",D," *****",/, "Project ID:",/,K,2/ 244 DISP USING 246 ; Y 246 IMAGE "# o-F scans: " , DDD 248 DISP USING 250 ; HMS$ (Tl ), MDY$ (Dl+MDY (" 12/31/1981 ") ) 250 IMAGE "Starting time and date: " , / , K, lOX, K 252 DISP USING 254 ; HMS$ (T2) , MDY$ (D2+MDY (" 12/31/ 1981 ") ) 254 IMAGE "Ending time and date: " , / , K, lOX , K, 2/ 256 ON ERROR GOTO 224 258 ENABLE KBD 1 260 DISP "Enter time interval -for printingthe data:" 262 LINPUT "mm/dd/yyyy hh:mm:ss (start)", A* 264 A*=TRIM*D2 THEN 0=1 284 IF D4D4 THEN 0=1 288 IF 0=0 THEN 298 290 BEEP I? PRINT "*****ERROR - WRONG INTERVAL" 292 GOTO 426 294 ! 296 ! Print the data. 298 CRT OFF 300 PRINT USING 302 302 IMAGE 3/, " DATA PRINTOUT " 63 304 PRINT 306 IMAGE 308 PRINT 310 IMAGE 312 PRINT 314 IMAGE 316 PRINT 318 IMAGE 320 PRINT 322 IMAGE 324 PRINT " 326 0=0 328 FOR J=l 330 CRT OFF 332 READ# l,J+2 ; 334 J1=RMDD4 346 IF D0#D3 348 IF T0T4 354 356 358 360 362 364 366 USING 306 ; "PROJECT #! USING 310 ; "PROJECT ID: USING 314 ; "TOTAL # OF USING 318 ; HMS* (Tl ), MDY* ) "ENDING TIME AND DATE: " , / , K, lOX , K ",DD P* ",/,K,2/ Y SCANS: ". ,DDD HMS*(T1) , MDY* ,L1 () ,L2() IF IF IF IF IF 0=0+1 PRINT IMAGE PRINT PRINT PRINT IMAGE TA CON" 368 PRINT FOR I THEN THEN THEN THEN THEN THEN 418 420 350 418 354 420 USING 4/,7X, "TIME: "DATE: USING /, "CH DDD. ****** ",2/ 358 ; J "******SCAN ",HMS*(TO> " , MDY$ (DO+MDY ( " 12/31 / 1981 " ) ) 366 CHANNEL CHANNEL RAW",/," # NAME VALUE DA 370 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 402 404 1 TO 32 Q=IP.05 THEN A*="CHG" 412 PRINT USING 414 ; I+32*G-32, H$CK, Kl 3 , F ( I ) , D (I.) , A* 414 IMAGE DD,X,8A,X,MD.DDDe,2X,3Z,X,3A 416 NEXT I 413 NEXT J 420 IF 0=0 THEN BEEP i? PRINT "*****ERROR - NO DATA IN THE GIVEN IN TERVAL" 422 PRINT USING 424 424 IMAGE " ",5/ 426 ASSIGNtt 1 TO * 425 IF G1#0 THEN 126 430 CLEAR i? ENABLE KBD 1 432 LINPUT "Put the program tape back and hit =■ END LINE'", A* 434 GOTO 126 436 ! 438 ! Help. 440 CLEAR i? ENABLE KBD 1 442 DISP USING 444 444 IMAGE ?X, "*****HELP*****" , 2/ 446 DISP "The keys operate as follows:" 448 DISP USING 450 450 IMAGE 1/,"K1= 'PRINT' project 1",/,"K2= 'PRINT' project 2" 452 DISP USING 454 454 IMAGE "K3= print a 'STORED' -f i le", /, "K4= ' HELP' " , /, "K5= 'EXIT' mod ule 'PRINT' ",6/ 456 LINPUT "Hit 'END LINE' to return", A* 458 GOTO 126 460 ! 462 ! Exit. 464 CLEAR i? ENABLE KBD 33 466 CHAIN "CONTRL" 468 END 65 MODULE 'PLOT' 1 00 102 104 106 108 110 112 114 116 118 1 20 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 INE' 160 162 164 166 168 170 172 174 176 178 ISO 182 184 186 188 190 192 194 196 198 200 This is module -PLOT'. It is the plot segment o-f the data acquisition program ' MDAF" . OPTION BASE 1 DIM P$C30],H*C256],Z*C63,W*C30],P1*C1],A*C30: INTEGER DdOO) , Dl , D2, D3, D4, I , J , K, Kl , G, Gl , 0, L, M, Ml , N, Y SHORT F<100,32) ,F1 (32) ,Q REAL TdOO) ,T1,T2,T3,T4,X1,X2,X3,X4,Y1,Y2, Y3, Y4,E CLEAR DISP " MODULE 'PLOT- " WAIT 3000 ! Key assignments. ENABLE KBD 32 G 1 =0 I? 0=0 ON ON ON KEY# KEY# KEY# ON KEY# 4 ON KEY# 5 GOTO GOTO GOTO GOTO 610 GOTO 634 196 208 154 1,"PL0T 1" 2, "PLOT 2" 3, "STORED" "HELP " "EXIT " CLEAR I? KEY LABEL DISP USING 14.6 IMAGE 3/," *****'PLOT=' options*****" GOTO 148 ! Plot stored -file. ENABLE KBD 1 CLEAR LINPUT "Insert the tape containing the stored data and hit 'END L ",A$ CLEAR I? CRT IS 2 ON ERROR GOTO 184 DISP USING 166 IMAGE 2/," TAPE DIRECTORY " CAT li' CRT IS 1 ON ERROR GOTO 172 LINPUT "Input file name(l-6 char):", A* Z*=TRIM$(A*) ON ERROR GOTO 184 ENABLE KBD ASSIGNtt 1 TO 1% GOTO 228 OFF ERROR i? CRT IS 1 IF ERRN#67 THEN 154 BEEP I? PRINT "*****ERROR - NO SUCH FILE" 0=1 I? GOTO 258 ! Project # 1,2. Gl = l ENABLE KBD CLEAR ■ ■MM»iMMM*fifw»#«»w>finninnniin n iH i 66 202 ON ERROR GOTO 220 204 ASSIGNtt 1 TO "FILEOl" 206 GOTO 228 208 Gl=2 210 ENABLE KBD 212 CLEAR 214 ON ERROR GOTO 220 216 ASSIGN# 1 TO "FILE02" 218 GOTO 228 220 OFF ERROR i? BEEP 222 IF Gl=l THEN PRINT "*****ERROR - ASSIGN ^FILEOl-" 224 IF Gl=2 THEN PRINT "*****ERROR - ASSIGN ••'FILE02-" 226 GOTO 128 228 OFF ERROR 230 CLEAR i? CRT OFF 232 READ# 1, 1 ; P$,H* 234 READ# 1 ,, 2 ; Y, Dl , Tl , D2, T2, G 236 IF Y>0 THEN 244 238 BEEP I? PRINT "***!|c*ERROR - NO DATA" 240 ASSIGNtt 1 TO * 242 GOTO 128 244 FOR 1=1 TO Y 246 READ# 1,1+2 ; T ( I ) , D (I ) , F 1 () 248 FOR J=l TO 32 250 F(I, J)=F1 (J) 252 NEXT J 254 NEXT I 256 ASSIGN# 1 TO * 258 ENABLE KBD 1 260 IF G1#0 THEN 276 262 ! 264 ! Put program tape back. 266 CLEAR 268 LINPUT "Put the program tape back and hit 'END LINE'", A* 270 IF 0=1 THEN 128 272 ' 274 ! Get infor. -for plot. 276 CLEAR 278 DISP USING 280 ; G,P* 280 IMAGE 5X, "*****PROJECT ",D," *****",/, "Pro ject ID:",/,K,2/ 282 DISP USING 284 ; Y 284 IMAGE "# o-f data points: " , DDD 286 DISP USING 288 ; MDY* (Dl+MDY (" 12/31/ 1981 ")), HMS$ (Tl ) 288 IMAGE "Starting date and time: " , /, K, 1 X, K 290 DISP USING 292 ; MDY* (D2+MDY (" 12/31/ 1981 ">), HMS$ (T2) 292 IMAGE "Ending date and time: " , /, K, 1 X, K, 2/ 294 ON ERROR GOTO 276 296 DISP "Enter time interval for plottingthe data:" 298 LINPUT "mm/dd/yyyy hh:mm:ss (start) ",A$ 300 A*=TRIM*(A*) 302 D3=MDY(A$C1, 103) -MDY(" 12/31/ 1981") 304 T3=HMS(TRIM*(A*C12:) ) 67 306 L INPUT "mm/dd/yyyy hh:mm:ss (end)",A$ 30Q A*=TRIM$(A*) 310 D4=MDY(A$C1, lOD ) -MDY (" 12/31/1981 " ) 312 T4=HMS(TRIM$(A*C12:> ) 314 OFF ERROR 316 0=0 318 IF D3>D2 THEN 0=1 320 IF D4D4 THEN 0=1 324 IF D3#D4 THEN 328 326 IF T3>=T4 THEN 0=1 328 IF 0=0 THEN 334 330 BEEP I? PRINT "*****ERROR - WRONG INTERVAL" 332 GOTO 276 334 CLEAR i? ON ERROR GOTO 334 336 DISP "YMIN,YMAX for plot"; 338 INPUT Y3,Y4 340 L INPUT "Plot on CRT or PLOTTER (C/P> ?", PI* 342 IF P1*#"P" THEN 348 344 LINPUT "Input LABEL -for Y aKis:",W* 346 LINPUT "Set plotter and hit -END LINE'", A* 348 OFF ERROR 350 ! 352 ! Draw axes and boundar. 354 Xl=D3+T3/86400-365 356 X2=D4+T4/86400-365 358 Y1=Y3 I? Y2=Y4 360 IF P1*#"P" THEN 420 362 PLOTTER IS 705 364 LOCATE 14, 100*RATI0-14, 12, 82 366 SCALE X1,X2,Y1,Y2 368 FXD 3,3 i? CSIZE 2,. 5,0 370 LAXES 372 MOVE XI, Y2 i? DRAW X2,Y2 374 DRAW X2,Y1 376 CSIZE 3, .5,0 378 DEG I? LDIR 90 380 SETGU I? MOVE 2,40 382 LABEL W$ 384 LDIR 386 MOVE 40, 1 388 LABEL "TIME (DAYS SINCE 12/31/1982)" 390 MOVE 14,95 t? CSIZE 4,. 5,0 392 LABEL USING 394 ; P* 394 IMAGE K 396 MOVE 14,91 i? CSIZE 3,. 5,0 398 LABEL USING 400 ; G+3 400 IMAGE "INSTALLATION: ",D 402 MOVE 14,89 404 A*C1,8D=HMS$(T3) i? A*C9, 133 = " " i? A*C 14, 23:=MDY* (D3+MDY (" 12/31 / I 1981")) 406 LABEL USING 408 ; A* CI, 23] I 68 408 IMAGE "STARTING TIME AND DATE FOR PL0T:",5X,K 410 MOVE 14,87 412 A*C1,8D=HMS*(T4) i? A*C9, 133 = " " i? A*C 14, 233=MDY* (D4+MDY ( " 12/3 1/ 1981 . ") ) 414 LABEL USING 416 ; A*C 1,233 416 IMAGE "ENDING TIME AND DATE FOR PL0T:",7X,K 418 GOTO 442 420 PLOTTER IS 1 422 GCLEAR 424 LOCATE 35, 100*RATI0-5, 12,95 426 SCALE X1,X2,Y1,Y2 428 FXD 3,2 430 LAXES (X2-Xl)/-24, (Y2-Y1 ) /24, XI , Yl , 10, 10 432 SETGU 434 MOVE 35,0 436 LABEL "DAYS SINCE 01/01/1982" 438 1 440 ! Get in-for. -for curve. 442 1=0 444 1 = 1 + 1 446 SETUU 1? MOVE X1,Y1 448 IF I>6 THEN 590 450 CLEAR 452 LINPUT "Plot data(Y/N)?",A* 454 IF A*="N" THEN 590 456 IF A$#"Y" THEN 450 458 ON ERROR GOTO 460 460 LINPUT "Input channel # to be plotted: ", A* 462 J=VAL(A*) 464 OFF ERROR 466 IF J<32*(G-1)+1 THEN 450 468 IF J>32*G THEN 450 470 IF G=2 THEN J=J-32 472 N=100 1? A*="Y" 474 IF P1*#"P" THEN 498 476 ON ERROR GOTO 478 478 LINPUT "Input # o-f points to bypass -for identi-f ication: " , A$ 480 N=VAL(A*> 482 OFF ERROR 484 IF N<0 THEN 450 485 IF J<21 THEN 489 486 IF J>30 THEN 489 487 LINPUT "Input Modulas; Ek10--6, E=1 -for Microstrain output". A* 488 E=VAL(A*) 489 LINPUT "Connect data points (Y/N) ?", A* 490 IF A*="Y" THEN 498 491 IF A*="N" THEN 498 492 GOTO 486 494 ! 496 ! Plot curve. 498 M=0 15 Ml=0 500 IF P1*#"P" THEN GRAPHICS i? E= 1000000 69 502 504 506 508 510 511 512 513 514 515 516 518 520 524 526 528 530 532 534 536 538 540 542 544 546 -1 548 550 552 554 556 558 560 562 564 566 568 570 572 574 576 578 580 582 584 586 588 590 592 594 596 FOR L=l TO Y-1 X3=D (L) +T (L) /86400-365 X4=D (L+1 ) H-T (L+1 ) /86400-365 IF X3X2 THEN 560 Y3=F(L,J) 1? Y4=F(L+1,J) IF J<2i THEN 515 IF J>30 THEN 515 Y3=Y3*E* 1000000 i*' Y4=Y4*E* 1000000 M=M+1 IF M>N THEN M=0 IF M#0 THEN 550 SETUU I? MOVE X3,Y3 i? SETGU ON I GOSUB 526,530,534,538,542,546 Ml = l I? GOTO 550 RPLOT .3,1,-1 I? RPLOT -.3,1,-1 i? RPLOT 0,0,2 RETURN RPLOT .3,-1,-1 6' RPLOT -.3,-1,-1 i? RPLOT 0,0,2 RETURN RPLOT -.5,. 5,-1 1? RPLOT -.5, -.5,-1 i? RPLOT 0,0,2 RETURN RPLOT .5,-5,-1 I? RPLOT .5, -.5,-1 i? RPLOT 0,0,2 RETURN RPLOT -.5,0,1 I? RPLOT .5,0,-1 5' RPLOT 0,-.5,-2 i? RPLOT 0,.5,-l RETURN RPLOT -.5, -.5,1 I? RPLOT .5,. 5,-1 i? RPLOT .5, -.5, -2 i? RPLOT -.5,-5. RETURN SETUU I? IF A*#"Y" THEN 554 MOVE X3,Y3 I? DRAW X4,Y4 NEXT L I ! Write legend. IF P1$#"P" THEN 444 IF M1=0 THEN 444 K=8*(J-1)+1 Kl=K+7 Q=.5 IF 1=1 THEN Q=0 IF 1=2 THEN Q=l SETGU I? MOVE 100*RATI0-26, 80-1 *2+Q ON I GOSUB 526,530,534,538,542,546 MOVE 100* RAT I 0-24, 80-1*2 LABEL USING 582 ^H^Ch^Ki: IMAGE "=",K GOTO 444 ! Plot more? IF P1*#"C" THEN 594 GRAPHICS I? COPY PEN CLEAR 70 598 LINPUT "Plot more -From this -f i le (Y/N) ?" , A$ 600 IF A$="Y" THEN 276 602 IF A*="N" THEN 128 604 GOTO 596 606 ! 608 ! Help. 610 CLEAR I? ENABLE KBD 1 612 DISP USING 614 614 IMAGE 9X, "*****HELP*****",2/ 616 DISP "The keys operate as -follows:" 618 DISP USING 620 620 IMAGE 1/,"K1= ^-PLOT- o-f project 1",/,"K2= •-PL0T=' o-f project 2" 622 DISP USING 624 624 IMAGE "K3= plot o-f a 'STORED" -f i le" , /, "K4= ' HELP' " , /, "K5= 'EXIT' m odule 'PLOT' ",6/ 626 LINPUT "Hit 'END LINE' to return", A* 628 GOTO 128 630 ! 632 ! Exit. 634 CLEAR i? ENABLE KBD 33 636 CHAIN "DATA" 638 END 71 MODULE 'NPLOT' 1 00 120 140 160 ISO 200 240 260 280 300 320 340 360 3S0 400 420 440 460 480 500 520 540 560 580 600 620 640 660 680 700 720 740 760 780 IHE 800 820 840 860 880 900 920 940 960 980 1000 1 020 1040 1060 1080 1 1 00 This is program 'NPLOT". It plots the files crea- ted by program "ACQUIR". OPTION BASE 1 DIM P*C30D,H$C256D,Z*C6D,W*C303,A*C30D INTEGER D(IOO) , Dl , D2, D3, D4, I , J , K, Kl , G, Gl , 0, L, M, Ml (6) ,N,C SHORT F(100,32) ,F1 (32) ,Q REAL T (100) , Tl , T2, T3, T4, XI , X2, X3, X4, Yl , Y2, Y3, Y4, E CLEAR DISP " PROGRAM 'PLOT^"' WAIT 3000 I ! Initial ize C=0 FOR 1=1 TO 6 Ml (I)=0 NEXT I ! Key assignments. ENABLE KBD 32 G1=0 1 1 variables. ON ON ON ON ON KEY# KEY# KEY# k:ey# KEY# . "PRO J 1 2, "PRO J 2 3, "STORED 4, "HELP 5, "EXIT GOTO GOTO GOTO GOTO GOTO 1 220 1340 740 5240 5480 CLEAR I? KEY LABEL DISP USING 660 IMAGE 3/, " *****^ GOTO 680 NPLOT' options*****" stored KBD 1 ■file. "Insert the tape containing the stored data and hit "END L ! Plot ENABLE CLEAR L INPUT ",A* CLEAR I? CRT IS 2 ON ERROR GOTO 1060 DISP USING 860 IMAGE 2/," ■ CAT CRT IS 1 ON ERROR GOTO L INPUT "Input Z*=TRIM*(A*) ON ERROR GOTO ENABLE KBD ASSIGN# 1 TO GOTO 1540 OFF ERROR i? CRT IS 1 IF ERRN#67 THEN 760 BEEP IP PRINT "*****ERROR - NO SUCH FILE" 940 ■file 1060 Z* -TAPE DIRECTORY- name(l-6 char) A* imiiiniMinnni 72 1120 ENABLE KBD 1 1140 LINPUT "Put the program tape back and hit 'END LINE'", A* 1160 GOTO 480 1180 ! 1200 ! Project #1,2. 1220 Gl=l 1240 ENABLE KBD 1260 CLEAR 1280 ON ERROR GOTO 1460 1300 ASSIGN* 1 TO "FILEOl" 1320 GOTO 1540 1340 Gl=2 1360 ENABLE KBD 1380 CLEAR 1400 ON ERROR GOTO 1460 1420 ASSIGN# 1 TO "FILE02" 1440 GOTO 1540 1460 OFF ERROR i? BEEP 1480 IF Gl = l THEN PRINT "**.***ERROR - ASSIGN 'FILEOl'" 1500 IF Gl=2 THEN PRINT "*****ERROR - ASSIGN 'FILE02'" 1520 GOTO 480 1540 OFF ERROR 1560 CLEAR i? CRT OFF 1580 READ# 1, 1 ; P*,H* 1600 READ# 1,2 ; Y, Dl , Tl , D2, T2, G 1620 IF Y>0 THEN 1700 1640 BEEP I? PRINT "*****ERROR - NO DATA" 1660 ASSIGN* 1 TO * 1680 GOTO 480 1700 FOR 1=1 TO Y 1720 READ# 1,1+2 ; T (I ) , D ( I ) , Fl ( ) 1740 FOR J=l TO 32 1760 F(I, J)=F1 (J) 1780 NEXT J 1800 NEXT I 1820 ASSIGN# 1 TO * 1840 ENABLE KBD 1 1860 IF G1#0 THEN 2000 1880 i 1900 ! Put program tape back. 1920 CLEAR 1940 LINPUT "Put the program tape back and hit 'END LINE'", A* 1960 ! 1980 ! Get in-for. -for plot. 2000 CLEAR 2020 DISP USING 2040 ; G,P$ 2040 IMAGE 5X, "*****PROJECT ",D," *****",/, "Pro ject ID:",/,K,2/ 2060 DISP USING 2080 ; Y 2080 IMAGE "# o-f data points: ",DDD 2100 DISP USING 2120 ; HMS* (Tl ), MDY* (Dl+MDY (" 12/31/ 1981 ") ) 2120 IMAGE "Starting time and date: " , /, K, lOX, K 2140 DISP USING 2160 : HMS* (T2) , MDY* (D2+MDY (" 12/31/ 1981 ") ) 73 2160 IMAGE "Ending time and date: " , /, K, lOX, K, 2/ 2180 IF C=0 THEN 2240 2200 L INPUT "Hit 'END LINE="",A* 2220 GOTO 3460 2240 ON ERROR GOTO 2000 2260 DISP "Enter time interval -for plottingthe data; 2280 LINPUT "mm/dd/yyyy hh:mm:ss (start) ",A$ 2300 A*=TRIM* ) 2360 LINPUT "mm/dd/yyyy hhummrss (end)", A* 2380 A*=TRIM*(A$) 2400 D4=MDY(A$C1, 103 ) -MDY (" 12/31 / 1981 " ) 2420 T4=HMS ( TR I M$ ( A* C 1 2 3 ) > 2440 OFF ERROR 2460 0=0 2480 IF D3>D2 THEN 0=1 2500 IF D4D4 THEN 0=1 2540 IF D3#D4 THEN 2580 2560 IF T3=T4 THEN 0=1 2580 IF 0=0 THEN 2640 2600 BEEP I? PRINT "*****ERROR - WRONG INTERVAL" 2620 GOTO 2000 2640 CLEAR i? ON ERROR GOTO 2640 2660 DISP "YMIN,YMAX for plot"; 2680 INPUT Y3,Y4 2700 LINPUT "Input LABEL -for Y aKi5:",W$ 2720 LINPUT "Set plotter and hit 'END LINE='",A$ 2740 OFF ERROR 2760 ! 2780 ! Draw axes and boundar. 2800 Xl=D3+T3/86400-365 2820 X2=D4+T4/a6400-365 2840 Y1=Y3 li' Y2=Y4 2860 PLOTTER IS 705 2880 LOCATE 14, 100*RATI0-14, 12, 82 2900 SCALE X1,X2,Y1,Y2 2920 FXD 3,3 i? CSIZE 2,. 5,0 2930 YAXIS X2 2940 LAXES 2960 MOVE Xl,Y2ii' DRAW X2,Y2 2980 DRAW X2,Y1 3000 CSIZE 3, .5,0 3020 DEG I? LDIR 90 3040 SETGU i? MOVE 2,40 3060 LABEL W$ 3080 LDIR 3100 MOVE 40, 1 3120 LABEL "TIME (DAYS SINCE 12/31/1982)" 3140 MOVE 14,95 i? CSIZE 4,. 5,0 3160 LABEL USING 3180 : Pi 74 3180 IMAGE K 3200 MOVE 14,91 i? CSIZE 3,. 5,0 3220 LABEL USING 3240 ; G+3 3240 IMAGE "INSTALLATION: ",D 3260 MOVE 14,89 3280 A*C1,S:=HMS*(T3> i? A*C9, 13D = " " i? A*C 14, 231=MDY$ (D3+MDY (" 12/31 /1981") ) 3300 LABEL USING 3320 ; A$C1,23 3 3320 IMAGE "STARTING TIME AND DATE FOR PL0T:",5X,K 3340 MOVE 14,87 3360 A*C1,8:=HMS*(T4) i? A*C9, 133 = " " i? A*C 14, 23]=MDY* (D4+MDY (" 12/31 /1981") ) 3380 LABEL USING 3400 ; A$C1,23: 3400 IMAGE "ENDING TIME AND DATE FOR PL0T:",7X,K 3420 ! 3440 ! Get in-for. -for curve. 3460 PEN 1 3480 1=0 3500 SETUU I? MOVE XI, Yl 3520 CLEAR 3540 LINPUT "Plot data (Y/N) ?" , A* 3560 IF A*="N" THEN 5000 3600 ON ERROR GOTO 3620 3620 LINPUT "Input channel # to be plotted:", A* 3640 J=VAL(A*) 3660 OFF ERROR 3680 IF J<32*(G-1)+1 THEN 3520 3700 IF J>32*G THEN 3520 3720 IF G=2 THEN J=J-32 3740 ON ERROR GOTO 3760 3760 LINPUT "Input # o-f points to bypass -for identi -f ication: " , A* 3780 N=VAL(A*) 3800 OFF ERROR 3820 IF N<0 THEN 3520 3840 IF N>=Y THEN 3980 3860 ON ERROR GOTO 3880 3880 LINPUT " Identi -f i cati on # (1-6)?",A$ 3900 I=VAL(A$) 3920 IF Kl THEN 3880 3940 IF I>6 THEN 3880 3960 OFF ERROR 3961 IF J<21 THEN 3980 3962 IF J>30 THEN 3980 3964 LINPUT "INPUT MODULUS; Ek10--6, E=1 FOR MICROSTRAIN OUTPUT", A* 3966 E=VAL(A$) 3980 LINPUT "Draw lines between points (Y/N) ?", A$ 4000 IF A*="Y" THEN 4100 4020 IF A*="N" THEN 4100 4040 GOTO 3980 4060 ! 4080 ! Plot curve. 4100 M=0 75 4120 FOR L=l TO Y-1 4140 X3=D(L)+T(L)/a6400-365 4160 X4=D+T(L+1) /a6400-.365 4180 IF X3X2 THEN 4680 4201 Y3=F(L,J) I? Y4=F(L+1,J) 4202 IF J>30 THEN 4240 4203 IF J<21 THEN 4240 4205 Y3=Y3*E* 1000000 4207 Y4=Y4*E* 1000000 4220 GOTO 4240 4225 IF L-Kl THEN 4232 4230 Y3=(F(L-1, J)+1*F(L, J)+F(L+1, J) )!icl000000/3 4231 GOTO 4234 4232 Y3=(F(L, J)*2+FY THEN 4238 4235 Y4= (F (L, J) +1*F (L+1 , J ) +F N THEN M=0 4280 IF M#0 THEN 4580 4300 SETUU I? MOVE X3,Y3 i? SETGU 4320 ON I GOSUB 4340,4380,4420,4460,4500,4540 4330 GOTO 4580 4340 RPLOT .3,1,-1 i? RPLOT -.3,1,-1 i? RPLOT 0,0,2 4360 RETURN 4380 RPLOT .3,-1,-1 i? RPLOT -.3,-1,-1 li' RPLOT 0,0,2 4400 RETURN 4420 RPLOT -.5,-5,-1 i? RPLOT -.5, -.5,-1 i? RPLOT 0,0,2 4440 RETURN 4460 RPLOT .5,. 5,-1 i? RPLOT .5, -.5,-1 df RPLOT 0,0,2 4480 RETURN 4500 RPLOT -.5,0,1 i? RPLOT .5,0,-1 i? RPLOT 0,-.5,-2 6' RPLOT 0,.5,-l 4520 RETURN 4540 RPLOT -.5, -.5,1 i? RPLOT .5,. 5,-1 i? RPLOT .5, -.5, -2 i? RPLOT -.5,. 5 ,-1 4560 RETURN 4580 SETUU i? IF A*#"Y" THEN 4620 4600 MOVE X3,Y3 i? DRAW X4,Y4 4620 NEXT L 4640 ! 4660 ! Write legend. 4680 IF 1=0 THEN 3500 4700 IF M1(I)=1 THEN 3480 4720 Ml (I)=l 4740 K=8*(J-1)+1 4760 Kl=K+7 4780 Q=.5 4800 IF 1=1 THEN Q=0 4820 IF 1=2 THEN 0=1 4840 SETGU i? MOVE 100*RATI0-26, 80-1 *2+Q ■ wwMtHn aatMiM M iii nBM ■■ ■■ ■■■■■■ ■■ ■ ■ ■■■ ■ifwnnnt i nnnoonna onaaaaaaaaaaaiiiiiiiiiMa ti^ 76 4860 ON I GQSUB 4340,4380,4420,4460,4500,4540 4880 MOVE 100*RATI0-24, 80-1*2 4900 LABEL USING 4920 ; H*[:k:,K1D 4920 IMAGE "=",K 4940 GOTO 3480 4960 ! 4980 ! Plot more? 5000 CLEAR 5020 PEN 5040 L INPUT "Continue this pi ot (Y/N) ?" , A* 5060 IF A*="N" THEN 5110 5080 IF A*#"Y" THEN 5040 5100 C=l I? GOTO 480 5110 C=0 5111 FOR 1=1 TO 6 5112 Ml (I>=0 5113 NEXT I 5120 LINPUT "Plot more -from this -Fi 1 e (Y/N) ?" , A* 5140 IF A$="Y" THEN 2000 5160 IF A*="N" THEN 480 5180 GOTO 5120 5200 i 5220 ! Help. 5240 CLEAR i? ENABLE KBD 1 5260 DI3P USING 5280 5280 IMAGE 9X, "*****HELP*****" , 2/ 5300 DISP "The keys operate as -follows:" 5320 DISP USING 5340 5340 IMAGE 1/,"K1= plot o-f 'PROJECT 1='",/,"K2= plot o-f 'PROJECT 2'" 5360 DISP USING 5380 5380 IMAGE "K3= plot o-f a 'STORED' -f i le" , /, "K4= ' HELP' " , / , "K5= 'EXIT^ program ' PLOT' " , 6/ 5400 LINPUT "Hit 'END LINE' to return", A* 5420 GOTO 480 5440 ! 5460 ! Exit. 5480 CLEAR i? ENABLE KBD 33 5500 STOP 5520 END 77 MODULE 'MODATA' 000 ! MODATA - VERSION 1 7/12/83 010 CLEAR 015 OPTION BASE 1 020 INTEGER Tl , F2, D7, P2, E, A7, MS, PO, 09, FS, A, B, I , J, L, LO, L5, LS, Y9, RO, Rl , R2, R3, KO, H 030 DIM F$C18:,0*C18D,E*C1003,G*C100D,L*C96:,N*C14],N0«C14D,E0*C28],N9*C14],W0* 22 D 040 DIM I$C4100],S*C100D,K9*i:480],K7*i:96D,09*C6:,K$C100],Bl*C100],P*C32:,PliE:23 P9$C40:,P7*C2: 050 DIM R0*C32D,R1*:96:,R2*C23,L9*C2D,C*:4:,A*C18], ZSC 1 3 , Z 1*[ 1 D , Z2*C1 3 055 DIM D4(32) ,F1 (32) 060 ON ERROR GOTO 1070 S' A=BTD ( " 1 " ) S' GOTO 1080 070 DI3P "No I/O rom" (5 BEEP S STOP 080 S=0 I? ON ERROR GOTO 1100 090 FOR 1=3 TO 10 i±' STATUS 1,0 ; Ali- IF A=2 THEN S=I i? 1 = 10 100 NEXT I 110 IF S=0 THEN BEEP li' DISP "No modem" i? STOP 120 T1=0 I? RESET S 130 K9*=" CONNECT AUTO-ANS ANSWER ORIG STEST " 140 K:9*=K9*S<" terminal DIAL REDIAL HANGUP TERMINAL 150 K9*=K9*&" ESCAPE BREAK PRNTrOFF direct trans-fer -frame connect' 1 60 K9$=K9*S< " TRANSFER SHOWF I LE CAT 170 K9*=K9$2." terminal ENDXFER UPLOAD DOWNLOAD FRAME 180 K9«=K9*?<" BITS: 7 ODD ERR: OFF terminal ECHO; OFF FLIP: OFF CR 190 K9$=K9*?." DIRECTORY DELETE RENAME LIST STATUS 200 K9S=K9«S-;"terminal LOAD ADD STORE " 210 09*="0FF0N " i? P9*=" NONE ODD EVEN ALWAYS 1 ALWAYS 0" 220 Y9,09,F2,D7,X0,P2,E,C4,L,L0,L5,K0,F8, A7,M8,H=0 6' K*, P7*, P*, L*, E*, F*, 0*=" " 230 PI =2 li' D8=4000 ! D8=LEN ( I*) -100 240 L9*=CHR*(13) 6' EO*="Line >200 characters ignored" •»' N9*="Name not -found" 250 WO$="Waiting -for connection" 260 ON ERROR GOTO 1270 •? LOADBIN "IPBIN" 270 OFF ERROR 6' CONTROL S,9 ; 225 280 HALT S i? CONTROL S,5 ; OH' CONTROL S, 14 ; 19,17,0ii' CONTROL S,ll ; 192 285 STATUS S,9 ; Ai? CONTROL S,9 ; BINIOR ( A, 128) 290 IF MS=0 THEN K9=l i? GOSUB 5300 300 CS=CHR* ( 1 53 ) SnnnnnnMii 78 1440 B=TIME I? IF B-22 THEN OUTPUT PI USING "tt,K 1540 ON ERROR GOSUB 1620 1550 STATUS I*, 1 ; A2 1560 IF A2=80 AND ERRN092 THEN DISP "Illegal entry" i? GOTO 1690 IF ERRN>=60 AND ERRNOO THEN DISP "File problem" l? GOTO 1690 IF ERRN>=30 AND ERRN<60 THEN DISP "Program input bu-f-fer over-flow" I? GOTO 16 DISP "System error "; ERRN; "at line";ERRL S' GOTO 1690 ERRN0131 THEN DISP "Mass storage/printer error"; ERRN; IF ERRN<30 THEN IF ERRN >= 123 AND ;ERRL I? GOTO 1690 1630 DISP "Input bu-f-fer over-run ! Data lost!" i? OFF EOT S i? GOSUB 3988 1690 BEEP li' ON ERROR GOSUB 1620 i±' RETURN 1700 DISP "Bad select code" © DISP "Printer o-f-f" i? P2=N0T P2 S' K9*C151,15 'at ;d="off 1710 1720 1 730 1740 TURN 1750 1 760 1770 1 780 1790 1 800 1810 1820 1830 1 840 1 850 1860 1870 1880 1890 1 9<50 IF K9=2 THEN GOSUB 5300 6' GOTO 1690 ELSE GOTO 1690 STATUS S,3 ; Ai? IF A MOD 2=0 THEN 1720 OFF TIMER# 3 i? STATUS S,9 ; AS' CONTROL S,9 ; A-i-4 C4=l I? S*="" I? IF LEN(L*)=6 OR L5=0 THEN RETURN ELSE L=l i? L0=1 6' L5=0 i? RE STATUS I$,l ; A2ii' I*=I*CD,A2: D=l S' GOTO 3960 K$=KBD* JO=FIND(K*) I? IF J0=0 THEN K=LEN(K*) i? GOTO 2480 N=NUM(K*[JO, J03) IF N=154 THEN K«=K*C 1 , JO-1 D&L9*S 84] = " CR - CR/LF I? K:9*C3a2,384: = "/LF" i±' GOTO 2210 IF N#132 THEN 2240 ELSE HALT S i? STATUS S,4 ; Ai? A=BINEOR ( A, 1 ) i? CONTROL S, 4+5) HALT GOSUB 5300 li' I? STATUS S,4 GOTO 2290 ! BITS ; Aii' B=A\8 MOD 8 li- B=BINI0R(B+1 2190 2200 2210 4 ; A 2230 K9*C327,327D=VAL*(A MOD 2240 IF N#133 THEN 2270 ELSE , 1 ) MOD 9 2250 A=BINIOR(BINAND(A, 199) ,B*a) 6' CONTROL S,4 ; Ai? B=(B+1)\2 2260 K9$C330,3373=P9*CB*8+l,B*8+8: li' GOSUB 5300 i? GOTO 2290 ! PARITY IF N#134 THEN 2410 ELSE HALT S t? STATUS S,9 ; A© B= (BINAND ( A, 8) +4) MOD 11 CONTROL S,9 ; BINEOR (A, 8) li' K9* C 343, 345 3=09* CB, 6+23 6' GOSUB 5300 ! ERRCHK IF C4=0 THEN 2470 HALT S li- TRANSFER S TO I* INTR 6' STATUS S*,0 ; A,Bii' IF AOB THEN TRANSFER S INTR IF K9=4 THEN 0*="" li' GOTO 2470 ELSE 2470 ! softkeys p5 5300 15 GOTO 2470 ! TERMINAL GOTO 2430 ! LOAD GOTO 2430 ! REPLACE GOSUB 5170 I? GOTO 2430 ! LIST GOTO 2470 ! STATUS 2270 2280 2290 2300 $ TO 2310 2320 2330 2340 2350 2360 2370 IF N=128 IF N=129 IF N=131 IF N=134 IF N=135 THEN K9=2 6' GOSUB THEN GOSUB 4450 6' THEN GOSUB 5120 i? THEN GOSUB 5290 li' THEN GOSUB 2710 li' 80 2380 2390 2400 24 1 2420 2430 2440 2450 2460 2470 2480 2490 2500 2520 25 1 2520 2530 2540 2550 2560 2570 2580 2590 2600 2610 2620 2630 2640 2650 27 1 N PR I 2720 2730 2740 2750 73 2760 2770 2730 2790 2800 2810 2820 2830 2840 2850 2860 2870 2880 2390 2900 IF N=132 THEN GOSUB 5250 li' GOTO 2430 IF N=133 THEN GOSUB 5290 i? GOSUB 4510 6' GOTO 2430 ! RENAME IF N=130 THEN GOSUB 5290 l? GOSUB 4590 & GOTO 2430 ! ADD BEEP 125,100 I? BEEP 60,150 i? GOTO 2470 BEEP 150,75 & GOSUB 5290 & GOTO 2470 IF 09=0 THEN 2290 ELSE ASSIGN* 2 TO * i? 09=0 & GOTO 2290 IF (CCP0S\32+1) MOD 64=CLP0S THEN CCURSOR CCPOS+512 IF CCP0S\32=(CLP0S+16) MOD 64 THEN CCURSOR CCPOS-512 K7$="" I? CD ISP K:7« ON ERROR GOTO 2480 6' K*=K*C 1 , JO-1 3&K«C JO+1 D i? GOTO 1780 GOSUB 2490 i? IF K*#"" THEN 1780 ELSE ON KBD GOSUB 1770 i? RETURN ON ERROR GOSUB 1620 i? IF Fa=0 THEN 2530 FOR X=l TO K I? A=NUM(K*CXj,X]) 6' IF (A>64 AND A<91 OR A>96 AND A<123)=0 THEN K*CX, X:=CHR*(BINE0R(A,32) ) NEXT X IF NOT K THEN 2640 OUTPUT S* USING "#,K" ; K*C1,K] RESUME S STATUS S*,3 ; A3ii' STATUS S*, 1 ; Al IF NOT A3 AND Al THEN TRANSFER S* TO S INTR IF NOT E THEN 2640 K7$=K*:i,K3 ij- CD ISP K7* ON ERROR GOSUB 1700 IF P2#0 AND Pl>2 THEN OUTPUT PI USING "#,K" ; K« IF P2#0 AND PI =2 THEN CPRINT K* ON ERROR GOSUB 1620 K*=K* C K+ 1 , LEN ( K* ) ] C RETURN ON ERROR GOTO 3055 li- CLEAR i? CAT t? GOSUB 5300 •? RETURN PRINT "Modcom status:" i? PRINT i? PRINT "Name "?<0*;ii' IF 0*="" THE NT "NONE" ELSE PRINT PRINT "Phone number "iiF%;5f IF P*="" THEN PRINT "NONE" ELSE PRINT PRINT "Logon sequence. . "&L*; i? IF L$="" THEN PRINT "NONE" ELSE PRINT PRINT "Echo ";!? IF E THEN PRINT "ON" ELSE PRINT "OFF" PRINT "Flip "&K9*C376,378] i? PRINT "Data bits "?.K9*[327, 32 J =330 I? IF K9*CJ,J: = " " THEN J =332 PRINT "Parity "?500 OUTPUT S$ USING "#,K" ; E« 5510 IF E THEN CDISP Bl* (? CDISP E* .520 TRANSFER S$ TO S INTR 3530 STATUS S«,3 ; A3ii' IF A3 THEN 3530 3540 IF P9#l THEN WAIT Y9 3550 RETURN 3560 X=LEN(I$) i? IF X=0 THEN 3560 ELSE Z2*=I*CX,X: 3570 IF Z2*=Z* THEN 3590 3580 IF Z2«<>Z1* THEN 3560 590 WAIT 500 li- GOTO 3430 3600 IF ERRN=56 THEN DISP EO* i? BEEP ti' GOTO 3490 3610 F2=0 I? IF ERRN=71 OR 72 THEN 3680 5620 D7=0 5630 IF ERRN=66 THEN DISP "File not opened ! "; 3640 DISP "No -file trans-Fer" S' BEEP i? X0=0 6- RETURN ■■660 DISP "Bad input ... Please reenter" i? BEEP i? WAIT 1200 3670 GOSUB 5290 U GOTO 3325 680 D7=0 li' X0=0 "? ASSIGNtt 1 TO * i? DISP "File transfer complete" i±' GOSUB 5300 690 IF NOT F2 THEN 3710 3700 ON ERROR GOTO 3710 i? F2=0 S' F3=l i5 BEEP 150,75 6' RETURN 3710 BEEP 150,75 i? GOSUB 5300 I? RETURN 3720 GOSUB 5290 li' BEEP i? DISP "No connection!" i? RETURN 3730 DISP "Trans-fer already in progress" & BEEP 9 RETURN 3740 ! Download 3750 IF C4=0 THEN 3720 3800 ON ERROR GOSUB 3980 3835 WAIT 30 i? HALT S M' STATUS S,9 ; Ai? CONTROL S,9 ; BINI0R(A,1) 3839 TRANSFER S TO I* INTR 3840 STATUS S*,3 ; A3i? IF A3 THEN 3840 3350 OUTPUT S* USING "#,K" ; CHR*(17) 3860 RESUME S 3870 TRANSFER S* TO S INTR 3830 RETURN ;890 ON ERROR GOSUB 3980 !;900 STATUS I*,0 ; Al,A2ii' P=POS ( 1$: Al , A2: , CHR* ( 10) ) i? IF P=0 THEN 3930 5910 ENTER 1$ ; Bl*ii' IF Bl*="" THEN Bi*=" " 3920 PRINT# 1 ; Bl$ S' GOTO 3900 3930 IF DOA2+1 THEN B1*=I$CD,A2] l? CDISP Bl$ 3940 I*=I*CA1,A2] 83 3950 D=LEN(I*)+1 3960 C0^4TR0L I$,0 3970 RETURN Hi' Al = l li' A2=0 li- 1$="" li- GOSUB 3950 i? F2=0 i»' 3980 DISP li' IF ERRN=72 THEN DISP "File too small GOTO 3680 3933 IF ERRN=114 THEN DISP "Input bu-ffer over-flow, data lost" ELSE DISP "Error" ERRN;"on line";ERRL 3995 3938 3990 4000 4010 4020 4030 4040 4050 4060 E ON 4070 4080 4090 4 1 <:)0 4110 4120 4 1 30 4140 4 1 50 4 1 60 4170 4 1 80 4 1 90 4200 4210 4220 4230 OTO 4240 4250 4260 4270 4230 4290 4300 4310 4320 4330 4340 4350 4360 4370 4380 4390 GOSUB STATUS ! EOT STATUS IF I#0 STATUS IF U0=1 ! show 3120 li- ON ERROR GOSUB 3980 li' 1*="" li' GOSUB S,9 ; Aii' CONTROL S,9 ; A+46' RETURN I$,2 ; I THEN ON EOT S GOSUB 4000 li' RETURN S, 11 ; UOii' G$=I$ li' 1*="" i? CONTROL OR U0=65 THEN RETURN ELSE E*=G* li' ■File I$,0 ; RETURN 5950 1,0 IF D7 THEN GOSUB 3730 li' GOTO 3160 ELSE D7,F2=1 1$="" li' GOSUB 3950 li' D4=0 i? GOSUB 2840 li' IF F*=' KBD GOSUB 1770 ON ERROR GOTO 4140 IF NOT D7 THEN 4210 READ# 1 ; Bl$ IF Bl*="" THEN 4210 DISP Bl* I? IF NOT P2 THEN 4080 ELSE ON ERROR GOSUB 1700 IF Pl>2 THEN OUTPUT PI ;B1* ELSE PRINT Bl* ON ERROR GOTO 4140 i? GOTO 4080 IF ERRN=71 OR ERRN=72 THEN 4210 IF ERRN=66 THEN DISP "File not opened" li' GOTO 4210 IF ERRN=64 THEN DISP "Empty -file" (? GOTO 4210 IF ERRN=62 OR ERRN=130 THEN GOSUB 3080 li' GOTO 4210 IF ERRN=56 THEN DISP EO* i±> BEEP li' GOTO 4090 ERRN>=60 AND ERRNOO THEN DISP "File in error THEN D7=0 I? GOTO 3160 ELS li' GOTO 4210 li' F2,D7=0 I? RETURN IF IF ERRN>=123 AND ERRN<=131 THEN DISP "File/printer" BEEP 150,75 li' B1$,F$="" i? DISP "*** End o-f -file ***" ! printer P2=N0T P2 li' K9*C151, 153:=09$CP2*3+l,P2*3+33 li' IF NOT P2 THEN GOSUB 5300 li' G 4360 I? A=I1\100 GOSUB 5290 i? DISP "Old select code is ";P1 i? ON ERROR GOTO 4370 i? INPUT A*ii' IF A*="" THEN I1=VAL(A$) li' IF IKl THEN 4340 IF IK 99 THEN B=2 li' A=I1 ELSE B=l A>10 THEN 4340 (A=l OR A=2) AND B=2 THEN 4350 A<3 THEN 4340 RIO (A, 0) =255 THEN 4340 A=S THEN 4340 4350 li' DISP "Invalid select code" DISP "New select code"; GOSUB 5290 6' GOTO 4360 IF IF IF IF IF GOTO BEEP li- WAIT 1200 li' GOTO 4240 •P1=I1 GOSUB 5290 li' RETURN DISP "Bad input" i? ON ERROR GOTO 4410 READ* 2,R ; N*ii' IF BEEP li' WAIT 1200 i? GOTO 4240 6' R=l I? ASSIGN* 2 TO "PHONE*' N«=NO* THEN A=l i? RETURN I? 09=1 ■■■■II1II1-I1-M11.—-W-.. — ■■■■■■ ■rww.....~-ll»inti«lip n 84 4400 IF N$#CHR*(255) THEN R=R+1 li' GOTO 4390 ELSE A=0 i? RETURN 4410 IF ERRN=72 OR ERRN=71 THEN A=0 i? RETURN 4420 IF ERRN=67 THEN DISP "Phone directory not -found" i? A=0 i? RETURN 4430 A=0 li' GOTO 3055 4440 READ# 2 ; P*, L$, PO, B, L9*, FB, EG' GOSUB 5200 i? 0*=N* li' DISP "Loaded" i? RETURN 4450 ! LOAD 4460 GOSUB 5290 li' ON ERROR GOTO 4460 6' DISP "Name";© INPUT NO*ii' IF N0*="" THEN 4 990 4470 GOSUB 4330 i? IF A=0 THEN DISP N9* i? WAIT 1200 6' GOTO 4460 4480 GOSUB 4440 li' L=0 ti' RETURN 4490 ! RENAME 4500 WAIT 1200 li' GOSUB 5290 4510 ON ERROR GOTO 4500 li' DISP "Name to change" ;ii' INPUT NO*ii' IF N0*="" THEN 4990 4520 GOSUB 4380 i? IF A=0 THEN DISP N9* i? GOTO 4500 ELSE B=R 4530 ON ERROR GOTO 4530 li' DISP "New name";ii' INPUT NO*ii' IF N0*="" THEN 4990 4540 GOSUB 4380 li- IF A#0 THEN DISP "Name already exists" li' GOTO 4500 4550 READ# 2,B ; R0$, R0$, Rl*, RO, Rl , R2*, R2, R3ii' PRINT# 2,B ; NO*, R0$, Rl*, RO, Rl , R2* ,R2,R3 4560 DISP "Name changed" i? RETURN 4570 ! ADD 4580 WAIT 1200 li' GOSUB 5290 4590 ON ERROR GOTO 4590 i? DISP "New name"; 4600 INPUT N0*ii' IF N0*="" THEN 4990 4610 ON ERROR GOTO 5000 li' N*=NO*' i? ASSIGN* 2 TO "PHONEtt" i? A,R=0 i? 09=1 4620 R=R+1 li' READ* 2,R ; Bl«ii' IF B1*=N* THEN DISP "Name already exists" i? GOTO 4 580 4630 IF Bl^Cl, n=CHR*(12a) AND A=0 THEN A=R i? GOTO 4620 4640 IF B1*C1, 1D#CHR*(255) THEN 4620 4650 IF A=0 THEN A=R 4660 R=A 4670 CLEAR 4630 DISP "Current phones" i? IF P*="" THEN DISP "NONE" ELSE DISP P* 4690 ON ERROR GOTO 4915 (? DISP "New phone" ;ii' INPUT RO*ii' IF R0*="" THEN RO*=P* 4700 DISP "Current logon:" i? IF L*="" THEN DISP "NONE" ELSE DISP L$ 4710 DISP "New logon i? IF Rl=-1 THEN 4770 4780 K7$="7ii'8ii'" i? A=BINAND (PO, 3) -2 li' DISP "Current data bi ts: " ; VAL* (A+7) 4790 DISP "New bits";ii' R2=FNI (A) li' IF R2=-l THEN 4790 ELSE PO=BINAND +A*8 4850 DISP "Current error check: ";i5' B=BINAND (B, S) \S li' IF B=l THEN DISP "ON" ELSE 85 DISP "OFF" 4360 K7$="0FFii'0Nii'" 4S70 DISP "New error check";ii' A=FNI (B) i? IF A=-l THEN 4870 ELSE B=A 4380 DISP "Current EOL:";ii' IF LEN(L9*)=2 THEN DISP "CR/LF" i? R3=l ELSE DISP "CR" I? R3=0 4390 K7$="CRi?CR/LFii'" i? DISP "New EOL";ii' A=FNI (R3) i? IF A=-l THEN 4890 4900 IF A=l THEN R2*=CHR* (13) S.CHR* ( 10) ELSE R2*=CHR*(13) 4910 PRINT# 2,R ; N$, R0$, Rl*, PO, B*a, R2*, Rl , RO i? DISP "Saved" i? GOSUB 5300 i? RETU RN 4915 BEEP I? DISP "Phone number too long" i? WAIT 1200 li' GOTO 4690 4920 DEF FNI (X) 4930 Bl$="" I? INPUT Bl$ii' B1*=UPC* (Bl*) li' IF Bl$="" THEN FNI = X i? GOTO 4930 4940 11 = 1 I? 1 , 10=0 4950 IF I0=LEN(K7*) THEN FNI=-1 i? GOTO 4980 4960 I0=P0S(K7*:il,LEN(K7$) :, "ii'")+Il-l i? IF 10=0 THEN FNI=-1 i? GOTO 4980 4970 IF K7*CI1, I0-13=B1$ THEN FNI = I i? GOTO 49S0 ELSE 1 = 1 + 1 i? 11 = 10+1 li' GOTO 4950 4930 FN END 4990 BEEP 150,75 i? GOSUB 5290 S' RETURN 5000 IF ERRN#67 AND ERRN#72 AND ERRN#71 THEN GOTO 3055 5005 IF ERRN=71 THEN PRINT# 2,R ; CHR*(255) i±' R=R-1 i? GOTO 4620 5010 IF ERRN=72 THEN 5050 ELSE DISP "Phone directory doesn't exist." 5020 DISP "Do you want to create it(Y/N)";ii' INPUT Bl*ii' IF Bl$="" THEN BEEP 150,7 5 li' GOTO 5290 5025 B=P0S("YN",UPC*0 THEN CLINE CLPOS+J 5320 CCURSOR CLP0S*32+32*13 6' K7«=K9*CK9*96-95, K9*96: i? CWRITE K,7$ li' CCURSOR B i? RETURN 5330 ON N-127 GOTO 5380,5340,5950,5810,5560,5670,5540,5720 5340 ! DIAL 5350 GOSUB 5960 li' IF H THEN 2470 5360 OFF TIMER# 3 i? S*=PS ip GOSUB 5930 i? IF P*="" THEN P*=S* i? GOTO 2420 ELSE PI *=P*C1, i: 5370 IF Pl*="ii'" OR P1*>="0" AND Pl*< = "9" THEN L5=0 i±' L$,0*="" i? GOTO 5400 5330 N0*=P*C1,MIN(14,LEN(P$) ) : i? GOSUB 4330 li' IF A#l THEN DISP N9$ i? P*=S* li' WAX T 1200 li' GOTO 5350 5390 GOSUB 4440 li' L5=l 5400 IF P$#"" THEN GOSUB 5410 i? GOTO 5530 ELSE DISP "No phone number" i? BEEP li' W AIT 1200 li' GOSUB 5290 i? GOTO 2470 5410 Bl^t="Dialing " li' CWRITE Bl* i? K:0=0 i? K*=" ! " li' ON KBD GOSUB 5500 5420 CONTROL 3,2 ; 6ii' WAIT 2000 i? H=l 5430 FOR 1 = 1 TO LEN(P*) li' IF KO THEN RETURN 5440 P1*=P*CI, i: 5450 IF Pl*="ii"' THEN CWRITE PI* li' WAIT 2000 i? GOTO 5490 5460 K=NUM(Pl$)-43 li' IF K<0 OR K>9 THEN CWRITE Pl$ i±' GOTO 5490 5470 CWRITE PI* i? IF K=0 THEN K=10 5430 FOR J = l TO K i? ASSERT S;5 <$ ON TIMER# 3,51 GOTO 5482 5431 GOTO 5431 5432 ASSERT S;6 i? ON TIMERtt 3,25 GOTO 5484 5433 GOTO 5483 5434 OFF TIMERtt 3 li' NEXT J i? WAIT 700 5490 NEXT I li- DISP li' ON KBD GOSUB 5520 li' RETURN 5500 K*=KBD* li' IF K*=CHR*(131) OR K*=CHR* ( 139) THEN K0=1 i? K*=K*?.LEN(L$) OR L<=0 OR L0=0 THEN RETURN 6000 STATUS S$,0 ; RO.RHi' IF ROttRl + 1 THEN RETURN 6010 IF A2>=D THEN RETURN 6020 ON POS ( " ( PWE " , UPC$ ( L* C L , L 3 ) ) + 1 GOTO 6030 , 6050 , 6090 , 6 1 20 , 6 1 80 ,6135 6030 DISP "Invalid char in logon: ";L$CL,LD li' L=0 i? L0=0 li' RETURN ^040 ! " ■: " 6050 LS=L-1+P0S(L$CL,LEN(L*) 3, ") ") li' IF L8=L-1 THEN L8=LEN(L$) 6060 K$=K$.?.-L*[L-^-l,L8-l] li' IF ' L*CL8, L8] = " ) " THEN K$=K*?.L9* 6070 ON ERROR GOSUB 1620 li' K=LEN(K*) li' GOSUB 2530 i? IF LOO THEN L=L8-(-l ELSE RETURN 6030 ' "P" 6090 IF LOO THEN DISP "Logon paused. - to proceed" li' L=L+1 li' L0=0 6100 RETURN 6110 ! "W" li' TRANSFER S$ TO I I I I I 1$="" li' GOTO 5 I* li' 1$="" li' GO 5820 5830 5340 5350 5360 5870 5330 5390 5900 59 1 5920 5930 5940 5950 5960 5970 5980 5990 GOTO 2470 ; 4ii' H,L5,C4=0 li' L5=l li' GOTO 5400 li' RETURN -nrnrifwnnnnnnnnnniiB 88 6120 IF POS( "0123456789", L$CL+l,L+i:)=0 THEN ON SGN(L)+1 GOTO 6100,6030 6130 IF L=0 THEN RETURN ELSE L8=VAL (L*EL+1 , L+1 J) i? L=L+2 6140 IF L8=0 THEN L8=10 6150 IF L=0 THEN RETURN ELSE ON TIMER# 3,L8*1000 GOSUB 6160 i? L0=0 i? RETURN 6160 OFF TIMER# 3 i? L0=1 r? RETURN 6170 ! "E" 6180 IF L=0 THEN RETURN ELSE L=L+1 i? K*=K$SY THEN 3680 7130 READ# l,J7+2 ; T, D, Fl ( ) , D4 ( ) 7140 Kl=l 7150 B1*=VAL$(D)S.". " 7160 GOSUB 6200 7170 B1$=B1*?A .^^\c:^/^'e. Z.^^i^.'^ • • 5 \ ' A,'o t<^ /^ »*l^fei". *>^ 1-^ ,h ■J^^r. •{ o • "'^j^ A*^ *• ./"-*. <^. A^ , w ' » ^ >^ ^AO^ '^^ * o « o -^ ^ r« "^ ^^ / \-!^^A^ %-'o<^i^\G^^ V*^ v-o^ J.- ^^»^^_,^ ■'^^,^- oV^^^a'- '^bv^' -'.^^^^'. ■"•^^.^^ o-^*^^^!^'-. V..-^ * ^-^^ 4 o • "^ A?' ^J^:^^" <^ «i ^ft'?!.^,,*^ "^ AT *■ ,G^ %b ^.-T.** v'^ ^ A .'■"'. Y^^ '>bv^' ^'M^^\ ^^Mc^' ^^^&k^ -^^^^ '^mm>^\ ^^M^^ > .0^ ^AO^ bV 3s? -7% '>o^ \ /' /.M^ ^%/^ ^^lfe"» x/' »»' ^\/^ «», \/ '^<^, .V -ov^ :^^'^ '^^0^ r^'^a': -ov^^ ^^^'% '^^/ /\ ^'^/ ^^'\ '^S /\ ~- ^'■ V '^ * o « •^ -^ '^0^ •^^ . ':^o^ h' „ ■•' <5,^ 'bV" ^4- "V * . o - 0,> J" \, '^ .^ O" O, V \^ t? .0 ..s ' • /■ ■■ y\ "-IP.- /\ .j5°*> « ^,> '^bV^' :^m^^\ '^^r