Post on 09-May-2023
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 ritscholarworks@rit.edu.
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
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:
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
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
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
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
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
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.