Microprocessor-based in-process infrared densitometer

238
Rochester Institute of Technology Rochester Institute of Technology RIT Scholar Works RIT Scholar Works Theses 3-25-1982 Microprocessor-based in-process infrared densitometer Microprocessor-based in-process infrared densitometer Steven Cox Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Recommended Citation Cox, Steven, "Microprocessor-based in-process infrared densitometer" (1982). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected].

Transcript of Microprocessor-based in-process infrared densitometer

Rochester Institute of Technology Rochester Institute of Technology

RIT Scholar Works RIT Scholar Works

Theses

3-25-1982

Microprocessor-based in-process infrared densitometer Microprocessor-based in-process infrared densitometer

Steven Cox

Follow this and additional works at: https://scholarworks.rit.edu/theses

Recommended Citation Recommended Citation Cox, Steven, "Microprocessor-based in-process infrared densitometer" (1982). Thesis. Rochester Institute of Technology. Accessed from

This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected].

MICROPROCESSOR-BASED IN-PROCESS

INFRARED DENSITOMETER

by

Steven P. Cox

B.S.E.E. California State University, Northridge

(1978)

A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in the School of

Photographic Arts and Sciences in the College of Graphic Arts and Photography of the Rochester Institute of Technology

March, 1982

Signature of the Steven P. Cox

Author .................................... .

Accepted

Photographic Science and Instrumentation

Ronald Francis by ••••••••••••••••••••••••••••••••••••••••••••••... Coordinator, Graduate Program

School of Photographic Arts and Sciences

Rochester Institute of Technology

Rochester, New York

CERTIFICATE OF APPROVAL

MASTER'S THESIS

The Master's Thesis of Steven P. Cox has been examined and approved

by the thesis committee as satisfactory for the thesis requirement for the

Master of Science degree

John F. Carson Professor John F. Carson, Thesis Advisor

J. S. Wirtz · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . John S. Wirtz

Burt H. Carroll · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dr. Burt H. Carroll

• .'2;!i • .m.C(.y~ • .13.8. ~ ...................... . Date

MICROPROCESSOR-BASED IN-PROCESS

INFRARED DENSITOMETER

by

Steven P. Cox

Submitted to the Photographic Science and

Instrumentation Division in partial fulfillment

of the requirements for the Master of Science

degree at the Rochester Institute of Technology

ABSTRACT

By the use of high performance solid-state infrared

emitting diodes, matched infrared detectors, and a single

chip 8-bit microprocessor, an in-process infrared den

sitometer has been designed and constructed. The device is

capable of recording the build-up of optical transmission

density on an exposed film sample as it develops, with no

effect on the normal development process. The most novel

feature of this system is a special development chamber with

eleven built-in infrared densitometers. These densitometers

are located as to read every other step of a standard Kodak

#2 step-tablet exposure, and to allow the passage of dev

eloper across the film sample.

As an example, every other step of a 21-step exposure

can be measured to produce a series of eleven density

readings in approximately 22 milliseconds. These measure

ments can be repeated from once every second to once per

minute at any time during the development process. The

microprocessor that controls the infrared densitometer has

memory capacity to store the data required to generate 187

complete D-Log exposure curves. At the completion of pro

cessing, the density readings recorded earlier are available

for user viewing on a large seven segment digital display

system, or can be reproduced on a line printer.

D-Log exposure curves obtained from the device are in

good agreement with curves obtained by conventional means.

The device has a useful range of 0 to 3-00 density units

with an accuracy of +/- .02 density units.

ACKNOWLEDGEMENTS

I would like to thank the United States Central

Intelligence Agency for their grant that funded the majority

of this project. I would also like to thank the Polaroid

Corporation for their grant that funded the construction of

the development chamber. The contributions to this project

by my Department Chairman, Dr. Ronald F. Francis, have not

gone unnoticed, and are appreciated also. I extend my sin

cere appreciation to my thesis advisor John F. Carson and to

my committee members John S. Wirtz and Dr. Burt H. Carroll

for their time and patience. Lastly, I sincerely thank the

entire Engineering Department at the Graphic Equipment

Division of the Itek Corporation for their interest and

invaluable technical contributions that really made this

project possible.

11

Table of Contents

Introduction 1

Prior Work 3

General Design Considerations 9

IR Densitometer System Description 11

Data Acquisition System Analysis 18

Experimental Verification 29

Experimental Conclusions and Recommendations 60

In-Process IR Densitometer Operating Instructions 63

Emitter Calibration 65

Software Calibration 69

Film Sample Preparation 74

Data Entry 76

Fluid Transport System (FTS) 79

Prompt Description and Error Messages 85

Printer Maintenance 93

References 96

Appendix 1 : Input/Output Port And Peripheral

Addressing 98

Appendix 2 : Operating System Program Listings 108

Appendix 3 : Raw Data 177

Appendix 4 : Infrared Emitting Diode LED55C

Specifications 190

Appendix 5 : UDT-450 Specifications 192

m

Appendix 6 : Model 757N Logarithmic Ratio Amplifier 194

Appendix 7 : SDK-85 Specifications 195

Appendix 8 : System Drawings 197

Vita 226

iv

List of Tables

Table 1 : Repetition data for Fine Grain Release

Positive, type 5302, developed in D-19 47

Table 2 : Repetition data for Fine Grain Release

Positive, type 5302, developed in D-76 49

Table 3 : Repetition data for Commercial Film,type 6127, developed in D-76 51

Table 4 : Process data for Fine Grain Release

Positive, type 5302, developed in D-19

demonstrating effect of developer heating 53

Table 5 : Process data for Fine Grain Release

Positive, type 5302, developed in D-76

demonstrating effect of developer heating 54

Table 6 : Log exposure values used for all

experiments 62

List of Figures

Figure 1 :

Figure 2:

Figure 3s

Figure 4:

Figure 5:

Figure 6:

Figure 7:

Figure 8:

Figure 9:

Figure 10:

Figure 1 1 :

Figure 12:

Figure 13?

Figure 14:

Functional block diagram 12

Oblique sketch of the development chamber 13

System block diagram 16

Exploded view of a single densitometer 19

Ideal analog system configuration 20

Non-ideal analog system configuration 24

Output density vs. input density for

different levels of amplifier drift 27

Density as a function of Log exposure for

Eastman Kodak Fine Grain Release Positive

type 5302, developed in D-19 31

Density as a function of Log exposure for

Eastman Kodak Fine Grain Release Positive

type 5302, developed in D-76 32

Density as a function of Log exposure for

Eastman Kodak Commercial Film, type 6127,developed in D-76 33

Unfixed, wet IR density vs. fixed-out, drydiffuse density for Fine Grain Release

Positive, type 5302, in D-19 36

Unfixed, wet IR density vs. fixed-out, drydiffuse density for Fine Grain Release

Positive, type 5302, in D-76 37

Unfixed, wet IR density vs. fixed-out, drydiffuse density for Commercial Film, type

6127, in D-76 38

Comparison of D-Log H curves for wet

unfixed, and dry fixed-out Fine Grain

Release Positive, type 5302, in D-19 42

vi

Figure 15: Comparison of D-Log H curves for wet

Unfixed, and dry fixed-out Fine Grain

Release Positive, type 5302, in D-76 43

Figure 16: Comparsion of D-Log H curves for wet

unfixed, and dry fixed-out Commercial

Film, type 6127, in D-76 44

Figure 17: Density as a function of position and

flowrate for a sample of Pan-X

Recording Film, SO-164, exposed to

room lights for 5 minutes and

developed in D-76 58

Figure 18: Density as a function of position and flow-

rate for a uniformly exposed sample of Pan-X

Recording Film, SO-164, developed in D-76 59

Figure 19: Software calibration plot 71

Figure 20: Flowrate as a Function of Pump Setting 80

Figure 21: Fluid Transport System Hydraulic Schematic. .. .83

Figure 22: Power Output vs. Input Current for LED55C . . . . 1 9 1

Figure 23: Typical Radiation Pattern for LED55C 191

Figure 24: Spectral Response of UDT-450 193

Figure 25: Output voltage of UDT-450 as a function

of incident energy 193

Figure 26: Logarithmic Amplifier Schematic 197

Figure 27: Keyboard Schematic 198

Figure 28: FTS Manual Override Schematic 199

Figure 29: Analog to Digital Converter Assembly 200

Figure 30: Analog to Digital Converter Schematic 201

Figure 31 : 12 Character Display Assembly 202

Figure 32: 12 Character Display Schematic 203

Figure 33: Opto Isolated I/O Assembly 204

Figure 34: Opto Isolated I/O Schematic 205

vii

Figure 35: 33 Digit Display Assembly 206

Figure 36: 33 Digit Display Schematic 207

Figure 37: IRED Driver Board Assembly 208

Figure 38: IRED Driver Board Schematic 209

Figure 39: Driver Board Assembly 210

Figure 40: Driver Board Schematic 211

Figure 41: Chamber Front 212

Figure 42: Chamber Back 213

Figure 43: Lock 214

Figure 44: Hinge 215

Figure 45: Chamber Mount 216

Figure 46: Cover Plate 217

Figure 47: Lens Tube 218

Figure 48: Cable Support 219

Figure 49: Cable Support 220

Figure 50: Lock Pin 221

Figure 51 : Input Pipe 222

Figure 52: Output Pipe 223

Figure 53: Hinge Shaft 224

Figure 54: Registration Pin 225

vm

INTRODUCTION

The design and construction of a device that would allow

for the procurement of densiometric data from a sample of pho

tographic film as it developed has been the subject of numerous

thesis projects at the Rochester Institute of Technology. Some of

these devices have been constructed, and feasibility proven, but

their usefulness was extremely limited due to their primitive

nature. The purpose of this thesis is to tie all previous

efforts together in the design, construction, and testing of a

completly new, workable, and reliable in-process IR

densitometer.

The conceptual requirements for IR densi tometery have been

well known for years, but prior workers have either lacked the

technology, or the expertise to construct a truly significant

device. This project makes use of state-of-the-art technology

along with industry standard development and assembly techniques

in its design and construction. Therefore, the general aim of

this project is to produce a research instrument of the highest

possible caliber to allow those qualifed to study photographic

processing.

Of the many possible uses for this device, induction

period studies have received foremost consideration in its

design. The ability to monitor changes in the rate of develop

ment and to know exactly when the developer makes actual contact

with the emulsion are absolute necessities when attempting to

determine the length of the induction period. This is where the

conventional method of arresting development fails. The

procedure becomes inaccurate at short development times. The IR

densitometer, however, has been designed tomonitor density build

up on a second-by-second basis, thus providing an accurate record

of exactly how the film sample developed.

Prior Work:

Conceptually, the design of an in-process IR densitometer

is quite simple. All that is really needed is:

1 .) A source of infrared radiation to which the film being

investigated is insensitive.

2.) Some method of directing this radiation through the

developing film sample.

3.) The collection and detection of the radiation after it

has passed through the sample.

4.) A method of relating the detected signal to some type

of optical transmission density.

5.) An output system which will deliver the desired sen-

sitometric data to the operator in some convenient

form.

However simple this may sound, it has taken almost fifteen

years and the contributions of many individuals to reach the

point where all prior efforts could be concentrated into the

construction of a truly significant and useful in-process IR den

sitometer -

One of the earliest uses of infrared densitometry was made

in 1953 by Fortmiller andJamesl

. They used a device that would

be the predecessor for future designs at the Rochester Institute

of Techonolgy. Their apparatus was used to study the kinetics of

development of a fine grain motion picture positive emulsion by

vanadous ion.

The first attempt to actually build such a device at R.I.T

was made by Hughes in 19642- As it was only a B.S. thesis, the

project was somewhat limited in scope, but the conceptual

feasibility of in-process IR densitometery was shown.

Hughes IR source consisted of a tungsten display case lamp

filtered with a Wratten No. 70 filter. The radiation was

directed onto a developing sensitometric exposure fastened to the

bottom of a plastic tray- From the other side of the tray, 84

plastic rods piped the IR radiation to a large collar with

a single L-shaped light pipe mounted in the center- This L-

shaped rod then had a silicon photovoltaic cell located on axis

so as the rod was rotated, it could scan all 84 pipes and direct

their output onto the single photocell. The pipes were scanned

by the rotating rod at such a rate as to produce 40 charac

teristic curves per second. The output of this cell was then

logarithmically amplified and displayed on an oscilloscope

screen. The screen was photographed by a single frame motion

picture camera and the resulting images could be projected onto

an empirically determined transfer curve relating wet IR density

to dry white light density.

The problems encountered in this system were numerous,

the major ones being non-uniformity in transmission between the

light pipes and poor photocell sensitivity at high densities.

However, the five neccessary sub-systems called for in the earlier

paragraph concerning conceptual simplicity were present.

1.) IR source: tungsten lamp and Wratten filter.

2.) Radiation through-put: plastic light pipes.

3.) Detection: rotating silicon photocell.

4.) Relation of system output to density: log amp and

transfer curve.

5.) Display: oscilloscope, movie camera, and projector com

bination.

In 1970, a second endeavor was made to construct an IR

densitometer by Hisler and Casinelli3. The five major sub

systems of their design can be outlined as follows:

1.) IR source: one six-volt, fifty watt tungsten lamp

filtered by three Kodak No. 29 Wratten filters.

2.) Radiation through-put: single emitter/detector com

bination. Developing s ens i-s trip wasmechanically moved

through IR beam by being mounted inside a revolving

plastic cylindrical tank. Method of rotation was a

phonographic turntable which would produce one complete

scan of the sensi-strip every .77 second.

3.) Detection: single photomultipler tube from a Macbeth

TD-102 densitometer with an S-4 response.

4.) Relation of system output to density: output of TD-102

fed directly to oscilloscope, logging and scaling per

formed by TD-102 electronics.

5 . ) Display: oscilloscope screen with copies being made by a

Polaroid scope camera. Type 107 film was used.

The major problem with this system was the mis-match in

peak spectral responses of the source/detector combination. Add

to this the necessity of three Wratten No. 29 filters to prevent

film fogging and it is understandable why no useable output

was obtained.

A third series of design improvments were proposed and

implemented in 1971 by Beaupre and Jasper1*. Their system

consisted of:

1.) IR source: a single 120-volt, 500 watt Sylvania EHA

tungsten-halogen projector lamp filtered by Kodak

Wratten filters Nos. 87 and 87C

2. ) Radiation through-put: same rotating turntable arrange

ment used by Hisler and Casinelli.

3.) Detection: Hewlett-Packard PIN photodiode.

4.) Density transformation was performed by a solid state

logarithmic amplifier.

5.) Display was same as that used by Hisler and Casinelli.

that is, an oscilloscope and Polaroid scope camera.

This device was tested with Eastman Kodak Fine Grain

Release Positive Film, type 5302, developed in DK-50 and D-76.

The results of their experiment demonstrated good agreement bet

ween conventionally obtained characterstic curves and their IR

obtained ones . However, beyond a density of 2 .5, curve deviation

due to non-linearities in their amplifier became significant,

thereby limiting the useful range of the device.

The first attempt to use the above device as an actual

research tool, and not a single project in itself, was made by

Turbide and Williams in 1972^. They investigated the phenomenon

of lith or infectious development. Film type used was again

5302 and ortho Kodalith type 3, 2556. No modifications were

effected upon the device and the only significant contribution of

this endeavor was to simply repeat those results obtained by

Beaupre and Jasper-

In an attempt to increase the useful density range of the

instrument , Turbide andWilliams tr i ed r emov ing the ant i -halation

backing of their sensi-strips before development. But even with

this, the device gave linear results only out to a density of

about 2.4.

A more comprehensive write-up and representative curves

are contained in an article written by B.H. Carroll^

summarizing the work of Jasper, Turbide, and Williams.

Technically, the paper deals little with the construction and

operation of the densitometer, but rather with the subject for

which the project was performed; photographic chemistry-

Industry references to IR densitometery are scarce, but

two major ones will be mentioned here in the hopes of

demonstrating that the concept is not merely an academic

curiosity. In 1 966, Spitzak7 made use of solid state IR emitters

and silicon photodetectors in a film scanning system. The ulti

mate purpose of the system was to scan photographs of planets

obtained by spacecraft , digitize the signal , and transmit them to

earth. As a side note, the author mentions the possibility of

using such a system to perform density measurements before fixing

the film to determine the degree of development.

More in keeping with the scope of this project, Keemink

and Van derWildt

designed and built a device which they called

a gammascope. The main intention of this project was to monitor

the density build-up of a piece of film while it was developing,

and then to arrest the process when a certain value of gamma was

reached.

The conceptual layout of this system is very similar to

that under consideration in this paper- An array of discrete

IREDs (infrared emitting diodes) with matching discrete photo

cells situated such that twelve positions of a continuous density

wedge (maximum density of 2 .00) , could be scanned during develop

ment . The output of the photocells is then electronically trans

formed into density values by a logarithmic amplifier- From

here, the materials characterstic curve is displayed upon an

oscilloscope screen as a series of discrete "dots". Gamma could

then be determined by fitting a line through the linear portion

of the curve and calculating its slope.

It is within this body of work where the first mention of

problems involving the Herschel effect is encountered.

Decreases in density were stated to occur when repeated scans

were made in the earliest states of development. It is at this

point when latent image centers are not yet rendered fully deve

lopable and are most susceptible to deterioration by IR

radiation. This condition can be further aggravated by the use

of very dilute developer solutions. The authors suggest that

8

this problem can be avoided by performing no scans during the

first minutes of development. However, one of the most important

design aspects of an in-process IR densitometer is to gather sen-

siometric data during precisely the first moments of development

in order to study induction effects.

The most recent work in the field of IR densitometery was

performed in 1976 by Piskacek9. His M.S. thesis was a natural

progression of previous work leading up to a final proof of

in-process IR densitometry feasibility.

The body of his project dealt with the design of a special

chamber which would allow a sensiometrically exposed piece of

35mm film to be scanned by IR radiation while it developed. His

specifications called for an array of eleven solid state IR

emitter/detector combinations to be mounted within the chamber to

facilitate density measurments being taken from a 21 -step sensit-

ometric exposure.

Not only was the chamber designed, but the materials

called out by his plans were tested for their suitability in a

developer environment (e.g. extreme excursions in pH) . Also, any

material which was to be used in the transmission of IR was

tested for its optical properties and possible attenuation in the

IR.

Although Piskacek was unable to actually build his

chamber, he was able to bench test a small portion of the

electro-optical system. Using an IR emitting diode, (Monsanto

ME5) and a solid state detector, (UDT-500, effective area .05

cm2) , he was able to obtain a linear correlation between unfixed

IR density and fixed out white light density. Agreement was good

out to a maximum density of 2.00.

General Design Considerations:

Piskacek's work in 1976 was one of the last design steps

necessary for the construction of a truly significant and useful

in-process IR densitometer. Very little was said, however, about

the design of a working densitometer from a systems approach.

Piskacek used a simple block diagram point of view for detailing

how he thought the remainder of the densitometer should be con

figured. In all actuality, he really intended for the remaining

work to be carried out by someone else, and purposely left any

electronic designs vague.

Picking up where Piskacek left off, a complete IR den

sitometer system can be generalized. His selection of IR emit

ters and detectors mounted in a specially designed development

chamber would produce eleven discrete optical transmission

signals. Some of the most important design considerations for

this system are that these signals be generated quickly (on the

order of milliseconds), accurately (within +/-.02 density

units) , and over a density range of0to3-00- Another important

consideration is an efficient and convenient method of storage

and display of density data. The old method of photographing an

oscilloscope screen would not be suitable for the system being

considered here.

To meet the above generalized requirements, a single chip

8-bit microprocessor has been selected as the system controller.

Microprocessors are ideally suited for the rapid control,

storage, and display of data. For this particular system, the

microprocessor will control the sequential pulsing of the eleven

emitter/detector pairs to generate eleven optical transmission

signals. By the use of an analog multiplexer, it will direct

these signals to a high-performance logarithmic amplifier, and

then put them into digital form for input to the microprocessor.

The output system will consist of a light emitting diode display

10

of the actual density values, or permament records of density

information can be generated on a line printer.

The overall design philosophy is to construct a device

that can be used as a research instrument by scientific person

nel.

1 1

IR Densitometer System Description:

The design of the in-process IR densitometer can be broken

up into three major functional groups. These three groups are:

data acquisition, data management , and data output. Although all

groups are under total control of the microprocessor, this func

tional grouping will aid in understanding the system as a

whole (see figure 1).

Data Acquisition:

The major component of this sub-system is the development

chamber. The chamber is a precisely machined block of stainless

steel designed to hold a strip of 35mm film in registration

against eleven solid state IR densitometers while developer is

pumped across the sample. The chamber is made up of two matched

sides that mate to form the development cavity. It is connected

at the bottom by a hinge pin (see figure 2) and sealed at the top

by a locking pin. The top section contains the eleven IR

emitting diodes (General Electric LED55C, see appendix 4 for

complete specifications). Each diode is mounted in a small tube

with a lens at the end (f=5mm). This assembly is mounted in a

guide hole behind a plastic window and focused onto its companion

detector below. The bottom section contains the eleven IR detec

tors . They too are mounted behind a plastic window and when the

chamber is sealed, are in perfect registration with the emitters

on top and create eleven discrete, solid state mini IR den

sitometers. The detectors (UDT-450's, a photodiode-operational

amplifier combination, see appendix 5) produce an optical

transmission signal directly. These eleven outputs are fed into

an analog 16-channel multiplexer. A multiplexer is simply a

16-position switch with one common output. The switch selected,

however, depends on the state of four address lines into the

multiplexer. In this way, the output of an individual detector

12

UI _

ooooooooo

Ecd

Sh

bO

rt

J*

o

o

a3

c

o

H

a

c

bO

< m*.

J?o2

3 c/> <Oz0 u>

Q

a.

2

Q

<n

Z ro

13

COVER

PLASTIC-

WINDOW

(RECESSED)

HING

CHAMBER BACK

LOCK PIN

REGISTRATION

PIN

SOLUTION OUT

IRRADIATING CHANNEL

O"

RING GROOVE

SOLUTION INPUT

FILM STRIP

CHAMBER

FRONT

COVER PLAT

Figure 2: Oblique sketch of the development chamber

14

can be selected and processed within the array of eleven. Due to

this one-at-a-time selection of the detectors, the term "arrayscan"

becomes useful in describing how the eleven

emitter/detector pairs are sequentally pulsed to make a complete

reading of the optical transmission density (commonly called

"density") of the developing film strip. To take a density

measurment of the film sample, the first emitter/detector pair is

switched on, a reading made, switched off, the second pair turned

on, etc. Hereafter, a complete set of density measurments for a

film sample will be called a "scan". A scan produces eleven den

sity readings and takes approximately twenty-two milliseconds to

perform. Keep in mind that all scan timing and signal processing

is performed under the direction of the microprocessor.

From the multiplexer, the analog transmission signal is

fed into a logarithmic amplifier (see appendix 6). Here the log

of the input voltage is taken to produce an analog transmission

density signal. This log amplifier has been scaled to produce a

two volt change in output for a ten times change on the input.

In other words, a sample density of 1.00 produces an output

voltage of 2.00 volts, a density of 2.00 gives an ouput of 4.00

volts, etc. This signal becomes the input to a 10-bit analog to

digital converter. The output of this device is a 10-bit digital

density signal, which is in a form ready for input to the micro

processor -

These components make up the data acquisition group.

Note that any component that operates on analog signals is con

sidered part of the data acquisition system. Once the signal

becomes a 10-bit digital word, it enters the digital domain and

remains there until final output.

15

Data Management:

The data management sub-system is made up entirely by the

Intel SDK-85 single board computer (see appendix 7) . This board

contains the Central Processing Unit (CPU) or what is better

known as the microprocessor. It also contains all memory ele

ments, input/output devices, time bases, and display controllers.

A complete description of how this computer works is contained in

the SDK-85 System Design Kit User's Manual #9800451B.

The reason the IR densitometer was designed to be

controlled by a computer is twofold. Of the many problems

encountered in earlier IR densitometer designs, accurate timing

of the density scans and a convenient means of data storage and

display were two of the most difficult to solve. These are

areas, however, where microprocessors excel. They operate on a

very accurate crystal time base, and are able to store large

amounts of data very quickly.

Once the 10-bit digital density word leaves the A/D con

verter, it is brought into the SDK-85 bus structure through two

8-bit I/O ports (see figure 3)' The system bus is the means by

which data is transported within the computer itself. This data

is then immediately stored in random access memory (RAM) for

later processing. As each scan produces a burst of eleven den

sity readings, this data is stored as eleven 10-bit word blocks.

From RAM the data is processed further (i.e. scaled in accordance

with certain calibration procedures) and becomes ready for out

put .

Data Output:

For computer data to be of any use, there must be some

convenient method to present this data to the user in the real

world. For the IR densitometer, the user has three methods of

16

A

aco

i

</>

3CO

5UI

0(A

-J z

gat

U

z

I

2

ui

IIs

>IU

tuQ

SSui

St

V

a eUI

al

Z z t.

= 5 bO

a. ctf

rH

a

zx

o

o

Mrrt

21E

</> Q -P

rs W

E

&0

s2 oo

35 a>

a s-

ZS D

<8bD

rH

S fa-,

nv>

tLAl UJ

S3

17

data output. The first output system is for the immediate

viewing of density data. The computer can be directed to

display any density scan on a 33-digit light emitting diode (LED)

display. The system will display all eleven density readings

from a single scan. The format for a single reading is X.YZ.

That is, each reading is accurate to three significant figures,

i.e., with a resolution of +/- .01 optical density units.

The second method of data output is through a 40-column

line printer. Any set of density readings on the LED display can

be reproduced on the line printer- This is to allow the user to

generate a permanent record of any particular density scan. For

a complete description of these two output modes, please consult

the In-Process IR Densitometer User's Manual .

A third method of data output has been partially provided.

Connectors have been installed to allow for the connection of

this computer to a higher level computer. With this type of

inter-connection, data could be transferred to the higher level

system for even more processing of density data. As an example,

computer graphics could be used to create D-Log E curves on a CRT

screen. Completion of this interface depends on what type of

higher level computer is selected, and therefore has been left as

a separate project.

The IR densitometer user's manual begins on page 63.

18

Data Acquisition System Analysis:

Information within the IR densitometer can be either in

analog form or digital form. An analog signal is a voltage that

can vary infinitely over a given range. A digital signal is a

voltage level that can vary only in discrete steps. This par

ticular digital system is binary; the voltage signal has only two

levels, low and high ("0"and "1"). When working with digital

systems, very strict and well known rules of logic apply. For

analog systems, however, events are not so well defined. It is

the intent of this section to provide a set of equations that

will describe the operation of the analog system within the IR

densitometer .

Figure 4 shows the physical relationship of the com

ponents that make up a single densitometer- Figure 5 gives a

schematic representation of the same densitometer, alongwith the

other components that make up the analog system. The figure pre

sents an ideal system configuration where all devices are con

sidered to be perfect and introduce no errors.

The IR emitting section consists of the IRED, lens tube,

and lens which is used to focus the output of the IRED onto the

detector surface. The power per unit area incident on this sur

face is the irradiance and is expressed as H watt/cm2. The

detector surface has an active area of A cm2and a responsivity

of R amp/watt. The peak output of the IRED and peak responsivity

of the detector are so well matched that no wavelength term need

be included in the calculations that follow.

With these terms now defined, the current generated by the

photo-diode is given by:

IT = (T)(H watt/cm2) (A cm2)(R amp/watt)

19

cc^-.

o

t-oOLH

luctI- ILU|

CC

LU

cr-

1^\W\

to

zz.

LU

LT\

CC

LU

CO

LU

Q

UJ

_l

O

oo

<

QLU

QO_l

Q-

X

CQ

cn

LU

LU

CC

CD

LO

OLA

LUQQ^UJ

20

A

a?

I vAAA

iS

O

ir

01

O LU< l-H

tD Q-

J<c

X

yCD Q-

15

ce

o

<LU Occ cn

LU <

2 <_>

14lz

T

>

CO

o <r

h

CD

LUh-

CO

&CD

3<

iS

LTi

LU

cur

ID

21

The output voltage of the operational amplifer is:

^T = Rf'-^T

where Rp is the feedback resistance in ohms.

Now the sample transmission T, can also be expressed as a

density:

T =10~D

Substituting:

VT =H-R-A-RF-10-D

The irradiance, responsivity, active area, and feedback

resistor all remain constants, and can be collected into the

term C.

VT =C-10-D

Neglecting any effects from the analog multiplexer, this V^ is

input to the logarithmic amplifier- The transfer equation for the

log amplifier is:

VD = -K=Log(Is/IR)

where 1$ is the signal current and IR is a reference current. To

place the expression in voltage terms:

Is = Vx/Rs and IR = VR/RR

Substituting:

VD =-K-Log(VT/VR RR/RS)

22

Vf is known and can be substituted:

VD =-K=Log(C-10-D/VR RR/RS)

VR is a precision reference, and therefore a constant.

RR and R$ are resistors; also constants and can be removed.

Let:

M = C-RR / VR-RS

And:

VD =-K-Log(M-10"D)

VD = K-D - K-Log(M)

Notice that -K-Log(M) is just another constant, therefore

combine it form N.

Lastly:

VD = K-D - N

This analysis shows that the output voltage of the log

amplifier is simply a scaled version of the film sample density,

plus some additive constant, N. For this particular system, K

was made to equal 2.0. The constant N presents no problem as it

can be nulled nearly to zero by an external offset adjust on the

Log amp. Any remaining offset error can then be removed by soft

ware calibration routines. Therefore:

VD = 2-D - N

23

The log amplifier is the last element in the analog

system. From here, V^ is converted to a 10-bit digital word and

then enters the digital system.

In reality, all the components of the analog system are

non-ideal and each has a certain amount of error associated with

it. The most critial types of errors are voltage offsets and

non-linearities. Within the entire system, only two devices have

these problems to any appreciable degree. They are the

operational amplifiers and the logarithmic amplifier. The

remaining devices introduce errors so small as to be negligible,

or they cannot be characterized. Figure 6 again shows the analog

system configuration, but this time the two major sources of

error are shown as offsets D-| and D2 .

An ideal op-amp would have an output voltage of zero volts

when the photo-diode connected to it was in complete darkness.

This, however, is not the case. Due to temperature drift, noise

pick-up and other effects, a trim pot has to be connected to each

amplifier to zero out these offsets. No offset adjustment is

perfect, and the remaining offset is called D-] .

The output of the op-amp now becomes:

V-p = Rp-Ix + D-|

The operation of the logarithmic amplifier is also non-

ideal and has two types of errors associated with it. The first

is an offset D2 which is present for similar reasons as in the

op-amp. The other type of error is something called Log

Conformity Error (LCE) . LCE is the error expressed in the

output's ability to perform an accurate logging function of the

input. Hence the LCE is always expressed Relative To Input

(RTI). For the Analog Devices log ratio amplifier:

24

:S 1r,3V//////////////////A

w >

CO

CC@

t I"

hi

cd

LU

CD

3<

<LU

Q

LU

CCIDCD

25

LCE = +/- M, RTI

These errors manifest themselves in the transfer equation

for the device as:

VD =-K-Log(1.01-(VT/VR RR/RS))+D2

Substituting in for V-p:

VD = -K-Log(1.01-((C-10"D

+ D-])/VR RR/RS) )+D2

=-K-Log(1.01-C-RR-10-D/VR-RS + 1.01-RR-D-|/VR-RS)+D2

=-K-Log(C-RR-10"D/VR-Rs

* (1-01 + 1.01-D-|/C-10-D) )+D2

Since:

M = C-RR/VR-RS

Then:

VD = -K-Log(M-10~D-( 1.01 + 1 .01 D1/C-10-D))+D2

= -K-Log(M-10~D)- K-Log(1.01 + 1 .01

-

D-] / C 1 0~D )+D2

From ideal case :

VD = -K-Log(M-10"D)

= K-D - N

26

Therefore, in the general case:

VD = K-D - K-Log(1.01 + 1.01-D<|/C-10-D) + D2 - N

Ideal Error

Term Term

The output voltage of the log amplifier can now be

expressed as the sum of an ideal term and an error term. Note

that the error term is not a constant but rather a function of

the film sample density. Note also that if the LCE were 1.00

(ideal) and the op-amp offset D-| were zero, the error term would

vanish and only D2 would remain.

This error analysis details which sources of error are

important and which ones are not. The offset errors D2 and N are

simple additive constants and can be easily subtracted out later

by a computer software routine. The LCE and the offset D-] ,

however , are not insignificant . They produce a logarithmic error

which is a function of density. It is extremly difficult to per

form logarithmic functions with assembly level software, there

fore, these errors cannot be removed by any calibration routine.

What must be done is to minimize the effects of these errors.

Log Conformity Error is fixed. It will always be present and

cannot be removed. On the other hand, D-| can be made to be very

close to zero. Any error introduced by the offset D-| becomes

apprecible only at higher densities . For this particular system,

D-| can be kept to about + 3 millivolts. This along with the LCE

translates into an error of about -.06 density units at a sample

density of 3.00. This is indeed acceptable, and the

error is almost non-existent at lower densities.

Figure 7 is a graphical representation of how detector

offset errors affect density measurements. Input density is to

be considered actual sample density, while output density is the

27

IDEAL

fc

zui

Qt-

INPUT DENSITY

Figure 7 : Output densityvs. inputdensity for differentlevels of amplifier drift.

28

density reported by the system with the above transfer equation.

The numbers used in that equation for the generation of figure 7

are based on actual constants used in the physical system. Only

positive offset errors are shown in the figure as negative off

sets have a completly different effect on the system. This is

because the physical log amplifier produces undefined output

voltages for negative inputs. What really tends to happen is the

amplifier output will saturate (go to maximum output voltage,

which is about 14.3 volts). If the analog to digital converter

were able to resolve this voltage ( 10.00 volts is it's maximum) ,

the computer would think a sample density of 7.0 were being read.

Therefore, to prevent such events from happening, the offset null

trim pots for the eleven detectors are purposely adjusted to pro

duce a positive offset of a few millivolts at all times. This

precludes the possibility that the detectors might drift and pro

duce a negative output. This method, of course, introduces some

slight error, but to have a density reading that is somewhat

lower that reality, is considered far better that a reading of

3.0 being reported as 7.0.

29

Experimental Verification:

The purpose of this section is to demonstrate two of the

most important operational capabilities of the IR densitometer-

They are:

1.) The ability of the device to relate wet, un-fixed IR

density to dry, fixed-out diffuse density in a linear

fashion. Also that for the same development time, wet,

un-fixed IR D-Log exposure curves are in good agreement

with dry, fixed-out diffuse D-Log exposure curves.

2.) Repeatibility. Most data has been replicated three

times to demonstrate the repeatability of the IR den

sitometer. This data has been tabulated for ease of

viewing (see tables 1,2, and 3).

Three series of experiments have been run to obtain suf

ficient data for conclusions to be drawn about the above two sta

tements. The two film types used were selected because of their

relatively simple emulsions. It was also desired to run the

experiments with a fairly active developer, and a much milder

developer, hence D-19 and D-76 were selected. Details on how

these experiments were run are listed below.

Series 1 :

Eastman Kodak Fine Grain Release Positive, type 5302,

was processed in D-19 at70*

F for 5 minutes. Sensitometery con

sisted of film samples being exposed in a Kodak model 101 sen-

sitometer. A Kodak #5 step tablet was used along with a 1.20

Inconel N.D. filter. The sensitometer provided 340 lux-seconds

at the wedge. Three runs were made with fresh developer and

rinse water. To prevent contamination of the Fluid Transport

System, no other chemistry was introduced into the system. Scans

30

were taken once per second for the first minute, then once every

10 seconds for the remaining 4 minutes. No scans were taken

during the one minute water rinse that followed development.

All processing was done under Kodak 1A safelight

conditions. After the water wash, film samples were tray-fixed

for five minutes then washed for twenty minutes and dried.

Results from the first run of this series are shown in

figure 8. Wet, un-fixed IR density is plotted as a function of

step # (actual Log exposure values can be found at the end of

this section) . Curves obtained after 30 seconds, 2 minutes and 5

minutes of processing are shown, with the 5 minute curve being

the last one obtained before the water wash.

The curves show just about what one would expect for

this type of developer/film combination. After about 2 minutes

of development, there is no further increase in gamma. At about

the same time, toe densities, as well as the over-all sample

density, begin to pick-up dramatically. For this sample as with

all the others, the IR densitometer would report an initial den

sity of approximately .18 a few seconds after developer contact.

This increase in density is due to the fact that the specular

optical density of AgBr microcrystals embedded in gelatin is

strongly dependent on the water content of the emulsion^. Also,

the optical density does not depend directly on the thickness of

the gelatin, but rather on its index of refraction. As water is

absorbed by the emulsion, the index of refraction will increase,

causing an increase in scattering and therefore, and overall

increase in density will be observed.

Figure 1 1 shows unfixed, wet IR density plotted against

fixed-out dry visual diffuse density. All dry density readings

are made on a Macbeth TD-504 digital densitometer- Some of the

data points are rather far apart because of the high contrast for

2.60*

2.40-

31

2.20-

2.00-

1.80-

1.60-

a 1.40-

at

o

sC 1.20 '

^ 1.00--

.80--

.60-

.40--

8

Figure 8 :

-+-

10

STEP # ( .3 Log H / step )

Density as a function of Log exposure forEastman Kodak Fine Grain ReteJPosifve, type 5302, developed in D 9

11

32

fc

2.60-

2.40-

2.20-

2.00-

1.80-

1.60-

g 1404

O

s= 1.20-

1.00-

5 min 0 sec

30 sec

+ + + +

4 5 6 7 8

STEP # ( .3 Log H / step )

10 11

Figure 9 : Density as a function of Log exposure forEastman Kodak Fine Grain Release

Positive, type 5302, developed in D-76.

2.60-

33

2.40-

2.20-

2.00'

1.80"

1.60-

fc55

| 140-

tt

OIU

g1.20-

z

| 1.00-

8

STEP # ( .3 Log H / step )

10 11

Figure 10 : Density as a function of Log exposure forEastman Kodak Commercial Film, type6127, developed in D-76.

34

this process, but the linearity between the two types of den

sities is clearly shown.

The last graph for this series, figure 14, shows both

wet and dry D-Log exposure curves for a single film sample after

5 minutes of development. Agreement between the two curves is

good with the largest error occurring in the base plus fog por

tion of the curves. Whenever wet IR density and dry diffuse den

sity are plotted together like this, the wet IR density will

always be somewhat higher in the toe region. This again is pro

bably due to the increase in scattering from water absorption

combined with the fact that the device is calibrated with a dry

film base sample (refer to the Software Calibration section con

tained in the operating manual for details). Another intresting

point is that the two curves cross one another close to a density

of .70. This is the density of the mid-point calibration sample

used at the start of the process. At and around densities of

70, the calibration routine used by the IR densitometer forces

differences nearly to zero.

Series 2:

Eastman Kodak Fine Grain Release Positive, type 5302,

was processed in D-76 at70*

F for 5 minutes. Sensitometery con

sisted of film samples being exposed in a Kodak model 101 sen-

sitometer. A Kodak #5 step tablet was used along with a 0.78

Inconel N.D. filter- The sensitometer provided 340 lux-seconds

at the wedge. Three runs were made with fresh developer and

rinse water- Scans were taken once per second for the first

minute, then once every 10 seconds for the remaining 4 minutes.

No scans were taken during the one minute rinse that followed

development.

All processing was done under Kodak 1A safelight

conditions. After the water wash, film samples were tray-fixed

35

for five minutes then washed for twenty minutes and dried.

Results from the first run of this second series are

shown in figure 9- Wet, un-fixed IR density is plotted as a

function of step # (actual Log exposure values can be found at

the end of this section). Curves after 30 seconds, 1 minute 30

seconds, and 5 minutes of processing are shown, with the 5

minute curve being the last one obtained before the water

wash.

The IR densitometer reported an initial density of

approximately .18 due to the usual emulsion swelling from deve

loper absorption. This is not considered to be significantly

different from what was observed in series 1 where D-19 was used.

These curves appear typical, but once again something unusual is

happening in the toe region. The curves show a decrease in base

plus fog density with increased development time. This decrease

in toe densities is probably due to the slight fixation of the

film sample by the developer- D-76 has a relatively high sulfite

content (100 g/1)^, and sulfite is a well-known silver-halide

solvent.

Figure 1 2 shows un-fixed, wet IR density plotted against

fixed-out dry diffuse density- These data were obtained after

five minutes of development, which is always the last scan taken.

More data points are present in this plot because the contrast

for this process was lower. There also seems to be a slight S-

shape to this plot, but a straight line fit still works well if

errors less than +/- .03 D are acceptable. Straight lines have

been fitted to the three graphs of this type. If the plot is

extended, it will intercept the x-axis at approximately .1 dry

diffuse density units. The reason for this probably lies with

the calibration routine used, and the fact that zero density is

derived from a dry film sample.

2.60

36

2.20

fc

5 1.80-

O

tt

g1.40'

1.00-

.80

.60'

.20-

The slope is .88

i i i i i i i i i i i i

.20 .40 .60 .80 1.00 1-40 1.80 2.20 2.60

DRY FIXED OUT DIFFUSE DENSITY

Figure 11 : Unfixed, wet IR density vs. fixed out, drydiffuse density for Fine Grain Release

Positive in D-19.

37

The slope is .93

i i i i i i i i i i i i

.20 .40 .60 .80 1.00 1-40 1.80 2.20 2.60

DRY FIXED OUT DIFFUSE DENSITY

Figure 12 : Unfixed, wet IR density vs. fixed out, drydiffuse density for Fine Grain Release

Positive in D-76.

2.60

38

2.20.

fc55

g 1.80 ^Q

tt

g1.40'

1.00-

.60

.20<

The slope is 1.04

i i i i i i i i i i'i i i

.20 .40 .60 .80 1.00 1-40 1.80 2.20 2.60

DRY FIXED OUT DIFFUSE DENSITY

Figure 13 : Unfixed, wet IR density vs. fixed out, drydiffuse density for Commercial Film, type

6127, in D-76.

39

The last graph for this series, figure 15, shows both

wet and dry D-Log exposure curves for the same film sample after

5 minutes of development. This time the curves cross around .80,

but the reason is still probably due to the calibration routine.

For the toe region of the curve, the comments made about figure

14 apply here also.

Series 3:

Eastman Kodak Commercial Film, type 6127, was processed

in D-76 at70*

F for five minutes. Sensitometry consisted of

film samples being exposed in a Kodak model 101 sensitometer . A

Kodak #5 step tablet was used along with a 1.20 Inconel N.D.

filter- The sensitometer provided 340 lux-seconds at the wedge.

Three runs were made with fresh developer and rinse. Scans were

programmed just as they were in the first two series. Darkroom

conditions and fixing procedures were the same as used in the

first two series.

Results from the first run of this third series are

shown in figure 10. Wet, un-fixed IR density is plotted as a

function of step number (actual Log exposure values for each step

number can be found at the end of this section). Curves after 50

seconds, 2 minutes, and 5 minutes of processing are shown, with

the 5 minute curve being the last one obtained before the water

wash.

The IR densitometer reported an initial density of

approximately .19 due to the usual absorption of developer. This

"wet emulsiondensity"

was noted to be just about the same for

all three series run. The amount of time after the start of pro

cessing it took to reach this density was about the same for all

three series also (5 to 9 seconds) -

The curves in figure 10 show very little increase or

40

decrease in base plus fog density with increased development

time. It might help to explain this by breaking the development

of the toe region into two competing processes. The first pro

cess is the reduction of silver-halide to silver metal. This, of

course, produces density, and may be brought about by the deve

lopment of latent image centers, or the random development of

silver halide crystals to produce fog. The second process is the

slight fixation of the film by the high sulfite developer. This

would cause a reduction in density as the effect of scattering

would decrease.

For the film/developer combinations considered here,

these two competing processes have various outcomes. The first

was Fine Grain Release Positive developed in D-19 Toe densities

increased with time because D-19 is an active developer and fog

production outweighed fixation. The second combination was Fine

Grain Release Positive in D-76. D-76 is a milder developer than

D-19 and fixation proceeded faster than fog and an overall

decrease in toe densities was observed. The last combination was

Commercial Film developed in D-76. Toe densities were noted to

remain relatively constant for this series. A probable reason is

Commercial Film is coarse grained compared to Fine Grain Release

Positive and has almost twice as much silver^. Perhaps this

extra amount of silver halide (coated in two coats), along with

the use of the milder D-76 produced a stalemate between the two

processes described above. That is, perhaps the rate of density

decrease due to fixation was equalled by the rate of increase of

density by fog production and therefore little or no net change

in toe density resulted.

Figure 1 3 shows un-fixed, wet IR density plotted against

fixed-out, dry diffuse density. Again a straight line can be

fit to the data, but the s-shape is more pronounced in this plot

than any of the others. It is felt that a linear model is still a

good choice to describe the relationship, but further study is

41

indicated. It is interesting to note that this same type of S-

o.

shaped relationship appeared in early studies by M.Piskacek0

in

1976.

The last graph of this series ,figure 1 6 , shows both wet

and dry D Log exposure curves for the same film sample after 5

minutes of development. The slopes of the two curves are roughly

parallel and therefore differ mostly by some additive constant.

This constant is probably due to the base plus fog density

remaining almost constant through out the process as was

explained earlier. This is only supposition, and further study

is indicated.

42

fc(A

2.60- -

2.40"

2.20'

2.00'

1.80-

1.60-

1.40-

1.20-

1.00--

Wet unfixed IR density

Dry fixed out diffuse density

8 10 11

STEP # ( .3 Log H/ step)

Figure 14 : Comparison of D-Log H curves for wet

unfixed, and dry fixed out Fine Grain

Release Positive in D-19.

2.60- -

43

2.40'

2.20-

2.00-

1.80-

1.60- -

fc1.40-

55Zm

1.20+

1.00-

Wet unfixed IR density

Dry fixed out diffuse density

STEP # ( .3 Log H / step )

Figure 15 : Comparison of D-Log H curves for wet

unfixed, and dry fixed out Fine Grain

Release Positive in D-76.

2.60-

44

fc

2.40-

2.20-

2.00- -

1.80-

1.60* -

1.40-

1.20-

1.00-

Wet unfixed IR density

Dry fixed out diffuse density

8 10 11

STEP # ( .3 Log H / step )

Figure 16 : Comparison of D-Log H curves for wet

unfixed, and dry fixed outCommercial film,type 6127, in D-76.

45

Repeatability Study:

From each of the three different film/developer com

binations, three sets, or replications, were obtained. Recall

from the scan programming used, 100 scans were made during each

process run. As there were 3 replications of each of the 3

series, this makes for a total of 900 scans being taken! Of the

100 scans taken for each process, 8 were selected as being repre-

senative, and are listed as raw data in the appendix (for a total

of 72 scans for all 3 series). To be able to make statements

about the repeatability of the device, the 8 scans recorded were

taken at the same time within each process. Of these 8 scans

taken, 3 from each process run are used in the following analy

sis. The three elasped times selected correspond to the ones used

for plotting the family of curves shown in figs. 8, 9, and

10.

Table 1 is data from series 1. The data are grouped as

to when during development they were acquired. The first column

on the left is the step number. As the step numbers increase, so

does the amount of exposure that particular step received, and

hence an increase in density is noted. The next three columns

are the replicated data sets for the development time under

study. The next D gives the average density of each step for all

three replicates, followed by the sample standard deviation, Sp,

for each step. The last column is simply Dmax-

Dmin for the

three readings taken at each step just to give some idea of what

the data spread is. Table 2 is for data taken during series 2

and table 3 is for data taken during series 3

Tables 4 and 5 show data taken from a fourth run not men

tioned earlier. This data was taken as a fourth replicate of

experimental series 1 and 2, but with one major difference; these

samples were processed without a fresh change of developer -

Also, the tubes leading to the development chamber were not given

46

a chance to drain, as had been the case between all other process

runs. The purpose of this is to demonstrate what effect on data

repeatability using developer warmed by an earlier process run

can have. It was noted that after a process run, the developer

temperature would be 2 or 3 degrees higher that at the start of

processing. Therefore, an increase in density due to an increase

in temperature can be expected. The data in these two tables

support this statement. Average density, D, and the sample stan

dard deviation, Sp, are included to show that the increase is a

real one and not simple variability within the process.

47

Repeatability study: Series 1

Table 1 : Repetition data for Fine Grain Release Positive

developed in D-19.

5 min 0 sec

Step # Rep J_ Rep 2 Rep 3 D sD Spread

1 32 .30 .33 32 .015 .03

2 33 .30 .33 32 .017 .03

3 .33 31 .33 .32 .012 .02

4 36 .34 .36 35 .012 .02

5 .40 -36 .40 39 .023 .04

6 .51 .51 .51 .51 0 0

7 .84 .80 .87 .84 .035 .07

8 1 .49 1.43 1.50 1.47 .038 .07

9 2.27 2.24 2.31 2.27 .035 .07

10 2.94 2.90 2.93 2.92 .020 .04

11 3-08 3-06 3-08 3.07 -012 .02

2 min 0 sec

1 .19 .18 .19 .19 .006 .01

2 .20 .17 .19 .19 .015 .03

3 .20 .19 .19 .19 .006 .01

4 .22 .21 .22 .22 .006 .01

5 .24 .22 23 .23 .010 .02

6 .29 31 -30 .30 .010 .02

7 .46 .45 .50 .47 .026 .04

8 .87 .86 .89 .87 .015 03

9 1.47 1.42 1.48 1.46 .032 .06

10 2.15 2.09 2.17 2.14 .042 .06

11 2.60 2.56 2.61 2.59 .026 .05

Series 1 (con't)

48

30 sec

Step # Rep I Re 2 Rep 3 D sD Spread

1.17 .17 .17 17 0 0

2.17 .16 .18 .16 .010 .02

3 .18 .18.17 .18 .006 .01

4 19 .19 .19 19 0 0

5 .20 .18.19 19 .010 .02

6 .20.23 .21 .21 .015 .03

7 .24.25 .28 .26 .021 .04

8 38.39 .41 .39 .015 03

9 .64 .59 .60 .61 .026 .06

10 91 .86 .89 .89 .025 .05

11 1 .17 1 .10 1.17 1.15 .040 .07

49

Repeatability study: Series 2

Table 2: Repetition data Fine Grain Release Positive

developed in D-76.

5 min 0 sec

Step # Rep J_ Rep 2 Rep 3 D sD Spread

1 .10 .08 .08 .09 .012 .02

2 .10 .10 .08 .09 .012 .02

3 .10 .10 .09 .10 .006 .01

4 .16 .16 .15 .16 .006 .01

5 -34 .33 33 33 .0 06 .01

6 .65 .64 .65 .65 .006 .01

7 1 .05 1.07 1.07 1.06 .012 .02

8 1.48 1.50 1.50 1.49 .012 .02

9 1.97 1-99 1.98 1.98 .010 .02

10 2.42 2.47 2.46 2.45 .026 .03

11 2.72 2.74 2.80 2.75 .042 .08

1 min 30 sec

1 .16 .15 .14 .15 .010 .02

2 .17 .17 -13 -16 .023 -04

3 .15 .16 .13 -15 .012 .03

4 .18 .20 .16 .18 .020 .04

5 .25 .23 .24 .24 .010 .02

6 .39-38 .40 .39 -010 .02

7 .59 .59 -60 .59 .006 .01

8 .81 .83 .82 .82 .010 .02

9 1.10 1.12 1.10 1.11 .012 .02

10 1-37 1.37 1-37 1.37 0 0

11 1.54 1.57 1.56 1.56 .015 .03

Series 2 (con't)

50

30 sec

Step # Rep J_ Rep 2 Rep 3 D sD Spread

1.18

.17 17 .17 .006 .01

2.19 .20 .16 .18 .020 .04

3 .16 19 .16 .17 .017 .03

4 .18.20

.17 .18 .015 .03

5 .17 .17 .16.17 .006 .01

6 .21.19 .22 .21 .016 03

7 .25 .23 .25 .24 .012 .02

8 .28 32.29 .30 .021 .04

9 37 -39 .38 .38 .010 .02

10.47 .44 .47 .46 .017 .03

1 1 50 .54 .51 .52 .021 .04

51

Repeatability study: Series 3

Table 3: Repetition data for Commercial Film developed in D-76 .

5 min 0 sec

Step # Rep 1 Rep 2 Rep 3 D sD Spread

1 .21 .20 .21 .21 .006 .01

2 .26 .26 .26 .26 0 0

3 .41 .41 .41 .41 0 0

4 .69 .68 .69 .69 .006 .01

5 .99 98 .99 -99 .006 .01

6 1 .28 1 .27 1 .29 1.28 .010 .02

7 1 .58 1.55 1.58 1.57 .018 03

8 1.88 1 .87 1.89 1.88 .010 .02

9 2.31 2.30 2.33 2.31 .015 .03

10 3-32 3-75 3-49 - - -

11 3-76 3.76 3.76 - - -

2 min 0 sec

1 .19 .18 .19 19 .006 .01

2 .21 .19 .21 .20 .012 .02

3 .26 .26 .26 .26 0 0

4 .39 37 -38 -38 .010 .02

5 .53 .52 .54 .53 .006 .02

6 .71 70 .73 .71 .015 03

7 .90 .89 93 .91 .020 .04

8 1.13 1.13 1.16 1.14 .017 .03

9 1.38 1.38 1 .42 1.39 .023 .04

10 1.68 1.69 1.73 1.70 .026 .05

11 1 .96 1.97 2.03 1-99 .038 07

Series 3 (con't)

52

50 sec

Step # Re 1 Rep 2 Rep 3 D Sd Spread

1 19 .18.19 .19 .006 .01

2.19 .18

.19 .19 .006 .01

3 19 .19 19 .19 0 0

4 .22 .20 .21 .21 .010 .02

5 .23 .22 .24 23 .010 .02

6 .28 .26.29 .28 .015 .03

7 33 .33 35 34 .012 .02

8 .41 .41 .44 .42 .017 .03

9 .51 .52 .55 53 .021 .04

10 .64 .67 .69 67 .025 .05

1 1 .75 77 .81 78 -031 .06

53

Repeatability study: Series 1

Table 4 : Process data for Fine Grain Release Positive

developed in D-19 demonstrating effect of

developer heating.

5 min 0 sec

Step # 5 sD Spread Run* 4 p_i-D

1 -32 .015 03 .36 .04

2 .32 .017 .03 36 .04

3 .32 .012 .02 38 .06

4 .35 .012 .02 .38 .03

5 .39 .023 .04 .43.04

6 .51 0 0 .56 .05

7 .84 .035 .07 .94 .10

8 1 .47 .038 .07 1 .61 .14

9 2.27 .035 .07 2.40 .13

10 2.92 .020 .04 3.07 .15

11 3-07 .012 .02 3. 12 .05

2 min 0 sec

1 .19 .006 .01 .22 .03

2 .19 .015 .03 .20 .01

3 .19 .006 .01 .22 .03

4 .22 .006 .01 .23 .01

5 .23 .010 .02 .23 0

6 .30 .010 .02 32 .02

7 .47 .026 .04 .54 .07

8 .87 .015 .03 -96 .09

9 1.46 .032 .06 1.59 13

10 2.14 .042 .06 2.29 .16

11 2.59 .026 .05 2.75 .16

54

Repeatability study: Series 2

Table 5: Process data for Fine Grain Release Positive

developed in D-76 demonstrating the effect of

developer heating.

5 min 0 sec

Step # D sD Spread Run* 4 p_i-D

1 .09 .012 .02 .09 0

2 .09 .012 .02 .10 .01

3 .10 .006 .01 .10 0

4 .16 .006 .01 17 .01

5 -33 .006 .01 36 .03

6 .65 .006 .01 .68 .03

7 1.06 .012 .02 1.11 .05

8 1 .49 .012 .02 1 .54 .06

9 1 .98 .010 .02 2.02 .04

10 2.45 .026 .03 2.50 .05

11 2.75 .042 .08 2.85 .10

1 min 30 sec

1 .15 .010 .02 .15 0

2 .16 .023 .04 .16 0

3 .15 .012 .03 .14 -.01

4 .18 .020 .04 .19 .01

5 .24 .010 .02 .26 .02

6 -39 .010 .02 .42 .03

7 .59 .006 .01 .64 .05

8 .82 .010 .02 .88 .06

9 1.11 .012 .02 1.16 .05

10 1.37 0 0 1.43 .06

11 1 .56 .015 .03 1.64 .08

55

Uniformity of Development:

The Fluid Transport System (FTS), which includes the

chamber, pump, tubing and valves, presented some of the most

complex design problems encountered in the project. The most

important question was; would the flow of developer through the

development chamber give uniform development, or would there be

some type of directional effect. The problem is really one of

hydraulics, and therefore, design procedures are not always as

straightforward as one would like. The main design criterion

was to produce a laminar flow of fluid through the chamber.

Laminar flow is the smooth, uniform movement of fluid that is

free of turbulence and bubbles.

To determine what level of development uniformity could

be obtained once the FTS was actually constructed, the following

experiment was performed.

1.) Samples of Eastman Kodak Pan-X Recording Film, Type

SO-164, were given two levels of uniform exposure. The

first set were exposed to room lighting for five minu

tes to give a developed density of 2.4. The second set

received their exposure from an open-gated Durst

enlarger- The level of exposure was enough to produce a

developed density of approximately 1.5.

2.) All samples were developed in D-76 at68*

F for 5

minutes . Development was followed by a one minute rinse ,

then by a two minute fix. Samples were then washed and

dried in the normal manner.

3.) The pump used by this system has 7 different speed

settings (see Figure 20 for flowrate characteristics) .

This is about the only variable over which the user of

the IR densitometer has control when it comes to flow

56

studies. Therefore, the uniformly exposed samples from

above were each developed at a different flowrate.

The results of this experiment are shown in figures 17

and 18. Figure 17 shows dry, fixed-out diffuse density as a

function of position for the sample that received the room light

exposure. The position marked"IN" is where the developer first

enters the chamber and strikes the film sample. The first den

sity reading is taken there. The next four readings are taken at

equally spaced intervals along the detector region, i.e. the

region of the sample where the eleven IR densitometers are

located. The last reading called"OUT" is from the area just

below the chamber exit port. Figure 18 showns the same type of

graph, but for the samples exposed for a developed density of

approximately 1.5.

The data presented here is not exhaustive, but general

statements about uniformity of development can be made. The data

suggest that as the flowrate of developer is increased through

the chamber, directional effects begin to decrease. However,

this same increase in developer flowrate also causes an increase

in the overall density of the film sample. This all sounds

reasonable as one would expect an increase in developer flow to

bring in fresh developer faster and remove development by

products that could retard development. Another general effect

is that densities always are somewhat higher where the developer

enters and somewhat lower where it exits. This is really not of

much concern as the graphs tell us that if the pump flowrate is

made high enough, very uniform development down the length of the

film where the eleven densitometers read can be obtained. Also,

figure 18 seems to show that even better uniformity can be

achieved as the overall exposure level is reduced. This again

sounds reasonable because as the exposure level is decreased, one

would expect the amount of developer by-products to decrease and

therefore directional effects should lessen.

57

Lastly, if uniformity is critical, users may wish to perform

more exacting uniformity experiments for their particular

film/developer combination. They could then possibly generate a

methodology for correcting their raw data for directional

effects.

2.60

58

2.40-

2.20

Pump setting 6

Pump setting 4

2.00-

fc

S 1.80

1.60

1.40

1.20-

KDetector region

*l

T

1IN 2 3

POSITION

4 OUT

Figure 17 : Density as a function of position and flow

rate for a sample of Pan-X Recording Film,SO-164, exposed to room lights for 5

minutes and developed in D-76.

59

2.60

2.40

2.20

2.00-

fc

S 1.80

1.60

\*Detector region

HPump setting 4

1.40-

Pump setting 3

1.20-

IN 2 3

POSITION

4 OUT

Figure 18 : Density as a function of position and flow

rate for a uniformly exposed sample of

Pan-X Recording Film developed in D-76.

60

Experimental Conclusions and Recommendations:

As should be obvious by now, the amount of additional

research that could be performed on the IR densitometer is tre

mendous. However, it is felt that enough data has been collected

to allow some generalized statements about it's performance to be

made.

First, the assumption that an approximately linear rela

tionship exists between wet, un-fixed IR density and dry, fixed-

out diffuse density seems reasonable. More study is indicated in

this area, with particular focus on what is happening optically

to a wet, developing emulsion. Perhaps experiments should be

conducted with software calibrations being performed when film

samples are wet instead of dry, as is now currently recommended.

Also, all experiments were performed with the anti-halation

backing untouched. Although the backside of the film is never

wetted during processing, perhaps the infrared radiation has some

effect on the backing that could degrade density readings later

on in the process.

Second, the run-to-run repeatability of the device is

considered to be very good. The data from tables 1,2, and 3

seem to indicate that the best repeatability is obtained at lower

densities. As an example, the device is able to hold an average

repeatability of +/- .02 out to a density of .50 for all three

series, or a variability of approximately 5%> This value becomes

only+/-

.03 out to a density of 2.5. Also observed, was that

the more active the developer, the poorer the run-to-run repeata

bility. Other important results from the experiments are the

effect on repeatability due to developer temperature variations .

It was noted that a five minute development run would raise the

temperature of the developer by 2 or 3 degrees. This is due to

the heat generated by the pump and valves, and general frictional

effects. This rise in temperature is enough to cause a

61

significant increase in density if another process run is made

using the same tank of developer. Also, if the tubes leading to

the development chamber are not drained between runs, repeatable

results are difficult to obtain due to solution carry overs. The

full extent of what solution carry over will do, however, is not

known and further study is indicated.

Lastly, uniformity of development across the region

where the IR densitometers are located seems to be very good and

not a source of great concern. There are major directional

effects near the edges of the film sample where the O-ring seal

is located, but these areas are not seen by the IR densitometers.

As was stated earlier, if extreme precision is required, specific

studies can be made to better characterize what little non-

uniformity there is, and correction procedures can be imple

mented. Suggested improvements might be a temperature control

for the FTS and a pump of higher and more consistent flowrate.

62

Table 6: Log exposure values used for all experiments.

Sensitometer : Kodak Model 101.

Wedge : Kodak Sensitometric Step Tablet #5, S/N R903-12-2.

Open-gate exposure : 340 lux-seconds.

Neutral density filter type : Inconel

Step Step Density Log E w/.78 ND Log E w/1 .20 ND

-1 .74

-1 .44

-1 .13

-.81

-.53

-.21

.09

.39

.69

.99

1.29

1 3-07 -1 .32

2 2.77 -1 .02

3 2.46 -.71

4 2.16 -.41

5 1.86 -.1 1

6 1.54 .21

7 1.24 .51

8 94 .81

9 .64 1.11

10 .34 1.41

11 .04 1 .71

63

In-process IR Densitometer Operating Instructions:

For best results, the user of this device should have a

complete understanding of its operating principles. Not only

does this involve just knowing how to make the device run, but

also a thorough knowledge of how the densitometer works.

This operations manual has been broken up into six main

function groups. They are:

A.) Emitter calibration.

B.) Software calibration.

C.) Film sample preparation.

D. ) Data entry.

E.) Fluid Transport System (FTS).

F.) Prompt descriptions, and error messages.

G.) Printer Maintenance.

The user should read and understand these instructions and

descriptions before attempting to use the densitometer- In this

way, the user can be assured the best possible results, and wear

and tear on the device can be minimized.

64

Equipment List:

Below are listed the various components needed to operate

the In-process IR Densitometer. Some items are kept with the

densitometer and will be found on the lower shelf of the rolling

service cart. Other items are of general purpose and will have

to be located before operating the device.

Items to be kept with the densitometer:

1. Special two-hole registration punch.

2. Modified head for the Kodak Model 101 sensitometer.

3. Calibration samples.

4. Chamber locking pin.

User supplied items:

1. Voltmeter. Range of 20 volts with accuracy of +/- .02 volt.

2. BNC-to-banana-jack adaptor, or some type of adaptor to fit a

female BNC connector to voltmeter being used.

3. Test lead. A clip lead of some sort is neccessay to effect a

ground connection between the voltmeter and the chamber

support frame.

4. Small screwdriver-

5. Darkroom. The densitometer must be loaded and used in total

darkness.

6. Source of fresh water to clean the device when processing is

completed.

65

Procedural Descriptions:

A. ) Emitter Calibration

This densitometer system uses gallium arsenide infrared

emitting diodes (IREDs) as its primary source of radiation for the

measurment of optical transmission, hereafter referred to as

"density". As these sources are diodes, their output intensity

is a function of the forward current passing through the device,

rather than the voltage across the diode.

Two other important considerations must be pointed out

before detailing the calibration procedure. The first is the

type of detector used with the above emitters. Due to their

mode of operation, they can only detect a little more than a

three decade change in light with an acceptable signal to noise

ratio. The second consideration is the operating principle of

the entire IR densitometer itself: the densitometer is to

measure density of a piece of film as it develops. This implies

that the film sample may still have an anti -halation backing on

it while readings are being made. So not only will the density

of the developing silver be measured, the infrared density of the

wet anti-halation backing will also be measured.

The point to all of this is that the user would like to

minimize the effect of the anti-halation backing on the density

measurments. At the same time, the user would also like to maxi

mize the dynamic range of the densitometer to allow for density

readings of at least 3.00 and still maintain some level of

accuracy. Therefore, it is necessary to adjust the output of the

IR emitters to compensate for the various types of anti-halation

backings likely to be processed by this device.

This is done by placing a sample of the particular film

under study, dry and unexposed, into the optical path of each of

66

the eleven emitter/detector pairs. The current passing through

each IR diode is then adjusted until the output voltage of the

companion detector just begins to saturate. Saturation means

the maximum output voltage the device is capable of producing

while remaining linear. The exact procedure is outlined below,

but in this way each emitter/detector pair is optimized for maxi

mum dynamic range in density.

It should be noted that this method of emitter calibration

defines what will be considered zero density. That is, a dry,

unexposed piece of raw film stock will have, by definition, zero

density. All density measurments are therefore relative to dry

unexposed film. However, note that once a film sample becomes

wet, it's IR density will increase due to emulsion swelling.

Procedure:

a). With the main power switch in the off position, discon

nect the Analog Transmission Signal cable from the back

of the control cabinet. This is the black coaxial cable

with the large female BNC connector on the end. The

control cabinet is throughly labeled and will direct

the user to this connector-

b. ) This part of the calibration can be performed with just

about any type of voltmeter- At the time of this

writing, however, aHewlett-Packard digital voltmeter,

(H/P DVM) was available, and thus the procedure will be

detailed for this particular type of voltmeter.

Insert the banana-plug-to-BNC adaptor into the

H/P DVM. The adaptor should be orientated such that the

banana plug marked"COM" fits into the red ground

socket on the front panel of the voltmeter- The other

plug fits into the red socket marked "VOLTS". DO NOT

INSERT BACKWARDS! ! To do so will ground the output of

67

the analog multiplexer and destroy it.

c). Connect the Analog Transmission Signal cable to the

other side of the BNC-to-banana adaptor. Insert a

banana jack test lead into the side of the adaptor

marked "COM". Attach the other end to the metal chamber

support structure. In this way, an electrial ground

path is established between the voltmeter and

densitometer.

d). Select the D.C. volts button on the front panel of the

DVM. Select the 20 volt range button. Turn the DVM on.

Now turn on the main power to the IR densitometer and

wait 10 minutes for it to warm up. The DVM should now

be reading +15 volts +/- .1. This is a test voltage

upon initial power-up. The output of these detectors is

directly proportional to the amount of incident flux

striking them, therefore, the output is considered a

transmission signal.

e). In complete darkness, or under safelight conditions if

the film will allow, punch a set of registration holes

in a sample of the film type under study. Cut it long

enough to cover all eleven detectors, about 8 inches.

This is then mounted in the chamber, placing the strip

such that the registration holes fit over the two pins

at the rear of the chamber. It is most important that

the film be mounted emulsion side up, toward the deve

loper channel. Lastly, close the chamber and seal it

with the locking pin. The device is now ready to be

calibrated.

f). When the main power was first applied, the system came

up and prompted: "EMITTER CAL?". If the user is going

to process a film type different from that for which the

device was last calibrated, an emitter calibration will

be necessary. To select the calibrate mode, enter any

number from 1-9 , followed by an"E"

depression. The

system will respond with the prompt: "EMITTER 1". This

68

means that the emitter/detector pair at the top of the

chamber (#1) has been activated.

g) . The DVM should now be reading some voltage. Adjust the

grey trimpot marked #1 located behind the chamber with a

small screwdriver until the meter reads approximately

13-0 volts +/-.2 volt. Turn the pot clockwise to

increase the voltage. Turn it counter clockwise to

decrease the voltage.

h). Press the "E"

key and the display will change to:

"EMITTER 2". Repeat as above for all eleven emitters.

When complete, the system will again prompt: "EMITTER

CAL?". To leave this calibration mode, enter zero,

followed by "E". This will jump the user to the next

prompt.

i) . When all eleven emitters have been calibrated, turn the

machine off and reconnect theAnalogTransmissionSignal

cable to the control cabinet. Remove the film base

sample from the chamber and continue with the software

calibration routines.

Note that this emitter calibration will be valid as long

as the same type of film is to be used. Turning off the power

will not change the settings of the trim pots, therefore, this

calibration does not have to be performed each time the device is

powered up. The only time the emitters have to be calibrated is

when processing a film type different from that for which the

device was last calibrated.

69

B. ) Software Calibration:

The basic premise behind the software calibration is that

the relationship between wet unfixed IR density and dry, fixed-

out diffuse density is a linear one. This important fact was

amply demonstrated by M. Piskacek in 1977.

The operation of the software calibration is very straight

forward. Certain conditions are established within the develop

ment chamber, (detailed below) and a single complete density scan

is made. The eleven readings that result are considered to be

zero density, and stored in memory as MDO (measured zero

density). New conditions are again established within the

chamber, this time with a film sample of uniform density large

enough to cover all eleven emitter/detector pairs. The density

of this sample should be near the mid-point of the maximun den

sity the user expects from the particular film/developer com

bination under study- For example, if a maximum density of 2.00

is expected, the calibration standard would have a density of

1 .00. The density of this sample is known, and entered into the

computer as ADMAX (actual maximum density). ADMAX is only a com

puter variable name, and really refers to mid-range densities.

Another complete scan is made and a new set of eleven readings

result. These are stored in memory as MDMAX (measured maximum

density). With this information now in memory, the computer can

now perform eleven seperate linear regressions and generate ele

ven unique slopes and intercepts for each of the eleven

emitter/detector pairs. In this way, as raw data is generated,

it is operated on by a first order calibration routine. The

final densities viewed later by the user, will have been

corrected from wet, IR density to equivalent dry, diffuse den

sity.

Figure 19 shows the relationship between the different

variables involved. Calculations performed within the computer

70

are in a 32-bit floating point format. Please consult the Intel

Floating Point Arithmetic Library User's Manual for details.

MDMAX

Measured

Density

MDO

71

Actual density implies

white light density.

Measured density

implies wet IR

density

0 ADMAX

Diffuse Density

Figure 19: Software Calibration Plot,

MDMAX = Measured maximum density.

ADMAX = Actual maximum density.

MDO = Measured zero density.

Rcall that eleven slope and intercept pairs must be

generated for all eleven emitter/detector pairs.

From the plot:

MD = (AD) x (SLOPE) + INTERCEPT

and the intercept is simply:

INTERCEPT = MDO

From another point on the plot:

MDMAX = (ADMAX) x (SLOPE) + MDO

72

Solving for the slope:

SLOPE = (MDMAX - MDO) / ADMAX

Lastly, corrected densities can be calculated from:

AD = (MD - MDO) x ( ADMAX / (MDMAX - MDO) )

Software Calibration Procedure:

a). This calibration is to be performed after the emitter

calibration. If the same type of film base is to be run

for this processing session, and no emitter calibration

was performed , turn the machine on and allow a 1 0 minute

warm-up before proceeding.

b) Open the chamber door- Make sure the chamber is abso-

lutly clean and dry. Any moisture in the chamber will

have an adverse effect on the calibration. Insert the

calibration strip into the developer channel. The

calibration sample is any material of uniform,

known, IR density, close to the mid-point of the

expected density range being investigated.

Ideally, it should be cut to fit inside the deve

lopment cavity, up against the IR emitters. It is

important that it be placed in the channel so it

will not affect the closing of the chamber door.

Apply slight pressure to make sure that the strip

is seated firmly in the channel.

c). In total darkness, or under safelight conditions if the

film will allow, unroll about eight inches of the film

under study. Punch two registration holes into one end

of the film strip using the special punch provided.

Mount the film into the development chamber by aligning

the two pins at the rear of the chamber into the holes

73

just punched. Be sure to mount the film emulsion side

up, toward the developer channel. Hold the other end of

film strip flat against the chamber bottom, close the

chamber and seal it with the locking pin.

d.) If the machine has just been turned on, the prompt

"EMITTER CAL?"will be on the display. If performing an

emitter calibration, complete the calibration and

depress the "E"

key until this same prompt appears. To

get to the software calibration mode, enter zero and

depress "E". The system should respond with: "ENTER

D-MAX". The user should now enter the value of the

calibration sample to be used. Remember that the deci

mal point is implied. That is, a density of 1.20 is

entered as 120. After entering D-max, depress"E"

. The

next prompt will be: "READ D-MAX". The next depression

of the "E"

key will read the density of the calibration

sample plus the density of the dry film base. The value

of this reading is assigned the calibration values just

entered by the user.

e). The system will now be prompting: "READ ZERO". Open the

chamber and carefully remove the calibration sample.

Try not to disturb the film sample while doing this.

Reseal the chamber door and press the"E"

key. The

system has now just read the density of the film sample

and assigned it the value of zero density.

f). Open the chamber and remove the film base sample.

The prompt: "ENTER MONTH"should now be on the display.

At this point, the device is 100% calibrated and ready

to go.

74

C. ) Film Sample Preparation:

This device was originally designed to measured the den

sity of a film sample that had been exposed to a standard 21-step

sensitometric tablet. Alignment proved difficult, however, so a

Kodak #5 step tablet is to be used for making all sensi expo

sures. This tablet has a step increment of about .30 density

units, and has been mounted in a standard Kodak 101 sensitometer

head. Note that any step tablet can be used, just as long as the

step spacing is exactly 10.00 mm, otherwise poor registration of

the step exposure to the detectors will give poor results.

Before making any exposures, make sure that this sen

sitometer head has been obtained! The procedure for making

sensitometric exposures is as follow:

a). In complete darkness, unroll about eight inches of the

film under study. Use a safelight if the film will

allow. Cut the film as close as possible to a right

angle with the edge of the film. Punch two registration

holes into the film with the punch provided.

b). Align the holes in the film to the pins mounted on the

end of the sensitometer head. Mount the film on the

head with the emulsion facing the light source. Make

the exposure. As with all sensitometer work, the best

filter combination will have to be determined by calcu

lation or trial.

c). Mount the exposed sample in the development chamber.

The emulsion side always faces up (toward the emitters) .

Close the chamber and seal it with the locking pin. The

film sample is now ready for processing. Remember that

the room lights have to remain off while the film is

being loaded and processed.

d.) The correct response to the "ENTER MONTH"prompt is to

enter the two digit month code followed by an"E"

75

depression. This is repeated for the "ENTER DAY"and

"ENTER YEAR"prompts.

e.) The prompt: "MANUAL MODE?"should now be on the display.

To select manual mode, enter any number from one to ten

followed by an"E" depression. The printer will respond

with the heading: "*** MANUAL MODE SELECTED ***". To

select automatic, enter zero then a"E" depression. A

more detailed description of manual mode and automatic

is contained in Section E: Fluid Transport System.

76

D. ) Data Entry:

Other than calibration, the user must also program the IR

densitometer with certain process information. The device must

be told for how long it is to process film samples and when to

take density scans. This is done in the following manner:

a) - During the programming stage, the user will receive the

prompt: "PROCESS 1=?". The device is asking the user

how long to run the first process. There are three

tanks and therefore the machine is capable of running

three processes. This prompt is answered by entering

any number in the range of 0 to 127 minutes. The

smallest increment of time is one minute. Invalid

entries are flagged as errors (see error message table) .

b) . As this system has the ability to generate an incredible

amount of data, a very selective methodology for the

programming of scan acquistion was needed. This was

accomplished by breaking each process into a number of

smaller intervals. Then for each interval, a rate at

which scan data will be acquired is defined. This rate

is expressed as the number of scans to be taken per

minute, with the range being from 1 scan/minute to 60

scans/minute. It is important to note that the system

defines scan rates on a minute by minute basis. This

means that for an entered scan rate of 32 scans/minute,

the system will round this down to 30 scans/minute and

take a scan every 60 / 30 = 2 seconds. This was done

because the shortest time for which a scan rate can be

defined is one minute.

c). After entering the process length, the system will

prompt for the interval length. If an interval length

of zero is entered, the device will assume that the user

wishes to make no scans during this process and therefore

jumps the user to the next process length entry. If

77

scans are to be made, the user should enter an interval

length over which data is desired. At all times it

should be remembered that the system can store only 187

scans and great care should be exercised not to exceed

this value. Also, the entered interval cannot be

greater than the process length. Once the interval

length has been entered, a scan rate must be entered.

The number of scans generated during any interval is

simply the interval length times the scan rate. If

invalid interval or rate information is entered, error

messages will be issued.

d). Interval/rate data can be entered until:

1.) The number of generated scans equals 187.

2.) Ten interval/rate pairs have been entered.

3.) The sum of the interval lengths equals the pro

cess length.

4.) An interval length of zero minutes is entered.

e). This procedure is repeated for each of the three pro

cesses. If manual mode has been selected, the user is

allowed to program only one process as the FTS is under

total user control.

Every effort has been made to design the most efficient

user interactive operating sysem as possible. There are,

however, some ways a user can get into trouble. The most common

mistake to be made is to use up all scans before the process is

finished. This is done by entering an interval/rate combination

that generates many scans. As an example, an interval length of

3 minutes and a rate of 60 scans per minute will produce 180

scans. This does not leave many scans for anything else.

Remember that there are a total of 1 87 scans available and not

187 scans for each process. Once interval/rate information has

been programmed, there is no way to clear it and start all over

again. Either the device must be turned off and re-started or

the programmed data has to be run through. The point is, be

78

careful when programming scan data!

At the completion of processing, the system will return

control to the user with the prompt: "PROCESS # =?"

. Please refer

to the prompt descriptions contained in Section F for directions.

79

E.) Fluid Transport System (FTS):

The Fluid Transport System, or FTS for short, consists of

any component having to do with the transportation of chemistry

to and from the development chamber- This system has two modes

of operation, automatic and manual. There are certain aspects of

this system that require earful attention, and will be repeated

through-out this section. The first and formost is; never run

the device with the processing tanks empty! To do so will cause

excessive wear of the pump gears and shorten pump life.

Considerations of the two modes of operations are listed

below.

Automatic:

During the programming of the device, the user will

receive the prompt: "MANUAL MODE?". To by-pass manual mode and

select automatic, the user must enter a zero followed by an"E"

depression. Once in automatic mode, the computer will handle the

complete operation of the inlet and outlet valves, and the pump.

What is not under computer control, however, is the speed of the

pump and the detection of fluids within the tanks. These two

areas are always the user's responsibility.

To set the pump speed, locate the small knob mounted top

dead center over the pump housing. The pump itself is located

just below the chamber and right above the chemistry tanks. Refer

to figure 20 for flowrate details. Position "0" is off. Position

"8" is maximum speed. Best results are obtained at position "7",

but the speed selected is up to the user. Tanks should be filled

to just below the mounting screws, (about 2 liters) with care

being taken to avoid spills onto the control valves. When

programming for process lengths while in the automatic mode,

the user can run each tank for 127 minutes each. Any combination

of tanks can be run, but no tank can be run more than once, and

80

o<_>

LU

CO

\cn

cc

<CC

o_J

3 4 5 6 7

PUMP SETTING

Figure 20: Flowrate as a Function of Pump Setting.

8

81

the order of usage is always tank 1, tank 2, tank 3. When the

system begins to process, it has no way of knowing if the door

to the development chamber is open or not and will always assume

that it is closed. There is, however, an interlock switch on the

chamber to interrupt the A.C. power to the pump if the door is

left open, but the computer does not know this and will always

try to start the pump. Even if the door is open, the inlet and

outlet valves will open and the programmed timing sequence will

begin. To see what exactly is turned on, refer to the FTS relay

control box mounted under the cart and to the right. There are

three pairs of LEDs and a single red LED at the bottom. The two

leftmost red LED pairs are the contol indicators for tank 1

inlet and outlet valves. The center two pairs are for tank 2 and

the two on the right are for tank 3. The red LED by itself on

the bottom is for the pump. Note that the layout of these LEDs

is duplicated on the front panel of the control cabinet. This

will be detailed below.

Manual:

To select manual mode, answer the "MANUAL MODE?"prompt by

entering any number from 1 to 9 and depress the"E" key- The

printer will print** MANUAL MODE SELECTED ** and the manual FTS

control buttons on the front panel of the control cabinet become

active. When in manual mode, it is the user's responsibilty to

control the switching of tanks and the operation of the pump.

This is to allow for the user to switch between any tank as often

as desired. Tanks can be mixed, drained, new chemistry can be

added, etc. The main purpose is to allow the user complete ver

satility in the processing of film samples.

Another reason for this manual control is for the draining

and cleaning of tanks when finished with the device. To drain a

tank, the procedure is as follows:

82

a.) Locate the manual drain valve. It is the extra

length of tubing that extends out from the top

row of valves. Open the valve and place the free end

of the tubing into a suitable container. See figure

21 for a schematic diagram of this system.

b.) Depress one of the tank outlet buttons on the front

panel. The valve should open with a loud snap. No

more than one tank out button should be on at a time.

If the manual drain valve is open, do not open any of

the tank inlet valves, otherwise the tank will take

forever to drain. Now that the bottom of a tank is

open, depress the PUMP ON switch. Remember that the

pump will only go on if the chamber door is sealed.

Also, always keep a piece of film in the chamber when

draining tanks, as this makes a better seal in the

chamber and it is less likely to leak.

c.) The tank should now be draining through the drain

valve. Listen carfully for a sudden increase in pump

speed. This is the best indication of when the tank

is empty. Quickly turn off the pump, then the tank

out valve. Repeat for any other tanks that need

draining.

Important Note: NEVER NEVER! ! try to operate the pump without

having at least one outlet valve open and one inlet valve open.

The drain valve can take the place of a inlet valve, however.

The point is that the pump must always have a souce from which to

draw fluid and someplace to put the fluid. The pump can be

damaged if made to draw from sealed tanks or empty tanks. Also,

hoses may burst if the pump is not given an outlet destination.

Therefore, ALWAYS make sure that the proper valves are open

before turning on the pump. It is very easy to make this mistake

so, BE CAREFUL! ! !

83

rH

c(0

a

cu

0

P

QJ

Ph

id C (IJ

3 -H >C id H

m n m

g Q >

^ro

P (1)

OJ >rH rH

c id

H >

$

CM

QJ

>

P

Q)

C id

h >

-<&

-P 0)

QJ >rH rH

G id

H >

ro

CidEh

id

Cid

Eh

ro

-P

0) QJ

H >4J rH

3 (d

o >

^8>-

P

QJ QJ

H >4-> rH

3 rd

O >

-O-

p

QJ QJ

H >-P r-l

3 id

O >

T3

rrt

o4-1

H

crd

a

QJ

O

P

3

OCO

i

a

E

a,

o

H

-p

rd

EQJ

O

in

u

rt

rrt

3id

uts

>1

Ea)

P

>i

co

p

in

O

Ojcn

cid

pEh

T3

H

rH

CM

QJ

P

Cn

H

&H

-P

CQJ

EOjOrH

QJ

>QJ

a

p

QJ

XI

Eid

sz

u

84

Tank Cleaning:

The best method for cleaning the tanks is also the

eaisest. Place the device into manual mode. Fill all three

tanks with clean, lukewarm water- Set the pump speed to about

"5". Load a clean film sample in the development chamber.

Open tank 1 inlet valve and outlet valve. Start the pump and run

it for about 30 seconds. Now open the drain valve and close tank

1 inlet valve. The tank should now drain. Repeat this for the

remaining two tanks. Remember that when the pump speed begins to

increase, the tank is empty and the pump must be turned off imme

diately.

85

F. ) Prompt Descriptions and Error Messages

This section gives a brief description of every prompt

the user will encounter when operating the In-process IR den

sitometer- The prompts are listed in their order of appearance

to help guide the user through all steps of device usage.

Prompt User Action

"EMITTER CAL?"

"ENTER D-MAX"

"READD-MAX"

"READZERO"

"ENTERMONTH"

Device wishes to know if user would like to

perform a hardware emitter output calibra

tion. See calibration section for details.

To perform the calibration, enter any number,

then press "E". System will respond with

"EMITTER 1 ,2,3- - -

" for each"E" depression.

Eleven depressions return the user to

orignal prompt. To exit , or skip calibration,

enter zero and press"E"

.

Enter the density value for the sample used as

calibration standard. See calibration sec

tion for details . Density values are entered

to the nearest hundredth with the decimal

point implied. Example; 1.20 is entered as

120. Press"E"

after entering correct value.

This is the prompt for the actual reading of

the calibration standard. Place film stock

sample and calibration strip into chamber and

seal. Press"E" to take reading.

Remove calibration strip from chamber, but

leave film stock sample. Seal chamber door and

press"E" to take zero reading. See calibra

tion section for complete explantion of

calibration routine.

System is prompting for information so it can

print a date header- Enter two digit month

86

"ENTER DAY"

"ENTER YEAR"

"MANUAL MODE?"

"PROCESS 1=?"

code followed by"E"

depression.

Enter two digit day code, followed by"E"

.

Enter two digit year code, followed by "E".

system will print date header in the format:

xx/yy/zz.

System is asking user if manual or automatic

control of the FluidTransport System (FTS) is

desired. Any number entered followed by the

"E"

keywill enable front panelbuttons and put

FTS under manual (user) control. A zero

followed by"E"

willplaceFTSunder automatic

(computer) control. See FTS description for

details. If manual mode is selected, system

will print:** MANUAL MODE SELECTED **.

Enter 1st process length in minutes. Legal

range is zero to 1 27 minutes . Process length

can only be entered in increments of one

minute. See data entry section for details.

After depressing"E"

key, system will print:

Process 1 = xyz minutes.

Note: An entered process length of zero minutes will jump user to

"PR0CESS2 =?"

prompt. However , if manual mode has been selected,

system will display"BEGIN"

query instead and assume no scan data

is to be taken.

"INTERVAL 1=?" Enter interval length in minutes; then press

the"E" key. For the programming of scan

acquisitions, the user must break up the

entered process length into indivdual inter

vals. For each interval, the user must then

enter a scan acquisition rate (see below).

The sum of all the entered intervals cannot

be greater than the total process length. If

the sum is greater, an error prompt is issued.

87

"RATE 1=?"

See error prompts for details.

For the just-entered interval, a scan

acquisition rate must now be entered. Legal

rate entries are 1 scan/minute to 60

scans/minute (these translate to 60 seconds

per scan to 1 second per scan) .The system has

the ability to store 187 complete scans. A

running sum is kept internally as the user

programs intervals and rates. The number of

scans any combination generates is simply the

rate times interval length.

"INTERVAL 2=?"

If an entered rate value, in con

junction with the just entered interval,

generates a scan sum greater than 187, the

system prompts "RATE TOO BIG". If the scan

sum exactly equals 187, the system prompts:

"OUT OF SCANS"and prints out as follows:

Interval 01 = ab minutes

Rate 01 = xy scans/minute

Interval/rate combinations may be entered

until:

1 .) The sum of interval lengths equals

process length.

2.) Scan sum equals 1 87. Note that even

though this is stored internally, it is not

available for user display, and it is there

fore the users resposibilty to keep track of

the scan sum independently of the machine.

3.) Ten interval/rate pairs have been

entered.

Note: Entering an interval length of 00 minutes will jump the

user to the next process. In the case of manual mode, only one

process is allowed.

88

"PROCESS 2=?"

"PROCESS 3=?"

"BEGIN"

Same methodology applies for Process 2 and 3

As an example, if all scans are programmed in

Process 1 and the "OUT OFSCANS"

prompt is

obtained, the remaining processes can still

be run, however no scan acquisition data can

be programmed.

At this point, system is ready to begin pro

cessing. User should now check to see that

tanks are filled, chamber door is sealed, etc.

Processing will begin when enter key is

depressed. If manual mode has been selected,

it is up to the user to operate the manual FTS

controls. Scan acquisition will still be

under computer control, however. If manual

mode has not been selected, the FTS will be

under complete computer control also.

Note: When processing is started, all displays will go blank

(except the digital thermometer). The user can do nothing until

processing is complete. If the processing must be interrupted,

the main power switch is the only way to stop the device.

"PROCESS#=?"

"TIMEWANTED"

When processing is complete, system returns

with this prompt. User is now to enter pro

cess number from which it is desired to view

scan data. Legal entries are 1,2, or 3 only,

followed by "E". If a process number is

entered for which no scan acquisition data has

been programmed, the error prompt "NODATA" is

displayed.

First set of double zeros are the number of

minutes into selected process user wishes to

view data. Legal entry range is 00 to 99

minutes, followed by the "E"key.

89

"TIME WANTED"Second set of zeros are the number of seconds

to be added to the number of minutes already

entered to form total time into process user

wishes to view scan data. Legal entry range

is 00s to 99 seconds, followed by"E"

.

Note: Time entries of 00 min 00 sec are not allowed and will

return user to "PROCESS #=?"prompt.

"TIME ELAPSED" The times at which scans are made depends on

how the scan acquisition data was programmed.

Therefore it is possible for the user to enter

a time at which no scan was made. The system

will locate the closest scan made to the ela

psed time wanted and display this actual scan

time along with the scan data on the density

display.

90

Data View Mode j_

Once the first set of scan data is displayed, the special

function keys become operative. Their functions are outlined

below:

UP: Depressing this key will advance user to next acquired

scan. Density display will show this new information

and prompt display will be updated to show change in

elapsed time. If already showing last scan in process ,

system will display: "NO MORE DATA".

DWN: This key will cause system to display scan acquired

prior to present scan already on display. Note that

time steps between scans are determined by scan rate

information programmed earlier by the user. If very

first scan in process is already being displayed,

pressing"DWN"

will cause system to display: "NO MORE

DATA".

PRT: This key will cause the line printer to generate a copy

of the scan data presently being displayed. The pro

cess number along with the elasped time are also

printed as the header. This key has absolutly no

effect on the display contents.

NXT: Depressing this key will simply return the user to the

prompt: "PROCESS #=?" . In this fashion, desired scans

can be arrived at directly, rather than inched up to

with the UP and DWN keys.

"E"-"E" Two"enter" key-strokes in sucession will return the

user to "MANUALMODE"

query. This is to be done only

when the user has completed the inspection of process

results and wishes to make a new process run. Any

number entered followed by an"E"

will then enable the

FTS manual control. This is to allow the user to

change or alter the contents of the process tanks if so

desired. A zero followed by the"E"

key will jump the

91

user back to the "ENTER MONTH"prompt. An entire new

process run can now be programmed. All calibration

values obtained earlier are retained.

Note: Once the user has entered two"E"

key strokes, there is no

way to return to the data view mode except to run a complete new

process. Also, the double"E"

stroke will only work when the

message: "TIME ELAPSED" is on the prompt display.

92

Error Messages j_

The following error prompts are returned by the system

when the user makes an illegal or invalid keyboard entry. Error

prompts will appear after an"E" depression and remain on the

display for approximately five seconds. After this time, the

system will reprompt the user for the correct entry. For criti

cal errors, the re-prompt will be flashing on and off to alert

the user that some careful thought is required.

Error prompt: Meaning;

"PROCESS FULL"

"RATE TOO BIG"

"OUT OF SCANS"

"NODATA"

"NO MOREDATA"

Not really an error, but just informing the

user that the sum of entered intervals now

equals entered process length, and no more

interval entries will be allowed.

Entered rate in conjunction with just entered

intervalwill generate more scans than system

is capable of storing (187). Solution: re

enter smaller rate.

A reminder to the user that all scans have

been used up. Further interval/rate entries

will not be allowed.

Response to user request for data from a pro

cess where none has been acquired.

Response generated as user views a block of

scan data and comes to the top or bottom of

that data block.

Note: Certain types of invalid entries will generate no error

message. What will happen, however, is that the number field of

the prompt display will be re-set to all zeros, and the prompt

will begin to flash. In this way, the user cannot proceed in

system programming until a legal entry is made.

93

G. ) Printer Maintenance:

There are only two types of service operations the IR den

sitometer user may attempt on the 40-column line printer. They

are to change the ribbon cassette and to install a new roll of

paper. For other problems, it is recommended that the printer

manufacturer be consulted (NCR corporation).

Important note: Always disconnect the A.C. power cord

before attempting to service the printer. A.C. line voltage is

present within the control cabinet and a severe electrical shock

could result from the inadvertent touching of one of these con

nections .

To install a new ribbon cassette:

1 . Remove the old ribbon cassette from the printer. This

is done by gently squeezing the two plastic locking tabs

at the center edges of the cassette together and lifting

the cassette off the printer.

2. Before installing the new cassette, locate the small

white ribbon advace knob on the underside of the

cassette. Slowly turn the knob in the direction indi

cated by the arrow until any slack in the ribbon is

removed. To replace the cassette on the printer, again

squeeze the locking tabs together and set the cassette

back onto it's support tongs.

To install a new roll of paper:

1 . Remove the ribbon cassette from the printer as described

above.

94

2. Lift out the two vent plugs located just behind the

printer on top of the control cabinet.

3. Slide the entire top panel out the back of the cabinet.

Pull the panel out squarely as to prevent it from

jamming. Lift slightly as the front end passes over the

printer mechanism.

4. Step behind the device and view the paper feed spool

located just behind the printer. Remove the wood spool

from it's supports by lifting straight up on it at both

ends .

5. Slide off the two plastic spacers and discard the card

board core from the old roll. Insert the wool spool

into a fresh roll of paper. The curl of the paper

should be facing you. The long plastic spacer goes on

the left and the short one on the right. Replace the

entire assembly by guiding the slots in the spool into

the U-shaped support holes.

6. Important! ! Check now to see that the paper roll rota

tes freely on the spool and that it does not bind. If

the roll is binding, it is because the wood spool was

not replaced squarely in it's supports. Remove and

replace if necessary.

7. While still standing behind the device, locate the feed

roller release lever. This is a white plastic lever on

the right hand side of the printer. Gently pull this

lever towards you and note how the platen lifts away

from the feed roller. While holding the platen open,

feed the end of the paper under the metal roller oppo

site the rubber feed roller. Guide the paper out the

top of the printer until the paper is feeding squarely

95

off the supply roll. Release the lever and tear off the

excess paper you just pulled through.

8. Replace the top panel, again lifting the front edge

slightly as it passes over the printer. Replace the two

vent plugs. Before replacing the ribbon cassette,

remove any slack by turning the white knob that is under

the cassette in the direction indicated.

9. Reconnect the A.C. power-

96

References

1. L .J. Fortmiller and T. H. James, RPS Proceedings of the

Centenary Conference, London, Sept. 1953.

2. J. Hughes, B.S. Thesis, Rochester Institute of Techonolgy,

1964.

3. J. Hisler and A. Casinelli, B.S. Thesis, Rochester Institute

of Technology, 1970.

4. T.L. Beaupre and R.R. Jasper, B.S. Thesis, Rochester

Institute of Technology, 1971.

5. D.A. Turbide and M.T. Williams, B.S. Thesis, Rochester

Institute of Technology, 1972.

6. T.L. Beaupre, R.R. Jasper, D.A. Turbide, and M.T. Williams

(presented by Dr. B.H. Carroll), Photogr. Sci. Eng., 18, 535

(1974).

7. A. Spitzak, J.SMPTE, 75, 103 (1966).

8. C.J. Keemink and G.J. Van der Wildt, J. of Applied Photogr.

Eng., 2^ No. 1, 49 (1976).

9. M. Piskacek, M.S. Thesis, Rochester Institute of

Technology, June 1977.

10 CR. Berry, Photogr. Sci. Eng. , 16, No. 5, 349 (1972).

97

1 1 . Processing Chemicals and Formulas, Data book J1 ,Eastman

Kodak Co. (1973)

12. Personal Communication with Dr. B.H. Carroll, March, 1982

98

Appendix J_ j_ Input/Output Port and Peripheral Device Addressing

1 . ) Line Printer Data and Control Lines:

The 40-column line printer is considered to be I/O mapped

I/O. That is to say, all operations with the printer are made

through three I/O ports. Port addresses and bit designations are

listed below. Data is clocked into the printer by the printer

clock input line and the clock signal itself is derived from the

Timer Out pin located on the expansion 8155 (chip A17). The

Printer Reset input is derived from the buffered 8085A Reset Out

signal. See the NCR users manual and the SDK-85 users manual for

more complete details.

PORT 23H j_ Define as Input

Bit C5

Bit C4

Bit C3

Bit C2

Bit C1

Bit CO

Not Used

Not Used

Not Used

Motor Jam

Printer Busy

Not Used

PORT 22H Define as Output,

Bit B7

Bit B6

Bit B5

Bit B4

Bit B3

Bit B2

Bit B1

Bit BO

Not Used

Not Used

Not Used

Not Used

Not Used

Not Used

Not used

Printer Write

99

PORT 21H j_ Define as Output.

Bit A7 : Data 7

Bit A6 : Data 6

Bit A5 : Data 5

Bit A4 : Data 4

Bit A3 : Data 3

Bit A2 : Data 2

Bit A1 : Data 1

Bit AO : Data 0

2.) A/D Converter Control and Data Lines:

All the Input/Output ports listed below have been opti

cally isolated from the peripherals they communicate with. The

devices used are Hewlett-Packard 2731 opto-isolators . For more

details, consult the system schematics in the appendix. The pur

pose of the isolation is prevent noise crossover between the

digital and analog systems.

PORT 2BH i_ Define as Output

Bit C5 : Not Used

Bit C4 : Not Used

Bit C3 : Not Used

Bit C2 : Not Used

Bit C1 : Not Used

Bit CO : Start Conversion

100

PORT 2AH :_ Define as Input.

Bit B7 : Conversion Status

Bit B6 : Not Used

Bit B5 : Not Used

Bit B4 : Not Used

Bit B3 : Not Used

Bit B2 : Not Used

Bit B1 : Conversion Bit 1 (MSB)

Bit BO : Conversion Bit 2

PORT 29H j_ Define as Input.

Bit A7 : Conversion Bit 3

Bit A6 : Conversion Bit 4

Bit A5 : Conversion Bit 5

Bit A4 : Conversion Bit 6

Bit A3 : Conversion Bit 7

Bit A2 : Conversion Bit 8

Bit A1 : Conversion Bit 9

Bit AO : Conversion Bit 10 (LSB)

3 . ) FTS Control Output Bit Assignments:

The following bit assignments are all defined as outputs.

The multiplexer address lines are optically isolated from the

analog system to prevent noise cross-talk. All output bits are

buffered by 74LS240s. These bits are wired in parallel with the

buttons on the control panel (manual) .

PORT 00H

101

Bit A7

Bit A6

Bit A5

Bit A4

Bit A3

Bit A2

Bit A1

Bit AO

Not Used

Not Used

Not Used

Not Used

Multiplxer Address Line A3

Multiplxer Address line A2

Multiplxer Address Line A1

Multiplxer Address Line AO

PORT 08H

Bit A7 : Not Used

Bit A6 : Not Used

Bit A5 : Not Used

Bit A4 : Not Used

Bit A3 : Not Used

Bit A2 : Not Used

Bit A1 : FTS Automatic Enable

Bit AO : FTS Manual Enable (0

(0 = "enable")

= "enable")

PORT 09H

Bit B7

Bit B6

Bit B5

Bit B4

Bit B3

Bit B2

Bit B1

Bit BO

Not Used

Pump

Valve 3 Out

Valve 3 In

Valve 2 Out

Valve 2 In

Valve 1 Out

Valve 1 In

(1 = "on", 0 = "off")

102

4. ) 33-Digit Density Display/Keyboard System:

The 33-digit density display system is controlled by the

expansion 8279 keyboard/display controller- This controller has

an internal 16 byte/32 digit display RAM that is written to and

read from by the 8085A CPU. For a more complete understanding on

how the 8279 works, refer to the Intel MCS-85 User's Manual

#9800366E.

Display Section:

The 8279 can be considered as memory mapped I/O. It is

communicated with via the CPU as if it were a simple memory loca

tion. The two addresses of concern are:

Command Address : B801H

Data Address : B800H

Each byte in the display RAM is configured as : BBBBAAAA,

where the four hi-order bits make up the B section and the four

lo-order bits make up the A section. The hardware is set up to

display each section as a BCD digit. Therefore, sixteen bytes of

RAM with two nibbles each give a total of thirty-two digits. The

physical display addresses are shown in the following list. The

top left most digit is hard-wired to always read zero.

103

0. AO A1

A2 A3 A4

A5 A6 A7

A8 A9 AA

AB AC AD

AE AF BO

B1 B2 B3

B4 B5 B6

B7 B8 B9

BA BB BC

BD BE BF

Digit addresses in relation to

their physical position.

(top view).

Keyboard Section:

The 8279 keyboard section is used in the encoded scan mode

with 2-key lock out. When reading the FIFO, keystroke addresses

are mapped as shown below:

104

CFH CBH C7H C3H

CEH CAH C6H C2H Keystroke addresses in

CDH C9H C5H C1H relation to actual key

CCH C8H C4H COH pad location (top view).

5. ) Twelve Character Alphanumeric display:

The twelve character 5x7 dot matrix alphanumeric display

is controlled by the MTX-A1 display controller. The MTX-A1 is

also set up as memory mapped I/O and therefore is treated as a

single memory location. All commands and display data are writ

ten to what is known as the control address.

Control Address : BF00H

The MTX-A1 also contains a 32-character RAM, and is very

similar in operation to the 8279. For complete details of opera

tion, see the MTX-A1 User's Manual.

The relationship between character address and physical

location is shown below:

BA9876543210

The display is written to from right to left and any excess

characters roll off the left end and are lost.

6. ) Five Digit Control Display:

These five display are simply wired in parallel with the

displays mounted on the SDK-85- There is a small eight position

105

DIP switch located on the SDK-85 board that is used to switch

between the two display systems. These displays are controlled

by the Basic 8279 Display Controller. See Chapter Five of the

SDK-85 System Design Kit User's Manual #9800451B for a very

complete description on how these displays are used.

Data Address : 1 800H

Command Address : 1 900H

7. ) I/O Port and Memory Map:

I/O Map:

106

Port Address

00H

01H

02H

03H

08H

09H

OAH

OBH

20H

21H

22H

23H

24H

25H

28H

29H

2AH

2BH

2CH

2DH

Port Name

Basic ROM Port A

Basic ROM Port B

Basic ROM DDRA

Basic ROM DDRB

Expansion ROM Port A

Expansion ROM Port B

Expansion ROM DDRA

Expansion ROM DDRB

Basic RAM CSR

Basic RAM Port A

Basic RAM Port B

Basic RAM Port C

Basic Lo-Order Timer Control

Basic Hi-Order Timer Control

Expansion RAM CSR

Expansion RAM Port A

Expansion RAM Port B

Expansion RAM Port C

Expansion Lo-Order Timer Control

Expansion Hi-Order Timer Control

Chip-

A14

A14

A14

A14

A15

A15

A15

A15

A16

A16

A16

A16

A16

A16

A17

A17

A17

A17

A17

Al 7

Memory Map:

107

Active Address Range Selected Device

0000-

0800-

1000-

1800-

2000-

2800-

3000-

8000-

8800-

9000-

9800-

A000-

B000-

B800-

BC00-

C000-

07FF

OFFF

17FF

1FFF

27FF

2FFF

7FFF

87FF

8FFF

97FF

9FFF

AFFF

B7FF

BBFF

BFFF

FFFF

8755 Basic UVEPROM

8755 Expansion UVEPROM

Not Used

8279 Basic Controller

8155 Basic RAM

8155 Expansion RAM

Not Used

2142 RAMs (4)

21 14 RAMs (4)

Not Used

2716 UVEPROM

2732 UVEPROM

2716 UVEPROM

8279 Expansion Controller

MTX-A1 Display Controller

Not Used

See SDK-85 User's Manual for more complete details on

memory allocation.

108

Appendix 2_ j_ Operating System Program Listings :

The most difficult portion of this thesis involved the

development of the operating system control software. This

appendix contains a short description of what each program does,

followed by the complete listing of the assembled programs. The

code is Intel 8080/8085 assembly language. All programs where

developed on an Intel Intellec MDS-220 development system. All

software calculations are performed by routines contained in the

Intel Floating-Point Arithmetic Library (FPAL) . The operations

provided are addition, subtraction, multiplication, division

value comparison, negation, clearing to zero, absolute value,

conversion between decimal and binary floating-point numbers and

conversion between floating-point and 32-bit signed integer for

mats . All operations are 32-bit single-precision ( positive

number range approximates 1.2 x10~38 to 3-4 x

10^8 ). The

32-bit single-precision format is fully described in the

8080/8085 Floating-Point Arithmetic Library user's manual,

available from Intel Corporation, SanataClara, California, order

# 9800452-03-

Control of the IR densitometer is divided between seven

different programs or modules. Each module is developed and

debugged separately from one another. Once all programs are

debugged, they are linked together to form one complete program.

For this system, the linked programs require about 1 OK of program

memory to run.

These program listing are provided to allow qualified

persons to change or up-grade the IR densitometer operating

system when needed. If more information is required, please con

sult the numerous Intel manuals concerning this subject.

109

1 . Module CALIB:

This module performs all the initializations required to

operate the IR densitometer. For example, certain memory loca

tions and registers will contain unknown variables upon first

power up. This program then loads these locations with the

proper contents. This program also contains the sub-routines

that; scan the 11 emitter/detector pairs, manage the output of

data onto the 33-digit display, and perform the data calibration

functions.

2. Module START:

Module START is a warm start routine in that after a pro

cess has been run, certain parameters have to be re-initialized.

START also contains all the routines that control the 40-column

line printer -

3. Module DATAIN:

Thismodule interacts directlywith the densitometer user

to program certain process information. All timing and rate

information is entered through this program and is also checked

for validity. The majority of message tables are stored within

this module, along with all delay routines.

4. Module SUBPAK:

SUBPAK contains all the routines needed to operate the 1 6

pad keyboard. When the user depresses a key, subpak determines

which key has been pressed and loads its address and value (if it

is a numeric key) into a series of memory locations called KSTOR.

From there, it is up to the calling program to determine what to

do next.

1 10

5. Module GODEV:

This program starts by displaying"BEGIN"

on the prompt

display. From there it simply controls the timing of the Fluid

Transport System, and the timing of scan acquistion. GODEV also

contains a memory allocation routine used to store density data

as it is generated by the A/D converter. All timing functions

are based on a 1 Hz clock input to RST 7.5.

6. Module DFIND:

This module is entered when processing is completed. The

user enters a time at which density data was acquired, and the

routine will calculate the memory address at which that data is

stored. A routine to convert minutes to seconds is also con

tained here.

7. Module UPORDN:

Control of the special function keys is defined here.

This program functions very similar to DFIND in that memory

addresses are calculated depending on what density data is

desired. Exit from this program will return the user to START

where a new process run can be made.

ISIS-I1 8080/8085 MACRO ASSEMBLER, V4.0 CALIB PACE

IOC OBJ LIKE SOURCE STATEMENT 111

1910

1800

1861

1020

1021

ion

0023

1021

002S

1021

029

I02A

002B

I02C

002D

IF 00

oooo

1011

0002

1013

1

2

3

4

5

i

J

I

f

11

11

12

13

14

IS

U

17

IB

17

20

21

12

23

14

23

U

2?

IB

2

30

31

32

33

34

33

3<

3?

30

37

40

41

42

43

44

43

44

47

41

47

SO

31

32

53

Date 7/26/11 revision 3, 1/11/81 revision i, 1/27/01 revision 7.

The Ie-Proeess IR Densitometer is controlled b? seven progni

modules. The module names ere: CALIB, START, DATAIN, SUBPAK,

CODEV, DFIKD, end UPORDN.

*** All programs by Steves p. Coi *

ttt*tttttttttttttttttttttttt<tttttttttttttttMttttttttt*t*tttttt

Main start routine for In-process IR Densitometer.

This program prompts the nser through ell steps of the

start op calibration routine. After calibration, program

control is given to START and then to DATAIN root inc.

ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt

NAME CALIB

PUBLIC C0MM1,DATA1,C0MM2,DATA2, ALPHA, PA1.PB1, PCI, IAMPT

PUBLIC RPA2,RPB2,RPA1 ,POS2, POS1,RPOS1, CLEAR!, CLEAIB.SCAN.DSHOV

PUBLIC DRAM,NIDRAM,TMPNVM,TDSTOR

EITRX KDSPYI , KSTOR1 , KSTOR2 , FSET , FERHND , FCLR , FL0AD , FQFB1D

EITRN H>SPY3,5UM3,FITDS,FST0R,FDI,FMUL,FNEG,FSUB,FADD, START

EXTRN DELAY,DVRITE,SUH2,DEB

Below ere the variable names used in naming I/O port, display

command and data addresses.

COMM1 EQU 1900H

DATA1 EQU 1I00H

COMM2 EQU IBI01H

DATA2 EQU OBIOOH

CS1 EQU 20H

PA1 EQU 21H

PB1 EQU 22H

PCI EQU 23H

T1LOB EQU 24H

T1HOB EQU 2SH

CS2 EQU 2IH

PA2 EQU 27H

PB2 EQU 2AH

PC2 EQU 2BH

T2LOB EQU 2CH

T2HOB EQU 2DH

ALPHA EQU 0BF00H

RPA1 EQU 00H

RPB1 EQU 01H

RDDA1 EQU 02H

RDDB1 EQU 03H

Basic 1277 command address.

Basic 1277 data address.

Eipansion 1277 command address.

Eipansion 1377 data address.

Basic RAH CfS RECISTER.

BASIC RAM PORT A.

BASIC RAH PORT B.

BASIC RAM PORT C.

LO-ORDER BYTE OF BASIC TIHER.

Hl-ORDER BYTE OF BASIC TIHER.

EIPANSION RAM C/S RECISTER.

EXPANSION PORT A

EXPANSION PORT B.

EXPANSION PORT C.

LO-ORDER BTTE OF EXPANSION TIHER.

Hl-ORDER BTTE OF EXPANSION TIHER.

HTX-A1 CONTROL ADDRESS.

BASIC ROM PORT A.

BASIC RON PORT B.

BASIC ROM DDR FOR PORT A.

BASIC ROM DDR FOR PORT B.

ISIS-II 1080/1085 HACRO ASSEMBLER, V4.0 CALIB PACE 2

LOC OBJ LINE SOURCE STATEMENT112

oooo 54 RPA2 EQU OIH

0007 55 RPB2 EQU 07H

000A 56 RDDA2 EQU OAH

IOIB 57 RDDB2 EQU OBH

oooo 50 DRAM EQU 0000H

1011 57 MDMAXT EQU I001H

0017 60

ll ;

62

13 ;

HOOT

CSEC

EQU 0017H

0000 31FF2I 64 CALIB: LX1 SP, 20FFH

0003 210011 65 LII H, COHH1

004 3400 66 HV1 M, 00H

0000 CDOOOO 1I 67 CALL DELAT

10 OB 3 4 DC 60 HVI M, ODCH

OOOD 21O1B0 67 LXI H, COHM2

0010 36A3 70 HVI H, 0A3H

0012 CDOOOO I 71 CALL DELAT

1013 3E40 72 HVI A, 40H

0017 D32D 73 OUT T2HOB

1017 3E36 74 HVI A, 06H

001B D32C 75 OUT T2LOB

001D 3ECC 76 HVI A, OCCH

001F D320 77 OUT CS2

1021 3E00 71 HVI A, 00H

0023 D32B 77 OUT PC2

1025 3E03 10 HVI A, 03H

0027 D320 11 OUT CS1

1027 3EFF 02 HVI A, OFFH

002B D30A 03 OUT RDDA2

I02D D30B 04 OUT RDDB2

002F 3EFD IS HVI A, OFDB

0031 S30I 06 OUT RPA2

0033 AF 17 XIA 1

1034 B307 10 OUT 1PB2

0036 3E0F 17 HVI A, OFH

1030 D3I2 70 OUT RDDA1

003A 3E00 71 HVI A, 00H

I03C D300 72 OUT RPA1

I03E 2100BF 73 LXI H, ALPHA

0041 34E1 74 HVI H. 0E1H

1043 CDOOOI E 75 CALL DELAT

0046 36C3 76 HVI H, 0C3B

1040 3E73 77 HVI A, 73H

004A 321500 D 70 STA POS2

004D 3E04 77 HVI A, I4H

004F 326400 D 100 STA post

0032 3E64 101 HVI A, 64H

0054 326600 D 102 STA RPOS1

0057 3EDF 103 HVI A, IDFH

0057 320000 I1 104 STA CLEARA

OOSC 320100 D 105 STA CLEARS

005F CDOOOO I 106 CALL DELA!

1062 217703 ( 107 ECAL: LXI H, EHITH

EXPANSION ROM PORT A.

EXPANSION ROM PORT B.

EXPANSION ROH DDR FOR PORT A.

EXPANSION ROH DDR FOR PORT B.

START ADDRESS OF DENSITY RAM.

START OF HEASURED D-MAI DENSITY RAH.

START OF HDI RAM.

STACK AT END OF EXPANSION RAH.

LOAD DISPLAY COMMAND ADDRESS.

0 DIGIT, LEFT ENTRY, 2 KEY LOCK-OUT.

; CLEAR CONTROL DISPLAY RAH TO ZEROS.

; TURN DENSITY DISPLAY OFF.

; PROGRAM HI -ORDER BYTE OF EXPANSION TIMER.

PROGRAM LO-ORDER BYTE OF EXPANSION TIHER.

PC2*OUT PB2.IN PA2=IN

SET-UP EXPANSION I/O ( START TIHER.

SET CONVERT LINE TO LO.

; SET UP I/O FOB BASIC RAH.

; PRINTER CONTROL LINES.

; SET ALL BIT ON EXPAN. ROM PORT A TO OUTS

; SAME FOR EIPAN. ROM PORT B.

; ENABLE FTS CONTROL TO AUTO MODE

TURN OFF ALL VALVES AND PUMP.

SET BASIC ROH POBT A TO OUTPUT.

THESE ARE MUX ADDRESS LIKES.

PRESET MUX ADDRESS LINES TO I00IB.

; LOAD 12 CHARACTER CONTROL ADDRESS.

; LOAD ALL BLANKS TO DISPLAY RAM.

; INITIALIZE PARAMETERS USED IN KDSPT2.

; INITALIZE ENTRY CLEAR TO KDSPY2.

; INITIALIZE EXIT CLEAR FROM KDSPY2.

; PROMPT"

EHITTER CAL? V

ISIS-II 0000/0005 MACRO ASSEMBLER, V4.0 CALIB PAGE 3

IOC OBJ

0065 060D

1067 CDOOOO

006A CDOOOO

0D6D 3A00OO

0070 FEOO

1072 CAAAOO

0075 3E01

0077 4F

0070 320000

007B 77

I07C D300

007E CS

007F 217003

0002 060A

0011 CDOIOO

0007 3A0000

IO0A C630

OOOC 3200BF

OIF CDOOOO

0072 CI

1073 3A0000

0076 3C

0O77 IC

0071 FED3

I07A CA620I

007D FEOA

I07F CAASOO

00A2 C37I00

0OA5 3ED1

00A7 C37000

IOAA 3E00

OOAC D300

OOAE 818800

00B1 CS

1082 110000

00B5 CDOOOO

OOBO 21A503

OOBB 060E

OOBD CDOOOO

OOCO CDOOOO

0OC3 3A000I

I0C6 321A00

0OC7 AF

OOCA 321B00

IOCD 321C00

OODO 321D00

I0D3 110108

I0D6 111A00

00D7 CDOOOO

OODC CDOOOO

E

E

E

D

D

D

D

D

D

E

E

LIKE

100

107

UO

HI

112

113

114

US

116 5ETIT:

117

111

117

120

121

122

123

124

12S

126

127

121

127

130

131

132

133

134

135

136 FIX:

137

131

137

140

141 IHIT:

142

143

144

145

146

147 ;

140 GDMAI:

147

ISO

151

152

1S3

154

1SS

156

1S7

ISO

1S7

160

161

SOURCE STATEMENT

113

HVI

CALL

CALL

LDA

CPI

JZ

HVI

MOV

STA

NOV

OUT

PUSH

LXI

HVI

CALL

LDA

ADI

STA

CALL

POP

IDA

INR

INR

CPI

JZ

CPI

JZ

JHP

HVI

JHP

ODH

DVRITE

KDSPY2

SUM2

008

INIT

A,

C

DEB

A,

IPA1

I

H,

B,

DVRITE

DEB

30H

ALPHA

KDSPY2

B

DEB

A

C

0D3H

ECAL

OAB

FIX

SETIT

A,

SETIT

01H

A

C

EHIT

OAR

0D1H

INITIALIZE FPAL:

HVI A, OOH

OUT RPA1

LXI B, FPB

PUSH B

LXI B, OOH

CALL FSET

LXI

HVI

CALL

CALL

LDA

STA

XRA

STA

STA

STA

LXI

LXI

CALL

CALL

DHAX

IER

H,

I.

DVRITE

KDSPT3

SUH3

ADMAX

A

ADMAX +1

ADMAX ? 2

ADMAX + 3

I, FPR

D, ADMAX

FLTDS

FSTOR

; ENTER VILL BYPASS ROUTINE.

ANYTHING ELSE VI ll TURN ON EMITTER 1.

C REG IS MUX ADDRESS COUNTER.

DEB CONTAINS DISPLAY NUMBER.

; TURN ON EMITTER ADDRESSED BY C.

; DISPLAY'

EMITTER (DEB) V

CONVERT DEB TO ASCII.

SEND TO ALPHA DISPLAY.

VAIT.

INCREMENT NUMBER COUNTEI

INCREMENT ADDRESS COUNTER.

COMPARE TO"

C ".

; RESET MUX LINES TO 0000B.

; PROMPT*

ENTER D-MAX

VRITE MESSAGE.

ENTER D-MAX CALIBRATION VALUE(ADHAI) .

SUM3 CONTAINS ENTRY AS XYZ, IMPLIED X.YZ

STORE ADMAX AS 32-BIT INTEGER.

; NOV CONVERT TO 32-BIT FLOATEB.

; STORE ADMAX AS FLOATER.

LOC OBJ LIKE SOURCE STATEMENT

114

OODF 21BA03 C 162 RDHAI: LXI H, RDDEN

00E2 060C 163 HVI B, OCR

0OE4 CDOOOO E 164 CALL DVRITE

00E7 CDOOOO E 165 CALL KDSFY2

IOEA 210080 166 LXI H, DRAM

OOED 220200 D 167 SHLD NXDEAR

ODFO 212600 D 161 LXI H, SLOPE

00F3 225200 D 167 SHLD SLOPEP

I0F6 CDID01 C 170 CALL SCAN

O0F7 21B003 C 171 GZERO: LXI H, DZERO

OOFC 060B 172 HVI B, OBH

OOFE CDOOOO E 173 CALL DVRITE

0101 CDOOOO E 174 CALL KOSPY2

0104 CD0D01 C 175 CALL SCAN

0107 211780 176 CALSLP LXI H, MOOT

010A 222200 D 177 SHLD MSDP

010D 210180 170 LXI H, HDMAXT

0110 222400 D 177 SHLD HDHAXP

1113 7D 100 NXSLOP HOV A, L

0114 FE17 181 CPI 17H

0116 CA0A01 C 132 JZ FINCAL

0117 2A2200 D 103 LHLD MDOP

011C 7E 104 HOV A, H

OUD 321E00 D 105 STA TFLOAT

0120 23 106 INX H

0121 7E 117 HOV A, H

0122 321FO0 D 111 STA TFLOAT+1

1125 AF 117 XRA A

0126 322000 D 170 STA TFLOAT+1

1127 322100 D 171 5TA TFLOAT+3

012C 010000 D 172 LXI 1, FPI

012F 1UEO0 D 173 COVRTS LXI D, TFLOAT

1132 CDOOOO E 174 CALL FLTDS

1135 CDOOOI E 175 CALL FSTOR

0130 2A2400 D 176 LHLD HDHAXP

013B 7E 177 HOV A, H

013C 320400 D 171 STA THP1IUH

013F 23 177 INX H

0140 7E 210 HOV A, K

0141 320500 D 201 STA THPNUN+1

0144 AF 202 XRA A

1145 320601 D 203 STA TKPNUH+2

0140 320700 D 204 STA TMPNUH+3

014B 110400 D 205 LXI D, TMPNUM

I14E CDOOOO E 206 CALL FLTDS

0131 U1E0I D 207 LXI D, TFLOAT

0154 CDOOOO E 200 CALL FSUB

0157 CDOIOI E 207 CALL FSTOB

USA 1UA00 D 210 LXI D, ADMAX

01SD CDOOOO E 211 CALL FLOAD

0160 111E00 D 212 LXI D, TFLOAT

1163 CDOOOO E 213 CALL FDIV

0166 2AS200 D 214 LHLD SLOPEP

0167 EB 215 XCHG

; PROMPT*

READ D-MAX \

; CONTINUE ON RECEIPT OF ENTER KEY.

; IKITALIZE NXDRAM.

; INITAUZE SLOPE POINTER.

; 1ST 22 BYTES OF NIDRAM NOV CONTAIN MDMAX.

; PROMPT READ ZERO"

.

CONTINUE ON RECEIPT ON ENTER KEY.

2ND 22 BYTES OF NXDRAM CONTAIN MDO.

INITAUZE START ADDRESS OF 22 RYTE MDO RAM.

; INITAUZE START ADDRESS OF HDRAM.

; AT THIS POINT L CONTAINS LOB OF HDHAXP.

; IF EQUAL, THEN HAVE CALCULATED 11 SLOPES.

; PLACE LOB OF MDO INTO A REG.

; PLACE HOB (2 HSBITS) INTO A.

; CONVERT MDO TO FLOATER, STORE IN TFLOAT.

i LOAD LOB OF MDMAX INTO A RIC.

; B SHOULD STIL CONTAIN FPB.

; CONVERT MDMAX TO FLOATEB, LEAVE IN FAC.

; FAC > MDMAX - HDI .

; STORE RESULT IN TFLOAT.

; LOAD FAC WITH ENTERED ADMAX .

FAC * 1/K > ADMAX/ ( MDMAX - HDO ) .

LOAD HI WITH CONTENTS OF SLOPEP.

EXCHANGE WITH CONTENTS OF DE.

ISIS-II 0000/0015 MACRO ASSEHBLER, V4.0 CALIB PAGE 3

IOC OBJ LINE SOURCE STATEMENT115

016A CDOOOO E

016D 2A5200 D

0170 23

0171 23

0172 23

0173 23

0174 22S200 D

0177 2A2200 D

017A 23

017B 23

017C 222200 D

017F 2A2400 D

0102 23

0103 23

1114 222401 D

1117 C31301 C

I1IA C3I000 E

HID 210181

1170 36DF

0172 36A3

0174 CDOOOO

1177 CDOOOO

017A 3E01

017C 325500

017F FEOC

01A1 CAD701

01A4 D300

01A6 CDOOOO

01A7 3E01

01AB D32B

01AD 160F

01AF IS

0180 C2AF01

01B3 3E00

01BS D32B

01B7 163F

INKS:

CALL FSTOR

LHLD SLOPEP

INX H

INX R

INX H

INX R

SHLD SLOPEP

LHLD HDOP

INX H

INX R

SHLD HDOP

LHLD HDHAXP

INX H

INX 1

SHLD HDHAXP

JHP NISLOP

STORE 4-BYTE SLOPE AT LOCATION POINTED

TO BY SLOPE POINTER ( SLOPEP ) .

INCREMENT SLOPE COUNTER BY 4.

; INCREMENT MDO POINTER BY 2.

; INCREMENT MDMAX POINTER BY 2 .

i GO SEE IF MORE SLOPES TO BE CALCULATED.

AT THIS POINT ALL SLOPES ARE CALCULATED, READY TO HAKE DENSITY

F1NCAL: JHP START ; GO TO ENTER DATE ROUTINE.

SUBROUTINES FOLLOW:

ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt

* SCAN *

SCAN PERFORMS ONE COMPLETE SCAN OF THE IR DENSITOMETER BY

READING EACH OF THE 11 IR DENSITOMETERS ONE AFTER ANOTHER.

THE ROUTINE ASSUMES THAT NXDRAM, A 16-BIT ADDRESS VHERE DENSITY

VALUES ARE TO RE STORED, HAS AREADY REEN INITALIZED TO SOME VALUE.

ttttttttttttttttttittttttttittttttttttittittttttttttttttttttttttttttttt

SCAN: LXI

HVI

HVI

CALL

CALL

HVI

STA

CKCCKT: CPI

JZ

OUT

CALL

HVI

OUT

HVI

DCR

JNZ

HVI

OUT

HVI

LP2:

BUSY:

H,

H,

H,

DELA!

DELAY

A,

SCNCNT

DCH

RESET

RPA1

DELAY

A,

PCI

D,

B

LP2

A,

PCI

D,

COHM2

ODFI

0A3H

01H

; BLANK DENSITY DISPLAY.

01H

OFH

OOH

3FH

; INITAUZE SCAN COUNTER,

; HAVE 11 PASSES SEEN HADE1

PLACE SCNCNT CONTENTS ON MUX ADDRESS LINES.

LEAVE THAT EMITTER /DETECTOR PAIR ON '2HSEC

BRING CONVERT LINE HI

; EXTEND PULSE JUST A BIT.

; BBINC CONVERT LINE LOW, START CONVERSION.

; VA1T JUST OVER 25 MICROSECONDS.

ISIS-II 0000(0005 HACRO ASSEHBLER, V4.0 CALIB PAGE 4

IOC OBJ

01B7 IS

I1BA C2B701

01BD 2A0200

I1C0 23

I1C1 DB27

I1C3 77

I1C4 23

I1C5 DB2A

I1C? E6I3

I1C7 77

I1CA 221201

01CD 3A5S00

100 3C

01D1 325500

I1D4 C37F01

I1D7 3E00

0107 D3I0

01DB C7

LINE SOURCE STATEMENT116

IDC 211000

01DF 3AS400

I1E2 FEIO

I1E4 CAEF01

01E7 111400

01EA 17

11 EB 3D

01EC C3E201

01EF EB

01F0 210000

LPl: OCR

JNZ

LHLD

INX

IN

HOV

INX

IN

ANI

HOV

SHLD

LDA

INR

STA

JHP

RESET: HVI

OUT

RET

D

LPl

NXDRAM

H

PAZ

H,

H

FR2

03H

H,

KXDRAM

SCNCNT

A

SCNCNT

CKGCNT

A,

RPA1

OOH

; INCREMENT DRAM POINTER BY ONE.

; BRING IN 1ST 0 BITS OF CONVERSION.

INCREMENT DRAM POINTER BY ONE MORE.

BRING IN REMAINING 2 MSB ITS.

MASK OUT HI-ORDER 6 BITS.

STORE VHERE POINTED BY NXDRAM.

UPDATE NXDRAH.

; INCREMENT SCAN COUNTER BY ONE.

; RESET MUX ADDRESS LINES TO ZERO.

tttttltltttttlttttttitltllttttlttttltttttlttttttttttttttllttttltttlO

*** DSHOV *

DSHOV TAKES ONE 22-SYTE BLOCK OF DENSITY MEASURMENTS AND OPERATES ON

IT WITH A LINEAR REGRESION CALIBRATION ROUTINE. THE RESULTS ARE THEN

DISPLAYED ON THE 33-DIGIT DISPLAY SYSTEH. DSHOV MUST BE PASSED RAHPT,

( RAH POINTER ) TO TELL IT VHICH BLOCK OF DATA IS VANTED.

THIS START ADDRESS IS FOUND FROM: DSTART * ( RAHPT X 22 ) ? 1 ? DRAM

SOKE CONVENTIONS USED IN THIS SYSTEH ARE:

1.) DENSITY READINGS BEGIN AT THE TOP OF THE CHAMBER AND DECEND.

2.) THE LO-DENSITY PRODUCING END OF THE SEKSI STRIP VILL BE

PLACED AT THE TOP OF THE CHAMBER.

3.) VALUES VILL DISPLAYED AND PRINTED WITH THE LOVEST DENSITY

READINGS ON TOP AND THE HIGHEST AT THE BOTTOM.

4.) THE LOVEST DENSITY READING OF ANY DATA BLOCK VILL HAP TO

THE LOVEST OR START ADDRESS OF THAT DATA BLOCK.

itnitttttitttitttiiiititittititttiiiitttttiittitiiiititi*tiiini

0000H ; ZERO HL REGISTER PAIR.

CALCULATE ( RAMPT I 22 I

0016H ; LOAD DE VI TH 22.

HL HI ? DE .

; STORE ( RAMPT X 22 ) IN DE.

H, DRAM ; LOAD HL VI TH DENSITY START ADDRESSS.

DSHOV: III H,

LDA RAHPT

NX: CPI OOH

JZ OVER

LXI D,

DAD O

DCR A

JHP NX

OVER: XCHG

LXI

ISIS-I1 1080/8085 MACRO ASSEHBLER, V4.0 CALIB PACE

LOC OBJ

01F3

01F4

I1FS

I1FI

I1FB

I1FE

1201

0204

0207

1217

I2IC

020E

1211

0214

217

021A

I21B

021E

0221

0222

0225

0221

022B

022E

0231

0234

023?

023A

023B

I23E

0241

1242

024S

1241

024A

1240

I24F

I2S2

025S

238

02S7

025C

025F

0262

0265

0260

026B

23

17

225600

211700

222200

212600

225200

2101BI

3670

CDOOOO

36AS

CDOOOO

CD6C02

2100BI

3A570I

77

CDOOOO

3A5A00

77

CDOOOO

CD7C03

CD7C03

CD7C03

CD7C03

CD6C02

2100BI

3ASI00

77

CDOOOO

3AS700

77

CDOOOO

210188

3671

CDOOOO

36AI

CDOOOO

2100BI

3ASA00

7?

CDOOOO

CD7C03

CD7C03

CD7C03

CD7C03

CD7C03

C7

E

D

E

C

C

C

C

C

LINE

121

32S

326

327

320

327

330

331

332

333

334

335

336

337

331

337

340

341

342

343

344

345

346

347

341

347

350

351

352

353

354

355

356

357

331

357

360

361

342

343

344

345

344

347

341

347

371

371

372

373

371

375

374

377

SOURCE STATEMENT

117

INX

DAD

SHLD

LXI

SHLD

LXI

SHLD

LXI

HVI

INHIBB: CALL

HVI

CALL

CALL

LXI

LDA

HOV

CALL

LDA

HOV

CALL

CALL

CALL

CALL

CALL

CALL

LXI

LDA

HOV

CALL

IDA

MOV

CALL

LXI

HVI

INHIBA: CALL

HVI

CALL

LXI

LDA

HOV

CALL

CALL

CALL

CALL

CALL

CALL

RET

H

D

DSTART

H,

HDOP

H,

SLOPEP

H,

H,

DELAY

H,

DELAY

CORECT

H,

TDSTOB+1

H, A

DELAY

TDSTOR+2

H, A

DELAY

DSEND

DSENS

DSEND

DSEND

CORECT

H,

TDSTOl

H,

DELAY

TDSTOR+t

H,

DELAY

H,

H.

DELAY

H,

DELAT

; HL - DRAM ? 1 .

; HL > DRAM ? 1 ? ( RAMPT X 22 ) .

MOOT

SLOPE

COHH2

7 OH

0A5H

OATA2

; RE-INITIALIZE MDO POINTER FOR USE IN CORECT.

; RE-INITIALIZE SLOPE POINTER FOR USE IN SAME.

; LOAD 0277 COMMAND ADDRESS.

; SET DISPLAY RAH TO 0100, Al .

; BLANK AND VRITE INHIBIT B SEC OF DISPLAY.

; FILL LO-DEN STEP, ACCOUNT FOR FIXED ZERO

DATA2 ; ACCOUNT FOR SVITCH BETWEEN SEC A AND SEC B.

COHM1

70H

OAOH

; SET RAH TO 0001 .

; VRITE INHIBIT A SECTION OF RAH.

DATA2

TDSTOR+2

H, A

DELAY

DSEND

DSENJ

DSEND

DSENB

DSEND

itttttttttttttttttetttttttttttttttttttttttttttttttttttttttttttttttttett

ttt CORECT *

THIS ROUTINE RECEIVES AN ADDRESS PASSED TO IT CALLED DSTART WHICH IS

THE START ADDRESS OF A 22 BYTE BLOCK OF DATA CONTAINING 11 DENSITY

ISIS-II 8080/8085 MACRO ASSEHBLER, V4.0 CALIB PAGE

IOC OBJ

02IC 2A220I

024F 7E

270 321EO0

0273 23

1274 7E

0275 321F00

0278 AF

0279 322000

027C 322100

027F 010000

0212 U1E00

02IS CDOOOO

211 CDOOOO

02IB 2AS600

020E 7E

02IF 320400

1272 23

0273 7E

1274 320500

0277 AF

0278 320600

027B 320700

27E 110401

01A1 CDOOOO

(2A4 11 lf 08

02A? CDOOOO

02AA 2A52O0

02AD EB

02AE CDOOOO

02B1 3E03

I2B3 32SEO0

02B6 216100

I2B? 12SFO0

02BC 010000

02BF 11 5808

02C2 CDOOOO

02CS 3A3B00

02C0 FE2B

(2CA C2DF02

02CD 3A5C00

02BO FEFE

LINE

370

377

ISO

301

382

303

3B4

385

384

337

3BI

387

371

391

372

373

394

395

394

397

378

377

400

401

402

403

404

405

404

407

401

407

410

411

412

413

414

415

414

417

411

419

420

421

422

423

424

425

424

427

420

427

430

431

SOURCE STATEffiNT

READINGS. CORECT THEN TAKES A 2-BYTE, 10-BIT CONVERSION AND PERFORMS

A LINEAR REGRESSION CORRECTION ON THE VALUE. THE RESULT IS CONVERTED

TO SIHPLE BCD FOR DISPLAY, AND RETURNED IN TDSTOR AS :

118

TDSTOR+2 LSD Z

TDSTOR+1 T

TDSTOR HSD X X.YZ'

FORMAT

THE EXPONENT RETURNED FROH FQFB2D ( FPAL ROUTINE ) IS TESTED FOR

RANGE AND IF IN ERROR, ERROR CHARACTERS ARE RETURNED TO CALLING PROGRAM.

ettittttttttttttttttttttttttatttttettttttttttttttttttttttttetttttttittttt

CORECT: LHLD

MOV

STA

INX

MOV

STA

IRA

STA

STA

LXI

LXI

CALL

CALL

FLOATS: LHLD

MOV

STA

INI

HOV

STA

XRA

STA

STA

LII

CALL

DOCOR: LII

CALL

LHLD

ICHC

CALL

RESULT: HVI

STA

III

SHLD

III

LII

CALL

SCLTST: LDA

CPI

JNZ

IDA

CPI

FPR

TFLOAT

HDOP

A, H

TFLOAT

R

A, H

TFLOAT+1

A

TFLOAT+1

TFLOAT+3

B,

D,

FLTDS

FSTOR

DSTART

A, H

THPNUH

H

A, H

TNPNUH+1

I

TMPNUM+1

TMFNUH+3

D, THPNUH

FLTDS

D, TFLOAT

FSUB

SLOPEP

FMUL

A, 03H

DLNGTH

H, DICMl

DADDB

B,

D,

FQFB2I

DSICN

2BH

1TNEG

DSCALE

OFEH

; CONVERT MOO TO 32-BIT FLOATER.

CONVERT

TFLOAT FLOATER MDO .

CONVERT HD TO 3 2 -BIT FLOATER.

CONVERTED HD RESIDES IN FAC.

FAC . ( MD - MDO )

FAC < ( HD - HDt ) I 1 /SLOPE

CONVERT RESULT TO DECIMAL FORMAT.

FP1

DSIGN

TEST FOR NEGATIVE RESULT.

2BH"

IS ASCII FOR ? ".

GET DECIMAL EXPONENT.

ISIS-II 1080/1085 HACRO ASSEHBLER, V4.0 CALIB PACE 9

IOC OBJ LINE SOURCE STATEMENT

119

02D2 CAED02 C 432 JZ SHFT4

I2DS FEFF 133 CPI 0FFH

02D7 CAFF02 C 131 JZ SHFT3

I2DA FE00 135 CPI OOH

02DC CA1603 C 134 JZ 5HFT2

02DF 3E00 137 ITNEG: HVI A,

02E1 325000 D 130 STA TDSTOR

02E4 325700 D 13? STA TDSTOR+1

02E7 32SA00 D 110 STA TDSTOR +1

02EA C32E03 C 111 JHP INCREH

02ED AF 112 SHFT1: IRA A

02EE 325101 D 443 STA TDSTOR

02F1 32S700 D 444 STA TDSTOR+l

I2F4 3AI100 D 44S LDA DECHL

02F7 D430 444 SUI 30H

02F? 323AO0 D 447 STA TDSTOR+2

02FC C32E03 C 448 JHP INCREH

02FF AF 44? 5HFT3: IRA A

0300 32SS00 D 4S0 STA TDSTOI

0303 3A61D0 D 451 LDA DECHL

0306 D630 452 SUI 30R

0308 325900 D 453 STA TDSTOR+1

030B 3A4200 D 454 LDA DECHL+1

030E D430 4SS SUI 3 OH

0310 325A00 D 454 STA TDSTOR+2

0313 C32E03 C 4S7 JHP INCREH

0316 3A6100 D 450 SHFT2: LDA DECMl

319 D630 45? SUI 30H

031B 325000 D 440 STA TDSTOI

31E 3A6200 D 441 LDA DECHL+1

0321 D430 442 SUI 30H

(323 325900 D 463 STA TDSTOR+1

0324 3A4300 D 464 LDA DICML+1

0329 D430 465 SUI 30H

032B 32SA00 D 466

467 ;

STA TDSTOR+2

032E 2AS400 D 460 IHCREH LHLD DSTART

0331 23 467 INX I

0332 23 470 INX H

0333 225400 D 471 SHLD DSTART

0334 2A2200 D 472 LHLD HDOP

0339 23 473 INX I

033A 23 474 INX H

033B 222200 D 475 SHLD HDOP

033E 2AS200 D 476 LHLD SLOPEP

0341 23 477 INX R

1342 23 470 INX H

1343 23 47? INI I

0344 23 400 INI H

0345 225200 D 411 SHLD SLOPEP

0340 3AS0O0 D 402 NIBBLE: LDA TDSTOR

034B 17 403 RAl

031C 17 404 RAL

031D 17 40S RAl

OOH

; SHIFT POINT 4 PLACES.

; SHIFT POINT 3 PLACES.

SHIFT POINT 2 PLACES.

LOAD TDSTORS WITH ERROR CODE FOR DISPLAY.

VHICH IS ALL ZEROS.

; GO TO INCREMENT ROUTINE .

; LOAD 1ST i 2ND PLACES V/ZERO.

; GET LSD.

; CONVERT FROM ASCII TO RCD.

; LOAD 1ST PLACE V/ ZERO ONLY.

; INCREMENT ALL POINTERS USED IN THIS CALL.

; SET TDSTOR NIBBLE A > NIBBLE B.

ISIS-II 0000/1005 MACRO ASSEMBLER, V4.0 CAUR PAGE 10

LOC OBJ LINE SOURCE STATEMENT

120

034E 17 486

I34F E6F0 43?

351 4? 488

0352 3AS000 D 43?

03SS BO 4?0

03S6 325101 D 471

035? 3A5900 D 4?2

I3SC 17 473

035D 17 474

I3SE 17 475

03SF 17 474

0360 E6F0 477

0362 47 470

0363 3AS700 D 47?

0366 BO soo

0367 325900 D SOI

036A 3A5A00 D S02

036D 17 503

036E 17 504

036F 1? SOS

0370 17 S06

0371 E6F0 507

0373 4? SOO

0374 3A5A00 D S09

0377 80 510

0370 32SA00 D 511

037B C? 512

513

514

SIS

514

517

S18

51?

521

521

322

523

521

I37C CD6C02 C 525

037F 2100BI 524

1312 3ASI0I D 527

030S 77 528

0304 CDOOOO E 52?

138? 3AS700 D S30

038C 77 531

030D CDOOOO E 532

0370 3A5AO0 D 533

0373 77 531

0374 CDOOOO E 535

0377 C? 534

337

S30

S3?

RAL

AMI OFOH

MOV 1. A

LDA TDSTOI

ORA B

STA TDSTOI

LDA TDSTOR+1

RAL

RAL

RAL

RAL

Mil OFOR

NOV B, A

LDA TDSTOR+1

ORA B

STA TDSTOR+t

LDA TDSTOR+2

RAL

RAL

RAL

RAL

AMI OFOH

MOV B, A

LDA TDSTOR+2

ORA R

STA TDSTOR+2

RET

ttttttttttttttttttttttttttttttlMtttttttttttttttttitttttMlttttttttlttt

t DSEND *

DSEND SIMPLY SENDS THE 3 BYTE OF BCD DATA CONTAINED IN TDSTOR TO

THE 33-DIGTI DISPLAY. IT IS UP TO THE CALLING PROGRAM TO SET THE

DISPLAY RAH ADDRESS TO VHICH THE DATA IS TO BE WRITTEN AUTO

INCREMENT IS ALSO NOT ASSUMED.

tetttttttttiittttittt*ttttttttttttt*tttttttttttttttttittttttt<titt

DSEND: CALL CORECT

LU H, DATA2

LDA TDSTOR

HOV H, A

CALL DELAY

LDA TDSTOR+1

HOV H, A

CALL DELAY

LDA TDSTOR+2

HOV M, A

CALL DELAY

RET

DISPLAY MESSAGES FOLLOW:

ISIS-II 1010/8015 MACRO ASSEMBLER, VI. 0 CALIB PAGE 11

LOC OBJ LIKE SOURCE STATEMENT

121

0398 20 S10 EMIT: DB 20H SPACE

039? 05 311 EHITM: DB 05H E

039A ID 512 DB ODH H

I39B 09 513 DB 09H I

I39C 11 511 DB 11H T

I3?D It SIS DB 11H T

037E OS 514 DB OSH E

039F 12 517 DB 12H R

03AO 20 510 DB 2 OH SPACE

03A1 03 51? DB 03H C

03A2 01 SSO DB 01H A

03A3 0C SSI DB OCH I

I3A1 3F S52 DB 3FH ?

03AS 05 553 DHAI: DB OSH E

03A6 IE 5S1 DB OEH N

I3A7 11 5S5 DB 14H T

I3A0 OS S54 DB OSH E

03A? 12 557 DB 12H R

I3AA 20 SSI DB 20H BLANK

03AB 01 55? DB 04H D

I3AC 10 560 DB 2 OH BLANK

03AD OD S61 DB ODH H

03AE 01 562 DB 01H A

03AF 10 S63 DB 10H X

I3B0 20 561 DZEBO: DB 2 OH BLANK

03B1 12 56S DB 12H 1

03B2 OS 566 DB 05H E

03B3 01 567 DB 01H A

03B1 (1 561 DB 04H D

03B5 20 54? DB 2 OH BLANI

I3B6 1A 570 DB 1AH Z

03B? 03 571 DB OSH E

0381 12 572 DB 12H R

038? OF 573 DB OFH 0

03BA 12 S71 RDDEM: DB 12H R

03BB OS 575 DB OSH I

03BC 11 574 DB 01H A

I3BD 01 57? DB 04H D

03BE 20 571 DB 2 OH BLANK

03BF 01 57? DB 04H D

03C0 20 500 DB 20H ,BLANK

03C1 OD 511 DB ODH H

03C2 01 512 DB 01H A

03C3 10 513 DB 10H X

13C1 20 501 TEST: DB 20H BLANK

03C5 01 SOS DB 04H D

03C4 IS 514 DB OSH ; E

03C7 OE 507 DB OEH 1

03C0 20 SOI DB 20H BLANK

03C? 12 SI? DB 12H R

03CA OS S90 DB OSH E

03CB 01 591 DB 01H A

03CC 01 592

593 ;

DB 04H , D

ISIS-II 1080/8015 HACRO ASSEHBLER, V4.0 CALIB PACE 12

IOC OBJ

oooo

0001

1012

1004

0001

001A

00 IE

0022

1024

0026

0OS2

00S4

IOSS

I0S6

1051

I0SB

005C

OOSE

005F

0061

1064

0065

0O66

LINE

594

595 j

596 CLEARA:

597 CLEARS:

S?0 NXDRAM:

57? THPNUH:

600 FPR:

601 ADMAX:

602 TFLOAT:

603 HDOP:

604 HDHAXP:

60S SLOPE:

606 SLOPEP:

607 RAHPT:

400 SCNCNT

60? DSTART

610 TDSTOR

611 DSIGN:

612 DSCALE

613 OINGTH

614 DADDR:

615 DECHL:

616 FOS1:

617 POS2:

610 RPOS1:

61? ;

421

SOURCE STATEMINT122

DSEG

DS

DS

DS

DS

DS

DS

DS

DS

DS

DS

DS

DS

OS

DS

DS

DS

DS

DS

DS

DS

DS

DS

DS

END

01H

01H

02H

04H

12H

04H

04H

02H

02H

2CH

02H

01H

01H

02H

03H

01H

02H

01H

02H

03H

01H

018

01H

CLEAR CODE FOR ENTRY TO KDSPT2.

CLEAR CODE FOR EXIT FROH KDSFT2.

STORAGE LOCATION FOR NEXT DEN RAH POINTER.

TEHPOARY 32-BIT INTEGER STORAGE.

10 BYTE ALLOCATION FOR FLOATING POINT RECORD.

FLOATER ADMAX.

FLOATER TEMP. STORAGE.

MEASURED ZERO DENSITY POINTER.

MEASURED D-MAX ADDRESS POINTER.

44 RYTE RLOCK OF RAH FOR 11 SLOPE VALUES.

SLOPE ADDRESS POINTER STORAGE.

RAM POINTER USED IN FINDING DATA BLOCKS.

SCAN COUNTER USED IN SCAN SUB-ROUTINE.

ADDRESS STORAGE FOR USE BY DSHOV AND CORECT.

TEMPORARY STORACE FOR DISPLAY RESULTS.

CONTROL RLOCK USED RY FQFB2D.

; PARAMETERS USED IN KDSPY2 .

PUBLIC SYMBOLS

ALPHA A BFOO CLEARA D 0000 CLEARB D 0001 COHM1 A 1700 COMM2 A BI01 DATA1 A 1100 DATA2 A BIOO

DRAM A 1000 DSHOV C 01DC NXDRAM D 0002 PA1 A 0021 PR1 A 0022 PCI A 0023 POS1 D 1044

POS2 D 0065 RAMPT 0 0054 RPA1 A 0000 RFA2 A 0001 1PR2 A 0007 RPOS1 D 0044 SCAN C 011D

TDSTOR D 0050 THPNUM D 0004

EXTERNAL SYMBOLS

IEB E 0000 DELAY E 0000 DVRITE E 0000 FADD E 0000 FCLR E 0000 FDIV E 0000 FERHND E 1000

FLOAD E 0000 FLTDS E 0000 FMUL E 0000 FNEG E 0000 FQFB2D E 0000 FSET E 0000 FSTOR E 0000

FSUB I 0000 XDSPY2 E 0000 KDSPY3 E 0000 KSTOR1 E 0000 KSTOR2 E 0000 START E 0000 SUM2 E 0000

SUH3 E 0000

ISER SYMBOLS

ADMAX D 001A ALPHA A BFOO BUSY C 01B7 CALIB C 0000 CALSLP C 0107 CXGCNT C 01?F CLEARA D 0000

CLEARR D 0001 COHH1 A 1700 COHH2 A BI01 CORECT C 026C COVRTS C 012F CS1 A 0020 CS2 A 0021

OADDR D 005F DATA1 A 1000 DATA2 A BIOO DEB E 0001 DECHL D 0041 DELAY E 0000 DLNGTH D 005E

DHAI C 03A5 DOCOR C 02A4 DRAM A 0000 DSCALE D 0D5C DSEND C 037C DSHOV C 01DC DSIGN D OOSB

OSTART D 0056 DVRITE E 0000 DZERO C 03B0 ECAL C 0062 EMIT C 0370 EHITH C 03?? FADD E 0000

FCLR E 0000 FDIV E 0000 FERHND E 0000 FINCAL C 010A FIX C 00A5 FLOAD E 0000 FLOATS C 02IB

FLTDS E 0000 FHUL E 0000 FNEG E 0000 FPR D 0001 FQFS2D I 0000 FSET E 0000 FSTOR E 0000

FSUB E 0000 GDHAI C SOBO GZERO C OOF? INCREH C 032E INHI8A C 024A INHIBB C 020? INIT C OOAA

INKS C 016D ITNEG C 02DF KDSPY2 E 0000 KDSPY3 E 0000 KSTOR1 E 1000 KSTOR2 E 0000 LPl C 01B?

LP2 C 01AF HDOP D 0022 MOOT A 0017 HDHAXP D 0024 MDMAIT A 0001 NIBBLE C 0340 NX C 01E2

IXBRAH D 0002 NXSLOP C 0113 OVER C 01EF PA1 A 0021 PAX A 002? PB1 A 0022 FBI A I02A

PCI A 0023 PC2 A 002B POS1 D 0064 POS2 D 0065 RAHPT D 00S4 RDDA1 A 0002 RDDA2 A 000A

ISIS-II 1010/1085 MACRO ASSEHBLER, V4.0 CALIB PAGE 13

RDDB1

IPA2

SETIT

SUM2

A 0003

A 0000

C 0078

I 0000

RDDB2

RPB1

SHFT2

SUH3

A 00OB

A 0001

C 0314

E 0000

RDDEN

RPB2

SHFT3

TtHOB

C 03BA

A 000?

C 02FF

A 0025

RDHAX

RPOS1

SHFT4

T1LOB

C OODF

D 0064

C 02ED

A 0024

RESET

SCAN

SLOPE

T2HOR

01D7

018D

D 0024

A 002D

123

RESULT C 02B1

5CLTST C 02CS

SLOPEP D 0052

T2LOB A 002C

RFA1 A 0000

SCNCNT D 005S

START E

TDSTOR D

0010

0050

TEST C 03C4 TFLOAT D 001E THPNUH D 0004

ASSEMBLY COMPLETE, NO ERRORS

ISIS-II 1000/0005 HACRO ASSEHBLER, V4.0 START PACE

IOC OBJ LINE SOURCE STATEMENT124

0000 110000

0003 34DF

0005 34 A3

0007 21E700

IO0A 040D

000C CDA400

OOF CDOOOO

0012 3E10

0014 CDC3O0

0017 210C01

0O1A 0E12

001C OD

00 ID 3EO0

001F B?

020 CA2I0I

0023 7E

(024 CDC300

0027 23

0021 C31CO0

0028 3A00OO

0O2E C430

0030 CDC300

0033 3AO0O0

0034 C630

0030 CDC300

O03B 3E2F

003D CDC3O0

0040 210000

043 36E1

0045 CDDCOO

0040 21FS00

004B 060C

004D CDA400

0050 CDOOOO

0053 3AO0O0

tttttttttttittttttttttttttttttttttttttttttttitttttttttttttttttttttttt

Varm start tontine for In-process IR Densitometer.

Come here after calibration routine is complete.

The first part of this routine prompts for the process

date, then prints the date information on the 40 column

printer.

t*tttttttt*tttt<tttttttttttttttttttttttttttttt<ttltMttttttttttttttt

I

2

1

4

J

6

7

0

f

10

11

12 ;

13

14 ;

13

16 ,

17

10 ;

1? START:

20

21

22

23

24

15

26

27

21

2?

30 PMESS1

31

32

33

34

35

34

37

30 DONE:

3?

40

41

42

43

44

45

44

4?

41

4?

SO

SI

52

53

NAME START

PUBLIC DVRITE, PSEND, DELAY, START

EITRN COMM2 ,KDSPY2 .KSTOR2 .KSTOR1 .ALPHA, COHM1 .DATAIN, PA1 , PB1 , PCI

CSEG

LII

HVI

HVI

III

HVI

CALL

CALL

HVI

CALL

LII

HVI

OCR

HVI

CHP

JZ

MOV

CALL

INI

JMP

LDA

ADI

CALL

LDA

ADI

CALL

HVI

CALL

LII

HVI

CALL

LII

HVI

CALL

CALL

LDA

H,

H,

H,

H,

B,

DVRITE

KDSPY2

A,

PSEND

H,

C

C

A,

C

DONE

A,

PSEND

H

PKESS1

KSTOR2

30H

PSEND

KSTOR1

308

PSEND

A,

PSEND

H,

H,

DELAY

H,

B,

DVRITE

KDSPY2

KSTOR2

COMH2

0DF1

0A3H

MONTH

ODH

10H

DATE

12H

OOH

2FH

ALPHA

0E1H

DAT

OCH

CLEAR DENSITY DISPLAY.

SEND "ENTERMONTH:"

TO DISPLAY.

LOAD I OF CHARACTERS.

VRITE MESSAGE.

GET KEYBOARD ENTRIES.

CLEAR PRINTER CONTROLS.

SEND COMMAND TO PRINTER BUFFER.

DATE POINTS TO "PROCESSDATE:"

LOAD CHARACTER COUNTER.

DECREMENT CHARACTER COUNTER.

PREPARE TO TEST COUNTER.

IF CcO, ZERO FLAG VILL SET.

IF NO HOSE TO SEND, JUMP TO DONE.

PUT CHARACTER POINTED TO BY HI INTO A.

SEND IT TO PRINTER.

INCREMENT TEXT POINTER

SEND MONTH DATA TO PRINTER.

ADD 30 HEX TO GET ASCII CHARACTER.

SEND"

/"

TO PRINTER.

BLANK ALPHA DISPLAY.

PROMPT "ENTERDAY:"

LOAD CHARACTER COUNTER

VRITE TO DISPLAY.

GET 2 DIGIT KEY ENTRY.

ISIS-II 0000/1085 MACRO ASSEHBLER, V4.0 START PAGE 2

IOC OBJ

0054 C430

I0SI CDC300

00SB 3A00OO

(05E C43I

0040 CDC300

0043 3E2F

004S CDC300

0048 210000

004B 34E1

0O4D 210001

0070 040D

0072 CDA4O0

007S CDOOOO

1070 3AO0O0

007B C430

I07D CDC3O0

0000 3A00O0

0013 C430

00OS CDC300

Oil 210000

000B 34DC

OOOO 3E17

OOOF CDC300

0072 3E17

0074 CDC300

077 3E17

007? CDC300

007C 3E17

00?E CDC300

Oil C30000

LINE SOURCE STATEMENT

125

0OA4 ES

OOAS 210000 E

10 A! 34E1

OOAA CDDCOO C

OOAD 3400

OOAF CDDCOO C

0012 El

00B3 05

0OB4 3E00

I0B4 Bl

80 87 C8

OOBO 7E

OOB? 320000 E 1

OOBC 23

00 BD CDDCOO C 1

OOCO C3B300 C 1

ADI

CALL

LDA

ADI

CALL

HVI

CALL

LXI

HVI

LXI

HVI

CALL

CALL

LDA

ADI

CALL

LDA

ADI

CALL

FINISH: LXI

HVI

HVI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

JHP

3 OH

PSEND

KSTORt

30H

PSEND

A,

PSEND

H,

H,

DVRITE

KDSPY2

KSTOR2

3 OR

PSEND

KSTORl

30H

PSEND

H,

H,

A,

PSEND

A,

PSEND

A,

PSEND

A,

PSEND

DATAIN

2FH

ALPHA

0E1H

YEAR

ODH

GOHH1

ODCH

17H

17H

17H

17H

SUBROUTINES FOLLOV:

; SEND DAY INFO TO PRINTER

SEND"/

"TO PRINTER.

BLANK ALPHA DISPLAY.

PROMPT "ENTER YEAR:".

LOAD CHARACTER COUNTER.

VRITE TO DISPLAY.

GET 2 DIGIT YEAR ENTRY FROM KEYBOARD.

SEND YEAR DATA TO PRINTER.

LOAD CONTROL DISPLAY COMMAND ADDRESS.

BLANK THE CONTROL DISPLAY.

"

START TO PRINT"

COMMAND.

PRINT THE DATE HEADER.

SPACE NOV 3 BLANK LINES ON PRINTER.

; GO TO DATAIN WHICH CONTAINS DATA ENTRY

DVRITE: ; HL CONTAINS STARTING ADDRESS OF TEXT STRING TO BE SENT TO DISPLAY

; B REGISTER CONTAINS THE STRING LENGTH. ALPHA DISPLAY VILL ALVAYS

; BE SET TO BLANKS BEFORE MESSAGE IS VRITTEN.

I

STORE COPY OF HL ON STACK.

SET CURSOR POSITION TO 0.

RESTORE COPY OF HI REGISTERS

DECREMENT CHARACTER COUNTER.

PREPARE A FOR CHARACTER COUNT TEST.

IF BsO, ZEBO FLAC VILL SET.

IF BxO, THEN ALL DONE AND RETURN.

CR CHARACTER POINTED TO BY HL.

SEND IT TO ALPHA DISPLAY.

INCREMENT TEXT POINTER.

JHP AGAIN ; GO DO IT AGAIN ASSHOLE!

ACAIN:

PUSH H

LXI H, ALPHA

HVI H, 0E1H

CALL DELAY

HVI H, OOH

CALL DELAY

POP H

DCR B

HVI A, OOH

CHP 8

RZ

HOV A, H

STA ALPHA

IKI H

CALL DELAY

ISIS-II 3080/8085 MACRO ASSEMBLES, VI. 0 START PAGE 3

LOC OBJ

00 C3 S3 00

0OC5 3E01

0OC7 D300

0OC? 3E00

OOCB D300

OOCD 3E01

OOCF 0308

00D1 CDDCOO

0OD4 DBOO

00D6 OF

0OD7 OF

OODO DO

ODD? C3D400

OODC 1402

OODE 1EFF

OOEO ID

0E1 C2E0D0

0OE4 IS

0OE5 C2DEO0

OOEO C?

OOE? 05

OOEA OE

IOEB 14

OOEC 05

OOED 12

OOEE 20

OOEF OD

80F0 OF

0OF1 OE

0OF2 14

0OF3 08

80F4 3A

OOFS 20

I0F6 OS

0DF7 OE

OOFO 14

OOF? OS

OOFA 12

OOFB 10

LIME

100 ;

10? PSEND:

UO

111

112

113

114

113

116

11?

UO

119

120

121

122

123 PLOOI:

124

125

126

127

128 ;

12? ;

130 DELAY:

131

132

133

134 L00P2:

135 L0OP1:

136

137

130

13?

140 ;

141 ;

142 ;

143 MONTH:

144

145

144

147

140

14?

150

1S1

152

153

134

1SS DAY:

154

15?

ISO

15?

140

141

SOURCE STATEMENT

126

THIS ROUTINE IS USED TO SEND EITHER ONE BYTE OF DATA OR ONE

COMMAND TO THE 40 COLUMN LINE PRINTER. THE PRINTER BUSY STATUS

LINE IS POLLED AND A RETURN IS NOT HADE UNTIL A NOT BUSY STATUS

IS READ. THE RYTE TO RE SENT MUST BE PLACED IN THE A RECISTE1

BEFORE CALLING PSEND. ( PRINTSEND ).

OUT

HVI

OUT

HVI

OUT

HVI

OUT

CALL

IN

RRC

RRC

RNC

JHP

LOV PA1

A,

LOV PB1

1.

LOV FBI

A,

LOV PB1

DELAY

LOV PCI

PLOOK

; PUT A ONTO PRINTER DATA LINES.

01H ; BRING VR LIKE HI.

OOH ; RRINC VR LINE LOV.

01H ; BRING VR LINE HI AGAIN.

; BRING IN PRINTER STATUS LINE.

ROTATE BUSY BIT INTO CARRY POSITION.

IF NOT BUSY, NO CARRY AND RETURN.

OTHERWISE, KEEP LOOKING!

DELAY IS CALLED VHENEVER AN EXTERNAL DEVICE SUCH AS THE HTX-A1,

OR THE PRINTER REQUIRES EICESS TIHE TO SET ITSELF UP.

HVI

HVI

DCR

JNZ

DCR

JNZ

RET

D,

E,

E

LOOP1

D

LOOP2

02H

OFFH

DISPLAY MESSAGES FOLLOW:

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

05H

OEH

14H

OSH

12H

2 OH

ODH

OFH

OEH

14H

OOH

3AH

2 OH

05H

OEH

14H

OSH

12H

20H

BLANI

H

0

N

T

H

BLANK

E

N

T

E

R

BLANK

ISIS-II 3000/808S MACRO ASSEMBLER, VI. 0 START PAGE

IOC OBJ LINE SOURCE STATEMENT

127

OOFC 04 142 DB OOH i D

OOFD 01 163 DB 01H ; A

OOFE 19 164 DB 1?H ; Y

OOFF 3A 165 DB 3AH

0100 20 166 TEAR: DB 2 OH ; BLANI

0101 OS 167 DB OSH ; E

0102 OE 160 DB OEH ; N

0103 14 16? DB 14H ; T

0104 OS 170 DB OSH , E

0105 12 171 DB 12H ; R

0106 20 172 DB 2 OH BLANI

0107 19 173 DB 1?H , Y

0108 05 174 DB OSH E

0109 01 175 DB 01H A

010A 12 176 DB 12H R

010B 3A 177 DB 3AH

010C 00 170 DATE: DB OOH BLANI

010D 00 17? DB OOH BLANK

010E 00 180 DB OOH BLANK

010F SO 101 DB SOH P

0110 72 102 DB 72H R

0111 6F 103 DB 6FH 0

0112 63 104 DB 63H C

0113 63 105 DB 63H E

0114 73 106 DB 73H ; S

011S 73 187 DB 73H ; S

0116 00 188 DB OOH ; BLANK

0117 44 18? DB 44H ; D

0118 61 170 DB 61H ; A

OU? 74 1?1 DB 74H ; T

011A 45 172 DB 6SH ; E

1 IB 3A 1?3 DB 3AH ;

one 00 174

1?S ;

174

DB

END

OOH ; BLANI

PUBLIC SYMBOLS

BELAY C OODC DVRITE C 00A4 PSEND C 00C3 START C 0000

EXTERNAL SYMBOLS

ALPHA E OOOO COMK1 E oooo COMH2 E 0000 DATAIN E 0000 KDSPY2 E 0000 ESTOR1 E 0000 KSTOR2 E 0000

PA1 E 0000 PB1 E oooo PCI E 0000

ISER SYMBOLS

AGAIN C O0B3 ALPHA E oooo COKH1 E 0000 COHH2 E 0000 DATAIN E 0000 DATE C 010C DAY C 00F5

DELAY C OODC DONE C 0028 DVRITE C 00A4 FINISH C 0088 XDSPY2 E 0000 KSTOR1 E 0000 KSTOR2 E 0010

IOOP1 C OOEO IOOP2 C OODE MONTH C 00E7 PA1 E 0000 PR1 E 0000 PCI E 0000 PLOOK C 00D4

PHESS1 C 001C PSEND C 0OC3 START C 0000 YEAR C 0100

ASSEMBLY COHPLETE, NO ERRORS

ISIS-II 3080/8005 MACRO ASSEHBLER, V4 .0 DATAIN PAGE 1

LOC OBJ LIKE SOURCE STATEMENT 128

0000 3EFD

0002 D300

0004 AF

0005 320000

0000 320200

000B 210700

ODOE 23

000F 77

0010 23

0011 77

0O12 23

0013 77

0014 210300

0017 23

0010 77

001? 23

0O1A 77

I01B 23

01C 7?

001D 322A00

0020 210703

0023 060D

0025 CDOOOO

0028 CDOOOO

002B 3A00O0

002E FEOO

0030 CAS300

0033 3EFE

00 35 03 00

0037 217303

003A 0E22

I03C CDOOOO

ttttttttttttttttttttttttttttttttttttttttttttttttMMttttttttttttttttttI

2

3

4

S

6

7

0

7

10

11

12

13

14

15

16

17

10

1?

10

21 ;

22 DATAIN: HVI

THIS PROGRAM INTERACTS WITH THE IR DENSITOMETER USER TO

ALLOV FOR THE ENTRY OF THE THREE PROCESS TIME IEHGTHS.

ALSO TO BE ENTERED VITH THIS PROGRAM ARE THE INTERVAL-

RATE COMBINATIONS USED IN THE DENSITY SCAN MEASURMENTS.

USER INFORMATION VILL BE PRINTED ON THE LINE PRINTER AS

IT IS ENTERED.

ttttttttttttttttttttttttttetttttttetttettttttttttttetttttttttttttettttt

NAME DATAIN

PUBLIC DATAIN, LDELAT.RINASC, DEE, IRCNT.PLBYTE

PUBLIC IRBRAM,STABCT,HAKFLG,KANHOD

EITRN ALPHA , DELAY , PSEND , PVRITE , DVRITE , KDSPY2 , KDSPY3

EITRN SUH2,SUH3,DEVNUH,PNTNUH,RPA2,GODEY

23

24

25

26

27

20

2?

30

31

32

33

34

35

36

37

38

3?

40

41

42

43

44

45

46

47

40

4?

SO

51

52

S3

CSEG

OUT

IRA

STA

STA

LXI

INX

HOV

INX

MOV

INI

HOV

LII

INX

HOV

INI

HOV

INI

HOV

STA

LII

HVI

CALL

A, OFDH

LOV RPA2

A

DEB

STAB

H,

H

H,

H

H,

H

H,

H,

R

H,

B

H,

IRCNT

A

A

A

PLRYTE

A

A

A

I RESET FTS TO AUTO HODE.

ZERO A REC.

ZERO DEB (DATA ENTRY BYTE).

ZERO SCAN TABULATION BYTE.

ZERO I/R COUNT.

ZERO PROCESS LENGTH BYTES.

H,

HANFLG

H, HANHOD

B, ODH

DVRITE

CALL KDSPY2

LDA SUH2

CPI

JZ

HVI

OUT

LII

HVI

CALL

OOH

FRONT

A, OFEH

LOV RPA2

H, PNTHAN

C, 22H

PVRITE

HANFLAC . OOH MEANS AUTO HODE.

PROMPT "MANUALHODE?"

LOAD TEIT COUNTER.

TO ALPHA DISPLAY.

SUH2 * 0 MEANS AUTO, ANYTHING ELSE > MANUAL.

IF NOT MANUAL, GO VITH NORMAL ENTRY ROUTINE

ENABLE FTS CONTROL FOR MANUAL SELECT.

PRINT 'MANUAL MODESELECTED."

LOAD HIT COUNTER.

VRITE TO PRINTER.

ISIS-II 0000/0005 MACRO ASSEHBLER, V4.0 DATAIN PAGE 2

LOG OBJ LINE SOURCE STATEHENT129

0O3F 3E17 54 HVI A, 17H

0041 CDOOOO E 55 CALL PSEND

0044 3E17 56 HVI A, 17H

0046 CDOOOO E 57 CALL PSEND

004? 3E17 SO HVI A, 17H

004B CDOOOO E 5? CALL PSEND

00 4E 3EFF 60 HVI A, OFFH

0050 322A00 D 61 STA HANFLC

0053 AF 62 FRONT: IRA A

0054 320100 D 63 STA ITAB

1057 3A0000 D 64 LDA DEB

OOSA E60F 65 ANI OFH

OOSC 47 66 MOV B, A

005D 212B00 D 67 HI H, STABCT

0060 OS 60 ADD L

0061 6F 6? MOV I, A

0062 3AO2O0 D 70 LDA STAB

006S 77 71 MOV H, A

0066 78 72 HOV A, 8

0067 C601 73 ADI 01H

006? 320000 D 74 STA DEB

006C FE04 75 CPI OOH

004E CAOOOO E 76 JZ GODEV

0071 CDOOOO E 77 CALL DEVNUM

0074 CDOOOO E 70 ONT: CALL KDSPY3

0077 3A00O0 E 7? LDA SUMS

007A FE7F 00 CPI 7FH

007C DAOAOO C 01 JC PASS

00 7F 3ECB 02 HVI A, OCBH

0001 320000 E 03 STA ALPHA

0004 CDOOOO E 04 CALL DELAY

0007 C37400 C OS JHP OMT

ODOA 210300 D 06 PASS: LU H, PLBYTE

OOOD 3A000Q D 07 LDA DEB

0O9O E60F 88 ANI OFH

0092 03 0? ADD L

1093 6F 90 HOV I, A

0094 3AO0O0 E 91 LDA SUH3

097 77 92 HOV H, A

0070 CDOOOO E 93 CALL PNTNUH

0078 3AO0O0 E 94 LDA SUH3

0D7E FEOO 93 CPI OOH

OOAO CAE001 C 96

77

JZ NEXT

00A3 3A0200 D 90 RATE IN LDA STAB

0OA6 FEBA 99 CPI OBAH

OOAO CAA2D1 C 100 JZ SCNOUT

OOAB 3A00O0 D 101 IDA DEB

OOAE C610 102 ADI 10H

0080 320000 D 103 STA DEB

00B3 E6F0 104 AMI OFOH

OOBS FEAO 10S CPI OAOH

DOB? CAE001 C 106 JZ KBIT

OOBA EDE702 C 107 CALL 1RVKUH

; PRINT BUFFER CONTENTS.

; SPACE TVO LINES.

SET HANFLC < FFH TO MEAN MANUAL HODE SELECTED

ZERO A REG AGAIN.

ITAB MUST BE ZEROED EVERY PASS THRU I/R IN.

I/R COUNTER MUST BE RESET TO 0.

STOBE COPY OF A REG.

FORM SUCESSIVE SCAN TABS, DEPENDING OH

NUMBER OF PROCESSES DESIRED.

RETREIVE A.

INCREMENT LO-ORDER NIBBLE OF DEB.

UP-DATE DEB.

TEST TO SEE IF PROCESS ENTRY IS DONE.

IF ZERO SETS, JUMP TO START PROCESS ROUTINE.

PROMPT "PROCESS tlO-DEB] 7".

CET THREE DIGIT PROCESS ENTRY.

TEST FOR ALLOWABLE PBOCESS LENGTH.

127 MINUTES IS MAI. LENGTH FOR PROCESS.

IF CY SETS, THEN SUM3 < 7FH.

COKE HERE IF GREATER, AND SET ERROR HODE.

START ALPHA DISPLAY BLINKING.

GO AND GET ANOTHER PROCESS ENTRY.

LOAD HL VITH STARTING PLB ADDRESS.

CET LO-ORDER PORTION OF DATA ENTRY BYTE

MASK OUT HI-ORDER NIBBLE.

ADD LOB OF PLBYTE TO PBOCESS ENTRY COUNT.

PLACE RESULT INTO I REG.

GET ENTERED PROCESS LENGTH FROM STORAGE.

STORE VALUE IN PLBYTE (1,2, 3) .

PRINT "PROCESS [LO-DEB] > IKSTOR1 ,2 , 3)KIN"

TEST TO SEE IF ENTERED PROCESS LENGTH * 0.

IF SUM3*0, NO NEED TO GO TO INTERVAL ENTRY.

SO RETURN FOR NEIT PROCESS ENTRY.

COHPARE CURRENT STAB TO MAI SCAN 0.

IF STAB > MAX 0, THEN PROMPT "OUT OF SCANS!

GET DATA ENTRY BYTE (DEB)

INCREMENT HI-ORDER NIBBLE! INTERVAL /RATE )

STORE UPDATED VERSION OF DER.

MASK OUT LO-ORDER NIRBLE.

ALLOW ONLY 10 INTERVAL /RATI INTER I ES.

IF 10 I/R REACHED, GO TO NEXT PROCESS ENTRY

PROKPT "INTERVAL IHI-DEB1 * ".

ISIS-II 8000/0003 HACRO ASSEHBLER, V4.0 DATAIN PAGE

IOC OBJ LINE SOURCE STATEHENT

00BD CDOOOO E 1 18 OMTA. CALL KDSPT2

OOCO 3AO0O0 E 1 )? LDA SUH2

00C3 FEOO 10 CPI OOH

0OC5 CAE001 C 1 il JZ NEXT

00C8 CDD301 C 1 12 CALL RAMCNT

OOCB 3A00OO D 1 13 LDA DEB

OOCE E6F0 14 ANI OFOH

0OD0 OF IS RRC

00D1 OF 16 RRC

0OD2 OF 17 RRC

0OD3 30 10 ADD B

0OD4 210B00 D 1 1? LII H, IRBRAI

0OD7 IS 10 ADD L

00D1 6F 11 HOV L, A

OOD? 3A0OOO E 1 12 LDA SUM2

OODC 77 23 HOV H, A

OODD 3A0100 D 1 14 LDA ITAB

OOEO 06 IS ADD H

00E1 320100 D 1 16 STA ITAB

OOEO 47 27 HOV B, A

00E5 3A0000 E 1 tO LDA SUH3

OOEO 11 1? CHP B

OOE? DA0501 10 JC EDBLNX

OOEC C21B01 11 JNZ LESS

OOEF 3EE1 32 HVI A, DE1H

OOFl 320000 33 STA ALPHA

00F4 CDOOOO 34 CALL DELAY

0OF7 21FE01 35 III H, PFULL

OOFA 060D 16 HVI B, ODH

OOFC CDOOOO 37 CALL DVRITE

OOFF CD7403 10 CALL LDELAY

0102 C31B01 3? JHP LESS

0105 3A0O00 (0 EDSLNK: LDA BUH2

0100 4? 11 HOV B, A

010? 3A0100 D 1 12 IDA ITAB

010C ?0 13 SUB 8

010D 320100 D 1 14 STA ITAB

0110 3ECB IS HVI A, OCBH

0112 320000 E 1 16 STA ALPHA

0115 CDOOOO E 1 17 CALL DELAY

OHO C3BD00 C 1 10 JHP OMTA

01 IB CD3B03 C 1 1? LESS: CALL RATNUM

01 IE CDOOOO E 1!10 OHTYA: CALL KDSPY2

0121 3AO0DO t 1!il LDA SUH2

0124 FEOO 12 CPI OOH

0126 CA3001 C 1!>3 JZ INVLID

012? 47 14 MOV B, A

012A 3E3C IS HVI A, 3CH

012C BO 16 CHP B

012D D23B01 C 1!17 JNC PASSA

1130 3ECB 0 INVLID: HVI A, OCBH

0132 320000 E 1! ? STA ALPHA

1135 CDOOOO E 11 0 CALL DELAT

0130 C31E01 C U 1 JMP OMTTA

130

GET TWO DIGIT INTERVAL ENTRY.

TEST VALUE OF SUH2 .

IS IT > TO 0<

IF ZERO, TEST FOR MANUAL MODE.

GET 2 (SUM OF IRCNTS)

IRBRAH > INTRVAL RATE BYTE RAH.

MASK TO GET HI-ORDER NIBBLE ONLY.

ROTATE 3 TIKES TO GET IT INTO LON POSITION.

; A NOV =2 [HI -DEB] + 2 (SUN OF IRCNTS).

HL > 2CHI-DEB1 + 2(SUM OF IRCNTS) + IRBRAM

SUM2 LAST INTERVAL ENTRY.

STORE IT AT HL POINTER.

LOAD A VITH VITH RUNNING INTERVAL SUM, ITAB.

A < SUH2 + ITAB

UPDATE ITAB.

STORE COPY OF ITAB IN B REG.

SUH3 SHOULD STILL CONTAIN PLBCLO-DEBl.

A=SUM3 COMPARED TO Br ITAB.

IF CY=1, A<8, SUM3UTAB, ERROR.

IF NO CY AND NO ZERO, ITABtPROCESS LENGTH.

IF COME HERE, THEN ITAB=SUM3

CLEAR ALPHA DISPLAY.

HL POINTS TO PROCESS FULL MESSAGE

LOAD CHARACTER COUNTER.

VRITE TO ALPHA DISPLAY.

PAUSE FOR 5 SEC.

GO TO RATE ENTRY ROUTINE.

LAST INTERVAL ENTRY TO BE SUBTRACTED

FROM ITAB, THEN ITAB UPDATED.

; CAUSE ALPHA DISPLAY TO BUNK.

GO AND GET ANOTHER INTERVAL ENTRY.

PROMPT "RATE tHI-DEBl?"

GET 2-DIGIT RATE ENTRY.

PUT RATE ENTRY INTO A REG.

RATE ENTRIES OF 00 ARE NOT ALLOWED

STORE COPY IN B REG.

LOAD A VITH MAI RATE (60 SCANS/KIN).

A.MAX. RATE CHP TO BANTERED RATE.

IF CT SETS, RATE)MAX. SO BLINK DISPLAY.

LOAD BLINK CODE.

; GO AND GET ANOTHER RATE ENTRY

ISIS-II 0080/0005 MACRO ASSEHBLER, V4.0 DATAIN PAGE 4

IOC OBJ LINE SOURCE STATEMENT

131

013B CDD301 C

013E 3A00O0 D

0141 E6FD

0143 OF

0144 OF

0145 OF

0146 00

0147 D601

014? 210B00 D

014C IS

014D 6F

014E 3A0OO0 E

0151 77

0152 IF

0153 57

0154 SF

01SS 7E

01S6 23

015? FEOO

015? CA6401 C

015C 44

01SD 13

01SE OS

01SF C25D01 C

0142 3D

0163 C2SC01 C

0166 3A0200 D

016? FEOO

016B CA7301 C

016E 13

016F 3D

0170 C26E01 C

0173 BA

0174 C2B201 C

0177 43

0170 3EBA

017A 88

017B CA7301 C

017E DAB201 c

0101 78

0182 320200 D

0105 CD2202 C

0100 3A0200 D

HOB FEBA

010D BAA300 C

0170 C3E001 C

PASSA:

HERE:

KORE:

PASS2:

SHORE:

PASS3 :

CALL RAMCNT

LDA DEB

ANI OFOH

RRC

RRC

RRC

ADD 1

SUI 01H

LII H,

ADD I

HOV L,

LDA SUH2

IRBRAI

MOV M,

MASK OUT LO-ORDER KIBBLE.

ROTATE 3 TIKES TO GET INTO LON POSITION.

SUBTRACT ONE TO GET ONE BELOW ILB.

ADD 2 (SUM OF IRCNTS) - 1 + IRBRAH +2 [HI -DEB 1

HL * IRBRAH - 1 + 2 CHI-DEB] +2 (SUN OF IRCNTS)

SUH2 IS SPBCHI-DEBJ.

STORE SUH2 (RATE) AT THIS HL LOCATION.

HOV CALCULATE PRODUCT OF ILRCH1-DEB1 I SPBCHI-DEB1. THAT IS,

INTERVAL LENGTH TIKES SCAN RATE EQUALS TOTAL SCANS GENERATED.

IRA

HOV

HOV

HOV

INI

CPI

JZ

HOV

IHI

DCR

JNZ

DCR

JNZ

LDA

CPI

JZ

IKI

DCR

JNZ

A

D,

E,

A,

H

OOH

PASS2

B,

D

0

HORE

A

HERE

STAB

OOH

PASS3

D

A

SHOBE

; ZEBO A REG.

ZERO DE REC. PAIR

A - SFS ( LAST RATE ENTRY ).

HL NOV POINTS TO ILB ( LAST INTERVAL ENTRY )

IF SCAN RATE ENTRY * 0, JHP TO SHME.

; B * ILB.

; DE IS HULTI. COUNTER.

; DE GETS INCREMENTED BY ILB.

; DE GETS INCREMENTED BY ILB, SFB TIMES

; IF SCAN TABULATION * OOH, JUMP OVER SHORE

; DE GETS INCREMENTED STAB TIMES.

DE NOV EQUALS THE 0 OF SCANS THAT VOULD BE GENERATED V/RATE ENTERED

CHP

JNZ

HOV

HVI

CHP

JZ

JC

HOV

STA

D

RATBIC

I.

A,

E

IBAH

NOHOBE

RATBIC

A, B

STA1

PRINT: CALL PNTIR

LDA

CPI

JC

JHP

STAB

IBAH

RATEIH

HEIT

; A*0. IF D)0, THEN RATE ENTRY TOO RIG.

; E CONTAINS 1 BYTE SCAN TABULATION.

; MAI SCANS AVAILABLE > 116.

IF =, PROMPT "OUT OF SCANS", UPDATE STAB.

IF CY SETS, RATE TOO BIG.

A > SCAN TABULATION.

COME HEBE IF LESS THAN HAIIHUH.

AND PRINT INTERVAL /RATE INFO OK PRINTER

TEST TO SEE IF VE HAVE SCANS REMAINING

COMPARE STAB TO MAI. NUMBER

CY VILL SET IF SCANS REHAINING.

IF NONE LEFT, GO TO NEIT PROCESS ENTRY

ISIS-II 1010/1015 MACRO ASSEHBLER, V4.I DATAIN PAGE S

LOC OBJ

0193 7B

0194 320200

0197 CD2202

019A 3A0000

019D C610

019F 320000

01A2 IS

01A3 210AO2

01A6 060D

01 AO CDOOOO

01AB El

01AC CD7403

01AF C3E001

0112 211602

01B5 060D

01B7 CDOOOO

01BA CD7403

01BD 3ECB

01BF 320000

01C2 CDOOOO

01C5 C31E01

01C0 3A2AO0

01CB FEFF

01CD CAOOOO

01DO C3S300

01D3 AF

01D4 210700

01D7 23

01D8 06

01D? 23

01DA 06

01DB 23

IDC 06

HDD 07

01DE 4?

01DF C?

01E0 3AOOO0

01E3 E60F

01E5 210700

01E1 IS

HE? 6F

01EA 3A0000

01ID E6F0

01EF OF

01 FO OF

LIKE

216

217

210

21?

220

221

222

223

224

225

226

227

220

22?

230

231

232

233

234

235

236

237

230

23?

240

241

142

243

144

245

144

147

240

24?

250

251

252

2S3

254

2SS

254

257

250

25?

160

241

242

243

244

245

244

247

240

26?

SOURCE STATEMENT

132

KOHORE: HOV

STA

CALL

LDA

ADI

STA

SCHOUT: PUSH

LII

HVI

CALL

POP

CALL

JHP

RATBIC: LII

HVI

CALL

CALL

HVI

STA

CALL

JHP

MAKTST: LDA

CPI

JZ

JHP

A,

STA1

PHTIR

DEB

10H

DEB

H

H,

B,

DVRITE

B

LDELAY

NEXT

H,

B,

DVRITE

LDELAY

A,

ALPHA

DELAY

OMTYA

HANFLC

OFFK

GODEV

FRONT

OUTINT

ODH

TOOBIG

ODH

OCBH

; PUT SCAN TABULATION INTO A REG.

; PRINT I/B INFO.

; INCREMENT [HI -DEB]

; UPDATE DEI

START ADDRESS OF "OUT OFSCANS"

LOAD TEXT COUNTER.

VRITE TO DISPLAY.

PAUSE FOR 5 SECONDS.

CO STORE IRCNTS THEN GO TO NEXT PROCESS.

START ADDRESS OF "RATE TOO BIC".

LOAD TEXT COUNTER.

; PAUSE FOR "5 SEC.

i LOAD RLINK CODE.

; GO AND GET ANOTHER RATE ENTRY.

; TEST TO SEE IF IN MANUAL HODE.

; RECALL HAKFLG*FFH MEANS MANUAL HODE.

; SKIP MANUAL HODE TEST FOR NOV.

ttttttttttttttttttttttttetttttttttttttttttttttttttttttttttittttttttttttt

THIS SUBROUTINE TAKES IRBRAH ADDRESS AND DOES THIS:

IRBRAH POINTER > 2(SUH OT IRCNTS) RETURNED IN R REG.

tttt*ttttttttttttt**tttMtttttttttttttttttttttttttttltttt*

RAMCNT: XRA

LXI

IKI

ADD

INI

ADD

IKI

ADD

RLC

HOV

RET

A

H,

H

H

R

H

R

H

IRCNT

ZERO A REC.

ADD PROCESS 1 I/R COUNT TO A.

ADD PROCESS 2 I/R COUNT TO A.

ADD PROCESS 3 I/R COUNT TO A.

MULTIPLY SUM OF I/R COUNTS BY 2.

NEZT: LDA

ANI

LII

ADD

MOV

LDA

ANI

RRC

RRC

DEI

OFH i GET PROCESS COUNT.

H, IRCNT ; START ADDRESS OF I/R COUNT STORAGE.

L

L, A ; HI NOV POINTS TO IRCNT [LO-DEB1.

DEI

OFOH ; GET I/R COUNT.

ISIS-II 1000/0005 MACRO ASSEMBLER, V4.0 DATAIN PAGE 4

IOC OBJ

01F1 OF

01F2 OF

01F3 FEOO

01F5 CAFAOl

01F1 D401

01FA 7?

01FB C3C001

01FE 10

HFF 12

0200 OF

0201 03

0202 OS

0203 13

0204 13

0205 20

0204 04

0207 IS

0200 OC

020? OC

020A OF

I20B 15

020C 14

020D 20

020E OF

020F 04

0210 20

0211 13

0212 03

0213 01

0214 OE

0215 13

0214 12

0217 01

0211 14

121? OS

021A 20

021B 14

021C OF

021D OF

021E 20

021F 02

0220 0?

0221 07

LIKE

270

271

272

273

274

275

274

177

170

27?

200

201

202

203

204

205

204

207

211

219

290

291

292

293

294

295

294

297

290

299

300

301

302

303

304

305

304

307

300

30?

310

311

312

313

314

315

114

317

310

31?

320

121

322

323

SOURCE STATEMENT

133

STORE:

RRC

RSC

CPI OOH

JZ STORE

SUI 018

HOV H,

JHP KANTST

i STORE I/R COUNT VHER HL POINTS.

MESSAGE TAELES FOLLOV.

PFULL: DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

OUT INT: DB

DB

DB

DB

DB

DB

OB

DB

DB

DB

DB

DB

TOOBIC: DB

D8

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

10H

12H

OFH

OSH

OSH

13H

13H

2 OH

04H

1SH

OCH

OCH

OFH

1SH

14H

2 OH

OFH

04H

20H

13H

OSH

01H

OEH

13H

12H

01H

14H

05H

20H

14H

OFH

OFH

2 OH

02H

0?H

07H

P

R

0

C

E

S

S

SPACE

F

U

L

I

0

U

T

SPACE

0

F

SPACE

S

c

A

N

S

R

A

T

E

SPACE

T

0

0

SPACE

B

I

C

SUBROUTINES FOLLOV:

ttt*itttttititittiititttitittttttititttttititttttttitttitiitttt

THIS ROUTINE TAKES THE CURRENT CONTENTS OF THE HI -ORDER NIBBLE

OF DEB (INTERVAL /RATE COUNTER) AND PRINTS IT ON THE LINE PRINTER

IN THE FOLLOWING FORMAT:

ISIS-II 0010/1015 HACRO ASSEHBLER, V4.0 DATAIN PACE 7

IOC OBJ

0222 E5

0223 UBA02

0224 OE0E

0220 CDOOOO

022B 3A00O0

022E E4F0

0230 OF

0231 OF

0232 OF

0233 OF

0234 CD2203

0237 7A

0231 CDOOOO

023B 7?

I23C CDOOOO

023F 3E20

0241 CDOOOO

0244 3E3D

0244 CDOOOO

024? 3E20

024B CDOOOO

024E El

024F 7E

0250 ES

02S1 CD2203

0254 7A

02SS CDOOOO

0250 7?

025? CDOOOO

025C 21C402

02SF OEOA

0241 CDOOOO

0244 3E17

0244 CDOOOO

024? 11CE02

024C OEOE

024E CDOOOO

1271 3A0OO0

0274 I4F0

0274 OF

0277 OF

0270 OF

LINE

324

325

324

327

328

32?

330

331

332

333

334

335

334

337

330

33?

340

341

342

343

344

345

344

347

340

34?

350

351

352

353

354

355

354

357

351

35?

340

341

342

343

344

345

344

367

360

34?

370

371

372

373

374

37S

374

377

SOURCE STATEMENT

"

INTERVAL [HI-DEB] . ILB CHI-DEB] MINUTES*

RATE CHI-DEB1 > SPB CHI-DEB] SCANS/MINUTE"

VHEN CALLED, IT IS ASSUMED THAT HL IS POINTING TO ILB CHI-DEB].

tttttttttttttttttttttitttttttttttttttttttttttttttttttttttttttttitttttttt

134

PNTIR: PUSH H

HI H,

HVI C,

CALL PVRITE

LDA DEB

ANI OFOH

RRC

RRC

RRC

RRC

CALL B1KASC

HOV A,

CALL PSEND

HOV A,

CALL PSEKD

HVI A,

CALL PSEKD

HVI A,

CALL PSEND

HVI A,

CALL PSEND

POP H

D1TAB

OEH

D

C

2 OH

SDH

20H

HOV

PUSH

A,

H

CALL BINASC

HOV

CALL

HOV

CALL

LII

HVI

CALL

HVI

CALL

A, D

PSEND

A. C

PSEND

H, HINUTE

C, OAH

PVRITE

A, 17H

PSEND

SAVE COPY OF HL AS DESTROYED IN CALLS.

START ADDRESS OF "INTERVAL".

LOAD TEIT COUNTER.

KASK OUT LOV-ORDER KIBBLE.

ROTATE HON TO ION.

CONVERT I/R COUNTER TO 2 ASCII CHARACTERS.

PUT 10 'S PLACE INTO A REG.

PUT l'S PLACE INTO A REG.

SEND A SPACE

SEND"

TO PRINTER.

SEND ANOTHER SPACE.

RETRIVE COPY OF RL.

HI STILL POINTS TO ILBIHI-DEB1.

SAVE COPY AGAIN.

CONVERT INTERVAL LENGTH TO ASCII.

CET ID'S.

GET rs.

LOAD START ADDRESS OF'MINUTES"

.

LOAD TEXT COUNTER.

NOV PRINT PRINTER BUFFER CONTENTS.

NOV PRINT RATE INFORMATION

LXI

HVI

CALL

LDA

ANI

RRC

RRC

RRC

H, D2TAH ; START ADDRESS OF "RATE".

C, OEH ; LOAD TEXT COUNTER.

PVRITE

DEI

OFOH ; KASK OUT LO-ORDER KIBBLE.

ISIS-II 1080/3035 MACRO ASSEHBLER, 14.0 DATAIN FACE 0

LOC OBJ LIKE SOURCE STATEMENT

135

027? OF 370 RRC

027A CD2203 C 37? CALL BIKASC ; CONVERT I/R COUNT TO ASCII.

027D 7A 300 NOV A, D ; GET ID'S.

027E CDOOOO E 301 CALL PSEND

0201 7? 302 MOV A. C ; GET l'S.

0202 CDOOOO E 303 CALL PSEND

0205 3E20 304 HVI A, 20H ; SEND SPACE.

020? CDOOOO E 385 CALL PSEND

028A 3E3D 384 HVI A, 3DH ; SEHD""

TO PRINTER.

020C CDOOOO E 387 CALL PSEND

020F 3E20 338 HVI A, 20H ; SEHD ANOTHER SPACE.

0271 CDOOOO E 38? CALL PSEND

0274 El 370 POP R

0275 2B 3?1 DC! H ; INCREMENT HJ TO SPBCHI-DEBI

0274 7E 372 MOV A, 14 ; GET SPB.

0277 CD2203 C 393 CALL BINASC ; CONVERT TO ASCII.

027A ?A 374 HOV A, 0

0278 CDOOOO E 375 CALL PSEND

027E 7? 374 MOV A, C

02?F CDOOOO E 3?7 CALL PSEND

02A2 21DA02 C 370 LII H, 5CNMIN , START ADDRESS OF "SCAN/MINIT

02AS OEOE 399 HVI C, IEH i LOAD TEIT COUNTER.

02A7 CDOOOO E 400 CALL PVRITE

02AA 3E17 401 HVI A, 17H ; PRINT PRINTER BUFFEB CONTEN

02AC CDOOOO E 402 CALL PSEND

02AF 3E17 403 HVI A, 17H ; SPACE ONE BLANK LINE.

02B1 CDOOOO E 404 CALL PSEND

0284 3E17 40S HVI A, 17H , SPACE ONE BLANK LINE.

02B4 CDOOOO E 404 CALL PSEND

02B? C? 407

408 ;

RET , RETURN TO CALLING PROGRAM.

409 ; MESSAGE TABLES FOLLOV:

410 ;

02BA 20 411 D1TAB: DB 20H SPACE

02BB 20 412 DB 2 OH SPACE

02BC 20 413 DB 2 OH SPACE

02BD 4? 414 DB 4?H I

02BE 4E 415 DB 4EH N

12BF 74 414 DB 74H T

02C0 45 41? DB 45H E

02C1 72 410 DB 72H R

02C2 74 41? DB 74H V

02C3 41 420 DB 41H A

02C4 4C 421 DB 4CH L

02C5 20 422 DB 2 OH SPACE

02C4 20 423 MINUTE DB 2 OH SPACE

02C7 4D 424 DB 4DH H

02C8 4? 425 DB 49H I

02C? 6E 424 DB 6EH N

02CA 75 427 DB 7SH U

02CB 74 420 DB 74H T

02CC 65 42? DB 6SH E

02CD 73 430 DB 73H S

02CE 20 431 D2TAB: DB 20H SPACE

ISIS-II

LOC 0!

02CF 2

02D0

02D1

02D2

02D3

02D4 2

02D5 5

02D6 6

02D7 7

02D0 6

02D? 2

02DA 1

02DB 7

02DC 6

02DD 6

02DE 6

02DF 7

02E0 2

2E1 6D

02E2

02E3

214

02E5

02 E6

000/008S MACRO ASSEHBLER, V4.0 DATAIK PAGE ?

I2E7 3EE1

2E? 320000

02EC CDOOOO

02EF 211703

02F2 060A

02F4 CDOOOO

02F? 3AO0O0

02FA E6F0

02FC OF

02FD OF

02FE OF

02FF OF

0300 C630

0302 320000

0305 CDOOOO

0300 3E3D

030A 320100

030D CDOOOO

LIKE SOURCE STATEMENT

136

DB 20H SPACE

DB 2 OH SPACE

DB 2 OH SPACE

DB 20H SPACE

DB 2 OH SPACE

D8 2 OH SPACE

DB S2H R

DB 61H A

DB 74H T

DB 6SH E

DB 2 OH SPACE

SCNHIN: DB 2 OH SPACE

DB 73H S

DB 43H c

DB 41H A

DB 4EH N

DB 73H S

DB 2FH /

DB 6DH H

DB 67H I

DB 4EH N

DB 75H U

DB 74H T

DB 65H E

ttttttttttttttttttt<ttttttttttttttttttt<tttttttttittttttttttttttttt<tt

THIS ROUTINE TAKES THE VALUE OF THE HI -ORDER NIBBLE STOBED AT

DEB AND DISPLAYS IT ON THE ALPHA DISPLAY AS:

'

INTERVAL [HI-DEB] >'

CALLS DVRITE AND DELAY.

tttttttttttttttttittttttttttttt*tttttttttttttttttttttttttttttttt*ttt

IRVNUM: HVI

STA

CALL

LII

HVI

CALL

LDA

ANI

RRC

RRC

RRC

RRC

ADI

STA

CALL

HVI

STA

CALL

A,

ALPHA

DELAY

H,

B,

DVRITE

DEB

OFOH

0E1H

IRVTAR

OAH

BLANK ALPHA DISPLAY.

LOAD START ADDRESS OF MESSAGE .

LOAD TEIT COUNTER.

VRITE TO DISPLAY.

MASK OUT LO-ORDER NIRBLE.

ROTATE HON INTO LON.

30H

ALPHA

DELAY

A, SDH

ALPHA

DELAY

CONVERT TO ASCII.

SEND""

TO ALPHA DISPLAY.

ISIS-II 1080/8085 MACRO ASSEHBLER, V4.0 DATAIN FACE 10

LOC OBJ

0310 3E3F

0312 320000

031S CDOOOO

0318 C?

031? 0?

031A OE

031B 14

031C OS

031D 12

131E 16

031F 01

0320 OC

0321 20

LINE SOURCE STATEMENT

137

0322 1630

0324 C601

0326 060A

0320 3D

032? CA3403

032C OS

032D C22I03

1330 14

0331 C32603

0334 3E0A

0336 ?0

0337 C630

033? 4F

033A C9

406

40?

401

41?

491

491

472

473 IRVTAB: DB

494 DB

HVI A, 3FH

STA ALPHA

CALL DELAT

RET

MESSAGE TABLE FOLLOVS:

SEND "".

DB

D8

DB

DB

DB

DB

DB

09H

OEH

14H

OSH

12H

16H

01H

OCH

28H

I I

; M

; T

; E

; R

; V

; A

; I

; SPACE

ttttttttttttttttttttttttttttit*tttttttttttt<ttttttttttttttttttttttt

THIS ROUTINE CONVERTS A SINGLE BYTE BINARY NUMBER INTO TWO

4-BIT BCD VALUES.

A REG: CONTAINS BINARY NUMBER TO BE CONVERTED.

D REG: RETURNS VITH BCD TENS PLACE IN ASCII.

C REG: RETURNS VITH BCD ONES PLACE IN ASCII.

ttttttttttitttttttttitttttttttttttttttttttttittttttttttttttttttttttttit

D,

01H

30H

OAH

338 3EE1

033D 320000

49S

496

497

470

47?

500

501

502

303

504

SOS

S06

307

SOO

50?

510

511

311

513

514 BINASC: HVI

SIS ADI

S14 BEGIN: HVI

517 TENCNT: DCR

510 JZ

SI? DCR

S20 JNZ

521 INR

522 JHP

523 ONECNT: HVI

S24 SUB

S2S ADI

524 HOV

527 RET

320

$27 -.eteetetttttieeteteeeeeeeeeeeeteeeeeeeeeeeeeeeteetteeeeeeeeeieeeeeeeeieee

530

531

532

133

334

535

334

537

530 RATNUH. HVI

E 33? STA

A

ONECNT

R

TENCNT

D

BEGIN

A, OAH

B

30H

C A

; LOAD D VITH ASCII ZERO.

; OFF-SET NUMBER TO BE CONVERTED RY ONE

i LOAD 8 VITH LOOP COUNTER.

; SUBTRACT ONE FROM A REG.

; IF A*0 JHP TO ONE'S PLACE.

; DECREMENT LOOP COUNTER.

; DO NOT LEAVE LOOP UNTIL CTCLED 10 TIMES.

; IF THRU TEN TIMES, INCREMENT 10'S COUNTER.

; GO AND CYCLE AGAIN.

; DETERMINE HOV MANY ONE'S REMAIN.

; CONVERT ONE'S TO ASCII

; STORE RESULT IN C REG.

THIS ROUTINE TAKES THE CURRENT VALUE OF HI-DEB AND DISPLAYS

IT ON THE ALPHA DISPLAY IN THE FORMAT:

RATE CHI-DEB]"

|tttttltttttlttltlltltHttttlttltltIlttttltttlllttltltlttHltt

A, 0E1H ; BLANK ALPHA DISPLAY

ALPHA

ISIS-II 0010/1015 MACRO ASSEHBLER, V4.0 DATAIN PAGE 11

LOC OBJ

0340 CDOOOO

0343 214D03

0344 0400

0348 CDOOOO

I34B 3A0000

034E E6F0

03S0 OF

0351 OF

0352 OF

0353 OF

0354 C630

0356 320000

03S? CDOOOO

03SC 3E3D

03SE 320000

0361 CDOOOO

0344 3E3F

0344 320000

034? CDOOOO

034C C?

034D 20

034E 20

034F 12

0370 01

0371 14

0372 OS

0373 20

0374 3E10

0374 14FF

0378 1EFF

037A ID

037B C27A03

037E 13

037F C27003

0302 3D

0303 C27403

0304 C?

0317 OD

0300 01

030? OE

030A IS

LIKE

540

341

542

543

544

545

544

547

540

54?

5SS

551

552

SS3

554

555

554

557

550

55?

561

561

562

563

564

563

566

S67

S6I

54?

570

371

572

373

574

375

574

577

570

57?

500

511

512

513

514

SIS

S14

387

581

51?

570

571

592

573

SOURCE STATEHENT

138

CALL DELAY

LU H, RATTAB START ADDRESS OF"RATE"

HVI B, OOH LOAD TEXT COUNTER.

CALL DVRITE VRITE TO DISPLAY.

LDA DEB GET I/R COUNT.

ANI OFOH MASK OUT PROCESS COUNT (ION)

RRC ROTATE HON INTO ION POSITION

RRC

RRC

RRC

ADI 30H CONVERT TO ASCII.

STA ALPHA

CALL DELAY

HVI A, 3DH SEND TO ALPHA DISPLAY.

STA ALPHA

CALL DELAY

HVI A, 3FH SEND""

STA ALPHA

CALL DELAY

RET

MESSAGE TABLE FOLLOWS:

RATTAB: DB

DB

DB

DB

DB

DB

DB

10H

2 OH

12H

01H

14H

OSH

20H

SPACE

SPACE

R

A

T

E

SPACE

tttttttttttttttttttttttittttttttttttttttttttttttttttttttttttttttttttttt

THIS DELAY ROUTINE GIVES *S SECOND PAUSE WHEN CALLED.

t*tttttttttt*tttttttttttttttttttttttt*tttt<tttttttttttttttt*ttttti(ttit

LDELAY: HVI

LOOOP3: HVI

LOOOP2: HVI

LOOOP1: DCR

JNZ

DCR

JNZ

DCR

JNZ

RET

A,

D,

E,

I

LOOOP1

D

LOOOP2

A

IOOOP3

10H

OFFH

OFFH

MESSAGE TABLES FOLLOV:

HANHOD: DB

DB

DB

DB

ODH

01H

OEH

15H

ISIS-II 1 010/1085 KACRO ASSEMBLER, 4.0 DATAIN PAGE 12

LOC OBJ LIME SOURCE STATEMENT

030B 01 5?4 DB 01H ; A

030C OC 375 DB OCH ; I

030D 20 3?4 DB 20H

038E ID 577 DB ODH

030F OF 391 DB OFH

0370 04 37? DB OOH ; D

0391 OS 400 DB OSH ; E

0392 3F 401 DB 3FH ;

3" 20 402 PMTMAN: DB 20H ; SPACES

0394 20 403 DB 20H

395 20 404 DB 20H

0396 20 60S DB 2DH

039? 20 606 DB 20H

0370 20 607 DB 20B

037? 20 600 DB 20H

039A 2A 60? DB 2AH ; t

139

SPACE

H

0

03?B 1A 610 DB 2AH ;

3?C 20 611 DB 20H ; SPACE

37D 4D 612 DB 4DH ; H

B37E 61 613 DB 61H , A

3?F 6E 614 DB 6EH ; N

03A0 75 615 DB 75H ;

3A1 41 414 DB 41H , A

03A2 6C 417 DB 4CH ; L

(313 20 410 DB 20H ; SPACE

03A4 4D 41? DB 4DH ; H

03AS 4F 420 DB 6FH ; 0

03A6 64 621 DB 64H ; D

03A7 45 422 DB 4SH ; E

03A1 20 623 DB 20H ; SPACE

3A? S3 624 DB 33H ; S

03AA 45 62S DB 6SH ; I

03AB 6C 626 DB 6CH ; L

03AC 45 427 DB 45H ; E

03AD 43 428 DB 43H ; C

03AE 74 42? DB 74H ; T

03AF 45 430 DB 43H ; E

I3BD 64 631 DB 64H ; D

03B1 10 632 DB 20H ; SPACE

03B2 2A 633 DB 2AH ;

0383 2A 634 D8 2AH ; *

63S ;

434 DSEC

437 ;

0000 630 DEB: DS IH ; 1 BYTE OF RAM FOR DATA ENTRY BYTE.

0001 639 ITAB: DS IH ; 1 BYTE OF RAM FOR INTERVAL TABULATION.

0002 640 STAB: DS IH ; 1 BYTE OF RAH FOR SCAN TABULATION.

0003 641 PLBYTE: DS 4H ; 4 BYTE OF RAH FOR PROCESS LENGTH BYTES

0007 642 IRCNT: DS 4H ; 4 BYTE OF RAH FOR 0 OF I/R ENTRIES PER PROCESS.

OOOB 643 IRBRAH: DS 1FH ; 3D BYTES OF RAH FOR I/R BYTES

002A 644 HANFLC: DS IH , MANUAL FLAG BYTE.

002B 643 STABCT: DS OOH ; 0=0,1*11 SCN TOTAL, 2*01+02 SCN TOT, 3.TOTAL SCANS

646 ;

647 END

ISIS-II 1010/0005 MACRO ASSEMBLER, V4.0 DATAIN PAGE 13

LOC OBJ LIKE SOURCE STATEMENT

140

FURL I C SYMBOLS

OINASC C 0322 DATAIH C 0000 DEB D 0000

HANHOD C 0307 PLBYTE D 0003 STABCT D 001B

IRBBAM D I00B IRCNT D 0007 LDELAY C 0374 HANFLG D 002A

EXTERNAL SYMBOLS

ALPHA E 0000 DELAY E 0000 DEVNUH E 0000 DVRITE E 0000 GODEV E 0000 KDSPY2 E 0000

PHTNUH E 0000 PSEND E 0000 PVRITE E 0000 RFA2 E 0000 SUH2 E 0000 SUH3 E 0000

KDSPY3 E OOO

ISER SYMBOLS

ALPHA

DELAY

INVLID

XDSPY3

RANfOD

OMTA

fASSA

PSEND

1PA2

SUH2

0000

0000

0130

0000

0387

OOBD

013B

0000

E 0000

E 0000

BEGIN

DEVNUM

IRBRAH

LDELAY

HANT5T

OHTYA

PFULl

PVRITE

SCKMIN

SUH3

0326

oooo

O00B

0374

01C0

011E

01FE

oooo

02DA

E 0000

BINASC

DVRITE

IRCNT

LESS

MINUTE

ONECNT

PLBYTE

RAHCKT

SCNOUT

TENCNT

C 0322

E 0000

D 0007

C Ot IB

C 02C6

C 0334

D 0003

C 01D3

C 01A2

C 0320

D1TAB

EDBLNK

IRVNUH

LOOOP1

MORE

OUTINT

PNTIR

RATBIC

SHORE

TOOBIG

02BA

0105

02E7

037A

015D

020A

0222

01B2

016E

0216

D2TAB

FRONT

IRVTAB

LOOOP2

NEXT

PASS

PNTHAN

RATE IN

STAB

02CE

0053

0319

0371

01E0

000A

0373

00A3

0002

DATAIN

GODEV

ITAB

LOOOP3

NOHORE

PASS2

PNTNUM

RATNUM

STABCT

C 0000

E 0000

D 0001

0376

0193

0164

0000

033B

002B

DEB D 1000

HERE C 015C

IDSPY2 E 0000

HANFLC D 002A

OHT

PASS3

PRINT

RATTAB

STORE

0074

0173

0185

034D

01FA

ASSEMBLY COMPLETE, NO ERRORS

ISIS-II 0000(0015 MACRO ASSEHBLER, V4.0 SUBPAK PAGE 1

LOC OBJ LINE SOURCE STATEMENT 141

OOOO CD0202

0003 0400

0005 71

0004 320000

0007 320100

000C 210000

0O0F 3A00O0

0012 77

0013 CDOOOO

0014 3A0000

001? 77

001A CDOOOO

0O1D 210000

0020 3E0C

0022 7?

0023 77

0024 210000

0027 7E

0020 1403

002A FEU

t*ttttettae*eattetetttttttttttttttttttttttttttttttiitettt1

2

1

4

5

4

7

0

f

10

11

12

13 i

14

IS

16 ;

17

11

19 ;

to

21

22

23

24

15

16

27

28

2?

30

31

32

33

34 KDSPY2: CALL

35 HVI

THIS PROCRAH HODULE COHTAIKS HOST OF THE IHPORTANT

SUBROUTINES USED BY THE IN-PROCESS IR DENSITOMETER.

EACH SUBROUTINE IS PROCEEDED BY A BRIEF DESCRIPTION

OF VHAT ITS FUNCTION IS AND THE PARAHETERS THAT HOST

BE PASSED TO IT.

ttt*UttttttttttttMtttttMttttttt*tttttttttttttttttttttttt

NAME SUBPAK

PUBl I C KDSPY1 , KDSPY3 , KSTOR 1 , KSTOR2 , KSTOR3 , PKTKUM , DEVKUH

PURLIC PVRITE, SUH2,SUH3, LOOKUP, FIFOC1

EITRN C0HH1,DATA1,C0HH2,DATA2, PSEND, DELAY, ALPHA, DVRITE

EITRN DEB, POS1.POS2, CLEARA, CLEARB.RPOSl

CSEG

tttitttttttttttttttttttttttttttttttttttttttttttttttttttttttitttttttttttt

THIS SUBROUTINE VILL ALLOV FOR THE ENTRY OF TWO NUMERIC DIGITS

FROM THE CONTROL PANEL KEYBOARD. MISTAKES HADE ON THE KEYBOARD

ARE CLEARED USING THE"CE"

OR CLEAR ENTRY KEY. WHEN THE CORRECT

DIGITS SELECTED BY THE USER ARE ON THE DISPLAY, THE"E"

OR ENTER

KEY VILL INPUT THE SELECTIONS TO THE COMPUTER KEY ENTRIES ARE

RIGHT ENTRY ONLY AND ARE RETURNED TO THE COMPUTER IN HEHORY

LOCATIONS KSTOR1 AND KSTOR2.

ttttttttttttettttttttttttttttttttttttttttttttttttttttttttttttttttttttttt

36

37

31

3?

40

41

42

43

44

45

46

47

41

4?

HOV

STA

STA

LII

LDA

HOV H,

CALL DELAY

FIFOCR

R, OOH

A, B

ISTORt

KSTOR2

; EKPTY THE FIFO.

; SET DIGIT COUNTER TO 0.

i ZERO A REGISTER.

; ZERO TEHP. KEY ENTRY REGISTERS.

H,

CLEARA

COMH1 ; VRITE ZEROS TO POS. 3 t 4 ON CONTROL DSP.

; CLEAR DISPLAY RAM ACCORDING TO CLEAR CODE.

LDA

MOV

POS1

H,

CALL DELAY

LII H,

HVI

HOV

HOV

E 50 KLOOK: LII

51 MOV

52 AMI

53 CPI

A,

H,

H,

H,

A,

03H

01H

DATA1 ; 027? DATA ADDRESS.

OCH ; LOAD DIGIT CODE FOR ZERO (0).

A

A : VRITE 2 ZEROS TO DISPLAY.

COHH2 ; STATUS WORD ADDRESS OF EIP. 0277.

H ; PUT IT INTO A REG.

; MASK OUT 5 HI-ORDER BITS.

; IF SOMETHING IN FIFO, ZERO VILL SET.

ISIS-II 1080/1015 MACRO ASSEHRLER, V4.0 SUBPAK PAGE 2

IOC OBJ LINE SOURCE STATEMENT

142

I02C C2240I C 54

I02F 3E40

0031 77

0032 210000 E 57

0035 7E

0036 E60F

0O30 FEOO

I03A CAOOOO C 61

0D3D FEOF

003F CAA200 C 63

0042 11F301 C 64

0045 OS

0O46 6F

0047 7E

0040 FEFF

004A CA2400 C 69

0O4D 04

004E 4F

0O4F 3E01

00S1 BO

0052 CASEOS C 74

0055 3E02

0OS7 10

OOSO CA7300 C 77

005B C32400 C 70

00 SE 7?

005F 320000 D 00

0062 CDE201 C 01

0065 210000 E 02

0068 3AOOO0 E 33

006B 77

0O6C 210000 E 35

006F 71

0O70 C324O0 C 87

0073 7?

1074 320100 D 3?

0077 CDE201 C 90

007A 210000 E 91

007D 3AO0OO E 92

OOOO 77

0001 210000 E 94

0004 56

0005 210000 E 96

OOOO 3A0OO0 E 97

008B 77

OOOC 11 8808 E 99

OOOF 72

0070 71

0071 3A0100 D 102

0074 57

0075 3A0OO0 D 104

0070 320100 D 105

007B 7A

00?C 320000 D 107

ST0R1 :

ST0R2:

JNZ KLOOK

KV1 1. OOH

HOV H, A

LII H, DATA2

HOV 1. H

ANI OFH

CPI OOH

JZ KDSPY2

CPI OFH

JZ HOBLKK

LII H. KUHTA

ADD L

NOV L. A

HOV 1. H

CPI OFFH

JZ KLOOK

IKR 1

HOV C A

HVI A, 01H

CHP B

JZ STOR1

HVI A, 02H

CHP B

JZ STOR2

JHP KLOOK

HOV A, C

STA KSTOR1

CALL LOOKUP

LII H, COHM1

LDA POS1

HOV H, A

LU H, DATA1

HOV H, C

JHP KLOOK

HOV A, C

STA KSTOR2

CALL LOOKUP

LII H, COHH1

LDA RPOS1

HOV K, A

LU H, DATA1

HOV D, H

LII H, COHM1

IDA POS2

HOV H, A

LU H, DATA1

HOV H, D

HOV H, C

LDA KSTOR1

HOV D, A

LDA KSTOR1

STA KSTOR2

HOV A, B

STA ISTOR1

IF NOT, KEEP LOOK INC.

SET FOR FIFO READ.

SELECT FIFO AS READ SOURCE.

DATA ADDRESS OF EXPANSION 0279.

PUT FIFO CONTENTS INTO A REG.

MASK OUT HI-ORDER NIBBLE.

IF CE KEY, ZERO FLAG VILL SET.

START OVER IF CE KEY PUSHED.

IF ENTER KEY, ZERO VILL SET.

BEFORE RETURN, STOP ALPHA FROM BLINKING.

GET DECIMAL KEY VALUE.

ADD KEY VALUE TO L RECISTER.

KL NOV POINTS TO ABSOLUTE KEY VALUE.

CET ACTUAL DECIMAL KEY VALUE.

IF ERBOR KEY, ZERO FLAG VILL SET.

IF ERROR, CO AND READ KEYBOARD AGAIN.

INCREMENT DIGIT COUNTER.

STORE A IN C REG.

PREPARE TO TEST DIGIT COUNTER.

IF DIGIT COUNTERS 1, ZERO FLAG VILL SET.

IF 01, GO TO KSTOR1 ROUTINE.

TEST TO SEEE IF * TO 02.

IF ZERO SETS, GO TO KSTOR2 ROUTINE.

MUST BE 3RD KEY ENTRY. NOT ALLOWED'!!!

RETRIVE A ( DECIHAL KEY VALUE ).

; NOV GET VALUE FOR DISPLAY, RH IN C REC.

; DISPLAY POS. 1 NON- A I

SEND CHARACTER TO DISPLAY POS. 1.

GO LOOK FOR NEXT KEY ENTRY .

RETRIVE A.

STORE DECIHAL KEY VALUE IH KSTOR2 .

GET DISPLAY CHARACTER.

; READ DISPLAY RAH POS. 1

; READ VALUE INTO D REC.

; PREPARE TO VRITE TO POS. 2 (Al).

; VRITE POS. 1 TO POS. 2.

; NOV VRITE 2ND KEY ENTRY TO POS. 1

; REVERSE CONTENTS OF KSTOR 112.

ISIS-II 0000/0085 KACRO ASSEHBLER, V4.0 SUBPAK PACE 3

LOC OBJ

OOOF C32400

0OA2 210000

OOAS 3A0O00

OOAO 77

00A9 3EC3

OOAB 320000

OOAE CDOOOO

0OB1 3AO0O0

00B4 2E00

0OB6 0E01

00B8 09

00 89 3D

OOBA FEOO

OOBC C2BOO0

OOBF 3A0100

0OC2 OEOA

00C4 09

00 CS 3D

O0C6 FEOO

OOCO C2C400

OOCB 7D

OOCC 320300

OOCF C?

LIKE SOURCE STATEMENT

143

OODO CD0202

00D3 0600

OODS 70

00D6 320000

ODD? 320100

OODC 320200

OODF 210000

O0E2 36DF

OOEO CDOOOO

00E7 3672

OOE? 210000

OOEC 3E0C

IOEE 7?

OOEF 77

OOFO 77

D0F1 210000

OOFO ?E

OOFS E6S3

I0F7 FEU

OOF? C2F100

OOFC 3E40

OOFE 77

OOFF 210000

JHP

NOBLKK: LU

LDA

HOV

HVI

STA

CALL

LDA

HVI

HVI

0HES2 : DAD

DCR

CPI

JNZ

LDA

HVI

TEKS2 : DAD

DCR

CPI

JNZ

HOV

STA

RET

KLOOK

H.

CLEARB

H,

1.

ALPHA

DELAY

KST0R1

L,

C

B

A

OOH

0KES2

KST0R2

C

C0HH1

A

0C3H

OOH

01H

OAH

A

001

TENS!

A, L

SUM2

; GO LOOX FOR E OR CE KEY ENTRY.

; BLANK DISPLAY PER CODE IN CLRCOD.

; CODE FOR NO-BLINI

; CONTROL WORD.

VANT TO GET A SINGLE BYTE 0 FBOM KSTOR 1,2.

ZERO I AS L VILL CONTAIN RUNNING SUM.

C RECOHES l'S FACTOR.

ADD BC TO HL.

DECREMENTONES'

S COUNTER.

IF COUNTER > 0, ZERO VILL SET.

IF NO ZERO, KEEP ADDING ONES.

NOV DO IT FOR 10 'S PLACE.

C IS NOV 10'S FACTOR.

ADD BC TO RL.

DECREMENT10'

S COUNTER.

PLACE RUNNING SUM INTO A REC.

STORE RUNNINC SUM AT SUM2 .

RETURN TO HA IN PROGRAM.

tittttt*tttt*tttttttttttttttttttttttttttttlttttttttttttttttt

THIS IS KDSPY3. IT IS LIKE KDSPY2 EICEPT THAT 3 KEY ENTRIES

ARE ALLOWED RATHER THAN OILY TWO.

ettit*t*itetttttititttitititttttimititiitttittttttttttititiii

KDSPY3: CALL

HVI

HOV

STA

STA

STA

LII

HVI

CALL

HVI

LU

HVI

HOV

HOV

HOV

KLOOK3: LII

HOV

ANI

CPI

JNZ

HVI

HOV

LII

FIFOCR

B,

A,

KSTORt

KSTOR2

KSTOR3

H,

H,

DELAY

H,

H,

A,

H,

H,

H,

H,

A,

03H

01H

KLOOK3

A,

H,

H,

OOH

B

COHH1

ODFB

72R

DATA1

OCH

A

A

A

COHM2

M

OOH

A

DATA2

EMPTY THE FIFO.

SET DIGIT COUNTER TO 0.

ZERO A REGISTER.

ZERO TEHP. KEY ENTRY REGISTERS.

VRITE ZEROS TO POS. 2 t 3 t 4 ON CONTROL DSP

027? DATA ADDRESS.

LOAD DIGIT CODE FOR ZERO (0).

VRITE 3 ZEROS TO DISPLAY.

STATUS VORD ADDRESS OF EIP. 027?.

PUT IT INTO A REG.

MASK OUT S Hl-ORDER R1TS.

IF SOHETHINC IN FIFO, ZERO VILL SET.

IF NOT, KEEP LOOKING.

SET FOR FIFO READ.

SELECT FIFO AS READ SOURCE.

DATA ADDRESS OF EIPANSION 0277.

ISIS-II 0010/1015 MACRO ASSEMBLER, V4.0 SUBPAK PACE

IOC OBJ LINE SOURCE STATEMENT

144

0102 7E 162 HOV 1, H

0103 E40F 163 ANI OFH

0105 FEOO 164 CPI OOH

010? CADOO0 C US JZ KDSPY3

010A FEOF 166 CPI OFH

01 OC CAAAOt C 167 JZ NOBLN3

OlOF 21F301 C 160 LII H, KUHTA

0112 IS 16? ADD I

0113 4F 170 HOV I, A

1114 7E 171 HOV A, H

HIS FEFF 172 CPI OFFH

1117 CAF1O0 C 173 JZ KLOOK3

011A 04 174 INR B

01 IR 4F 175 HOV C, A

OUC 3E01 176 HVI A, 01H

01 IE 80 177 CHP B

011F CA3101 C 170 JZ STOR13

1122 3E02 17? HVI A, 02H

0124 BO 100 CHP B

0125 CA4401 c 101 JZ STOR23

0120 3E03 102 HVI A, OSH

01 2A 10 103 CHP B

012B CA4F01 c 104 JZ STOR33

012E C3F100 c 105 JHP KLOOK3

0131 7? 106 STOB13 HOV A, C

0132 320000 D 107 STA KSTOR1

8135 CDE201 C 101 CALL LOOKUP

0130 210000 E 11? LII H, COKM1

013B 3404 170 HVI H, OOH

013D 210000 E 171 LU H. DATA1

0140 71 1?2 HOV H, C

0141 C3F100 C 173 JHP KLOOK3

0144 7? 174 STOR23 HOV A, C

0145 320100 D 175 STA KSTOR2

0140 CDE201 C 176 CALL LOOKUP

014B 210000 E 177 LU H, COHM1

014E 3444 170 HVI H, 64H

0150 210000 E 17? LII H, DATA1

0153 7E 200 KOV A. H

0154 210000 E 201 LII H, COMM1

0157 3473 202 HVI H, ?3H

015? 210000 E 203 LII H, DATA1

01SC 77 204 HOV H, A

01SD 71 203 HOV H, C

015E 3A0100 D 206 LDA KSTOR2

0141 57 207 HOV D, A

0162 3A00D0 D 200 LDA KSTOR1

0165 320100 D 20? STA KSTOR2

0160 7A 210 HOV A, D

116? 320000 D 211 STA KSTOR1

OUC C3F100 C 212 JHP KLOOX3

016F 7? 213 STOR33 MOV A, C

0170 320200 D 214 STA KSTOR3

0173 CDE201 C 21S CALL LOOKUP

PUT FIFO CONTENTS INTO A REG.

MASK OUT Hl-ORDER KIBBLE.

IF CE KEY, ZERO FLAG VILL SET.

START OVER IF CI KEY PUSHED.

IF ENTER KEY, ZERO VILL SET.

BEFORE RETURN, STOP ALPHA FROM BLINKING

GET DECIHAL KEY VALUE.

ADD KEY VALUE TO L RECISTER.

HL HOV POINTS TO ABSOLUTE KEY VALUE.

GET ACTUAL DECIHAL KEY VALUE.

IF ERROR KEY, ZERO FLAG VILL SET.

IF ERROR, GO AND READ KEYBOARD AGAIN.

INCREMENT DIGIT COUNTER.

STORE A IN C REC.

PREPARE TO TEST DIGIT COUNTER.

IF DIGIT COUNTERrOl, ZERO FLAC VILL SET.

IF 01, GO TO KSTOR 1 ROUTINE.

TEST TO SEEE IF * TO 02.

; IF ZERO SETS, GO TO KSTOR2 ROUTINE.

; IS IT 3RD KEY!

IF ZERO SETS, GO TO KSTOR3 ROUTINE.

MUST BE 4TK KEY ENTRY. NOT ALLOWED!!!!

RETRIVE A ( DECIHAL KEY VALUE ).

; NOV GET VALUE FOR DISPLAY, RET IN C REG.

; DISPLAY POS. 1 NON-AI.

SEND CHARACTER TO DISPLAY POS. 1.

GO LOOK FOR NEIT KEY ENTRY.

RETRIVE A.

STORE DECIMAL KEY VALUE IN KSTOR2.

GET DISPLAY CHARACTER.

; READ DISPLAY RAM POS. 1

; READ VALUE INTO A REC.

; PREPARE TO VRITE TO POS. 2 (Al).

VRITE P05. 1 TO POS. 2.

KOV VRITE 2ND KEY ENTRY TO POS. 1

REVERSE KSTOR1 1 KSTOR2.

CO LOOK FOR 3RD KEY ENTRY.

RETRIVE A.

STORE DECIHAL KEY VALUE IN XSTOR3

CET DISPLAY CHARACTER

ISIS-II 8080/8085 MACRO ASSEHBLER, V4.0 SUBPAK PAGE

LOC OBJ

0176 210000

0179 3663

017B 110000

017E 7E

017F 210000

0102 3664

0104 210000

0107 56

0100 210000

010B 3672

010D 210000

0170 7?

0171 72

0172 71

0173 3A02O0

0176 57

0177 3A0100

017A 320200

17D 3AO0O0

01A0 320100

01A3 7A

01A4 320000

01A7 C3F1O0

01AA 3EC3

01AC 320000

01AF CDOOOO

01B2 3AO0O0

01B5 2E00

01B7 0E01

01B? 0?

01 BA 3D

01BB FEOO

01BD C2B701

01C0 3A0100

01C3 OEOA

01CS 0?

01C6 3D

01C7 FEOO

01C? C2CS01

S1CC 3A0200

01CF 0E64

01D1 0?

01D2 3D

01D3 FEOO

01DS C2D101

01D0 7D

01D? 320400

01DC 210000

01DF 36DF

01E1 C?

01E2 21E701

LIKE SOURCE STATEMENT

III

HVI

LII

HOV

LII

HVI

LII

HOV

III

HVI

LU

HOV

HOV

HOV

LDA

HOV

LDA

STA

IDA

STA

HOV

STA

JHP

HOBLN3: HVI

STA

CALL

LDA

HVI

HVI

OKES3: DAD

DCB

CPI

JNZ

LDA

HVI

DAD

DCR

CPI

JNZ

LDA

HVI

DAD

DCR

CPI

JNZ

HOV

STA

III

HVI

RET

TENS3:

HUNS3:

H,

H,

H,

A,

H,

H,

H,

D,

H,

H,

H,

H,

M,

M,

KSTOR3

D,

KSTOR2

XSTOR3

KSTOR 1

KSTOR!

A,

KSTOR 1

KLOOK3

A,

ALPHA

DELAY

KSTOR 1

L,

C,

B

A

OOH

OHES3

KSTOR2

C,

B

A

00B

TENS3

ISTOR3

C

COMH1

63H

DATA1

H

COHH1

64H

DATA1

M

COMM1

92H

DATA1

A

D

C

145

; READ DISPLAY RAH POS. 2 ( ADDRESS* 03H) .

; READ POS. 2 VALUE INTO A REG.

; READ DISPLAY RAH POS. 1 ( ADDRESSED 4H ) .

; READ POS.l VALUE INTO D REG.

; PREPARE TO VRITE TO POS. 3 (Al).

VRITE 1ST KEY ENTRY TO POS. 3 (ADDRESS- 02H).

VRITE 2ND KEY ENTRY TO POS. 2 (ADDRESS=03H) .

VRITE 3RD KEY ENTRY TO POS. 3 (ADDRESS;OOH).

0C3H

OOH

01H

OAH

64H

A

OOH

HUNS3

A, L

SUH3

H, COHMi

H, ODFH

SCHUFFLE KSTORs AROUND ABIT.

CO LOOK FOR E OR CE KEY ENTRY.

CODE FOR HO-BLINI

CONTROL VORD.

WANT TO GET A SINGLE BYTE 0 FROM KSTOR 1,2, 3.

ZERO I AS I VILL CONTAIN RUNNING SUN.

C BECOMES l'S FACTOB.

ADD BC TO HL.

DECREMENT ONES'S COUNTER.

IF COUNTER = 0, ZERO VILL SET.

IF NO ZERO, KEEP ADDING ONES.

NOV DO IT FOR 10 'S PLACE.

C IS NOV10'

S FACTOR.

ADD BC TO HL.

DECREMENT 10 'S COUNTER.

NOV DO IT FOR HUNDREDS PLACE.

C IS NOV 100 'S FACTOR.

; PLACE RUNNING SUM INTO A REG.

; STORE RUNNING SUM AT SUM2 .

; RETURN TO CALLING PROGRAM.

i SUBROUTINES FOLLOV:

LOOKUP: LII H, DTARLE ; STARTING ADDRESS OF DISPLAY TABLE.

ISIS-II 1000/1015 MACRO ASSEMBLER, V4.0 SUBPAK PAGE 6

IOC OBJ

01E5 OS

01 E6 6F

I1E7 4E

0110 c?

01E? OC

01EA ?F

01 EB 4A

01EC OB

11 ED ??

01EE 29

01EF 20

01F0 OF

01F1 00

01F2 89

01F3 FF

01F4 03

01FS 06

01F6 09

01F7 00

01FO 02

OIF? 05

01FA 00

01FB FF

01FC 01

01FD 04

01FE 07

01FF FF

0200 FF

0201 FF

1212 110800

0205 3641

0207 210000

020A 7E

020B E603

020D FEOO

020F CB

8210 210000

0213 7E

0214 C30702

OOOO

0001

8082

LINE

270

271

272

273

274

175

276

277 DTABLE:

270

27?

200

201

202

203

204

205

206

187 ;

200 NUHTAB:

20?

270

271

272

273

274

275

2?4

277

2?0

2??

300

301

302

303

304

30S

304

307

300 FIFOCR

30?

310 EHPTY:

311

SOURCE STATEMENT

146

ADD

HOV

HOV

RET

I ; ADD KEY VALUE (0-7) TO LOB OF DTABLE.

t. A ; HOVE RESULT TO L RECISTER.

C. H ; PUT DISPLAY RESULT INTO C RECISTER.

LOOK-UP TARLES USED IN FINDING KEY VALUES FOLLOV:

DR

DB

DB

DB

OB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

D8

DB

DB

DB

DB

DB

DB

DB

DB

DB

OCH

7FH

OAH

OBH

??H

2?H

20H

OFH

OOH

0?H

OFFH

03H

04H

07H

OOH

02H

OSH

OOH

OFFH

01B

OOH

07H

OFFH

OFFH

OFFH

FOR CONTROL DISPLAY.

FF IS ERROR CODE FOR INVALID KEY ENTRY.

ERROR

ERROR

ERROI

ERROR

iitttttitittitittttttttttttitttttitittttittitttttittttitttittttttttt

THIS SUBROUTINE EMPTIES THE KEYBOARD FIFO.

tti<ttttttttttttttttfttttttttttttttiittttt<i<tttttit>ttttt<ttittt

312

313

314

31S

314

317

HI ;

11?

321 ;

321 KSTOR 1:

322 KSTOR2:

323 KSTOR3:

LXI

HVI

LXI

HOV

ANI

CPI

RZ

LII

HOV

JHP

DSEC

DS

DS

DS

H,

H,

H,

A,

03H

008

A,

EHPTY

COHH2

411

COMH2

H

DATA!

H

SET FOR FIFO READ AUTO- INCREMENT.

GET FIFO STATUS VORD.

MASK OUT S Hl-ORDER BITS.

IF ZERO SETS, THEN FIFO EMPTY SO RETURN.

ISIS-II 1000(0005 HACRO ASSEHBLER, V4.0 SUBPAK PAGE 7

IOC OBJ

0003

0004

021? OD

0210 3E00

02 1A B?

021B CO

02 IC 7E

021D CDOOOO

0220 23

0221 C31702

0224 3EE1

0224 320000

022? CDOOOO

022C 21S202

022F 140?

0231 CDOOOO

0230 3A00O0

0237 E40F

023? C430

023B 320000

023E CDOOOO

1241 3E3D

0243 320000

1246 CDOOOO

024? 3E3F

020B 320000

024E CDOOOO

0251 C?

LIKE

324

325

326

327

320

32?

330

331

332

333

334

335

336

337

338

33?

340

341

342

343

344

345

346

347

348

34?

350

3S1

152

353

354

355

336

337

350

35?

360

361

362

363

364

365

366

36?

360

36?

370

371

372

373

374

373

376

377

SOURCE STATEHENT147

SUH2: DS

SUMS : DS

CSEG

ttttttttttttittt*ttttiiitttttt<eittttttt<tttttttttttttttitttttttttttii

THIS SUBROUTINE WRITES A MESSAGE TO THE LINE PRINTER

PVRITE (PRINTER VRITE) REQUIRES THE FOLLOVINC INFORMATION.

C REG: CONTAINS THE LENGTH OF THE TEXT STRING TO

BE VRITTEN TO THE PRINTER.

HL REG: CONTAINS THE STARTING ADDRESS OF THE TEIT

STRING.

THIS ROUTINE CALLS PSEKD.

tlttttttttttttttttttttttttttltttttttttttttttttttttlttttKttttttiittttt

PVRITE: DCR

HVI

CMP

RZ

HOV

CALL

INI

JHP

C

A,

C

A,

PSEND

H

PVRITE

OOH

DECREMENT CHARACTER COUNTER.

PREPARE TO TEST COUNTER.

IF C=0 ZERO FLAG VILL SET.

IF NO HORE TO SEND, THEN RETURN.

PUT CHARACTER POINTED TO BY HL INTO A.

SEND IT TO PRINTER.

INCREHENT TEIT POINTER.

tttttttttttttttttttttttttttttttttttttttttttitetttttttettttttttttttttttt

THIS SUBROUTINE TAKES THE LO-ORDER NIBBLE STORED AT DEB

( FOR DATA ENTRY BYTE) AND DISPLAYS IT IN THE FORMAT OF

"PROCESS CLO-DEB) * ' "

ON THE ALPHA DISPLAY.

1*tttt!tttttttlttttttttlt*tttttt!ttttttttttttttttttttttttttttt

DEVNUM: HVI

STA

CALL

LII

HVI

CALL

LDA

ANI

ADI

STA

CALL

HVI

STA

CALL

HVI

STA

CALL

RET

A,

ALPHA

DELAT

H,

B,

DVRITE

DEB

OFH

30H

ALPHA

DELAY

A,

ALPHA

DELAY

A,

ALPHA

DELAY

0E1H

DEVTAB

07H

SDH

3FH

LOAD BLANK CODE.

LOAD STARTING ADDRESS OF HESSACE.

LOAD TEXT COUNTER.

VRITE HESSACE ON ALPHA DISPLAY.

LOAD DATA ENTRY BYTE (DEB).

MASK TO GET PROCESS ENTRY COUNTER.

CONVERT TO ASCII.

SEND TO DISPLAY.

SEND'=

TO ALFIA DISPLAY.

; SEND"'"

TO DISPLAY.

; RETURN TO CALLINC PROGRAM

MESSAGE TASLE FOLLOWS:

ISIS-II 8080/8085 MACRO ASSEHBLER, V4.0 SUBPAK PACE 0

IOC OBJ LINE SOURCE STATEMENT

148

378 ,

0252 10 37? DEVTAB: DB 10H ; P

0253 12 300 DB 12H i 1

0254 OF 301 DB OFH ; 0

02SS 03 302 DB OSH ; C

0236 05 303 DB OSH ; E

0257 13 304 DB 13H ; S

02S0 13 335 DB 13H , S

125? 20 386

387

DB 2 OH ; SPACE

388 ttttttttttttttittttttttttttttttttttttttttttttttttttttttttttttttttttittt

38?

393 THIS SUBROUTINE TAKES THE VALUE OF THE LO-ORDER NIBBLE OF DEB

371 AND THE CURRENT CONTENTS OF KSTOR3,2,l AND PRINTS THEM ON THE

392 LINE PRINTER. THE HESSACE FORMAT IS:

373*

PROCESS CLO-DEB1 * CKSTOB3,2,l) MINUTES'

394 CALLS PVRITE AND PSEND.

375

396 ttttttttt*tttt*ttttttttttttttttttttttttttttttttttttttttttttttttitt*

377

02SA CDBE02 ( 378 KTKUM CALL STAR PRINT A FULL ROV OF" *** "

02SD 21CF02 ( 37? LII H, PENTRY START1NC ADDRESS OF MESSAGE.

0260 0EU 400 HVI C, HH LOAD HESSAGE LENGTH.

0262 CD1702 ( 401 CALL PVRITE VRITE HESSAGE TO PRINTER.

0265 3A00O0 1 402 LDA DEB

0268 E60F 403 ANI OFH KASK TO Cn PROCESS ENTRY COUNTER

026A C630 404 ADI 30H CONVERT IT TO ASCII.

026C CDOOOO I: oos CALL PSEND SEND IT TO PRINTER.

026F 3E20 406 HVI A, 2 OH SEND BLANK

0271 CDOOOO I: 407 CALL PSEND

0274 3E3D 400 HVI A, SDH SEND""

TO PRINTER.

0276 CDOOOO 1: oo? CALL PSEND

027? 3E20 410 HVI A, 20H SEND ANOTHER RLANK

027B CDOOOO 1: on CALL PSEND

027E 3A0200 1) 412 LDA KSTOB3 HOV SENDS ACTUAL VALUES TO PRINTER

0201 FEOO 413 CPI OOH USE LEADING ZERO BLANKING.

0283 C20E02 (: 4U JNZ NOBLKt

0206 3E20 413 HVI A, 20H

0288 CDOOOO 1: 416 CALL PSEND

020B C37302 1: 417 JHP DIG2

020E C630 410 I(0BLE1 ADI 30H HUNDREDS HOT EQUAL TO 0. CONVERT ASCII

8270 CDOOOO 1: oi? CALL PSEND

0273 3AO1O0 1) 420 D1G2: LDA KSTOR2 CET 10 'S PLACE.

0276 C630 421 ADI 30H CONVERT TO ASCII.

0270 CDOOOO 1: 422 CALL PSEND

027B 3AOO00 I) 423 LDA KSTOR 1 GET l'S PLACE.

027E C63I 424 ADI 30H CONVERT

02AD CDOOOO 1 423 CALL PSEND

02A3 11DF02 ( 426 LII H, PHIN END BY SENDINGMINUTES"

TO PRINTER.

02A6 OEO? 427 HVI C 07H LOAD CHARACTER COUNT.

2AI CD1702 (: 420 CALL PVRITE

I2AB 3E17 42? HVI A, 17H NOV PRINT PRINTER BUFFER CONTENTS.

02AD CDOOOO I 030 CALL PSEND

02BO CDBE02 (: 431 CALL STAR UNDERLINE HESSAGE VITH"" "

ISIS-II 1010/8085 MACRO ASSEMBLER, V4.0 SUBPAK PAGE

LOC OBJ

12 13 IE 17

02BS CDOOOO E

02B1 3E17

02BA CDOOOO E

02BD C?

028E 0E27

02C0 3E2A

02C2 CDOOOO

02C5 OD

02C6 C2C002

02C? 3E17

I2CB CDOOOO

02CE C?

02CF 20

02D0 20

82D1 20

02D2 20

02D3 10

02D4 20

02D5 20

02D6 20

02D7 SO

02D8 72

2D? 6F

I2DA 63

I2DB 65

02DC 71

12DD 73

2DE 20

02DF 20

02E0 6D

02E1 6?

02E2 6E

02E3 75

02E4 74

02ES 65

S2E6 73

LINE

432

433

434

435

436

43?

430

43?

440 STAR:

441 UNMAS:

442

443

444

445

446

447

440

44?

450

451 PENTRY:

452

453

454

455

4S6

457

451

459

440

441

442

443

444

445

444

447 PHIN:

440

44?

470

471

472

473

474

473 ;

474

SOURCE STATTMENT

HVI A, 17H ; HOV SPACE 2 BLANK LIKES.

CALL PSEKD

HVI A, 17H

CALL PSEND

RET ; RETURN TO CALLING PROGRAM.

ROUTINE TO GENERATE ONE FULL ROV OF" ** "

149

HVI

HVI

CALL

DCR

JNZ

HVI

CALL

RET

C

A,

PSEND

C

UNMAS

A,

PSEND

I7H

2AH

17H

HESSACE TABLES FOLLOV:

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

EHD

2 OH

2 OH

20H

2 OH

20H

2 OH

20H

2 OH

SOH

72H

4FH

43H

45H

73H

73H

2 OH

20H

4DH

4?H

4 EH

75H

74H

4SH

73H

SPACE

SPACE

SPACE

SPACE

SPACE

SPACE

BLANK

BLANI

P

R

0

C

E

S

s

BLANI

BLANK

H

I

N

U

T

E

S

LOAD COLUMN COUNT VITH 3? COUNTS.

LOAD A VITH ASCII FOR"

".

SEND IT TO PRINTER.

START TO PRINT COMMAND.

PUBLIC SYMBOLS

IEVNUM C 0224

LOOKUP C 01E2

FIFOCR C 0202

PNTNUM C 02SA

KDSPY2 C 0000

PVRITE C 0217

KDSPY3

SUH2

00D0

0003

KSTOR1 D 0000

SUMS D 0004

KSTOR 2 D 0001 KSTOR3 D

EXTERNAL SYMBOLS

1LPHA I 0100 CLEARA E 0000 CLEARB E 0000 COHH1 E 0000 COHM2 E 0000 DATA1 E 0000 DATA2 E

DEB E 0000 DELAY E 0000 DVRITE E 0000 POS1 E 0000 POS2 E 0000 PSEND E 0000 RPOS1 E

0001

0001

ISIS-II 0000(0005 MACRO ASSEHBLER, V4.0 SUBPAK PAGE 10

USER SYMBOLSi j\.i

ALPHA E OOOO CLEARA E 0000 CLEARS E 0000 COHH1 E 0000 COHM2 E 0000 DATA1 E 0000 DATA2 E 0000

DEB E 0000 DELAY E 0(00 DEVHUH C 0224 DEVTAB C 0252 DIG2 C 0273 DTABLE C 01E? DVRITE E 0000

mm c 0107 FIFOCR C 0202 HUHS3 C 01D1 KDSPY2 C 0000 KDSPY3 C OODO KLOOK C 0024 KLOOK3 C 00F1

XSTORl D 0000 KSTOR2 D 0001 KSTOR3 D 0002 LOOKUP C 01E2 KOBLK1 C 020E NOBLN3 C 01AA NOBLNK C 00A2

IUKTAI C 01F3 OHES2 C 00B0 ONES3 C 01B? PEKTRY C 02CF PHIN C 02DF PNTNUM C 015A POS1 E 0000

POS2 E 8000 PSEKD E 0000 PVRITE C 0217 RPOS1 E 0000 STAR C 02BE STOR1 C OOSE STOR13 C 0131

STH2 C 0073 STOR23 C 0144 STOR33 C 014F SUM! D 0003 SUH3 D 0004 TENS2 C 00C4 TENS3 C 01CS

UNMAS C 02C0

ASSEMBLY COMPLETE, KO ERRORS

ISIS-II 0010/0085 MACRO ASSEMBLER, V4.0 GODEV FAGE 1

IOC OBJ

OOOO FS

0001 210000

0004 34E1

0004 CDOOOO

OOO? 217001

000C 040A

OOOE CDOOOO

0011 CDOOOO

0014 04FF

0014 40

0017 AF

0018 320400

0O1B 320000

001E 3E01

0O20 320100

0023 320200

0024 3E00

0028 320700

002B HOOOO

002E 3A0200

0031 OS

0032 4F

0033 7E

0034 320300

0037 HOOOO

03A 3A0100

00 3D OS

003E 4F

00 3F IS

0040 CD1D01

0003 El

0044 320400

004? 23

LINE SOURCE STATEMENT

;t*ttt*tttttittt*titttttiittiMttttttttttttttttttttttttit

THIS PROGRAM PERFORMS ALL THE TIMING FUNCTIONS

USED IN THE PROCESSING OF FILM VITH THE IR DEN

SITOMETER. SCAN TIMING IS ALSO COMPUTED HERE, BUT

THE ACTUAL SCANS ARE TO BE HADE BY ANOTHER PROGRAM

CALL SCAN.

THIS PROGRAM IS EXITED WHEN ALL PROCESSING IS DONE.

tttttttttttttittttttttttttttttttttttttttttttttttttittttt

NAME GODEV

PUBLIC GODEV, INVERT,HINCNT.NCNT

EITRN IRCNT, I RBRAM, PLBYTE, LDELAY, DELAY, ALPHA, DVRITE, KDSPY2

EITRN RPB2.RPA2, DFIND, SCAR

CSEG

151

D

D

D

D

D

E

D

GODEV: DI

LII

HVI

CALL

III

HVI

H,

H,

DELAY

H,

S,

ALPHA

0E1H

PROCES

OAH

CALL DVRITE

CALL KDSPY2

HVI

HOV

IRA

STA

STA

HVI

STA

STA

TIMING: HVI

STA

LII

LDA

ADD

HOV

KOV

STA

TLOAD: LII

LDA

ADD

MOV

PUSH

CALL

POP

STA

INI

OFFH

I

B,

C

A

SCKNUH

HINCNT

A, 01H

HCNT

NCNT

A, I0H

PINTAG

H, IRCNT

NCNT

L

L, A

A, H

TIRCNT

H, IRBRAH

HCNT

L

L, A

H

INVERT

R

TRATE

H

DISABLE INTERRUPT SYSTEH.

BLANKl ALPHA DISPLAY.

GIVE ALPHA TINE TO CLEAR.

START OF"BEGIN?"

HESSAGE.

LOAD TEIT COUNTER.

VRITE"BEGIN*"

ON ALPHA DISPLAY.

"ENTER"

KEY VILL START PROCESSING.

INITIALIZE SECOND AND SCAN TIKE COUNTERS

ZERO A.

SET SCAN COUNTER TO ZERO.

SET MINUTE COUNTER TO ZERO.

SET UP TASK COUNTERS.

M IS I/R COMBO POINTER.

N IS PROCESS 0 POINTER

SET FIKTAG (FINISHED TAG) OFF.

HL CONTAINS START ADDRESS OF IRCNTS.

HL * IRCNT + NOT.

A x IRCNTn.

TIRCNT NOV HAS COPY OF IRCNTn.

HL CONTAINS START ADDRESS OF IRRRAH.

HL POINTS TO RATEa.

CONVERT Y SCANSfHIN TO Z SECONDS/SCAN.

COPY OF RATEm NOV IN TRATE.

HL NOV POINTS TO INTERVAL*

ISIS-II 8080/8085 MACRO ASSEHBLER, V4.0 GODEV PACE 2

IOC OBJ LIKE SOURCE STATEMENT

152

0040 7E 54 KOV A, M

0009 320500 D 55 STA TINTR

004C 3A0700 D 56 RESET: LDA FINTAC

004F FEFF 57 CPI OFFH

0031 CAF700 C 50 JZ RELOAD

0050 3ED0 5? HVI A. ODIH

0056 30 60 SIH

0057 10 61 PEKD: RIH

0058 E643 62 ANI OOH

DOSA FEOO 63 CPI 008

005C CAS700 C 64 JZ FEND

005F 210000 E 65 LU H, ALPHA

0062 34E1 66 HVI H, 0E1H

0064 OC 67 IKR C

0045 04 60 IHR 8

0046 70 6? HOV A, 1

0067 D670 70 SUI 70H

006? C20400 C 71 JNZ NOT60

0O6C 3A0300 D 72 LDA TIRCNT

006F FEOO 73 CPI OOH

0O71 CA7I00 C 74 JZ INC

0074 3A0500 D 75 LDA TINTR

007? 3D 76 DCR A

0070 320501 D 77 STA TINTR

0D7B 3A0000 D 70 INC: LDA HINCNT

007E 3C 7? INR A

007F 320000 D 00 STA HINCNT

0002 0600 01 HVI B, OOH

0004 210000 E 02 NOT60: LII H, PLBYTE

0007 3AO1O0 D 13 LDA NCNT

000A IS 14 ADD L

0O0B 6F 15 HOV I, A

001C 3A0000 D 16 LDA HINCNT

00 OF IE 17 CHP H

0O70 C2A0O0 C 00 JNZ NOTFIN

0073 3EFF 0? HVI A, OFFH

0O7S 320700 D 70 STA FINTAC

0070 3A0000 D 71 LDA HINCNT

0078 FEOO 72 CPI OOH

009D CAEAOO C 73 JZ SKIP

OOAO 3A02O0 D 74 NOTFIN LDA NCNT

00A3 FE01 75 CPI 018

OOAS C2AFO0 C 76 JNZ TAKK2

OOAO 3E43 7? HVI A, 43H

001A D300 E 70 OUT LOV RPB2

IOAC C3BF00 C ?? JHP NOVOH

OOAF FE02 100 TANK2: CPI 02H

80B1 C2BB00 C 101 JNZ TANK3

00B4 3E4C 102 HVI A, 4CH

00B6 D300 E 103 OUT LOV RPB

0081 C3BF01 C 104 JHP NOVON

008B 3E70 10S TANX3: HVI A, 70H

0080 D300 E 106 OUT LOVRPB*

I

OOBF 310300 D 107 NOVON: LDA TIRCNT

COPY OF INTERVAL! NOV IN TINTR.

CHEC STATUS OF PROCESS FINISHED TAG.

WHEN FINTAG.FFH, THEN LAST SCAN.

; RESET AND UN-MASK RST 7.S, 1 SET S0D=1

; MASK TO GET RST 7.5 PENDING BIT.

; WHEN ZEBO DOESNT SET, THEN INTERRUPT.

; BLANK ALPHA DI5PLAY WHEN PROCESS BEGINS.

; INTERRUPT RECEIVED.

; SECCNT AND SCNSEC INCREMENTED RY 1 .

; IF B>60, ZEVRO FLAG VILL SET.

; COME HIRE IF SECOND COUNT * 60.

; IF ZERO SETS, THEN TIRCNT 0.

; IF NOT ZERO, THEN DECREMENT TINTR.

; UP-DATE TINTR.

; INCREMENT MINUTE COUNTER.

; RESET SECCNT TO 0.

; LOAD HL VITH START ADDRESS OC PLBYTE.

; HL NOV POINTS TO PLBn

; TEST FOR END OF PROCESS.

; IF ZERO SETS, PLBn < HINCNT, PROCESS DONE.

; PROCESS DONE, SET FINTAC ON, DO 1 HORE SCAN.

; TEST FOR ZERO PROCESS LENGTHS.

; TURN ON TANKn AND PUMP .

; TURN OH TANK 1 AND PUMP.

; EIPANSION ROM PORT 1.

; TURN ON TANK 2 AND PUMP.

; TURN ON TANK 3 VALVES AND PUMP.

; TEST TO SEE IF I/R COMBOS REMAINING.

ISIS-II 0000/0005 MACRO ASSEHBLER, V4.0 GODEV PAGE

LOC OBJ

0OC2 FEOO

I0C4 CA4C00

0OC7 3A0400

OOCA FEFF

OOCC CAD3O0

OOCF B?

OODO CC7A01

00D3 3A0500

0OD6 FEOO

0OD1 C24C0I

I0DB 3A0100

OODE C402

OOEO 320100

0OE3 3A0300

00E6 3D

0OE7 320300

ODEA OEOO

OOEC 3A0700

OOEF FEFF

0OF1 CAF700

OOFO C33700

0OF7 DBOO

OOF? E63F

OOFB D300

OOFD DS

OOFE CD6DD1

0101 CD6D01

0104 Dl

0105 AF

0106 D300

0100 320000

010B 06FF

010D 00

010E 3A0200

0111 3C

0112 320200

0115 FEOO

0117 CAOOOO

11 1A C32600

011D 7E

HIE FEOO

0120 C22601

0123 3EFF

8125 C?

0126 212F01

112? 5F

012A 1600

OUC 1?

01 2D 7E

012E 07

112F C?

0120 IC

1131 IE

1132 14

LIKE 50URCE STATEHENT

ZRATE:

SKIP:

CPI

JZ

LDA

CPI

JZ

CHP

CZ

LDA

CPI

JNZ

LDA

ADI

STA

LDA

DCR

STA

HVI

LDA

CPI

JZ

JHP

RELOAD: IH

ANI

OUT

PUSH

CALL

CALL

POP

IRA

OUT

STA

HVI

HOV

LDA

INR

STA

CPI

JZ

JHP

INVERT: HOV

CPI

JNZ

HVI

RET

LII

MOV

HVI

DAD

HOV

RLC

RET

DB

DB

DB

OK:

TABLE:

OOH

RESET

TRATE

OFFH

ZRATE

C

TSCAH

TINTR

OOH

RESET

HCNT

02H

HCNT

TIRCNT

A

TIRCNT

C

FINTAC

OFFH

RELOAD

TLOAD

LOV RPB2

3FH

LOV BPB2

D

HDELAY

HDELAY

D

A

LOV RPB2

HINCNT

B,

C

NCNT

A

NCNT

OOH

DFIND

TIHIKC

A,

OOH

OK

A,

H,

E,

D,

D

A,

3CH

1EH

14H

OOH

153

; IF TIRCNT * 0, ZERO VILL SET.

; CO VAIT FOR NEXT INTERRUPT.

; DO VE HAKE A SCAN!

; TEST FOR ZERO RATE FUG.

; IF ZERO RATE, BYPASS SCAN TEST.

; YES. GO DO SCAN.

; TEST FOR END OF INTERVAL.

; IF NOT END, CO AVAIT NEXT INTERRUPT.

; HCNT HCNT ? 1.

; ONE I/R SET COMPLETE.

; DECREMENT TIRCNT.

; RESET SCNSEC (C REC) TO ZERO.

; CHECK TO SEE IF PROCESS DONE.

; RECALL FFH * PROCESS DONE.

; CO AND TEST FOR REMAINING PROCESSES.

; CET NEW TEMPORARY I/R VALUES.

i TURN OFF ONLY THE PUMP.

; SAVE CONTENTS OF DE RECISTER.

; GIVE PUMP TIME TO STOP BEFORE CLOSING VALVES.

; RETRIVE CONTENTS OF DE REGISTER

; ZERO A.

; NOV TURN OFF VALVES.

; RESET HINCNT TO ZERO.

; RESET SECOND ANS SCAN COUNTESS.

; INCREMENT PBOCESS COUNTER

; HAVE THREE PROCESSES BEEN HADE*

; IF YES, GO TO DATA OUT BOUTINE.

; OTHERWISE, GO GET NEXT SET OF PROCESS INFO.

; TEST TO SEE IF A ZERO RATE IS PASSED

; IF ) 0, PASS BY.

; OTHERWISE TAG THE RATE.

; LOAD HL VITH START ADDRESS OF TABLE.

; DE > RATE SCANS /MINUTE.

; HL > HL + DE.

; HL POINTS TO RATE SEC /SCAN.

: MULTIPLY RESULT IN A BY 2.

FOR RATE ENTRY OF 1 SCAN/MINUTE.

FOR ENTRY OF 2 SCAN/MINUTE.

FOR 3 SCANS /MINUTE

OFFH

OFFH

TABLE

1

OOH

ISIS-II 1010(0005 HACRO ASSEMBLER, V4.0 GODEV PAGE

IOC OBJ LIKE SOURCE STATEMENT

0133 OF 1 12 DB OFH , 4 SCANS/MINUTE

0134 0C 1 13 DR OCH , 5 SCANS /MINUTE

8135 OA 1 (4 DB OAH , 6 S/H.

0136 1? 1 15 DB OOH

1137 01 1 16 DB OOH

0130 0? 1 (7 DB 07H

013? 16 1 10 DB 06H

01 31 OS 1 1? DB 05H

013B OS 1 ro DB OSH

01 3C OS 1 71 DB OSH

013D 04 1 11 DB OOH

01 3E 04 1 73 DB OOH

013F 04 1 ro DB OOH

0140 04 1 75 DB OOH

0101 03 1 U DB OSH

0142 03 1 77 DB 03H

0143 03 1 71 DB 03H

0144 03 1 7? DB OSH

0145 03 1 10 DB 03H

0146 03 1 11 DB S3H

0147 02 1 12 DB 02H

0140 02 1 13 DB 02H

014? 02 1 14 DB 02H

01 4A 02 1 13 DB 02H

014B 02 1 16 DB 02H

014C 02 1 17 DB 02H

014D 02 1 10 DB 02H

01 4E 02 1 1? D8 02H

014F 02 1 70 DB 02H

01S0 02 1 71 DB 02H

0151 02 1 12 DB 02H

0152 02 1 73 DB 02H

0153 02 1 74 DB 02H

0154 02 1 73 DB 02H

01SS 02 1 76 DB 02H

0156 02 1'77 DB 02H

0157 02 1 78 DB 02H

01S0 01 v7? DB 01H

015? 01 2110 DB 01H

01SA 01 2111 DB 01H

015B 01 2 12 DB 01H

015C 01 2 13 DB 01H

01SD 01 2114 DB 01H

01SE 01 21IS DB 01H

01SF 01 2116 DB 01H

0160 01 2117 DB 01H

0161 11 2110 DB 01H

0162 01 211? DB 01H

0163 01 21 0 DB 01H

0160 01 21 1 DB 01H

0165 01 21 2 DB 01H

0166 01 21 3 DB 01H

016? 01 21 4 DB 01H

0160 01 21 5 DB 01H ;

ISIS-II 8080(8005 MACRO ASSEMBLER, VO.O GODEV PAGE

IOC OBJ

0169 01

016A 01

I16B 01

11 4C 01

014D 14FF

II 4F 1EFF

0171 ID

0172 C27101

1175 IS

1174 C24F01

017? C?

017A 1A0400

017D 3C

017E 320400

0111 0E00

0103 3E40

0105 30

0104 CDOOOO

010? 3EC0

01 OB 30

OUC CDOOOO

01 OF C?

0170 20

0171 20

0172 20

0173 02

0174 03

0175 07

1174 ?

0177 OE

0170 3F

OOOO

0001

0O02

0003

0004

0005

0O04

0007

LIKE

214

217

210

21?

220

221

222

223

224

225

224

227

228

22?

230

231

232

233

234

235

234

237

231

23?

240

241

242

243

244

245

244

247

248

24?

250

251

252

253

254

255

254

157

250

15?

240

SOURCE STATEMENT

155

HDELAY

LOOP2 :

LOOP1:

TSCAK:

PROCES:

HINCNT:

HCNT:

NCNT:

TIRCNT:

TRATE:

TINTR:

SCHNUH:

FINTAC:

DR

DB

DB

DB

HVI

HVI

DCR

JNZ

DCR

JNZ

RET

LDA

INR

STA

HVI

HVI

SIR

CALL

HVI

SIM

CALL

RET

DB

DB

DB

DB

DB

DB

DB

DB

DB

DSEG

DS

DS

DS

DS

DS

DS

DS

DS

END

20H

2 OH

20H

02H

OSH

07H

09H

OEH

3FH

57

50

5?

40

OFFH

OFFH

01H

01H

01H

01H

D,

E,

I

LOOP1

D

LOOP!

SCNNUH

A

SCNNUM

C, OOH

A, OOH

DELAY

A, OCOH

SCAN

; MEDIUM LENGTH DELAY.

; SIMPLY INCREMENT SCAN COUNTER

i UNTIL SCAN ROUTINE IS VORKED OUT.

; RESET SCNSEC TO ZERO.

; SH SOD LIKE ON

; VAIT A BIT.

; SET SOD LINE OFF.

BLANK

BLANI

LANK

HINUTE COUNTER.

I/R COMBO COUNTER.

PROCESS I COUNT.

TEMPORARY COPY OF I(R COUNT.

TEMPORARY COPY OF CURRENT RATE VALUE.

TEMPORARY COPY OF CURRENT INTERVAL VALUE.

RUNNING SUM OF SCANS HADE.

USED IN HAKING Li AST SCAN OF ANY PROCESS.

PURL I C SYMBOLS

(ODEV C 0000 IKVERT C 01 ID HINCKT D 0000 HCNT D 0002

EXTERNAL SYMBOLS

ILPHA t 0100 DELAY t 8880 DFIHD E 8000 DVBITE E 0000 IRBRAH E 0000

LDELAY E 0000 PLBYTE E 0000 RPAI I 0000 RPB2 E 0000 SCAN E 0000

IRCNT E 0000 KDSPY2 E 000

ISIS-II 0000/0005 HACRO ASSEHBLER, V4.0 GODEV FACE I

156USER SYMBOLS

ALPHA E 0000 DELAY E 0000 DFIND E 0000 DVRITE E 0000 FINTAC D 0007 CODEV C 0000 INC C 007B

INVERT C 01 ID IRBRAH E 0000 IRCNT I 0000 KDSPY2 E 0000 LDELAY E 0000 LOOP1 C 0171 LOOP2 C 014F

1CNT D 0001 HDELAY C 016D HINCNT D 0000 NCNT D 0002 KOT40 C 0004 NOTFIN C OOAO NOVON C OOBF

OK C 0126 PEMD C 00S7 PLBYTE E 0000 PROCES C 0170 RELOAD C 00F7 RESET C 004C RPA2 E 0000

IPB1 t 0000 SCAN E 0000 SCNKUH D 0004 SXIP C OOEA TABLE C 012F TANK2 C OOAF TANK3 C OOBB

TIMING C 0026 TINTR D 000S TIRCNT D 0003 TLOAD C 0037 TRATE D 0004 TSCAN C 017A ZRATE C 0OD3

ASSEMBLY COMPLETE, NO ERRORS

ISIS-II 0000(0085 MACRO ASSEHBLER, V4.0 DFIND PACE 1

LOC OBJ

0000 3EOD

0002 30

0O03 FB

8004 214302

0O07 040C

000? CDOOOO

0O0C CDOOOO

OOOF 3A0000

0O12 FEOO

0014 D20000

0017 FEOO

001? CAOOOO

001C 320000

001F HOOOO

0022 OS

0O23 4F

0024 7E

0O2S FEOO

0027 CC1B02

002A OEOO

I02C 3A0000

0O2F FE01

0031 CA4300

0O30 07

0035 3A0100

1030 OF

103? 70

LINE

1

2

1

4

5

4

7

I

?

10

11

12

13

14

IS

16

17

IB

1?

10

21

12

23

24

25

26

27

28

2?

30

31

32

33

34

35

36

3?

38

3?

40

01

42

43

44

43

46

47

40

4?

SO

SI

52

S3

SOURCE STATEHENT157

t*ttttmettttttttttttttitittittttettiittttttitttttttttttttt*ttttttttttt

THIS HODULE PROHPTS THE USER TO ENTER THE PROCESS KUHBEB OF A

PARTICULAR SCAN SERIES IN WHICH HE IS INTERESTED IN VIEWING

ONCE GIVEN A PROCESS NUMBER, THE ROUTINE CHECKS TO SEE IF ANY DATA

VAS INDEED TAKEN DURING THAT PROCESS. IF SO, THE USER IS PROMPTED

TO ENTER THE TIKE AT WHICH HE THINKS A SCAN VAS HADE. THE PROGRAM

SEARCHES UNTIL IT FINDS THE CLOSEST SCAN TO THE ENTERED TIME. THIS

DENSITY BLOCK IS DISPLAYED ALONG VITH THE ACTUAL TIHE IT VAS TAKEN.

tttttttttttttttttttttttttttttttttttttttttttttttttttttttitttttttttttttttittttt

NAME DFIND

PUBLIC DFIND, SHOW,MINCON, ITEMP.T1MSUM, OFFSET,MIN

EITRN DVRITE, KDSPY2.SUM2, DEB, IRCNT, STABCT, RAMPT, POSl,POS2,RPOSl

EITRN CLEARA, CLEARS, ALPHA, NCNT, IRBRAM, INVERT, DSHOV.HINCNT.COHMl

EITRN B1NASC , LOOKUP , LDELAY , DATA1 .UPORDN , PLBYTE , TMPNUM

CSEC

t

DFIND: HVI

SIH

EI

LII

HVI

A,

H,

B,

CALL DVRITE

CALL KDSPY2

LDA

CPI

JKC

CPI

JZ

STA

LII

ADD

HOV

HOV

CPI

CZ

SUH2

OOH

DFIND

OOH

DFIND

DEB

H,

L

L,

A,

OOH

NODATA

ODH ; UN-MASK RST 6.5 FOR USE IN GETTING TO MONITOR

i SET INTERRUPT HASK.

; ENABLE INTERUPTS. (RST 6.5 ONLY)

TVANTM ; PROMPT"PROCESS

0="

OCH ; LOAD TEIT COUNT.

; VAIT FOR PROCESS 0 ENTRY.

; VALID ENTRIES ARE 1 2 3 ONLY.

; INVALID ENTRIES RETURN YOU TO DEFIND.

IRCNT

A

1

STORE PROCESS ENTRY IN DEB.

LOAD HL VITH START ADDRESS OF IRCNTS

HL POINTS TO lRCNT(DEB).

IF SELECTED PROCESS HAS 0 IRCNT, "NODATA"

DETERMINE NOV HOV MANY SCANS HADE BEFORE ABRIVAL AT PROCESS WANTED.

HVI

LDA

CPI

JZ

HOV

LDA

HOV

HOV

OOHC,

DEB

01H

ADDED

STABCT+i

C, A

A, I

IF DEBcl, STABT AT BOTTOM OF DRAM.

ISIS-II 0000/0085 MACRO ASSEMBLER, V4.I DFIND PACE 2

LOG OBJ LIKE SOURCE STATEMENT158

303A FE02 SO CPI 02H

I03C CA4300 C 55 JZ ADDED

0O3F 3AO2O0 I 54 LDA STABCT+2

1042 4F 57 HOV C A

0043 3E01 58 ADDED: HVI A, 01H

0045 01 3? ADD C

0046 320000 I 60 STA RAHPT

004? 214E02 C 61 GETTW: LXI H, TVHESS

00 4C 06 OC 62 HVI B, OCH

004E CDOOOO E 63 CALL DVRITE

0O51 3E?1 60 HVI A, ?1H

0053 320000 1 65 STA POS1

0OS6 3E02 66 HVI A, 02H

0050 320000 I 67 STA post

0058 3E62 60 HVI A, 62H

OOSD 320000 I 6? STA RPOS1

0060 3EDF 70 CLEAR: HVI A, ODFH

0062 320000 I 71 STA CLEARA

0O6S 3ECC 72 HVI A, OCCH

006? 320000 I 73 STA CLEAR1

8061 CDOOOO I 74 CALL KDSPY2

006D 3A0000 I 75 LDA SUM2

0070 CD2C02 ( 76 CALL HINCON

0073 220000 I1 77 SHLD TVAKT

0076 3E74 70 HVI A, 74H

0078 320000 I 7? STA POS!

0O78 3E0S 00 HVI A, 05H

007D 320000 I 01 STA post

0000 3E6S 02 HVI A, OSH

0082 320000 I 83 STA RPOS1

0O05 3ECC 80 CLEARS HVI A, OCCH

0007 320000 I 03 STA CLEARA

0O0A 3EDF 06 HVI A, ODFH

S08C 320000 1 87 STA CLEAR8

OOOF CDOOOO 1 88 CALL KDSPY2

0072 2A0O0O D 0? LHLD TVANT

095 3AO0O0 E 70 IDA SUM2

0070 OF 71 HOV C, A

OO?? 0600 72 HVI B, OOH

00?B 0? ?3 DAD 1

007C 220000 D 74 SHLD WANT

007F 7C 75 HOV A, H

OOAO FEOO 76 CPI I0H

0OA2 C2AB00 C 97 JNZ TVNOTO

OOAS 7D 78 MOV A, I

00A6 FEOO ?? CPI 001

10 Al CA4700 C 100 JZ GETTV

OOAB 210000 E 101 TVNOTO LXI H, PLBYTE

OOAI 3A00O0 E 102 LDA DEB

8IB1 15 103 ADD L

0082 6F 100 HOV L, A

00B3 7E 103 HOV A. R

0084 CD2C02 C 104 CALL HINCON

I0B7 3A0100 I1 107 LDA TVANT+1

I IF DEB=2, LOAD C VITH PROCESS 1 SCAN CNT.

; ADD 1 TO OFFSET MDMAX AND MDO BLOCKS

; RAMPT * SUM OF SCANS + 2.

; PROMPT "TIMEVAKTED?"

; SET KDSPY2 FOR MINUTE ENTRY.

; SET CLEAR CODE TO CLEAR ON ENTRY.

; SET FOR NO CLEAR ON EXIT.

; CET HINUTE ENTRY.

CONVERT MINUTES TO SECONDS.

TVANT* MINUTE ENTRY IN SECONDS.

SET KDSY2 FOR SECOND ENTRY.

; SET FOR NO CLEAR ON ENTRY TO KDSPY2 .

; SH CLEAR CODE TO CLEAR ON EXIT.

; CET SECONDS ENTRY.

; ADD SECONDS TO TVANT.

; TEST TO SEE IF TVANT * 0.

IF IT IS, GET ANOTHER TVANT ENTRY.

PREPARE TO TEST TVANT AGAINST LENGTH

OF SELECTED PROCESS.

; HL POINTS TO SELECTED PLBYTE(DEB)

; CONVERT PLBYTE TO SECONDS .

; COHPARE HOB OF TVANT TO HOB OF PLBYTE.

ISIS-II 1000/0005 MACRO ASSEHRLER, V4.0 DFIND PAGE 3

LOC OBJ LI)IE SOURCE STATEMENT

00 1A IC IB CHP H

10 BB OAD600 C 11)? JC OVER

OOBE CICBOO C 1 10 JNZ BLINX

0OC1 3A00O0 D 1 1 LDA TVANT

00C4 BD 2 CHP I

OOCS IAD600 C 1 13 JC OVER

OOCI CAD600 C 1 14 JZ OVER

00 CB 3ECB 15 BLINK: HVI A, OCBH

OOCD 320000 E 1 16 STA ALPHA

OODO CDOOOO E 1 17 CALL LDELAY

00D3 C30000 C 1 18 JHP DFIND

00 D6 AF 1? OVEB: IRA A

00D7 320000 E 1 10 STA NCNT

OODA 47 tl HOV H, A

OODB 4F 12 HOV L, A

OODC 220200 D 1 13 SHLD TIHSUH

OODF OF 10 HOV C A

OOEO 210100 I 1 IS LII H, IRCNT+1

00E3 3A0000 E 1 26 LDA DEB

00 E4 FE01 17 SUMIR: CPI 01H

00E8 CAFSOO C 1 10 JZ NOSUH

OOEB 47 1? HOV B, A

OOEC 7? 30 HOV A, C

OOED 04 31 ADD H

OOEE OF 32 HOV C A

OOEF 78 13 HOV A, B

80F0 3D 14 DCR A

0OF1 23 35 INI H

00F2 C3E400 C 1 36 JHP SVMIt

OOFS 7? 27 NOSUH: HOV A, C

00F4 07 10 ADD A

0OF7 C401 1? ADI 01H

OOF? 320400 D 1 10 STA OFFSET

OOFC HOOOO E 1 11 LII H, IRBRAH

OOFF SF 12 HOV E, A

0100 1600 13 HVI D, OOH

0102 1? 14 DAD D

0103 23 15 INI H

0100 7E 16 HOV A, H

0105 CD2C02 C 1 17 CALL MINCON

0100 220400 D 1 18 SHLD ITEM!

0108 2AOOO0 D 1 1? VRDTST: LHLD TVANT

010E 3AS300 D 1 10 LDA TIHSUH+1

0111 BC il CHP H

0112 DA1F01 C 1!>2 JC TSLSTV

0113 C27A01 C 1 S3 JNZ SHOW

0110 3A0200 D 1 >4 LDA TIHSUM

01 IB 8D S3 CHP L

OUC D27A01 C 1!i6 JNC SHOW

01 IF 2A0400 D 1!S7 TSLSTV: LHLD ITEMP

0122 3A0300 D 1!lO LDA TIHSUH+t

0125 BC i? CHP H

0126 C23001 C It10 JKZ ADDVRD

012? 1A0200 D 1 11 LDA TIHSUH

159

A CY MEANS HO TVANT < HO PLBYTE.

MO ZERO MEANS HO TVANT ) HO PLBYTE.

NOV TEST LOBS.

A CY MEANS LO TVANT < 10 PLBYTE.

A ZERO MEANS AND THATS O.K. TOO.

BLINK ALPHA AS TVANT ) PLB(DEB).

; GO START OVER AGAIN

i INITIALIZE N (I/R COUNTER).

; ZERO RUNNING SUM : TIHSUM.

SUM IRCNTS TO CET START ADDRESS IN

IRBRAH SPACE

NOTE THAT IF PROCESS 1 IS SELECTED, YOU

VISH TO START AT THE VERY BOTTOM OF IRB1AM.

RETRIEVE IRCNT SUM.

DOUBLE IT.

ADD 1 TO Gn OFF IRCNT.

OFFSET MUST RE ADDED TO IRBRAH TO PUT

YOU IN THE PROCESS IR BLOCK YOU'VE

SELECTED.

DE OFFSET.

HL - 1RBBAH + OFFSET.

INCREMENT TO HOVE FROH R TO I .

HOVE INTERVAL INTO A REC.

CONVERT TO SECONDS

IS TIMSUM >/ TVANT '

TEST HOBS FIRST.

; TEST LOBS LAST.

; IS TIMSUM ITEMP '.

; TEST HOBS URST.

; TEST LOBS LAST.

ISIS-II 0000/0005 MACRO ASSEHBLER, V4.0 DFIND PAGE 4

IOC OBJ

012C BD

01 20 CA5001

0130 3A00O0

0133 3C

0130 320000

013? 3AO0O0

013A 07

01 3B 47

013C 3A0600

01 SF 00

0140 0600

0142 4F

0103 210000

0146 0?

0147 CDOOOO

01 4A OF

010B OF

014C 0600

014E 2A0200

01S1 0?

0152 220200

0155 C30B01

0150 3A0000

0158 3C

015C 320000

01SF 210000

0162 3A0OO0

0165 OS

0166 6F

0167 3AOOO0

016A BE

01 6B CA0BO1

016E 07

01 6F 47

0170 3A0600

0173 00

0174 3C

01 75 OF

0176 0600

0170 HOOOO

017B 0?

one ?e

017D CD2C02

0100 ER

0101 2A0400

1104 1?

0105 220000

0100 C33001

010B 210000

01 OE 35

010F 216502

LIKE

162

163

164 ADDVRD:

165

166

167

160

16?

170

171

172

173

174

175

176

177

170

17?

100

101

102

103

104

105

106

107 IKCH:

100

10?

170

171

172

173

174

175

176

177

170

17?

200

201

202

203

204

205

206

207

208

20?

210

211

212

213 LASSCN:

210

215

SOURCE STATEMENT

160

CHP

JZ

LDA

INR

STA

I

INCK

RAHPT

A

RAlffT

; COKE HERE IF TIHSUM NOT EQUAL TO ITEMP.

; RAMPT RAMn ? 1

CALCULATE R(N> POINTER BY: IRBRAH + OFFSET + 2 (NCNT)

LDA

ADD

HOV

LDA

ADD

HVI

HOV

LII

DAD

CALL

RRC

HOV

HVI

LHLD

DAD

SHLD

JHP

LDA

INR

STA

III

LDA

ADD

HOV

LDA

CHP

J2

ADD

HOV

LDA

ADD

1KR

KOV

HVI

LII

DAD

HOV

CALL

ICHG

LHLD

DAD

SHLD

JHP

LII

DCR

LII

HCNT

A

B,

OFFSET

B

B,

C,

INVERT

00R

A

IRBRAH

C, A

B, OOH

TIHSUH

TIMSUM

VRDTST

NCNT

A

HCNT

H,

DEB

I

L,

NCNT

H

LASSCN

A

B,

OFFSET

B

A

C,

B,

H,

1

A,

HINCON

I TEMP

D

ITEMP

ADDVRD

H, HCNT

H

H, LSCNH

; DOUBLE NCNT

; A * OFFSET + 2 (NCNT).

; BC * OFFSET + l(NCNT).

HL -. IRRRAM + OFFSET + 2(NCNT).

CONVERT RATE FROM SCAN/MIN TO SEC/SCAN

DIVIDE RESULT RT 2.

C * RATE N IN SEC(SCAN.

; HL = TIHSUH + BIN)

; N N ? 1

IRCNT ; IRCNT(DEB) N '

A

OOH

IRBRAM

; HL POINTS TO IRCNT(DEB).

DOUBLE NCNT.

STORE COPY OF HCNT IN B REG.

A : 2 (NCNT) + OFFSET.

A 2 (NCNT) + OFFSET + 1

BC * 2(KCNT> + OFFSET + 1

HL * IRBRAM +2 (NCNT) + OFFSET + 1

CONVERT UN) TO SECONDS.

STORE THID IN DE.

HL > ITEHP + UN) .

ITEHP ITEHP + UN).

N N-1.

PROHPT "LASTSCAN"

ISIS-II 0000/0083 MACRO ASSEHBLER, V4.0 DFIND PAGE 5

LOC OBJ LIKE SOURCE STATEMENT

161

0172 0608 216 HVI B, DBH

0174 CDOOOO E 217 CALL DVRITE

0177 CDOOOO E 210 CALL LDELAY

017A CDOOOO E 21? SHOV:

220 ;

CALL DSHOV

221 ; NOV DISPLAY CONTENTS

222 ;

01 ?D IF 223 IRA A

017E 320700 D 224 STA HIN

01A1 2AO200 D 225 LHLD TIMSUM

01A4 220000 E 226 SHLD THPNUH

01A7 120700 D 227 SHLD MINUTE

01AA 2A0700 D 221 CHANGE: LHLD MINUTE

01AD 220200 D 22? SHLD TIHSUH

0180 06 3C 230 HVI B, 3CH

01B2 3A0700 D 231 LDA HIKUTE

01B5 78 232 SBB B

01B6 320700 D 233 STA MINUTE

01B? D2C801 C 234 JNC NOBROV

01BC 0600 23S HVI B, OOH

01BE 3A00O0 D 236 LDA HINUTE+ 1

01C1 70 237 SBB 1

01C2 320000 D 230 STA HINUTE+ 1

01C5 FAD201 C 23? JK SHOVTS

01 CI 3A0700 D 240 NOBBOV LDA HIN

01CB 3C 241 INR A

01CC 320700 D 242 STA HIN

01CF C3AA01 C 243 JHP CHANGE

102 115702 C 244 SHOVTS LII H, TPAST

01DS 060D 245 HVI B, ODB

01D7 CDOOOO E 246 CALL DVRITE

01DA 3A0700 D 247 LDA HIN

HDD CDOOOO E 248 CALL BINASC

01EO 7A 24? HOV A, D

01E1 D630

01E3 41

250

251

SUI

HOV

30H

B, C

8114 CDOOOO E 252 CALL LOOKUP

01E7 SI 253 MOV D, C

81 El 71 254 HOV A, B

HE? D630 2SS SUI 3 OB

OlEB CDOOOO

OlEE 210000

01F1 3671

01F3 210000

E

E

E

254

257

250

257

CALL

LII

HVI

LII

LOOKUP

H,

M,

H,

COHM1

?1H

DATAl

OlFO 72

01F7 71

OlFO 36FF

OlFA ES

OlFB 3AO2O0

OlFE CDOOOO

0201 7A

0202 D630

0204 41

0205 CDOOOO

D

E

E

240

241

242

243

244

245

144

247

240

24?

HOV

HOV

HVI

PUSH

LDA

CALL

HOV

SUI

HOV

CALL

M,

H,

H,

H

TIHSUM

BINASC

A,

SOB

8,

LOOKUP

D

C

OFFH

D

C

; DISPLAY DENSITY BLOCK POINTED TO BY BAMPT

TIHSUH AS: HIN: SEC .

ZERO A AND SET CY TO 0.

ZERO MINUTE COUNTER.

STORE COPY OF TIHSUH IN MINUTE.

STORE COPY FOR LATER RETRIVAL.

; STORE COPY OF MINUTE IN TIHSUM.

B.40 ( 40 SECONDS IN A MINUTE ASSHOLE!).

LOB FIRST: MINUTE = MINUTE - 40.

A = HIKUTE - 40.

; NO CY IMPLIES HO NEED TO BORROW

; IF CY, BORROW 1 FROM HOB OF MINUTE.

; IF HOB NEGATIVE, THEN EXIT.

; INCREMENT HIKUTE COUNTER.

; PROHPT "TIKEELASPED*

; CONVERT HIN TO ASCI I .

D CONTAINS 10'S PLACE ASCII.

CONVERT TO SIHPLE BCD.

HIDE C FOR A SEC.

CONVERT BCD TO DISPLAY CODE.

D NOV CONTAINS 10 'S PLACE MINUTE CODE.

DO NOV FOR l'S PLACE MINUTE COUNT

; SET CONTROL DISPLAY FOR POS. 1 (All.

SEND 10 'S PLACE MINUTE CODE TO DISPLAY.

SEND l'S PLACE MINUTE CODE TO DISPLAY

SEND BLANK TO SEPERATE MIN FROM SEC.

SAVE DISPLAY ADDRESS.

DO KOV FOR SECOND COUNT.

; D CONTAINS 10'S PLACE SECOND COUNT.

; CONVEW 10'S BCD TO DISPLAY CODE.

ISIS-II 0010(0005 MACRO ASSEHBLER, V4.0 DFIND PAGE 4

LOC ORJ

1200 51

0209 70

020A D430

020C CDOOOO

020F II

0210 72

0211 71

0212 2AOOO0

0215 220200

021B 213102

021E 040A

0220 CDOOOO

0223 CDOOOO

0224 It

0227 210000

022A IS

022B C?

LINE

270

271

272

E 273

270

SOURCE STATEMENT

162HOV

HOV

SUI

D,

A,

30H

1210 C300O0 E

CALL LOOKUP

POP H ; RETREIVE DISPLAY ADDRESS.

; SEND ID'S PLACE SECOND COUNT.

i SEND l'S PLACE SECOND COUNT TO DISPLAY.

LHLD THPNUH

SHLD TIHSUH

; RESTORE TIHSUH TO ITS ORIGINAL VALUE.

27S HOV M, D

274 KOV M, C

277 ;

270

27?

ISO

181

202

283

284

205

284

207

188

28?

29 0

291

192

293

294

195

294

197

273

1??

380

301

302

303 NODATA: LII H, NODATM ; START ADDRESS OF "NODATA"

304 HVI R, OAR

SOS CALL DVRITE

304 CALL LDELAY

307 POP H

308 LII H, DFIND

30? PUSH H

310 RET

311

jjj ;teaa*ttttttettetttttettttttttttttttttttttttttttttttttttttttttttt

313

814

315

314

317

HO

31?

120

321

322

323

AT THIS POINT DENSITY VALUES ALONG VITH TIME ELASPED SHOULD BE

ON THE TVO DISPLAYS.

JMP UPORDN ; GO TO SELECT DATA UP, DATA DOVN OR RETURN

itti*ittttitttttttttttttttti

SUBROUTINES FOLLOV

ittittttttttttttttttttttttttt

itftttttittttit*i<tiittttt<tttiittttnttt<tttitiitttt<ttttttittittitittt

* IODATA "

THIS SUBROUTINE DISPLAYS'

NO DATA"

ON THE ALPHA DISPLAY.

IT ALSO POPS THE STACK AND PLACES A NEW RETURN ADDRESS OF

DFIND ONTO THE STACK.

ittttittttttttittttittttttitttttttttitttttitttittttttttittttttttttittittt

HINCON **

THIS ROUTINE CONVERTS MINUTES TO SECONDS.

PASS: A CONTAINS THE NUMBER OF MINUTES

RETURN: HL CONTAINS THE RESULT OF A I 40 IN SECONDS.

tetttittttitttttttttttttttttttttttttttettttttttttttttttttttttttttttitttttttt

ISIS-II 0000(3085 MACRO ASSEMBLER, V4.8 DFIND PACE

LOC OBJ LIKE SOURCE STATEMENT163

022C 210000 324 HINCON: LII H, OO00H

022F 013COO 325 LXI B, 003CH ; LOAD B VITH 40

0232 FEOO 324 HINADD: CPI OOH

0230 CO 327 RZ

8235 0? 320 DAD B

0234 3D 32? DCR A

0237 C33202 : 330

331 ;

JHP HINADD

332 ; DISPLAY MESSAGES FOLLOV:

333 ;

023A 20 330 NODATM: DB 20H ; BLANK

023B 20 335 DB 20H ; BLANK

02 3C OE 334 DB OEH ; N

023D OF 337 DB OFH ; 0

02 3E 20 330 DB 20H ; BLANK

023F 00 33? DB OOH ; D

0240 01 340 DB 01H ; A

0241 14 341 DB 14H ; T

0242 01 342 DB 01H ; A

0243 10 343 TVANTM DB 10H ; P

0244 12 344 DB 12H ; B

0245 OF 345 DB OFH ; 0

0244 03 344 DB 03H C

0247 OS 347 DB 05H ; E

0240 13 340 DB 13H S

024? 13 34? DB 13H s

024A 20 3S0 DB 2 OH BLANK

024B 23 351 DB 23H 0

02 4C 3D 352 DB 3DH =

024D 3F 353 DB 3FH

824E 14 354 TVHESS DB 14H T

024F 0? 355 DB 07H I

02 SO OD 354 DB ODH H

02S1 05 357 DB OSH E

82S2 20 350 DB 20H BLANK

0253 17 35? DB 17H V

8234 01 340 DB 01H A

0255 OE 341 DB OEH N

0254 10 342 DB 14H T

0257 OS 343 DB OSH E

1258 04 344 DB OOH D

025? 14 343 TPAST: DB 14H T

02SA 0? 344 DB 07H , 1

02SB OD 347 DB ODH , H

02SC 05 340 DB OSH ; E

025D 20 34? DB 2 OH ,BLANI

023E 05 370 DB 05H ; E

I25F OC 371 DB OCH i I

0240 01 372 DB D1H ; A

0241 13 373 DB 13H ; S

0242 10 374 DB 10H ; P

0243 OS 375 DB OSH i E

0244 04 374 DB OOH i D

0245 20 377 LSCNH: DB 2 OH ; BLANK

ISIS-II 0000(0085 MACRO ASSEHBLER, V4.3 DFIND PAGE 0

LOC OBJ LINE SOURCE STATEMENT

1640244 OC 370 DB OCH L

0247 11 37? DB 01H A

0240 13 300 DB 13H S

024? 10 301 DB MH T

024A 10 312 DB 20H BLANK

024B 13 383 DB 13H S

024C 03 384 DB OSH c

024D 01 38S DB 01H A

024E 0E 384

387 ;

388

33? ,

DB

DSEC

OEH K

OOOO 3?B TVANT: DS 02H TIKE WANTED IN SECONDS.

0002 371 TIHSUH: DS 02H 2 BYTE RUNNING SUM OF RATES ( ALSO IN SECONDS).

0004 3?2 ITEHP: DS 02H LENGTH OF I(N) IN SECONDS.

0004 3?3 OFFSET: DS 01H USED IN JUMPING I/R RLOCKS.

0007 3?4 HIKUTE: DS 02H PARTNER TO TIHSUM.

0007 375 HIH: DS 01H MINUTE COUNTER.

394 ;

3?7 END

PUBLIC SYMBOLS

IFHD c oooo ITEHP D 8000 HIN D 0007 HINCON C 022C OFFSET D 0004 SHOV C 017A TIHSUM D 0002

EXTERNAL SYMBOL!

ALPHA E 0000 BINASC E oooo CLEARA E 0000 CLEARS E 0000 COHH1 E 0000 DATAl E 0000 DEB E oooo

DSHOV E 0000 DVRITE E oooo INVERT E 0000 IRBRAH E 0000 IRCNT E 0000 KDSPY2 E 0000 LDELAY E oooo

LOOKUP E OOOO HINCNT E oooo NCNT E 0000 PLBYTE E 0000 POS1 I 0000 POS2 E 0000 BAMPT E oooo

RPOS1 E 0000 STABCT E oooo SUM E 0000 THPNUH E 0000 UPORDN E 0000

ISER SYMBOLS

ADDED C 0043 ADDVRD C 0130 ALPHA E 0000 BINASC E 0000 BLINK C OOCB CHANGE C 01AA CLEAR C 0040

CLEARA E 0000 CLEARS E oooo CLEAR!> C OOIS COHH1 E oooo DATAl E 0000 DEB E oooo DFIND C oooo

SHOW t OOOO DVRITE E oooo GETTV C 004? INCN C 0150 INVERT E 0000 IRBRAM E oooo IRCNT E oooo

ITEHP D 0004 KDSPY2 E oooo LASSCN C 010B LDELAY E oooo LOOKUP E 0000 LSCNM C 0245 HIN D 0009

IIKADD C 0232 HINCNT E oooo HINCON C 022C MINUTE D 0007 NCNT E 0000 NOBBOV C 01C8 NODATA C 021B

NODATH C 023A NOSUH C 00F5 OFFSET D 0004 OVER C 00D4 PLRYTE E 0000 POS1 E 0000 POS2 E 0000

1AMPT E 0000 RPOS1 E oooo SHOV C 01?A SHOVTS C 01D2 STABCT E 0000 SUM2 E 0000 SUHIR C 00E4

TIMSUM D 0002 THPNUH E oooo TPAST C 025? TSLSTV C 01 IF TVANT D 0000 TVANTH C 0243 TVMESS C 024E

TVNOTO C OOAB UPORDN E oooo VRDTST C 0108

ASSEMBLY COMPLETE, NO ERRORS

ISIS-II 0010(1015 MACRO ASSEHBLER, V4.0 UPORDN PACE 1

IOC OBJ

0000 CDF702

0003 CDOOOO

0O04 210000

000? 7E

00 OA 1403

000C FE01

OOOE C2O4O0

0011 3400

0013 210000

1014 7E

0017 14 OF

0017 FEOF

001B C22DO0

001E 3A0OOO

0021 3C

0022 320000

0025 FE02

8027 CA5703

LIKE

1

2

1

4

3

(

7

I

?

10

11

12

13

14

IS

16

17

10

1?

10

21

22

23

24

15

26

17

21

I?

30

31

32

33

34

35

34

37

31

3?

40

41

42

43

44

45

44

47

40

49

SO

51

52

S3

SOURCE STATEKEKT 165

t*M*e*ttetttetetettttttetttttttttttttttttt*ttttttttttt*ttttittttttttttt

UPORDN (UP OR DOVN) IS A KEYBOARD READ(COHMAKD ROUTIKE THAT

PERFORMS 5 DIFFERENT FUNCTIONS DEPENDING VHAT KEY IS DEPRESSED.

THESE FUNCTIONS ARE:

KEY

UP

DOVN

PRT

NIT

ENTER-ENTER

FUNCTION

THIS MOVES USER UP TO NEXT SEQUENTIAL DENSITY SCAN

THIS MOVES USER DOVN TO PRECEEDING DENSITY SCAN.

THIS VILL PRINT ALL ELEVEN DENSITY VALUES ON THE

40-COLUMN PRINTER THAT ARE CURRENTLY DISPLAYED.

RETURNS USES TO ENTER PROCESS PROMPT AS TO ALLOW

FOR VIEWING DATA IN A DIFFERENT NUMBER PROCESS.

TWO ENTERS IN A ROW VILL RETURN USES TO PROCESS

INFORMATION ENTRY ROUTINE TO ALLOW FOR ANOTHER PROCESS.

ttttil<ttttttl<tttttttttttttttlltltitttttttttl<tlttttttttltt<tt*tttt>ltl>ttt

NAME UPORDN

PUBLIC UPORDN

EITRN

EITRN

EITRN

EITRN

CSEG

UPORDN: CALL

CALL

KLOOK: LXI

HOV

ANI

CPI

JNZ

HVI

LXI

HOV

ANI

CPI

JNZ

LDA

INR

STA

CPI

JZ

ITEMP,TIHSUM, RAMH, NCNT, OFFSET, IRBRAM,DEB, FIFOCB.COMM2

DATA2,HANFLG, START, DFIND, INVERT, SHOW, IRCNT, HINCON, DVRITE

DRAM, NXDRAM, RPOS1 ,P0S1 ,POS2 , CLEARA, CLEARB,MIN

TDSTOR, PVRITE, PSEND, COMM1, DATAl,HANMOD,SUM2,KDSPY2,RPA2

RESET

FIFOCR

H,

A,

03H

01H

KLOOK

M,

H,

A,

OFH

OFH

KEKEY

HANFLG

A

HANFLG

02H

CLEAN

COHH2

R

OOH

DATA2

M

; RESET RESETS PARAMETERS USED IN KDSPY2.

; CLEAR FIFO.

; 027? STATUS WORD ADDRESS

; MASK OUT 5 HI -ORDER BITS.

; IF SOMETHING IN FIFO, ZERO VILL SET.

; IF NOT, KEEP LOOKING.

; SET FIFO AS READ SOURCE

; DATA ADDRESS OF EXPANSION 0277.

; PUT FIFO CONTENTS INTO A REC.

; MASK OUT HI-ORDER NIBBLE.

; IS IT ENTER KEY!

; CHECK FOR TWO CONCURRENT ENTERS.

; YES, 2 ENTERS; GO TO MANUAL HODE TEST.

ISIS-II 0000/0005 KACRO ASSEHBLER, V4.0 UPORDN PAGE 2

LOC OBJ

002A C30400

00 2D 07

002E AF

002F 320000

0032 71

033 FEOE

03S CA4A00

0030 FEOD

003A CACOOO

00 3D FEOC

003F CA3201

0042 FEOO

0O44 CA0000

0047 C30000

004A 2A00O0

004D 3A0100

0050 IC

0051 C25BO0

00S4 3A0000

00 57 BD

0050 CA0300

OOSB 3AO0O0

OOSE 3C

OOSF 320000

0O42 3AO0O0

0045 07

0044 07

0047 3A0000

00 4A 00

004B 0400

00 4D OF

004E 210000

0071 0?

0072 CDOOOO

0O7S OF

0074 OF

0077 0400

007? 2AOOO0

007C 0?

007D 220000

OOOO C30000

0003 210000

0004 3A00O0

0007 03

OOOA 4F

OOOB 54

00 OC IS

OOOD 3AOOO0

0070 BA

1071 CAB300

1074 3C

LINE SOURCE STATEHENT

166

54

55 NEKEY:

54

57

50

5?

40

61

62

63

64

45

44

47

41 NEXTUP:

4?

70

71

72

73

74

75 NOTEQ:

74

77

70

7?

00

01

02

03

04

03

04

07

00

09

90

91

92

93

94

93

94

97

90 INKN:

99

100

101

102

103

104

105

104

107

JHP

HOV

XRA

STA

HOV

CPI

JZ

CPI

JZ

CPI

JZ

CPI

JZ

JHP

LHLD

LDA

CHP

JNZ

LDA

CHP

JZ

IDA

INR

STA

KLOOK

B,

A

HANFLC

A,

OEH

NEITUP

ODH

NEITDN

OCH

PRINT

OIR

DFIND

UPORDN

ITEHP

TIHSUH+t

H

NOTEQ

TIHSUH

I

IKKH

RAMPT

A

RAHPT

; CO LOOX FOR ANOTHER ENTRY.

I

; SECOND DEPRESSION NOT ENTER, RESET HANFLC.

; THIS IS INCREMENT UP ROUTINE.

; THIS DECREMENT DOVN ROUTINE.

; THIS PRINTS CURRENT DISPLAY CONTENTS.

GO TO SELECT NEW PROCESS 0 .

ALL OTHER ENTRIES INVALID, CO LOOK AGAIN.

IS TIHSUH = ITEHP!

; IF HOB'S NOT EQUAL, THEN LEAVE.

; COME HERE IF TIHSUM NOT EQ TO ITEHP.

; RAMT 1AWT ? 1.

CALCULATE R(H) POINTER RY: IRBRAH + OFFSET + 2 (NCNT)

LDA

ADD

HOV

LDA

ADD

HVI

HOV

LII

DAD

CALL

RRC

HOV

HVI

LHLD

DAD

SHLD

JHP

LII

LDA

ADD

MOV

HOV

DCR

LDA

CHP

JZ

INR

NCNT

A

B,

OFFSET

8

8,

C,

H,

B

INVERT

C,

R,

TIHSUH

1

TIHSUH

SHOV

H,

DEB

L

I.

D,

D

HCNT

D

NHDATA

A

00B

A

IRBRAH

1

OOH

IRCNT

; DOUBLE NCNT

; A OFFSET + 2 (NCNT).

; BC . OFFSET + 2 (NCNT).

HL IRBRAM + OFFSET + 2(NCNT).

CONVERT RATE FROM SCAN/HIN TO SEC/SCAN.

DIVIDE RESULT RY 2.

HL TIHSUH + R(N>.

UPDATE TIHSUH.

DISPLAY DENSITIES POINTED TO RY RAHPT

IRCNT(DEB) r N !

; HL POINTS TO IRCRT(DER)

; IF EQUAL, CO DISPLAY 'NO MOREDATA"

; IF NOT EQUAL, ITEHP ITEHP + UN).

ISIS-II 0000/0015 MACRO ASSEHBLER, V4.0 UPORDN PAGE 3

LOC OBJ

0095 320000

0090 17

007? 47

007A 3A0000

0O7D 00

009E 3C

00 9F 4F

OOAO 0400

0OA2 210000

00A5 09

0OA4 7E

00A7 CDOOOO

60 AA EB

OOAB 2A0000

OOAE 1?

OOAF 220000

0O82 C33BO0

00B5 217303

00 BO 04 OD

OOBA CDOOOO

OOBD C30000

OOCO AF

0OC1 320000

OOCO 2A00OO

00 C7 EB

OOCO 78

IOC? 14 3C

IOCB 71

10 CC SF

OOCD D2D000

OODO 7A

00D1 0400

0OD3 70

OODO 57

00 DS FADFOO

OODO 210000

ODDB 34

OODC C3C100

OODF 3A0000

00E2 07

0OE3 47

OOEO 3A0000

0OE7 00

OOEO 3C

001? OF

OOEA 0400

OOEC HOOOO

OOIF 0?

OOFO 3AO0O0

00F3 74

OOFO CDOOOO

00F7 220000

00 FA IB

OOFB 2AOO00

LIME

100

10?

uo

UI

112

113

114

US

114

117

UO

11?

120

121

122

123

120

125 NMDATA:

124

127

120

12? NEITDN:

130

131

132

133 OHT:

134

135

134

137

130

13?

140

141

142

143 NOBARO:

144

145

144 DONE:

147

140

14?

ISO

151

152

153

ISO

1SS

154

157

150

IS?

140

141

SOURCE STATEHENT

167

STA

ADD

HOV

LDA

ADD

INR

HOV

HVI

LII

DAD

HOV

CALL

ICHG

LHLD

DAD

SHLD

JHP

LII

HVI

CALL

JHP

IRA

STA

LHLD

ICHG

HOV

HVI

SBB

HOV

JNC

HOV

HVI

SBB

HOV

JM

III

INR

JHP

IDA

ADD

HOV

LDA

ADD

INR

HOV

HVI

III

DAD

LDA

SUR

CALL

SHLD

ICHG

LHLD

A

OOH

IRBRAH

HCNT

A

B,

OFFSET

B

A

C

R,

H,

B

A,

HINCON

ITEM?

D

ITEHP

NOTEQ

H, NHDATH

B, ODH

DVRITE

UPORDN

A

HIN

ITEHP

A,

B,

B

E,

NOBARO

A,

R,

B

D,

DONE

H,

H

OHT

NCNT

A

B,

OFFSET

B

A

C

B,

H,

B

MIN

H

HIHCON

I ITEHP

TIHSUM

E

3CH

D

OOH

HIN

A

00B

IRBRAM

; DOUBLE NCNT

; CEKEBATE ITEHP ITEHP ? 1(H).

; A > OFFSET + 2 (HCNT).

; A OFFSCT + 2 (NCNT) + 1.

; BC r OFFSn + 2 (NCNT) + 1.

; HL > OFFSET + 2 (NCNT) + 1 + IRBRAH

; CONVERT I(K) TO SECONDS.

I STORE THID IN DE RECISTER.

; ITEHP ITEHP ? KM).

; DISPLAY 'NO HOREDATA"

; LOAD TEIT COUNTER.

i LOOK FOR MORE KEY COMMANDS.

; CONVERT ITEHP BACK TO MINUTES.

PUT COPY OF ITEMP INTO DE.

LOB OF ITEMP INTO A.

8-60 .

; UPDATE E REG.

; NOV DO HOB'S.

UPDATE D REG.

VHEN HIB COES NEGATIVE, THEN DONE.

INCREMENT MINUTE COUNTER.

; PERFORM LITEMP ITEHP I(N) IN MINUTES

; Cn 1(H) FIRST.

; A2(NCNT) + OFFSET.

; A * 2 (NCNT) + OFFSET + 1.

HL * IRBRAH + 2 (NCNT) + OFFSET + 1.

PLACE HIKUTE VERSION OF ITEMP IN A.

A r ITEHP - I(N) ; ALL IN HINUTES.

CONVERT RESULT TO SECONDS .

LITEMP x ITEHP - UN), NOV IN SECONDS.

PLACE COPY IN DE .

TIHSUM I ITEHP !?!

ISIS-II 0000/0005 MACRO ASSEMBLER, VO.O UPORDN PACE

LOC OBJ LINE SOURCE STATEMENT

168

OOFE ?C 142 KOV A, H

OOFF BA 143 CHP D

0100 C21A01 C 160 JNZ DECKS

0103 7D US MOV A, I

0104 BB

0105 C21A01 C

166

167

CMP

JNZ

E

DECKS

0100 3AS0OO E 168 NEQO: LDA NCNT

010B FEOO 16? CPI 008

01 OD CABSOO C 170 JZ KHDATA

0110 3D 171 DCR A

0111 320000 E 172 STA NCNT

0114 2A0000 D 173 LHLD L ITEHP

0117 220000 E 170 SHLD ITEHP

011A 210000 E 175 DECKS: LII H, RAMPT

01 ID 35 176 DCR H

SUE 3AS00O E 177 LDA HCNT

0121 07 170 ADD A

0122 07 17? NOV R, A

0123 3AO0O0 E 100 LDA OFFSET

0124 00 101 ADD B

0127 0400 182 HVI B, OOH

012? 4F 183 HOV C, A

012A 210000 E 134 LII H, IRBRAH

012D 0? 135 DAD B

01 2E CDOOOO E 186 CALL INVERT

0131 OF 187 RRC

0132 4? 188 SUBBS: HOV B, A

0133 2A0000 E 18? LHLD TIHSUH

0134 7D 170 HOV A, L

0137 70 171 SSB B

0130 4F 192 HOV L, A

013? D24101 C 193 JKC OBTIT

01 3C ?C 194 HOV A, H

013D 0400 193 HVI B, OOH

01 3F 78 194 SBB B

0100 47 197 HOV H, A

0141 220000 E 190 OUTIT: SHLD TIHSUM

0104 FEOO 199 CPI OOH

0144 C2O0O0 E 200 JNZ SHOV

014? ?D 201 HOV A, I

01 OA FEOO 202 CPI OOH

014C CABSOO C 203 JZ KHDATA

01 4F C300O0 E 204 JMP SHOV

8151 3E14 205 PRINT: HVI A, 14H

0150 CDOOOO E 204 CALL PSEND

0157 3EO0 207 HVI A, OOH

15? CDOOOO

OISC 218703

IISF OEOA

0141 CDOOOO

E

C

E

200

20?

210

211

CALL

LII

HVI

CALL

PSEND

H,

C

PVRITE

PRONUM

OAR

0140 3A0OO0 E 212 LDA DEB

0147 C430 213 ADI 30H

014? CDOOOO

014C 219103

E

C

214

215

CALL

LII

PSEND

H, TPAST

; TEST HOR'S FIRST.

; CO TO DECKS IF HOB'S NOT EQUAL.

TEST LOB'S.

CO TO DECKS IF LOB'S NOT EQUAL.

N * 0 ??!!!!

; IF NOT EQUAL TO 0, THEN N N-1.

; SET ITEMP * L ITEHP.

; RAMPT * RAMPT - 1.

; NOV DO TIHSUH * TIHSUM - RCN)

; A 2(NCNT) + OFFSET

; HL IRBRAM + OFFSET +2 (NCNT)

: NOV DO ACTUAL SUBTRACTION.

; UPDATE I VITH BESULT.

; NOV DO HOB'S.

UPDATE H VITH RESULT.

TIHSUH . 0 !!!!!

RECALL A HOB OF TIHSUM.

; SELECT 4 EXTRA DOT ROWS OF SPACE.

; PRINT'

PROCESSKDEB).

; CONVERT PROCESS NUMBER TO ASCII.

; LOAD NOV"XIITIHEIELASPEDM

"

ISIS-II 8080(8085 HACRO ASSEHBLER, VO.O UPORDN PACE 5

IOC OBJ LIKE SOURCE STATEMENT

169

014F 0E11

0171 CDOOOO E 21?

0174 210000 E 210

0177 3471

017? 210000 E 220

017C 7E

017D ES

01 7E GD2403 C 223

0101 7?

0102 C430

0104 CDOOOO E 224

0107 11

0108 7E

010? E5

010A CD2403 C 230

01 OD 7?

010E C430

0170 CDOOOO E 233

0173 3E20

0175 CDOOOO E 235

0178 3E4D

01 ?A CDOOOO E 237

017D 3E4?

017F CDOOOO E 23?

01A2 3E4E

01A4 CDOOOO E 241

01A7 El

01 AO 7E

01A? 3E20

01 AB CDOOOO E 245

01AE 7E

01 AF IS

01BO CD2403 C 248

0183 7?

01B0 C430

01B4 CDOOOO E 251

01B? El

01 BA ?E

01BB CD2403 C 254

01 BE 7?

01RF C430

01C1 CDOOOO E 257

01C4 3E20

01C4 CDOOOO E 25?

01C? 3E73

01CB CDOOOO E 241

01CE 3E4S

01DO CDOOOO I 243

01D3 3E43

01DS CDOOOO E 245

I1D0 3E17

01 DA CDOOOO I 247

HDD 3E01

01DF 320200 D 24?

HVI

CALL

LII

HVI

LII

HOV

PUSH

CALL

HOV

ADI

CALL

POP

HOV

PUSH

CALL

HOV

ADI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

POP

HOV

HVI

CALL

HOV

PUSH

CALL

HOV

ADI

CALL

POP

HOV

CALL

HOV

ADI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

HVI

STA

C

PVRITE

H,

H,

H,

A,

H

REVERT

A,

30H

PSEND

H

A,

H

REVERT

A,

301

PSEND

A,

PSEKD

A,

PSEND

A,

PSEND

A,

PSEND

H

A,

A,

PSEND

A,

H

REVERT

A,

301

PSEND

H

A,

REVERT

A,

301

PSEND

A,

PSEND

A,

PSEND

A,

PSEND

A,

PSEND

A,

PSEND

A,

STEP

118

COMM1

71H

DATAl

H

2 OH

4DH

47H

4 EH

H

201

2 OH

73H

45H

43H

17H

81H

; LOAD CONTROL DISPLAY COMMAND ADDRESS.

; GET HINUTES ELASPED.

; SAVE DATA ADDRESS.

; CHANGE CONTROL DISPLAY CODE TO BCD.

; CONVERT TO ASCII.

; SEND TO PRINTER BUFFER.

; GET l'S PLACE HIKUTE COUNT.

; SPACE

; H

; I

; H

; GET BLANK BETWEEN HINUTES AND SECONDS.

; SEND BLANK TO PRINT BUFFER.

; GET 10'S PLACE SECOND COUNT.

; GET l'S PLACE SECOND COUNT.

; SEND BLANK.

; s

; I

; C

; PRINT LINE BUFFEB CONTENTS.

; INITIALIZE STEP COUNTER

ISIS-II 8000/0005 HACRO ASSEHBLER, V4.0 UPORDN PACE

IOC OBJ LINE SOURCE STATEMENT

170

01E2 AF 270 XRA 1

01 E3 320000 E 271 STA TDSTOR ; SET HSD OF STEP 1 > 0

01E6 210000 E 272 LXI H, COHM2

01E? 3670 273 HVI H, 7OH ; SET FOR RAH READ AT 000 (Al) .

01ER 210000 E 274 LXI H, DATAl

11 EE 7E 275 HOV A, H i READ POSITION 000.

01EF IF 276 RAR

OlFO IF 277 RAR

1F1 IF 278 RAR

01 FI IF 27? RAR

01F3 E60F 210 ANI OFB

01FS 320100 E 201 STA TDSTOR+1

OlFO 7E 202 HOV A, H

OIF? IF 203 RAR

OlFA IF 204 RAR

OlFB IF 285 RAR

01FC IF 286 RAR

01 FD 16 OF 287 ANI OFH

01FF 320200 288 STA TDSTOR+ 2

0202 CD8F02 28? FIRST: CALL DATPRT ; PRINT 1ST STEP ON PRINTER

0205 210000 270 LXI H, DATAl

0208 CD6B02 271 CALL LOADA ; 3RD.

820B CD6B02 272 CALL LOADA ; 5TH.

020E CD6B02 273 CALL LOADA ; 7TH.

0211 CD6B02 2?4 CALL LOADA ; ?TH.

0214 7E 275 SECB: HOV A, H ; Gn 11 TH STEP AND CHANCE OVER TO SECTION B.

0215 IF 276 RAX

0216 IF 277 RAR

0217 IF 270 RAR

0210 IF 27? RAR

021? E60F 300 ANI OFH

021B 320000 E 301 STA TDSTOR

021E 7E 302 HOV A, R

021F IF 303 RAR

0220 IF 304 RAR

0221 IF 305 RAR

0222 IF 306 RAR

0223 E60F 307 ANI OFH

0225 320100 E 300 STA TDSTOR+1

0220 HOOOO E 30? LXI H, COHH2

22B 3670 310 HVI H, 708

I22D 210000 E 311 LXI H, OATA2

0230 7E 312 MOV A, H ; SECTION B, RAM ADDRESS 000

0231 I60F 313 AMI OFH

0233 320200 E 314 STA TDSTOR+2

0236 CD0FO2 C 315 CALL DATPRT ; PRINT UTH STEP.

023? 210000 E 316 REST: LXI H, DATAl

023C CDS302 C 317 CALL LOADB ; 13TH.

23F CDS302 C 310 CALL LOADB ; 15TH.

0202 CDS302 C 31? CALL LOADB ; UTH

0205 CD5302 C 320 CALL LOADB ; 17TH.

0200 CDS302 C 321 CALL LOADB ; 21ST.

020B 3E17 322 HVI A, 17H i PRINT ONE BLANK LINE TO SEPERATE DATA RLOCKS

024D CDOOOO E 323 CALL PSEKD

ISIS-II 0080(0085 MACRO ASSEMBLER, V4.0 UPORDN PAGE 7

LOC OBJ

0250 C30000

0253 7E

0254 E60F

0256 320000

02S? 7E

02SA I60F

OISC 320100

025F 7E

0260 E60F

0262 320200

0265 E5

0266 CD0F02

026? El

026A C?

026B 7E

026C IF

026D IF

026E IF

026F IF

0270 E60F

0272 320000

027S 7E

0276 IF

0277 IF

0278 IF

027? IF

027A E60F

027C 320100

027F 7E

0200 IF

0201 IF

0202 IP

283 IF

0204 16 OF

LINE

C 324

323

326

327

320

32?

330

331

332

333

330

335

336

E 337

330

33?

E 300

341

342

E 343

344

C 345

346

347

340

34?

350

351

3S2

35 3

354

355

356

357

350

35?

360

341

342

343

E 344

34S

346

367

360

36?

370

E 371

372

373

370

375

376

377

171

SOURCE STATEHENT

JHP UPORDI

<**t*tttttllt<ttlttttttttttttlltttttttttttttlttltlttttttilltlttttlttll

e*i lOADB *

READS 3 DISPLAY LOCATIONS FROM DENSITY DISPLAY, STORES THEH

IN TDSTOR, +1, +2 AND THEN PRINTS IT RY CALLING DATPRTR.

tttititttttttttttttttittttttttittttt*t<tttttititttttttttttt<tt*ttittiitt

LOADB: HOV A, H ; ASSUHE HL IS LOADED VITH DATA2 ADDBESS.

ANI 0FB

STA TDSTOR

HOV A, H

ANI OFH

STA TDSTOR+1

HOV A, H

ANI 0FI

STA TDSTOR+2

PUSH H

CALL DATPRT

FOP H

RET

ittittttttttttitttt*ttttititiit<tttttttittttttttt*itttttttttttttittttitt

* LOADA *

READS 3 DISPLAY LOCATIONS, RUT THIS TIHE FROM SECTION B AND MUST

ROTATE RESULTS 4 TIMES TO GET HON IN LON POSITION.

tttlttttittttlttttttittltttlttttMitttttttlttiittMttttttttlti

SAVE CONTENTS OF HL

LOADA: HOV

RA1

RAR

RAR

RAR

ANI

STA

HOV

RAR

RAR

RAR

RAR

ANI

STA

HOV

RAR

RAR

RAR

RAR

ANI

A, H ; AGAIN ASSUMES HI CONTAINS DATA2 ADDBESS.

OFH

TDSTOI

A, H

; KASK OUT HI-ORDER NIBBLE.

0FR

TDSTOR+1

A, H

OFH

ISIS-II 0010(1015 MACRO ASSEHRLER, V4.0 UPORDN PAGE

LOC OBJ

0216 320200

020? 15

02IA CD1F02

I2ID El

I20E C?

020F 217F03

0272 0E0B

0270 CDOOOO

0277 3AO200

027A 47

027B 16 OF

027D FEOB

027F C2A702

02A2 3E10

02 A4 00

02A5 E6F0

02A? 3C

S2A0 4?

02A? 70

02AA 320200

02AD IF

02AE IF

02AF IF

02B0 IF

02B1 E60F

02B3 C630

02B5 CDOOOO

0280 70

028? E60F

02 BB C6 30

2BD CDOOOO

02CO 3E20

2C2 CDOOOO

02CS 3E3D

2C7 CDOOOO

02 CA 3E20

02CC CDOOOO

02CF 3A0000

I2D2 C630

02D4 CDOOOO

02D7 3E2E

2D? CDOOOO

LINE

371

17?

310

311

312

383

384

3 IS

384

317

381

31?

3?0

391

392

393

394

395

394

397

391

399

400

401

402

403

004

oos

004

007

400

007

410

Oil

412

413

414

415

414

417

410

41?

420

421

422

423

424

425

424

427

420

02?

030

431

SOURCE STATEMENT

STA TDSTOR+2

PUSH H

CALL DATPRT

POP H

RH

tttttttltttttttttttlttttttttlttttttttttttlttlttttliltttttttlttttttttlltt

* DATPRT eet

PASSED: STEP, TDSTOR, +1, +2 ALL ARE IN BCD.

STEP IS INCREMENTED BY 2 WHEN EXITED

PRINTS:'STEP (STEP) (TDSTOR) .(+1H+2)

"

tettetttttttttttttttttttttttttttttttttttttttttttttttttttttitttttttitttt

172

DATPRT: LII

HVI

CALL

LDA

HOV

ANI

CPI

JNZ

MV1

ADD

ANI

INR

KOV

DONOT: HOV

STA

RAR

RAR

RAR

RAR

ANI

ADI

CALL

HOV

ANI

ADI

CALL

HVI

CALL

HVI

CALL

HVI

CALL

LDA

ADI

CALL

HVI

CALL

H, STEPH

C, ORH

PVRITE

CTEP

1, 1

OFH

DONOT

A,

B

OFOH

A

B,

A,

STEP

10H

OFH

30H

PSEND

A,

OFI

30H

PSEND

A,

PSEND

A,

PSEND

A,

PSEND

TDSTOB

3 OH

PSEND

A,

PSEND

20H

3DH

2 OH

SEND IIIXISTEPII TO PRINTER.

LOAD TEXT COUNTER.

STEP IS IN FORMAT: HON > 10'S, LON -- l'S.

KASK TO CET ONE'S PLACE.

IF NO ZERO, THEN l'S * ? OR LESS.

SET A * 000100000

INCREMENT 10'S PLACE

RESn ONE'S PLACE TO ZERO.

ADD 1 TO Cn FROH 10D TO 1 ID.

UPDATE STEP.

ROTATE TO GET 10'S PLACE INTO ION.

sn HOfeO.

CONVERT TO ASCII.

SEND TO PRINTER.

2EH

; SEND BLANK TO PRINTER.

; SEND EQUAL SIGN (=).

; SEND ONE HORE SPACE.

; CET HOST SIGNIFICANT DENSITY DIGIT.

; CONVERT TO ASCII.

; SEND' "

TO PRINTER RUFFER.

ISIS-II 0000(0015 HACRO ASSEHBLER, VO.O UPORDN PAGE 9

IOC OBJ

02DC 3A0100

02DF C430

02E1 CDOOOO

02E4 3A0200

02E7 C430

02E? CDOOOO

02EC 3E17

02EE CDOOOO

02F1 210200

I2F0 3E02

02F4 04

02F7 77

02FI C?

02F? 3E00

02FB 320000

02FE H2E80

0301 220000

0304 3E73

0304 320000

030? 3E04

030B 320000

03 OE 3E64

0310 320000

0313 3EDF

0315 320000

0310 320000

031B 3E16

031D CDOOOO

0320 3E00

0322 CDOOOO

0325 C?

0326 FEOC

0328 OEOO

032A CO

032B FE7F

032D 0E01

032F CO

0330 FE4A

0332 0E02

0330 CO

33S FEOB

LINE

E 432

433

E 434

E 43S

436

E 437

438

E 43?

D 440

SOURCE STATEHENT

173LDA

ADI

CALL

LDA

ADI

CALL

HVI

CALL

LII

HVI

ADD

HOV

RET

041

442

443

444

445 ;

446 ;

04? ;

440 RESET: HVI

TDSTOR+1

30H

PSEKD

TDSTOR+2

3 OR

PSEND

A,

PSEND

H,

A,

M

H,

17R

STEP

02H

NOV PRINT RUFFER CONTENTS.

44?

450

4S1

452

453

4S4

455

456

457

450

45?

460

461

462

463

444

445

466

467

460

46 7

470

471

472

47 3

474

475

476 REVERT: CPI

A SIHPLE SUBROUTINE FOR THOSE OF YOU VHO ARE RUBBEB PEOPLE.

RESn HANFLG TO OFF.

RESET DRAM POINTER.

STA

LII

SHLD

HVI

STA

HVI

STA

HVI

STA

HVI

STA

STA

HVI

CALL

HVI

CALL

RET

A, OOH

HANFLG

H, 002CH

NXDRAM

A, 73H

POS!

A, OOH

POSt

A, 64H

RPOS1

A, ODFH

CLEAR!

CLEARS

A, 16H

PSEKD

A, OOH

PSEKD

RESET PRINTER TO 0 EnRA DOT FEED.

ittttttttttitttttitiitttttititiiittttiitttttttittttttttttttttittttttitt

REVERT *

REVERT RECEIVES CONTROL DISPLAY CODE IN A RECISTER AND CONVERTS

IT TO THE EQUIVALENT BCD CODE AND RETURNS IT IN C REGISTER.

tttttttttttttttitttttittttttttttttttttittttttttttttttttttttittttttttttti

477

470

07?

000

401

082

003

404

405

HVI

R2

CPI

HVI

RZ

CPI

HVI

RZ

CPI

OCH

C

OFH

C

OAH

C

ORH

OOH

01H

02H

DISPLAY CODE FOR 2ERO.

00B

01

01

02

01

03

ISIS-II 0000/0005 MACRO ASSEHBLER, V4.0 UPORDN PACE 10

LOC OBJ

0337 0EO3

033? CO

033A FE??

833C OEIO

033E C8

033F FE29

0341 OEOS

0343 CO

0344 FE20

0306 0EO6

0300 CO

0349 FE8F

034B 0E07

030D CO

03 4E FEOO

0350 OEOO

0332 CO

0353 FEO?

0355 OEO?

0357 CO

0330 C?

03S? HOOOO

03SC 060D

03SE CDOOOO

0361 CDOOOO

0360 1AO0O0

0367 FEOO

036? CAOOOO

036C 3EFE

036E D300

0370 C3S703

0373 OE

8374 8F

0375 20

1376 OD

0377 OF

1370 12

037? OS

837A 20

037B 00

037C 01

LIKE

406

487

488

48?

470

471

4?2

473

474

475

476

477

470

47?

500

501

S02

S03

504

505

506

507

500

SO?

510

311

512

S13

514

US

516

517

510

51?

520

521

522

S23

524

525

526

527

320

52?

530

531

532

533

534

S3S

536

537

530

S3?

SOURCE STATEMENT

174

HVI C

RZ

CPI ??H

HVI C

RZ

CPI 27H

HVI C

RZ

CPI 20H

HVI C,

RZ

CPI OFH

HVI C,

RZ

CPI OSH

HVI C

RZ

CPI 09H

HVI C,

RZ

RET

ttttttetttti

*t CLEAN

03H ; 03

; 04

OOH ; 04

; 05

OSH ; OS

; 06

06H ; 06

; 07

07H -, 07

; oo

OOH ; 00

; 0?

09H ; 09

; NO HATCH VILL RVTURN AN? VAY.

CLEAN ALLOWS MANUAL USE OF FTS SYSTEH SO USER HAY CHANCE SOLUTIONS

VITHOUT HAVING TO RE-CALIBRATE DEVICE. DEVICE VILL REMAIN IN MANUAL

HODE UNTIL ENTER KEY IS PRESSED.

ttittttttttttitttttttttttttt

CLEAN: LXI

HVI

CALL

CALL

LDA

CPI

JZ

HVI

OUT

JHP

KANHOD ; PROMPT "MANUALHODE?"

B, ODH

DVRITE

KDSPY2

SUM2

OOH

START

A, OFEH

LOV RPA2

CLEAR

; ENTER 0 AND RETURN TO VARM START.

; ANYTHING ELSE PUTS YOU INTO MANUAL

; SET FOR MANUAL CONTROL.

DISPLAY MESSAGES.

NHDATH: DR

DR

DB

DB

DB

DB

DB

DB

DB

DB

OEH

OFH

20H

ODH

OFH

12H

05H

2 OH

OOH

01H

i N

; 0

; BLANK

; M

; 0

; I

; E

; BLANK

i D

; 1

ISIS-II 1010/0015 MACRO ASSEHBLER, V4.0 UPORDN PAGE 11

LOC ORJ

037D 10

037E 01

037F 20

0300 20

0301 10

0302 20

0303 20

0304 S3

030S 74

0306 65

0307 70

0301 20

030? SO

030A 52

83 OB 4F

030C 03

030D 4S

03IE S3

030F S3

0370 20

0371 20

0372 20

0373 20

0374 54

037S 4?

0374 4D

0377 45

0370 20

037? 4S

S37A 4C

037B 61

037C 73

390 70

037E 65

037F 64

03A0 20

03A1 3A

03A2 20

0000

0002

LINE

soo

541

542 STEPH:

543

344

S45

S46

547

540

54?

550

551

5S2 PRONUM

553

554

355

SS6

557

550

55?

S60 TPAST:

561

562

563

564

S65

566

567

S60

54?

570

571

572

573

374

575

574

577

370 ;

37?

500 ;

501 LITEMP:

502 STEP:

S83 ;

504

SOURCE STATEMENT

175

DB

DB

DB

DB

DB

DB

DB

08

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DB

DSEC

DS

DS

END

14H

01H

20H

2 OH

20K

2 OH

20H

S3H

70H

OSH

70H

20H

SOH

S2H

OFH

43H

43H

S3H

S3H

2 OH

20H

2 OH

20H

SOH

47H

4DH

45H

2 OH

OSH

4CH

41H

73H

70H

43H

44H

2 OH

3AH

2 OH

02H

01H

T

A

SPACE

SPACE

SPACE

SPACE

SPACE

S

T

E

P

SPACE

P

1

0

C

E

S

S

SPACE

SPACE

SPACE

5PACE

T

I

H

E

SPACE

E

I

A

S

P

E

D

SPACE

SPACE

2 BYTES OF RAH FOR LOVER INTERVAL STORAGE IN NEXTDN

1 BYTE USED AS STEP COUNTER IN PRINT ROUTINE.

PUBLIC SYMBOLS

IPORDH C 0000

EITERNAL SYMBOLS

CLEARA E 0000 CLEABB E 0000

DFIND E 0000 DRAM E 0000

ITEHP E 0000 KDSPY2 E 0000

COMH1 E 0000 COKH2 E 0000 DATAl E 0000 DATA2 E 0000 DEB E 0000

DVRITE E 0000 FIFOCR E 0000 INVERT E 0000 IRBRAM E 0000 IRCNT E 0000

HANFLG E 0000 MAKHOD E 0000 HIN E 0000 HINCON E 0000 NCNT E 0000

ISIS-II 0000(1005 KACRO ASSEHBLER, V4.0 UPORDN PAGE 12

176

niSAH E 0100 OFFSET E oooo POS1 E 0000 POS2 E 0000 PSEND E 0000 PVRITE E 0000 RAMPT E 0000

RPA2 E 0000 RPOS1 E oooo SHOV E 0000 START E 0000 SUM2 E 0000 TDSTOR E 0000 TIHSUM E 0000

IS EX SYMBOLS

CLEAN C 035? CLEARA E oooo CLEARS E 0000 COMM1 E 0000 COHM2 I OOOO DATAl E 0000 DATA! E 0000

DATPRT C 12 IF DEB E oooo DECKS C OUA DFIND E 0000 DONE C OODF DONOT C 02A? DRAM E 0000

IVRITI 0000 FIFOCR E oooo FIRST C 0202 INKN C 0013 INVERT E oooo IRBRAM E 0000 IRCNT E 0000

ITEMP E 0000 KDSPY2 E oooo KLOOK C 0004 LITEMP D 1000 LOADA C 024B LOADB C 0253 HANFLC E 0000

RANtOD E OOOO HIN E 000D MINCON E OOOO NCNT E oooo NEKEY C 002D NEQO C 0100 NEITDN C 80 CO

NEITUP C 004A NHDATA C 0OS5 NKDATM C 0373 NOBARO C OODI NOTEQ C OOSB NIDRAM E oooo OFFSET E 0000

OHT C O0C1 OUTIT C 0141 POS1 E OOOO POS2 E 0000 PRINT C 0152 PRONUM C 0319 PSEND E 0000

PVRITE E 0000 RAHPT E oooo RESET C 02F? REST C 023? REVERT C 0324 RPA2 E oooo RPOS1 E 0000

SECB C 0214 SHOV E oooo 5TART E 0000 STEP D 0002 STEPH C 037F SUBBS C 0132 SUM2 E 0000

TDSTOR E 0000 TIHSUH E oooo TPAST C 0371 UPORDN C 0000

ASSEMBLY COMPLETE, NO ERRORS

177

Appendix 3j_ Raw Data

The first section of data that appears here is for EK

Commercial Film, type 6127 developed in D-76. The raw data is

reproduced directly from the printer tapes that are output by the

IR densitometer. After this first set was collected, the

electronics that control the printer broke down and the unit had

to be returned to the manufacturer for repair. The remaining

data from the Fine Grain Release Positive experiments was repro

duced by hand from the 33-digit LED density display. The IR den

sitometer will still work without the printer, but it certainly

saves a lot of work for the user.

At the time of this writing, the control electronics

still had not yet been returned from the NCR Corporation.

Process 1 = 05 Minutes

Ron 1 U/lo/gl

Interval 01 = 01 Minutes

Rate 01 = 60 scans/a inute

Interval 02 = 04 Minutes

Rate 02 = 10 scans/minute

Process 2 = 01 Minutes

Process 3 = 00 Minutes

178

PROCESS 1 Tiie Elasped 00 Kin 50 sec

0.19

0.19

0.19

0.22

0.23

Step 0i

Step 03

Step 05

Step 07

Step 09

Step 11 = 0.2S

Step 13 = 0.33

Step 15 = 0.41

Step 17 = 0.51

Step 19 = 0.64

Step 21 = 0.75

PROCESS 1 Tise Elasped

Step 01 = 0.21

Step 03 = 0.21

Step 05 = 0.20

Step 07 = 0.22

Step 09 = 0.22

Step 11 = 0.22

Step 13 = 0.22

Step 15 = 0.22

Step 17 = 0.21

Step i? = 0.23

Step 21 = 0.22

Min 19 sec PROCESS 1 Tise Elasped 01 in 30 sec

Step 01 = 0.19

Step 03 = 0.19

Step 05 = 0.22

Step 07 = 0.30

Step 09 = 0.40

Step 11 = 0.53

Step 13 = 0.68

Step 15 = 0.S6

Step 17 = 1.06

Step 19 = 1.31

Step 21 = 1.51

PROCESS 1 Tie Elasped

Step 01 = 0.20

Step 03 = 0.20

Step 05 = 0.20

Step 07 = 0.21

Step 09 = 0.21

Step 11 = 0.22

Step 13 = 0.21

Step 15 = 0.22

Step 17 = 0.21

Step 19 = 0.23

Step 21 = 0.23

ain 23 sec PROCESS 1 Tiae Elasped 02 Bin 00 sec

Step 01 = 0.19

Step 03 = 0.21

Step 05 = 0.26

Step 07 = 0.39

Step 09 = 0.53

Step 11 = 0.71

Step 13 = 0.90

Step 15 = 1.13

Step 17 = 1.3S

Step 19 = 1.68

Step 21 = 1.96

179

PROCESS 1 Tiae Elasped 02 sin 30 sec

Step 01 = 0.19

Step 03 = 0.22

Step 05 = 0.30

Step 07 = 0.46

Step 09 = 0.64

Step 11 = 0.86

Step 13 = 1.08

Step 15 = 1.33

Step 17 = 1.62

Step 19 = 1.98

Step 21 = 2.38

PRO 1 Tiie Elasped 04 sin

Step 01 = 0.19

Step 03 = 0.24

Step 05 = 0.24

Step 07 = 0.64

Step 09 = 0.90

Step 11 = 1.16

Step 13 = 1.44

Step 15 =1.72

Step 17 = 2.09

Step 19 = 2.66

Step 21 = 3.76

sec

PROCESS 1 Tise Elasped 03 sin 00 sec

Step 01 = 0.19

Step 03 = 0.23

Step 05 = 0.33

Step 07 = 0.53

Step 09 = 0.74

Step 11 = 0.98

Step 13 = 1.22

Step 15 = 1.50

Step 17 = 1.81

..Step 19 = 2.22

Step 21 = 3.00

CESS 1 Tifie Elasped 05 sin 00 set

Step 01 = 0.21

Step 03 = 0.26

Step 05 = 0.41

Step 07 = 0.69

Step 09 = 0.99

Step 11 = 1.28

Step 13 = 1.58

Step 15 =1.88

Step 17 = 2.31

Step 19 = 3.32

Step 21 = 3.76

Process 1 = 05 Minutes

RgtN ^ lil/o/ej/

Interval

Rate

01 = 01 Minutes

01 = 60 scans/Minute

Interval 02 = 04 Minutes

Rate 02 = 10 scans/Minute

Process 2 = 01 Minutes

Process 3 = 00 Minutes

180

PROCESS 1 Tiie Elasped 00 in 50 sec

Step 01 = 0.18

Step 03 = 0.18

Step 05 = 0.19

Step 07 = 0.20

Step 09 = 0.22

Step 11 = 0.26

Step 13 = 0.33

Step 15 = 0.41

Step 17 = 0.52

Step 19 = 0.67

Step 21 = 0.77

PROC iie Elasped 00 sin 19 set

0.19

0.19

0.20

0.21

0.20

0.20

0.20

0.20

0.19

0.21

Step 21 = 0.21

ESS

Step

Step

Step

Step

Step

Step

Step

Step

Step

Step

1 T

01 =

03 =

05 =

07 =

09 =

11 =

13 =

15 =

17 =

19 =

PROCESS 1 Tiie Elasped 01 Min 30 sec

Step 01 = 0.18

Step 03 = 0.19

Step 05 = 0.22

Step 07 = 0.29

Step 09 = 0.39

Step 11 = 0.53

Step 13 = 0.68

Step 15 = 0.86

Step 17 = 1.07

Step 19 = 1.33

Step 21 = 1.53

PROCESS 1 Tifis Elasped GO

Step 01 = 0.19

Step 03 = 0.19

Step 05 = 0.19

Step 07 = 0.20

Step 09 = 0.20

Step 11 = 0.20

Step 13 = 0.20

Step 15 = 0.20

Step 17 = 0.19

Step 19 = 0.23

Step 21 = 0.23

in 23 sec PROCESS 1 Tiie Elasped 02 Min 00 sec

Step 01 = 0.18

Step 03 = 0.19

Step 05 = 0.26

Step 07 = 0.37

Step 09 = 0.52

Step 11 = 0.70

Step 13 = 0.89

Step 15 = 1.13

Step 17 = 1.38

Step 19 = 1.69

Step 21 = 1.97

181

PROCESS 1 TiMe Elasped 02 tin 30 sec

Step 01 = 0.18

Step 03 = 0.21

Step 05 = 0.30

Step 07 = 0.45

Step 09 = 0.63

Step 11 = 0.85

Step 13 = 1.08

Step 15 = 1.33

Step 17 = 1.62

Step 19 = 1.99

Step 21 = 2.39

PROCESS 1 TiMe Elasped 04 a in 00 sec

Step 01 = 0.19

Step 03 = 0.24

Step 05 = 0.39

Step 07 = 0.62

Step 09 = 0.88

Step 11 = 1.16

Step 13 = 1.43

Step 15 = 1.72

Step 17 = 2.09

Step 19 = 2.67

Step 21 = 3.76

PROCESS 1 Tise Elasped 03 sin 00 sec

Step 01 = 0.18

Step 03 = 0.22

Step 05 = 0.33

Step 07 = 0.51

Step 09 = 0.73

Step 11 = 0.97

Step 13 = 1.21

Step 15 = 1.49

Step 17 = 1.81

Step 19 = 2.24

Step 21 = 2.98

PROCESS 1 Tise Elasped 05 sin 00 sec

Step 01 = 0.20

Step 03 = 0.26

Step 05 = 0.41

Step 07 = 0.68

Step 09 = 0.98

Step 11 = 1.27

Step 13 = 1.55

Step 15 = 1.37

Step 17 = 2.30

Step 19 = 3.75

Step 21 = 3.76

Process 1 = 05 Minutes

P,on 1> \ZJtoltl

Interval 01 = 01 Minutes

Rate 01 = 60 scans/Minute

Interval 02 = 04 Minutes

Rate 02 = 10 scans/Minute

Process 2 = 01 Minutes

Process 3 = 00 sinutes

JJ

182

i Tiie Elasped 00 sin 50 sec

Step 01

Step 03

Step 05

Step 07

Step 09

Step 11

Step 13

Step 15

Step 17

Step 19

Step 21

0.19

0.19

0.19

0.21

0.24

0.29

0.35

0.44

0.55

0.69

0.81

PROCESS 1 Tie Elasped 00 sin 19 sec

Step 01 = 0.21

Step 03 = 0.21

Step 05 = 0.21

Step 07 = 0.21

Step 09 = 0.22

Step 11 = 0.22

Step 13 = 0.22

Step 15 = 0.22

Step 17 = 0.22

Step 19 = 0.23

Step 21 = 0.23

PROCESS 1 Tie Elasped 01 sin 30 sec

Step 01 = 0.19

Step 03 = 0.19

Step 05 = 0.22

Step 07 = 0.30

Step 09 = 0.41

Step 11 = 0.55

Step 13 = 0=71

Step 15 = 0.90

Step 17 = 1.11

Step 19 = 1.35

Step 21 = 1.59

PROCESS 1 Tise Elasped GO Min 23 sec

Step 01 = 0.20

Step 03 = 0.21

Step 05 = 0.20

Step 07 = 0.21

Step 09 = 0.21

Step 11 = 0.22

Step 13 = 0.21

Step 15 = 0.22

Step 17 = 0.22

Step 19 = 0.24

Step 21 = 0.26

PROCESS 1 Tise Elasped 02 sin

Step 01 = 0.19

Step 03 = 0.21

Step 05 = 0.26

Step 07 = 0.38

Step 09 = 0.54

Step 11 = 0.73

Step 13 = 0.93

Step 15 = 1.16

Step 17 = 1.42

Step 19 = 1.73

Step 21 = 2.03

SP"

183

PROCESS 1 TiMe Elasped 02 Min 30 sec

Step 01 = 0.19

Step 03 = 0.22

Step 05 = 0.31

Step 07 = 0.46

Step 09 = 0.65

Step 11 = 0.87

Step 13 = 1.11

Step 15 = 1.37

Step 17 = 1.65

Step 19 = 2.02

Step 21 = 2.46

PROCESS 1 Tise Elasped 04 sin 00 sec

Step 01 = 0.19

Step 03 = 0.24

Step 05 = 0.39

Step 07 = 0.64

Step 09 = 0.90

Step 11 = 1.18

Step 13 = 1.45

Step 15 = 1.74

Step 17 = 2.12

Step 19 = 2.69

Step 21 = 3.76

PROCESS 1 Tiie Elasped 03 sin 00 sec

Step 01 = 0.19

Step 03 = 0.23

Step 05 = 0.33

Step 07 = 0.53

Step 09 = 0.75

Step 11 = 1.00

Step 13 = 1.24

Step 15 = 1.52

Step 17 = 1.84

Step 19 = 2.27

Step 21 = 3.23

PROCESS 1 Tise Elasped G5 in

Step 01 = 0.21

Step 03 = 0.26

Step 05 = 0.41

Step 07 = 0.69

Step 09 = 0.99

Step 11 = 1.29

Step 13 =1.58

Step 15 = 1.89

Step 17 = 2.33

Step 19 = 3.49

Step 21 = 3.76

sec

\^l m

T<lv\p \ 7oF

184

O-i^. //a^

TimC

<

Sec ll 3 S (o_ |',3Q 2i_ JL iL X

.IM .14,17, .17 J7. .17 .11 Al .7

.ih

,17,'?, ,P .* .1? .^1 .^

,il

,H.n jy .1* A% .15 .310 .(iH .iv

.*3

J* 1^,|4 ,n

.to

.11 ,U .*( .36

,16 .i0',70 ,10 > ,tl

.IH ,U

,3M

Mo ,n00

*,H .14 ,16

.1^.37

Al .IK.n .12

.32-

.y. . 4.6 .51 71 ,4

:,i(>. A .5*,H* .57

,74 *7 1.12 I.3L I. <-y 1

.rt ,32-.4M

l.ooUS'

I.H7 l.&fl Z.oS Z.T7

.HI>9I 1.17 1. so 1.8 7

US'

zsi UH 1.9 H

.Uo,S3 1.17 ur 1,^3 13^ Z.60 l.<W S.N 3,og

i3 .16 .1"? .n.1^ ,n

.iX.30

.13.It

.16 .it .1* .16 .17 .11,30

.13 Jl .IS .1?.17 .1^

.H.313 17

.31

.<H

..

.1^

-i^l .11 .H,11

.21 .n.3H

.'4 .n .l.! .11

101 CK(k

,Kc SI .3^

;i7 .11 .13 .IH >n

.31 11 .hH.S"/

,IH .n .IS,,a* A .31 .rt

.70.0

,17.it

,K

M^,S

.*6 1.07 |.U 1.43

,l*

.

.33 ^; > .^ \.ai I.Ml 1.76 t.03 1.14

.!&.hH > (H I, MM

i.#> 1.0H l.SOZ..75"

XW

./^ .S3 l.io: 1.51 1,37 2.28 l.SL }.&r 3.93 3.06

F.G.R.,9. \*\\ D-/q Ccov^l //<39

185

d):T, mr\&

76cc iH 3 Mj:t Uig o_

.13; ..it .17 .17.17 .17 Jl .11

..17

.13 .16 JX .17 .17 .17.11 .2.4

.1*.33

.15.16

. .17,17

,17 .17 >4 .13.2<6

.33

.14 ; .i# .14 ^ .11 JD ,11.16

,31.36

IH i \%.14 50 .70 .3.1

.IS.3*

.34

is*: IH .at .3.2. JH J6 ^0 .37

.41

.16 ; .11

.3% >3t3t 43 .63 .76

.*?

J 7 - . .

.41

.51 Co .9

1.13 1,331. 1.5^

IH .

-IH.(cO 'V .12

1.16 1.4* U3 ^ 5.31

./>: 41 ,SH1.316 t.49 in 2.17

2.5s-

2.&1 2,13

./<*: \.17 I.CH 1.43 a# 2.^1 XS73.15"

3.0?

3):

Developer Qnd r **>- LukW } nepl* c-

cfc^ Wi UA pu/v

.16 .IH.3lo .n .70 .20

.26 .11

.3^

,|H.17 17 ii

.12.19 .20 .35

.30

.16 18 .ll.70 .Qo ,20 ;& Jfc .3^

.2>&

,1k,|H .20

20,v>

.?.),313 .2* .33 .3?

./6, .IS.14

Jo t7o

3L5L .233D .36

.17,2*

.9.4 ,2% .31.HO M-3 .36

.1* ,2> .ai.3H .33 W .51

..b3. .9 4

^ .27 MH ,S6

.66 .** .96 1,73 l.4.2 (.61

.17 .33

M<"

1. 021.35-

I.ST9 I.9H 3.20 3. HO

lo H21.05"

1,31 UI 2,o* 2.31 2.61 2.<13l 3.07

,iH

1.37 1,91 a.02 3.6~0 2.7^ 3.0 3 3.oc) 3,a

186

f,\Wr v; .7? (V),0.

Cc,\\WcaVic^^o St^O card =. 7o

jL2.$cc 19 H^I Hop L^o I-1 ^ -

@>

.IH

.18 .IS .17 .16 .16 .13 .12AO

.70 ft . .IH .18 J7 .16 JH .13 AO

.16.

.16 .16J6

.15 .1413 .U .10

.1.8 .IK 17 1? .it IS1?

.'7 J6

17.17 .20

,tt,2s. .Q .31 .33 .34

.14 J) .7,6.3*

.39-4S .S"H .Co

.XI_

.as 3S .45.Si

.70 AS .96

l.os-

.20 .as.MM .60

f\y {AHL3S~

\Mt

.37.6.0 .74 1.10 1.31 1.S9 l.%0 1.47

.29.47

.79.98 1.37 1.63 S.oo

3.as-

2. Hi

.3lC|.S"0 .&? 1.11 1.5-4 l.vtf a^>o i.s% 2.72

.17 .17.16 .16

.\3.12.

.10 .osr

.21.30 ; -n I* ,17

.16.14

.17 ./0

.19

.19 .17 .17 ,/6.16 .14 .11

10

*l7o 2o

.7o .2(3 19 .19 .1?.16

,17 .17 14,2o

.2326

.30 & .33

.1?.iH 3s

.31

.3 MH .53 SI JH

.19 23.3S

.4ll .5^1 .69 .%T H71-07

.29.32 .4*

.43 .*3 M UO 1.37 l.S^

.27

39 .a.81 1.12 I.Ji 1.60 1.83 1.94

fx% .MM .73 971.37 1.64 2.o! U% 2.^7

Ah .SI I.IH W |.9o ^-33 Z.S4 2-7H

(a)

187

i:oq_ \\3o 2 A A ji

.17 ... *i7 AiC : J5 .19..13

.11 .10 .Otf

.16 J 6 A^ .H

.13.13 AH AO .0%

.16. J6 AT ,'H

.13 -13 ia AO .09

,l& .17 .14J6

.It .17 /6 AGJS"

J6 .16 .11.21 .2H .26

.30.31 33

.ai ,aa 27 2 ,H0

.46 .54.40 6r

.ai .as ,36 .60.70 .$6 -97 (.07

.a* .29.46

.60

,n 4 7 1.14 1.37 1.5-0

.AS : .5^ .79 I.K> 1.31 1.59 i.-sa 1.9?

,19

.. Al ,.9? 1.37 1.65 2,oa 2.27 3.46

.30

.si .S3 ua 1,5-6 1.90 a.33 2.^0 7. so

Oe^l3p^- <^ fms<- Ivc^A. Y]CA Q^pUc-e <^

.abv -vvl5 , UbV r^.

. Il JS .n.16

JT .14.12 .10

04

J9 .19 J7 .17 ,/6 .15.13 ,\a AO

.17.16 ; .16

.15 .19.13

.13.1!

JO

.20 2o ; .ii .19.19

.19.'9 IS .17

,11.19

..20

.23 .26 .24 .32.34 .36

.21.23

.24,3T .na

IX .57 .63 .*

.23.2$

.40 <so .61 .73 24l.o7 UI

.35.3^ .52 .67 .^

|.o3 i.str I. 42 1.54

.36 -HI

: U* 1.36 U4 1.87 2,oa

.So .74l.oH 1-93 1.70 7,07 a. 31 2,50

.-& .St. .411.14 I.6H I.H7 2.39 2.63 2.fcr

188

aIk kl

Dr>s| st^el ou-^ ujWW

cW^-/ n^A^i

D-76 <37

A all neciiioy cj-W r r*^k>

Skp\Q^1 Z 3

I

z

3

4

5

6

7

4

/o

.OS .04 .09

.(2 .If ja

23 ,23

.23

43 .H3 .HI

.7/ .71.71

1 .02 1.62 1.03

1 .34 1.33|.3S"

I .62 1.67 1.62

2.02 2-o2 a. 03

a. HO 2.H2 2,42

,2.7a 2.73 2.73

Pxlx,<^w,^s -r^Ke-i : Ov, TD "304 .

0-M'

Sice

1

Z

3

H

5

7

i

.1

ftu^1 2 3 H

.ai .56 .30 .24

.m .27 .30 ,30

.3o ^.3/

.3/

-32 .24 .33 ,33

.33.36

37

HS -MH.41

5~2

.*$ .&o. . .22 .9 4

1.61 l.Sl 1.61 1.73

2-5H 3. HI 2-5^ 2.66

3.36 3.24 3.36 3.46

3,14 3,^0 3,9/ H.o|

Pure. 6rqi^ SeJeqjt Posm^- \^ 0~7'

SlcA^ > 2 3 4

I .04 .04 05 ,05

7.04

.05 .05.06

3 .06 .06 .0? .07

H. ,12.a .17 .13

5 .24 ^9 .2932

4 .61 ; ,60

,61

.66

7 I.06 J.05"

1 .07 1,1^

fcI.S3-

1.54 1.5-6 |,62

A 2.09 2.042.C5"

2.13.

lo 3.43 2.61 2.62 2. 70

11 3,05 3.3 "3 .053.16"

189

//30/&2

190

Appendix 4: Infrared Emitting DiodeLED55C*

Specifications;

Absolute Maximum Ratings (@ 25 #C):

Reverse Voltage vR 3 volts

Forward Current if 100 mA

Power Dissipation pt 170 mW

Optical Characteristics (@ 25*C)

Total Power Output P0

(IF=100mA)

Peak Emmision Wavelength

(IF=100mA)

Spectral Bandwidth 50%

Rise Time 0-90% of output

5.4 mW

940 nm

60 nm

300 nsec

*From Optoelectronics Manual, General Electric Company,

Electronics Park, Syracuse, N.Y. 13201.

191

.001 .002 .005 .01 .02 .05 0.1 0.2 0.5 1.0IF- FORWARD CURRENT-AMPERES

10

Figure 22: Power Output vs. Input Current for LED55C

100

a. *0

5a

50 40 30 20 10 0 10 20 SO

-ANGULAR DISPLACEMENT FROM OPTICAL AXiS -DEGREES

SO

Figure 23*. Typical Radiation Pattern for LED55C

Appendix 5j_ UDT-450Specifications'

192

Parameter

Responsivity

Active Area

Active Dia.

Symbol

R

A

D

Typical Value Units

.4 850 nm

.05

.10

amp/watt

cm2

inch

Output Resistance Zout

slew Rate

Unit Gain Bandwidth

Supply Voltage

Supply Current

Offset Voltage Drift

w/ Temperature

100

1

1

+/-15

3

+/-25

ohms

volt/microsec

MHz

volts

mA

microvolt/ 'C

Light Range L

Feedback resistor

Range Rf

Frequency

response f

Spectral Range

10-2-5x10"12 watts/cm2

5K-50M ohms

dc-106 Hz

350-1100 nm

*UDT-450 Data Sheet, United Detector Technology, 2644 30th st .

Santa monica, CA. 90405.

193

3a.

a.

CO

2

OCL

LO

oco

m

<

D

5

.20.25.30.35.40.50 .60 .70 .80 .90 1.0 1.10

WAVELENGTH (MICRONS)

Figure 24: Spectral Response of UDT-450

10'

w 103-^V

^x

\

H 102X

X

\

LU

o 10<i-

_i

o> 1.0I-

Do.

gicr'

VX

S

10,-2

\

"ST

\

^r

\

^v

Rj (feedback resistance)

. determines the position

__S^ of the dashed lines on

\

X

\

\

XX

X

X

the graph

I

-V^IVI 00 MS!

N\10MS1\X~^v

v\1M"

vi

K^v100 K>V ^Sf *v f

JO KSi^v v

N

LV -5V

^^.%_x >^\ ^ \ V

'

\

X

10r5 10

-6 1010" 10"9 10"10 10"11

INCIDENT ENERGY (Watts. .7 microns)

Figure 25: Output voltage of UDT-450 as a function of incident

energy

194

Appendix 6j_ Model 757N Logarithmic RatioAmplifier*

:_

Transfer Function:

voltage mode e0 =-KLog-|0(e-|/e2

x R2/R1 )

Accuracy:

log conformity

1 nA to 1 OmA

+/- \%, max.

Relative to Input

Input Specs:

maximum current

worst case offset

voltage

+/- 10 mA

+/- 85 microvolts/'C max.

Rise Time:

increasing input

decreasing input

250 microsecond max.

600 microsecond max.

Power Supply:

rated performance

operating

current, quiesent

+/- 15V dc

+/- (12 to 18)V dc

+/- 8 mA

Mechanical:

case size

weight

1-5"x

1.5"x0.4"

21 grams

*Data sheet, Analog Devices,

P.O. Box 280, Norwood, Mass. 02062

195

Appendix 7j_ SDK-85Specifications*

:

Central Processor

CPU : 8085A.

Instruction Cycle : 1.3 microsecond.

Tcy : 330 ns.

Memory

ROM : 4K bytes using 2 8755s.

RAM : 512 bytes with 2 8155s.

Addressing : Expandable to 64K bytes by use of additional

buffers and decoders.

Input/Output

Parallel : 38 lines (expanable to 76).

Serial : Through SID/SOD ports of 8085- Software generated

baud rate.

Baud rate : 110

Interfaces

Bus : All signals TTL compatible.

Parallel I/O : All signals TTL compatible.

Serial : 20 mA current loop.

Interrupts

Three levels : (RST 7-5) - Time base input.

(RST 6.5) - TTL input.

INTR - TL input.

*SDK Users Manual, order number 9800451B, Intel Corporation,

3065 Bowers Ave., Santa Clara, CA. 95051.

196

DMA

Hold request : Jumper selectable. TTL compatible input.

Physical Characteristics

Width : 12.0 in.

Height : 10.0 in.

Depth : 0.50 in.

Weight : Approx. 12 oz.

Electrical Characteristics ( DC Power Required)

Vcc : +5V +/- 5% e 1.3 amp.

Environmental

Operating temperature : 0-55 "C

o 00

h-

cn

UJQ -J

<

O O

1 c7>

197

u

z:

CDz>

.

c*

3

5

9(-

^^^Vi

-t>

#2

O.

=!_J z =>

< r- a

ZinO

< r- 5i

juj

LJ

U

LU LU

O CC

>^

"^

u_UJ ujQ cr

o u

O Q

-I >

<

2 in

< CVJ,

(M

=3

3

o

>

Q

<

Ll.

U.

o

CC

Q.

CO

cr

UJ

a.

o

^j flQ

1 *

UJZZ

,,uj O rfi

<<>

IUU1 IE'

I Z uj

r O h

l!S <

z a >

Co

_^O

^ o

J 5 1/1

n

^ <

>-

<

* 1

z

-"-> Z IT *

OO-Qj,

_,

l/l 2 <

(e tr 2 x~i ff <J

O CQ

CO

O >k1

- aUI * -s

3 - iia- t

(A

>UJ

oz

8 ' 1

>UI~rt

53-W

N cOO

200

<* o

i-a.

o

2 j cP r-^ in

1 g K

- S&+

vj)

CM

CO

oo yo-

a: >-,

> m

z: <

s< CD

5-

00

u

o_l

CD

_l

p <

t

T3

ajJc

i

z>

cr

LU

rO

ID

CO

Z> 3

o

0

o &UJ VI J .

S55

"J z z

I Z uj

l- O -J

as o

si Ss3 X

CCrnO .

uj ;r z

oS-Ou,r- hM-Zu

= 5

CM

CO

o

~3

m

Q

<

5

i

ro

O ffl

o ffl

201

a

m00

oo f-- in ^ io cvj

CD

00

_l

O <T> CD

c

o

a>

>

c

3

o

*- <L.

a o

1/3^

oD

c

J3_ <s>

CM

OO

CO

AA

A

A

A

rt m a- In ** ^ ol~

2 2-3

A

A

ro

Z>1

AAA

V

_*L

<

+

>

1=2<

rf.

0

o

o q

cc

o

o

Q

<OCQ

^o

2

CM

Ouj vi

u o

Z y>UJ

S yiO*

OI X

_Z uj

-

rf

a

z<

z

!"a

zo .,

msSh5

OO- guj' -

- Z ui

< JUO-

< Z ui

o

CJ c

-+-

u

uS I

CO

co

co cr

LU UJ

> gUJ CO Q

Qq CO

2

57 z

CO -I

rO

< Z)

iCO

offl

CM

CO

rt

5

5 =

E.c

o

o

CM

X

<\1

0a

ft^

0

0oIs-

CM

X

CM

to

</)

_l

oo

O

z

to

1 CO

a

CO*

Cf

CD

Z)

ao

Z>

CD'

Z)

LO

z>

Z)

rO

Z>

CO

Z)

ffl

CO

Q

o

CD

Q

oo

Q

Q

CO

Q

LO

Q

ro

Q

CO

Q

202

o

- X

r>-

Q

CO

Q

lO

Q

a

CD

Q

:CI-o

o

CD

CC ijj

UJ If)\- to

a <

<

< <

X

o

oo ^

3 5"

- ^*

a u

z z

z

vi uj

uj a 10

5*8*8

uj v> a.'

I Z uj

as l

Z o 1

X

2a.

a.

<ui

-I

<

ZzdriLt

oo-2uiKt-ujZlU

2525

CM

0

CO

rO

O

UJ

>

Q.

O

ffl

o

1Tl 1 1 1 1

0

1

i i i i i i

l 1 I 1 1 11 MM11

, 1 i 1 M.

ai

S

MINI

1 1 1 1 1 1

1 1 1 1 1 1Mill1

Mill1

i 1 I i i

2D

5 1

1

1-

s

1 i 3.

0

3. 0

a.

V

1r-

c* J X iS 2.rt - 3- f t

CZ\(i g r x =

LO

o

is

o

-t if it i

CZi

X X X X X

XXX

Khft

203

r. i

oT = g

O-

"I

it

o

,Y.VJTIJTI,V#

O

3

cr

xxxxx

*> y =

-T itAfi

5 P

M

e

r- L>M m n -

zIlu

>-

cr

UJi

o

<

xa

Q

CO

s

I

V

3CJ

op-g.

Iii

(0

I laH

ffl

204

a

J.

o

0

a.

O

-zc

T>

zS

-a

OrO

r-

nf

i

Ha.

o

X

c3

V

o-

DO

0

J*a

0

\a.

o

c

a-

Q !&.

CM

ll. '.'.'J.'.1.1,1.1,1.1.1.1.1. '. I

rT)rjr*)T\'r,'r**i*\rrirr)lf)*)

I'l'l'l'

|'|'|'l'l'|'l'| II ITTT

CO

Hr

3 :5 3

^

5 5 rT

- -~ ~

1. z5 3 3 if

1,1,1, I.I,

n'i i r

_t_L

-J 2.Oui

* c Z'

*<<;UI 10 OC

'

I Z ui

"-

a ;

z 5 >

O

m CD

Sp|

CC w _J c .

08= 9.

i<z

* ^ -* 3i5p*

4

CM

c

v.

CO

&0

o ffl

u

>-

1-

aKrtrt -

J>

z

o

1-

0-

DC

O(/>

LU

Q

LU

a>-

t-3: Tn 2 *fi O *

LUt- AA-HZr,?,

JO 33 a^

206

t- Ovtf

*- aI

mz

*e

oc uj,z 1-

-, a: uj <

T At- 5a

isa <

to < Q i

z o = o **"

(/I i/i < cC H SUJ ,/, I

_I

0, J < H1-

n<J r>

O?- cr z

F

2

N

o

3 uj

i a:

o <

0

_j

<-I

CO

CD

UJ

_j

(DCO>

z

1 gt/> t-

t/J

rO uj

C\J n

' m'

CD

LU

,l/J

_l

"^

B

jS

I'

[IP*|

ll 5

u

SBSi<<

m

(M

n

(NJ

Q

CM

O

OJ

ro

Q

(M

CM

Q

Lf)

CM

Q

CO

CM

Q

ro

CM

Q Q Q

Oro

o

D

ffl

208

CO

to5*"

CO

'>0">

tf" ' i

'"-ro LO

Acvj-

sf

Z> Z> Z)

CM^ Q.

Sec

o

CD

CJ

cm rO <r in <S> oo ffl <

COo

Ll)

OD

<

CC

& u

o

<S> ? c DDDnDDDDC] <S

<1-

a

CO

z>

-

u OO' c m

u->

F[ CM

c_

z Z)c IO

1-

u_ c<J- E

<*c m o

zz.- c to

o

Q-

LO

- cr-- CM

<J-

ro X

Z> Z) -

C

c

00

C7>

c <

<?))

Q

cr

<oCD

>f

O-

Z ?

tl <

u u* z z

* C xx

liitflOC*

S^uj a5? ogz a .

OSUJ

-J

<

CM

U

I

CO

UJ

>

is

xoc

Q_

o

O ffl

oo

cnj io^-

m

J_.

CD

1 1 fl

f f f f f f

0D0000

r*- a <

JUlfl

Eljr i_

3

AAAAAA

iAAAAAa.

YYrr*i

DDDDSi

AAAAA

AAAAA

c\j ro^-

in u> r- co ct> O

CD,

>l-

ceo

ool^LCjiO^frOOJ

<<<<C>ir>inir)

ro

i! (J

O CM -O

< < < <

209

LO

cr

CC ZZ

of w

LU f[ij -

Q LU_)> LU

CD Z- O

<J 2 CD Q

, . -I

vtoin i

w =>=> =

_!. oJVz> z> z> a

pp

CD

c

<

ocn

cro

o

LU

cr

WW

\\5 S-

i<->

PI'So

<

\s"Iii

OD

ffl

OS cn nS

o4-

*V 3

^ c

sa

-+

X0 T

o>

<- 0

,0

*,1

-

c -T>

1 0 0 o -

CL> V

0 -t

a fc ll

CC O>-

Cc

ac

0

O Q. Q. ca-

CO

u

0

a

IE

^5

(a0

ans

tl

0

J)V.

0

-f

J)tfo

r

r-l

> a J)

1 3: KCC

^ TrO

III-

-J o- 3"

Hi

rja

SiL

CM

<s> rO

a

rO

Z>

CO

CO

210

a

UJ

uj lo

> <

cr

a

X

2

CL

1 + <t

Z)

o.

o~-

UJ CA J *.,

a oui Z Z

. (/> uj

uj O >*

v> c*

Z UJ

^1

z a

<1

o<

<i

CM

.<

CO

CL

~

n

o

ooo

X2>

UJ

>

O

z

ui?: yi/i

l\HOui?UI

OO-Oul

O rf T

"525

CM

0d:

^.

0

-v.

c6

CO

offl

03

211

N

CC-dl

o

a:

UJ

>

CC

;i S3

-

MS

:S

m

a

ffl

214

5

ifCC

cu

o

o-J

UJ -

UJ

-i

<

V

l/>

./I

ui

V

c

H J-< cn

1 on

Ouj tn

^

ii <

oo

z z

MUJ

iE205UJ uj

Z Q X *,

552i>"

IH1S'Ooo... * ui

oB-Oui

lie5

6

CM

o

U

1*u_

CO

ffl

CM

CO

215

C

5

<L)

OJ

or

m

LU

<3

Jl

ct

n CD

<0

(J)

J)

i

_J o

Z +i

auj tn

^

tl <

OOuj Z Z

Z w ul

uiS

t < < rWIDE'

I Z UJ

>-OsiOSP

85!Sz o3

u

SsX

i^ 2<ro\&JZ

CM

2

Sglg

< 3 - u

Sip.

o0"

LU * U

Oi-;.t"

wi ? u

ile

v-

C :

o

cfl.

^

CO

"VjO|T

ffl

o ffl

216

rtl

o.

m

CME ff^VVy

AL

A

co

o

i.

CC

cr

z>

U.

ii

JDC ^Q

cl

c\J

CO

o i5-

UJ l/l y .

o out ZZ

UJQiA

*" <

X?

UJ V)(t'

15

z a

n: ,j o .

sligb2oU uj -

u*

2 = 3e?

OO-Omr- r-

uJZ UI

_,

w J2 < <

c

CM

O

d</),

CO

Offl

217

!<u

a:

J.

O

IL

5-+

HQ

(5 2Ul

UI

d CL 3Z

l/>

z

8ovn

<-1X_

UI

oiQJ 3

u_

111

<

oin a-

Zf

Qo

>111

a

&. CM

<s

i

1

/

/

/

/

"0h

(r^7~

/

I c

UI

O1V

ZX 1 /

^ CC 8

I

/

v> I

UIQ.

in

/

/

UJ

z

LL

oUJ

Xo

3oc

Z .

.10

?;*

"v.' o

/

/

/

/

/

a in uj uiu.qot

uj ui _,o

>Zzuj

toz-no=o?

O Z ^ Occ x 9// UJ

z^

8>zOnu.

LU.tn Q

Uul7 UJ

VO

1 Uc

i

L

o

/

/

/

/

/

/

/

/

/ SS

+

IO VUI A

o

/ ui s d-1

n U1(M

<Eir<iuiuioco z >

-^\\-

. jz o OO3

5* 1CC

Q

OC

fc<

Tr^ii i^JJ

\/

'

/

/

/

/

/

1

isI

C

IP

5

j

1

-1 8!

i =

ii-

X

*' UI

z

.

218

I

<

oz

8

V

>UI

OC

3

ac

In

<

co

dl

88+ iOLn

rJ j

N

I/

/

\/

/

V

VA

/

/

/

/

o-

/

o

o

QJ

c

cr00

oz

i<OC

Q

IU

XIf)

oo

vOui

V

1/1

a;

i

< iz

(A

-IO

<:+io

in,;ujU

iSfe

uj X

UJ

Z

o

e

o

Xu

Ui

Q

80.

3

Oa:

o

ocu

u,u.o

Occ(OU.

UI.13

UuiS

oUJ,

o

+iK

< .ui

^o<z

{"SocZi-ui

ZP

8soZUJ

<UJ

oui

X<J

y

c

c~

ICC

Q

OUJ

>OCC

fc<

^

I

3XUI

219

<a

8UI

>UI

ac

u

a

a:CD

oz

$<CC

a

UJ

UI

XV)

-<

JJ

lo

rno

co

c

-?

0

CQ

-o

a

j

=C

a/

ZL

oo

a)

OJy>

A>

/>

c

J -I< vO

< ^

"i_-10

W". -z-Ho

<

Cfl

UJ

Xuz

zO

UJ ujU

<COlD

x8

UlX+*l-

<fl

bUJ

z

ZO

oUI(NOO

X+lx+

Xo

8

3Oac

o

Zzu.

Oac xu.

.O

uiz".

5>9 -*>

I-V

<*2

UlOC (JHUJZ

Sgo.

(P

Ia:

o

zo

ouiio

3

220

I

<c

oz

8

>111

oc

L.

o

co

c

OJ

O

CD

-o

d

x

u

Oru

X

0O-

O-

Dc/O

d

U

uV

J)

c

-I

vD

no

a co

UI UJ

3

UJ

U) UJ

S<OCuj v>

Iiw

CO83'

z o

3

COUI

-10

z-Ho

<

ex ,.

U|X+<-

_i

o

o

ss

Qtl

10

UJ

XCO

-<CO ^

ui

_i

<

CJ

XCJ

a

8

3

Oac

o

u-OU)ZZUJ

Oct Iu.

ujgui

cosrUJ

teg31? UJ

KriXUJOC CJ1-UjZ

ZOo.

y

o

O

cP,

ICC

o

>

Oac

I

zo

aUJ

(0

3

X111

z

221

STRAIGHT KNURL

%1*&CHAM TYP

- ZmsZtZ*'000

LOCK PIN ^[frui^

222

n ~&

fe

CM

w/

H\

rt 1 f

! I

I -^

//

/

V

1-27A/PS

8

STDgPIPE

SCHED *()

1 *

4-5

CHAM TYP

32

INPUT PIPESCALE'

2/ I DR. B Y: M. P/SKACEK OCT. '28. IS 76

223

I

i S

; j:

i

o

1

J-/8/VPS

-STDjPIPE

SCHED W

LvtfCHkM.TYP

OUTPUT PIPE \SCALE: 2/1[ DJJAMVSKACEKjOZZ^A

224

fIii

+ .0C0O nM

A^ A

1

-Ja $CN

j-zxk5CHAM.TrP

J./5

SECTION A-A

hinge smr^r^M

225

X^5CHAM'TYP61

ZA - "a

ZA5-

SECTIONA- A

te8W*"w\SCALE: 5/ /

_

W^: ^K A/0/. 17/976

226

VITA

Steven Paul Cox was born a U.S. citizen in Los Angeles,

California, in 1955. Raised inBurbank, California, he attended

John Burroughs High School and graduated in 1973. The next five

years were spent as a freelance photographer in the Los Angeles

area, camera salesman, and a photography instructor for the

Burbank Adult School Program. During these five years, he also

obtained his B.S.E.E. from the California State University at

Northridge.

During his last summer in California before coming to

Rochester in 1978, he worked for Rockwell International on the

Clinch River Fast Breeder Reactor project. Finding no joy in

government contracts, he left Los Angeles to pursue his Masters

of Science in Photographic Science and Instrumentation at the

Rochester Institute of Technology. While attending RIT, Mr- Cox

has worked part time for the Itek Corporation in the design of

microprocessor controlled graphic arts cameras. In the spring of

1981, this thesis was presented at the annual SPSE conference in

New York City.

Mr- Cox hopes to some day return to his native

Calif iornia.