NBSIR 75-692

A Minicomputer-Based System for the

Measurement and Analysis of

Community Noise

R. L. Fisher. D. S. Blomquist, J. S. Forrer, D. M. Corley

Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

May 1975

Final Report

Prepared for Bioacoustics Division

U. S. Army Environmental Hygiene Agency

Aberdeen Proving Ground, Maryland 21010

NBSIR 75-692

A MINICOMPUTER-BASED SYSTEM FOR THE

MEASUREMENT AND ANALYSIS OF

COMMUNITY NOISE

R. L. Fisher, D. S. Blomquist, J. S. Forrer, D. M. Corley

Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington. D. C. 20234

May 1975

Final Report

Prepared for Bioacoustics Division U. S. Army Environmental Hygiene Agency

Aberdeen Proving Ground, Maryland 21010

U.S. DEPARTMENT OF COMMERCE, Rogers C.B. Morton. Secretary

NATIONAL BUREAU OF STANDARDS. Richard W. Roberts. Director

TABLE OF CONTENTS

Page

1. Introduction 1

2. System Description 2

3. Description of Interface Hardware h

h. Description of System Software 8

k.l. FORTRAN and Assembly Language Software for the

Minicomputer-Based Community Noise System and

Real-Time Analyzer Interface System 8

U.1.1. Conversational FORTRAN Programs for Calibration

and Use of the Community Noise Measurement System. 9

^.1.2. Assembly Language Subroutines 10

k.l. 3' Test Programs for the Community Noise/Real-Time

Analyzer Interface (Plus Real-Time Analyzer

Subroutine Driver) 13

U.l.i+. Typical Output Listings ih

k.l. 3. Procedure for Loading Programs — "CHECK",

"NOISE", "TCLOK" and "TRTAl" 19

k.l. 6. Interface Software Commands 20

h.2. FORTRAN Software for the Analysis of Community Noise Data. 23

k.2.1. Nine-track Tape Translation Program 23

I+.2.2. Calcomp Plot Program 25

5. Appendix A. Program Listings and Flow Charts for Conversational

FORTRAN Calibration and Community Noise Programs. . 26

6. Appendix B. Program Listings for Assembly Language Subroutines. kQ

7. Appendix C. Program Listings for Interface Test Programs and

Real-Time Analyzer Assembly Language Driver .... 85

8. Appendix D. FORTRAN Software Listings for the Analysis of

Commvinity Noise -Data 97
,'1 '

On.:- 'i;
A Minicomputer-Based System for the Measurement

and Analysis of Community Noise

R. L. Fisher

D. S. Blomquist

J. S. Forrer

D. M. Corley

An operating system for the measurement and analysis of community noise

vas turned over to the Arny for their use in February 1975, thus accomplishing the trajisfer of technology developed by NBS to the Bioacoustics Division,

U. S. Ariry Environmental Hygiene Agency. This report doc\aments the hardware

and software packages prepared by NBS in support <pf this system.

1. INTRODUCTION

The Applied Acoustics Section, Mechanics Division, of the National

Bureau of Standards developed a specialized minicomputer-based system for

the measiorement and analysis of community noise. Since the system originally

was developed for in-house use, the hardware and software were in a form

that could only be fully utilized by members of the section who were intimately fajniliar with the operation of the system.

The Bioacoustics Division (BAD) of the U. S. Army Environmental Hygiene

Agency, Aberdeen Proving Grounds, required similar measurement and analysis

capability to effectively cariy out its mission; however, their system

would have to be in a form that could be used by personnel not possessing

an in-depth familiarity with measurement systems or computer software.

In May 197^ j a program was initiated at NBS under BAD sponsorship. The

overall objective of this program was the transfer of the technology of

measurement and analysis of community noise developed by NBS to BAD. NBS

provided the technical expertise in assisting BAD in assembling and documenting such a system and provided the following hardware and software packages

:

(l) software for sampling community noise levels, (2) software for processing

coramimity noise data, (3) utility software programs, (U) community noise interface hardware, and (5) real time analyzer interface hardware and appropriate

software driver.

An operating system was tiirned over to the Array for their use in

February 1975- This report documents the hardware and software packages

developed by NBS. The documentation includes:

explanation of the hardware and its interaction with the

software

,

block diagrams to aid iinderstanding of the system and

facilitate any future system modifications

,

sample calcixLations for testing and diagnostics,

user instructions.

1
2. SYSTEM DESCRIPTION

The community noise measxirement system developed by NBS for the Bioacoustics Division was designed to be essentially a "turn-key" data acquisition and analysis system. The hardware portion of the system is comprised

of commercially produced analog equipment (microphones, measuring amplifiers,

etc.), an interface designed and fabricated by NBS, and an off-the-shelf

minicomputer together with its digital peripheral devices.

The input to the present system consists of two microphones which monitor

the acoustic environment to be studied and an jptional wind sensor for

monitoring wind speed during data acquisition.—

Once the proper programs (see Section ^i.l. for description of software

and loading instructions) are loaded, the minicomputer operates as a hardware controller, sampling and storing the A-weighted sound levels (in

decibels re 20 yPa) for both acoustic data channels every 0.1 second. After

a minute of^data (600 samples) has been stored, the minicomputer writes the

data on IBM— compatible digital magnetic tape for later analysis. It should

be noted that a 731-5 metre (2^00 foot) digital magnetic tape can store

approximately 50 hours of community noise data. Every ten minutes the

minicomputer prints out a summary line statistical descriptors of the

community noise — L, , L^^, L^. and L — (for a ten minute interval) — 1 10 50 eq on the Teletype, thus providing an indxcation of overall system operation.

These line summaries which include the tape number, time of day, A-weighted

sound levels, etc., are formatted such that they can conveniently serve as the basis for an accurate data log.

The complete data tapes can be processed on a Univac 1108 computer system

which utilizes FORTRAN programs (described in Section h.2.). Once analysis

is complete, the community noise data can be produced in tabular and/or

graphical form.

— The system design provides the capability for expansion to a maximum of

eight channels of analog data.

2/ — Certain commercial equipment, instriiments , or material are identified in

this report in order to adequately specify the BAD system. In no case

does such identification imply recommendation or endorsement by the

National Bureau of Standards , nor does it imply that the material or equipment identified is necessarily the best available for the purpose.

—3/

is the A-weighted sound level which is exceeded 1 percent of the time.

is the A-weighted sound level which is exceeded 10 percent of the time.

Both and L.^^^ are often used to represent the higher-level, shorter-duration

sounds. L IS the A-weighted sound level which is exceeded 50 percent of

the time. L is the energy equivalent A-weighted sound level.

2
Except for brief periods (generally 7 seconds every 10 minutes) vhile

the Teletype is printing out the data line summaries, the A-veighted sound

level (in decibels re 20 yPa multiplied by a factor of ten) for either

channel 1 or channel 2 (selectable by a switch on the front panel of the

interface) is digitally displayed (four digit display) on the front panel

of the interface for the convenience of the experimenter. These A-weighted

sound levels will typically agree very closely with the analog meter readings

of the measuring amplifier for the appropriate channel and therefore provides on the spot confirmation that the procedures for system calibration

were correctly followed.

The computer interface designed and fabricated by NBS also contains

a time-of-day clock, which the minicomputer interrogates once each minute

(and stores the time to the nearest second), and a Briiel and Kjaer one- third-octave-band real-time-analyzer controller which is functionally

independent from the community noise system.

Using a software driver (see Section i|.1.3) the real time analyzer can be

sampled to obtain the root mean square (rms) value of the level in each

one-third octave band from 12.5 Hz to hO kHz (if these filters exist in the

real time analyzer) , a selected weighted sound level and the overall sound

pressure level (linear) at the output of the analyzer in binary coded

decimal (BCD) code. A FORTRAN controlling program (not supplied by NBS) could

be written to store these data and dump them on to digital magnetic tape for

later processing and plotting by a large computer system.

The four digit hexidecimal display on the front panel of the interface

which was discussed earlier is independent (hardware wise) from the remainder

of the system; therefore, it can be utilized to display up to four hexidecimal

digits of information on command from the minicomputer.

Field experience pointed out the necessity for a fast-acting 117 v A.C.

power line conditioner to protect the system from power transients and offset the effect of power brownouts on the computer system. This feature was included in the BAD system. In the event of a longer term (greater than a few milliseconds) power outage that cannot be handled by the conditioner,

a power-fail-safe software driver was written by NBS to provide, in conjunction with minicomputer hardware, for orderly shutdown of the central processing unit (CPU) during power failure and a resixmption of the program

when power is restored. Long term power outages result in the complete shutdown of the minicomputer's digital magnetic tape system. The power-failsafe hardware-software cannot restart the tape system after it shuts down. When

the tape unit goes down one must follow the normal manual start up procedures

.

The remainder of this report will concentrate on the details of the

hardware and software packages developed by NBS.

3
3. DESCRIPTION OF INTEBFACE HARDWARE

The system developed for the Bioacoustics Division has two channels

for acoustic data and one channel for wind data. The two acoustic channels

have an input impedance of 68 Kft and have a voltage range of 0 to i+. 5 volts.

The windsensor input has an input impedance of 500 KQ, and an voltage range

of 0 to ^ volts . The windsensor input has RC integration for smoothing of

data. The time constant is 500 milliseconds. The windsensor is a small

full wave rectified alternating current generator driven by a conventional

3 bladed anemometer. ;

Additional channels may be added by inclusion of a buffer amplifier,

sample and hold module, timing changes and software changes for each channel

added. Maximum expansion of the system — eight channels — would also require

an expansion of the interface memory capacity.

In addition to the community noise measurement system, the interface

also contains the necessary logic to allow a Briiel and Kjaer one-third octave

band real time analyzer (model 33^7) to be coupled to the minicomputer.

This section contains a simplified explanation of interface operation.

For clarity, the minicomputer as well as the commercial analog equipment

are shown in the block diagram (Figure l) describing interface components.

The input signal from the RMS detector log converter is the logarithm of

the A-weighted root mean square (rms) value of the acoustic signal and is

buffered by the input amplifier. The buffered signal is fed to a sample and

hold module. System timing and control is maintained by a programmable read

only memory (PROM) . This PROM is addressed by an eight stage covmter which

is controlled by the crystal controlled oscillator in the tlme-of-day clock.

The PROM strobes the sample and hold module ten times per second. The

output of the sample and hold modiile is fed to a multiplexer (MUX) and then

through a buffer amplifier to an analog to digital converter (ADC).

The timing sequence is as follows:

. . .1,. : The sample and hold module is strobed and the data are held

on the storage capacitor.

2. After the data have settled on the hold capacitor (10 RC time

constants) the input channels are multiplexed to the ADC.

3. The ADC is strobed to start conversion.

The analog signal is converted to a 10 bit digital word by the ADC. The

10 bit ADC results in a quantization error of 0.05 dB when the analog signal

is sent to a Briiel and Kjaer measuring amplifier type 260T and the log, dc

,

output is connected to the interface. The end of conversion pulse from the

ADC stores the digitized voltage and a channel number in a 12 bit by 320 word

asynchronous first-in/first-out (FIFO) memory. The purpose of the memory is

to allow the computer enough time to perform the necessary calculations and

"house keeping" without loss of data. The minicomputer is interfaced to the

FIFO memory on an interrupt basis.

4
z ^ ^ — — o oc o

*-°'±

CO CO 2 LI. oc cc UJ — I

C9

—I oc

u

O

O < UJ

Q < a o I

LL. a.

CCUJXUJI X

a. 3I I

COI I

CD <

OS- UJ >- CJ ^ <o

I— or - s < « i 5^ ° ^ 52 * < ca o — Ui < a 2 Q

CO I I 2 £ ^ »— >- 2cc

_i

—' »— < < z

LU Z O CC < o /

CD <

CO o

C9 co CD

Q_ < Q. O ^ S <=C <

cj— - UJ On- IS 5 = £ < Q.

oc <^ < O UJ — O OC

SE z a. ///

UJ>< UJ

(—o 1— CC

LU

aoc <

LYZI UJ

cc <

1— z 1 a < UJ < o CQ

ocoCO

CO

<4-l o

COcoH

•Uoc

<+-! . in

J-l pq2 co

•H XI w <U

nJ 4J x: CO a U e •H

q;

4-t •H

IS

C

cc

4-1 -13 m OJC

(30 •H

4-1 CD C cu

(U0

0)M CD 3 CU CD c

TO a—

J

<u iH 6

13

(U CU

CO •H CO O cc c TJ

>^ 0)

4-J Xi

•H 4-1 c c

•H

g x: o 4-1 o •H

15C

•H o o

CO

COe cuo

>-( cc

(50 <4-l cd !-J •H CU

4-1 c ^ •H

CJO CU rH

4J

(U

J-l 3

bO

•H 5
The system also includes a CMOS time-of-day clock, which is read by

the minicomputer once each minute. The time base for the clock is crystal

controlled. The format of the clock is 2U hours with six BCD digits for

hours, minutes and seconds. The clock has a battery powered standby mode

which allows for clock operation for a minimum of 1 hour without external

power

.

The accuracy of the time-of-day clock is governed by the tolerances

supplied by the crystal manufacturer:

Initial value within 5 ppm (parts per million).

2:. Aging per year equals 2 ppm or less. >

3v Temperatures from 10°C to kO°C will cause additional errors up to 8 ppm.

Using a worst case assumption for each of the three factors (l5 ppm), the

total error in one year if the clock were not reset would be T'9 minutes

(about 1.3 seconds per day). After the crystal is one year old, the total

drift over a hQ hour period at 20°C would be less than 0.6 seconds (T ppm).

In December 197^ "the crystal oscillator in the clock in the BAD interface was found, in actual laboratory tests, to be acciarate to within 5 Ppm

of the nominal specified frequency value at 20°C.

As stated earlier, the system also has the necessary logic for reading

out the data from a Br\iel and KJaer one-third octave band real time analyzer

(RTA) . The 3 1/2 digits from the analyzer are accompanied by two status

' bits for indicating underrange and overload. In this case, underrange is

defined as a level that is less than the RTA's internal reference level while

overload is defined as an overload of the analog input amplifier.

On the front of the interface panel there are two displays which allow

for operator control — a time-of-day display and an accumulator display.

The time-of-day display shows the time of day in hours, minutes and seconds on a six digit display in 2k hovor format. The acc\im\ilator display shows

the accumulator contents (l6 bits) on a four digit hexidecimal readout. A

single computer instruction is required for the display and the data are set

in latches such that the data will be displayed \intil new data are received.

The time of day is set by use of the hold, slow and fast switches. The

hold switch stops the clock, the slow switch advances the clock at a one minute per second rate and the fast switch advances the clock at a one hour

per second rate.

Front panel switches also include an external sense switch for computer

control and a power switch to disable the battery power for the time-of-day

clock. When the computer is to be turned off for more than one hour, the

6
"battery power should also be turned off to avoid completely discharRinp: the

batteries

.

There are three switches on the back of the interface. The purpose

of these switches is for trouble shooting the hardware and software. All

the switches are debounced to eliminate multiple pulses. The Master Reset

switch clears the interface memory of all data and resets the PROM to the

first location. There are two switches for either shifting data into or out of the memory.

7
k. DESCRIPTION OF SYSTEM SOFTWARE

This section and the appendices document the FORTRAN and SYM II (assembly

language for this particular l6-'bit minicomputer [Raytheon TOU]) assembly

language software for the minicomputer-based community noise system and realtime analyzer interface system as well as the FORTRAN software for the analysis of community noise tapes. The documentation includes program listings,

overall block diagrams, test programs to be utilized for diagnosis of system

problems and typical examples of the output from the main FORTRAN programs.

^.1. Fortran and Assembly Language Software for the Minicomputer-Based

Community Noise System and Real-Time Analyzer Interface System.

The operation of the minicomputer-based data acquisition system is discussed from a software point of view in this section. The level of explanations

assumes familiarity with programming in conversational FORTRAN and SYM II—

assembly language. -

In general, two main FORTRAN programs and their respective subroutines

must be loaded into the minicomputer and be operable in order to be able to

acquire a possible eight channels of data on digital magnetic tape (for

later analysis utilizing a large computer system such as the Univac IIO8 at

the National Bureau of Standards). It should be noted that substantial changes

to both the hardware interface and to the software would be necessary for

expanding the present system (2 channels) to a maximum of eight channels.

The first main program is called "CHECK". Once the "CHECK" program is

loaded (see Section h.1.3' for loading procedures) the measuring amplifier

(Briiel and Kj aer 26OT) provides the output for acoustic data channel 1 and is

manually stepped over its entire 50 dB range and a linear fit is performed on the resulting digital values received by the minicomputer from the community

noise interface using the method of least squares. This procedure determines

the factor relating analog A-weighted sound levels in decibels (re 20 yPa) to

the digital values transferred to the minicomputer via the community noise

interface. The process is repeated for acoustic data channel 2 and a calibration paper tape is automatically punched out for use in the "NOISE" program.

The second main program, called "NOISE", (l) receives and buffers the

digital values which are proportional to the output values of the measuring

amplifier, (2) converts these values to exact decibel values and (3) writes

the community noise data on digital tape. The reference decibel value is

maintained in the program by periodic application of a pistonphone calibration

on the microphone for each acoustic data channel.

If either of the two main FORTRAN programs malfunction, the Raytheon

supplied diagnostic programs-^ — CPU 30, 31 » etc. — and the system interface

—'^"Raytheon 70^+ Users Manual"

Raytheon Data Systems

1U15 Boston-Providence Turnpike

Norwood, Massachusetts 02062

page 8b. 12

—'''Raytheon TOU Users Manual, page Q.Qh

8
test programs vritten "by NBS (outlined in Section i+.1.3.) should be run to

determine whether the fault lies in the central processing unit (CPU) or the

interface.

U.1.1. Conversational FORTRAN Programs for Calibration and Use of the

Community Noise Measurement System

The measuring ajirplifier (Briiel and KJaer 260T) used in the BAD commimity

noise system has a dc output that is directly proportional to the logarithm

of the root mean square (rms) input voltage. This dc output is connected

to an analog multiplexer Cfor switching channels) and then to an analog to

digital converter in the community noise interface. Therefore, the digital

output of the interface is also directly proportional to the logarithm of

the rms input voltage of the measuring amplifier. Once the values for

f and c in the following equation have "been determined, the "NOISE" program

will directly compute the A-weighted sound level (SPL) in decibels (re 20 yPa)

from the raw digital values transferred from the interface to the minicomputer.

SPL = fD + c (1)

where D = raw digital value from the community noise interface

f = slope of the least squares curve fit discussed in Section h.l.

c = constajit based on the pistonphone level.

The conversational FORTRAN program called ""CHECK" in conjunction with

the manual switching of the input attenuator of the measuring amplifier

(previously discussed in Section ^+.1.) establishes the f values for both

acoustic data channels. (See appendices A and B for program listings).

The procedure to use is as follows:

1. Load "check" program using one of the methods outlined in Section

i+.1.5. of this report.

2. Follow the directions provided by program "CHECK" which are typed

on the Teletype.

3. Save the listing produced by the "CHECK" program for future reference. Save the paper tape punched for later use by the "NOISE"

prograjn.

The conversational FORTRAN subroutine "ORTH" is a least squares cvirre

fitting routine using orthogonal polynomials. The "CHECK" program calls

subroutine "ORTH" to perform a first order (linear) fit on the array of measuring amplifier input values (0 to 50 dB) versus an array of raw interface

value (O to 1023) solving for c and f in equation (l) . The values of f

for both acoustic data channel 1 and acoustic data channel 2 are punched on a paper tape (along with the year, day and time) by the "CHECK" program for

later use in the "NOISE" program. The values for c are not stored because

c will be determined by pistonphone calibration and measiiring amplifier gain

settings in the "NOISE" program. The flow diagram for the "CHECK" program

is presented in Appendix A.

9
The "noise" program conducts a two-channel coiranunity noise survey by

sampling the acoustic data channels and the optional wind data channel at a 10 Hz rate. Once a minute, the noise data (A-weighted sound level in

decibels re 20 yPa) and the msucimum wind speed are written on magnetic

tape for later analysis.

The procedure for using the "NOISE" program is as follows:

1) Load "noise" program into the minicomputer using one of the

methods shown in Section i+.1.5. of this report.

2) Follow the directions given by the "NOISE" program in the

Teletype printout.

3) After the program is routinely recording data on magnetic tape,

a new pistonphone calibration can be initiated by putting sense switch 1 up on the CPU. Similarly putting sense switch 2 up will

request a new 260T gain setting.

k) Save the listing produced by the "NOISE" program as a data log

for the data stored on the magnetic tape.

The "noise" program will print out L^, L-,q> Icq and every ten minutes

on the system Teletype. (These values are not recSrded on^She magnetic tape).

The Teletype printout forms a valuable record of the data recorded on the

magnetic tape. L is a useful guide for determining the proper input attenuator settings for the measuring amplifier. Set the measuring amplifier attenuators so that the value of is within 10 dB of full scale on the measuring

amplifier. These L. values (calculated on fixed 10 minute intervals) will

not agree exactly with L. values calculated by a box car averaging method

in the program described in Section h.2. The flow diagram for the "NOISE"

program is presented in Appendix A.

"TOGLE" is a conversational FORTRAN subroutine used by both the "CHECK"

program and the "NOISE" program to detect sense switch 0 changes signaling

a user response.

^.1.2. Assembly Language Subroutines

' ^ a. Siibro-utine "STEM l"

Main programs such as "CHECK" and "NOISE" and their subroutines can be

added to the normal Raytheon systems tape as described in Section k of the

Raytheon Magnetic Tape Operating System Manual— . Developing this normal

systems tape is time consuming and calling the required programs under "XRAY"

control would be a lengthy process. To avoid this problem and in addition

avoid operating exclusively with long paper tapes the "STEM l" program was written. (See appendix B for program testing.)

— "Magnetic Tape Operating System"

Raytheon Data Systems

1U15 Boston-Providence Turnpike

Norwood, Massachusetts 02062

10
When called by a conversational FORTRAN program, "STEM l" checks to see if sense switches 0, 1, and 2 are up. If these switches are up and the magnetic

tape is "write enabled", a small loader and a complete core image d\imp will

be written on magnetic tape thus developing a "special" systems tape. The

program on the special systems tape can be called into memory by:

1. Mounting special tape in the magnetic tape drive and bringing

the tape to load point (BOT) and on line.

2. Push RESET on the CPU.

3. Push magnetic tape LOAD button N times where N equals 1 plus 2

times the nmber of programs ahead of the desired program on magnetic tape.

h. Push RUN on CPU.

5. Push RUN on CPU.

b. Subroutine "DATA"

This program establishes interrupt level 5 linkage which allows data

to be brought into the computer from the interface. (Subroutine "INTL" must

also be called to enable interrupt level 5 thereby starting actual data transfer. ) "data" makes the instantaneous values of the wind channel, acoustic data

channel 1 and acoustic data channel 2 available for use in the main FORTRAN

program at a 10 Hz rate. Program "CHECK" utilizes the "DATA" subroutine to

input raw interface data for curve fitting and to send these data to the

interface display. Program "NOISE" utilizes the "DATA" subroutine only for

pistonphone calibration and does not send any data to the interface display.

(Program "NOISE" uses subroutine "DISP" to send A-weighted sound level data

to the display.

)

c. Subroutine "LFD"

Program "NOISE" cannot convert raw interface values to actual A-weighted

sound levels in decibels (re 20 yPa) while the Teletype is typing. Therefore, typing time must be minimized. By calling subroutine "LFD", the "NOISE"

program can space up to ten lines per second instead of two lines per second

when utilizing normal Raytheon formatting. When called by a conversational

FORTRAN program, subroutine "LFD" sends a line feed character to the Teletype causing the paper to space up by one line.

d. Subroutine "P0WF5"

This subroutine provides for the orderly shutdown of the central processing unit (CPU) with no program loss in the event of power interruption. When

power is restored, "P0WF5" sends a master reset signal to the interface and

the system returns to the program that was in progress when the power failure

occurred. If the power is off for more than a few milliseconds, the magnetic

11
tape unit will shut down and manual intervention is required to prepare it

for operation. If "bit 5 of word X'UB' was set prior to the power failure

(by "INTL" subroutine), "P0Wr5" would reenable interrupt level 5 when power

was restored.

e. Subroutine "MULTl"

The "NOISE" program utilizes subroutine "MULTl" to allow the values for

the wind channel and the two acoustic data channels to be transferred from

the interface to the minicomputer during actual data collection. (Program

"NOISE" utilizes subroutine "DATA" to bring in raw data during pistonphone

calibration. ) Subroutine "MULTl" fills a 1200 word array — one minute of

data — with raw data from acoustic data channels 1 and 2. Subroutine "iNTL"

must be utilized to enable interrupt level 5 before subroutine "MULTl" can transfer data from the interface to the minicomputer.

f. Subroutine "MMON"

Subroutine "MMON" modifies the Raytheon supplied operating software so that it will not continuously write out MO, MO, on the Teletype when

the magnetic tape unit shuts down.

. ,

, g. Subroutine "DMAMAG"

Subroutine "DMAMAG" checks the direct memory access (DMA) magnetic tape

"unit status and returns the status to the calling conversational FORTRAN program. It is particularly useful for locating end of tape (EOT) and for

determining whether or not the magnetic tape is "write enabled".

h. Subroutine "iNTL"

Subroutine "iNTL" is used to enable or disable any one of the interrupt

levels and to record the enable status of each level in the enable status

word in location X'Ub'. Subroutine "P0WF5" uses this status word following

a power failure to determine if interrupt level 5 shoiild be reenabled.

.-. i. Subroiitine "DISP"

This subroutine has two modes of operation. In the first mode, "DISP"

converts a binary number to binairy coded decimal (BCD) format and sends it

to the interface display. In the second mode, "DISP" converts the number

to BCD and sends it to the interface display only if the external sense switch setting agrees with a calling parameter JCHAN (see program listing in

Appendix B). The "NOISE" program calls subroutine "DISP" to display A-weighted

sound level data in decibels (re 20 yPa). The person performing the data

analysis can elect to display either acoustic data channel 1 or acoustic data

channel 2 by placing the external sense switch up or down respectively.

; j . Subroutine "LEADR"

When called by a main conversational FORTRAN program, this subroutine

will punch a leader on the Teletype. The "CHECK" program calls subroutine

"LEADR" to punch a leader in front of and behind the calibration tape it

produces for use in the "NOISE" program.

12
k. Subroutine "CLOK"

When called "by a main program, subroutine "CLOK" reads the interface

clock until the time agrees for two successive interrogations. The time in

hours, minutes and seconds is then utilized by the main program as data.

Program listings for subroutines discussed in this Section are contained

in Appendix B.

U.1.3. Test Programs for the Community Noise/Real Time Analyzer

Interface (Plus Real Time Analyzer Subroutine Driver)

a. Absolute Binary Routine "MINOSl"^

This program is used for system checkout and for performing elementary

tests on:

1) interface display

- external sense switch up for a decimal display.

- external sense switch down for a hexi decimal display.

2) wind channel

- sense switches 1 and 2 down to display raw wind values (not

corrected to knots).

3) acoustic data channel 1

- sense switch 1 (SSl) up (SS2 down) to display raw channel 1

values (not converted to decibels).

k) acoustic data channel 2

- sense switch 2 (SS2) up (SSl down) to display raw channel 2

acoustic values (not converted to decibels).

5) master reset

- sense switch 3 up to provide a master reset command to the

interface after each number is displayed.

6) interrupt level 5«

Note: Put sense switch 0 up to halt the CPU after each value is displayed

if desired. (Push RUN to continue.)

— The program listing for MINOSl and the remaining programs in Section i+.1.3. are in Appendix C.

13
The "MINOSl" program is loaded into the minicomputer by giving the XRAY

directive: AL. If the word FACE remains on the interface display more than

a fraction of a second after loading the program, something is vrong vith

interrupt level 5. Either the interface is not sending an interrupt pulse

to the CPU or the interrupt card in the CPU is bad.

b. Conversational FORTRAN Program "TCLOK"

"TCLOK" is a test program utilized for printing out the current time

read from the interface clock. Program "TCLOK" calls subroutine "CLOK" to

transfer the hours, minutes and seconds values from the display to the Teletype.

An example of the printout from "TCLOK" is shown in Section U.l.U.

'

' c. Conversational FORTRAN Program "TRTAl"

The "TRTAl" program receives values for the sound pressure level in each

one-third octave band, a selected weighted sound level and the value for the

overall sound pressure level (linear) in BCD format from the output of the

real time analyzer (RTA) by calling the RTA driver subroutine "RTAl". The

"TRTAl" program prints out these values along with a channel iinderflow bit

on the Teletype. If the underflow bit is a 1, that particular channel is

at or below the base line value of the real time analyzer. If the underflow

bit is a 0, the value is above the baseline. If the input amplifier of the

real time analyzer was overloaded during the time period that data were

sampled and sent to the interface, an overload message will be printed out.

An example of "TRTAl" output is shown in Section U.l.i+.

d. Subroutine "RTAl"

When called by a conversational FORTRAN program, subroutine "RTAl" com- mands the real time analyzer to digitize the values in each one-third octave

band, the selected weighted band and the overall (linear) band and to send

the values in BCD format to the "RTAl" program as data. Subroutine "RTAl"

converts these BCD numbers to binary numbers (decibel times a factor of ten)

and sends them to the main conversational FORTRAN program as fixed point

integers. Channel underflow bits and the input attenuator overload values

are also sent to the FORTRAN main program.

' i+.l.if. Typical Output Listings

This section contains output listings from the "CHECK", "NOISE", "TCLOK",

and "TRTAl" programs.

14
The portion of the output listing for the "CHECK" program shown below

should "be kept in a log "book since these calibration data establish the

system accuracy. The year, date and time of the calibration is printed in

the upper right hand corner of the printout and also appears at the

beginning of the p\inched paper tape output which will be read by the

"noise" program. The first three columns in the middle of the listing

show the five step 50 dB dynamic range of the Briiel and KJaer measuring

amplifier (type 260T) s values for acoustic data channel 1 (raw interface

numbers) and values for acoustic data channel 2 (raw interface numbers).

These data are utilized as the basis for the linear ciirve fitting routine

discussed in Sections h.l. and U.1.1. The fourth and fifth columns show

the difference in decibels between the 2607 values and the values

determined by the curve fitting routine. In the example, the maximum

system error was 0.12 dB. The linear equations for acoustic data channels

1 and 2 are printed out and the factor relating raw interface values (ADC

values) to 260T vaJ-ues are also punched out on the special output paper

tape that is read by the "NOISE" program.

2607 - INTERFACE NOISE SYSTEM LINEARITY CHECK

2607 CHI CK2 CHI CK2

DB ADC ADC DB DB

VALUE VALUE DIFF DIFF

0 5 5 • 1 I -.00

i 0 20/4 205 .07 . 1 1 20 400 398 -.12 -.12

30 603 597 .03 -.0 5

40 803 796 .03 .01

50 1 002 994 -.01 • 03

GKl DB = CONSTANT + 50. 02387E -3 « CH2 DB = CONSTANT + 50. 6056SE -3 *

YEAR -= 19 75

DAY = 58

HOUR = 2

MINUTE = 23

(0 DB VALUE NOT USED)

<ADC VALUE)

(ADC VALUE)

f^RN ON PUNCH* TOGGLE SENSE SWITCH 0 1975 58 2 23 50.02387E -3 50.60568E -3

TURN OFF PUbJCHj TOGGLE SENSE SWITCH 0 TO RESTART

CHECK OUT IS COMPLETED. USE PAPER TAPE, IN NOISE

PROGRAM IF ABOVE RESULTS ARE SATISFACTORY.

15
" An example printout of the "NOISE" progreun is presented on the next page.

The second line of the heading contains the page number, magnetic tape number,

year, and date and time of the calibration. The time of calibration refers

to the time the calibration paper tape was prepared. Below the heading,

there are sixteen labeled columns of ntunbers that make up the main body of

the listing and serve as the basis for an accurate data log of the noise

levels measured as well as certain checks on the minicomputer system. The

first four columns give the day of the year and the time (hours, minutes,

seconds) corresponding to the end of the 10 minute block of data. The next

fom? columns show the L^, L^^, L and values for acoustic data channel

1.— The next foior columns show similar^Sata for acoustic data channel 2. The

column labeled WIND shows the highest wind speed (in knots) for the entire

10 minute block. The column labeled AC PFS is a count of the number of ac power failures that occ\irred during the 10 minute block. The column labeled

# ERR is a count of the number of incorrect channel numbers generated by the

interface during the 10 minute block. Finally, the column labeled # SKIP is a count of the number of missing or skipped channel numbers during the 10

minute block. Non-zero values for either # ERR or # SKIP indicate interface

malfunction unless AC PFS is also non-zero in the same time block. In the

example shown, an attenuator change was made on the measuring amplifier

between data blocks 3 and h. The new attenuator settings for channels 1 and

2 were .01 volts. A new pistonphone calibration was also made after data

block h. The system drift, in this case, was 0.1 dB.

An example of the printout of the "TCLOK" program is reproduced below.

When one pushes the hold button on the interface clock, the clock is stopped

and a comparison can be made between the displayed time and the time printed

on the Teletype.

HR MIN SEC

1 1 6 14

1 1 6 16

1 1 6 1 7

1 1 6 I 9

1 1 6 21

1 1 6 23

1 1 6 24

1 1 6 26

1 1 6 28

1 1 6 29

1 1 6 31

1 1 6 33

11 6 35

1 1 6 36

1 1 6 38

— is the A-weighted sound level which is exceeded 1 percent of the time.

L-j^Q is the A-weighted sound level which is exceeded 10 percent of the time.

Both and L^^ are often used to represent the higher-level, shorter-duration

sounds. L is the A-weighted sound level which is exceeded 50 percent of

the time. L is the energy equivalent A-weighted soiind level.

16
•BAD' DIGITALLY CONTROLLED SOUND LEVEL SURVEY

PAGE 1 TAPE # I YEAR 1975 (2607 CAL 1975 58 2 23 )

!- CHANNEL 1-1 I- CHANNEL 2 -I WIND AC #

DAY HR MN SEC 1% lox SOX LEQ IX lOX 50% LEQ K PFS ERR

1 58 2 51 4 74 69 65 67 80 80 79 79 0 0 0 2 58 3 .1 4 76 68 65 67 80 79 79 79 0 0 0 3 58 3 1 1 4 75 69 66 67 30 80 79 79 0 c G

( 58 3 12 4 LAST TAPE RECORD) PUT SS2 DOWlNi.

:\ WT BUTTON IN* NORMAL NOISE SIGNAL CONDITIONS.

ENTER ATTENUATOR SETTIi^JGS (BOTH ON ONE LINE)

.01.01

4 5S 3 23 0 75 69 66 67 SO 79 79 78 0 0 0 0

C 58 3 24 0 LAST TAPE RECORD) PUT SSI SS2 DOWN

HAVE A WT. BUTTON OUT ON BOTH 2607 UNITS.

PUT PISTONPHONE ON CH U HAVE METER READ ABOUT 44 Db.

ENTER ATTENUATOR SETTING WHILE PISTONPHONE IS ON.

.3 .3

PUT PISTONPHONE OInI CK 2* HAVE METER READ ABOUT 44 DB.

ENTER ATTENUATOR SETTING WHILE PISTONPHONE IS ON.

. 3

CH 1 DRIFT -.10 DB CH 2 DRIFT -.10 DB

A WT BUTTON IN/ NORMAL NOISE SIGNAL CONDITIONS.

ENTER ATTENUATOR SETTINGS (BOTH ON ONE LINE)

.03 .03

17
An example of the printout from the "TRTAl" program is shown "below. The

listing prints out the sound pressure level (in decibels re 20 yPa) in each

one-third octave "band from 12.5 Hz to hO kHz (depending on which filters are utilized in the particular RTA) , the sound level for the selected weighting

network and the overall sound pressure level (linear). As discussed in

Section i+.1.3.c., the underflow indicates whether or not the value is above

or below the RTA baseline, while the overflow, i.e., an indication of RTA

satiiration, is indicated by the printing out on the listing — RTA INPUT

AMPLIFIER WAS OVERLOADED — if saturation occurred.

t^Ui ibe) iU bitlNb liN} LtAlA tHOfi hi A.

nLAL - llMt 1/3 ANALYith lYFL 334 7 uur

i^AND Db bAiXJD Db Ui-LOW

bA^E 70.0 1 400. 0 97. 6 0

b 7 6.6 0 b00. 0 96.0 0

16.0 6b. 4 0 630. 0 96.2 0

eiid»id 69.6 0 600.0 96.4 0

^t>. 0 97.6 0 1000.

0

99.6 0

sll . b 101.6 0 12b0.

0

9b. 0 0

40*0 10ci. 0 0

' 1600.

0

93.2 0

b0. 0 99.4 0 2000.

0

93.2 0

63. 0 101.0 0 2b00.

0

90.4 0

8k}. k) 100. 0 0 31b0.

0

66. 2 0

10k). 0 99.2 0 4000.

0

64. 6 0

12b. 0 96. 0 0 b000.

0

60. 0 0

1 b0. 0 96.4 0 6300.

0

7 7.6 0

ii\dld» 0 100. 4 0 6000.

0

71.4 0

2b0. 0 102.0 0 10000.

0

70.0 1 31b. 0 96.2 0 12b00.

0

70. 0 1 WEIbHl

.

106.0 0 16000.

0

70.0 1 L INEAh 113.6 0 20000.

0

70.0 1

18
li 1 5. Procedure for Loading Programs — "CHECK", "NOISE, "TCLOK"

and "TRTAl"

These programs which are written in conversational FORTRAN utilize one

or more subroutines which are written in conversational FORTRAN or assemblylanguage. The most efficient procediire for loading any one of these programs

(and their subroutines) from paper tape is to utilize a high speed reader

(HSR) format. (Copies of "CHECK", "NOISE", "TCLOK", and "TRTAl" have been

supplied to BAD in HSR format.)

To run a high speed reader format tape the following procedure shoTold be

followed

:

1. load XRAY (executive routine)

2. turn on high speed paper tape reader and place paper tape on

reader.

3. enter the following coimnand on the Teletype keyboard.

:I0, 1, 20

:EX

Execution will then be automatic.

For reference purposes, steps 1 to 10 explain the punching order necessary to

create a HSR tape.

1. Punch the following step 1 commands on paper tape:

line feed :QU,CF carriage ret\irn

line feed :EX carriage return

line feed GC carriage return

2. Copy-punch the FORTRAN main program.

3. If there are any FORTRAN subroutines, continue in to step h. If

there are no FORTRAN subroutines go to step 6.

h. Punch the following command on the paper tape:

line feed GC carriage retiirn

5. Copy-punch the FORTRAN subroutine. Repeat steps h and 5 for all

FORTRAN subroutines.

6. Punch the following commands on the paper tape:

line feed E carriage return

line feed :QU,CFR carriage return

19
7. If there are one or more assembly language subroutines , skip to

step 9. If there are no assembly language subroutines proceed to

step 8.

8. Punch the following command on the paper tape:

line feed :EX carriage return

Skip to step 11.

Punch the folloving command on the paper tape

:

line feed :AL carriage return

10. Copy-pimch the assembly language subroutines on the paper tape with

execution addresses of X'T8'. The last subroutine should transfer

to X'i+O' .

11. Punch the following command on the paper tape:

line feed G carriage return

To load the "CHECK" and "NOISE" programs from a special magnetic tape

the reader is referred to the discussion of subroutine "STEMl" (Section

k.l.2.&.).

The Interface Software Command (Table l) lists all the direct input (DIN)

and direct output (DOT) commands that affect the community noise interface

and the real time analyzer (RTA). Examples for the l6-bit words are given

as an aid in understanding the usage of the commands. This table is mainly

for reference because these commands are already used in the software

drivers supplied with the community noise and real time analyzer programs.

k.1.6. Interface Software Commands

20
Table 1. Interface Software Commands

Raytheon 70^ Command

DOT 15,6

DIN 15,2

DOT 15,2

DIN 15,3

DIN 15,^

Effect or Resvilts

send master reset to interface (resets PROM

counter, and clears FIFO memory)

sends l6 "bits of data from interface to CPU*

acciomulator

BITS 0123 h56l 8 9 10 11 12 13 1^+ 15

11.00 00.01 1 0 0 0 0 0 0 1.

-raw signal data (binary)

00 not used

01 wind identifier

10 channel 1 identifier

11 channel 2 identifier

The above example has channel 2 raw data equal to 385

^

sends I6 bits of data from CPU acciomulator to h

digit hexidecimal display. (Use software to convert

binary numbers to decimal BCD** niombers for ordinary

base 10 displays)

send 16 bits of clock data to CPU accumulator

Bits 0123 U56T 8 9 10 11 12 13 ih 15

0000 0011 0 1 0 1. 1 0 0 1.

Lseconds units BCD

I- seconds tens BCD

'-minutes units BCD

send 16 bits of clock data to CPU accumulator

Bits 0123 i+56T 8 9 10 11 12 13 ih 15 10 0

t

0000 . 0010, .0 0 0 1, 0

minutes tens BCD

•-hours units BCD

-hours tens BCD

DOT 6,1

The above time of day example = 21:^3:59*

send data request to real time analyzer (RTA)

21
Table 1 Interface Software Commands (Con't)

Raytheon lOh Command

DIN 6,1

Effect or Results

send 16 bits of RTA data to CPU accumulator

Bits 0123 U56T 8 9 10 11 12 13 1^+ 15

0001. .0010. .0 0 0 Oj ,1 0 0 0.

tenths dB BCD

•-units dB BCD

-tens dB BCD

L hundreds dB BCD

Lunderrange bit = 0 data above base line

= 1 data at or below base line

input amplifier bit = 0 level is OK

= 1 input amplifier is

i , overloaded

The above example shows 120.8 dB for the particular channel

digitized by the RTA

* CPU stands for Central Processing Unit

**BCD stands for Binary Coded Decimal

22
k.2. FORTRAN Software for the Analysis of Community Noise Data

The analysis of the coramionity noise tapes produced by the minicomputerhased data acqiiisition system is most satisfactorily performed on a large

computer system with a high speed printer and digital plotter capability.

The main programs and subroutines discussed in this section were specifically

written for the Univac IIO8 computer system at the National Bureau of

Standards but can be adopted for use in almost any large scale system.

The software described herein utilizes three utility packages available on the Univac IIO8 system^ "NTRAN" , "AITINT" , and "GDS" plotting package, for

which detailed documentation was supplied to BAD as part of the operating

system.

a. Purpose

This prograia is designed to translate nine-track magnetic tapes written

by the TO^i Raytheon computer using the Raytheon FORTRAN unformatted write

statement. (See program listings in Appendix D.)

In addition to translation of the nine-track tapes , the program also

bins the data into selected so\md pressure levels with a choice of bin size

ajid range, calculates L^^, L » ^50' ^QD' ^OQ ^e

lists the results

on a line printer. L. is that level which Is exceeded J percent of the

time while L is the equivalent so\ind level averaged on an energy basis.

where SPL(i) are the sound pressure levels

and N is the total number of data points.

If desired all or part of any block of data caii be printed for examination.

b. Control Cards

There are a total of three control cards required which allow (a) choice

of bin size and range, (b) choice of the portion of the tape to analyze and

(c) choice of data to be displayed.

Card 1: IBEG, lEND, IDEL

k.2.1. Nine-track Tape Translation Program

eq

n

Format is free, i.e., numbers separated by commas. All

formats are of this type unless stated otherwise.

IBEG is the lower bound of range.

lEND is the upper bound of range.

23
IDEL Is the step size within the range,

e.g., ho, 80, 2 meems that the data will be binned

in 20 bins from hO to 80 dB in 2 dB bins.

Card 2: DAYST, HRST, MINST, DAYFIN, HRFIN, MINFIN

First three are the starting day, hoiir, minute.

Second three are the finishing day, hour, minute,

e.g. 209, 19, 1, 209, 19, 2 will resiilt in two blocks

of data being read into memory.

Legal values are:

0 No listing of the blocks of data.

1 List each control section (l201-122ii)

2 List entire 122U word block

Caution: Use option 2 with care as large amounts of output can be generated.

Note: Each block represents 1 minute of data taken every

0.1 second for two microphones. These 1200 data points

are the first 1200 words of the block. In addition there

is a 2k word control section at the end of each block

giving information pertinent to the block. The output of

the program is self explanatory with the exception that

each time a read problem occurs (a parity error) -3 is

printed and that block is ignored. Also if control word

1207 in the control section is non zero that block is

skipped.

Card 3: ICTRL

c

.

Subroutines

The program utilizes 3 subroutines for reading, translating and interpolating the data.

1) Reading of the nine-track tapes is accomplished by a routine

called RDUNPK which in turn calls the Univac routine NTRAIJ

(described below) . RDUNPK (M,N) contains two transfer

arguments (M,N). M is the \mit niimber assigned to the tape at

execution. N is the status word described in the NTRAN guide.

This routine uses NTRAN to read blocks of integers from tape

(see below). The I6 digit Raytheon integers are unpacked from

the 36 digit Univac words. (The Raytheon integers enter the

Univac memory sequentially in 8 bit "bytes" two bytes per

integer. ) This subroutine is listed in Appendix D under the

Nine-track Tape Translation Program.

2) NTRAN is a Univac IIO8 Fortran library routine used to read

blocks of data from tape or drum.

24
3) AITINT - is an interpolation program available in the Univac

1108 Math-Pack Library. This program is included vith the main

program on cards but can be accessed from the fastran drum system

at execution time if desired.

h.2.2. Calcomp Plot Program

a. Purpose

Given a specified starting day and hour, this program searches the tape

for the starting block; then it calciolates L^, L^^, L , L , L and

for a specified number of hours (minimum two hours). The Bix quantities'^ are plotted as a function of time on a simple graph. Each plot contains

the data points connected by solid straight lines . Up to a maximum of 100

hours of data can be plotted.

b. Control Cards

Card 1: IBERG, TEND, IDEL

Same interpretation as in Section i+.2.1.a.

Card 2: DAYST, HRST, NHR

Format I6 and Right Justified

These are the starting day and hour. Calculation begins

vith first good data block in the specified hour and continues for NHR number of hours

.

c . Subroutines

This program utilizes RDUNPK, NTRAN, and AITINT which are described in

Section U.1.1. In addition the graphical display system (GDS) subroutines are

used. These include: GDLILI, NODLIB, NODLIL, TITLES, TITLEL, TITLEG, PSLILI

,

SLLILI, NXTERM, and GDSEND.

25
5. APPENDIX A. PROGRAM LISTINGS AND FLOW CHARTS FOR CONVERSATIONAL FORTRAN

CALIBRATION AND COMMUNITY NOISE PROGRAMS.

Appendix A contains flow charts for the "CHECK" and "NOISE" programs. It

also contains program listings for the "CHECK", "TOGLE" , "ORTH" , and "NOISE"

programs

.

26
"CHECK" PROGRAM

C

<

SPECIAL SYSTEMS

MAG TAPE START

I

PAPER

TAPE START

HALT

LOADER T

YES

•^SSl. SS2

UP?/*

1 Tno

CREATE

SPECIAL

SYSTEMS

MAGNETIC

TAPE

SET UP

POWER FAIL SAFE

I

>

ENTER YEAR, DAY7

CHANNEL = 1

1^

I

PRINT OUT SET UP

INSTRUCTIONS FOR 2607

NO

CHANNEL 2

NO

PUNCH CAL TAPE

ON TELETYPE

I

PRINT OUT CURVE

FITTING RESULTS

I

DO LINEAR

LEAST SQUARES

FIT ON DATA

FOR BOTH

2607 UNITS

SAVE DISPLAYED INTERFACE

VALUE FOR CURVE FIHING

REDUCE 2607 INPUT

ATTENUATOR BY lOdB

SAVE DISPLAYED VALUE

FOR CURVE FITTING

Figure A-1. Flow diagram for "CHECK" program.

27
1 C l/3/7btl •CHECK'

2 C PROGRAM IS UbtD TO CHECK THE LINEARITY OF THE

3 C 26id7 ADC INTERFACE SYSTEM AND PRODUCE A PAPER

4 C TAPE CONTAINING THE DATE^ T IME« AND THE FACTOR

5 C RELATING ADC VALUES TO DB.

6 C THIS PAPER TAPE IS READ BY THE 'NOISE' PROGRAM.

7 C

8 LOCATE STEMl#X'2730'*DATA*X'2800'#POWF5*X'2890'

9 LOCATE INTL#X'29E0'#LEADR#X'2A20'*CLOK*X'2A70'

10 DIMENSION JXX(2#7)*XX(2*7)>Y(7)*X<7>* JY(7)*CZ(2)

11 DIMENSION YC1<7)*DBER1(7)*DBER2<7)

12 C

13 C SET UP POWER FAIL SAFE

1/i C STEMl ALLOWS CREATION OF SPECIAL SYSTEM MAG TAPE

lb C X 16 CALL STEMl (0)

17 CALL P0WF5<NPF)

18 NP«5

19 JZ=0

20 JBOT-5 , , , 21 JB0Tl»JB0T-2

22 JB0T2aJB0T+2

23 DO 101 J*1*NP

24 JY(J)«J*10

25 101 Y(J)«JY<J) ^ ^

.... 26 C

27 C CHECK IF ANY POWER FAILURES OCCURED

28 C

29 IF<NPF)3*3*2

30 2 WRITE(3*4)NPF

31 4 FORMAT < 3/ # 'THERE WERE'#I5#' POWER FAILURES^ RELOAD CHECK')

32 PAUSE -

- 33 3 KK»ISWCH<0)-HSWCH( 1 )+ISWCH(2)*ISWCH<3)+l

34 GO T0(8*5)>KK

35 5 WRITE<3>6)

36 6 FORMAT< 3/ > 'PLEASE PUT ALL bENSE SWITCHES DOWN')

37 7 KK«ISWCH(05 + ISWCH< 1 )-HSWCH<2)+ISWCH<3)+l

38 GO T0(8#7)*KK

39 8 WRITE<3#9)

40 9 F0RMAT<3/* 'SET INTERFACE CLOCK TO CORRECT TIME')

41 CALL TOGLE'

42 WRITE<3> 70)

43 70 FORMAT( 'ENTER YEAR DAY (ON SAME LINE)')

44 R£AD(3>71)JYEAR# JDAY

4b 7 1 FORMAT (FF)

46 JCH«1 V.

^ 47 C

48 C SET UP LINKAGE TO INTERFACE

49 C ENABLE INTERRUPT 5

b0 C

28
51 CALL DATA( JWIND# JRAVU JAA\tf2« JCH)

52 CALL INTL(5>&)

53 C

54 C BEGIN 2607 - INTERFACE SYSTEM CHECK

55 C

56 27 VRITEOj 10>JCH

57 10 FORMATC 3/ # 'CHANNELS 12* • CHECK*)

58 IF( JCH-ni00« 100# 102

59 100 VIRITE(3>U)

60 11 FORMAT(*USE 50 MV INTERNAL REFERENCE AS ONLY INPUT TO 2607')

61 102 WRIT£(3>12)

62 12 FORMAT( 'SET 2607 INPUT ATTENUATOR TO 3.0 VOLTS')

63 IF( JCH-I )103> 103> 13

64 103 ^RITEC3#95)

65 95 FORMATC'SET 2607 OUTPUT ATTENUATOR TO XI POSITION')

66 V*RITE(3;96)

67 96 FORMATC'SET 2607 OUTPUT SWITCHES TO LOG AND DC)

68 13 WRITE(3# 14) JBOT

69 14 FORMAT C 'ADJUST 2607 VARIABLE GAIN SO DIGITAL DISPLAY »'*I3)

70 CALL TOGLE

71 GO TOC 15* 16)* JCH

72 15 JR-JRAWl

73 AaJR

74 JADC1»JR

75 XADCl-A

76 GO TO 17

77 16 JRsJRAW2

78 A«JR

79 JADC2eJR

80 XADC2sA

81 17 JA*A

82 C

83 C CONTINUE IF DISPLAY IS NEARLY « JBOT

84 C

85 IF( JA-JBOTl )13* 18* 18

86 18 IF( JA-JB0T2) 19* 19* 13

87 19 DO 24 J»1*NP

88 VyRIT£(3* 20) JCH

89 20 FORMAT < 'REDUCE 2607 INPUT ATTENUATOR BY 10 DB <CHAN '* 12* ' )'

)

90 CALL TOGLE

91 GO T0(21*22)* JCH

92 21 A'JRAWl

93 GO TO 23

94 22 AsJRAV«2

95 C

96 C SAVE DATA FOR PRINTOUT & LEAST SQUARES FIT

97 C

98 23 JXX(JCH*J)=A

99 XX<JCH*J)=A

1 00 24 CONTINUE

101 IFC JCH-2)25*26*26

1 02 25 JCHs2

1 03 GO TO 27

1 04 26 DO 31 J«1*NP

1 05 31 X( J)'XX( 1* J)

1 06 C

29
1 07 C DO 1ST OHDEB FIT ON CHANNEL 1 DATA

1 06 C

109 CALL 0RTH(X(1)#V(1}«CZ(1)#YC1( 1>#EH# 1> JRD« U0>NIP>0. ) 1 10 DO 32 JbWNP

1 11 32 DBEHl < J)"YC1< J)-Y< J)

1 12 FACT1»C2(2>

113 C0N1«CZ( 1

)

1 14 DO 33 J-UNP

1 15 33 X(J)«XX<2*J)

1 16 C

117 C DO 1ST ORDER FIT ON CHANNEL 2 DATA

1 16 C

119 CALL ORTH(XC1}#Y(1)#CZ(1>#YC1C1)#ER>UJRD«U0>NP>0. )

1 20 DO 3/1 Jsl>NP

121 3/A DBER2( J)»YC1< J)-Y( J)

1 22 FACT2«CZ<2)

123 C0N2«CZ(1)

124 YDBlaCONl*XADCl*FACTl

1 25 YDB2»C0N2-t-XADC2«FACT2

1 26 C

1 27 C DETERMINE TIME FROM CLOCK

1 28 C

129 CALL CLOKC JH> JM> JS)

1 30 C

131 C BEGIN PRINTOUT OF LINEARITY CHECK

1 32 C

1 33 WRITE(3#45)

1 34 45 FORMAT < 15/)

135 WRIT£(3«46)

136 46 FORMAT(*2607 - INTERFACE NOISE SYSTEM LINEARITY CHECK')

137 WRITE(3;47)JYEAR* JDAY

1 38 47 FORMAT (/# 5 3X> 'YEAR « '# I5#/# 53X# 'DAY -SIS)

139 WRITE (3# 48 )JH*JM

1 40 48 FORMAT < 5 3X* 'HOUR - • # 1 5* /# 53X# 'MINUTE -SI5)

141 WRITE<3*49)

1 42 49 F0RMAT(6X* •2607% 4X# 'CHI S5X# •CH2S5X> 'CHI S5X* 'Cna'

)

143 WRITE(3*50)

1 44 50 F0RMAT(7X> 'DBSSX, 'ADC'jSX* 'ADCSSX* 'DBSeX* 'DB* ) 145 WRITE(3>51) '

' '

1 46 51 FORMATC 13X# •VALUE%3X* •VALUES4X# •DIFFS4X# 'DIFFS/

)

147 WRIT£C3> 110)JZ> JADCU JADC2>YDB1>YDB2

148 110 F0RMAT<4X^ I5#3X« I5«3X« I5«F9.2>F8«2« * (0 DB VALUE NOT USED)')

1 49 DO 52 J=1*NP

1 50 52 WRITE(3#53)JY( J)> JXX( 1# J)« JXX(2j J)«DBERH J)>DBER2( J)

151 53 F0RMAT(4X« I5#3X# I5«3X# I5#F9*2#F8.2)

152 WRITE<3*54)FACT1

1 53 54 F0RMAT(3/>6X> *CH1 DB » CONSTANT '«E13. 5# 2X# '* (ADC VALUE)*)

154 WRITE(3>55)FACT2

1 55 55 FORMAT < 6X* •CH2 DB « CONSTANT % El 3. 5> 2X* ' * (ADC VALUE)')

156 WRITE(3*40>

157 40 FORMAT (3/* 'TURN ON PUNCH* TOGGLE SENSE SWITCH 0')

1 58 80 KKaISWCH(0)-f 1

1 59 GO TO(80*81 )*KK

1 60 61 KK«lSWCH(0)'t'l

1 61 GO T0(82>81 )«KK

1 62 C

30
1 63 C PUNCH LEADER^ PUNCH NUMBERS^ PUNCH LEADER

1 64 C

1 65 82 CALL LEADR

1 66 WRITE<3#41 ) JYEARj JDAY/ JH# JM^ FACT 1* FAC12

1 67 41 FORMAT ( I5# I4> I3j I3> 1X>E13*5« 1X>E13*5)

1 66 CALL LEADR

1 69 IF(NPF)60# 60« 2

1 70 60 WRIT£(3>42)

171 42 FORMAT ( 'TURN OFF PUNCH* TOGGLE SENSE SWITCH 0 TO RESTART')

1 72 WRITE(3;90>

I 73 90 FORMAT <• CHECK OUT IS COMPLETED. USE PAPER TAPE IN NOISE')

I 74 WRITE<3;91)

I 75 91 FORMAT < 'PROGRAM IF ABOVE RESULTS ARE SAT ISFACTORY. * , 3/

)

1 76 85 KK=ISWCH(0)+1

1 77 GO T0(85*86)«KK

1 78 86 KK«ISWCH(0)-»'1

1 79 GO T0<3>86)>KK

END

31

I
1 C l2/U/74tl •TOGLE'

2 C PRINTS OUT 'TOGGLE SENSE SWITCH 0 MESSAGE*

3 C AND RETURNS TO MAIN PROGRAM WHEN SENSE

4 C SWITCH 0 IS TOGGLED* (IE. UP & DOWN)

5 C

6 SUBROUTINE TOGLE

7 WRITE(3#1)

8 1 F0RMAT(5X^ * (TOGGLE SENSE SWITCH » WHEN ABOVE IS 0K>*>3/>

9 2 KK»ISWCH<0)+1

10 GO T0<2*3)>KK

U 3 KK«ISWCH(0)+1

12 GO T0(4#3)>KK

13 4 RETURN

> END

32
1 C 11/12/7418 'ORTH'

2 Q

3 SUBROUTINE ORTHCX* Y# CZ* YC U ERROR#NHIGH* JRD#KT,NOR#NP# SG

)

4 DIMENSION CPK 10)*CP2< 10)#CP3( 10)*CP4( 10)>CX( 10)

5 DIMENSION PV 1 < 50 )> PV2( 50 )# SS< 50

)

6 DIMENSION CZ< I 0 X( 50 )* Y< 50 )# YC 1 C 50

)

7 C

8 C ABOVE DIMENSIONS ALLOW FITTING UP 10

9 C X**9 ORDER AND UP TO 50 DATA POINTS.

10 C

11 C IN MAIN PROGRAM DIMENSION CZ( 10 X( 50 Y( 50 )> YC 1 ( 50

>

12 C

13 BONE-U

14 ZERO-0.

15 C

16 C X IS AN ARRAY CONTAINING VALUES OF THE INDEPENDENT VARIABLE.

17 C Y IS AN ARRAY CONTAINING VALUES OF THE DEPENDENT VARIABLE.

18 C CZ IS AN ARRAY CONTAINING CURVE FITTING MONOMIAL COEFFIC IENTS<

19 C ERROR IS THE STANDARD DEVIATION OF (YOBSERVED - YFIT)

20 C NHIGH IS HIGHEST FITTING ORDER IF SUBROUTINE IS REQUESTED

21 C TO DO COMPLETE FIT ON ONE CALL. (IE. KT NOT » 0)

22 C JRD IS PRESENT ORDER OF FIT. ON SINGLE PASS MODE (KT « 0)

23 C SET JRD » 0 ON FIRST PASS.

24 C KT » 0 FOR EXIT ON EACH PASS. KT NOT » 0 IN MULTIPASS MODE.

25 C NOR " 0 FOR ORDINARY ORTHOGONAL FIT. NOR " 1 FOR ODD POWER

26 C ORTHOGNAL FIT. NOR - 2 FOR EVEN POWER ORTHOGONAL FIT.

27 C NP IS THE NUMBER OF DATA POINTS TO BE FITTED.

28 C SG IS DESIRED ERROR OF FIT TEST. IF KT NOT » 0 THE PROGRAM

29 C EXITS WHEN EITHER JRD - NHIGH OR WHEN ERROR » SG OR LESS.

30 C YCl IS AN ARRAY CONTAINING POLYNOMIAL VALUES FOR Y (NO NEED

31 C FOR USER TO DIRECTLY EVALUATE TOTAL POLYNOMIAL TO

32 C OBTAIN YFIT)

33 C FOR THE BEST ACCURACY OF FIT THE VALUES OF X SHOULD BE

34 C BETWEEN -2.0 AND •I-2.0 (IE. TRANSFORM INDEPENDENT

35 C VARIABLE TO -2.0 •I-2.0 RANGE BEFORE CALLING SUB ORTH. ) 36 C

37 JJM1«NP

38 AM»NP

39 KORDaNHIGH+1

40 IF(KT)703#704#703

41 703 JRD"0 ^ 42 704 IF( JRD-1)400«301#302

43 C

44 C ZEROING COEFFICIENTS

45 C

46 400 DO 54 JbWKORD

47 CPl(J)eZERO

48 CP2(J)sZER0

49 CP3(J)»ZER0

50 CP4(J)-ZER0

51 CZ(J)»ZERO

52 54 CX(J)>'ZERO

53 S-ZERO

33
54 c

55 C PART 1 FINDING P OF ORDER

56 c

57 CP3( 1 >"BONE

58 S 1«Z£R0

59 DO 56 J>1#JJM1

60 IFCNOR-l >500« 501#500

61 50

1

PVl ( J)"X( J>

62 ZaY( J)4iX< J)

63 QO TO 502

64 500 PVl ( J)«BONE

65 WN«AM

66 Z»Y< J)

67 502

68 56 Sl-Sl+YC J)*YC J)

69 IFCNOR- 1 }503« 504# 503

70 504 S 2s ZERO

7 1 DO 506 J«WJJM1

72 506 S2bS24-X( J}4(X( J)

73 VN«>S2

74 503 B»S/WN

75 DOw0 ^0 325 M0 mm ^0 J"1>JJM1 ^0 • ^ • m 76 325 YCl < J)«B

77 CX( 1 >«B

78 UBSl*B4tB*WN ^0 m0 m m^^' ^0 • otaw 79 ZbU/AM

80 Z"ABS<Z mm K^^0 m0 % *d >0 81 SN«SQRT(Z

}

82 Z«U/(AM-BONE mm ^0 ' V • A mm^m Wt0 >0 83

' Z"ABS(Z)

SPOLY««SQRTCZ>

85 Z»5QRT( VN

)

mm mm ^^mm m % w w 86 SCO»SPOLY/Z •v ^0 \0 • \0mm m w mm 87 JRD*1

88 JRIM1«0

89 J60«l '

' 90 GO TO 100

91 c

92 C PART 2 FINDING P OF ORDER

93 C

94 301 CONTINUE

95 S»ZERO

96 DO 57 J-UJJMl

97 IFCNOR- 1 )507> 508> 630

98 630 Z»X( J)

99 SaS-fZ«Z

1 00 GO TO 57

1 01 508 Z«X( J)

1 02 SeS-fZ^ZttZ^Z

1 03 GO TO 57

1 04 507 S«S+X(J)

1 05 57 CONTINUE

1 06 AL-S/UN

1 07 S»ZERO

108 SI -ZERO

109 CP2( 1 )»CP3( 1 )

1 10 CP3(2)»B0NE

34
I U CP3( I )«-AL

1 IS VO-UN

1 13 DO 58 J-1«JJM1

1 14 IF(N0R-1 )509>510« 631

1 15 631 Z«X(J)

1 16 Z«Z*Z-AL

1 17 GO TO 511

1 18 510 Z-X(J)

1 19 Z«Z*Z«Z-AL*Z

1 20 GO TO 51

1

1 21 509 Z«X( J>-AL

1 22 511 PV2( J>sZ

1 23 SmS*L*Z

1 24 58 SlsSl-«-Y( J)4cZ

1 25 VNs5

126 B«S1/WN

1 27 DO 326 JbU JJMl

1 28 326 YCK J)«YC1< J)+B*PV2< J)

129 CX( 1 )»CX( 1 )-^CP3( 1 130 CX(2)»B

1 31 BT«WN/VO

1 32 U-U-BKB^VN

1 33 ZeU/AM

134 Z-ABSCZ)

135 SNbSQRT(Z>

1 36 Z«U/CAM-2«

)

137 Z«ABS(Z)

136 SPOLY»SQRT(Z)

139 Z»SQRT(VN)

1 40 SCO«SPOLY/Z

141 JRD«2

142 JRDMl-1

1 43 JGO-2

1 44 60 TO 100

1 45 C

146 G PART 3 FINDING P OF ORDER JRD - 1 I 47 G

1 48 302 JRD"JRD-I>1

1 49 BORD-JRD

150 JRDM1»JRD-1

151 JRDM2»JRD-2

1 52 S»Z£RO

1 53 DO 61 J«l# JJMl

154 Z«PV2<J)

155 IFCNOR-1 }512^513#513

1 56 513 S2sX( J)

1 57 S»S*S2*S2*Z*Z

1 58 GO TO 61

159 512 5^S*K<J>*Z*Z

1 60 61 CONTINUE

1 61 AL«S/VN

1 62 SbZERO

1 63 S2»ZER0

1 64 DO 62 J>1> JRDM2

1 65 62 CPK J)»CP2( J>

1 66 DO 63 J»U JRDMl

1 67 63 CP2( J)»CP3( J)

35
t f^a. i Oo

1 AO OvQ

1 7 CI U\J nn A/1 0*t «JTMiKia.iRnMP • * \J*WFl&

1/1 A/l O**

lid nn A<^ tb 1 . .iRnM i UyJ 09 1 * i I/O A(^ OO

1 / ** nn AA .laPa.iRn

1 r 9 AA W^OVO/*w«OVV'~W«C^W *

I/O

III nnU\j ASOO .tsi..i.TMi <j^i>v/ ijri 1 I/O 1 7 fit 7 — V / . 1 \

1

t 7/ Q7 irvivun i / oi^ooio^wis

1 Oo O 1 O

1 O 1 O 1 *• <^ t s>RTaPU 1 f .Il^f 7oAI )*PliPf.I^

I Oc ^B^T^ c;b <^ t A <^ 1 1

1

1 oo

1 o*i PIJ 1 / 1 > bPU P f . I )

1 OO APC OO pll Of I ) B ^ 1

1 OO UM B ^

1

1 H7O /

1 OO nn '^P7 IbI..i.tmi

1 07 oafP7

1 710 nn A7 .Ib 1 . .iRn

1 Q t 1 7 1 A7O f 1 7a RTaWM /Un

1 70

1 7** 7 kI I / AM

1 70 7 B AR^ f 7

1 7D ww<;Mb w<>ORT wn f 7 > I V £t /

4

1 Q77/, 7 bII / / AM» RnRn ^

1 70 7 B AR (^ f 7 '>

1 7 7

& 1010 7 = <i Q R T f UM ^ cQ CI 1 10 1 <ipnB<^pni Y/7

& I0<S UwU^ O ^ . C I0O fi,n Tn 1 0kCi •'

'

U U 1 U 1 1010 O (All £• 104

£• I0O C SETTING UP ORDINARY* ODD* OR EVEN

cP (XA I0O C AND THEIR MONOMIALS

PC 017 10 / C

CP CIR I0O 100 S-ZERO

CP CtQ 107 DO 328 J»UJJM1

P 1 CI <S 1 10 SS< J)»Y( J)-YC1< J)

All P 1 1 328 S«S+SS( J)

£SPIP1 C AVYC»S/AM

CIO S»ZERO

c 1 *• DO 329 J«l* JJMl

cP 11 O 329 S»S+(AVYC-SS( J))*<AVYC-SS( J)

)

PC 11 AO ERROR«SQRT < S/AM

)

<SP 1

1 7/ IF(KT)700*621>700

elOldXO 700 IFC JRD-KORD)70U621*621

PC 11 Q7 701 IF(ERR0R-SG)62U62U 702

P PCI 702 GO TO (301#302*302)« JGO

CP AP 11 621 IF(N0R-1 )516#517*518

P P0 516 JORD-JRD

eO P** sO DO 519 J«1#JRD

CP4( J)«CP3< J)

OR EVEN ORTHOGONAL COEFFICIENTS

36
a as 519 C2< J>-CX( J)

a a6 GO TO 580

2 27 517 J0RD«JRD4<2

2 28 DO 521 J-WJORD

2 29 Ki< J+l )/2 i 2 30 IF( J-2K( J/2) )522# 522> 521

231 522 CZ( J)-CX<K)

2 32 CP4< J)-CP3(K>

2 33 521 CONTINUE

2 34 GO TO 520

2 35 518 J0RD«JRD*2-1

2 36 00 523 J«1^J0RD

2 37 K«< J+1 )/2

2 38 IF< J-2*(J/2))523* 523> 524

2 39 524 CZ( J)«CX(K)

2 40 CP4( J)«CP3<K)

241 523 CONTINUE

2 42 520 CONTINUE

2 43 RETURN

END

37
"NOISE" PROGRAM PAPER

TAPE START

PRINTOUT

910 MINUTE

SUMMARY ON

TELETYPE

i

SOLVE FOR L,

CHANNEL 1 AND 2

PISTONPHONE CAL.

f

BIN dB VALUES IN 1 dB

BINS FOR L,, CALCULATION

CONVERT RAW WIND

VALUE TO KNOTS

CONVERT RAW SIGNAL

VALUES TO dB

2607 SET UP

INSTRUCTIONS FOR

NORMAL SIGNAL

CONDITIONS

I

FROM 2607 SETTINGS,

PISTONPHONE CAL., AND

CAL. PAPER TAPE NUMBERS

SET UP INTERFACE VALUE TO

dB EQUATION

dB = f(VALUE) + c

BRING IN INTERFACE \j

WIND AND SIGNAL

VALUES

T

WRITE RECORD ON MAG

TAPE INDICATING

PISTONPHONE CAL.

AND/OR 2607

ATTENUATOR

CHANGE

Figure A-2. Flov diagram for "NOISE" program.

38
1 C 1/23/7514 'NOISE*

2 C THE PROGRAM CONDUCTS A TWO CHANNEL COMMUNITY

3 C NOISE SURVEY BY SAMPLING TWO DATA CHANNELS OF

4 C ENVIRONMENTAL NOISE AND A OPTIONAL WIND CHANNEL

5 C AT A 10 HZ RATE. ONCE A MINUTE THE NOISE DATA AND

6 C THE MAXIMUM WIND VALUE ARE DUMPED ON TO THE MAGNETIC

7 C TAPE UNIT FOR LATER ANALYSIS ON A UN I VAC 1108 COMPUTER.

8 C THE PROGRAM WILL PRINTOUT Ll> LIO* L50* LEQ*

.9 C AND MAXIMUM WIND SPEED EVERY 10 MINUTES ON THE TELETYPE.

10 C

11 LOCATE STEMlvX'2730 '*DATA*X'2800 '*LFD*X'2870 '*POWF5*X'2890 ' 12 LOCATE MULT1*X*291B**MMON/X*299B*#DMAMAG*X'29CO ' 13 LOCATE INTL*X'29E0 '^DISP*X'2A20 '#CLOK*X'2A70 ' 14 DIMENSION K( 1 224)* KPA( 1 1 1 KPB( 1 1 1

)

15 C

16 C K(l> TO K( 1200 ) VERY SOON AFTER EACH ELEMENT IS FILLED WITH

17 C AN ADC VALUE (VIA INTERRUPT LEVEL 5) IT IS

18 C CONVERTED TO DB.

1 9 C K(1201 ) « DAY

20 C K(1202) = HOUR

21 C K<1203) = MINUTE

22 C K(1204) = SECOND IMMEDIATELY AFTER RECEIVING & CONVERTING

23 C K<1200) VALUE AND JUST BEFORE WRITING ALL 1224

24 C NUMBERS ON MAG TAPE.

25 C K<1205) « NUMBER OF POWER FAILURES IN JUST THE PAST MINUTE.

26 C K(1206) = PROGRAM VERSION NUMBER

27 C K(1207) =« 0 K ARRAY RECORD ON MAG TAPE CONTAINS REGULAR DB DATA

28 C a 1 RECORD ON MAG TAPE INDICATES PISTONPHONE CAL

29 C » 2 RECORD ON MAG TAPE INDICATES JUST 260 7 ATTENUATOR

30 C CHANGE

31 C K(1208) = MAG TAPE ID NUMBER

32 C K(1209) = HIGHEST WIND SPEED IN KNOTS FOR THE PAST MINUTE.

33 C K(1210) = NUMBER OF CHANNEL ID ERRORS GENERATED BY INTERFACE.

34 C KC1211) = NUMBER OF MISSING DATA VALUES CAUSED BY OVERFLOWING

35 C , FIFO MEMORY.

36 C KC1212> = CHANNEL 1 PISTONPHONE VALUE * 10. USING NEXT TO LAST

37 C .. CAL VALUE. (SHOWS CHANNEL 1 SYSTEM DRIFT)

38 C K(1213) « CHANNEL 2 PISTONPHONE VALUE 10. USING NEXT TO LAST

39 C CAL VALUE. (SHOWS CHANNEL 2 SYSTEM DRIFT)

4Q C K(1214) « YEAR

41 C K(1215) TO K(1224) = 0 (NOT USED)

42 DO 460 J-1215*1224

43 460 K(J)a0

44 C

45 C STEMl ALLOWS CREATION OF SPECIAL SYSTEM MAG TAPE. ' 46 C P0WF5 SETS UP POWER FAIL SAFE.

47 C

39
48 CALL STEMl ( 1

)

49 CALL P0WF5(NPF)

5Q ALGC«1 ./ALOGCIO. ) 51 C

52 C NFIL + 17 « NUMBER OF LINES PER PAGE IN PRINTOUT53 C PCAL « PISTONPHONE DB VALUE.

54 C

55 NFIL«34

56 NTIME=0

57 M«0

58 N»0

59 PCAL=124.

6fl : JPG = 1 61 VrRITE(3^220)

62 220 FORMAT C 3/* 'PUT SSI UP FOR PISTONPHONE CAL. (NOT NOW)')

63 WRITE<3*25)

64 25 FORMATC'PUT SS2 UP TO CHANGE 2607 SETTINGS. (NOT NOW)')

65 KK=ISWCH(0)+ISWCH( 1 )+ISWCH(2)+ISWCH(3)+l

66 GO TO(340*341 )*KK

67 341 WRITE(3>342)

68 342 F0RMAT(3/* 'PLEASE PUT ALL SENSE SWITCHES DOWN. ')

69 343 KK=:ISWCH(0) + ISWCH( I ) + ISWCH(2) + ISWCH(3) + l 70 GO TO(340*343)/KK

71 340 J¥AY«0

72 WRITE(3*73)

73 73 F0RMAT(2/* 'SET INTERFACE CLOCK TO CORRECT TIME.')

74 CALL TOGLE

75 . WRITE(3*138)

76 138 FORMAT( 'ENTER YEAR DAY TAPE# (3 NUMBERS ON ONE LINE)')

77 READ(3*4)JYEAR* JDAY^NTAPE

78 4 . FORMAT(FF)

79 * K( 12Q8)«NTAPE

8Q K( 1214)»JYEAR

81 CALL CLOK(JHR« JMIN/ JSEC)

82 JHOLD«JHR

83 WR1TE(3#270)

84 270 F0RMAT(3/* 'TURN ON HIGH SPEED PAPER TAPE READER.')

85 WRITE(3*271)

86 271 FORMATCPUT CAL TAPE (FROM CHECK PROGRAM) IN READER.')

87 CALL TOGLE

88 C

89 C READ CAL TAPE TO OBTAIN SLOPE OF LINEAR TRANSFER FUNCTION

9Q C RELATING DB TO ADC VALUE.

91 C

92 READ(4*4)JYRC*JDC*JHC*JMC#FACT1*FACT2

93 WRITE(3*272)

94 272 FORMATCTURN OFF HIGH SPEED PAPER TAPE READER.')

95 WRITE(3*7)

96 7 F0RMAT(3/* 'MOUNT DATA TAPE & BRING TO LOAD POINT & ON LINE.')

97 207 CALL DMAMA6(MAG)

98 MAGGsMAG

99 IF(MAG-3)207*135*207

JIOQ 135 WRITE(3#240)

101 240 F0RMAT(3/* 'DO THE FOLLOWING FOR BOTH 2607 UNITS.')

40
102 WJlITE<3*24l)

103 241 FORMAT (3X^ 'SET VARIABLE GAIN CONTROL TO CAL POSITION.')

1 04 WRITEC3*242)

105 242 F0RMAT<3X* 'SET OUTPUT ATTENUATOR TO XI POSITION.')

106 WRITE(3*243)

107 243 F0RMAT(3X*'A WT. BUTTON SHOULD BE OUT.')

1 08 WRITE(3*244)

109 244 FORMAT (3X* '50 MV INTERNAL REFERENCE BUTTON SHOULD BE OUT. ')

110 WRITE<3*280)

Ul 280 F0RMATC3X* 'SET 2607 OUTPUTS TO LOG^ DC^ RMS* & .1 SEC.')

112 CALL TOGLE

1 13 WRITE(3>245)

1 14 245 FORMATC 'PUT PISTONPHONE ON CHANNEL 1.')

115 WRITE<3*246)

116 246 FORMATC 'OBTAIN 44 DB METER READING BY ADJUSTING')

117 WRITE<3*248)

1 18 248 F0RMATC3X, 'INPUT ATTENUATOR & SENSITIVITY SCREW.')

119 WRITEC3*247)

120 247 FORMATC 'REPEAT ABOVE FOR CHANNEL 2.')

121 CALL TOGLE

122 295 VRITEC3*281)

123 281 FORMATC 'HAVE A WT. BUTTON OUT ON BOTH 2607 UNITS.')

124 WRITEC3#250)

125 250 FORMATC 'PUT PISTONPHONE ON CH 1* HAVE METER READ ABOUT 44 DB. y

126 CALL DATAC JXX* JRAWl* jRAW2#3) - - 127 CALL INTLC5*2)

128 WRITEC3#251

)

129 251 FORMATC 'ENTER ATTENUATOR SETTING WHILE PISTONPHONE IS ON. ')

13 0 READC3>4)PSET1

131 AJR1=JRAW1

132 KC1207)=1

133 OCONl^^CONl

134 CON 1 =PCAL-FACT1 *AJR1

135 D6«C0N 1 + FAC T I AJR

1

136 KKDA»DB*10.

137 CALL DISPCKKDA^O)

138 WRITEC3*252)

139 252 FORMATC 'PUT PISTONPHONE ON CH 2* HAVE METER READ ABOUT 44 DB. y 140 WRITEC3*253)

141 253 FORMATC 'ENTER ATTENUATOR SETTING WHILE PISTONPHONE IS ON. ')

142 READC3*4)PSET2

143 AJR2=JRAW2

144 0C0N2=C0N2

145 C0fI2=PCAL-FACT2«AJR2

146 DB=C0N2+FACT2«AJR2

147 KKDBaDB»lO.

148 CALL DISPCKKDB^O)

149 KC1212)=KKDA

150 KC1213)='KKDB

151 IFCJWAY)262*263*262

152 262 DBLDl aOCON 1 +FACT1 »AJR1

153 DBLD2=0C0N2+FACT2*AJR2

41
1 54 C

155 C CALCULATE SYSTEM DRIFT IN DB FROM PREVIOUS PISTONPHONE READING.

156 C

157 DRFT1=DBLD1-PCAL

158 / DRFT2sDBLD2-PCAL

159 K( 1212)aDBLDl»10.

1 6Q K( 1213)«DBLD2*10.

161 M=M+8

162 WRITE<3^265)DRFT1*DRFT2

163 265 FORMATC'CH 1 DRIFT »'^F8.2, ' DB CH 2 DRIFT a'^F8.2^* DB')

1 641 2 63 JWAY* 1

I 65 31 1 WRITE(3*290

)

166 290 FORMATC 'A VT BUTTON IN* NORMAL NOISE SIGNAL CONDITIONS.')

167 WRITE(3*291)

168 291 FORMATC 'ENTER ATTENUATOR SETTINGS (BOTH ON ONE LINE)')

169 READ(3*4)SET1>SET2

170 NTIME=NTIME+1

171 IF<K(1207))355*356#355

172 356 K<1207)=2

1 73 3 55 M=M+4

1 74 DV1»20.«(ALOG(PSET1/SET1 ) )»ALGC

175 DW2=20.«CALOG(PSET2/SET2) )«ALGC

176 ADW1=ABS(D¥1 )+.5

177 ADW2=ABS(DW2)+.5

1 78 JDWlaADWl

1 79 JDW2aADW2

180 IFCDWl )450*451#451

181 450 JDWla-JDWl

182 451 IF(DW2)452*453*453

183 452 JDU2=-JDW2

184 453 DBDWI=JDW1

185 DBDW2=JDW2

186 C

187 C CALCULATE INTERCEPT OF LINEAR TRANSFER FUNCTION RELATING DB

188 C TO ADC VALUE.

189 C

190 CC0N1=C0N1-DBDW1

191 CC0N2«C0N2-DBDW2

192 CALL INTLCS^l)

193 DO 360 J=l*1200

194 360 K(J)aO

195 CALL CLOKC JJHR* JJMN* JJSEC)

196 JJDAYsJDAY

197 IF<JH0LD-23)422*421*422

198 421 IF< JJHR)422*423*422

199 423 JJDAY=JJDAY+1

200 422 K( 1201 )=»JJDAY

201 K<1202)=JJHR

202 K<1203)=JJMN

203 K( 1204)=JJSEC

204 C

205 C VmiTE SPECIAL RECORD ON MAG TAPE INDICATING NEW PISTONPHONE

206 C READINGS OR 2607 ATTENUATOR CHANGES.

207 C

42
2 08 WRITE(9)K

AAA 2Q9 JCNT«0

C

oil C START TWO CHANNEL DATA COLLECTION.

did r> 2 13

214

2 L 5

2 16 Jo UU Ovi U^i/O

2 17

2 18 O 9 i PriMT TMTIF

2 19 WKi ICiVO/OU ^ 221} o u r U KrlH I \ J 221 UU O 9& O— 1/9

o o ^ 222

223 03d PnMT TMIITT 224 Wn i 1 CivO / c,e, } o o c 225 SURVEY

/5 o ^ d2o rAi T T Fr> O O T r*A! T T FTl

r\ ri d2o TJR TTFr'l.Ol ^.TPR . MTAPF. .IVFAR . .TYPP . .THP . .IMP . .IMP

r\ r\ 1^ 229 FORMAT r U fUUi-i 1 r% *PARF JrnU £< '

/

. i*tJ T A . 0<V/ IV. 'TAPF t rt ~ C« JV '.T*%.1V. / & O/ OA/ 'VFAR X CiTin * /. AT^.'^V. 9/ OA/ * ^ o ^ n •? O O fl i •)/ lO/ XO/ ^ /

OS J 1 M—W— tI O 1 o n— 1 O O '5 AJ U O O /i do4 c O

O c 235 VP& f T % B n 3 u

ifPTa ArO ^ T ^ s n V u ^ TM u O O T doi A 1 rtTM u o o o Iff n Aafl

0*5 0 do 7

If (sfi A —

n

AOUH— U O A fl Ai. t5— u d4 1 VI n Rs n Al uo^u

d42 vernQ^zf) AOlJO^U

2 43 Al JLd id ^ 5* U d44 1/^ a( Idlo toils — n / — U 245 KQ IdUO^^O

d4o Av 1 d U r j ^ u O A "7 tJwm^'*ouuuu

O A O d4o NPr 1 «U

249 JERaO

o c n d 511 JSKP=0

d 51 ALQA»0.

2 52 ALQBaO.

2 53 DO 20 Jl=l/10

254 IF<KSW)316/315/316

255 315 IFCJI-2)316/317/316

43
256 C

257 C THE HEADING IS LONG AND TO ALLOV E>IOUGH TIME FOR ADC VALUE TO

2 58 C DB CONVERSION (CONVERSION HALTS DURING TTY PRINTOUT) THE"

259 C SECOND HALF OF THE HEADING IS PRINTED OUT DURING THE SECOND

26Q C MINUTE OF DATA COLLECTION. BRINGING IN ADC VALUES FROM FIFO

261 C MEMORY (VIA INTERRUPT LEVEL 5) IS HALTED ONLY WHEN THE MAG

2 62 c TAPE IS WRITING (ABOUT .5 SECOND) OR WHEN A NEW PISTONPHONE

2 63 c CALIBRATION OR 2607 ATTENUATOR CHANGE IS REQUESTED BY SSI

2 64 c OR SS2.

2 65 c 266 317 WRITE(3*23)

267 23 F0RMAT(2/* 20X.» 'I - CHANNEL 1 -I I- CHANNEL 2 -I WIND AC

2 68 1 ')

2 69 WRITEO* 90 ) 2 70 90 F0RMAT(5X* 'DAY HR MN SEC IZ 10% 50% LEQ 1% 10% 50% LEQ

271 Ij* PFS err SKIP'*/)

272 KSW=1

273 316 JWMAX=30 00 0

274 C

275 C DO LOOP WHERE ADC VALUES ARE CONVERTED TO DB AND WHERE DB VALUES

276 C ARE BINNED IN 1 DB STEPS.

277 C

2 78 DO 8 JSU1200

279 80 IF( JCNT-J)80* 147* 147

280 147 IF(JCNT-1200 ) 1 00*41*41

281 41 CALL INTL(5* 1

)

282 100 ANVAL«K(J)

283 IF(JWMAX-JWIND)125* 125* 126

284 126 JWMAX«JWIND

285 125 AJ=J

286 A=J/2

287 B=AJ/2.

288 IF(A-B)1 0* 1 1* 1

0

289 C

290 C CHANNEL 1 ADC DATA CONVERSION TO DB

291 C

2 92 10 DBA= C C ON 1 + FAC T 1 »AN VAL

2 93 KDBAaDBA*10.

2 94 CALL DISP(KDBA* 1

)

295 ALQA=ALQA+10.**(DBA/10.

)

296 KPl=DBA+.5

297 IFCKPl-20)8*43* 1 10

298 110 IF(KP1-130 )43*43*8

299 C

3 00 C BINNING CHANNEL 1 DB VALUES IN 1 DB STEPS.

301 C

3 02 43 KPA(KP1-19)=KPA(KP1-19)+1

303 GO TO 8

304 C

3 05 C CHANNEL 2 ADC DATA CONVERSION TO DB

306 C

307 1 1 DBA«CC0N2+FACT2«ANVAL

308 KDBA»DBA«10.

3 09 CALL DISP(KDBA*2)

44
31 Q ALQB«ALQB-M0.««(OBA/10. > 3U KPI«DBA+f5

318 IFCKPl-20)8> 68^ 1 1

1

313 in IFCKP1-130)62* 62^8

314 C

315 C BINNING CHANNEL 2 DB VALUES IN I DB STEPS.

316 C

317 62 KPB(KP1-19)=KPB(KP1-19)+1

318 8 K(J)=DBA»10.

319 CALL CLOKCJHR* JMIN* JSEC)

320 120 IFCJH0LD-23)122* 123* 122

321 123 IF(JHfl) 122a 124* 122

322 124 JDAY«JDAY-i-l

3 23 122 JHOLD*JHH

324 KCl201)*JDAy

325 K<1202)=JHR

326 K(1203)»JMIN

327 KC1204)~JSEC

328 K(1205)=NPF

329 K(1210)=JEROR

33D JERsJER+JEROR

331 K( 121 1 )«JSKIP

332 AJWMXaJWMAX

333 VOLT«-.0 0821541«AJWMX*4.22168

334 JWM«12.5815»VQLH-3.53

335 . IF(JWM-5>150* 151* 151

336 15Q J¥M»0

337 151 K<1209>«JWM

338 . IF(JVM1-JVM)127* 128* 128

339 127 JWM1«JWM

34Q C

341 C WRITE DATA FOR CURRENT MINUTE ON MAG TAPE.

342 C

343 128 WRITE<9)K

344 NPFl-NPFl+NPF

345 JSKP«JSKP+JSKIP

346 JSKIP-0

347 JEROR«0

348 NPF«0

349 JCNT«0

350 KK«ISWCH<1 )+ISWCH<2)+l

351 GO TO(160*320)*KK

352 320 IFCJ1-10)156*20*20

353 C

3 54 C HALT DATA COLLECTION IF MAG TAPE IS FULL. (EOT)

3 55 C

3 56 160 CALL DMAMA6(MAG>

357 IF(MAG-17)401*402*402

3 58 401 CALL INTL<5*2)

359 20 CONTINUE

3 60 28 N1PA«60

361 N10PA:b600

3 62 N50PA»30 0 0

3 63 N1PB«60

364 N10PBS600

45
N50PBa3000

C

C COMPUTE 10 MINUTE VERSION OF LEQ.

C

LEQA"10.«ALO6(ALQA/6000« }/AL06( 10.

)

LEQB«10.«ALO6CALQB/6000« >/AL0QC 10.

JUMA-0

JUMB«0

C

C DO LOOP TO ADD UP DB BINS AND DETERMINE 1 X« 10%# 50% LEVELS.

C

DO 6Q J2sl^lll

J3»1 12-J2

JUMAaJUMA+KPAC J3

)

JUMB«JUMB+KPB( J3

>

IF<JUMA-N1PA)45*46*46

46 N1PA*30000

KlAa»J3 + l9

45 IF(JUMA-N10PA)47*48*48

48 Nl0PA=3O000

K10A=J3+19

47 IF(vJUMA-N50PA>52*51* 51

51 N50PA«3aOOO

K50A=J3+19

52 IFCJUMB-N1PB)54*55*55

55 NIPB«30(I00

KlB*J3-»-19

54 IF(JUMB-N10PB)56*57*57

57 NlOPB=30flOO

K10B=J3+19

56 IF(JUMB-N50PB)60*59*59

59 N50PBa3UQ00

K50B*J3*19

60 CONTINUE

C

C OUTPUT DATA TO TTY EVERY 10 MINUTES.

C

76 VRITEC 3^ 3 5 )N/ JDAY# JHR« JMIH, JS EC« Kl A^ Kl OA/ K50A/ LEQA^ Kl Kl OB^ KB

1 EQBj. JWMl/NPFl^ JER* JSKP

35 FORMATC 14/ 14/ 13/ 13/ 13/ IX/ 15/ 14/ 14/ 14/ IX/ 15/ 14/ 14/ 14/ IX/ 15/ 14/

i

1 ) 156 KKeISWCHCn + 1 GO TO(301/302)/KK

302 WRlTE(3/303) JDAY/ JHR/ JM IN/ JS EC

303 FORMATC ( '/ 14/ 13/ 13/ 13/ ' LAST TAPE RECORD) PUT SSI SS2 DOWif

304 Kk»lSWCH(l ) + lSWCH(2> + l GO TOC295/304)/KK

301 KK«ISWCHC2)+1

GO TOC307/308)/KK

308 ¥RITE<3/ 309) JDAY/ JHR/ JMIN/JSEC

309 FORMATC ( */ 14/ 13/ 13/ 13/ ' LAST TAPE RECORD) PUT SS2 DOWN.')

310 KK«ISWCHC2)+1

GO TQ(311/310)/KK

46
A 1 fl *i JLO ourn 7

AO n Ann 4 U U

pnw IF CURRENT PAGE IS FULL START NEW PAGE.

4AOS& 3 t Ff MflRE^ 2 6j 1 j 3 1 A4 Oc AO 1 I Ff MrtR? T^^j ^.10

A4^O 71 oI'lo nu nni,AJ wwX '^'^i .i=iiM0R2 ci~i#iiwrvCtf

APR 4 £ O

rAi L LFD

? 1

1

WW* CONTINUE

A'^ 4 O nU w O c« ¥RITE(3j350>

All 4 O i o s"5 nu p w r\i iin is / 4 O ^ 400 A 1 Rn Tn

404 /I A A4 nU ^0

Al4 O 3 Am4 U O FORMATS * f I*?^ * LA^T TAPF RFCflRn^ FMn OF TAPF. * 4A O

1 AO UP T TF^ . Ad A ^ A'\7 FORMATS 'MOUNT NEW DATA TAPEj RESET CPUj GO TO *j1QHX*8Q'^ RUN 5 ATS 4 v} O

439 410 FORMATION TTY DO FOLLOWING 'L INE FEED 6 CARRIAGE RETURN '/

J

44Q REWIND 14

441 405 GO TO 40 5

END

47
6. APPENDIX B. PROGRAM LISTINGS FOR ASSEMBLY LANGUAGE SUBROUTINES

Appendix B contains program listings for "STEMl", "DATA", "LFD" , "P0WF5", "MULTIl", "MMON", "DMAMAG" , "INTL", "DISP" , "LEADR", and "CLOK"

programs

.

48
n/ll/74J5 'STEMi ' PAGE 1

1« 1 l/n/74i5 'STEMl

p ORIG X'2730

'kw

* THIS PROGRAM WHEN Called by n. ftirtram matm

/I *• « PROGRAM DUMPS ALL OF CORE ONTO MAG TAPE

c;w

« SO THAT THE SYSTEM CAN BE STARTED UP BY:

* 1 ) MOUNTING SPECIAL SYSTEM TAPE ON DMA DRIVE

7 « 2) PUSH RESET ON CPU

- o « 3) PUSH MAG TAPE LOAD BUTTON N TIMES

Q • WHERE N = I + 2 X NUMBER OF

A.1 nU « PROGRAMS AHEAD OF

1 1 « DESIRED PROGRAM

A1 2b * 4) PUSH RUN ON CPU

1 3 « 5) PUSH RUN ON CPU

*

1 5 SSO* SSU SS2 MUST BE UP WHEN THIS

1 6 « PROGRAM IS iCALLED TO CREATE SPECIAL

1 7 * MAGNETIC TAPE.

1 8

A

! 9y

« THIS PROGRAM EXAMINES THE PEAT TABLE

• TO CHECK THE SYSTEM DIRECTIVE INPUT

pCa 1A « ASSIGNMENT. <LU 1 ) IF IT IS ASSIGNED

22to to TO THE HIGH SPEED READER THE PROGRAM

23to W « CHANGES THE ASSIGNMENT TO THE TTY.

24 « 25to W « IN FORTRAN PROGRAM USE:

26to W * CALL STEMl CNUM)

27to 1 WHERE!

28 « NUM « NUMBER: OF PROGRAMS

29 ALREADY ON MAG TAPE

30 « 273 0 0V 082 U w to 3 1 STEM DATA X*82'

a?*? w 1 f O X QV 00V w 0U 32W to NUM DATA 0

2732 0 080 33 SMB 0

4^ f W O 90 59 3/1 LDX X'59' ADDRESS OF PEAT TABLE

8801 35 LDW • I SYSTEM DIRECTIVE UNIT #

2735 F7E5 3 6 GMW X140a

273 6 0 8 60 37 SEQ IS IT HIGH SPEED READER?

273 7 1 73A 38 JMP C0NT2 NO

39 LDW XDOO YES* CHANGE TO TTY

273 9 780 1 40 STW • I osno b.* 1A G0NT2 SSO

1 73n A2 JMP SSI

273C 1 7nA 43 JMP RET

273D to f ^ 08D0 SSI SSI

273E 1 740 JMP SS2

273 to r w F4 1 7CA 4 6 JMP RET

2740 08EQ /l7 SS2 SS2

2741 1 7A3 JMP CONT

2742 to f T to 1 7CA Zl9 JMP RET

2743 0 080 50 CONT SMB 0

2744 to f **** 80 5C 51W A LDW X'5C'

2745 7f 7EBto*»LJ 52to STW CORE LAST CORE LOCATION

2746 A7E2 53 ADD Dl

7 7D/1 5A STW CSIZE TOTAL # OF WORDS IN CORE

27AR to # *4 O STAT4 DIN 2*0 MAG TAPE STATUS

2749 OAID 56 SLL 13

274A 0820 57 SAM

49
U/1 1/7415 'STEMl *

c 1 to 1 70A RX\ AAV INSU

07FR LDX CORE W w u

oou u ftd JUW w • n

* u P7AF 7 7Fn STW S F

P 7/1 F n 1 DXS A o o u u « Au 2751 71 7EC t CM STW SE

P7*iP 3» 1 W i fts MUM AV U& A P7*?'^ c r so OOMv ftft Ai«A^ W • u P 7«nA OAl 1 ft7 WA^M 1A P7«^ ^ 7 7 FA ftft Q 1 w MtTMP

P7^ ft JII.O n Rfiu nu ftQ

P7'=>7 1 7*^0 70 O AV X ~, _

I 7 AF 7 1 \J wA« A A nppfi 7P P* 0 U O 1 u

7*1 ^AP

* » V if 7A* *• .IMP

75 1A U O 1 u 7 ft ^AP

P 7 SF 77 .IMP <;k IP

P7*?F R 7 FR 7R Aat AiTW P7fin fl IP 1 701 7 A/U A Pib # 1A Of& fi\ 1 %3 I R 7 FP o u L/ A P7ftP n '^p ft DOT b # O

P 7 ft'^ nppfl Ob' *>TATT DtN b # U P7 ft/l HAI 7 ow SLL 7

P7 A<=; RAo*«

1 7 ft^ R5O w .IMP J A A w on fit F7F^ Ro fto AMD XD#VU IA ROO U

M O U w P7 AO 1 7np oo .IMP FRR

P 7 AA flO 7r CMFA O 7 MTTMP

P7 R7 FP on7l* Til U A Of fiC 7 7 FA 07 A1 O A W MTIMP

P7 Arj u o u u OP7C

P7 AF 70 .IMP

P 7 AF o / c<o OA7*i nriNT oun 1 I A

I r>u A/7 no

P77fl 7 7F7 0570 SAW

P 7 7 1 O 7/ FOC>7 Q7 ftO A«l/

W

T T DAT^

P77P 7/ 7FR / CO 077 J 3 A W MFM

OTTX P<S 7( 7F( Ci OR70 MA R

OO7 7

P77^ 7 7FR inn ^ A W MITM rA C^rA P77 A fk 7nA 1 n t I nu ncw O AT7Fb Ci OfTl & 1 1 1 7 7F7 A1 npU b - ^ 1 w UPw w P77R

P770 Q 7 FR 1

t flA U •! Ai.A/A pnRF v> unc> P77A 7Rn n t n 5 SAW « A

u 277B 277E 10 6 JSX MAG

P77f: nU nU nU nV 1 n 7 riArf HI TA P77n el 1 1 U 1 7 7r J.1 ORu o 101 no7

JMP STOP

1 1 n 1. i u *" MAPin (Iv3 TAPE SECTION

1 1 I A i i P77F n 1 Afl U 1 4U 1 t P MA n CXA

277F 97E8 113 LDX CORE

2780 0501 114 DXS 1

PAGE

NEED WRITE RING

SAVE CONT. OF CORE END

SAVE CONT. CORE END -1

# PROGS ALREADY ON TAPE

X2

IS TAPE EMPTY?

NO

YES

MAG TAPE STATUS

CONTROLLER BUSY?

YES* Wait

TAPE UNIT BUSY?

YES, WAIT

START ADDRESS « END CORE

WON'T USE DATA

READ RECORD

MAG TAPE STATUS

DONE READING RECORD?

NO, WAIT

KEEP BITS 14*15

RATE OR TAPE ERROR

MORE TO SKIP

SET # OF WORDS = 9

SET LOADER" START

ADDRESS

60 WRITE LOADER ON TAPE

SET START ADDRESS « 0

SET # WORDS « ALL OF CORE

CALCULAtE CHECK SUM

STUFF C SUM IN CORE END

WRITE ALL CORE ON TAPE

HALT, TAPE IS DONE

IF RUN IS PUSHED

50
11/11/74:5 'STEMl

278 1 7800 115

2782 0220 11 6 STATl

2783 0810 1 1 7

2784 1 782 118

2785 OA 1.1 1 1 9

2786 0810 1 20

2787 1 782 121

2788 0A13 122

2789 0810 123

278A 1 782 124

278B 8 7E8 125

278C 032

1

126

278D 8 7E7 127

- 278E 0324 128

278F 0220 1 29 STAT 2

2790 OAl 7 130

2791 0820 131

2792 1 78F 132

2793 E7E4 133

2794 0800 134

2795 1 7B2 135

2796 0 7 PR 13 6

2797 050 1 13 7

2798 980 0 138

2799 1 800 139

279A 0 080 140 RING

279B 20 6E 141

279C CEC5 142

279D C5C4

279E 0 080 143

279F 20 6E 1 44

27A0 D7D2 145

27A1 C9D4

27A2 0 080 146

27A3 20 6E 147

27A4 D2C9 148

27A5 CEC7

27A6 0 00 0 1 49

27A7 1 748 150

27A8 0080 U V W V 151 Aw* CERR

27A9 20 6E 1 52

27AA C2C1 1 53

27AB C4A0

27AC 0 080 1& 54w*t 27AD 20 6E X.1 55w w 27AE C3D3 15 6

27AF D5CD

27B0 0000 157 * w f 27B1 1 7A8 *_1 58w w 27B2 0 080 1 59 ERR

27B3 20 6E 1 60

27B4 D4C

1

1• 61w * 27B5 DOCS

27B6 0 080 1 62

27B7 A.1 ^v? WW

27B8 C5D2 1 64

27B9 CFD2

PAGE

STW * 0 SAVE RETURN

DIN 2,0 MAG TAPE STATUS

SAP CONTROLLER BUSY?

JMP STATl YES* Wait

SLL 1 SAP TAPE UNIT BUSY?

JMP STATl YES* WAIT

SLL 3

SAP IS TAPE REWINDING?

JMP STATl YES* WAIT

LDW MEM

DOT 2*1 SET MEMORY START ADDRESS

LDW WC NUMBER OF WORDS

DOT 2*4 SET WORD COUNT* WRITE REG

DIN 2*0 MAG TAPE STATUS

SLL 7

SAM DONE WRITING A RECORD?

JMP STAT2 NO* WAIT

AND X0180 KEEP BITS 14*15

SAZ

JMP ERR RATE OR TAPE ERROR

LDX CORE

DXS 1 LDX * 0 GET RETURN

JMP • 0 DO THE RETURN

SMB 0 JSX X*6E'

TEXT 'NEED'

SMB 0 JSX X'6E'

TEXT 'WRIT'

SMB 0

JSX X'6E'

TEXT 'RING'

HLT MOUNT TAPE* PUSH RUN

JMP STAT4

SMB 0 JSX X'6E'

TEXT 'BAD '

SMB 0

JSX X'6E'

TEXT 'CSITM'

HLT REDO MAG TAPE ' JMP CERR IF RUN IS PUSHED

SMB 0 JSX X'6E'

TEXT 'TAPE'

SMB 0 JSX X'6E'

TEXT 'EROR'

51
1 l/U/74t5 'STEMl ' PAUL ^ 27BA QOOO 165 HLT TAPE ERROR* REDO

27BB I 7B2 1 66 JMP ERR IF RUi»I IS PUSHED

1 67 «

1 68 « RESTART SECTION

1 69

27BC 0000 I7a SMB HLT (LOADER HALTS HERE)

27BD 0089 171 RESTART SMB S

27BE 0050 172 SQM

27BF 27D5 173 JSX CSUM CALCULATE CHECK SUM

27C0 97E8 1 74 LDX CORE

27C

1

F80 0 175 CMV « 0

27C2 08 60 176 SEQ DO CHECK SUMS AGREE?

27C3 1 7A8 177 JMP CERR NO

27C4 97EB 178 LDX CORE

27C5 8 7 ED 179 LDW sr

27C6 780(1 18(1 STW * a RESTORE CORE END

27C7 050 1 181 DXS 1 27C8 87 EC 182 LDW SE

27C9 7800 183 STW * 0 RESTORE CORE END -1

27CA 0 080 184 RET SMB 0

27CB 2083 185 JSX X'83 * RETURN TO C. FORTRAN

18 6 « 187 LOADER SECTION

188 * 27CC 0100 189 LOADER CLR

27CD 0089 190 SMB SMB

27CE 7 7BC 191 STW SMB

27CF 0321 192 DOT 2* 1 START ADDRESS » 0

27Dfl 8008 193 LDW 8 NUMBER OF WORDS IN CORE

27D1 0326 194 DOT 2 J 6 READ RECORD

27D2 fl089 195 SMB SMB GO TO HALT

27D3 1 7BC 196 .TMP JtlST ' BEFORE RESTART

27D4 0w 00W V 0V 197 CSIZE D 0 # OF WORDS IN CORE

198 «

1 99 » CHECK SUM ROUTINE* ANSWER IN ACR«

20 Q * 27D5 0140 20 1 CSUM CXA

27D6 97EB 202 LDX CORE

27D7 0501 203 DXS 1 27D8 7800 204 STW • 0 SAVE RETURN

27D9 0 1 0.Q 205 CLR

27DA 1150

1

20 6 AGAIN DXS 1 27DB 1 7E0 207 JMP ADDUP

27DC 97IES 208 LDX CORE

27DD 0501 209 DXS I 27DE 980 0 21

Q

LDX * 0 GET RETURN

27DF 1800 21

1

JMP 0 DO THE RETURN

27EQ A800 212 ADDUP ADD • 0 SOM core (EXCEPT LAST 2)

27EI 1 7DA 213 JMP AGAIN

214 » END OF CHECK SUM

27E2 000 1 215 Dl D 1 27E3 0Q0 9 216 D9.. D 9

27E4 0180 217 XQ180 D X'180 * 27E5 1 40 0 218 X1400 D X*1400

27E6 ODD 0 219 XDOO D X*DOO

27E7 0000 22Q WC D 0

27E8 0000 221 MEM D 0

52
11/11/7415 'STEMl PAGE

27E9 27CC

27EA 0000

27EB 0000

27EC 0000

27ED 0000

222 LLOAD

223 NUMP

224 CORE

225 S£

226 SF

227

D LOADER

DATA 0

D 0

D 0

D 0

END

ERRORS

53
11/11 /74t5 *STEM1 * PAGE

ADDUP 27E0 AGAIN 27DA

CONTl 276F CQNT2 273A

CSUM 27D5 Dl 27E2

LLOAD 27E5 LOADER 27CG

NUM 2731 NOMP 27EA

RING 279A SE.. 27EC

SMB 27BC SSI 273D

STAT2 278F STAT3 2763

STOP 277C WG 27E7

XDOO 27E6

PAS?

CERR 27A8 CONT 2743

CORE 27EB CSIZE 27D4

27E3 ERR 27B2

MAG 277E MEM 27 E8

RESTART 27BD RET 27CA

SF 27ED SKIP 2759

SS2 2740 STAT I 2782

STAT4 2748 STEM 2730

X0180 27 E4 X1400 27E5

54
12/20/7^14 *DATA* PAQE 1

1

f 12/20/74:4 •DATA*

2

- ORIG -X*2800'

3 * PROGRAM BRINGS IN DATA FROM INTERFACE

4 * AND SENDS DATA FROM A DESIGNATED

5 CHANNEL TO THE DIGITAL DISPLAY ON THE

6 INTERFACE.

7

8 IN FORTRAN USE:

9 CALL DATAC JU IN D> JRAW 1 , JRAW2> JCH ) 10 WHERE

1

1

* JWIND = DATA FROM INTERFACE WIND CHANNEL

12 * JRAWl = DATA FROM INTERFACE CHI

13 JRAW2 = DATA FROM INTERFACE CH2

14 * JCH « 0 (SEND WIND TO DIGITAL DISPLAY)

15 * « 1 (SEND CHI DATA TO DIGITAL DISPLAY

16 « 2 (SEND CH2 DATA TO DIGITAL DISPLAY

17 * > 2 (SEND NO DATA TO DIGITAL DISPLAY)

18 * 2800 0082 19 DATA DATA X'82'

2801 0000 20 JWIND D 0

2802 0000 21 JHAU 1 D 0

2803 0000 22 JRAW2 D 0

2804 0000 23 JCH D 0

2805 03F6 24 DOT 15# 6 MASTER RESET TO FIFO

2806 806C 25 LDW DINT

2807 0080 26 SMB 0

2808 7015 27 STV X' 15*

2809 0080 28 SMB 0'

280A 2083 29

30 * JSX X'83' RETURN TO C FORTRAN

31 * INTERRUPT LEVEL 5

32 * 280B 008A 33 INT SMB TX

280C 6069 34 STX TX

280D 7 06A 35 STW TA

o a /a IT 36 DIN 15#2 BRING IN DATA FROM FIFO

O C7 LT 280r o /a ^ o 7068 37 STW T

28 1

0

0A0E 38 SRL 14

281 1 F065 39 CMW Dl

2812 0860 40 SEQ IS DATA FROM WIND?

2813 101D 41 JMP A NO

2814 8068 42 LDW T YES

2815 E06B 43 AND X3FF EXTRACT WIND DATA

2816 9001 44 LDX JWIND

2817 7800 45 STW * 0 STORE WIND DATA

2818 9004 46 LDX JCH

2819 8800 47 LDV * 0

281A 0800 48 SAZ DISPLAY WIND VALUE?

281B 1047 49 JMP RET NO

281C 1033 50 JMP DISP YES

281D F067 51 A CMW D2

281E 0860 52 SEQ IS DATA FROM CHI?

28 IF 102A 53 JMP B NO

2820 8068 54 LDW T YES

2821 E06B 55 AND X3FF EXTRACT CHI DATA

2822 9002 56 LDX JRAWl

2823 7800 57 STW 0 STORE CHI DATA

55
12/20/7414 *DATA' PAGE

2824 9004 58 LDX JCH

2825 8800 59 LDVil 0

2826 F065 60 CMw Dl

2827 0860 61 SEu DISPLAY CHI DATA?

2828 1047 62 JMP RET NO

2829 1033 63 fcWP DISP YES

282A 8068 64 B T

282B E06B 65 AND X3FF EXTRACT CH2 DATA

282C 9003 66 LDX JRAU2

282D 7800 67 STV( 0 STORE CH2 DATA

282E 9004 68 LDX JCH

282F 8800 69 LDW 0

2830 F067 70 CMW D2

2831 0860 71 SEQ DISPLAY CH2 DATA?

2832 1047 72 JMP RET NO

2833 8068 73 DISP LDV T

2834 E06B 74

75

AND X3FF EXTRACT DATA

. . 76 CONVERT TO BCD

77

2835 0810 78 SAP NEGATIVE VALUE?

2836 0110 79 CMP YES« ABSOLUTE VALUE

2837 F066 80 CMV D9999

2838 0890 81 SLE TOO BIG?

2839 8066 82 LDW D9999 YES^ LIMIT VALUE

283A 204A 83 JSX RM10 REMAINDER SUBROUTINE

283B 0000 84 DI64 D 0 LEAST SIG* DIGIT

283C 204A 85 JSX RM10

283D 0000 86 DIG3 D 0

283E 204A 87 JSX RM10

283F 0000 88 DIG2 D 0

2840 0A14 89 SLL 4 MOST SIG* DIGIT IN ACR

2841 C03F 90 ORI DiG2

2842 0A14 91 SLL 4

2843 C03D 92 ORI DIG3

2844 0A14 93 SLL 4

2845 C03B 94 ORI DIG4 PACKED BCD IN ACR

2846 03F2 95 SEND DOT 15>2 SEND TO DISPLAY

2847 9069 96 RET LDX TX RESTORE INDEX

2848 806A 97 LDV TA RESTORE ACR

2849 0015 98 INR 5 INTERRUPT RETURN

284A 7063 99 RM10 STV ASAV

284B 0800 100 SAZ CHECK FOR ZERO NUMERATOR

284C 104F 101 JMP $3

284D 7800 102 ST« 0 STUFF ZERO REMAINDER

284E 1801 103 JMP * 1 284F 0A1

1

104 SLL 1 2850 A063 105 ADD ASAV

2851 7064 106 STW TSAV

2852 0A04 107 SRL 4

2853 A064 108 ADD TSAV

2854 0A04 109 SRL 4

2855 A064 1 10 ADD TSAV

2856 0A04 1 1

1

SRL 4

2857 A064 112 ADD TSAV

2858 A065 113 ADD Dl

2859 0A05 114 SRL 5

56
12/20/74t4 *DATA'

285A 7064 115 STV/

285B 0A13 116 SLL

285C A064 117 ADO

285D A064 118 ADD

285E 0110 119 CMP

285F A063 120 ADD

2860 7800 121 STV^ « 2861 8064 122 LDW

2862 1801 123 JHP > 2863 0000 124 ASAV D

2864 0000 125 TSAV D

2865 0001 126 Dl D

2866 270F 127 D9999 D

2867 0002 128 D2 D

2868 0000 129 T DATA

2869 0000 130 TX D

286A 0000 131 TA D

286B 03FF 132 X3FF D

286C 280B 133 DINT D

134 END

TSAV QUOTIENT

3

TSAV

TSAV

-10*QUOTIENT

ASAV

0 REMAINDER

TSAV QUOTIENT IN ACR

10

0

19999

2 (NOT IN BASIC BCD)

0

0

0

X»3FF*

INT

N 0 ERRORS

57
12/20/74t4 *DATA* PAGE

281D ASAV 2863

D 2 286? D9999 2866

DIQ3 283D DIG<I 283B

I NT 280B JCH 2804

J WIND 2801 RET 2847

T 2868 TA 286A

X 3FF ' 286B

PAS?

B 282A Dl 2865

DATA 2800 DIG2 283F

DINT 286C DISP 2833

JRAV/1 2802 JRAW2 2803

RM10 284A SEND 2846

TSAV 2864 TX 2869

" " ''I'

58
l2/20/74t3 'LFD' PAGE 1

1

• 12/20/74t3 •LFD'

2 ORIG X»2870»

3 OUTPUTS LINE FEED TO TTY (OR TEK TERMINAL)

* IN FORTRAN USEt

5 CALL LFD

6

2870 0082 7 LFD DATA X ' 82 • 287 1 02E0 8 A DIN 1 A« 0 BRING IN TEK STATUS

2872 0810 9 SAP IS TEK STILL CONNECTED?

2873 107 1 10 IMP MA

28741 03EA 1

1

B DOT 14> 10 SELECT TEK TERMINAL

CO > 3 0 10 f c> A1 Cs LDw Lr I HAD I IMP KFirn

COo an f\ / O DOT 14> 14

2877 02E0 14 C DIN 14#0 TEK STATUS

O O O Q c8 /o 0A 1 7 SLL 7

2879 0820 16 SAM DONE YET?

287A 1077 17 JMP C NO

287B 03E0 18 D DOT 14^0 DISCONNECT TEK TERMINAL

287C 0080 19 SMB 0

287D 2083 20 JSX X'83' GO BACK TO C. FORTRAN

287E 008A 21

22

LF DATA

END

X*8A«

N 0 ERRORS

59
12/20/7413 'LFD' PAGE 2

A 2871 B 2874 C 2877 D 287B

LF 287E LFD 2870

PAS?

60
11/6/74J5 'P0WF5' PAGE

1 1 1/6/7415 'P0WF5 ' 2 ORIG X '2890 * 3 * 4 PROGRAM IS A POWER FAIL SAFE ROUTINE.

5 SET POWER FAIL SAFE IN FORTRAN PROGRAM BY:

6

« CALL P0WF5CNPF)

7 WHERE NPF IS THE NUMBER OF POWER INTERRUPTS

8

* THAT OCCURED.

9

1 0 * LOCATION X '4B' IS THE INTERRUPT ENABLE

1 1 * STATUS WORD.

12 * BITS 0 - 1 1 OF LOC X'4D' SET = #

13 * OF POWER FAILURES.

14 * BITS 12-15 OF

1 5 LOCATION X '4D' ARE SET TO U2^3>4 TO

1 6

# SHOW HOW FAR THE POWERFAIL SAFE

1 7 ROUTINE GOT.

1 8 THIS PROGRAM CAN RESTART TTY & MAG TAPE 10

1 9

« IF A POWER FAILURE OCCURS.

20

0 00 7 21 INT EQU 7

2890 0 082 22 POWF DATA X'82 ' 2891 0000 23 NPF D 0 2892 9091 24 LDX NPF

2893 010 0 25 CLR

2894 7101 2 6 STW TPF SET TPF = 0 2895 780 0 27 STW « 0 SET NPF = 0 2896 8102 28 LDW Dl

2897 0080 29 SMB 0 2898 7 04D 30 STW X'4D' SET = 1 2899 8109 31 LDW DSMBH

289A 0080 32 SMB 0 289B 701 D 33 STW INT+INT+lNT+INT+1

289C 0 027 34 ENB INT

289D 0080 35 SMB X'83 • 289E 2083 36 JSX X'83 ' RETURN TO FORTRAN PROGRAM

37 « 38 « POWER DOWN SEQUENCE

39

289F 0 0 8A 40 SMBH SMB S

28A0 0 OAO 41 MSK MASK INTERRUPTS

28A1 60 FE 42 STX PFSX SAVE INDEX VALUE

28A2 70 FD 43 STW PFSA SAVE ACC. VALUE

44 « 45 « DISCONNECT ALL

46 « PERIPHERAL DEVICES

47 « 28A3 910 6 48 LDX XI 0 GET DEVICE COUNT

28A4 8107 49 LDW X3 0 0 DOT 0>0

28A5 70A6 50 STW $ + 1 SET TO EXECUTE

28A6 0000 51 D 0 2 8A7 Al 0 6 52 ADD XI 0 GET TO NEXT DEVICE

28A8 050 1 53 DXS 1 DEC COUNT

28A9 1 0A5 54 JMP $-4 NOT DONE

28AA 880 1 55 LDW » 1 GET CELL 0 CIX = FFFF)

28AB 70FF 56 STW PESO SAVE VALUE IN LOC 0 28AC 809F 57 LDW SMBH

61
I Air \jf f -i • PACaE

28AD n n a n c o. 90 SMB 0 28AE T n "7 1^ c o STW X'7D' PUT SMB IN LOG X'TD'

28AF o U U 1 OU LDW JMPH

28B0 n n a n U U o U ol SMB 0 28BI •7 fl <7 C STW X'7E' PUT POWER UP JMP IN LOG X'

28B2 o 1 U o AlOvi LDV XI 07D

28B3 n n a n 5*1 SMB 0 28B4 •7 n n n 7 U U U o5 STW 0 STORE JMP TO X'7D' IN LOG 0

28B5 o n o 1 A A OO LDX NPF

28B6 ct cz n n ooU U AO / LDW 0

28B7 A I U c AOOO ADD Dl

28B8 T CP rt n 780 0 A O o9 STW « 0 NPF»NPF+1

28B9 a 1 n 1 o 1 0 1 7 nU LDW TPF

28BA A 1 U c

•7 1 7 1 ADD Dl

28BB 710 1 id STW TPF TPF = TPF + I 28BC n A 1 /i OA 1 4 7 J SLL 4 MOVE 4 BITS TO LEFT

28BD A 1 ft O A 1 U v3

"7 A 74 ADD D2 SHOWS PFS GOT TO HERE

28BE ft A c? n

0 0 80 •7 C 7 b SMB 0 28BF 7U4D •7 A 7 O STW X'4D' RESTORE PF STATUS

28C0 n n n n0 0 0 0 77 HLT WAIT FOR A.C. POWER UP

28C1 1 0C2 78 JMPH JMP $ + 1 79

oO

a t UP SEQUENCE

28C2 ft ft <!> T 0 0 <i7 o 1 Q O 0£: ENB INT ENABLE POWER FAIL SAFE

28C3 ft n Q n

0 0 oO a 1 o o SMB 0 28C4 Q ft /t rx o U4D D A o4 LDW X '4D ' LOAD PF STATUS

28C5 IT 1 ft A £1 OA o5 AND XFFFO KEEP # OF POWER FAILS

28C6 A 1 0 4

O A 8 6 ADD D3 SHOWS PFS GOT TO HERE

28C7 ft ft O ft 0 0 80 87 SMB 0 28C8 704D Q a OO STW X'4D' SET = 3

28C9 ft ft c n0 0 DU 89 SGM

28CA o ft nr oO F

f

n ft 90 LDW PFSO

28CB ft ft O ft 0 u o 0 9

1

SMB 0 28CC A ft ft 70 0 0 92 STW 0 RESTORE LOCATION 0 28CD ft O C U o r D 9o DOT 1 5* 6 MASTER RESET FIFO

28CE ft ft CV ft U 0 oO ft i< 94 SMB X'4B'

28CF ou4B ft c 95 LDW X'4B'

28D0 El OB 96 AND X400 EXTRACT INT. ENABLE 5 STATUS

28D1 ft cr n ft U oU 0 Q *7 97 SAZ

28D2 ft ft c0 025 ft O 98 ENB 5

28D3 ft ft O ft 0 0 80 99 SMB 0

28D4 r» ft c r» 90 5C 1 ft ft 10 0 LDX X'SC ' FIND END OF CORE

28D5 ft C ft T U oO 7

1 ft 1 10 1 DXS 7

28D6 Q CZ ft A 1 ft ft 1 Uii LDW « 4

28D7 7 1 UC 1 Do STW lORET SAVE 10 RETURN

28D8 rs a 11 ft t ft A 104 LDX * 0

28D9 A 1 ft n Ol U U

1 n c 10 5 STX SAVE SAVE LOG OF LAST FIOT

28DA a o ft ft 880 0

1 ft A 10 6 LDW 0 WORD 0 OF FIOT

28DB ft o r> ft 0 820 t A «7 10 7 SAM POWER DOWN DURING 10?

28DC t ft T» *i 1 0 F4 10 8 JMP INRR NO* NORMAL INR

28DD £1 OD 1 ft ft 10 9 AND X7FFF YES

28DE '7 O ft ft 7oO 0 lift 110 STW * 0 SET BUSY BIT = 0 28DF o o ft 8oO <i til 111 LDW « 2 WORD 2 OF FIOT

28E0 7111 1 12 STW W0RD2 SAVE WORD 2 OF FIOT

28E1 ElOE 113 AND XI FO EXTFtACT UNIT NUMBER

28E2 Fl 12 114 CMW XDO

62 i
11/6/74J5 'P0WF5' PAGE 3

28E3 0860 115 SEQ VAS DEVICE = TTY?

28E4 1 0 FO 1 1 6 JMP RETURN NO

28E5 8111 1 1 7 LDV V0RD2

28E6 El 0 F 118 AND XI FF KEEP BITS 6-15

28E7 Al 1 0 1 1 9 ADD X1800 PUT DISCONNECT IN JMP CODE

28E8 7802 12Q STW • 2 CHANGE WORD 2 OF FIOT

28E9 0 020 121 ENB 0 ALLOW TTY TO INTERRUPT

28EA 8113 122 LDV CR

28EB 0 3 EE 123 DOT 14^ 14 SEND CARRIAGE RETURN

28EC 02E0 124 WAIT DIN 14^0 TTY STATUS

28ED OAl 7 125 SLL 7

28EE 0820 12 6 SAM

28EF 1 OEC 127 JMP VAIT

28F0 91 OC 128 RETURN LDX lORET PRETEND 10 WAS FINISHED

28F1 0501 129 DXS 1 28F2 QAl 0 130 NOP

28F3 1800 131 JMP 0 GO BACK TO DO 10

28F4 0080 132 INRR SMB 0

28 F5 804D 133 LDV X'4D* LOAD PF STATUS

28F6 £1 OA 134 AND XFFFO KEEP # OF POWER FAILS

28F7 Al 05 135 ADD D4 SHOWS 10 WAS NOT IN PROGRESS

28F8 0080 136 SMB 0 WHEN THE POWER FAILED

28F9 704D 137 STV X'4D'

2 8 FA 90 FE 138 LDX PFSX RESTORE INDEX

28FB 80 FD 139 LDV PFSA RESTORE ACC.

28 FC 0017 140 INR INT

28 FD 0000 141 PFSA D 0

28FE 0000 142 PFSX D 0

28FF 0000 143 PFSO D 0

2900 000 0 144 SAVE D 0

290 1 0000 145 TPF D 0

2902 000 1 146 Dl D 1 2903 0002 147 D2 D 2

2904 0003 148 D3 D 3

2905 0004 149 D4 D 4

290 6 0010 150 XI 0 D X'l 0

' 290 7 0300 151 X30 0 D X'30 0

' 2908 1 07D 1 52 XI 07D D X'l 07D*

2909 289F 1 53 DSMBH D SMBH

290A FFFO 1 54 XFFFO D X'FFFO

290B 0400 1 55 X40 0 D X'400 ' 290C 0000 156 lORET D 0

290D 7FFF 1 57 X7FFF D X'7FFF'

290E 0 1 FO 1 58 XI FO D X*l FO ' 290F 01 FF 159 XI FF D X'l FF'

291 0 1800 1 60 X1800 D XM800

291 1 0 000 1 61 W0RD2 D 0 2912 OODO 1 62 XDO D X'DO " 2913 008D 163

1 64

CR D

END

X'8D'

ERRORS

63
11/6/7415 'P0WF5' PAGE

CR 2913 Dl 2902 D2 2903 D3 2904

D4 2905 DSMBH 2909 INRR 28 F4 INT 0007

lORET 290C JMPH 28C1 NPF 2891 PFSO 28 FF

PFSA 28FD PFSX 28FE POWF 2890 RETURN 28F0

SAVE 2900 SMBH 289F TPF 2901 WAIT 28EC

W0RD2 291

1

XIO 2906 XI 07D 2908 X1800 2910

XI FO 290E XI FF 290F X3 0 0 2907 X400 290B

X7FFF 290D XDO 2912 XFFFO 290A

PAS?

0 i '?Q:':

64
10/31/7415 'MULTl

PAGE 1

291B

291C

291D

291E

291F

292.0

2921

0082

0000

0000

0000

0000

0000

0000

12

3

4

5

6

7

8

.9

10

1

1

12

13

14

15

16

17

18

19

2Q

21

22

23

24

25

26

27

* 10/31/7415

ORIG

MULTl

NVAL

JVIND

JCOUNT

JDONE

JEftOR

JSKlP

•

*«

*

«

««

«

«

«

D

D

D

D

0

D

D

MULTl

X*291B*

X»82*

0

0

0

0

0

0

*MULT1 ' PROGRAM BRINGS IN WIND

DATA AND CHI CH2 DATA FROM

MUX FIFO SYSTEM VIA INTERRUPT

LEVEL 5.

IN FORTRAN US E l CALL MULTl CKCl )#JWIND* JCOUNT* JDONE*JEROR*JSKI P)

K(l) IS FIRST ELEMENT IN ARRAY

JVIND IS CURRENT WIND VALUE*

JCOUNT INDICATES THE ARRAY

ELEMENT CURRENTLY FILLED.

JD0NE»1 WHEN ARRAY IS FULL.

JEROR « COUNT OF NUMBER OF BAD

DATA VALUES

JSKIP » NUMBER OF SAMPLES SKIPPED DUE

TO MISSING CHANNEL NUMBERS*

IN FORTRAN SET JDONE* JSKIP* AND

JCOUNT » 0 BEFORE STARTING

TO FILL ARRAY WITH DATA.

2922 0 08A 28 SMB S

2923 010 0 29 CLR

2924 9120 30 LDX JEROR

2925 7800 31 STW * 0 SET JEROR « 0

2926 9121 32 LDX JSKIP

2927 7800 33 STW • 0 SET JSKIP » 0

2928 818E 34 LDW «2

2929 718D 35 STW SW SET SW » 2

292A 811C 36 LDW NVAL

292B B18F 37 SUB »1

292C 718C 38 STW N SET NsBEGIftlMING OF ARRAY

292D 03F6 39 DOT 15*6 MASTER RESET TO MUX FIFO

292E 8190 40 LDW »MULT5

292F 0080 41 SMB X'l5*

2930 7015 42 STW XM5*

2931 0080 43 SMB X*83 * 2932 2083 44 JSX X'83 ' 45 » INTERRUPT LEVEL 5

2933 0 08A 46 MULT 5 SMB TX

2934 618A 47 STX TX

2935 7189 48 STW TA

2936 02F2 49 DIN 15*2 BRING IN DATA FROM MUX

2937 718B 50 STW T

2938 OAOE 51 SRL 14

2939 F18F 52 CMW »1

293A 0860 53 SEQ

293B 1 141 54 JMP A

293C 818B 55 LDW T

293D E191 56 AND «X*03FF' EXTRACT WIND DATA

293E 91 ID 57 LDX JWIND

- I

FIFO

65
<

1 n /*) 1 / tjt 1 9> 'Mill T 1

293F f ou u STW • 0 STORE VIND DATA

2940 t 1 At O 7 JMP RET

2941 ITI r i 0o F£• OU A CMV 2

2942 u o ou Ol SEQ

2943 t 1 DC JMP B

2944 R t An A*) DO LDV SV

2945 Vtr 1 RVo £< D<l CMV «2

2946 U O OU D9 SEQ

2947 1 1 /I Q DO JMP REFIL2

2 948 * 1. OO A7O / JMP NRM2

2949 Q 1 O 1 AROO REFIL2 LDX JSKIP MISSED CHANNEL

294A RROQ n n u u AO07 LDV • 0

294B nA I

1 Ro Fr f U, ADD «1

294C J ou u 7 1 STV « 0 JSKIPeJSKIP+1

294D o i ou 70 LDV N

294E U u

7*? CAX POINTER IN INDEX

294F RO luOO 1 RR 7A LDV T

2950 C<1 7 1 7*% / O AND X*03FF'

2951 ^Rn fl / OU u 7f AO STV • 0 OVERVRITE LAST CH

2952 1 1 Do 7 7 JMP RET

2953 flo low 1 RP 7Rf O NRM2 LDV N

2954 *»A 1,0 t R rF 7Q/ 7 ADD »1

2955 fr i

1 RPOw RnO U STV N N«N-»-l

2956 fi 1 ^ ft U i vJ u RO 1I CAX STORE PT. ADDRESS

2957 R t RR R9 LDV T

2958 Fl Q 1 £•1 7 « OO AND «X'03FF* EXTRACT CHI DATA

2959 1 ou u RAo*i STV « 0 STORE CHI DATA IN

295A RO L

1 QO7e R(% O O LDV =3

295B •7 t RTi f i OU . RO AD STV SV SET SV «= 3

295C O 1 1 F RO 7/ UPCNT LDX JCOUNT

295D RRft OO n U U RROO LDV • 0

295E riA X

1 RO rF RO Q7 ADD -1

295F r ou u on7 u STV « 0 C0UNT«C0UNT+1

2960 rFl1 Q170 Q t 7 i CMV = 1 199

2961 nU RO on7 u Q97C SLE

2962 1 1 r u O** 70 JMP DONE ARRAY IS FULL

2963 O7 1.

1 ROMA OA7** RET LDX TX

2964 RO 1

1 ROO 7 70 LDV TA

2965 U U i 9 O7 AO INR 5

2966 Fli* I QO7C Q7 7f B CMV a3

2967 u o ou OR70 SEQ

2968 t t Ryi 1 1 o«i OQ7 7 JMP ERROR

2969 OR 1l.OU Rr» iinnu u LDV SV

296A i*Fl1 OO7& 1 n 1 i U 1 CMV =3

296B nK RQ AOou 1

t nou & SEQ

296C 1 1 AF 1 n 1 u o JMP REFIL3

296D t 1 Tl I

1 n AU 4 JMP NRM3

296E Q 1 O 1 7 i c I

1 n c> REFIL3 LDX JSKIP

296F OQRRfl n u u 1

1 nu Ao LDV « 0

2970 HA 1

1 RO J*F 1 n 7 ADD *1

2971 7Rn n ( o u u I

1 nu Ro STV « 0 JSKIPaJSKIP+1

2972 1 1 i 1. oo 1

1 nU o7 JMP RET

2973 Ro 1 Rf* 1 ou 1 1 n I 1 U NRM3 LDV N

2974 HA i.O 1 R Fr III 1 1 1 ADD »1

2975 •7 1 or* 1 t O lie STV N NaN + 1 2976 0130 113 CAX STORE PT. ADDRESS

2977 8 183 114 LDV T

PAQE

66
10/31/7415 'MULTl

PAGE

2978 £191 1 1 5 AND X*03FF' EXTRACT CH2 DATA

2979 7800 1 1 6 STW 0 STORE CH2 DATA IN ARRAY

297A 818E 1 1 7 LDV «2

297B 718D 1 1 8 STW SW SET SW « 2

297C 1 15C 1 1 9 JMP UPCNT

297D 81 IC 120 DONE LDW NVAL

297E B18F 121 SUB «1

297F 718C 122 - STW N SET N«BEG INNING OF ARRAY - 2980 91 1 F 123 LDX J DONE

2981 818F 124 LDW «1

2982 7800 125 STW 0 SET JD0NE«1 (ARRAY IS FULL)

2983 1 1 63 126 JMP RET

2984 91 20 12 7 ERROR LDX JEROR

2985 8800 128 LDW < 0

2986 A18F 129 ADD = 1 JER0R=JER0R+1

2987 780 0 13 Q STW • 0 JEROR = COUNT OF BAD DATA

2988 1 1 63 131 JMP RET

2989 0 00 0 132 TA D 0 298A 0000 133 TX D 0

298B 0000 134 T D 0

298C 0000 135 N D 0

298D 0000 136

137

SW D

END

0

298E 0002

298F 0001

2990 2933

2991 03FF

2992 0003

2993 04AF

ERRORS

67
10/31/7415 *MULT1

PAGE

A 2941 B 2966 DONE 297D ERROR 2984

JCOUNT 291 E JOONE 291F JEROR 2920 JSKIP 2921

JWlND 291D MULTl 291B MULT5 2933 N 298C

NRM2 2953 NRM3 2973 NVAL 291C REFIL2 2949

REFIL3 296E RET 2963 SV 298D T 298B

TA 2989 TX 298A UPCNT 295C

PAS?
10/31/7413 *MMON* PAGE i

12

3

4

5

6

7

8

9

10

1 1 12

13

14

15

1 6

17

18

19

20

21

22

10/31/7413 'MMON*

ORIG X'299B'

MMON MODIFIES THE MONITOR

IT WILL NOT WRITE OUT

CONTINUOUSLY WHEN THE

DOWN.

IF UNIT

TAPE

UNIT

DOWN

LOAD

PROG

SO THAT

MO MO ON THE TTY

TAPE UNIT GOES

GOES DOWN IT WILL TYPEt

THEN IT WILL HALT

OF POWER FAILURES

IN FORTRAN USE:

GALL MMON (LOO

WHERE LOG = DEGIMAL VALUE OF

LOCATION TO BE REPLACED WITH

WITH THE NUMBER

IN THE ACCUMULATOR

MONITOR

SMB & JMP.

THE TWO LINES IN

ARE AS FOLLOWS!

e o « 0 AND 1 * .IMP TYPE TYPE

*

n n AO miMMflM UN UH 1 n V *ft9 * A O

O OOP n n n n u u u u 9 t u

n

U o6

o77Uon 7 1 70 90

O O Q C 7QU u 9 Q 6 7

A

u O O O 7 6 77 r a 1 A O 1 n3 1 n J U o o A n d 7AU. '7 a n n 7qU U o 1 5Tw • nU e7AI Q 1 A O 1 Ao ocO LDW JMP

o n A 2 9A2 780 1 o3 STW 1 29A3 0080 34 SMB 0

29A4 2083 35 JSX X'83'

29A5 QQ8A 36 SMB SHE A

29A6 1 1A7 37 JMP JMP A

29A7 0080 38 A SMB 0

29A8 206E 39 JSX X'6E'

29A9 D4G1 40 TEXT 'TAPE'

29AA DOCS

29AB 0080 41 SMB 0

29AC 206E 42 JSX X*6E*

29AD D5CE 43 TEXT 'UNIT'

29AE C9D4

29AF 0080 44 SMB 0 29BQ 206E 45 JSX X'6E'

29B1 C4GF 46 TEXT 'DOWN ' 29B2 D7CE

2 9B3 0080 47 SMB 0

29B4 206E 48 JSX X'6E'

29B5 CGCF 49 TEXT 'LOAD'

29B6 G1C4

29B7 0080 50 SMB 0

29B8 20 6E 51 JSX X'6E'

29B9 D0D2 52 TEXT 'PROG ' 29BA GFG7

MONITOR TO BE REPLACED

PLUG INTO MESSAGE

WILL RETURN TO CALLER

STORE SMB IN MONITOR

STORE JMP IN MONITOR

RETURN TO C FORTRAN

69
10/31/7413 *MMON'

) PAGE 2 I 29BB 0080

29BC 804D

29BD 0A04

29BE 0000

53

54

55

56

57

SMB

LDV

SRL

HLT

END

0

X*4D*

4

RELOAD PROGRAM

NO ERRORS

¥1

70
10/31/7413 *MMON* PAGE

A 29A7 JMP 29A6 LOG 299C MMON 299B

SMB 29A5

PAS?

71
10/31/74:2 'DMAMAQ* PAGE 1

1 0 10/31/7412 'DMAMAG

2 ORIO X'29C0

3 DMAMAG CHECKS DMA MAG TAPE STATUS

4 • IT SETSi

5

« MAG " 1 ON LINE, WRITE ENABLED, NOT ON BOT

6 « MAG B 2 ON LINE, NOT WRITE ENABLED, fiOT

7

* MAG « 3 ON LINE, WRITE ENABLED, BOT

8 » MAG 13 TAPE UNIT NOT READY

9

« UNIT TURNED OFF OR

10 « OFF LINE OR REWINDING

1 1 « MAG « 16 NOT WRITE ENABLED, EOT

12 • MAG « 17 WRITE ENABLED* EOT

13 « IN FORTRAN USEj

14 • CALL DMAMAG C MAG)

29C0 0082 15 DMAMAG DATA X*82 ' 29C1 0000 1 6 MAG D 0

29C2 0 0 8A 17 SMB S

29C3 0220 18 DIN 2,0 GET MAG TAPE STATUS

29C4 0A02 19 SRL 2

29C5 EID5 20 AND = 1 29C6 71D4 21 STW T SAVE BIT 13

29C7 0220 22 DIN 2,0 GET MAG TAPE STATUS

29C8 OAOC 23 SRL 12

29C9 E1D6 24 AND = 7 SAVE BITS 0, 1&2

2 9CA CID4 25 OR I T COMBINE BITS 0,1,2, 13

29CB 71D4 26 STW T

29CC 0220 27 DIN 2,0 GET MAG TAPE STATUS

29CD 0A08 28 SRL 8 MOVE BIT 3 OVER

29CE EID7 29 AND «X*1 0

' 29CF CiD4 30 ORI T COMBINE BITS 3, 0, 1, 2, 13

29D0 91C1 31 LDX MAG

29D1 7800 32 STW 0

29D2 0080 33 SMB X*83 • 29D3 2083 34 JSX X'83 * 29D4 0000 35

36

T D

END

0

29D5 0001

29D6 0007

29D7 0010

NO ERRORS

72
10/31/7412 'DMAMAQ' PAGE

DMAMAG 29C0 MAQ 29C1 T 29D4

PAS?

73
10/31/7411 *INTL* PAGE 1

1 * 10/31/7411 'INTL*

2 ORIG X*29E0'

29E0 0082 3 INT D X'82 ' 29E1 0000 4 LEV DATA 0

29E2 0000 5 N D 0 6

« INT PROGRAM DISABLES OR ENABLES

7 « INTERRUPT LEVEL LEV

8

• FOR N « 1 DISABLE LEV

9 * FOR N <> 1 ENABLE LEV

10 « LOCATION X'4B' CONTAINS ENABLE

1 1 « STATUS FOR ALL 15 INTERRUPTS

12 « IE BIT»1 IF INTERRUPT IS ENABLED

13 THIS STATUS WORD IS USED IN

14 « POWERFAIL SAFE PROGRAMS TO REENABLE

15 « THE PROPER INTERRUPTS.

1 6 IN FORTRAN USE:

1 7

• CALL INTLCLEV^N)

18 • WHERE LEV « 0 TO 1

5

2 9E3 0080 1 9 SMB X*4B'

29E4 804B 20 LDW X*4B' LOAD INTERRUPT ENABLE STATUS

29E5 721 0 21 STW STAT

29E6 91 E2 22 LDX N

29E7 8800 23 LDW * 0 29E8 F214 24 CMW «1

29E9 0860 25 SEQ

29EA 1 1 FF 26 JMP A

2 9EB 91 El 27 LDX LEV

29EC 8800 28 LDW * 0

29ED F21 5 29 CMW = 15

29EE 0890 30 SLE

29EF 0000 31 HLT BAD LEV VALUE

29F0 C21 1 32 OR I F

29F1 71 F2 33 STW Bmm MODIFY • m^ mm m DSB»m mm INSTRUCTION m mm %m • • • \^ \^ • m %v V 29F2 0030 34 B DSB 0 DISABLE LEV INTERRUPT

29F3 91 El 35 LDX LEV

29F4 8800 36 LDW « 0

29F5 C212 37 OR I G

29F6 71 F8 38 STW C MODIFY ^RC INSTRUCT 1 ON

29F7 821 6 39 LDW

29F8 0A40 40 c SRC 0 SHIFT 0 ALONG

29F9 E21 0 41 Oirtl O I Oil LtCtV ^ V 29FA 0080 42 R SMB X*4B'

29FB 704B 43 STW X'4B* RESTORE INT. ENABLE STATUS

29FC OOBO 44 UNM UNMASK POWERFAIL SAFE

29FD 0 080 45 SMB X*83 * 29FE 2083 46 JSX X*83 ' 29FF OOAQ 47 A MSK MASK POWERFAIL SAFE

2A0 0 91E1 48 LDX LEV

2A0 1 880 0 49 LDW • 0

2A02 F21 5 50 CMW «15

2A03 0890 51 SLE

2A04 0000 52 HLT BAD LEV VALUE

2A0 5 C213 53 ORI H

2A0 6 720 7 54 STW D MODIFY ENB INSTRUCTION

2A0 7 0 020 55 D ENB 0 El^ABLE LEV INTERRUPT

2A08 91E1 56 LDX LEV

2A0 9 8800 57 LDW 0

74
10/31/7411 'INTL* PAGE 2

2AQA C2 1 2 58 OR I G

2A0B w** w •J 72QD M Iff Air 59 STW E MODIFY SRC INSTRUCTION

2AQC 82 1 7 60 LDW =X*8000 * 2AQD 0A4Q 61 E SRC 0 SHIFT 1 ALONG

2A0E C21 0 62 ORI STAT SET BIT LEV « 1 PAfl F 1 1 FA 63WW JMP R

2A10 0000 64 STAT D 0

2A11 0030 65 F DSB 0

2A12 0A40 66 G_ SRC 0

2A13 0020 67 H ENB 0 68 END

2A14 0001

2A15 OOOF

2A16 7FFF

2A17 8000

NO ERRORS

75
10/3I/74»l *INTL*

A 29FF B 29F2 C

E 2A0D F 2A11 Q

INT 29E0 LEV 29E1 N

STAT 2A10

PAS?

PAGE 3

29F8 D 2A07

2A12 H 2A13

29E2 R 29FA

!

I

S

!

I

i

i

i

I

i

I

?|

I

i
12/20/74t6 *DISP* PAGE 1

1•

t 12/20/7416 •DISP'

2

- ORIG X • 2A20

•

3 *

41 WHEN CALLED BY FORTRAN IT CHECKS TO

5 * SEE IF VALUE OF JCHAN (CHANNEL #)

6 * AGREES WITH THE CHANNEL SWITCH SETTING

7 * (SSE) CHANGES K FROM BINARY TO BCD

6 AND SENDS THE VALUE TO THE LED DISPLAY.

9 * IF JCHAN « 0 NO NEED TO CHECK SSE

10 * JUST CONVERT TO BCD AND SEND TO DISPLAY.

1

1

12

*

* IN FORTRAN USEI

13 CALL DISP(K« JCHAN)

14 * ViHERE

15 JCHAN > 0 CONVERT TO BCD* SEND TO DISPLAY

16 * « 1 CHECK SSEj IF OK TO BCD & DISPLAY

17 * » 2 CHECK SSE« IF OK TO BCD & DISPLAY

18 * 2A20 0082 19 DISP DATA X'82'

2A21 0000 20 K D 0' ~ 2A22 0000 21 JCHAN D 0

2A23 9222 22 LDX JCHAN

2A24 8800 23 LDW * 0 GET CHANNEL NUMBER

2A25 0800 24 SAZ NEED TO TEST CHANNEL #?

2A26 1228 25 JMP TEST YES

2A27 1231 26 JMP BEGIN m, TO BCD TO DISPLAY

2A28 08B0 27 TEST SSE

2A29 122E 28 JMP TRUE SWITCH SET TO CHAN 1 2A2A F264 29 CMV D2 SWITCH SET TO CHAN 2

2A2B 0860 30 SEQ DATA FROM CHAN 27

2A2C 1245 31 JMP RET NO

2A2D 1231 32 JMP BEGIN YES, CONVERT TO BCD

2A2E F262 33 TRUE CMW Dl

2A2F 0860 34 SEQ DATA FROM CHAN 17

2A30 1245 35 JMP RET NO

2A31 9221 36 BEGIN LDX K

2A32 8800 37 LDW * 0 LOAD VALUE TO BE DISPLAYED

38 * 39 * CONVERT TO BCD

40

2A33 0810 41 SAP NEGATIVE VALUE?

2A34 0110 42 CMP Y£S> ABSOLUTE VALUE

2A35 F263 43 CMV D9999

2A36 0890 44 SLE TOO BIG?

2A37 8263 45 LDW D9999 YES> LIMIT VALUE

2A38 2247 46 JSX RM10 REMAINDER SUBROUTINE

2A3 9 0000 47 DIG4 D 0 LEAST SIG. DIGIT

2A3A 2247 48 JSX RM10

2A3B 0000 49 DIG3 D 0

2A3C 2247 50 JSX RM10

2A3D 0000 51 DIG2 D 0

2A3E 0A14 52 SLL 4 MOST SIG. DIGIT IN ACR

2A3F C23D 53 ORI DIG2

2A40 0A14 54 SLL 4

2A41 C23B 55 ORI DIG3

2A42 0A14 56 SLL 4

2A43 C239 57 ORI DIG4 PACKED BCD IN ACR

77
12/20/7416 *DISP*

2A44 03F2 58 SEND

2A/t5 0080 59 RET

2A46 2083 60

2A47 7260 61 RM10

2A48 0800 62

2A49 124C 63

2A4A 7800 64

2A4B 1801 65

2A4C 0A1

1

66

2A40 A260 67

2A4E 7261 68

0A04 69

nc*v AQft 1A 70

CMS i 1 \ 1 i AP A 1 7Pf fi O Ac% 1 CIvnvH ACI^ 7

AO A 1 7/1

AP AP 7ti

7ft

cnw • 77

OA 1 1 7Rf o A26 1 79

2A5A A26 1 80 ''J 0110 81

2A5C A260 82

2ASD 7800 83

2A5E 826

1

84

2A5F 1801 85

2A60 0000 86 ASAV

2A61 0000 87 TSAV

2A62 0001 88 Dl

2A63 27 0F 89 D9999

2A64 0002 90 D2

91

N 0 ERRORS

i PAGE 2 I DOT 15>2 SEND TO DISPLAY

SMB 0

JSX X'83' RETURN TO C* FORTRAN

STW ASAV"

SAZ CHECK FOR ZERO NUMERATOR

JMP S-t-3 STU 0 STUFF ZERO REMAINDER

JMP 1 SLL 1 ADD ASAV

TSAV

SRL

Ann TSi ^MVAU

Ann T<i All

** Ann T C AIJ Ann n 1 TSAU

w ADD TSAV

ADD TSAV

CMP • 1 0*OUOT lENT

ADD ASAV

STV 0 REMAINDER

LDW TSAV QUOTIENT IN ACR

JMP 1 D 0

D 0

D 1 D 9999

D 2 (NOT IN BASIC BCD)

END

'3

78
18/80/7416 *DISP*

ASAV 8A60 BEGIN 8A31

D9999 8A63 DIG2 8A3D

D I5P 8A20 JCHAN 8A88

RM10 8A47 SEND 8A44

T SAV 2A6

1

PAS?

PAGE

Dl 8A62 D2 2A64

DI63 2A3B DIG4I 2A39

K 8A81 RET 2A45

TEST 8A28 TRUE 2A2E

79
12/11/7418 *L£ADR* PAGE 1

2A20

2A21

S 2A22

2A23

2A24

2A25

- 2A26

2A27

2A28

2A29

2A2A

2A2B

2A2C

5 2A20

2A2E

2A2F

2A30

2A31

S 2A32

2A33

2A34

2A35

2A36

2A37

2A3F

2A40

0082

0005

0080

2042

2A37

2A40

2A3F

0005

000E

8001

823D

C236

723D

0080

2044

2A3 7

2A40

AA3F

0080

2046

AA37

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

12/11/7418 'LEADR*

ORIG X*2A20*

PUNCHES PAPER TAPE LEADER WHEN CALLED

BY MAIN PROGRAM.

IN

*LEADR

UNIT

FORTRAN

CALL

DATA

EQU

OPEN

U5EI

LEADR

X'82'

5

F>BUF> WC*UNIT*X'ES 1

LDVH

ORI

STVI

DOIO

STAT

F+6

X8000

F+6

SET SPECIAL FORMAT

0080 17 SMB 0

2083 18 JSX X'83'

8000 19 X8000 D X'8000*

20 F RES 8'

0023 21 VC DATA 35

22 BUF RES 35

0042 23 OPEN EQU 66

0044 24 DOIO EQU 68

0046 25 STAT EQU 70

26 END

RETURN TO C* FORTRAN

N 0 ERRORS

80
18/11/7418 *L£ADR* PAGE

BUF 2A40 DOIO 0044 F LEADR 2A20

OPEN 0042 STAT 0046 UNIT 0005 VC 2A3F

X 8000 2A36

PAS?

81
U/6/7488 *CLOK* PAQE i

1 " 11/6/7488 'CLOK*

2 ORIG X *2A7 0

0 3 * PROGRAM READS NEW CMOS CLOCK UNTIL

4

5 « TIME AGREES IN TWO SUCCESSIVE READS*

6 » IN FORTRAN USE J 7 CALL CLOKC JH# JM* JS

)

8 * WHERE*

.9 TU HOURS

Ifl Mw MINUT ES

U

Mw U5 » SECONDS

-3. 12

2A7Q 0082 13 CLUK DATA X '82 ' 2A71 0000 1'^ D 0

2A72 0000 15 D 0

2A73 0000 16 JS D 0 2A74 02F3 17 DIN i 5^ 3 BRING IN Ml* SIO* SI

2A75 72AB 18 ST¥ TMl

2A76 02F4 1 9 DIM 1 5^ 4 BRING IN H10# HI* MIO

2A77 72AD 2Q STw THl

2A78 02 F3 21 NEW DIN

2A79 72AC 22 STW TM2

2A7A 02 F4 23 DIN ftp A1 5^ 4

2A7B 72AE 24 STW TH2 ' -

2A7C F2AD 25 CMV THl

2A7D 0 8 60 26 SAME TIME?

2A7E 1283 27 <JMP MOVE TIMES DO NOT AGREE

2A7F 82AC 28 LDw TM2

2A8Q F2AB 29 CMV TMl

2A8I 0,870 30 SNE SAME TIME?

2A82 1288 31 JMP DONE TIMES AGREE

2A83 82AC 32 MOVE LDW TM2

2A84 72AB 33 STW TMl

2A85 82AE 34 LDW TH2

2A86 72AD 35 STW THl

2A87 1278 36 JMP NEW READ TIME AGAIN

2A88 82AC 37 DONE LDW TM2

2A89 229D 38 JSX COMB COMBINE SECONDS DIGITS

2ASA 9273 39 LDX JS

2A8B 7800 40 STW • 0 STORE TOTAL SECONDS

2A8C 82AE 41 LDW TH2

2A8D 0A04 42 SRL 4

2A8E 229D 43 JSX COMB COMBINE HOURS DIGITS

2A8F 9271 44 LDX JH

2A90 7800 45 ' "

. STW * 0 STORE TOTAL HOURS

2A91 82AC 46 LDW TM2

2A92 QA08 47 SRL 8

2A93 72Bi 48 STW Tl

2A94 82AE 49 LDW TH2

2A95 E2AF 50 AND XF

2A96 0AI4 51 SLL 4

2A97 A2BI 52 ADD Tl

2A96 229D 53 JSX COMB COMBINE MINUTES DIGITS

2A99 9272 54 LDX JM

2A9A 7800 55 STW « 0 STORE TOTAL MINUTES

2A9B 0080 56 SMB 0

2A9G 2083 57 JSX X*83 * RETURN TO C« FORTRAN

82
11/6/7418 'CLOK* PAGE

2A9D 62B0 58 COMB STX HERE BCD TO DECIMAL VALUE

9A9E 72B1 59 STW Tl

2A9F E2AF 60 AND XF

2AAQ 72B2 61 STW T2 SAVE UNITS VALUE

2AA1 82B1 62 LDW Tl

2AA2 0AQ4 63 SRL 4

2AA3 E2AF 64 - AND XF

2AAil 72B1 65 STW Tl

2AA5 QAl 3 66 SLL 3

2AA6 A2B1 67 ADD Tl

2AA7 A2B1 68 ADD Tl XI 0 CTENS VALUE)

2AAS A2B2 69 ADD T2 TOTAL VALUE

2AA9 92B0 70 LDX HERE

2AAA 1800 71 JMP « 0 BACK TO MAIM ROUTINE

2AAB 0000 72 TMl D 0

2AAC 0000 V w W W 73 TM2 n QW 2AAD 0000 74 THl D 0

2AAE 0000 75 TH2 D 0

2AAF OOOF 76 XF D X'F*

2ABQ 0000 77 HERE D 0

2AB1 0000 78 Tl D 0

2AB2 0000 79

80

T2 D

END

0

ERRORS

83
n/6/74l8 'CLOK* PAGE 3 i CLOK 2A70 COMB 2A9D DONE 2A88 HERE 2AB0

JH 2A71 JM 2A72 JS 2A73 MOVE 2A83 i NEW 2A78 Tl 2AB1 T2 2AB2 TKl 2AAD

TH2 2AAE TMl 2AAB TM2 2AAC XF 2AAF

PAS? I

i

84
T. APPENDIX C. PROGRAM LISTINGS FOR INTERFACE TEST PROGRAMS AND REAL

TIME ANALYZER ASSEMBLY LANGUAGE DRIVER

Appendix C contains program listings for "MINOSl" , TCLOK" , TRTAl"

and "RTAl".

85
1 1/26/7414 PAGE 1

1

• 1 1/26/7414 *MIN0S1

s ORIG X* 1800 t 3 MINIMAL TEST OF COMMUNITY NOISE SYSTEM*

4 * CHANGE LOC B TO GIVE DIFFERENT DELAY

5 * TIME BETWEEN INTERRUPT AND THE DIN IN.

6 USE SSI AND SS2 TO GIVE THE FOLLOWING

7 * VALUES ON EXTERNAL DISPLAYS

8

9

** WIND SS1« SS2 DOWN (ID » A)

10 * CHI SSI UP (ID » B)

1

1

* CH2 SS2 UP (ID « C)

12 * 13 * EXTERNAL SENSE UP FOR DECIMAL DISPLAY

14 * EXTERNAL SENSE DOWN FOR HEX DI:>PLAY

15 * (IN HEX MODE MOST SIGNIFICANT DIGIT

16 * IS ID>

17 * 18 * PUT SS0 UP TO HALT AFTER DISPLAY

19 PUT SS3 UP TO GIVE MASTER RESET

20 AFTER DISPLAY

21

22 * 23 * IF THE WORD 'FACE* REMAINS ON THE DISPLAY

24 * IT SAYS THATi

25 * 1> DISPLAY IS WORKING

26 * 2> LEVEL 5 DATA INTERRUPT

27 * FROM INTERFACE IS

28 * MISSING OR CPU INTERRUPT

29 * CARD IS MALFUNCTIONING

30

1800 0086 31 START SMB S

1801 0050 32 SGM

1802 806E 33 LDW -IT

1803 0080 34 SMB 0

1804 7015 35 STW X* 15'

1805 03F6 36 DOT 15>6 MASTER RESET TO FIFO

1806 803C 37 LDW FACE

1807 03F2 38 DOT 15^2 SEND FACE TO DISPLAY

1808 0025 39 ENB 5

1809 1009 40 A JMP A

180A 9035 41 IT LDX B

180B 0501 42 C DXS 1 DELAY

180C 100B 43 JMP C

180D 02F2 44 DIN 15^2 BRING IN FIFO DATA

180E 7037 45 STW T

180F 08D0 46 SSI

1810 1029 47 JMP SI

1811 08E0 48 SS2

1812 102F 49 JMP S2

1813 0A0E 50 SRL 14

1814 i'06F 51 CMW -1

1815 0860 52 SEQ WIND DATA?

1816 1028 53 JMP RETA NO

1817 8037 54 DISP LDW T

1818 E03B 55 AND X3FF

1819 08B0 56 SSE WANT HEX OR DECIMAL?

181A 1022 57 JMP JBCD DECIMAL

86
U/26/7414 *MIN0S1* PAQ£

181B 7038 58 STW T2 SAVE VALUE

181C 8037 59 LD^ T

181D £039 60 AND XG000

161E 0A02 61 SRL 2

181F A03A 62 ADD X9000 A> B« OR C ID

1620 A038 63 ADD T2 TOTAL HEX NUMBER

1821 1023 64 JMP SEND

1822 203D 65 JBCD JSX BCD CONVERT TO BCD

1823 03F2 66 SEND DOT 15^2 SEND TO DISPLAY

1824 08C0 67 SS0

1625 0000 68 HLT PUSH RUN TO CONTINUE

1826 06F0 69 - SS3

1827 03F6 70 DOT 15«6 MASTER RESET TO FIFO

1826 0015 71 RETA INR 5

1829 8037 72 SI LDW T

182A 0A0E 73 SRL 14

162B F070 74 CMW -2

182C 0860 75 SEQ DATA CHANNEL 17

182D 1026 76 JMP RETA NO

182E 1017 77 JMP DISP YES

182F 8037 78 S2 LDW T

1630 0A0E 79 SRL 14

1831 F071 80 CM\fii «3

1632 0660 61 SEQ DATA CHANNEL 27

1833 1026 62 JMP RETA NO

1834 1017 83 JMP DISP YES

1835 0000 84 B D 0

1636 0000 85 RSAVE D 0

1637 0000 66 T D 0

1838 0000 67 T2 D 0

1839 C000 68 XC000 D X*C000 1 183A 9000 69 X9000 D X*9000 t 163B 03FF 90 X3FF D X*3FF'

163C FACE 91

92

FACE D X'FACE •

93 CONVERT TO BCD

94

183D 6036 95 BCD STX RSAVE SAVE RETURN

163E 0810 96 SAP NEGATIVE VALUE?

183F 0110 97 CMP YES# ABSOLUTE VALUE

1840 F06D 96 CMV« D9999

1641 0690 99 SLE TOO BIG?

1642 606D 100 LDW D9999 YES« LIMIT VALUE

1643 2051 101 JSX RM10 REMAINDER SUBROUTINE

1844 0000 102 DIG4 D 0 LEAST SIG. DIGIT

1845 2051 103 JSX RM10

1846 0000 104 DIG3 D 0

1647 2051 105 JSX RM10

1648 0000 106 DIG2 D 0

1649 0A14 107 SLL 4 MOST SIG* DIGIT IN ACR

164A C046 106 ORI DI(32

184B 0A14 109 SLL 4

164C C046 110 ORI DIG3

184D 0A14 1 1

1

SLL 4

164E C044 112 ORI DIG4 PACKED BCD IN ACR

164F 9036 113 RET LDX RSAVE GET RETURN

1850 1600 114 JMP * 0

87
PAGE

1851 706A 115 RM10 Site ASAV

1652 0600 1 16 SAZ CHECK FOR 2ER0 NUMERATOR

1853 1056 117 JMP S-i-3

1854 7800 118 STVt * 0 STUFF ZERO REMAINDER

1855 1801 119 JMP * 1 1856 0A1

1

120 SLL 1 1857 A06A 121 ADD ASAV

1858 706B 122 5TW TSAV

1859 0A04 123 SRL 4

185A A06ti 124 ADD TSAV

185B 0A04 125 SRL 4

185C A06B 126 ADD TSAV

185D 0A04 127 SRL 4

185E A06B 128 ADD TSAV

185f A06C 129 ADD Dl

1860 0A05 130 SRL 5

1861 706B 131 STW TSAV QUOTIENT

1862 0A13 132 SLL 3

1863 A06B 133 ADD TSAV

1864 A06B 134 ADD TSAV

1865 01 10 135 CMP -10*QUOTIENT

1666 A06A 136 ADD ASAV

1867 7800 137 STW * 0 REMAINDER

1868 806B 138 LDW TSAV QUOTIENT IN ACR

1869 1801 139 JMP 1 186A 0000 140 ASAV D 0

186B 0000 141 TSAV D 0

186C 0001 142 Dl D 1 186D 270F 143 D9999 D 9999

1800 144 END START

186E 180A

1861' 0001

1870 0002

1871 0003

N 0 ERRORS

88
U/86/7414 *MIN0S1* PAGE

A 1809 ASAV 186A

C 180B Dl 186C

D IG3 1846 DIG4 1844

I T 180A JBCD 1822

RM10 1851 R5AVE 1836

5 END 1823 START 1600

T SAV 186B X3FF 183B

PAS?

B 1835 BCD 183D

D9999 186D DI(a2 1848

DISP 1817 FACE 183C

R£T 184F RETA 1826

SI 1829 S2 182F

T 1837 T2 1638

X9000 183A XC000 1839

89
1 C 10/30/74t4 TCLOK*

2 C TEST CMOS *CLOK * PROGRAM

3 C PUT SSO OP TO STOP PRINTOUT.

4 LOCATE GLOIOX*2AtO * 5 VRITEO^IO)

6 10 FORMAT < 3/* 'PUT SSO UP TO STOP PRINTOUT*)

7 WRITE <3#1 > 8 I FORMAT <5/# * HR MIN SEC**/)

9 3 CALL CLOK CJH#JM#JS)

IQ VRITE (3#2) JH/JM^JS

11 2 FORMAT <I3*I4#I4)

12 4 KK » ISVCHCO) -i- 1 13 60 TO (3#4)#KK

END

90
1 C 1/27/7516 'TRTAl

2 C TESTS RTA I PROGRAM & PRINTS OUT ALL 1/3 OCTAVE

3 C VALUES* WEIGHTED VALUE* LINEAR VALUE.

4 C

5 LOCATE RTA1*X*2400'

6 DIMENSION KVAL(40 >*KUND<40 >*B(33

)

7 BC1)«12.5

8 B<2)«16*

.9 BC3>»20.

IQ BC4)«25.

11 B(5)«31.5

12 B<6)«40.

13 B<7>»50.

14 B<8>»63.

15 B(9)«80.

16 BCIQ)=»100.

17 B<U)«125.

18 BC12>"160.

19 BC13>>200.

20 B<14)«250.

21 B<15>«315.

22 B(16)a400.

23 B(17)«500.

24 BC18>"630.

25 B<19>bS00*

26 B(2Q>BlOOD«

27 B(21 >«1250.

28 BC22>"1600.

29 B<23)«2000>

30 B(24)»2500*

31 B<25)»3150.

32 B(26>»4000.

33 B<27)«5000.

34 B<28>«6300.

35 B(29)a8000.

36 B(3Q)«10000.

37 BC31)«12500.

38 BC32>«16000.

39 B(33)>20Q00*

40 VRITEC3* n

41 1 FORMAT ( 2/ # 'PUT SSO UP TO BRING IN DATA FROM RTA. '*3/>

42 2 KK«ISWCHC0>+1

43 60 T0(2*3)*KK

44 3 KVAL<40>=«0 .

91
45 CALL RTAKKVALCl )^KUNDC1 )^ JOVER)

46 WRITEC3#4>

47 4 F0RMATC4/* ' REAL - TIME 1/3 OCTAVE ANALYZER TYPE 3347 OUTPUT'Jf

48 WRITE(3*5>

49 5 F0RMAT<3X* 'BAND*/ 5X* DB**3X* 'UFL0W**5X* 'BAND*, 5X* 'DB**3X* *UFL»

5Q AVAL«FL0AT(KVAL( I ) >/I0.

51 BVAL»FLOAT<KVAL<17))/10.

52 VRITEC3/6>AVAL/KUND(1 )/BC16)/BVAL/KUNDC17>

53 6 FORMATC/, VBASE L. **F7.UI5,4X, F8.1#F7.l,I5)

54 DO 10 J-2/16

55 JJ-J+16

56 AVAL«FLOAT<KVALCJ))/10.

57 BVALaFLOAT(KVAL(JJ))/10.

58 IQ WRITE(3, 1 1 )B( J-1 ),AVAL,KUND< J)/B<JJ-l >,BVAL#KUND(JJ)

59 U F0RMAT(F8.1,F7.UI5#4X/F8.1/F7.1/I5)

60 AVAL«FLOAT(KVALC38))/iO.

61 BVAL«FLOAT(KVAL(33>)/10.

62 WRITE(3, 12)AVAL/KUND<38)#B(32)/BVAL#KUND(33)

63 12 FORMATC ' WEIGHT. %F7. 1, I5*4X,F8. 1,F7. U 15)

64 AVAL*FLOAT(KVAL<39))/10.

65 BVAL«FL0ATCKVAL(34) )/l 0.

66 WRITE<3, 13)AVAL/KUND<39),B<33),BVAL,KUND(34)

67 13 FORMATC LINEAR F7. 1, I5,4X/ F8. 1* F7. 1, 15)

68 IF(J0VER)23,22,23

69 23 WRIT£(3#25) * 70 25 FORMAT (// *RTA INPUT AMPLIFIER WAS OVERLOADED.')

71 22 IF(KVAL(40))20/2/20

72 20 WRITE(3,21 )KVAL(40)

73 21 FORMAT <// 'EXTRA VALUE FROM RTA. KVAL(40) « ',15)

74 GO TO 2

END

92
1/27/7512 'RTAI ' PAGE I

1 * 1/27/7512 'RTAl * 2 ORIG X'2400*

3 • 4 » WHEN CALLED BY C FORTRAN MAIN PROGRAM IT BRINGS

5 « IN 39 VALUES FROM THE REAL TIME ANALYZER.

6

7 « IN G. FORTRAN US El

8 * DIMENSION KVALC39)# KUND(39

)

9 GALL RTACKVALC 1 )>KUND( 1 )* JOVER)

10 * WHERE

11 « KVALCl) « BASE LINE VALUE CDB X 10)

12 • KVAL(2> » 12.5 HZ VALUE CDB X 10)

13 « 14

15 • . 16 « KVAL(34) ' 20000 HZ VALUE (DB X 10)

17 • KVAL(38) » WEIGHTED VALUE (DB X 10)

18 * KVALC39) » LINEAR VALUE (DB X 10)

19 * 20 • KUND IS 39 WORD ARRAY IDICATING IF

21 « A PARTICULAR 1/3 OCTAVE VALUE

22 * IS ABOVE THE BASE LINE OR EQUAL

23 TO OR BELOW THE BASE LIIilE

24 (Called underange)

25 • I.E. KUND(ll) » 0 (100 HZ BAND > BASE LINE)

26 • KUND(ll) = 1 (100 HZ BAND = OR < BASE LINE)

27 • 28 * JOVER » 0 NORMAL SIGNAL LEVEL

29 « 1 INPUT AMPLIFIER IS OVERLOADED

30 « (CHANGE INPUT ATTENUATOR SETTING

31 • TO REDUCE SIGNAL LEVEL)

32

2400 0082 33 RTAl DATA X'82'

2401 0000 34 KVAL D 0

2402 0000 35 KUND D 0

2403 0000 36 JOVER D 0

2404 8432 37 LDW DEND

2/405 0080 38 SMB 0

2406 7009 39 STW 9 STUFF INTERRUPT 2 LINKAGE

2407 8433 40 LDW DDATA

2408 0080 41 SMB 0

2409 700D 42 STW X'D' STUFF INTERRUPT 3 LINKAGE

240A 8401 43 LDW KVAL

240B 7428 44 STW COUNTl LOCATION OF KVAL( 1

)

240C 8402 45 LDW KUND

240D 7420 46 STW C0UNT2 LOCATION OF KUND( 1

)

240E 0100 47 CLR

240F 7434 48 STW TJOVER SET TJOVER « 0

2410 0023 49 £NB 3 ENABLE DATA READY INTERRUPT

241 1 0361 50 DOT 6# 1 DATA REQUEST TO RTA

2412 0022 51 ENB 2 ENABLE END OF SCAN INTERRUPT

2413 1413 52

53

WAIT

• JMP WAIT WAIT FOR DATA READY INTERRUPT

54 DATA READY INTERRUPT LEVEL 3

55 « 2414 0261 56 DATARDY DIN 1 BRING IN DATA FROM RTA

2415 743 5 57 STW T

93
i/27/75«2 *RTAl * PAGE 2

8416 0820 56 SAM INPUT AMPLIFIER OVERLOADED?

2417 14iA 59 JMP CONT NO

2418 843 6 60 LDV ONE YES

2419 7434 61 STW TJOVER SET TJOVER « 1 241A 8435 62 CONT LDV T

241B 9420 63 LDX C0UNT2 IX POINTS TO KUND ELEMENT

241C E437 64 AND X4000 EXTRACT UNDERANQE BIT

241D OAOE 65 SRL 14 MOVE UNDERRANGE BIT

241 E 7800 66 STW « 0 STORE IN KUND ARRAY

241 F 0401 67 IXS 1 2420 0000 68 C0UNT2 D 0

2421 6420 69 STX C0UNT2 C0UNT2 = C0UNT2 + 1 2422 8435 70 LDW T

2423 E438 71 AND X3FFF EXTRACT BCD DATA

2424 2439 72 JSX BCDB CONVERT BCD TO BINARY

2425 9428 73 LDX COUNTl

2426 780 Q 74 STW « 0 STORE BINARY IN KVAL ARRAY

2427 0401 75 IXS 1 2428 0000 76 COUNTl D 0 2429 6428 77 STX COUNTl COUNTl = COUNTl 1 INR 3 DATA INTERRUPT RETURN

79 « 80

81

* END OF SCAN

« INTERRUPT LEVEL 2

242B 0033 82 ENDSCAN DSB 3 DISABLE INTERRUPT 3

242C 0032 83 DSB 2 DISABLE INTERRUPT 2

242D 8434 84 LDW TJOVER

242E 9403 85 LDX JOVER

242F 7800 86 STW « 0 PASS JOVER VALUE TO FORTRAN

243 0 0080 87 SMB 0

2431 2083 88 JSX X'83 ' RETURN TO C FORTRAN

2432 242B 89 DEND D ENDSCAN

2433 2414 90 DDATA D DATARDY

2434 0000 91 TJOVER D 0

2435 0000 92 T D 0

243 6 000 1 93 ONE D 1 2437 4000 94 ^4000 D X'4000 ' 2438 3FFF 95 X3FFF D X>3FFF*

96 « 97 « CONVERT BCD TO BINARY ROUTINE

98 « 2439 6451 99 BCDB STX RT SAVE RETURN

243A 7452 100 STW BCDN

243B 0100 101 CLR

243C 7453 102 STW TOT ZERO BINARY NUMBER

243D 2446 103 JSX MBl 0 DIGl X 10

243E 2446 104 JSX MBl 0 DI62 X 10 + DIGl X 100

243F 2446 105 JSX M610 DIG3X10-*-DIG2X100-t>DIGlXl 000

2440 8452 106 LDW BCDN

2441 0A54 107 SLC 4

2442 E454 108 AND XF

2443 A453 109 ADD TOT •I-DIG4

2444 9451 1 10 LDX RT

2445 1800 1 1

1

JMP « 0

2446 8452 112 MBIO LDW BCDN

2447 0A54 113 SLC 4

2448 7452 114 STW BCDN

94
l/27/75t8 'RTAl* PAGE 3

2449 E454 115 AND XF NEW DIGIT

244A A453 116 ADD TOT

244B 7453 117 STW TOT

244C 0A13 118 8LL 3 X8

244D A453 119 ADD TOT

244E A453 12 Q ADD TOT XI 0

244F 7453 121 STW TOT NEW TOTAL

2450 1800 122 JMP • 0

2451 0000 123 RT D 0 RETURN LOG

2452 0000 124 BCDN D 0 BCD STRING

2453 0000 125 TOT D 0 BINARY TOTAL

2454 OOOF 126

127

xr D

END

X'F' MASK

NO ERRORS

95
1/27/7512 *RTAl' PAGE

BCDB 2439 BCDN 2452

C0UNT2 2420 DATARDY 2414

ENDS CAN 242B JOVER 2403

MBIO 2446 ONE 2436

T 2435 tJOVER 2434

XSFFF 2438 X4000 2437

PAS?

CONT 241A COUNTl 2428

DtATA 2433 D&ND 2432

KUND 2402 KVAL 2401

RT 2451 RTAl 2400

TOT 2453 WAIT 2413

XF 8454

96
8. APPENDIX D. FORTRAN SOFTWARE LISTINGS FOR THE ANALYSIS OF COMMUNITY

NOISE DATA

Appendix D contains program listings for Tape Read Program and

Calcomp Plot Program.

97
Tape Read Program

|« C PROGRAM TO READ 2H HOURS OF DATA AND PLOT LI ETC.LEQ EACH HQUK,

,2« , DIMENSION IDAY(S» ,LINE(?,6)

3» DIMENSION SPLr(2M,6,2) ,SPECS«35»

M* DIMENSION Yf ( I on ) , XF ( I 00 ) ,F 1 T « 5

)

\5» . INTFGER DAYST.HRST

6* DIMENSION NP I N ( I 00 ,2 ) , 1 C? t 2 ) I J3 ( 2 , I 000)

7« COMMON Jl (2C^0) , J2( 1000)

fl« EOUI VALENCE( Jl ( 1 ) ,J3( I , 1) ) 9 • DATA(FIT(J),J=l,S)/l.,IO.,50.,"'n.|9V./

I P» C READ IN BFGtNNIHG.FND.OELTA FOR BIN - E.G. '40,80,2 MEANS BIN IN 20 BINS FROM

1 I • C • Mr!TOflOr(3WITH2DfiRlN*fIDTH,

I2» RE AO (S, I) 1 F*Lr, , I END , I DEL

I3« C FORHATl) MEANS FREE FORMAT, ALL NUMBERS SEPARATED BY COMMAS. E.G 40,80,2

m« I FORMAT ( » I5« ''^ NUM= ( I END- I PEG ) / I DEL

16* ftRITE<6,?) MUM,If^EG,IENO,IDFL

|7» ? F0RMAT(IHI,'F0LL01MMG DATA IS F0R«,I3,»BINS FROM*, 13, • T0«,I3»

I8« ••on IN»,13,» Pn STFPSM

|9» C READ IN STARTING DAY,HR,NUM OF MRS

20* HEAP { 5 ,9 ) DAYST ,HR5T ,NHR ^ 2I« 9F0RMAT(3IA)

22« RE AD ( D , I 0 ) I PA Y ( 7 ) , I DA Y ( M

)

2 3» iaF0RMAT(7«6)

2«4» ' I DA Y ( I ) = • DA Y • 25» IDAY(3)=' HOUR

26* I DA Y ( S ) =-0

27* 50 CALL RPIIMHK ( 7 , L 2 I 28» IF( Jl ( I ?ni ) .EO.OAYST.ANP.JI ( I2r?) .E0.HRST)GO TO 11 29» GO TO 50

30« II DO 100 11=1 ,NHR

31* CALLNTPArJ(7,7,-n

32 • DO 1 5 J= 1 ,

2

33« lC2(J)aC

31» DO 1 5 I = I , I GO

,35* 15 MP I N ( I , J ) =0

3((i» I71HR = J|(I?02I

3 7« 13 CALL RDiJ'>irK(7,L2)

3e» C L2 IJEGATIVF MFAtjS RFaP ERROR. 1GNT)RE BLOCK AND CONTINUE

39» 1F(L7.LT.0»G0T0I3

mi« I F ( J I ( I 207 ) . MF . n ) Gfl TO 13 HI* 1 r t J I ( 1 ?02 I . MF . I HR I GO TO 1

6

H7» C TO 30 BINS PATA IN GIVEN RANGE. IGNORE DATA OUTSIDE RANGE,

M3« C DATA GPEATE" TmaN OR EQUAL TO MO AND LESS THAN Ml PUT IN MnOB QlN.

DO 30 J= I ,2

M6« D030I=l,6nu

«I6» I F ( J3 ( J , n / I o . .LT , I PEG . OR . J3 ( J , I ) / I 0 . .6T , I END ) 60 TO 30

q7» IC?( J)=TC2( J) I

18» SPLF(I!,A,J)=SPLF(I1,<>,J) + 10«»(J3(J,I)/I00.)

M9« D020K=I,NUM

50« TEST =IPEG*i'«IDEL

5I» 2C. I F ( J3 ( J , I ) / I 0 . .LT . TEST) GO TO 21 52» 21 NB I N ( K , J ) sN^^ I N ( K , J ) I 53» 30 CONTINUE

S*** GO TO 17 55» I 6 DO MO J= I ,

2

&&• IF( IC2( J) .EO.D) GO TO MO

57« SPLF(I1,6,J)=10»ALOGJO(SPLF(II,6,J)/IC2(J))

58* XF(1)=NBIN(NUM,J)

59« 00 31 K=2,NUM

60« JM = NUM-K I

' 61* 31 XF ( K ) =xr ( K- 1 ) ^NB I N ( JM , J ) . 62« DO MI K= 1 ,NIIM 63* XF(K)=XF(K)/lC2(J)»inO.

Ml YF I K ) = I END+ I -K 65» C INTERPOLATE TO CALCULATE LI,LIO ETC. » 66* DO 53 L= I ,

5

67* 53 SPLF(II,L,J)=AITINTtXF,YF,NUM,FIT{L»,2,TI)

bS* MO CONTINUE

98
69» 100 CONTINUE

7U» C SPECS ARRAY I HJR GRAPHICAL DISPLAY S Y S T E M ( C A L C 0 M P ) 7 1 « SPECS ( 1) = 1 72* SPECS(2)=1

73* SPEC5(3)=NHR

74* SPECS(M)=1

75* SPECS { 5 ) = I EMD

Ih* SPECS ( 6 ) = 1 BEG

77* SPECS ( 7 ) =NHR-

!

78 * SPECS ( 8 ) =8

79* SPECS ( 1 I ) = 1 80* SPECS ( I 2 ) =8

81# SPECS ( I 3 ) =NHR

82* SPECS ( 1 M ) =

1

83* SPECS(15)=I

8H» SPECS ( 1 6 ) = 1 85* SPECS(I7)=.1

86» SPECS ( 1 8 ) = . I 87* SPECS ( I 9 ) =0

88* SPECS(20)=0

89» SPECS ( 2 1

) =

1

90* L I NE ( I , I ) = • L 1 • 91* LINE(l,2)=« LIO*

92* L I NE ( I , 3 ) = » L50 • 93* LINE(I,4) = »L*?0»

9M» L I NE ( 1 S ) = • L«^9 • 95* L I NE ( I , 6 ) = • LEQ

96* DO 1 M 1=1,6

97* IH L I NE ( 2 , I

) =-0

98* DO 12 1=1, NHR

99* 1 2 XF ( I

) =

I

100* J= I 10 1* SPECS ( 2M ) =0

102* SPECS(26)=0

103* 5PECS{9)=I

1 OM* SPECS ( I 0 ) = I

I 05* CALL GDL I L I ( SPECS ) 106* SPECS { 9 ) =NHR1

1 C7* SPECS ( I 0 ) =M

108* CALL NOOL I B ( SPECS ) 109* CALL NOOL I L ( SPECS

)

lie* CALL T I TLEB { •HOURS AFTER 5 T A R T •

, S P E C S

)

ill* SPECS ( 22 ) = 1 . 5

1 1 2* SPECS ( 23 ) =8. 5

113* CALL TITLE G(1.,I0AY, SPECS)

IIH* SPECS(22)=.2

lis* SPECS(2 3)=M.83

116* DO I 02 L= 1 , A 117* SPECS ( 23 ) =SPECS ( 23 ) I

S

118* SPECS ( 1 6 ) =L

119* CALL SYMKEY ( 1 . ,L I NE ( 1 ,L ) , SPECS

)

120* CALL PSLILI(XF,SPLF{I,L,J),SPECS)

121* CALL SLL I L I ( XF , SPLF ( I ,L , J ) ,5PEC5 )

1 22* 102 CONT I NUF

123* CALL GDSEND ( SPECS ) 12'1* STOP

12 5* END

99
?• coMHON JM ?non) , J7I inno)

3» . CALL NT'?AN(M,?,AOO,J?.L?,??»

<!• ir(L?.GT.OK'0 TO IS

"i* iVPITF(6,l)L?

f,* I FORMAKIH .ZuISI

7» \ GO TO 99

8« IB N«9»L?/H

9» DO 10 1 = 1 ,N,

9

I Of K" i ' \ ) /9

I I • ' JI(I)=FLn('J,16,.l7«t())

\2* . J)(I*l)=rLD(l(<>,IA,J?(K))

13 • JltI*2)=FLn(3?,H,J2(K))«16»l6«lA + FLD([^,l?,J2(K*ni

J I ( I J ) =FLO ( I 2 , I ft , J? ( K* 1 ) ) IS* JI(I*H)=FLDt2B,ft,J2<tC*n)»lA»|A + FLD(0,8,J2(K*2»»

\h» J! ( I+5)»FLD(8, !6,J2(K*2) J |7« J 1 ( I +6 ) aFLO ( 2t , I 7 , J2 « K + 2 n • I 6*FLn ( 0 , M , J? ( K*3 ) ) »B« Jl ( I+yjsFUDCl, l&,J?(K*3) J 19* J t ( ! +8 ) «FLn ( 20 , I 6 , J? < K*3 ) ) 20» 10 CONTINHF

2I» 99 HETURN

2?« • END

100
Calcomp -Plot t'rogram

1, c PROGRAM TO READ 0 A T A , B I N , C A L C UL A T E L ! , I 0 , 5 0 , 9 0 , 9 V , L E W AND LIST.

2, DIMENSION Yf ( I 00 ) , HF ( I uO > ,F 1 T 1 S ) , SPLF ( S ) ,XL£& ( 2

)

3, INTEGER OA YS T ,HRST ,MI N5T ,OAYF I N ,HRF 1 N ,M I NT IN DIMENSION NP 1 N < 1 00 . 2 ) . I C2 ( 2 ) I J3 ( 2 « &00I

COMMON J I ( I 2 t S ) t J2 ( I 000

)

5« EQUI VALENCE ( Jl ( 1) .J3( I . 1 n

7, l)ATA(FIT<J),J«li5)/l.»IO.,bO.,9n,,99./

10* C READ IN BEGINNING, END. DELTA FOR BIN - E.G. <«0,80i2 MEANS BIN IN 20 BINS FROM

II* C • <40 TO no OB WITH 2 OB BIN MIOTH.

12* REAO(S.I) IBEGt lENO. lOEL

|3« C FORMAT!) MEANS FREE FORMAT, ALL NUMBERS SEPARATED flT COMMAS. E.G MO, BO,

2

I <f • 1 FORMAT < ) IS* NUMal lENO-IBEGt/IOEL

16* *RIT£(6,2> NUM, IBE6, lENO, lOEL

|7« 2 FORMAT ( I H 1 ,

• FOLLOrt I NG DATA IS F 0 R • , I 3 , • B I N S FROM', 13, • T0»,I3,

18* ••OB IN»,I3,« DB STEPS')

|9» C READ IN STARTING DAY,HR,MIN AND FINISHING OAY,HK,MIN.

20» REA0(5,I) OA YST ,HRST , M I NST , DAYF I N ,HRF I N ,M I NF I

N

21* REAOtS, I ) ICTRL

22» 50 CALL R 0 UN P K-l 7 , L 2 ) 23* lF(JI(120n.EQ.0AYST.AN0.J|(l202)tEQ.HRST.AN0.Jl(l203).GE.MINST)G0

2M* •TOM

2S* GO TO SO

2&» II CALL NTRAN(7,7,-I

)

27» 13 CALL RUUNPK(7,L2)

28» C L2 NEGATIVE MEANS READ ERROR. IGNORE BLOCK AND CONTINUE

29» IF(L2.LT.O) GO TO 13 30* ICI«ICi«l

3I» IF(ICTRL.EQ,I)*RITE(6,I0)(J1(J),J=I20I,I2IS)

32» I F ( I C TRL .£U . 2 ) *R I TE ( & , 1 0 IJl

33« I 0 FORMA T ( I H 20 I S

I

31* C TO 30 BINS DATA IN GIVEN RANGE. IGNORE DATA OUTSIDE RANGE.

35^ C OATA GREATER THAN OR EQUAL TO MO AND LESS THAN 41 PUT IN HOOB BIN.

3&* 00 30 J> I ,2

37^ DO 30 I - I ,600

38* J3(J.I)>J3(J,n*IO

39* IF( J3( J,I )/IO.tLT.IBE6.0R.J3( J,I )/IO..GC.IEND> GO TO 30

to* IC2( J)*IC2( J)*l

•41* XLEG(J)«XLEG(J>«I0**(J3(J,I)/I00t)

H2» DO 20 K»|,NUM

M3* TEST «IBEG*K»IDEL

HM* 20 1 F ( J3 ( J , I ) / I Ot .LT . TEST) 60 TO 21

<4S* 21 NB I N ( K , J ) 3NB I N ( K , J ) * I H6* 30 CONTINUE

<«7* IF(JIII20II.EO.OAYFlN.ANO.JI(l2n2).EQ.HRFIN.ANO.JI(l203).GE.MINFIN

MB* •) GO TO 12 M9* GO TO I 3 SO* 12 ICIs600*ICI

5I« *RITE(6,3) DAYST ,HRST ,MINST

52* 3 FOKMAT(|H ,'DATA STARTS ON OAY'.IH,' HOUR', 13,' MINUTE', 13)

53* *R1TE»6,M) 0AVFIN,HRFIN,MINFIN

5M* "4 FORMATtlH ,»DATA ENDS ON DAY'.IM,' HOUR', 13,' MINUTE', I3»

55* «RITE(6,S) ICl

56* 5 FORMATIIH , 'TOTAL POINTS READ »',IIOI

57* DO MO J» I ,2

58* ARITE(6,6)J,IC2(JI

59* 6 FORMAT ( 1 HO FOR CHANNEL I 2 , TOTAL POINTS BINnEO IN RANGE »',I10)

60* 1F( IC2( J) .EQ.O) GO TO MO

61* ttRITE(6,7)

62* 7 FORMATIIH ,' XLEB LI LIO L50 L90 L99»l

63* XL£G{J)»I0»AL0610(XLEG<J)/IC2IJ))

6M* XF( I )=NBIN(NUM,J)

65* 00 31 K92,NUM

66* JM=NUM-K+I

67* 31 XF(K)aXF(K-n*NBIN(JM,J)

68* DO M I K3 I ,NUM

69* XF ( K ) sXF ( K ) / I C2 t J) • I 00.

70* Ml YF ( K ) « I END* I -K 71* C INTERPOLATE TO CALCULATE LI, LIO ETC.

72* DO 63 L» I ,5

73* 53 SPLF(L)«AITINT( XF,YF,NUM,FITIL» t2»Tn

7M* *RITE(6,8) XlFG(J),SPLF

75* 8 FORMAT(IH ,I0F6.II

76* MO CONTINUE

77* STOP

78* END

101
ACKNOWLEDGEMENTS

The authors wish to express their appreciation to Dr. Rohert Joseph at the

U. S. Armor Environmental Hygiene Agency, Aberdeen Proving Ground, Maryland for

the loan of the Bio-Acoustic Division's minicomputer system during interface

development and for his helpful suggestions at the time of software development.

We wish to thank Mr. James Heinen, Miss Toni Savoy and Mr. Mitchell Tarica

for the many hours they spent constructing the interface hardware.

We want to express our gratitude to Mrs. Marilyn Cadoff for her aid in

compiling this report.

We also thank Mrs. Janet Russell and Mrs. Margaret Hildebrand for lending

their typing skills to the preparation of this document.

Finally, we wish to thank Mr. William Haight for his judicious review and

commentary on this report. jn.an^nsAni '

USCOMM-NBS-DC 102
NBS.114A (REV. 7-73)

U.S. DEPT. OF COMM.

BIBLIOGRAPHIC DATA

SHEET

1. PURIJCATION OR REPORT NO.

NBSIR 75-692

2. Gov't Accession

No.

3. Recipient's Accession No,

4 TITI F AND SUBTITJ F A Minicomputer-Based System for the Measurement and Analysis of Communltv Noise

5. Publication Date April 1975

6. Performing Organization Code

7. AUTHOR(S)

R. L. Fisher, D. S. Blomquist, J. S. Forrer, and D. M. Corlev

8. Performing Organ. Report No. NBSIR 75-fi9?,

9 PFRFORMINf; ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project/Task/Work Unit No. 2130454

11. Contract/Grant No.

12. Sponsoring Organization Name and Complete Address (Street, City, State, ZIP)

Bloacoustlcs Division

U.S. Army Environmental Hygiene Agency

Aberdeen Proving Ground, Maryland 21010

13. Type of Report & Period

Covered Final

5/74-2/75

14. oponsoring Agency Code

15. SUPPLEMENTARY NOTES

16. ABSTRACT (A 200-word or less tactual summary ot most si^ificant information. If document includes a significant

bibliography or literature survey, mention it here.)

An operating system for the measurement and analysis of community noise

was turned over to the Arnor for their use in February 19T5, thus accomplishing the transfer of technology developed by NBS to the Bioacoustics Division,

U. S. Arasy Environmental Hygiene Agency. This report documents the hardware

and software packages prepared by NBS in support of this system.

17. KEY WORDS (six to twelve entries; alphabetical order; capitalize only the first letter of the first key word unless a proper name; separated by semicolons)

Community noise; computer interface; instrmentation; minicomputer; noise.

18. AVAILABILITY [X] Unlimited

QJ For Official Distribution. Do Not Release to NTIS

1 1 Order From Sup. of Doc, U.S. Government Printing Office Washincton. D.C, 20402. SD Cat. No. C13

IX 1 Order From National Technical Information Service (NTIS)

Springfield, Virginia 22151

19. SECURITY CLASS

(THIS REPORT)

UNCL ASSIFIED

21. NO. OF PAGES

105

20. SECURITY CLASS

(THIS PAGE)

UNCLASSIFIED

22. Price

5.50

USCOMM.DC 29042-P74