Micron Technology MicronEye Operator's Manual

Page 1
Operator's Manual .
Page 2
TABLE
OF
CONTENTS
CHAPTER
INTRODUCTION MICRONEYE
BULLET . . . • •
MICRONEYE
CAMERA
. . • . .
IS32
OPTICRAM . . . .
. . . . . . . . . . .
·
1-1
·
1-1
·
1-2
CHAPTER
2 TECHNIQUES
FOR
OPERATING
THE
MICRONEYE
FOCUS
AND
F-STOP
ADJUSTMENTS
..••.....
2-1
CLOSE-UP RING . . . . . . . . • • • . • . . • . .
2-1
LIGHTING CONSIDERATIONS .
..
..•.
2-2
CHAPTER
3 USING
THE
MICRONEYE
WITH
THE
APPLE
· . . .
..
.
3-1
DISKETTE . • . .
3-2
. .
'"
...
3-3
. . • . . . . .
..
3-11
. . . . . . . .
..
3-12
3-14 3-15
• • •
••
3-16
INSTALLATION
AND
SET
UP
FILES
INCLUDED
ON
YOUR
MICRONEYE
THE
MICRONEYE
PROGRAM
THE
COMMANDER
PROGRAM
. • .
THE
GREYPIC
PROGRAM
• • • .
THE
GREYSCREEN
PROGRAM
THE
ENHANCED
EYE
PROGRAM
• .
THE
GREY16
PROGRAM
..•
CHAPTER
USING
THE
MICRONEYE
WITH
THE
IBM
PC
,
CREATING A
BOOTABLE
DISKETTE
INSTALLATION
AND
SETUP • • .
FILES
INCLUDED
ON
YOUR
MICRONEYE
THE
MEYE
PROGRAM
• . .
DISKETTE
4-1 4-2
4-4 4-4
CHAPTER
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
INSTALLATION
AND
SET
UP
FILES
INCLUDED
ON
YOUR
MICRONEYE
THE
MICRONEYE
PROGRAM
. • • • •
THE
ASSEMBLY
LANGUAGE
CONNECTION
·
..
....
5-1
DISKETTE • • • •
5-2
· . . . . . . . .
5-2
(MEYE6510.EX)
••
5-7
CHAPTER
USING
THE
RS-232
MICRONEYE
CAMERA
HARDWARE
REQUIREMENTS
SOFTWARE
• • • • • . • •
. . . .
..
..
6-1
. . . . . . . . . .
6-2
CHAPTER
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
MICRONEYE
VERSIONS • .
••
•••.••••••
7-1
THE
SERIAL
CONNECTION
• • • .
••
7-2
COMMAND
DEFINITIONS
•.
••••••
••
7-3
EFFECTS
OF
COMMAND
MODE
COMBINATIONS • • • • • •
7-6
RECOMMENDED
MICRONEYE
COMMAND
SEQUENCES
7-8
Page 3
Page 4
APPENDIX A
BAUD
RATE
MODIFIFICATION
APPENDIX B
TRANSMISSION TIME CONSIDERATIONS
APPENDIX C
TROUBLESHOOTING
APPENDIX D
IS32
OPTICRAM TECHNICAL INFORMATION
OPERATION . . . . . . • .
IS32
TECHNICAL
SPECIFICATIONS
. .
TOPOLOGY
..
...•...
· . . . . . .
D-1
· . . . . . .
D-
3
· . . . . . .
D-
4
APPENDIX E
ANNOTATED
ASSEMBLY
LANGUAGE
DRIVER
FOR
THE
IBM
PC
APPENDIX F
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING TECHNIQUES
• •
F-1
F-4
F-17
LIGHTING CONSIDERATIONS
FOR
THE
IS32
OPTICRAM
OPTICS
. . . . . . . .
..
.....••
OTHER
CONSIDERATIONS . • . • • . • • . . • • . .
APPENDIX G
HARDWARE
DESCRIPTION
TIMING GENERATION
CIRCUIT
• • • • • • • • • • • • G-1
COMMAND
RECEIVER
CIRCUIT
• • • • • • • • • • • .
G-2
ADDRESS
REGISTERS . . • • • . • • • • • • • . • .
G-3
ADDRESS
DESCRAMBLE,
SOAK/,
AND
DIN/DOUT
CIRCUITS.
G-4
TRANSMITTER
AND
INTERRUPT
GENERATOR
CIRCUIT
• • •
G-6
ADDER
AND
END-OF-FRAME
CIRCUIT
• • . • • • • • • •
G-8
APPENDIX H
MICRONEYE
APPLICATIONS SUBROUTINE LIBRARY DESCRIPTIONS
(C)
Copyright
Micron
Technology,
Inc.
1983
6253
Oct
1984
Page 5
Page 6
CHAPTER
1
INTRODUCTION
The
MicronEye
is
the
easiest
and
least
expensive
solution
to
numerous
applications
requiring
a
low
cost,
all
digital
imaging
system.
The
MicronEye
is
an
electro-optical
system
suitable
for
use
with
your
computer
as
a
peripheral.
The
three
necessary
dimensions
--
optics,
hardware
and
software
are
furnished
with
the
standard
package.
There
are
three
basic
MicronEye
systems:
1.1
MICRONEYE
BULLET
(Shown
in
Illustration
1a).
This
,system
has
the
drive
electronics
located
on
a
9"x3"
card
inserted
in
the
computer.
The
IS32
OpticRAM
is
located
in
the
1"
diameter
cylindrical
Bullet
case.
The
Bullet
and
computer
are
connected
via
a
standard
16-wire
flat
ribbon
cable.
Micron
recommends
that
the
cable
be
less
than
5
feet
long
and
furnishes
a
4-foot
cable
with
the
standard
Bullet
package.
1.2
MICRONEYE
CAMERA
(Shown
in
Illustration
1b).
This
system
has
all
of
the
drive
electronics
and
IS32
OpticRAM
on
a
6"x3"x1"
card
which
is
mounted
in
a
rectangular
camera
case.
It
also
includes
a
3"x3"
serial
interface
card
suitable
for
inserting
in
the
Apple
II,
IBM
PC,
Radio
Shack
TRS-80
Color
Computer
and
Commodore
64.
The
advantage
the
Camera
has
over
the
Bullet
is
that
the
Camera
may
be
located
remotely
from
the
computer
(up
to
50
feet
away).
For
computers
on
which
custom
MicronEye
interfaces
are
not
available,
an
RS-232
compatible
version
of
the
MicronEye
Camera
is
available.
The
RS-232
MicronEye
Camera
comes
equipped
with
a
male
DB25P
connector.
Pin
2
(transmitted
data)
carries
data
from
the
MicronEye
to
the
computer.
Pin
3
(received
data)
sends
data
from
the
computer
to
the
MicronEye.
Pin
7
is
a cornman
ground.
Power
for
the
MicronEye
(+5V
capable
of
driving
a 50
rnA
load)
must
be
made
available
1
-1
Page 7
INTRODUCTION MICRONEYE
CAMERA
to
the
MicronEye
on
Pin
11.
1.3
IS32
OPTICRAM
The
heart
of
the
MicronEye
is
the
OpticRAM.
The
OpticRAM
was
developed
and
is
manufactured
by
Micron
Technology,
Inc.
The
OpticRAM
is
composed
of
65,536
individual
image
sensing
elements
called
pixels.
These
pixels
are
organized
into
two
rectangles
(often
referred
to
as
arrays)
of
128
x
256
pixels
each.
Each
array
of
cells
is
separated
by
an
optical
"dead"
zone
of
about
25
elements
in
width.
When
an
image
is
focused
onto
the
OpticRAM,
a
digital
representation
of
the
image
is
"exposed"
on
the
OpticRAM.
The
MicronEye
transmits
this
image
from
the
OpticRAM
to
the
computer.
The
software
included
with
the
MicronEye
takes
the
transmitted
image
and
displays
it
on
the
computer's
graphics
screen.
Because
the
image
created
by
the
OpticRAM
is
digital,
the
image
produced
is
black
and
white.
The
MicronEye
may
produce
shades
of
gray
by
multiple
scans
at
different
exposure
times.
MicronEye
users
with
an
Epson
printer
can
produce
pictures
with
grey
tones
with
the
software
provided.
The
low
cost
of
the
MicronEye
is
directly
attributable
to
the
technological
advance
represented
by
Micron's
OpticRAM.
In
terms
of
cost
per
pixel,
the
OpticRAM
represents
a
1000x
reduction
in
price
over
earlier
generation
image-sensing
chips
such
as
the
CCD.
As a
result,
the
MicronEye
brings
capabilities
to
your
computer
which
were
previously
available
only
to
large
industrial
users.
The
electronics
in
the
MicronEye
provide
an
interface
between
the
OpticRAM
and
computer.
It
also
provides
a
means
by
which
the
MicronEye
can
receive
commands
from
the
computer.
Using
a
crystal
to
assure
accuracy,
the
MicronEye
drive
electronics
provides
all
the
requisite
timing
signals
and
circuitry
to
execute
commands
received
from
the
computer.
The
MicronEye
automatically
sequences
the
OpticRAM
so
that
each
image
sensing
element
in
the
OpticRAM
is
accessed
and
the
appropriate
video
information
is
returned
to
the
computer
for
display
or
,processing.
In
addition,
the
MicronEye's
electronic
shutter
is
easily
controlled
by
sending
the
MicronEye
the
appropriate
commands.
A
command
to
the
MicronEye
to
SOAK,
"opens"
the
shutter.
After
the
appropriate
period
of
exposure
has
elapsed,
a command
to
the
MicronEye
to
REFRESH
will
"close"
the
shutter.
The
software
provided
automatically
performs
these
functions.
Chapter
7
explains
the
commands
available
for
controlling
the
MicronEye
for
users
who
want
to
design
their
own
assembly
language
interfaces.
(For
most
users,
the
routines
provided
should
be
more
than
adequate.)
As
you
might
suspect,
1-2
Page 8
INTRODUCTION
1832
OPTICRAM
the
MicronEye's
shutter
is
not
a
mechanical
shutter.
The
MicronEye
controls
whether
or
not
the
OpticRAM
is
sensitive
to
light
or
not.
This
feature
allows
for
precise
continuous
control
of
the
MicronEye's
"shutter
speed."
If
for
any
reason
you
must
remove
the
OpticRAM
from
its
socket,
caution
is
imperative.
The
OpticRAM
is
susceptible
to
static
and
can
be
damaged
by
static
electricity.
Be
certain
to
properly
orient
the
OpticRAM
when
reinserting
it
into
the
socket.
For
the
bullet,
the
OpticRAM
is
oriented
properly
when
the
red
edge
of
the
ribbon
cable
is
on
the
same
side
of
the
camera
as
the
Pin
1
notch
on
the
OpticRAM.
For
the
camera,
the
OpticRAM
is
oriented
properly
when
the
Pin
1
notch
on
the
OpticRAM
is
on
the
same
edge
as
the
Pin
1
notch
on
other
IC's
in
the
camera.
Removal
of
the
OpticRAM
from
the
bullet
may
require
that
the
tips
of
the
chip
extractor
tool
be
bent
out
slightly
to
accomodate
the
narrowness
of
the
bullet
housing.
(a)
MicronEye
Bullet
(b)
MicronEye
Camera
Illustration
1
1
-3
(c)
1832
OpticRAM
Page 9
Page 10
CHAPTER
2
TECHNIQUES
FOR
OPERATING
THE
MICRONEYE
2.1
FOCUS
AND
F-STOP
ADJUSTMENTS
The
lens
supplied
with
your
MicronEye
is
an
F1.6
16mm
lens
with
adjustable
f-stop.
Please
note
that
the
lens
has
two
controls
which
must
be
adjusted
before
the
MicronEye
will
operate
successfully:
f-stop
and
focus
control.
The
f-stop
controls
the
amount
of
light
admitted
through
the
lens
while
the
focus
control
focuses
the
image
on
to
the
surface
of
the
image
sensing
device
(the
IS32
OpticRAM).
For
normal
use,
the
lowest
f-stop
setting
(1.6)
is
recommended.
Any
increase
in
the
f-stop
requires
a
compensating
increase
in
the
light
source
or
in
the
exposure
time.
Please
note
there
is
a
"c"
setting
which
completely
closes
the
aperture.
A
mechanical
shutter
is
not
needed
since
this
function
is
performed
electronically
by
the
MicronEye.
The
depth
of
focus
(the
distance
the
scene
can
move
in
relation
to
the
MicronEye
and
still
be
in
focus)
is
increased
at
higher
f-stops.
To
optimize
the
result,
increase
the
amount
of
light
and/or
the
exposure
time.
A
tradeoff
of
lighting,
exposure
time,
f-stop
and
scene-to-MicronEye
position
is
necessary
to
optimize
the
result.
2.2
CLOSE-UP RING The
lens
is
designed
for
viewing
objects
at
a
distance
of
at
least
18
inches.
Also
supplied
with
the
MicronEye
is
a
close-up
ring
which
allows
the
MicronEye
to
view
objects
as
near
as
five
inches.
From
this
distance,
normal
text
is
cleariy
readable.
The
ring
can
be
installed
by
unscrewing
the
lens
from
the
MicrqnEye,
inserting
the
ring
over
the
threads
of
the
lens
screw,
and
screwing
the
lens
back
into
the
MfcronEye.
The
ring
acts
as
a
spacer
and
extends
the
focal
length
of
the
lens.
For
experimenting
with
viewing
objects
as
close
as
two
to
three
inches,
an
acceptable
short-term
solution
is
to
slowly
unscrew
the
lens
until
the
object
comes
into
focus
(taking
care
not
to
unscrew
the
lens
so
far
that
there
are
insufficient
threads
to
hold
2-1
Page 11
TECHNIQUES
FOR
OPERATING
THE
MICRONEYE
CLOSE-UP
RING
the
lens
onto
the
MicronEye).
For
viewing
objects
at
close
range
it
is
recommended
that
the
user
purchase
a
close-up
lens.
Since
the
MicronEye
utilizes
a
standard
C-mount
lens,
most
camera
retailers
provide
a
wide
assortment
of
special
purpose
lenses
directly
compatible
with
the
MicronEye.
2.3
LIGHTING CONSIDERATIONS The
MicronEye
requires
a
high
contrast
scene
in
order
to
image
the
object
onto
the
OpticRAM.
Unlike
a
TV
camera
which
can
respond
to
shades
of
gray,
the
OpticRAM
is
a
digital
device
where
each
picture
element
will
only
respond
to
a
black
and
white
representation
of
a
scene.
All
portions
of
the
scene
lighter
than
an
arbitrary
threshold
are
considered
white
and
all
portions
of
the
scene
darker
than
the
threshold
are
considered
black.
If
the
exposure
time
is
increased
more
of
the
scene
falls
on
the
white
side
of
the
threshold
barrier.
As
the
exposure
time
is
decreased
more
of
the
scene
falls
on
the
black
side
of
the
threshold
level.
The
threshold
level
can
be
affected
in
one
of
three
ways:
(1
)
changing
the
exposure
time;
(2)
changing
the
f-stop
on
the
lens;
and
(3)
changing
the
light
on
the
scene
itself.
Doubling
the
exposure
time
is
the
same
as
opening
the
f-stop
by
one
stop
(changing
the
f-stop
to
the
next
smaller
number)
or,
in
other
words,
doubling
the
amount
of
light.
For
optim~m
results
from
your
MicronEye,
careful
consideration
must
be
paid
to
lighting.
In
general,
arbitrary
lighting
of
the
environment
will
not
produce
optimum
results
as
it
may
result
in
low-contrast
images,
reflections,
shadowing
and
extraneous
details.
A
good
lighting
system
illuminates
the
scene
so
that
the
complexity
of
the
image
is
minimized
while
the
information
required
for
inspection
or
manipulation
is
enhanced.
2.3.1
Front
Lighting
A
front
lit
scene
(where
the
MicronEye
is
on
the
same
side
of
the
scene
as
the
light
source
or
ambient
light)
sometimes
lacks
adequate
contrast.
Front
lighting
with
a
diffused
light
source
can
often
be
used
to
increase
the
contrast
in
a
scene.
If
defects
or
points
of
interest
are
to
be
emphasized,
side
lighting
such
that
the
defects
Qr
points
of
interest
cast
a
shadow
or
appear
brighter
through
increased
reflectivity
may
be
used.
2-2
Page 12
TECHNIQUES
FOR
OPERATING
THE
MICRONEYE
LIGHTING CONSIDERATIQNS
To
set
up
a
front
lit
scene,
one
or
more
flood
lamps
(found
at
most
hardware
stores)
are
arranged
around
the
scene
far
enough
away
so
that
there
are
no
shadows.
Then
the
f-stop,
focus
control
and
lamps
are
adjusted
for
maximum
contrast
and
focus.
It
is
usually
helpful
to
adjust
the
focus
where
the
smallest
part
of
the
scene
has
the
most
detail.
In
many
instances
you
will
want
to
diffuse
the
light
corning
from
the
flood
lamps.
Diffusing
the
light
increases
the
uniformity
of
the
light
on
the
image.
You
can
diffuse
the
light
as
simply
as
placing
a
piece
of
paper
over
the
lamp.
A
better
method
of
diffusion
is
to
take
a
sheet
of
frosted
mylar,
diffused
white
plastic,
or
a
sandblasted
pane
of
glass
and
place
it
between
the
lamp
and
the
subject.
A
diffused
light
source
is
most
commonly
used
in
defect·
detection
and
visual
inspection
applications.
2.3.2
Back
Lighting
the
the give
when
of
For
a
backlit
scene,
the
light
comes
from
behind
that
the
object
being
viewed
is
shadowed
into
Backlighting
the
object
for
maximum
contrast
will
repeatable
results.
Backlighting
is
recommended
MicronEye
to
measure
an
object
or
certain
aspects
Backlighting
is
often
ideal
for
part
recognition.
scene
so
MicronEye.
the
best
using
the
an
object.
The
backlit
light
source
must
be
large
enough
so
that
the
MicronEye,
without
the
object
in
the
field
of
view,
will
see
a
uniform
amount
of
light.
This
is
normally
accomplished
by
~sing
several
flood
lamps
and
shining
the
flood
lamps
onto
a
diffused
surface'
(ground
glass,
or
diffused
white
plastic,
or
frosted
mylar),
such
that
a
uniform
light
source
is
created.
Placing
the
object
between
the
diffused
surface
and
the
MicronEye
will
shadow
the
object
into
the
MicronEye
with
maximum
contrast.
Adjust
the
f-stop
to
the
maximum
value
that
the
amount
of
light
and
exposure
time
will
allow.
2-3
Page 13
Page 14
CHAPTER
3
USING
THE
MICRONEYE
WITH
THE
APPLE
3.1
INSTALLATION
AND
SET
UP
The
MicronEye
configured
for
use
with
the
Apple
II
requires
at
least
48K
of
memory.
The
MicronEye
is
compatible
with
the
Apple
II+
and
the
Apple
lIe.
Remove
your
MicronEye
from
its
shipping
carton.
If
you
have
purchased
a
Bullet,
it
will
already
be
fully
assembled.
All
that
is
required
of
you
is
to
unfold
the
legs
of
the
tripod
and
stand
the
MicronEye
upright.
If
you
have
purchased-a
Camera,
you
will
have
to
connect
the
Camera
to
the
interface
board
with
the
cord
which
is
provided.
Take
a moment
to
examine
the
lens
provid~d
with
the
MicronEye.
You
will
notice
that
there
are
two
lens
controls
which
must
be
adjusted
before
the
MicronEye
will
operate
successfully:
f-stop
and
focus
control.
The
f-stop
controls
the
amount
of
light
admitted
through
the
lens
and,
for
normal
use,
the
lowest
setting
(1.6)
is
recommended.
Any
increase
in
the
f-stop
requires
a
compensating
increase
in
the
light
source
or
in
the
exposure
time.
The
recommended
operating
distance
of
the
MicronEye
is
18
inches
or
greater
from
the
object
it
is
viewing.
You may
be
required
to
make
a
slight
adjustment
to
the
f-stop
setting
and/or
the
focus
control
once
you
have
the
MicronEye
actually
viewing
an
object.
Switch
off
the
power
to
your
computer,
and
you
are
ready
to
install
the
interface
card
into
any
available
slot
in
the
Apple.
With
the
computer
keyboard
facing
you,
insert
the
interface
card
into
the
computer
with-
the
components
on
the
right
side
of
the
card.
The
computer
initially
expects
it
in
slot
2,
but
this
can
be
changed
from
the
keyboard
once
inside
the
program.
Insert
the
MicronEye
diskette
into
the
disk
drive
and
switch
on
the
power
to
your
Apple.
The
MICRONEYE
program,
discussed
in
detail
below,
is
automatically
invoked
when
the
Apple
is
turned
on.
3-1
Page 15
USING
THE
MICRONEYE'WITH
THE
APPLE
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
3.2
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
To
assist
you
in
MicronEye,
both
source
your
diskette.
A
catalog
your
diskette
follows:
developing
personal
applications
for
the
listings
and
programs
have
been
included
in
and
brief
description
of
the
files
found
on
APPLES
OFT
CATALOG
A
045
MICRONEYE
A
012
COMMANDER
A
014
GREYPIC
A 011
GREYSCREEN
A 011
ENHANCED
EYE
A
003
SLIDE
SHOW
T
033
T.CAMASM
B
006
CAMASM
T 011
T.EPRINT
B
003
EPRINT
T
029
T.GREYASM
B
005
GREYASM
T
018
T.GSCRASM
B
003
GSCRASM
T 041 T.ENHANCER
B
006
ENHANCER
T
002
EYEPARMS
B
008
MEYEAPP
T
034
T.MEYEAPP
A
007
GREY16
B
006
GREY16-48K
B
007
GREY16-64K
B
034
BAMBI
B
034
BAMBI
AND
FLOWER
B
034
ROBOTARM
B
034
WINNIE
B
034
BEARS
PASCAL
DIRECTORY
MIGRONEYE.CODE
19
COMMANDER.
CODE
4
GREYPIC.CODE
12
CAMASM.CODE
9
GREYASM.CODE
6 SCREENIO.CODE 7 MICROCAM.TEXT
30
COMMANDIT.TEXT
6 GREYPIC.TEXT 10
CAMASM.TEXT
26
GREYASM.TEXT
16
SCREENIO.TEXT
10
(MICRONEYE
program
as
discussed
below)
(COMMANDER
program
as
discussed
below)
(GREYPIC
program
as
discussed
be~ow)
(GREYSCREEN
program
as
discussed
below)
(ENHANCED
EYE
program
as
discussed
below)
(runs
GREYSCREEN
pictures
on
this
disk)
(source
for
CAMASM)
(6502
routines
for
MICRONEYE
and
CAMASM)
(source
for
EPRINT)
(6502
Epson
screendump
routine)
(source
for
GREYASM)
(6502
routines
for
GREYPIC)
(source
for
GSCRASM)
(6502
routines
for
(GREYSCREEN)
(source
for
ENHANCER)
(6502
routines
for
ENHANCED
EYE)
(parameter
file
for
MICRONEYE)
(6502
routines
for
APPLICATIONS SUBROUTINES)
(source
for
APPLICATIONS SUBROUTINES)
(16
shades
of
grey
program,
BYTE
Oct
'83)
(6502
routines
for
GREY16
on
a 48K
Apple)
(6502
routines
for
GREY16
on
a 64K
Apple)
(picture
created
using
GREYSCREEN)
(picture
created
using
GREYSCREEN)
(picture
created
using
GREYSCREEN)
(picture
created
using
GREYSCREEN)
(picture
created
using
GREYSCREEN)
(MICRONEYE
program
as
discussed
below)
(COMMANDER
program
as
discussed
below)
(GREYPIC
program
as
discussed
below)
(6502
routines
for
MICRONEYE/COMMANDER)
(6502
routines
used
by
GREYPIC)
(Screen
handling
library
code
file)
(Source
code
for
MICRONEYE)
(Source
code
for
COMMANDER)
(Source
code
for
GREYPIC)
(Source
code
for
CAMASM)
(Source
code
for
GREYASM)
(Source
code
for
SCREENIO)
3-2
Page 16
EYEPARHS
1
USING
THE
MICRONEYE
WITH
THE
APPLE
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
(Parameter
file
used
by
MICRONEYE)
NOTE:
The
Pascal
version
of
the
MicronEye
does
not
have
the
Applesoft
equivalents
of
GREYSCREEN
and
ENHANCED
EYE.
3.3
THE
MICRONEYE
PROGRAM
The
MICRONEYE
program
lets
a
non-technical
user
harness
a
great
deal
of
the
MicronEye's
power.
The
program
incorporates
the
ability
to
show
pictures
transferred
from
the
MicronEye
onto
your
computer's
screen,
save
pictures
to
disk
for
future
use,
and
print
pictures
to
a
graphics
printer.
.
When
the
program
is
invoked,
a menu
similar
to
the
screen
below
is
displayed:
MICRONEYE
DEMONSTRATOR
WHAT
WOULD
YOU
LIKE
TO
DO?
(1)
START
CAMERA
(2)
SET
UP
CAMERA
PARAMETERS
(3)
DISPLAY REAL-TIME
COMMANDS
(4)
SAVE
CURRENT
CAMERA
SETUP
(5)
RECALL
CAMERA
SETUP
FROM
DISK
(6)
CHANGE
SLOT
AND
BAUD
RATE
(7)
TARGET
PRACTICE
(8)
EXIT
PROGRAM
3.3.1
START
CAMERA
Starting
the
MicronEye
causes
the
screen
to
blank,
and
prepares
the
computer
to
begin
the
display
of
pictures
using
your
computer's
high
resolution
graphics
capabilities.
The
MicronEye
then
begins
sending
what
it
sees
to
your
computer.
The
computer
then
displays
this
picture
onto
the
computer's
screen.
The
size
of
the
picture
displayed
can
be
modified
by
using
the
"SET
UP
CAMERA
PARAMETERS"
option.
3-3
Page 17
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
When
the
MicronEye
begins
sending
pictures
to
your
computer,
the
MicronEye
has
no
way
of
knowing
if
the
picture
is
properly
focused
or
if
the
proper
exposure
time
has
been
selected.
If
you
are
having
difficulty
focusing
or
selecting
the
proper
exposure
setting,
refer
back
to
the
chapter
2
on
OPERATING TECHNIQUES.
There
are
several
single-key
commands
that
you
can
use
when
the
camera
is
operating.
These
commands
allow
you
to
increase
or
decrease
the
exposure
time,
save
pictures
to
disk,
recall
pictures
from
disk,
print
pictures
to
a
printer,
enable
and
disable
the
display
of
information
about
each
picture
displayed,
select
fixed
or
automatic
exposure
times,
etc.
These
commands
are
called
real-time
commands
and
are
discussed
in
the
"REAL-TIME
COMMANDS"
section.
While
the
MicronEye
is
operating,
you
can
return
to
the
main
menu
at
any
time
by
typing
"Q".
3.3.2
SET
UP
CAMERA
PARAMETERS
When
you
select
this
option,
a
screen
similar
to
the
one
shown
below
will
be
displayed:
MICRONEYE
SETUP
SELECT LETTER
OF
DESIRED OPTION
.•.
(PRESS
<RETURN>
TO
EXIT)
PICTURE
SIZE:
A)
128
X
64
B)
256
X 64
C)
256
X
128
D)
512
X
128
PICTURES/SCREEN:
E)
1
PER SCREEN
F)
2 PER
SCREEN
EXPOSURE
CONTROL:
G)
FIXED EXPOSURE
TIME
H)
AUTO-ADJUST
EXPOSURE
STATUS READOUTS:
I)
ENABLED
J)
DISABLED
LIGHT
MARGIN
K)
PICTURE
SIZE:
256
X
128
(1
PIC/SCREEN)
READOUTS
ARE:
ENABLED
,EXPOSURE
IS:
FIXED
EXPOSURE
LEN:
250
MSECS
LIGHT LEVEL:
45
%
MA~GIN
5 %
3-4
Page 18
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
3.3.2.1
PICTURE
SIZE
-
Options
"A"
through
"D"
select
the
size
of
the
picture
that
the
MicronEye
sends
to
the
computer.
Each
picture
is
made
up
of
thousands
of
black
and
white
dots
called
pixels.
When we
say
a
picture
is
128
x 64
in
size,
this
means
that
the
picture
is
made
up
of
64
rows
of
dots
and
that
each
row
contains
128
dots
of
pixels.
A
256
x
128
picture
is
made
up
of
32,768
pixels.
Each
pixel
is
either
black
or
white.
The
128
x 64
and
256
x
128
picture
size
selections
are
compressed
in
the
horizontal
direction.
The
256
x 64
and
512
x
128
picture
size
selections
produce
an
image
of
normal
proportions.
Only
the
leftmost
280
pixels
of
the
512
x
128
picture
will
fit
on
"the
graphics
screen.
3.3.2.2
PICTURES
PER
SCREEN
-
The
MicronEye
can
take
either
one
or
two
pictures
at
a
time.
If
you
elect
to
look
at
two
pictures
per
screen,
the
computer
will
put
the
second
picture
right
below
the
first
picture.
At
first
glance
it
may
appear
that
you
have
just
one
picture
that
is
twice
as
high
when
the
computer
is
showing
one
picture
per
screen.
If
you
look
closely
though,
you
may
see
that
where
the
two
pictures
meet
there
is
a
slight
discontinuity.
For
some
applications
this
may
not
matter.
In
more
exacting
applications,
you
should
restrict
yourself
to
using
only
one
picture
per
screen.
3.3.2.3
EXPOSURE
CONTROL
- You
have
the
option
of
using
a
fixed
or
variable
exposure
time.
Exposure
time
corresponds
to
the
shutter
~peed
of
conventional
35mm
cameras.
If
the
picture
from
the
MicronEye
1S
too
dark,
a
longer
exposure
time
can
be
specified.
If
the
picture
is
too
light,
a
shorter
exposure
time
can
be
specified.
Exposure
time
can
alternately
be
controlled
by
the
use
of
real-time
commands.
The
exposure
time
is
specified
in
milliseconds.
The
speed
at
which
the
camera
operates
is
equal
to
the
exposure
setting
as
long
as
the
exposure
time
is
greater
than
the
time
required
for
the
MicronEye
to
transmit
the
picture
to
the
computer.
A
more
complete
discussion
of
the
interaction
between
exposure
time
and
transmission
time
can
be
found
in
Appendix
B.
As
an
alternative
to
manual
exposure
time
control,
automatic
exposure
adjustment
can
be
specified
from
this
setup
menu
or
as
a
real-time
command.
Selecting
the
auto-adjust
option
tells
the
computer
to
evaluate
the
picture
as
it
comes
from
the
MicronEye
to,
determine
what
percent
of
the
pixels
are
white
and
what
percent
are
black.
When
readouts
are
enabled,
the
percentage
associated
with
LIGHT
LEVEL
is
an
approximation
of
how
white
the
picture
is:
100%
being
all
white,
0%
being
all
black.
3-5
Page 19
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
When
you
select
the
auto-adjust
feature
you
are
requested
to
specify
a
light
level
between
0
and
100
and
a
margin
which
specified
the
allowed
discrepancy
from
the
prescribed
light
level.
If
you
specify
a
light
level
of
45%
and
a
margin
of
5%
then
after
each
picture
is
received
from
the
MicronEye,
the
computer
will
determine
if
the
light
level
was
between
40%
and
50%
(45%
plus/minus
5%).
If
the
light
level
was
within
the
set
bounds
then
the
exposure
time
is
left
alone.
If
the
light
level
is
out-of-bounds
then
the
exposure
time
is
adjusted
upward
or
downward
to
try
and
bring
the
next
picture
into
the
prescribed
range.
The
margin
setting
is
also
utilized
by
the
alarm
mode
to
set
sensitivity.
The
alarm
mode
is
explained
in
the
section
on
real-time
commands.
3.3.2.4
STATUS
READOUTS-After
displaying
a
picture
from
the
MicronEye,
the
computer
can
optionally
display
the
exposure
time
and
light
level
of
the
picture
just
displayed.
When
status
readouts
are
enabled,
this
information
is
displayed.
Enabling
this
option,
will
slow
down
the
rate
at
which
pictures
are
updated
on
the
screen.
How
much
slower
will
depend
on
the
exposure
time
setting
and
the
type
of
computer
you
have.
In
addition
to
being
able
to
control
.readouts
from
the
setup
menu,
a
real-time
command
is
available
to
enable
and
disable
the
readout
display.
On
some
computers,
you
may
experience
a
difference
in
your
picture's
light
ievel
when
switching
back
and
forth
between
having
readouts
enabled
and
disabled.
3.3.2.5
LIGHT
MARGIN-This
is
a
convenient
way
of
setting
the
light
margin
without
altering
the
light
level
setting.
It
is
especially
useful
for
changing
the
MicronEye's
sensitivity
when
being
used
in
the
alarm
mode.
3.3.3
DISPLAY REAL-TIME
COMMAND
There
are
several
keystroke
commands
that
can
change
how
the
MicronEye
operates.
After
the
computer
displays
each
picture
on
the
screen,
it
checks
to
see
if
a
key
has
been
pressed
on
the
keyboard.
If
a
key
has
been
pressed,
the
computer
checks
to
see
if
the
key
hit
corresponds
with
its
list
of
valid
real-time
commands.
If
so,
the
command
is
executed.
If
more
than
one
key
has
been
pressed
during
the
scan
only
the
last
key
struck
is
used.
3-6
Page 20
activated
by
'Its
operation
is
except
that
the
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
Selecting
the
"DISPLAY REAL-TIME
COMMANDS"
options
shows
you
the
list
of
valid
real-time
commands.
The
screen
should
look
somewhat
like
this:
REAL-TIME
COMMAND
SUMMARY
<
DECREASE
EXPOSURE
TIME
>
INCREASE
EXPOSURE
TIME
A
TOGGLE
ALARM
MODE
ON/OFF
C
CLEAR
SCREEN
f FIX
EXPOSURE
TIME
TO
CURRENT
SETTING
L
LOAD
PICTURE
FROM
DISK
N PRINT PICTURE
NEGATIVE
ON
EPSON
P PRINT PICTURE
ON
EPSON
Q QUIT
AND
RETURN
TO
MAIN
MENU
R
TOGGLE
DISPLAY
READOUTS
ON/OFF
S
SAVE
PICTURE
TO
DISK
T USING
BLACK/WHITE
RATIO (LIGHT
LEVEL)
OF
CURRENT
PICTURE,
START
AUTOMATIC
LIGHT
LEVEL
TRACKING
The
effects
of
each
real-time
command
are
explained
in
the
pages
that
follow.
3.3.3.1
DECREASE
EXPOSURE
TIME
-
This
command
is
activated
by
pressing
the
less-than
key
(comma
also·
works).
Each
time
this
command
is
issued,
the
computer
will
decrease
the
MicronEye's
exposure
time.
Each
time
the
command
is
given
the
computer
will
decrease
the
exposure
time
in
larger
and
larger
steps.
If
the
steps
get
too
large,
the
computer
may
decide
to
decrease
the
exposure
time
in
smaller
and
smaller
steps.
You may
want
to
enable
readouts
and
experiment
with
the
increase
and
decrease
exposure
commands
to
get
a
better
feel
for
how
the
commands
interact
and
how
the
step
size
is
increased
and
decreased
by
different
combinations
of
the
commands.
3.3.3.2
INCREASE
EXPOSURE
TIME
-
This
command
is
pressing
the
greater-than
key
(period
also
works).
similar
to
the
"DECREASE
EXPOSURE
TIME" command
exposure
time
is
increased
rather
than
decreased.
3-7
Page 21
USING
THE
MICRONEYE'WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
3.3.3.3 If
the
will
be
command
computer
TOGGLE
ALARM
MODE-This
command
is
activated
by
the
"A"
key.
alarm
mode
is
off
when
you
give
this
command,
then
alarm
mode
turned
on.
If
the
alarm
mode
is
enabled
then
giving
this
will
disable
the
alarm
mode.
When
you
issue
the
command
the
will
tell
you
whether
you
have
enabled
or
disabled
the
alarm.
The
alarm
mode
allows
the
MicronEye
to
function
as
a
surveillance
device.
The
light
margin
setting
determines
the
sensitivity
of
the
alarm.
The
greater
the
light
margin
setting,
the
less
sensitive
the
MicronEye
will
be
to
change.
The
alarm
is
activated
by
changes
in
light
level.
'If
an
object
moves
across
the
camera's
field
of
view,
an
alarm
will
sound
until
a
key
is
struck
on
the
Apple's
keyboard.
A
user
can
also
customize
the
computer's
response
to
the
alarm
being
tripped.
The
computer
could
automatically
dial
a
phone
number,
activate
recording
equipment,
etc.
3.3.3.4
CLEAR
SCREEN
-
The
computer
clears
the
screen
when
the
"c"
key
is
struck.
This
command
is
rarely
needed
because
the
computer
tries
to
clean
up
after
itself
whenever
the
size
of
the
viewing
area
is
changed.
3.3.3.5
FIX
EXPOSURE
TIME
TO
CURRENT
SETTING -
This
command.
is
invoked
by
striking
the
"F"
key.
The
MicronEye
normally
uses
the
same
exposure
setting
time
after
time,
and
only
modifies
the
exposure
setting
when
told
to
do
so.
This
is
referred
to
as
a
fixed
exposure
setting.
The
MicronEye
can
also
operate
such
that
the
exposure
time
will
change
dynamically
to
maintain
a
specified
light
level.
This
is
referred
to
as
an
auto-adjust
s~tting.
When
the
camera
is
in
the
auto-adjust
mode
and
you
want
to
return
to
the
fixed
exposure
mode
use
this
command.
The
camera
will
fix
the
exposure
time
to
the
exposure
time
being
used
at
the
time
the
command
is
given.
3.3.3.6
LOAD
PICTURE
FROM
DISK - A
picture
that
was
previously
taken
by
the
MicronEye
and
saved
to
disk
can
be
displayed
on
the
computer's
screen
by
using
this
command.
The
load
command
is
invoked
by
striking
the
ilL"
key.
The
computer'
will
then
ask
for
the
name
given
the
picture
when
it
was
stored
to
disk.
If
the
computer
can
find
the
file
on
disk,
the
picture
will
be
displayed
until
a
key
is
typed
on
the
keyboard.
Otherwise,
an
error
message
will
be
displayed
and
the
computer
will
resume
displaying
pictures
from
the
MicronEye.
If
you
simply
press
3-8
Page 22
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
the
<RETURN>
key
when
prompted
for
a
file
name,
then
the
computer
will
resume
displaying
pictures.
3.3.3.7
picture slot
1.
disk,
by
PRINT PICTURE
ON
EPSON-The
being
displayed
to
be
printed
This
command
can
also
be
used
typing
a
"P"
when
prompted
to
"P"
key
causes
the
current
on
an
Epson
graphics
printer
in
after
loading
a
picture
from
"press
<RETURN>
to
continue
...
"
The
routine
is
intended
for
an
Epson
printe~
using
a
parallel
interface.
Attempting
to
select
the
print
option
without
a
printer
or
a
non-Epson
parallel
printer
will
cause
the
program
'to
hang.
Some
early
models
of
the
Epson
graphics
printer
may
not
work
properly
either.
The
reason
for
all
of
the
problems
associated
with
printing
graphics
is
that
the
standard
PRINT
and
COUT
routines
will
insert
unwanted
line
feeds
and
carriage
returns
into
the
print
stream.
If
you
have
a
screen
dump
routine
for
your
printer,
you
should
modify
lines
2010,
1180,
and
1190
of
the
MicronEye
program
to
use
your
screen
dump
routine
rather
than
the
one
supplied.
An
alternative
to
this
approach
would
be
to
save
the
picture
in
uncompressed
format
(refer
to
SAVE
PICTURE
section)
and
then
run
your
screen
dump
program
to
print
the
picture.
3.3.3.8
PRINT PICTURE
NEGATIVE
ON
EPSON
-
This
option
is
invoked
by
typing
the
"N"
key.
It
operates
exactly
like
t.he
normal
print
option
with
the
exception
that
white
areas
on
the
screen
will
print
black,
and
black
areas
will
print
white.
3.3.3.9
QUIT
AND
RETURN
TO
MAIN
MENU
- You
can
return
to
the
main
menu
by
typing
"Q".
When
you
no
longer
wish
to
operate
the
MicronEye,
select
this
option.
3.3.3.10
TOGGLE
DISPLAY
READOUTS
ON/OFF -
Display
readouts
are
enabled
or
disabled
by
typing
"R".
If
readouts
are
enabled
then
after
each
picture
is
received
from
the
MicronEye,
the
computer
will
display
the
exposure
time
and
light
level
for,
that
picture.
When
readouts
are
enabled,
the
picture
rate
may
be
slowed
down
dramatically,
so
it
is
usually
advisable
to
have
readouts
disabled
-whenever
rossible.
3-9
Page 23
USING
THE
MICRONEYE'WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
3.3.3.11
SAVE
PICTURE
TO
DISK -
Typing
an
"s"
when
the
camera
is
operating
tells
the
computer
to
save
the
current
picture
to
disk.
The
computer
will
prompt
for
a
filename
and
attempt
to
save
the
picture
to
disk.
If
an
error
is
encountered
in
attempting
to
save
the
picture
(usually
due
to
insufficient
disk
space)
then
a
message
is
displayed.
Otherwise
the
picture
is
stored
to
disk.
(Applesoft
only.)
Normally,
the
MicronEye
program
will
compress
the
picture
before
storing
it
to
disk.
Although
this
saves
a
lot
of
disk
space,
the
pictures
saved
are
incompatible
with
commercially
available
graphics
manipulation
packages
and
screen
dump
programs.
If
you
prefer
that
the
MicronEye
program
store
pictures
in
a
conventional,
non-compressed
format
then
perform
the
following
sequence
of
DOS
and
Applesoft
commands:
LOAD
MICRONEYE
2027
FF = 1
SAVE
MICRONEYE
The
Pascal
version
of
MicronEye
saves
pictures
in
compressed
format
only.
This
is
because
a
standard
format
for
a .FOTO
file
has
not
been
defined
by
Apple
or
other
graphics
software
companies.
3.3.3.12
TRACK
EXPOSURE
TIME USING
AUTO
,LIGHT
LEVEL
ADJUST
-
The
auto-adjust
mode
is
selected
by
typing
a
"T".
When
auto-adjust
is
selected
as
a
real-time
option,
the
computer
will
use
the
light
level
of
the
current
picture
as
the
ideal
light
level.
The
light
margin
is
the
acceptable
level
of
deviation
from
the
ideal
light
level
and
should
have
been
set
previously
from
the
MICRONEYE
SETUP
screen.
After
each
picture
is
received
from
the
MicronEye,
the
computer
determines
if
the
light
level
was
within
the
established
bounds.
If
not,
the
computer
will
increase
or
decrease
the
exposure
time
of
the
next
picture
to
try
and
get
back
to
an
acceptable
light
level.
The
auto-adjust
mode
is
intended
for
applications
where
the
MicronEye
is
focused
on
a
fixed
or
semi-fixed
scene.
3.3..4
SAVE
CURRENT
CAMERA
SETUP
Selecting
this
option
from
the
main
menu
tells
the
computer
to
save
the
currently
defined
setup
as
the
setup
the
computer
should
initially
use
when
starting
the
MicronEye
program.
The
setup
variables
that
are
stored
include
PICTURE
SIZE,
PICTURES
PER
SCREEN,
EXPOSURE
METHOD,
EXPOSURE
TIME,
READOUT
SETTING, LIGHT LEVEL, LIGHT
MARGIN,
MICRONEYE
SLOT,
and
BAUD
RATE.
The
setup
is
saved
to
a
file
called
EYEPARMS.
3-10
Page 24
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
MICRONEYE
PROGRAM
3.3.5
RECALL
CAMERA
SETUP
FROM
DISK
This
option
restores
the
camera
setup
to
the
settings
in
the
EYEPARMS
file.
This
is
handy
when
you
have
been
experimenting
with
a
non-standard
setup
and
want
to
go
back
to
using
your
normal
setup.
3.3.6
CHANGE
SLOT
AND
BAUD
RATE
When
shipped
from
the
factory
the
MicronEye
pas
been
set
to
operate
at
a
baud
rate
of
153,600
bits/second.
Also
the
MicronEye
program
expects
the
MicronEye
to
go
in
slot
2.
The
baud
rate
will
not
normally
be
changed
by
the
user.
However,
since
a
slot
may
currently
contain
another
card
it
is
helpful
to
be
able
to
specify
an
alternate
slot
for
the
MicronEye.
It
is
usually
desirable
to
save
the
current
setup
to
disk
after
modifying
the
slot
or
baud
rate
since
these
changes
are
fairly
permanent
in
nature.
3.3.7
TARGET
PRACTICE
This
option
may
prove
useful
to
some
users.
It
temporarily
puts
the
MicronEye
in
auto-adjust
mode,
sets
the
ideal
light
level
to
50%,
and
adjusts
the
exposure
time
after
each
frame
until
a
50%
light
level
is
achieved.
When
in
target
practice,
striking
any
key
on
the
keyboard
will
return
you
to
the
main
menu
and
return
the
setup
to
what
it
was
prior
to
invoking
target
practice
.
.
The
target
practice
feature
was
included
mainly
to
demonstrate
how
auto-adjust
mode
works.
3.4
THE
COMMANDER
PROGRAM
The
COMMANDER
program
is
program.
The
program
asks
(Applesoft)
command.
This
descriptions
found
in
Chapter
a
lower
for
a
command
7.
level
program
than
the
MICRONEYE
hexidecimal
(Pascal)
or
decimal
corresponds
with
the
command
If
the
SEND
mode
is
selected
in
the
command
byte,
the
user
is
also
prompted
for
a
soaktime.
In
the
COMMANDER
program,
soaktime
is
the
time
in
milliseconds
that
the
program
will
wait
at
the
end
of
each
frame
to
allow
the
camera
addition~l
exposure
time.
If
SOAK
mode
is
selected,
then
the
total
exposure
time
will
be
the
transmission
time
plus
the
soaktime.
3-11
Page 25
USING
THE
MICRONEYE'WITH
THE
APPLE
THE
COMMANDER
PROGRAM
If
SOAK
mode
is
not
selected
then
total
exposure
time
will
equal
the
soaktime.
The
computer
will
continue
to
send
the
camera
the
specified
command
until
the
user
types
a
key
on
the
keyboard.
The
user
will
be
reprompted
for
another
command
unless
the
letter
typed
was
a "Q". A
"Q"
will
exit
the
program.
Commands
less
than
decimal
192
(CO
hex)
will
inhibit
the
camera
from
operating
properly
and
probably
cause
the
computer
to
hang.
3.5
THE
GREYPIC
PROGRAM
The
GREYPIC
program
is
a
simplistic
but
effective
demonstrator
of
the
MicronEye's
grey
scale
capabilities.
By
taking
the
same
picture
at
several
exposure
settings,
the
program
assigns
a
grey
level
to
each
pixel
depending
on
the
number
of
times
it
was
white
throughout
the
several
exposure
settings.
Utilizing
several
of
the
features
of
the
MICRONEYE
program,
the
GREYPIC
program
allows
for
real-time
adjustment
of
exposure
time,
saving
and
retrieving
grey
scale
pictures
on
disk,
and
pasting
together
several
pictures
to
make
a
larger
composite
picture.
The
GREYPIC
program
should
be
easily
changed
to
work
on
other
graphics
printers
or
even
on
standard
dot
matrix
or
line
printers.
.
The
program
is
designed
to
operate
with
an
EPSON
printer
(with
Graftrax)
in
slot
1.
When
the
program
is
run
you
are
asked
to
specify
the
slot
the
MicronEye
is
in.
You
are
also
reminded
to
make
sure
that
the
printer
is
online
to
prevent
the
program
from
hanging.
The
program
then
begins
displaying
the
picture
being
received
from
the
MicronEye
on
the
upper
third
of
the
screen.
The
exposure
time
is
initially
set
to
1/3
of
a
second.
The
GREYPIC
program
requires
some
setup
to
get
a
clear
image.
A
high
and
low
setting
for
the
exposure
range
must
be
set.
This
can
be
accomplished
with
the
use
of
the
L,
H,
and
B
commands.
The
high
exposure
setting
must
be
decided
upon
such
that
the
image
is
not
too
light
to
display
all
of
the
details
of
the
object
being
viewed
on
the
screen.
The
dark
exposure
setting
should
be
set
so
that
no
streaking
ocqurs
on
the
screen.
Any
slight
discrepency
in
exposure
time
can
be
corrected
using
the
increase
and
decrease
exposure
time
commands.
Be
sure
that
the
object
is
in
focus
and
the
F-Stop
is
at
the
correct
setting.
To
make
a
composite
picture,
place
the
object
being
viewed
to
show
the
upper
most
details
which
are
desired
to
be
displayed
on
the
screen.
On
the
screen,
some
distance
should
be
allowed
between
the
edge
of
the
picture
and
the
image
of
the
object.
After
the
picture
is
sharp
and
clear,
a
printout
can
be
made.
Press
the
P command
and
the
upper
third
of
the
screen
will
be
printed.
3-12
Page 26
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
GREYPIC
PROGRAM
Press
the
"2"
key
to
display
the
picture
on
the
middle
third
of
the
screen.
Raise
the
level
of
the
object
until
the
image
on
the
upper
third
of
the
screen
is
directly
on
top
of
the
image
being
displayed
on
the
middle
third
of
the
screen.
A
flowing,
continuous
picture
should
be
evident
on
the
screen
with
no
recognizable
division
between
the
two
pictures
on
the
screen.
Press
the
P command
and
the
middle
third
of
the
screen
will
be
printed.
Press
the
"3"
key
to
display
the
picture
on
the
bottom
third
of
the
screen.
Again,
raise
the
level
of
the
object
until
the
bottom
image
is
directly
alligned
with
the
middle
third
of
the
screen.
A
continuous
picture
should
be
displayed
on
the
screen
with
no
obvious
breaks
between
the
three
sections
of
the
screen.
Press
the
P command
and
the
bottom
third
of
the
screen
will
be
printed.
By
using
the
N command
to
scroll
the
desired
length
can
be
printed.
Using
described,
scroll
the
screen
up
one
third,
object
and
print
the
section.
image,
a
the
same
raise
the
picture
method
level
of
any
already of
the
If
the
object
being
displayed
on
the
screen
by
the
camera
is
in
a
fixed
position,
the
height
of
the
camera
can
be
raised
or
lowered.
Keep
in
mind
at
all
times
that
the
MicronEye
should
be
kept
parallel
and
perpendicular
with
the
object
being
viewed.
Setting
an
object
on·
a
movable
platform
(like
a
music
stand)
is
one
possible
way
to
raise
the
level
of
an
object.
If
it
is
desired
to
save
the
picture
to
disk,
each
section
of
the
screen
must
"be
saved
separately.
Press
the
S command
and
the
image
will
be
saved
to
be
used
at
a
later
date.
The
grey-scaled
picture
can
be
recalled
from
disk
using
the
R
command.
If
you
desire
to
print
the
picture
that
has
been
recalled
then
press
"P"
rather
than
<RETURN>
once
the
picture
has
been
displayed.
3-13
Page 27
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
GREYPIC
PROGRAM
The
following
real-time
commands
control
the
MicronEye
while
using
the
GREYPIC
program:
<
Decrease
exposure
time
(comma
also
works).
>
Increase
exposure
time
(period
also
works).
C
Clear
entire
screen.
1
Use
upper
third
of
screen
to
display
picture
on.
2
Use
middle
third
of
screen
to
display
picture
on.
3
Use
bottom
third
of
screen
to
display
picture
on.
N
Rollup
screen.
(Middle
third
of
screen
moves
to
upper
third,
bottom
third
moves
to
middle
third,
and
bottom
third
of
screen
is
cleared.
When
using
this
option,
it
is
best
to
be
displaying
the
picture
in
the
bottom
third
of
the
screen.)
By
using
this
command
and
the
1,
2,
and
3
commands
the
user
can
piece
together
a
picture
of
any
length.
E
Display
the
current
exposure
time
and
change
the
exposure
time
to
a new
value.
L
Use
current
exposure
setting
as
the
lowest
exposure
setting
when
creating
a
grey-scaled
picture.
H
Use
current
exposure
setting
as
the
highest
exposure
setting
when
creating
a
grey-scaled
picture.
B
Bracket
the
exposure
range
for
a
grey-scaled
picture.
(User
will
be
prompted
for
a
high
and
a
low
setting.)
P
Create
a
grey-scaled
picture
using
the
current
high
and
low
exposure
settings,
and
print
the
picture
on
the
Epson.
(Seven
intermediate
exposure
levels
are
used
in
addition
to
the
high
and
low
values
to
create
a
picture
with
nine
levels
of
grey.)
S
Save
a
grey-scaled
picture
to
disk
rather
than
print
it.
R
Recall
a
grey-scaled
picture
from
disk
and
print
it.
D dump (BSAVE)
entire
hi-res
screen
to
disk.
G
get
previously
BSAVE'D
hi-res
screen
from
disk
and
display
it.
Q
Exit
program.
The
GREYPIC
program
is
easily
modified
to
create
images
with
up
to
256
levels
of
grey.
Although
your
computer
has
no
means
of
displaying
this
many
levels
of
grey,
there
are
some
rather
expensive
dev.ices
available
for
displaying
and
printing
such
images.
3.6
THE
GREYSCREEN
PROGRAM
The
GREYSCREEN
program
is
a
takeoff
from
the
GREYP~C
program.
However,
the
GREYSCREEN
program
attempts
to
show
pseudo-grey
tone
images
on
the
screen.
Because
the
Apple
has
no
true
shades
of
grey,
we
must
simulate
the
grey
by
alternating
black
and
white
pixels.
As
in
the
GREYPIC
program
the
MicronEye
uses
different
exposure
times
to
determine
shades
of
grey.
3-14
Page 28
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
GREYSCREEN
PROGRAM
The
GREYSCREEN
program
uses
two
different
exposure
times
which
are
controlled
from
the
keyboard.
If
a
pixel
from
the
camera
is
white
for
both
exposure
times,
then
the
wide
pixel
on
the
screen
is
all
white.
If
a
pixel
from
the
camera
is
black
for
both
exposure
times,
then
the
wide
pixel
on
the
screen
is
all
black.
If
a
pixel
from
the
camera
is
white
at
one
exposure
time,
and
black
at
the
other,
then
one
side
of
the
wide
pixel
on
the
screen
will
be
black
and
the
other
will
be
white.
As
in
the
GREYPIC
program,
the
partitions.
These
partitions
are
allow
a
composite
image
to
be
created
printed
or
stored
for
later
retrieval
screen
is
divided
into
three
selectable
from
the
keyboard
and
on
the
screen
which
may
be
or
manipulation~
The
concept
utilized
by
the
GREYSCREEN
program
is
easily
transferrable
to
other
computers.
Computers
such
as
the
IBM
PC,
Commodore
64,
and
TRS-80
Color
Computer
have
implemented
a
medium
resolution
graphics
mode
which
uses
two
bits
to
represent
the
pixel
color
on
the
screen.
At
the
very
least,
black,
white,
light
grey,
and
dark
grey
are
available
for
creating
an
image.
The
obvious
advantage
over
the
Apple
is
the
fact
that
real
shades
of
grey
are
available
for
display.
The
real-time
commands
available
for
use
with
the
GREYSCREEN
program
are:
<
Decrease
exposure
time
(comma
also
works)
>
Increase
exposure
time
(period
also
works)
1
Use
top
1/3
of
graphics
screen
2
Use
middle
1/3
of
graphics
screen
3
Use
bottom
1/3
of
graphics
screen
N
Scroll
screen
up
by
one-third
(N
also
works)
S
Save
(BSAVE)
screen
to
disk
L
Load
(BLOAD)
screen
from
disk
C
Clear
screen
E
Set
exposure
time
P
Print
image
to
EPSON
(slot
1,
requires
Graftrax)
(Can
also
be
used
immediately
after
LOAD
command)
M
Modify
delta
between
high
and
low
exposure
(default
20)
Q
Quit
program
SPACEBAR
--
Freezes
frame
until
key
hit
3.7
THE
ENHANCED
EYE
PROGRAM
The
ENHANCED
EYE
program
goes
a
step
further
than
any
of
the
other
Apple
MicronEye
programs.
It
manipulates
the
pixels
received
from
the
camera
to
improve
the
image
quality.
Because
of
the
amount
of
processing
required
for
manipulation,
the
processing
is
done
between
scans.
This
slows
down
the
frame
to
frame
operation
of
the
camera
but
provides
an
image
of
greater
quality
than
any
of
the
other
3-15
Page 29
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
ENHANCED
EYE
PROGRAM
methods
demonstrated
in
other
programs.
When
the
program
begins,
the
display
image
is
256
x
64.
Once
the
subject
has
been
focused
and
the
appropriate
light
level
determined,
the
user
can
type
"E"
to
enter
the
ENHANCE
mode,
"F"
to
enter
the
ENHANCE
mode
with
FILLIN,
lUi
for
UNENHANCED
mode,
and
'N'
to
return
to
the
256
x 64
mode.
The
actual
enhancement
of
the
image
is
done
relatively
fast.
But
because
of
the
way
the
Apple
high
resolution
graphics
are
implemented
(1
color
bit
and
7
data
bits
per
byte)
and
the
fact
that
the
enhancement
is
performed
on
a
bitmap
image
(8
data
bits
per
byte),
the
time
required
to
convert
the
bitmap
image
to
the
Apple
format
takes
in
excess
of
a
second.
For
non-display
applications
the
ENHANCER
assembly
language
routine
could
be
modified
to
perform
the
enhancement
but
skip
the
display
to
screen,
thereby
greatly
increasing
the
operating
speed
of
this
program.
The
following
set
of
real-time
commands
are
available
from
the
ENHANCED
EYE
program:
<
Decrease
exposure
time
(comma
also
works)
>
Increase
exposure
time
(period
also
works)
E
Enhance
image
without
fillin
(512
x
128)
F
Enhance
image
with
fillin
(512
x
128)
U
Display
unenhanced
image
N
Display
128
x 64
image
(rest
of
$creen
is
not
cleared)
G
Create
grey-tone
image
from
dual
exposures
L
Load
(BLOAD)
screen
from
disk
P
Print
image
to
EPSON
(slot
1,
requires
Graftrax)
(Can
also
immediately
follow
LOAD
or
GREY
command)
S
Save
(BSAVE)
screen
to
disk
(Can
also
immediately
follow
GREY
command)
C
Clear
screen
T
Set
exposure
time
Q
Quit
program
SPACEBAR
--
Freeze
frame
until
key
hit
3.8
THE
GREY16
PROGRAM
The
September
and
October
1983
issues
of
BYTE
magazine
contain
two
articles
on
a
camera
called
the
Micro
DCAM
and
a
review
of
the
MicronEye.
The
Micro
DCAM
is
functionally
equivalent
to
the
MicronEye
in
all
respects.
The
GREY16
program
mentioned
in
the
article
has
been
included
on
your
diskette.
(Some
minor
enhancements
have
been
added
to
the
program
described
in
the
article)
•.
The
commands
available
when
running
the
GREY16
program
are
as
follow:
3-16
Page 30
USING
THE
MICRONEYE
WITH
THE
APPLE
THE
GREY16
PROGRAM
N
Display
the
image
in
normal
size
(256
x
64)
F
Display
the
image
in
full
size
(256
x
128).
G
Create
a
picture
(256
x
128)
with
16
levels
of
grey.
This
takes
about
30
seconds
and
displays
a
countdown
of
the
number
of
exposures.
E
Change
exposure
time.
S
Save
picture
to
disk.
L
Load
picture
from
disk.
P
Print
picture
on
Epson.
Q
Quit
program.
3-17
Page 31
Page 32
CHAPTER
4
USING
THE
MICRONEYE
WITH
THE
IBM
PC
4.1
CREATINGABOOTABLE
DISKETTE
The
diskette
included
with
your
MicronEye
is
NOT
copy-protected
and
contains
source
code
for
all
programs.
The
MicronEye
diskette
does
not
contain
any
system
files,
and
as
SUGh
is
not
bootable.
This
section
shows
you
how
to
create
a
"working"
copy
of
your
diskette
that
includes
all
the
necessary
system
files.
Alternately,
you
could
choose
to
always
use
the
MicronEye
diskette
in
drive
B:
and
change
the
MEYE.BAT
file
to
read
"A:BASIC B:MEYE".
To
create
a'
bootable
version
of
the
MicronEye
diskette
and
a
backup
of
the
diskette
you
need
the
following:
1.
Your
MicronEye
diskette;
2.
Your
DOS
system
diskette
(with
the
DOS
utilities
on
it);
3.
An
unused
diskette
(new
unformated
or
old
unused
with
data).
The
two
step
process
below
will
create
a
working
copy
of
the
MicronEye
diskette
on
the
unused
diskette.
This
allows
you
to
keep
your
original
diskette
in
a
safe
place
as
a
backup.
4.1.1
MULTIPLE DRIVE
SYSTEMS
Versus
SINGLE DRIVE
SYSTEMS
The
same
process
that
follows
can
be
used
by
both
multiple
and
single
drive
system
owners
the
single
drive
owners
just
get
to
shuffle
diskettes
in
and
out
of
their
drive
a
lot
more.
4-1
Page 33
USING
THE
MICRONEYE
WITH
THE
IBM
PC
CREATING
A
BOOTABLE
diskette
4.1
.2
STEP 1
This
step
puts
the
system
on
your
MicronEye
diskette.
Insert
the
MicronEye
diskette
in
drive
B
(Drive
A
for
you
single
drive
owners)
and
type
"B:MOVDOS"
and
press
return.
For
this
first
step
of
the
process,
when
the
computer
asks
you
to
mount
a
diskette
in:
DRIVE A:
insert
the
DOS
diskette
DRIVE B:
insert
the.
MicronEye
diskette.
Step
one
is
complete
when
the
message
"Insert
target
diskette
in
A"
appears.
4.1.3
STEP 2
This
step
builds
your
working
MicronEye
copy
on
your
unused
diskette.
Be
aware
that
this
step
will
destroy
the
current
content
of
your
unused
diskette
if
it
contains
data.
For
this
second
part
of
the
process,
when
the
computer
asks
you
to
mount
a
diskette
in:
DRIVE
A:
insert
your
unused
diskette.
DRIVE
B:
insert
the
MicropEye
diskette.
Step
two
is
complete
when
the
"$$$MOVDOS
IS
COMPLETE$$$"
message
appears.
Your
working
copy
of
the
MicronEye
is
now
ready.
original
MicronEye
diskette
in
a
safe
place
as
a
backup.
4.2
INSTALLATION
AND
SETUP
Store
your
The
MicronEye
configured
for
use
with
the
IBM
least
96K
of
memory
and
the
Color/Graphics
Monitor
color
monitor
is
not
required.
Your
monitor
should
the
composite
video
connector
or
the
RGB
connector.
compatible
with
both
the
IBM
PC
and
the
IBM
XT.
PC
requires
at
Adaptor
board.
A
be
attached
via
The
MicronEye
is
Remove
your
MicronEye
from
its
shipping
carton.
If
you
have
purchased
a
Bullet,
it
will
already
be
fully
assembled.
All
that
is
required
of
you
is
to
unfold
the
legs
of
the
tripod
and
stand
the
MicronEye
upright.
If
you
have
purchased
a
Camera,
you
will
have
to
4-2
Page 34
USING
THE
MICRONEYE
WITH
THE
IBM
PC
INSTALLATION
AND
SET
UP
connect
the
Camera
to
the
interface
board
with
the
cord
which
is
provided.
Take
a moment
to
examine
the
lens
provided
with
the
MicronEye.
You
will
notice
that
there
are
two
lens
controls
which
must
be
adjusted
before
the
MicronEye
will
operate
successfully:
f-stop
and
focus
control.
The
f-stop
controls
the
amount
of
light
admitted
through
the
lens
and,
for
normal
use,
the
lowest
setting
(1.6)
is
recommended.
Any
increase
in
the
f-stop
requires
a
compensating
increase
in
the
light
source
or
in
the
exposure
time.
The
recommended
operating
distance
of
the
MicronEye
is
18
inches
or
greater
from
the
object
it
is
viewing.
You may
be
required
to
make
a
slight
adjustment
to
the
f-stop
setting
and/or
the
focus
control
once
you
have
the
MicronEye
actually
viewing
an
object.
Switch
off
the
power
to
your
computer,
and
you
are
ready
to
install
the
interface
card
into
any
available
slot
in
the
computer.
With
the
computer
keyboard
facing
you,
insert
the
interface
card
into
the
computer
with
the
components
on
the
right
side
of
the
card.
The
interface
card
does
not
include
a
mounting
bracket.
Remove
the
retaining
bracket
corresponding
to
the
slot
into
which
you
are
inserting
the
interface
card.
The
cable
between
the
MicronEye
and
interface
card
should
be
routed
through
the
opening
created
by
removing
the
retaining
bracket.
Replace
the
cover
on
your
computer
.
and
turn
on
your
computer.
4-3
Page 35
USING
THE
MICRONEYE'WITH
THE
IBM
PC
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
4.3
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
To
assist
you
in
MicronEye,
both
source
your
diskette.
A
catalog
your
diskette
follow:
developing
personal
applications
for
the
listings
and
programs
have
,been
included
in
and
brief
description
of
the
files
found'
on
MOVDOS.BAT MICRONEY.BAT
MEYEDRVR.ASM MEYEDRVR.BAS
MEYE.BAS MEYECOMP.BAT MEYESAVE.BAS
MEYEPARMS
MEYE88.ASM
MEYE.EXE MEYEC.BAS MEYEDRVC.ASM MEYEC.OBJ
MEYEDRVC.OBJ
MEYE88.0BJ MEYEC.BAT
LCS.BAT
(Command
file
to
create
bootable
diskette)
(Command
file
to
invoke
the
MEYE
program)
(Source
file
for
8088
MicronEye
routines)
(BLOADable
8088
routines
for
the
MicronEye)
(BASIC
MEYE
program
described
below)
(Command
file
to
assemble
MEYEDRVR)
(BASIC
program
used
by
MEYECOMP)
(Optional
parameter
file
for
MEYE)
(MicronEye
Applications
Library
assembly
language
routines)
(Compiled-BASIC
version
of
the
MicronEye
program)
(ASCII
version
of
MEYE.BAS
to
work
with
compiled-BASIC
(Assembly
language
driver
for
the
MicronEye)
(Linkable
object
module
version
of
MEYEC.BAS)
(Linkable
object
module
version
of
MEYEDRVC.ASM)
(Linkable
object
'module
version
of
MEYE88.ASM)
(Batch
file
used
to
create
MEYE.EXE)
(Sample
batch
file
to
link
user
program
with
MEYE88)
4.4
THE
MEYE
PROGRAM
The
MICRONEYE
program
lets
a
non-technical
user
harness
a
great
deal
of
the
MicronEye's
power.
The
program
incorporates
the
ability
to
show
pictures
transferred
from
the
MicronEye
onto
your
computer's
screen,
save
pictures
to
diskette
for
future
use,
and
print
pictures
to
a
graphics
printer.
Run
the
program
by
simply
typing
MICRONEYE
or
MEYE
in
response
to
the
system
prompt.
4-4
Page 36
USING
THE
MICRONEYE
WI~H
THE
IBM
PC
THE
MEYE
PROGRAM
When
the
program
is
invoked,
a menu
similar
to
the
screen
below
is
displayed:
MicronEye
Demonstrator
MICRONEYE
ACTIVITY· OPTIONS
MICRONEYE
SETUP OPTIONS
Selection
...
Picture
size
and
type
a)
128
x
64
(black/white)
1 )
Start
MicronEye
b)
512
x 64
(black/white)
2 )
Change
setup
c)
512
x 64
(grey)
3 )
Recall
setup
from
diskette
d)
512
x
128
(black/white)
4 )
Save
setup
to
diskette
e)
640
x
128
(black/white)
5 )
Explain
real-time
commands
f)
640
x
128
(grey)
6 )
Exit
program
CURRENT
MICRONEYE
SETUP
Mode
settings
(toggled)
g)
Pictures/screen(1
or
2)
Picture
size:
640
x
128
(grey)
h)
Status
readouts
(ON/OFF)
Pies/screen:
1
i)
Exposure
(FIXED/AUTO)
Readouts:
DISABLED
Exposure:
FIXED
Exposure
control
j )
Set
exposure
time
Exposure
time:
300
k)
Set
light
level
Light
level:
50%
I)
Set
light
margin
margin:
5%
4.4.1
START
CAMERA
Starting
the
MicronEye
causes
the
screen
to
blank,
and
prepares
the
computer
to
begin
the
display
of
pictures
using
your
computer's
high
resolution
graphics
capabilities.
The
MicronEye
then
begins
sending
what
it
sees
to
your
computer.
The
computer
then
displays
this
picture
onto
the
computer's
screen.
The
size
of
the
picture
displayed
can
be
modified
by
using
the
"CHANGE
SETUP"
option.
When
the
MicronEye
begins
sending
pictures
to
your
comput~r,
the
MicronEye
has
no
way
of
knowing
if
the
picture
is
properly
focused
or
if
the
proper
exposure
time
has
been
selected.
If
you
are
having
difficulty
focusing
or
selecting
the
proper
exposure
setting,
refer
to
the
chapter
2
on
OPERATING TECHNIQUES.
There
are
several
single-key
commands
that
you
can
use
when
the
camera
is
operating.
These
commands
allow
you
to
increase
or
decrease
the
exposure
time,
save
pictures
to
diskette,
recall
pictures
from
diskette,
print
pictures
to
a
printer,
enable
and
disable
the
display
4-5
Page 37
USING
THE
MICRONEYE'WITH
THE
IBM
PC
THE
MEYE
PROGRAM
of
information
about
each
picture
displayed,
select
fixed
or
automatic
exposure
times,
etc.
These
commands
are
called
real-time
commands
and
are
discussed
in
the
"REAL-TIME
COMMANDS,"
section.
While
the
MicronEye
is
operating,
you
can
return
to
the
main
menu
at
any
time
by
typing
"Q".
4.4.2
CHANGE
SETUP
After
selecting
this
option
the
computer
expects
you
one
of
the
parameters
(A
through
L)
displayed
on
the
tight
screen.
After
changing
the
desired
parameters
simply
SPACEBAR
to
exit
the
CHANGE
SETUP
mode.
to
change
half
of
the
press
the
4.4.2.1
PICTURE
SIZE
AND
TYPE
-
Options
"A"
through
"F"
select
the
size
of
the
picture
that
the
MicronEye
sends
to
the
computer.
Each
picture
is
made
up
of
thousands
of
black
and
white
dots
called
pixels.
When we
say
a
picture
is
128
x 64
in
size,
this
means
that
the
picture
is
made
up
of
64
rows
of
dots
and
that
each
row
contains
128
dots
of
pixels.
A
512'x
128
picture
is
made
up
of
65,536
pixels.
Each
pixel
is
either
black
or
white.
The
128
x 64
and
512
x
128
picture
size
selections
are
compressed
in
the
horizontal
direction.
The
512
x 64
and
640
x
128
picture
size
selections
produce
an
image
of
normal
proportions.
The
512
x 64
and
640
x
128
pictures
sizes
allow
for
two
types
of
pictures--black
&
white
or
grey.
Although
the
black
and
white
picture
may
appear
to
have
grey
in
it,
this
is
a
pseudo-grey
caused
by
closely
spaced
black
and
white
pixels.
The
grey
picture
is
created
by
taking
a
second
exposure
of
the
same
picture
with
a
20%
shorter
exposure
time.
The
two
pictures
are
then
combined
in
software
to
produce
a
single
picture
on
the
screen.
On
a
sophisticated
imaging
system
this
method
is
used
to
produce
pictures
with
over
64
levels
of
grey.
4.4.2.2
PICTURES
PER
SCREEN
-
The
MicronEye
can
take
either
one
or
two
pictures
at
a
time.
If
you
elect
to
look
at
two
pictures
per
screen,
the
computer
will
put
the
second
picture
right
below
the
first
picture.
At
first
glance
it
may
appear
that
you
have
just
one
picture
that
is
twice
as
high
when
the
computer
is
showing
one
picture
per
screen.
If
you
look
closely
though,
you
may
see
that
where
the
two
pictures
meet
there
is
a
slight
discontinuity.
For
some
applications
this
may
not
matter.
In
more
exacting
applications,
you
should
restrict
yourself
to
using
only
one
picture
per
screen.
4-6
Page 38
USING.
THE
MICRONEYE
WITH
THE
IBM
PC
THE
MEYE
PROGRAM
4.4.2.3
EXPOSURE
CONTROL
- You
have
the
option
of
using
a
fixed
or
variable
exposure.
time.
Exposure
time
corresponds
to
the
shutter
speed
of
conventional
35mm
cameras.
If
the
picture
from
the
MicronEye
is
too
dark
then
a
longer
exposure
time
can
be
specified.
If
the
picture
is
too
light
then
a
shorter
exposure
time
can
be
specified.
Exposure
time
can
alternately
be
controlled
by
the
use
of
real-time
commands.
The
exposure
time
is
specified
in
milliseconds.
The
speed
at
which
the
camera
operates
is
equal
to
the
exposure
setting
as
long
as
the
exposure
time
is
greater
than
the
time
required
for
the
MicronEye
to
transmit
the
picture
to
the
computer.
A
more
complete
discussion
of
the
interaction
betwen
exposure
time
and
transmission
time
can
be
found
in
the
section
5.0
of
the
manual.
As
an
alternative
to
manual
exposure
time
control,
automatic
exposure
adjustment
can
be
specified
from
this
setup
menu
or
as
a
real-time
command.
Selecting
the
auto-adjust
option
tells
the
computer
to
evaluate
the
picture
as
it
comes
from
the
MicronEye
to
determine
what
percent
of
the
pixels
are
white
and
what
percent
are
black.
When
readouts
are
enabled,
the
percentage
associated
with
LIGHT
LEVEL
is
an
approximation
of
how
white
the
picture
is:
100%
being
all
white,
0%
being
all
black.
When
you
select
the
auto-adjust
feature
you
·are
requested
to
specify
a
light
level
between
0
and
100
and
a
margin
which
specified
the
allowed
discrepancy
from
the
prescribed
light
level.
If
you
specify
a
light
level
of
45%
and
a
margin
of'5%,
then
after
each
picture
is
received
from
the
MicronEye
the
computer
will
determine
if
the
light
level
was
between
40%
and
50%
(45%
plus/minus
5%).
If
the
light
level
was
within
the
set
bounds,
the
exposure
time
is
left
alone.
If
the
light
level
is
out-of-bounds,
then
the
exposure
time
i.s
adjusted
upward
or
downward
to
try
and
bring
the
next
picture
into
the
prescribed
range.
The
margin
setting
is
also
utilized
by
the
alarm
mode
to
set
sensitivity.
The
alarm
mode
is
explained
in
the
section
on
real-time
commands.
4.4.2.4
STATUS
READOUTS-After
displaying
a
picture
from
the
MicronEye,
the
computer
can
optionally
display
the
exposure
time
and
light
level
of
the
picture
just
displayed.
When
status
readouts
are
enabled,
this
information
is
displayed.
Enabling
this
option,
will
slow
down
the
rate
at
which
pictures
are
updated
on
the
screen.
How
much
slower
will
depend
on
the
exposure
time
setting
and
the
type
of
computer
you
have.
In
addition
to
menu,
a
real-time
readout
display.
On
in
your
picture's
being
able
to
control
readouts
from
the
setup
command
is
available
to
enable
and
disable
the
some
computers,
you
may
experience
a
difference
light
level
when
switching
back
and
forth
between
4-7
Page 39
USING
THE
MICRONEYE'WITH
THE
IBM
PC
THE
MEYE
PROGRAM
having
readouts
enabled
and
disabled.
4.4.2.5
LIGHT
MARGIN-This
is
a
convenient
way
of
setting
the
light
margin
without
altering
the
light
level
setting.
It
is
especially
useful
for
changing
the
MicronEye's
sensitivity
when
being
used
in
the
alarm
mode.
4.4.3
DISPLAY REAL-TIME
COMMAND
There
are
several
keystroke
commands
that
can
change
how
the
MicronEye
operates.
After
the
computer
displays
each
picture
on
the
screen,
it
checks
to
see
if
a
key
has
been
pressed
on
the
keyboard.
If
a
key
has
been
pressed,
the
computer
checks
to
see
if
the
key
hit
corresponds
with
its
list
of
valid
real-time
commands.
If
so,
the
command
is
executed.
If
more
than
one
key
has
been
pressed
during
the
scan
only
the
last
key
struck
is
used.
Selecting
the
"DISPLAY REAL-TIME
COMMANDS"
options
shows
you
the
list
of
valid
real-time
commands.
The
screen
should
look
somewhat
like
this:
REAL-TIME
CO~1AND
SUMMARY
<
Decrease
exposure
time
(comma
also
works)
>
Increase
exposure
time
(period
also
works)
A
Toggle
alarm
mode
on/off
C
Clear
screen
F
Fix
exposure
time
to
current
setting
L
Load
picture
from
diskette
P
Print
picture
on
printer
Q
Quit
and
return
to
main
menu
R
Toggle
display
readouts
on/off
S
Save
picture
to
diskette
T
Use
auto-adjust
exposure
(light
level
tracking)
/
Toggle
pictures
per
screen
(1
or
2)
1
2
3
4 5
6
128
x 64
picture
512
x 64
picture
512
x 64
picture
512
x
128
picture
640
x
128
picture
640
x
128
picture
(black
&
white)
(black
&
white)
(grey) (black
&
white)
(black
&
white)
(grey)
4-8
Page 40
USING
THE
MICRONEYE
WITH
THE
IBM
PC
THE
MEYE
PROGRAM
The
effects
of
the
various
real-time
commands
are
explained
in
the
pages
that
follow.
4.4.4
DECREASE EXPOSURE TIME
This
command
is
activated
by
pressing
the
less-than
or
comma
key.
Each
time
this
command
is
issued,
the
computer
will
decrease
the
MicronEye's
exposure
time.
Each
time
the
command
is
given
the
computer
will
decrease
the
exposure
time
in
larger
and
larger
steps.
If
the
steps
get
too
large,
the
computer
may
decide
to
decrease
the
exposure
time
in
smaller
and
smaller
steps.
You may
want
to
enable
readouts
and
experiment
with
the
increase
and
decrease
exposure
commands
to
get
a
better
feel
for
how
the
commands
interact
and
how
the
step
size
is
increased
and
decreased
by
different
combinations
of
the
commands.
4.4.4.1
INCREASE EXPOSURE
TIME'-
This
command
is
activated
by
pressing
the
greater-than,
or
period
key.
Its
operation
is
similar
to
the
"DECREASE EXPOSURE TIME"
command
except
that
the
exposure
time
is
increased
rather
than
decreased.
4.4.4.2 If
the
will
be command computer
TOGGLE
ALARM
MODE-'l'his
command
is
activated
by
the
"A"
key.
alarm
mode
is
off
when
you
give
this
command,
then
alarm
mode
turned
on.
If
the
alarm
mode
is
enabled
then
giving
this
will
disable
the
alarm
mode.
When
you
issue
the
command
the
will
tell
you
whether
you
have
enabled
or
disabled
the
alarm.
The
alarm
mode
allows
the
MicronEye
to
function
as
a
surveillance
device.
The
light
margin
setting
determines
the
sensitivity
of
the
alarm.
The
greater
the
light
margin
setting,
the
less
sensitive
the
MicronEye
will
be
to
change.
The
alarm
is
activated
by
changes
in
light
level.
If
an
object
moves
across
the
camera's
field
of
view,
an
alarm
will
sound
until
a
key
is
struck
on
the
keyboard.
A
user
can
also
customize
the
computer's
response
to
the
alarm
being
tripped.
The
computer
could
automatically
dial
a
phone
number,
activate
recording
equipment,
etc.
4-9
Page 41
USING
THE
MICRONEYE
WITH
THE
IBM
PC
THE
MEYE
PROGRAM
4.4.4.3
CLEAR
SCREEN -
The
computer
clears
the
screen
when
the
"c"
key
is
struck.
This
command
is
rarely
needed
because
the
computer
tries.to
clean
up
after
itself
whenever
the
size
of
the
viewing
area
is.
changed.
4.4.4.4
FIX
EXPOSURE
invoked
by
striking
the
TIME
TO
"F"
key.
CURRENT
SETTING -
This
command
is
The
MicronEye
normally
uses
the
same
exposure
setting
time
after
time,
and
only
modifies
the
exposure
setting
when
told
to
do
so.
This
is
referred
to
as
a
fixed
exposure
setting.
The
MicronEye
can
also
operate
such
that
the
exposure
time
will
change
dynamically
to
maintain
a
specified
light
level.
This
is
referred
to
as
an
auto-adjust
setting.
When
the
camera
is
in
the
auto-adjust
mode
and
you
want
to
return
to
the
fixed
exposure
mode
use
this
command.
The
camera
will
fix
the
exposure
time
to
the
exposure
time
being
used
at
the
time
the
command
is
given.
4.4.4.5
LOAD
PICTURE
FROM
Diskette
- A
picture
that
was
previously
taken
bi
the
MicronEye
and
saved
to
diske~te
can
be
displayed
on
the
computer
s
screen
by
using
this
command.
The
load
command
is
invoked
by
striking
the
ilL"
key.
The
computer
will
then
ask
for
the
name
given
the
picture
when
it
was
stored
to
diskette.
If
the
computer
Gan
find
the
file
on
diskette,
the
picture
will
be
displayed
until
a
key
is
typed
on
the
keyboard.
Otherwise,
an
error
message
will
be
displayed
and
the
computer
will
resume
displaying
pictures
from
the
MicronEye.
If
you
simply
press
the
<RETURN>
key
when
prompted
for
a
file
name,
then
the
computer
will
resume
displaying
pictures.
4.4.4.6
PRINT PICTURE
ON
EPSON -
The
"P"
key
causes
the
current
picture
being
displayed
to
be
printed
on
an
Epson
or
IBM
printer.
This
command
can
also
be
used
after
loading
a
picture
from
diskette,
by
typing
a
"P"
when
prompted
to
"press
<RETURN>
to
continue
•..
"
4-10
Page 42
USING
THE
MICRONEYE
WITH
THE
IBM
PC
THE
MEYE
PROGRAM
4.4.4.7
QUIT
AND
RETURN
TO
MAIN
MENU
- You
can
return
to
the
main
menu
by
typing
"Q". When
you
no
longer
wish
to
operate
the
MicronEye,
select
this
option.
4.4.4.8
TOGGLE
DISPLAY
READOUTS
ON/OFF -
Display
readouts
are
enabled
or
d-isabled
by
typing
"R".
If
readouts
are
enabled
then
after
each
picture
is
received
from
the
MicronEye,
the
computer
will
display
the
exposure
time
and
light
level
for
that
picture.
When
readouts
are
enabled,
the
picture
rate
may
be
slowed
down
dramatically,
so
it
is
usually
advisable
to
have
readouts
disabled
whenever
possible.
4.4.4.9
SAVE
PICTURE
TO
Diskette
-
Typing
an
"s"
when
the
camera
is
operating
tells
the
computer
to
save
to
current
picture
to
diskette.
The
computer
will
prompt
for
a
filename
and
attempt
to
save
the
picture
to
diskette.
If
an
error
is
encountered
attempting
to
save
the
picture
(usually
due
to
insufficient
diskette
space)
then
a
message
is
displayed.
Otherwise
the
picture
is
stored
to
diskette.
4.4.4.10
TRACK
EXPOSURE
TIME
USING
AUTO
LIGHT
LEVEL
ADJUST
-
The
auto-adjust
mode
is
selected
by
typing
a
'T'.
When
auto-adjust
is
selected
ap
a
real-time
option,
the
computer
will
use
the
light
level
of
the
current
picture
as
the
ideal
light
level.
The
light
margin
is
the
acceptable
level
of
deviation
from
the
ideal
light
level
and
should
have
been
set
previously
from
the
MICRONEYE
SETUP
screen.
After
each
picture
is
received
from
the
MicronEye,
the
computer
determines
if
the
light
level
was
within
the
established
bounds.
If
not,
the
computer
will
increase
or
decrease
the
exposure
time
of
the
next
picture
to
try
and
get
back
to
an
acceptable
light
level.
The
auto-adjust
mode
is
intended
for
appiications
where
the
MicronEye
is
focused
on
a
fixed
or
semi-fixed
scene.
4.4.5
SAVE
CURRENT
CAMERA
SETUP
Selecting
this
option
from
the
main
menu
tells
the
computer
to
save
the
currently
defined
setup
as
the
setup
the
computer
should
initially
use
when
starting
the
MicronEye
program.
The
setup
variables
that
are
stored
include
PICTURE
SIZE,
PICTURES
PER
SCREEN,
EXPOSURE
METHOD,
EXPOSURE
TIME,
READOUT
SETTING, LIGHT LEVEL,
and
LIGHT
MARGIN.
The
setup
is
saved
to
a
file
called
MEYEPARMS.
4-11
Page 43
USING
THE
MICRONEYE
WITH
THE
IBM
PC
THE
MEYE
PROGRAM
4.4.6
RECALL
CAMERA
SETUP
FROM
Diskette
This
option
restores
the
camera
setup
to
the
settings
in
the
MEYEPARMS
file.
This
is
handy
when
you
have
been
experimenting
with
a
non-standard
setup
and
want
to
go
back
to
using
your
normal
setup.
4-12
Page 44
CHAPTER
5
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
5.1
INSTALLATION
AND
SET
UP
Remove
your
MicronEye
from
its
shipping
carton.
If
you
have
purchased
a
Bullet,
it
will
already
be
fully
assembled.
All
that
is
required
of
you
is
to
unfold
the
legs
of
the
tripod
and
stand
the
MicronEye
upright.
If
you
have
purchased
a
Camera,
you
will
have
to
connect
the
Camera
to
the
interface
board
with
the
cord
which
is
provided.
Take
a moment
to
examine
the
lens
provided
with
the
MicronEye.
You
will
notice
that
there
are
two
lens
controls
which
must
be
adjusted
before
the
MicronEye
will
operate
successfully:
f-stop
and
focus
control.
The
f-stop
controls
the
amount
of
light
admitted
through
the
lens
and,
for
normal
use,
the
lowest
setting
(1.6)
is
recommended.
Any
increase
in
the
f-stop
requires
a
compensating
increase
in
the
light
source
or
in
the
exposure
time.
The
recommended
operating
distance
of
the
MicronEye
is
18
inches
or
greater
from
the
object
it
is
viewing.
You may
be
required
to
make
a
slight
adjustment
to
the
f-stop
setting
and/or
the
focus
control
once
you
have
the
MicronEye
actually
viewing
an
object.
Switch
off
the
power
to
your
computer,
and
you
are
ready
to
install
the
interface
card
into
the
cartridge
slot
located
at
the
right
rear
of
the
computer.
Insert
the
interface
card
into
the
slot
using
the
orientation
indicated
on
the
enclosure.
Insert
the
MicronEye
diskette
into
the
disk
drive
and
switch
on
the
power
to
the
computer.
5-1
Page 45
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
5.2
FILES
INCLUDED
ON
YOUR
MICRONEYE
DISKETTE
To
assist
you
in
MicronEye,
both
source
your
diskette.
A
catalog
your
diskette
follows:
developing
personal
applications
for
the
listings
and
programs
have
been
included
in
and
brief
description
of
the
files
found
on
2
MICRONEYE
12
MEYE6510.EX
50
MEYE;.
SRC. 1
39
MEYE.SRC.2
22 MEYE.SRC.3 10
EXAMPLE
8 MEYE.BIN
28 MEYE.OBJ
2
MEYE.MAIN
3
MEYE.MACROS
6 MEYE.RLE
9
MEYE.ENHANCE 4 MEYE.VARIABLES 13
MEYE.ROUTINES
(Sample
BASIC
program
using
MEYE
(Assembly
language
,routines
di
(Source
listing
part
1
for
MEYE6
(Source
listing
part
2
for
MEyE6
(Source
listing
part
3
for
MEYE6
(Sample
BASIC
program
using
MEYE.BIN)
(Routines
described
in
Appendix
H)
(Object
code
for
MEYE.BIN)
(Subfile
of
MEYE.BIN)
(Subfile
of
MEYE.BIN)
(Subfile
of
MEYE.BIN)
(Subfile
of
MEYE.BIN)
(Subfile
of
MEYE.BIN)
(Subfile
of
MEYE.BIN)
5.3
THE
MICRONEYE
PROGRAM
The
MICRONEYE
program
lets
a
deal
of
the
MicronEye's
power.
to
show
pictures
transferred
from
screen,
save
pictures
to
disk
for
Epson
or
Gemini
graphics
printer.
non-technical
user
harness
a
great
The
program
incorporates
the
ability
the
MicronEye
onto
your
computer's
future
use,
and
print
pictures
to
an
To
execute
the
MICRONEYE
program,
type
LOAD
"MICRONEYE"
,8
(followed
by
the
RETURN
key)
and
then type
RUN.
The
program
will
load
the
assembly
language
routines
(MEYE6510)
for
the
MicronEye
from
disk.
Once
the
routines
have
been
loaded,
the
Commodore
64's
screen
immediately
turn
white
and
the
MicronEye
will
begin
sending
pictures
to
the
computer.
You
will
see
on
the
top
two
lines
of
the
display
the
current
operating
mode
of
the
MicronEye.
When
the
program
begins
execution
the
mode
display
should
read
"B&W
1-PICTURE
NORMAL".
The
second
line
of
the
display
should
read
"SOAK
TIME:
350".
Between
pictures
from
the
Micr~nEye,
the
computer
checks
for
commands
entered
by
the
user
on
the
keyboard.
Because
the
MicronEye
must
operate
with
the
interrupts
turned
off
on
the
Commodore
64,
the
computer
might
not
notice
a
key
being
pressed
unless
you
keep
the
key
pressed
down a
bit
fonger
than
you
may
be
accustomed.
As
you
work
with
the
MicronEye
you
will
acquire
a
feel
for
how
long
to
keep
the
5-2
Page 46
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
THE
MICRONEYE
PROGRAM
key
pressed
dow~.
The
best
way
to
tell
that
the
computer
has
noticed
your
command
1S
to
watch
the
mode
display
at
the
top
of
the
screen.
The
mode
display
will
be
updated
as
soon
as
the
command
is
detected.
The
only
problem
associated
with
keeping
the
key
pressed
down
is
that
when
issuing
the
SAVE
or
LOAD
commands
you
may
need
to
use
the
DEL
key
to
get
rid
of
any
extra
characters
that
are
displayed
on
the
screen
after
FILENAME?
before
entering
the
LOAD
or
SAVE
file
name.
The
MICRONEYE
program
explained
in
detail
below.
the
explanation.
5.3.1
BLACK
AND
WHITE
MODE
allows
several
commands.
They
are
A
summarization
of
the
commands
follows
The
BLACK
AND
WHITE
option
is
selected
by
typing
the
"B"
key.
The
MicronEye
sees
only
in
black
and
white.
However,
the
computer
can
tell
the
MicronEye
to
take
several
pictures
of
the
same
scene
at
varied
exposure
times.
The
computer
can
then
combine
these
several
images
together
into
a
single
picture
with
grey
levels.
Normally,
a
black
and
white
image
is
adequate
for
processing
an
image.
In
this
mode,
the
computer
receives
pictures
from
the
MicronEye
and
displays
each
picture
on
the
screen
after
it
has
been
received.
5.3.2
GREY
MODE
The
GREY
mode
is
selected
by
typing
the
"G"
key.
The
GREY
mode
is
the
multiply-exposed
grey
level
picture-taking
technique
alluded
to
above.
In
this
mode,
the
computer
instructs
the
MicronEye
to
take
three
pictures
at
varied
exposure
times.
After
the
computer
has
received
these
three
pictures,
it
"adds"
them
together
and
displays
the
result
on
the
screen.
Grey
mode
operates
much
slower
than
black
and
white
mode
because
the
computer
has
to
get
three
pictures
from
the
MicronEye
for
every
picture
displayed.
5.3.3
PICTURES
PER
SCREEN
The
MicronEye
can
take
either
one
or
two
pictures
at
a
~ime.
This
is
because
the
IS32
OpticRAM
has
2
separate
arrays
which
are
both
light-sensitive.
By
pressing
the
"1"
key,
the
1-PICTURE
mode
is
selected.
By
pressing
the
"2"
key,
the
2-PICTURE mode
is
selected.
If
you
elect
to
look
at
two
pictures
per
screen,
the
will
put
the
second
picture
right
below
the
first
picture.
glance
it
may
appear
that
you
have
just
one
picture
that
is
5-3
computer
At
first
twice
as
Page 47
USING
THE
MICRONEYE'WITH
THE
COMMODORE
64
THE
MICRONEYE
PROGRAM
high
when
the
computer
is
showing
one
picture
per
screen.
If
you
look
closely
though,
you
may
see
that
where
the
two
pictures
meet
there
is
a
slight
discontinuity.
For
some
applications
this
may
not
matter.
In
more
exacting
applications,
you
should
restrict
yourself
to
using
only
one
picture
per
screen.
You
should
be
aware
that
when
using
the
2-PICTURE
mode,
the
lower
picture
may
have
a
tendency
to
be
slightly
darker
than
the
upper
picture.
This
is
because
the
upper
and
lower
array
in
the
OpticRAM
have
a
slightly
different
sensitivity
to
light.
Since
the
OpticRAM
was
designed
with
the
intent
that
only
one
of
the
arrays
was
to
be
used
at
a
time,
you
might
consider
the
second
picture
a
freebie.
5.3.4
ENHANCED
MODE
The
ENHANCED
mode
is
selected
by
typing
the
"E"
key.
The
MicronEye
can
send
images
with
either
128
x 64
resolution
or
256
x
128
resolution.
When
using
the
256
x
128
image
size,
resolution
is
increased
fourfold.
The
increased
resolution
costs
in
two
ways.
First,
it
takes
four
times
longer
to
send
the
256
x
128
image
than
the
128
x 64
image.
Second,
the
256
x
128
image
must
be
massaged
through
an
enhancement
algorithm
to
make
a
crisp
image.
This
all
takes
time.
To
the
extent
that
time
is
not
a
factor,
the
enhanced
mode
will
generate
much
better
pictures
than
the
normql
mode.
5.3.5
NORMAL
MODE
NORMAL
mode
is
selected
by
typing
the
"N"
key
and
is
the
opposite
of
enhanced
mode.
Selecting
NORMAL
mode
instructs
the
MicronEye
to
transmit
128
x 64
sized
pictures.
5.3.6
DECREASE
EXPOSURE
TIME
BY
10
MILLISECONDS
,
This
command
is
activated
by
pressing
the
less-than
key.
Each
time
the
less-than
key
is
pressed,
the
computer
will
decrease
the
MicronEye's
exposure
time
by
10
milliseconds.
Keeping
the
less-than
key
pressed
down
continually
will
causes
the
exposure
time
to
be
decreased
byosome
multiple
of
10
milliseconds.
5-4
Page 48
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
THE
MICRONEYE
PROGRAM
5.3.7
DECREASE
EXPOSURE
TIME
BY
1 MILLISECOND
This
command
is
activated
by
pressing
the
comma
key
(unshifted
less-than
key).
Each
time
the
comma
key
is
pressed,
the
computer
will
decrease
the
MicronEye's
exposure
time
by
1
millisecond.
Keeping
the
comma
key
pressed
down
continually
will
causes
the
exposure
time
to
be
decreased
by
several
milliseconds.
5.3.8
INCREASE
EXPOSURE
TIME
BY
10
MILLISECONDS
This
command
is
activated
by
pressing
the
greater-than
key.
Each
time
the
greater-than
key
is
pressed,
the
computer
will
increase
the
MicronEye's
exposure
time
by
10
milliseconds.
Keeping
the
greater-than
key
pressed
down
continually
will
causes
the
exposure
time
to
be
increased
by
some
multiple
of
10
milliseconds.
5.3.9
INCREASE
EXPOSURE
TIME
BY
1 MILLISECOND
This
command
is
activated
by
pressing
the
period
key
(unshifted
greater-than
key).
Each
time
the
period
key
is
pressed,
the
computer
will
increase
the
MicronEye's
exposure
time
by
1
millisecond.
Keeping
the
period
key
pressed
down
continually
will
causes
the
exposure
time
to
be
increased
by
several
milliseconds.
5.3.10
LOAD
PICTURE
FROM
DISK
A
picture
that
was
previously
taken
by
the
MicronEye
and
saved
to
disk
can
be
displayed
on
the
computer's
screen
by
using
this
command.
The
load
command
is
invoked
by
pressing
the
"L"
key.
The
computer
will
then
ask
for
the
name
given
the
picture
when
it
was
stored
to
disk.
If
the
computer
can
find
the
file
on
disk,
the
picture
will
be
displayed
until
a
key
is
typed
on
the
keyboard.
Otherwise,
an
error
message
will
be
displayed
and
the
computer
will
.
resume
displaying
pictures
from
the
MicronEye.
'If
you
simply
press
the
RETURN
key
when
prompted
for
a
file
name,
then
the
computer
will
resume
displaying
pictures.
5-5
Page 49
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
THE
MICRONEYE
PROGRAM
5.3.11
PRINT PICTURE
ON
EPSON
The
lip"
key
causes
the
current
picture
being
displayed
to
be
printed
on
an
Epson
printer.
Pictures
previously
saved
to
disk
can
also
be
printed
after
using
the
LOAD
command.
Your
printer
interface
may
require
special
setup
for
graphics
printing.
On
line
25
POKE
location
51251
with
the
necessary
secondary
address
for
graphics
printing.
If
your
printout
has
blank
lines
that
break
up
the
picture
also
add
the
statement
POKE
51351,0.
For
example,'
the
CARDCO
interface
requires
the
following
setup:
25
POKE
51251,5:
POKE
51351,0
5.3.12
SAVE
PICTURE
TO
DISK
Typing
an
"s"
when
the
MicronEye
is
operating
tells
the
computer
to
save
to
current
picture
to
disk.
The
computer
will
prompt
for
a
filename
and
attempt
to
save
the
picture
to
disk.
If'
art
error
is
encountered
attempting
to
save
the
picture
(usually
due
to
insufficient
disk
space)
then
a
message
is
displayed.
Otherwise
the
picture
is
stored
to
disk.
5.3.13
QUIT
You
can
exit
the
MICRONEYE
program
by
pressing
the
"Q"
key.
If
you
no
longer
wish
to
operate
the
MicronEye,
select
this
option.
5.3.14
COMMAND
SUMMARY
The
following
list
summarizes
the
commands
which
can
be
used
to
control
the
MicronEye:
E
Enhanced
picture
(256
x
128
image)
N
Normal
picture
(128
x 64
image)
B
Black
and
white
imaging
(bi-level)
G
Grey
level
imaging
(4-level)
L
Load
picture
from
disk
S
Save
picture
to
disk
P
Print
picture
on
printer
1
Use
one
array
of
the
OpticRAM
2
Use
both
arrays
of
the
OpticRAM
<
Decrease
exposure
time
by
10
milliseconds
5-6
Page 50
,
>
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
THE
MICRONEYE
PROGRAM
Decrease
exposure
time
by
1
millisecond
Increase
exposure
time
by
10
milliseconds
Increase
exposure
time
by
1
millisecond
5.4
THE
ASSEMBLY
LANGUAGE
CONNECTION
(MEYE6510.EX
The
MICRONEYE
program
discussed
above
i p a
simple
four
line
BASIC
program
that
calls
the
assembly
language
program
MEYE6510.EX.
MEYE6510'loads
into
address
$COOO
(12*4096)
of
memory.
Before
the
routine
is
called
the
"limit
of
memory
pointer"
at
location
55-56
should
be
set
to
$2000.
The
MEYE6510
program
uses
all
memory
above
this
for
screen
storage
and
the
MEYE6510
program
itself.
Set
the
limit
with
the
BASIC
instruction:
POKE
56,2*16
:
POKE
55,0
:
CLR
is
used
for
the
hi-res
screen.
This
area
To
help
the
user
here
is
allocated
by
the
MEYE6510
hexadecimal:
$2000-$3FFF
a
general
list
program.
All
of
the
values
way memory
is
are
expressed
in
$4000-$7FFF
$8000-$BFFF
$COOO-$CB03 $EOOO-$FFFF
This
area
is
the
buffer
used
to
receive
the
image
from
the
MicronEye.
This
area
is
used
~y
the
ENHANCED
mode.
The
final
image
to
be
displayed
is
stored
here. This
is
where
MEYE6510
resides.
This
area
is
used
to
store
the
incoming
image
from
the
MicronEye
when
in
ENHANCED
mode.
The
MEYE6510
program
was
written
with
the
intention
that
other
users
could
write
their
own
programs
in
BASIC
and
manipulate
the
MicronEye
via
calls
to
the
various
subroutines
provided.
The
program
was
also
designed
to
be
extensible
so
that
additional
functions
can
be
added
as
desired.
A
description
of
each
of
the
primary
subroutines
available
in
MEYE6510
follows."
The
source
listing
is
well-documented
and
should
be
referred
to
if
you
wish
to
make
use
of
the
more
primitive
subroutines
which
are
not
d~scribed
below.
The
number
in
parenthesis
after
the
routine
name
is
the
decimal
number
that
would
be
used
in
the
SYS
command
to
call
the
routine.
ONEARRAY
(49869):
Sets
necessary
parameters
to
operate
5-7
Page 51
USING
THE
MICRONEYE'WITH
THE
COMMODORE
64
THE
ASSEMBLY
LANGUAGE
CONNECTION
(MEYE6510.EX)
MicronEye
in
1-PICTURE
mode.
TWOARRAY
(49895):
Sets
necessary
parameters
to
operate
MicronEye
in
2-PICTULE
mode.
ENHANCED
(49947):
Sets
necessary
parameters
to
operate
MicronEye
in
ENHANCED
mode.
NORMAL
(49918):
Sets
necessary
parameters
to
operate
MicronEye
in
NORMAL
mode.
BANDW
(49583):
Sets
necessary
parameters
to
operate
MicronEye
in
BLACK
AND
WHITE
mode.
CSHADE
(49477):
Sets
necessary
parameters
to
operate
MicronEye
in
GREY
mode.
CRAISE
(49511):
Decrease
exposure
time
by
10
milliseconds.
The
exposure
time
can
be
set
directly
by
POKEing
EXPOSURE
TIME
/
256
into
location
252
and
POKEing
EXPOSURE
TIME
mod
256
into
location
251.
CRAS1
(49502):
Decrease
exposure
time
by
1
millisecond.
CLOWER
(49551):
Increase
exposure
time
by
10
milliseconds.
,
CLOW1
(49542):
Increase
exposure
time
by
1
millisecond.
DSAVE
(51014):
Saves
the
current
picture
at
location
$2000-$4002
onto
the
disk
drive.
The
routine
exits
hi-res
mode,
moves
the
picture
to
$8000,
asks
the
user
for
a
filename,
and
then
attempts
to
save
the
picture
to
disk.
DLOAD
(51086):
The
user
is
asked
for
a
filename
and
the
program
then
attempts
to
load
the
file.
The
error
channel
is
not
checked.
The
parameter
set
up
at
the
time
the
picture
was
saved
becomes
the
new
parameter
setup
for
the
MicronEye.
This
routine
assumes
the
hi-res
screen
is
located
at
$2000.
SDUMP
(51237):
Dumps
the
hi-res
picture
to
an
Epson
or
Epson-workalike
graphics
printer.
UPDATE
(50245):
Updates
the
mode
display
(top
2
lines
of
hi-res
screen)
to
reflect
the
current
parameter
settings
and
exposure
time.
The
exposure
time
should
be
POKE'd
in
locations
253-254
prior
to
calling
this
routine.
ENMODE
(49671):
When
in
ENHANCE
mode,
use
this
routine
to
5-8
Page 52
USING
THE
MICRONEYE
WITH
THE
COMMODORE
64
THE
ASSEMBLY
LANGUAGE
CONNECTION
(MEYE6510.EX)
get
a
picture
from
the
MicronEye
and
display
it
on
the
screen.
GETIT
(49594):
When
in
NORMAL
mode,
use
this
routine
to
get
a
BLACK
AND
WHITE
picture.
SHDBIT
(49608):
When
in
NORMAL
mode,
use
this
routine
to
get
a
GREY
picture.
TEXTMD
(50931):
Exits
hi-res
mode.
Use
when
exiting
from
program
so
that
the
text
screen
shows
like
it
should
in
BASIC.
5-9
Page 53
Page 54
CHAPTER
6
USING
THE
RS-232
MICRONEYE
CAMERA
6.1
HARDWARE
REQUIREMENTS
There
are
four
lines
running
between
the
RS-232
MicronEye
camera
and
the.
computer
transmit,
receive,
ground
and
5V.
The
RS-232
MicronEye
provides
a
standard
DB-25P
connector
for
interfacing.
The
pinout
for
the
connector
is
as
follows:
Pin
3
Pin
2
Pin
7
Pin
11
Transmit
data
(from
MicronEye)
Receive
data
(from
computer)
Signal
ground
5V
(from
computer)
must
drive
50ma
load
There
are
four
lines
running
between
the
camera
and
the
computer--
transmit,
receive,
ground,
and
5
volts.
Standard
RS-232
pinouts
do
not
provide
power
to
the
RS-232
MicronEye
camera.
The
user
must
supply
a
5V
DC, 50ma
power
souce
on
pin
11
of
the
DB-25P
connector.
This
can
be
done
by
tapping
the
5V
supply
on
the
computer
or
by
using
a
separate
voltage
source.
In
either
case,
pin
7
is
used
as
the
ground
line.
Be
certain
that
the
ppwer
source
is
only
5V.
Voltages
in
excess
of
6V
can
permanently
damage
the
MicronEye.
With
power
supplied
to
the
cable
and
the
cable
attached
to
the
camera
and
computer,
the
MicronEye
camera
is
ready
to
operate.
The
interface
between
the
MicronEye
and
the
computer
is
an
RS-232
serial
link.
The
connection
is
via
a
6-line
telephone
cable.
The
lines
are
used
for
Vee,
ground,
receive
and
transmit.
The
unused
lines
are
not
connected.
The
operating
speed
is
controlled
by
the
baud
rate
jumper
setting
on
the
MicronEye.
When
using
real-time
image
processing
the
programmer
must
make
certain
that
the
time
required
to
perform
special
tasks
between
bytes
does
not
exceed
the
time
available.
For
example,
a
9600
baud
transmission
rate
means
that
960
bytes
per
second
will
be
transmitted.
6-1
Page 55
USING
THE
RS-232
MICRONEYE
CAMERA
HARDWARE
REQUIREMENTS
The
user
can
therefore
expect
to
receive
a new
byte
from
the
MicronEye
every
1041
microseconds.
Some
computer
configurations
may
require.
that
the
baud
rate
be
slowed
to
guarantee
receipt
of
data.
Many
single-user
systems
should
be
able
to
increase
the
baud
rate
to
19,200
without
problem.
The
standard
RS-232
MicronEye
is
shipped
with
the
following
interface
configuration:
One
start
bit
Eight
data
bits
One
stop
bit
9600
baud
The
must
bits
6.2
This
configuration
applies
to
both
transmit
and
receive
lines.
user
may
modify
only
the
baud
rate
selection.
The
host
computer
be
set
to
conform
with
the
1
start
bit,
1
stop
bit,
eight
data
(with
no
parity)
protocol
expected
by
the
MicronEye.
SOFTWA~E
Appendix
E
contains
the
complete
assembly
language
driver
used
for
the
IBM
PC
version
of
the
MicronEye
..
It
is
annotated
throughout
and
provides
a
reasonable
baseline
for
developing
sophisticated
drivers
for
the
MicronEye
for
microcomputer
and
minicomputer
systems.
Please
note
that
the
IBM
is
a
version
B
interface
with
respect
to
bit
ordering
while
the
RS-232
is
a
version
A
interface
..
Keep
this
in
mind
when
performing
shift
and
rotate
instructions.
It
is
probable
that
a
great
deal
of
the
code
included
in
Appendix
E
will
not
be
required
for
specific
applications.
The
sofware
does
demonstrate
communication
techniques
between
the
computer
and
MicronEye,
enhancement
techniques
for
the
256
x
128
image,
2-bit
grey
scale,
and
a
printer
dump
routine
for
the
Epson
dot
matrix
graphics
printer.
When
writing
the
driver
to
receive
an
image,
it
is
a
good
idea
to
use
a
timeout
routine
to
determine
the
end-of-frame
rather
than
to
expect
a
specified
number
of
bytes.
This
prevents
the
computer
from
hanging
if
a
transmission
error
occurs.
It
is
not
necessary
to
use
exclusively
assembly
language
when
working
with
the
MicronEye.
The
use
of
higher
level
languages
is
more
than
appropriate
if
the
code
executes
with
adequate
speed.
The
only
time-critical
code
is
the
loop
that
receives
an
image
from
the
MicronEye.
By
using
the
annotated
listing
it
should
be
fairly
easy
to
translate
the
various
routines
into
higher
level
languages.
6-2
Page 56
CHAPTER
7
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
7.1
MICRONEYE
VERSIONS
This
section
explains
how
to
talk
to
the
MicronEye
and
how
to
get
information
back
from
the
MicronEye.
We
strongly
recommend
that
users
who
are
interested
in
developing
their
own
assembly
language
drivers
for
the
MicronEye
study
this
section
along
with
the
assembly
language
routines
included
on
the
MicronEye
diskette.
We
feel
that
the
assembly
language
routines
we
have
prepared
are
fairly
complete
and
would
advise
the
user
to
first
determine
that
they
would
not
be
adequate
for
their
needs
before
developing
their
own
assembly
language
programs
from
scratch.
As
you
are
aware,
there
are
four
different
versions
of
the
MicronEye,
specifically
designed
to
interface
with
a
particular
computer
--
the
Apple
II,
IBM-PC, Commodore
64,
TRS-80
Color
Computer.
The
RS-232
version
is
available
for
persons
who
do
not
have
access
to
one
of
the
computers
mentioned
above.
Insofar
as
hardware
configuration,
the
Apple
II
and
RS-232
are
similar
and
can
be
categorized
together
for
purposes
of
this
section.
They
will
be
referred
to
as
"Version
A"
systems.
The
IBM-PC, Commodore 64
and
TRS-80,
likewise,
are
similar
and
will
be
referred
to
in
this
section
as
"Version
B"
systems.
The
difference
between
the
the
Version
A
and
Version
B
systems
is
in
the
arrangement
of
the
data
bits.
In
Version
A,
the
least
significant
bit
represents
the
leftmost
image
pixel
in
the
byte.
In
version
B,
the
most
significant
bit
represents
the
leftmost
image
pixel
in
the
byte.
This
affects
both
commands
being
transmitted
to
the
MicronEye
and
data
being
received
from
the
'MicronEye.
The
reason
for
the
difference
lies
in
the
way
the
various
computers
display
graphic
information.
7-1
Page 57
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
THE
SERIAL
CONNECTION
7.2
THE
SERIAL
CONNECTION
NOTE:
RS-232
owners
should
disregard
this
section.
The
"RS-232
MicronEye
does
not
use
the
6850
ACIA.
The
RS-232
MicronEye
connects
directly
to
an
RS-232
port.
Configuring
the
port
properly
depends
on
your
computer
and
is
discussed
on
the
chapter
discussing
the
RS-232
MicronEye.
The
RS-232
MicronEye
user
should
disregard
the
discussion
on
reading
and
writing
the
ACIA
status
register
as
this
is
taken
care
of
by
the
computer's
RS-232
circuitry
and
firmware.
The
RS-232
MicronEye
user
need
only
worry
about
sending
commands
to
the
MicronEye
as
discussed
in
the
following
section
and
receiving
images
from
the
MicronEye.
The
interface
between
the
MicronEye
and
the
computer
is
a
serial
link
utilizing
a
Motorola
6850
ACIA.
The
connection
is
via
a
6-line
telephone
cable.
The
lines
are
used
for
Vee,
ground,
receive,
transmit,
and
external
clock.
The
6th
line
is
not
connected.
The
operating
speed
is
controlled
by
the
baud
rate
jumper
setting
on
the
MicronEye
circuit
board.
When
using
real-time
image
processing,
the
programmer
must
make
certain
that
the
time
required
to
perform
special
tasks
between
bytes
does
not
exceed
the
time
available.
The
ACIA
is
composed
of
a
data
register
and
a
status
register.
Writing
to
the
status
register
allows
the
user
to
configure
items
such
as
parity,
stop
bits,
start
bits,
clocking,
etc.
Before
accessing
the
MicronEye,
the
ACIA
has
to
be
initialized
to
the
proper
configuration,
as
follows:
VERSION A Write
to-status
register:
hex
$03
followed
by
hex
$14
VERSION B
Write
to-status
register:
hex
$CO
followed
by
hex
$28
The
first
byte
performs
a
master
reset
on
the
ACrA,
while
the
second
byte
specifies
that
the
transmission
protocol
is
1
start
bit,
followed
by
8
data
bits,
followed
by
1
stop
bit;
and
a
x1
clock
mode
is"
to
be
used.
(x1
clock
mode
requires
that
an
external
clock
accompany
the
data
to
and
from
the
computer
which
is
furnished
by
the
standard
MicronEye
interface
card.
Reading
the
status
register
allows
the
user
to
determine
when
new
data
has
been
received
and
when
the
ACIA
is
ready
to
send
data.
The
status
bits,
when
set,
mean:
VERSION A
Bit
0
VERSION B Bit
7
STATUS
BIT
DESCRIPTION
(REA
Data
has-been
received
from
MicronEye.
In
normal
use,
this
bit
is
only
checked
7-2
Page 58
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
THE
SERIAL
CONNECTION
when
seeing
if
data
is
available
from
the
MicronEye.
Bit
1
Bit
4
Bit
5
Bit
6
Bit
3
Bit
2
A command may
be
sent
to
the
MicronEye.
Received
data
improperly
framed.
Usually
only
used
in
a
debug
mode.
Data
received
before
previous
byte
read.
Usually
only
used
in
a
debug
mode.
Once
the
status
register
indicates
that
a command
can
be
sent
to
the
MicronEye,
write
the
command
to
the
data
register.
Conversely,
when
receiving
an
image
from
the
MicronEye,
read
the
data
register
when
the
status
register
indicates
that
data
is
available.
When
receiving
an
image
from
the
MicronEye,
it
is
a
good
idea
to
incorporate
a
timeout
mechanism
in
case
the
MicronEye
stops
sending
bytes
before
the
program
expects.
Otherwise
the
program
can
hang
if
the
software
misses
even
a
single
byte.
7.3
COMMAND
DEFINITIONS
The
MicronEye
has
several
operating
modes.
organized
as
follows:
The
command
byte
is
VERSION
A
VERSION
B
Bit
7
Bit
0
Bit
6
Bit
1
Bit
5
Bit
2
Bit
4
Bit
3
Bit
3
Bit
4
Bit
2
Bit
5
Bit
1
Bit
6
Bit
0
Bit
7
COMMAND Always
1
Always
1
o =
Even
rows
and
columns
only
(ALTBIT)
1
=
All
pixels
in
array
(NOALTBIT)
o =
Double
send
each
pixel
(WIDEPIX)
1
=
Send
normally
(NARROWPIX)
o =
7-bit
data
bytes
for
Apple
(7BIT)
1 = 8
data
bits
per
byte
(8BIT)
o =
transmit
1
array
(1ARRAY)
1
=
transmit
upper
and
lower
array
(2ARRAY)
o =
refresh
instead
of
soak
(REFRESH)
1
=
soak
instead
of
refresh
(SOAK)
o =
Send
the
requested
image
(SEND)
1 =
Don't
send
--
soak
or
refresh
(NOSEND)
7-3
Page 59
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
COMMAND
DEFINITIONS
7.3.1
ALTBIT And NOALTBIT
MODES
The
MicronEye
will
transmit
only
the
pixels
from
the
even-numbered
rows
and
columns
in
the
array.
Because
of
the
placement
of
the
pixels
in
the
image
sensor,
this
mode
will
usually
produce
an
image
of
clearer
resolution
than
the
NOALTBIT mode
unless
the
image
undergoes
the
enhancements
discussed
elsewhere
in
this
manual.
Software
is
provided
on
your
disk
that
performs
this
enhancement.
With
NARROWPIX
and
ALTBIT
the
image
from
the
MicronEye
is
128
x
64.
With
WIDEPIX
and
ALTBIT
the
image
sent
to
256
x
64.
NARROWPIX
and
NOALTBIT
causes
a
256
x
128
image
to
be
transmitted.
WIDEPIX
and
NOALTBIT
causes
a
512
x
128
image
to
be
sent.
7.3.2
WIDEPIX
AND
NARROWPIX
MODES
The
MicronEye
will
"double
transmit"
each
pixel
in
the
array
when
WIDEPIX
is
selected.
Since
each
image
sensing
element
in
the
IS32
OpticRAM
is
twice
as
wide
rectangular
in
shape,
"double
transmitting"
maintains
the
proper
width
to
height
ratio
for
displaying
the
image.
There
are
many
applications,
however,
where
maintaining
the
proper
ratio
is
less
important
than
receiving
the
image
as
quickly
and
compactly
as
possible.
In
such
a
situation
NARROWPIX
would
be
the
appropriate
mode
choice.
7.3.3
7BIT
AND
8BIT
MODES
The
Apple
computer
is
somewhat
peculiar
in
its
implementation
of
high
resolution
graphics.
The
most
significant
bit
of
each
byte
on
the
graphics
page
is
reserved
as
the
'color'
bit,
while
the
other
7
bits
are
the
pixels
being
displayed.
In
7BIT
mode,
the
MicronEye
transmits
data
so
that
it
is
compatible
with
the
Apple's
high
resolution
format;
or,
in
other
words,
7
bits
of
image
pixels
per
byte.
The
alternative
to
7BIT
mode
is
8BIT
mode.
8BIT
mode
causes
the
MicronEye
to
transmit
in
normal
bitmap
format
('all
8
bits
in
the
byte
contain
image
data).
8BIT
mode
is
used
by
all
computers
other
than
the
Apple.
For
non-display
use
on
the
Apple
the
8BIT
mode
can
be
useful.
(The
GREYPIC
program
in
the
Apple
software
uses
both
the
8BIT
mode
and
7BIT
mode
as
it
creates
grey-scale
images
for
the
Epson).
7-4
Page 60
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
COMMAND
DEFINITIONS
7.3.4
1ARRAY
AND
2ARRAY
MODES
The
image
sensor
used
by
the
MicronEye
is
comprised
of
dual
128
x
256
pixel
arrays.
If
you
remove
the
camera
lens
and
look
at
the
image
sensor,
you
can
clearly
see
the
two
arrays.
Using
the
1ARRAY
mode,
only
the
image
focused
on
the
lower
array
is
transmitted
from
the
MicronEye.
On
the
other
hand,
using
the
2ARRAY
mode
causes
both
arrays
to
be
transmitted
from
the
MicronEye.
The
2ARRAY
mode
has
a
split
screen
effect
because
of
the
spacing
between
the
two
arrays
in
the
image
sensor
chip.
In
addition,
the
sensitivity
to
light
of
the
two
arrays
is
usually
noticeably
different.
These
two
factors
tend
to
make
2ARRAY
mode
inappropriate
for
many
applications
..
7.3.5
REFRESH
AND
SOAK
MODES
The
MicronEye
takes
a
picture
much
like
any
other
camera.
The
MicronEye
must
have
the
proper
amount
of
light
to
make
the
image
develop
properly.
Too much
light
will
overexpose
the
image,
while
too
little
light
will
underexpose
the
image.
When
the
REFRESH
mode
is
selected,
the
circuitry
in
the
MicronEye
keeps
the
'OpticRAM
refreshed.
Refreshing
has
two
effects--
the
OpticRAM
is
made
insensitive
to
light
and
all
the
image
sensing
cells
in
the
OpticRAM
are
set
to
either
5
volts
(black)
or
0
volts
(white).
All
cells
which
have
not
leaked
below
2.5
volts
(threshhold)
are
refreshed
to
5
volts.
All
cells
which
have
leaked
below
2.5
volts
are
refreshed
to
0
volts.
REFRESH
does
NOT
set
all
the
cells
in
the
OpticRAM
to
5
volts.
The
only
way
the
cells
in
the
OpticRAM
can
be
reset
to
5
volts
is
to
have
the
MicronEye
SEND
an
image.
When
the
MicronEye
reads
the
OpticRAM's
pixels,
it
automatically
sets
each
cell
to
5
volts
after
reading
its
value.
When
the
refresh
mode
is
enabled,
each
cell
in
the
OpticRAM
is
refreshed
about
once
every
6.5
milliseconds.
When
the
MicronEye
is
not
in
a
refresh
mode,
it
is
in
SOAK
mode.
Whenever
the
MicronEye
is
in
SOAK
mode,
the
OpticRAM
is
sensitive
to
light.
The
intensity
and
duration
of
light
focused
on
each
image
sensing
element
determines
how
fast
and
how
long
the
voltage
in
the
sensing
element
will
continue
to
diminish.
7.3.6
SEND
MODE
When a command
is
sent
to
the
MicronEye
with
SEND
mode
selected,
the
MicronEye
will
begin
transmitting
an
image.
In
nearly
all
cases,
the
command
sent
to
the
MicronEye
will
have
the
SEND
mode
selected.
The
only
time
SEND
mode
is
not
desirable
is
the
situation
where
a
significant
amount
of
processing
must
take
place
between
transmission
7-5
Page 61
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
CO~MAND
DEFINITIONS
of
images.
In
this
situation,
a
user
may
chose
to
receive
an
image
from
the
MicronEye,
send
a command
to
the
MicronEye
and
REFRESH
without
sending,
go
away
and
process
the
image,
send
a command
to
the
MicronEye
to
SOAK
without
sending,
wait
for
the
desired
exposure
time,
and
then
send
a command
to
have
the
MicronEye
transmit
the
image.
When
the
MicronEye
is
sent
a command
with
the
SEND
bit
clear,
the
MicronEye
begins
transmitting
an
image
to
the
computer.
After
the
image
has
been
sent,
the
MicronEye
stops
transmitting
data,
goes
into
a
soak
state,
and
waits
for
a new
command.
When
the
MicronEy~
is
sent
a command
with
the
SEND
bit
set
to
1
then
the
camera
will
not
transmit
data
and
will
refresh
or
soak
depending
on
the
setting
of
the
REFRESH
bit.
Please
note
that
when
the
SEND
bit
is
set
to
1,
the
ALTBIT
bit
should
also
be
set
to
1.
Failure
to
do
so
will
cause
the
first
row
of
the
subsequent
image
to
be
offset
by
1
pixel.
7.4
EFFECTS
OF
COMMAND
MODE
COMBINATIONS
The
following
table
shows
the
effects
of
different
commands
to
the
MicronEye.
The
REFRESH/SOAK
and
SEND/NOSEND
bits
are
not
considered
for
purposes
of
this
table.
7-6
Page 62
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
EFFECTS
OF
COMMAND
MODE
COMBINATIONS
VERSION
A SYSTEMS
COM~1AND
BYTES
PIXELS
(HEX)
(DEC)
ROWS
PER
ROW
PER
ROW
MODE
SELECTION
-----
-----
-------
-------
--------------
CO
192
64
37
256
ALT
WIDEPIX
7BIT1ARRAY
C4
196
128
37
256
ALT
WIDEPIX
7BIT
2ARRAY
C8
200
64
32
256
ALT
WIDEPIX
8BIT1ARRAY
CC
204
128
32
256
ALT
WIDEPIX
8BI'r
2ARRAY
DO
208
64
19
128
ALT
NOWIDEPIX
7BIT1ARRAY
D4
212
128
19
128
ALT
NOWIDEPIX
7BIT
2ARRAY
D8
216
64
16
128
ALT
NOWIDEPIX
8BIT1ARRAY
DC
220
128
16
128
ALT
NOWIDEPIX
8BIT
2
ARRAY
EO
224
128
73
512
NOALT
WIDEPIX
7BIT1ARRAY
E4
228
256
73
512
NOALT
WIDEPIX
7BIT
2ARRAY
E8
232
128
64
512
NOALT
WIDEPIX
8BIT
1
ARRAY
EC
236 256
64
512
NOALT
WIDEPIX
8BIT
2ARRAY
FO
240
128
37
256
NOALT
NOWIDEPIX
7BIT1ARRAY
F4
244
256
37
256
NOALT
NOWIDEPIX
7BIT
2ARRAY
F8
248
128
32
256
NOALT
NOWIDEPIX
8BIT1ARRAY
FC
252
256
32
256
NOALT
NOWIDEPIX
8BIT
2ARRAY
VERSION
B SYSTEMS
COMMAND
BYTES
PIXELS
(HEX)
(DEC)
ROWS
PER
ROW
PER
ROW
MODE
SELECTION
-----
-----
-------
-------
--------------
03
03
64
37
256
ALT
WIDEPIX
7BIT
1
ARRAY
07
07
128
73
512
NOALT
WIDEPIX
7BIT1ARRAY
OB
11
64
19
128
ALT
NOWIDEPIX
7BIT
1
ARRAY
OF
15
128
37
256
NOALT
NOWIDEPIX
7BIT
1
ARRAY
·13
19
64
32
256
ALT
WIDEPIX
8BIT
1
ARRAY
17
23
128
64
512
NOALT
WIDEPIX
8BIT
1
ARRAY
1B
27
64
16
128
ALT
NOWIDEPIX
8EIT1ARRAY
1F
31
128
32
256
NOALT
NOWIDEPIX
8BIT
1
ARRAY
23
35
128
37
256
ALT
WIDEPIX
7BIT2ARRAY
27
39
256
73
512
NOALT
WIDEPIX
7BIT
2ARRAY
2B 43
128
19
128
ALT
NOWIDEPIX
7BIT
2ARRAY
2F
47
256
37
256
NOALT
NdWIDEPIX
7BIT
2ARRAY
33
51
128
32
256
ALT
WIDEPIX
8BIT
2ARRAY
37
55
256
64
512
NOALT
WIDEPIX
8BIT
2ARRAY
3B
59
128
16
128
ALT
NOWIDEPIX
8EIT
2ARRAY
3F
63
256
32
256
NOALT
NOWIDEPIX
8BIT
2
ARRAY
7-7
Page 63
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
RECOMMENDED
MICRONEYE
COMMAND
SEQUENCES
7.5
RECOMMENDED
MICRONEYE
COMMAND
SEQUENCES
When
writing
your
own
software
to
control
the
MicronEye,
it
is
very
important
that
the
proper
sequence
of
commands
is
used
to
control
the
MicronEye.
7.5.1
INITIALIZATION
The
MicronEye
should
be
initialized
once
after
powerup
as
well
as
any
time
a
change
is
made
from
ALTBIT mode
to
NOTALTBIT
mode.
As
an
example,
lets
assume
that
you
want
to
receive
pictures
using
the
modes
ALTBIT,
NARROWPIX,
8BIT
and1ARRAY.
Looking
at
the
table
for
version
A
systems
in
the
previous
section
we
see
that
the
basic
command
byte
will
be
220
(DC
hexadecimal).
Depending
on
how we
control
the
SEND/NOSEND
bit
and
the
REFRESH/SOAK
bit,
the
command
byte
we
send
to
the
MicronEye
will
be
a
value
between
220
and
223.
Sending
the
basic
command
byte
to
the
MicronEye
causes
the
MicronEye
to
SEND
and
REFRESH. Command
byte
plus
1
means
REFRESH
and
NOSEND.
Command
byte
plus
2
means
SEND
and
SOAK.
Command
byte
plus
3
means
SOAK
and
NOSEND.
To
initialize
the
MicronEye
go
through
the
following
sequence.
(Throughout
the
discussion
that
follows
assume
220
to
be
the
basic
command
byte.
(1)
Tell
the
MicronEye
to
SEND
and
REFRESH
(220).
(2)
Receive
bytes
from
the
MicronEye
until
a
timeout
situation
occurs.
(Don't
just
count
the
bytes!)
The
software
should
determine
that
a
timeout
has
occurred
when
3
or
more
character
periods
have
elapsed
without
receiving
a
byte
from
the
MicronEye.
A
character
period
is
defined
as
10
/
baud
rate.
For
example,
the
character
period
at
9600
baud
is
10/9600
of
a
second
or
1.04
milliseconds.
(3)
Once
the
MicronEye
has
stopped
sending
bytes,
tell
the
MicronEye
to
REFRESH
with
NOS
END
(221).
It
is
necessary
to
send
this
byte
as
soon
as
the
MicronEye
has
stopped
sending
because
the
MicronEye
automatically
goes
into
a
SOAK/NOSEND
state
whenever
it
completes
the
transmission
of
a
picture.
The
REFRESH/NOSEND command
defeats
the
default
SOAK/NOSEND
state
.
.
This
completes
the
initialization
sequence
and
does
not
need
to
be
repeated
unless
you
change
from
ALTBIT
to
NOALTBIT
mode.
7-8
Page 64
HOW
YOUR
COMPUTER
TALKS
TO
THE
MICRONEYE
RECOMMENDED
MICRONEYE
CO~~AND
SEQUENCES
7.5.2
GETTING PICTURES
FROM
THE
MICRONEYE
Use
the
following
sequence
of
commands
to
get
a
picture
from
the
MicronEye:
(1)
Tell
the
MicronEye
to
SOAK
with
NOSEND
(223).
(2)
Wait
for
the
desired
exposure
time.
In
normal
room
light
with
the
lens
aperature
set
to
1.6,
the
exposure
time
should
normally
be
somewhere
between
250
and
400
milliseconds.
(3)
Tell
the
MicronEye
to
SEND
and
REFRESH
(220).
(4)
Receive
bytes
from
the
MicronEye
until
a
timeout
occurs.
(5)
Once
the
MicronEye
has
stopped sending
bytes,
tell
the
MicronEye
to
REFRESH
with
NOSEND
(221).
(6)
Do
any
necessary
processing
and/or
enhancing
of
the
image.
Repeat
from
step
1
to
take
another
picture.
7-9
Page 65
Page 66
APPENDIX A
BAUD
RATE
MODIFIFICATION
The
MicronEye's
transmission
speed
(baud
rate)
is
normally
set
at
the
factory
to
153,000
baud
for
the
IBM,
Apple
and
Commodore 64
computers.
A
baud
rate
of
76,800
is
used
for
the
TRS-80
Color
Computer.
The
RS-232
version
is
factory
set
to
9,600
baud.
If
you
wish
to
change
the
baud
rate,
proceed
according
to
the
following
paragraph.
Modifying
the
baud
rate
of
the
MicronEye
requires
some
soldering
so
caution
is
advised.
The
baud
rate
on
the
MicronEye
is
set
by
soldering
two
wire
jumpers
as
specified
below.
An
end
of
one
wire
has
been
soldered
to
pad
9
(located
beside
IC
D1)
and
one
end
of
the
other
wire
has
been
soldered
to
pad
10
(located
between
IC
D5
and
IC
E5).
These
two
connections
are
never
changed
so
they
do
not
have
to
be
removed.
However,
the
other
end
of
both
of
the
wires
should
be
unsoldered
and
resoldered
according
to
the
desired
baud
rate.
Beside
IC
B5
are
8
pads.
Pads
1,
4,
and
8
are
labeled
on
the
board.
To
select
one
of
the
five
standard
baud
rates,
use
the
table
below
to
rejumper
for
the
desired
baud
rate.
TO
SELECT THIS
CONNECT
THE
WIRE
CONNECT
THE
WIRE
BAUD
RATE
FROM
PAD
9
TO
FROM
PAD
10
TO
153,600
PAD
5
PAD
1
76,800
PAD
6
PAD
2
9,600
PAD
7
PAD
3
4,800
PAD
4
,PAD
6
300
PAD
8
PAD
4
A-1
Page 67
BAUD
RATE
MODIFIFICATION
other
baud
rates
are
obtainable
by
soldering
the
wires
to
certain
pins
on
IC
B5.
However,
this
practice
does
not
make
a
reliable
connection
and
is
not
recommended.
If
one
of
the
baud
rates
listed
below
is
required,
use
the
following
table
to
make
the
proper
connections:
TO
SELECT THIS
CONNECT
PAD
9
CONNECT
PAD
10
BAUD
RATE
TO
IC
B5
TO
IC
B5
38,400
PIN
3
PIN
9
19,200
PIN
2
PIN
7
2,400
PIN
12
PIN
3
1
,200
PIN
14
PIN
2
600
PIN
15
PIN
4
A-2
Page 68
APPENDIX B
TRANSMISSION TIME CONSIDERATIONS
The
following
table
outlines
the
milliseconds
required
to
send
an
image
from
the
MicronEye
to
the
computer
as
a
function
of
rows,
bytes
per
row
and
baud
rate.
The
table
may
prove
useful
in
doing
exposure
time
calculations.
The
times
are
calculated
using
the
following
equation:
TIME =
(ROWS
x BYTES-PER-ROW x
10000)
/ BAUD-RATE
TRANSMISSION
RATE
TABLE
The
following
table
is
provided
as
an
aid,
to
the
programmer
by
listing
all
row
and
column
combinations
(excluding
send
and
soak
bits).
BYTES
BAUD
RATE
ROVJS
PER
ROW
300
9600
19200
76800
153600
-------
-----
-----
------
64 16
34133
1067
533
133
67
64 19
40533
1267
633
158
79
64 32
68267
2133
1067
267
133
64
37
78933
2467
1233
308
154
128
16
68266
2133
1067
267
133
128
19
81066
2533
1267
317
158
128
32
136533
4255
2133
533
.
267
128
37
157867
4933
2467
617
308
128
64
273067
8533
4267
1067
533
128
73
311466
9733
4867
1217
608
256
32
273067
8533
4267
1067
533
256
37
315733
9867
4933
1233
617
256
64
546133
17066
8533
2133
1066
256
73
622933
19466
9733
2433
1217
B-1
Page 69
APPENDIX C
TROUBLESHOOTING
If
you
have
problems
with
your
MicronEye
there
is
a
good
chance
that
the
problem
is
setup-related.
If
you
encounter
a
problem
with
your
MicronEye,
run
through
this
checklist
of
common
setup
problems
to
verify
that
your
MicronEye
has
been
setup
properly:
1.
Verify
that
the
card
is
plugged
in
properly.
Symptoms
of
this
problem
include
a
peppered
pattern
on
the
screen,
or
an
all
white
screen
that
doesn't
go
away
even
when
you
cover
the
lens,
or
the
computer
just
'hanging'
when
it
attempts
to
send
a
command
or
receive
an
image.
2.
Make
certain
that
the
lens
cap
is
off
and
that
the
aperature
setting
is
not
set
to
'c'
(closed).
3.
If
the
display
appears
to
be
all
black,
set
the
f-stop
to
the
lowest
setting
and
aim
the
MicronEye
at
a
light
source.
If
any
of
the
screen
turns
white
then
the
problem
may
be
exposure
time
related.
4.
If
the
display
is
all
white,
try
setting
the
f-stop
up
or
reducing
the
exposure
time.
5.
Try
turning
off
the
computer,
brush
off
the
interface
card
with
a
soft
brush,
clean
the
fingers
on
the.
card
with
propanol
alcohol
and
a
cotton
swab,
reinstall
the
card,
and
power
up
the
computer.
6.
Make
certain
that
the
cable
connecting
the
MicronEye
and
the
interface
card
is
firmly
in
place.
7.
If
you
are
still
unable
to
make
the
MicronEye
operate
properly,
please
contact
us
at
Mi9ron:
MICRON
TECHNOLOGY,
INC.
VISION
SYSTEMS
GROUP
2805
E.
COLUMBIA
RD.
BOISE,
ID
83706
TEL.
(208)
383-4046
TWX
910-970-5973
Page 70
APPENDIX
D
IS32
OPTICRAM
TECHNICAL
INFORMATION
D.1
OPERATION The
heart
of
the
MicronEye
is
the
IS32
OpticRAM,
developed
and
manufactured
by
Micron
Technology,
Inc.
The
integrated
circuit
is
Micron's
64K
Dynamic
RAM
assembled
in
a
standard
16
pin
ceramic
DIP
package
with
a
clear
glass
lid.
The
IS32
is
composed
of
65,536
individual
image
sensing
elements
called
pixels.
These
pixels
are
organized
into
two
arrays
of
128
rows
and
256
columns.
(Typical
applications
will
utilize
only
one
of
the
sensor
arrays
since
the
arrays
are
separated
by
an
optical
non-light
sensing
zone
of
amplifiers).
Each
of
the
elements
in
the
IS32
is
a
light
sensitive
capacitor
which
can
be
accessed
randomly
by
simply
strobing
in
the
appropriate
row
and
column
address
of
the
particular
element
to
be
accessed.
The
device
operates
by
focusing
the
reflected
light
from
an
object
onto
the
32,768
light
sensitive
elements
of
the
array.
Light
striking
a
particular
element
will
cause
the
capacitor,
which
is
initially
precharged
to
a
fixed
voltage,
to
discharge
toward
zero
volts.
The
capacitor
will
discharge
at
a
rate
proportional
to
both
the
intensity
and
duration
it
is
exposed
to
light.
To
determine
if
a
particular
element
is
black
or
white,
the
user
would
read
the
appropriate
row
and
column
address
associated
with
the
physical
location
of
that
particular
element.
The
IS32
would
read
the
vo~tage
value
of
the
capacitor
and
perform
a
digital
comparison
between
the
voltage
of
the
capacitor
and
the
fixed
threshold
voltage.
The
output
pin
of
the
IS32
would
be
set
to
a
logic
level
of
1
if
the
voltage
on
the
capacitor
was
above
the
threshold
point.
It
would
set
the
output
to
a
logic
level
of
0
if
it
was
below
the
threshold
voltage.
The
logic
level
of
0
will
be
associated
with
a
white
pixel.
A
logic
level
of
1
will
be
associated
with
a
black
pixel.
A
white
pixel
indicates
the
capacitor
was
exposed
to
a
light
intensity
sufficient
to
discharge
the
capacitor
past
the
threshold
point.
A
black
pixel
indicates
the
light
intensity
was
not
enough
to
discharge
the
D-1
Page 71
1832
OPT1CRAM
TECHNICAL
INFORMATION
OPERATION
capacitor
past
the
threshold,
therefore
it
retained
the
charge
and
is
read
as
a
logic
1.
The
other
significant
factor
affecting
the
discharge
of
the
light
sensitive
capacitors
is
the
length
of
the
time
which
the
capacitors
are
exposed
to
light.
This
period
of
time
is
measured
from
the
initial
exposure
of
an
element
until
the
time
the
particular
element
is
read
or
refreshed.
The
combination
of
the
light
intensity
and
the
scan
rate
(the
amount
of
time
the
elements
are
exposed
before
being
read)
will
determine
the
optimum
imaging
environment.
The
faster
the
elements
are
scanned,
or
read,
the
greater
the
light
intensity
is
required.
Perhaps
the
most
important
consideration
the
user
must
keep
in
mind
is
that
the
MicronEye
requires
a
high
contrast
scene
in
order
to
image
the
object
onto
the
1832.
Unlike
a
TV
camera
which
can
respond
to
"shades
of
gray,"
the
1832
is
a
digital
chip
where
each
picture
element
will
only
respond
to
a
dark/light
(1/0)
binary
part
of
the
scene
around
an
arbitrary
amount
of
light
used
as
a
threshold.
8hades
of
gray
can
be
achieved
by
averaging
multiple
scans
together
using
either
a
different
threshold
voltage
or
varying
the
scan
rate.
By
changing
the
threshold
voltage,
keeping
both
the
image
and
light
intensity
constant,
the
outputs
produced
during
each
scan
will
not
change
where
pixels
are
definitely
black
or
white.
Change
will
be
exhibited
where
the
image
is
gray
and
the
amount
of
reflected
light
striking
the
capacitors
is
near
the
threshold
voltage.
If
an
area
of
the
image
is
a
dark
shade
of
gray,.
the
output
will
generate
more
logic
level
1
's
than
logic
level
a's.
Where
the
image
is
a
lighter
shade
of
gray
the
ouput
will
generate
more
logic
a's
than
logic
1
'so
By
averaging
these
outputs
over
a
number
of
scans,
the
appropriate
shade
of
gray
is
produced.
The
nominal
threshold
with
pin
1
open
is
2.1
volts.
This
threshold
can
be
adjusted
via
pin
1
from
1.5
volts.
to
3.0
volts.
It
is
suggested
that
gray
scale
capability
be
achieved
by
varing
the
scan
rate
rather
than
adjusting
the
threshold
voltage.
By
varying
the
scan
rate
(varying
the
discharge
time)
you
can
more
accurately
achieve
gray
scale
capability.
.
If
for
any
reason
you
must
remove
the
1832
from
its
socket,
caution
is
imperative.
The
1832
is
susceptible
to
static
and
can
be
damaged
by
static
electricity.
Removal
of
the
1832
f~om
the
Bullet
may
require
that
the
tips
of
the
chip
extractor
tool
be
bent
out
slightly
to
accomodate
the
narrowness
of
the
Bullet
housing.
When
reinserting
an
1832
into
the
socket,
be
certain
it
is
properly
oriented.
For
the
Bullet,
the
I832
is
oriented
properly
when
the
red
edge
of
the
ribbon
cable
is
on
the
same
side
of
the
Bullet
as
the
Pin
1
notch
on
the
1832.
For
the
Camera,
the
1832
is
oriented
properly
when
the
Pin
1
notch
on
the
OpticRAM
is
on
the
same
edge
as
the
Pin
1
notch
on
the
other
IC's
in
the
camera.
D-2
Page 72
IS32
OPTICRAM
TECHNICAL
INFORMATION
IS32
TECHNICAL
SPECIFICATIONS
D.2
IS32
TECHNICAL
SPECIFICATIONS
There
are
two
versions
of
the
IS32
OpticRAM:
the
IS32
and
IS32A.
Beginning
in
September
1983,
the
1832
was
replaced
in
favor
of
the
IS32A.
The
only
difference
between
the
two
devices
is
size.
The
IS32A
is
exactly
20
percent
smaller
in
the
horizontal
and
vertical
dimensions.
The
dimensions
below
are
for
the
IS32A.
To
calculate
dimensions
for
the
larger
IS32
device,
multiply
by
1.25.
D.2.1
DIMENSIONS
1.
ARRAY:
128
x 256
electrical
addressable
elements
per
array
(4420
microns
x
876.8
microns).
The
physical
organization
of
the
array
is
actually
a
514
x
129
grid
with
staggered
cell
placement
as
indicated
in
figure
D-1
.
2.
ROW:
877
microns.
3.
COLUMN:
4420
microns.
4.
ELEMENT
SIZE:
horizontal.
6.4
microns
vertical
by
6.4
microns
5.
VERTICAL
PITCH (Row
Pitch):
6.8
microns.
6.
HORIZONTAL
PITCH
(Column
Pitch):
8.6
microns.
7.
SPACING
between
left
and
right
array:
120
microns.
8.
DISTANCE
from
surface
of
OpticRAM
chip
to
top
of
the
glass
= 940
microns
(plus
or
minus
100
microns).
D.4.2
SENSITIVITY
Broad
band
sensitivity
of
the
IS32
OpticRAM
is
approximately
2uJ/sq
cm.
Silicon
detectors
have
a
useful
optical
sensitivity
over
the
region
of
the
spectrum
is
which
silicon
absorbs
photons.
This
extends
·from
200
nanometers
to
1100
nanometers.
However,
a
complete
characterization
of
the
IS32
is
still
under
way.
The
sensitivity
follows
the
silicon
characteristic
curve
since
the
IS32
is
built
using
silicon.
The
IS32
is
impervious
to
damage
by
high
light
intensity.
It
has
a
high
quantum
efficiency
and
a
binary
output
that
is
D-3
Page 73
IS32
OPTICRAM
TECHNICAL
INFORMATION
IS32
TECHNICAL SPECIFICATIONS
proportional
to
the
amount
of
incident
light
and
integration
time
(referenced
to
a
threshold).
However,
oversaturation
of
the
IS32
by
more
than
4
F-stops
will,
for
the
duration
of
oversaturation,
make
the
first
half
of
the
array
all
light
and
the
other
half
all
dark.
This
is
only
a
temporary
situation
for
the
duration
of
the
saturation.
The
IS32
is
sensitive
up
to
near
UV.
The
Is32
chip
is
mounted
in
the
package
with
20
mils
tolerance
in
both
the
X
and
Y
axis.
This
suggests
that
if
an
OpticRAM
package
is
replaced
in
a
camera,
a
physical
realignment
of
the
camera
to
the
scene
is
necessary.
The
tolerance
from
surface
of
the
array
to
the
lens
mount
from
camera
to
camera
is
20
mils
with
a 6
degree
rotational
tolerance.
D. 3
TOPOLOGY
D.3.1
Address
Descramble
If
you
access
a
cell
(pixel)
in
the
OpticRAM
using
an
address
of
zero
for
both
the
row
and
column,
the
Optic
RAM
will
not
physically
select
Row
0
and
Column
O.
This
is
because
the
internal
address
decoding
does
not
provide
a
one-to-one
correspondence
between
the
address
count
and
the
physical
row
and
column.
A
simple
circuit,
consisting
of
exclusive
OR's
and
inverters,
performs
the
necessary
code
conversion
to
achieve
the
desired
one-to-one
correspondence.
See
Figure
D-1
D.3.2
Pixel
Layout
One
of
the
primary
goals
in
designing
a
low
cost
integrated
circuit
such
as
the
OpticRAM,
is
to
minimize
its
physical
size.
To
achieve
this
goal,
the
cells
in
the
OpticRAM
are
arranged
in
an
interleaved
pattern.
If
an
image
is
read
out
of
the
OpticRAM
by
counting
successively
down
the
rows
and
columns,
the
image
will
look
"fuzzy"
around
the
edges
because
the
pixels
will
be
slightly
misplaced
in
the
graphics
matrix.
To
accomodate
the
pixel
misplacement,
the
data
from
the
OpticRAM
must
be
mapped
into
the
graphics
matrix
so
that
the
arrangement
of
the
pixels
in
the
graphic
matrix
matches
.the
physical
arrangement
of
the
cells
in
the
OpticRAM.
Due
to
the
interleaved
cell
pattern
on
the
OpticRAM,
the
array
is
much
longer
than
it
is
wide,
resulting
is
spaces,
between
the
cells
in
the
column
direction.
Because
of
the
spaces,
the
128
X
256
array
of
cells
will
map
very
nicely
into
a
129
X
514
matrix.
We
will
call
this
matrix
the
Cell
Placement
Grid.
D-4
Page 74
07
--------
Ao(S)
1832
OPTICRAM
TECHNICAL
INFORMATION
TOPOLOGY
D.3.3
Cell
Placement
Grid
The
cell
placement
grid
is
shown
on
page
D-6.
For
a
single
array,
there
are
a
total
of
129
rows
and
514
columns.
Only
the
corners
of
the
array
are
shown.
The
placement
grid
indicates
where
the
information
from
each
cell
in
the
OpticRAM
should
be
mapped.
For
instance,
if
the
cell
at
address
Row
1,
Column
1,
in
the
OpticRAM
is
read,
the
value
(a
1
or
0)
should
be
placed
in
the
placement
grid
at
location
X=2,
Y=3.
When
every
cell
has
been
read
and
the
values
placed
in
the
appropriate
locations,
about
half
of
the
grid
remains
empty.
We
will
call
these
empty
locations
"space
pixels."
The
space
pixels
can
be
set
all
high
or
all
low
to
provide
a
light
or
dark
background
for
the
image.
Another
alternative
is
to
set
each
space
pixel
to
the
level
that
agrees
with
the
majority
of
its
nearest
neighbors.
For
example,
let's
say
the
pixel
at
grid
locations
X=2,Y=2
(R1
C1)
and
X=3,Y=1
(Rl
CO)
are
high,
and
the
pixel
at
grid
location
X=3,Y=3 (R3
CO)
is
low.
These
are
the
three
nearest
neighbors
of
grid
location
X=3,Y=2.
The
majority
of
these
nearest
neighbors
is
high,
so
the
previously
empty
grid
location
X=3,Y=2
is
set
high
also.
This
technique
can
be
applied
to
all
empty
grid
locations
except
those
near
the
edge
of
the
array.
A
modified
technique
can
be
used
for
these
edge
space
pixels,
although
there
is
less
optical
data
to
work
with.
Another
alternative
is
to
simply
not
use
the
edge
rows
and
columns.
Having
the
cells
laid
out
in
the
1832
the
way
they
are,
gives
the
1832
much
greater
resolving
power
than
if
the
cells
were
laid
out
linearly.
LOGICAL EQUIVALENT OF TOPOLOGY MAP
ROW
COLUMN
M8B
07
°4--------
°3
------'----
L8B
00
-t---------
AS(10)
02
A6(13)
-t--------
A6(13)
01
~-
AS(10)
D--
A7(9)
00
~
A7(9)
1832
Optic
RAM
Address Descramble Logic.
Figure
D-1.
D-5
Page 75
1832
OpticRAM™
Topological Information
UPPER
ARRAY
I
~
876.8 microns
~I
LOWER
ARRAY
XO
AO CO
A2
co
A'
co
A124
CO
AI26
co
RI29
co
A13'
co
Fl2S'
co
R253
co
R255
co
"
X2
RI
CI
R3
CI
• A123
CI
RI25
C1
Rll7
CI
R12S
CI
RIJO
CI
R132.
CI
A252
CI
R254
CI
XJ
AI
co
r,3
co
A5
co
AI25
co
R127
co
A128
co
AIJO
co
R250
co
R252
co
R254
co
X4
RO
C2
A2
C2
A'
C2
A12"
C2
R126
C2
R129
C2
R131
C2
",
"
R251
C2
R253
C2
R255
C2
X5
RO
CI
R2
CI
A'
CI
R12'
C,
R126
Cl
AI29
CI
R131
Cl
R25J
Cl
R255
C,
X6
X7
AI
C2
Rl
CJ
R3
C2
RJ
CJ
A5
"
C2
A12J
"
CJ
RI25
C2
R125
CJ
RI27
C2
R127
CJ
R128
CJ
R128
C2
R1JO
CJ
A,JO
C2
A1J2
CJ"
• R250 C2
R252
C3
Rm
C2
R25'
CJ
R254
C2
-
-
-
-
R255
C5
R255
CJ
R255
C6
R255
c,
R25J
C5
R253
CJ
R25J
C6
R25J
c.
R251
C5
R25'
CJ
A25'
C6
R251
c'
..
RIJt
C5
RUI
CJ
•••
o&.{te~
$
tJ$l01!1@00
RIJ1
c'
RtJI
C6
R129
C5
R129
CJ
R129
C.
R129
C6
AI28 RIJO
RtJ2
R252 R254
~ ~
~.
~ ~
R128 RIJO • R250 R252 R254
c'
C4
C4
C4
C4
II)
c:
e
o
'E
~
...
...
..
R126
C6
R126
c'
"
..
RI26
C5
R126
CJ
"
..
"
"
R12'
C6
R12d
C'
Rl24
C5
Rll4
CJ
..
" "
"
"
R'
C6
A'
c'
"
. "
R'
C3
R'
C5
R2
c.
R2
C6
RJ
C,
R,
C5
A2
CJ
R2
C5
RO
C'
RO
C6
Al
C'
..
RO
C5
RJ
RI2J
R125
Rt27
C5
GC5
C5 C5
R5 • R125 RI27
c.
c'
c.
I--!---!I---+--l--+--
X8
XIO
X1l
XI2
X9
RO
CJ
X1J
o
o
X505
RO
C251
X506
A2 C251
AI C25J
R'
C251
RJ C25J
"
R12A
C251
Rl23
C253
R126 C251
R125 C25J
R127
C253
RI28 C25J
A129 C251
RtJO C253
Fl131.
C251
A25' C25'
A252 C25J
A25J C251
A25' C25J
R255 C251
X507
AI C252
RJ C252
~~52
"
"
RI25 C252
R127
C252
R128 C252
AI30 C252
A250 C252
A252 C252
R25' C252
X508
X509
~~5J
AO
C254
R2 C253
A2
C25.
A'
C25J
R.
C254
"
R124
C254
R124
C253
RI26
C25J
R126 C254
A129 C254
AI29
C25J
R131
C254
A1Jl C25J"
A251
C25'
A251
C25J
A25J
C254
A25J
C25J
A255 C25'
R255 C25J
-
X510
Al C255
AJ C255
R12J
• C255
RI25 C255
R'27 C255
A128 C255
A1JO C255
"
A252
C255
R25' C255
X511
RI C254
RJ C254
R5 " C254
R125 C254
R127
C254
AI28 C254
AI30 C254
A250 C25'
A252 C25'
A25' C254
X512
Y12' YI25 Y126
Y127
YI28
.-.
Y'2J
Y12'
Y125 Y126 Y127 Y128
PIN
16
~
X51J
AO C255
YO
Yl
R2 C255
Y2
A'
C255
YJ 'r4
Y5
R124
C255
RI26
C255
YO
YI
AI29 C255
Y2
AIJI C255·
Y3
Y4
R251 C255
A25J C255
A255
C255
fo--
PIN
1
I---
(REV 11-83)
Rl
R3
CO
CO
RO
R2
C2
C2
R2
Cl
Rl
C3
Rl
R3
C2
C2
==>
Page 76
I
TECHNOLOG~INC
ALGORITHM
FOR
TRANSFORMING
THE
OPTICRAM
256
X
128
IMAGE
INTO
THE
PROPER
512
X
128
ARRAY
SPACE.
(*
described
in
psuedo-PASCAL
terms.
For
purposes
of
simplicity
we
assume
that
bits
are
individually
access~ble.
Implementation
on
most
computers
will
require
bit-twiddling
to
simulate
the
effect
of
what
is
shown
below.
This
algorithm
is
accurate
for
the
lower
array
which
is
the
array
used
when
ONE-ARRAY
mode
is
used
on
the
MicronEye.
The
changes
to
be
used
when
transforming
the
upper
array
are
noted
parenthetically.
*)
VARIABLE DECLARATIONS grid
ARRAY
[0.•513,0••128]
OF
bits;
optic
ram:
ARRAY
[0.•255,0.127]
.
OF
bits;
x,x3,-
y,
col
ctr,
row-ctr
:
INTEGER;
PROCEDURE
TRANSFORM; BEGIN FOR
row
ctr
:=
°
TO
127
DO
FOR-col
ctr
:= °
TO
255
DO
BEGIN
IF
ODD(row
ctr)
THEN
IF
ODDTcol_ctr)
THEN
BEGIN
Y
:=
row
ctr
+
1;
x := 2
*-col
ctr
+
3;
(*
upper
array
is
2*col_ctr*)
END
ELSE
BEGIN
Y
:=
row
ctr;
x := 2
*-col
ctr;
(*
upper
array
is
2*col
ctr
+
3*)
END
-
ELSE
(*even
row*)
IF
ODD(col_ctr)
THEN
BEGIN
Y :=
row
ctr;
x :=~*-col
ctr;
(*
upper
array
is
2*col
ctr
+
3*)
END
-
ELSE
(*even
column*)
BEGIN
y
:=
row
ctr
+
1;
x
:=
2
*-col
ctr
+
3;
(*
upper
array
is
2*col_ctr*)
END;
grid[x,y]
:=
optic_ram[col_ctr,row_ctr]; END; end
of
transform
procedure
*)
TN-l-A
Page 77
APPENDIX E
ANNOTATED
ASSEMBLY
LANGUAGE
DRIVER
FOR
THE
IBM
PC
E-1
Page 78
The
!BM
Personal
Computer
Assembler
03-22-84
XICRDNEYE
ASSEMBLER
ROUTINES
{MEYEDRVR}
TITLE
M!CRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
PAGE
84~132
,SALL CGMMENT
~
MEYEDRVR--MODULE
DESCRIPTION
for
gettr~~sa;r~~~~em~;~;et~;k~fc;;~~y~ft~lih;h~r~~~i~~a~~g;rr;n~~:;~~s
of
the
IBM
PC.
The
routine
is
asse~bled
toberelocatable,
Because
the
routine
nor~allv
resides
within
the
BAS!C
wor~~spac~~
the
fif~t
Dartofthe
BASIC
Droqram
locates
these
routinesashiOhinthe'
BASIC
~egmentaspoisibl~.
Although
the
program
makes
certai~
that
there
is
enou"h
room
initially
for
both
the
assemblt
language
routines
and
the
BASIC
proqram,
thereisno
assurance
that
.he
declarationoflarge
amounts
of
data
space"
will
not
overlap
the
aachine
language
programs.
There
are
4
asselblvroutines
availabletothe
user--
fAR"CALC.
S
"R"~UDUM"
V"""sr~
-n"
G~T~I"
"'"M"AL"
·-~e-
t"-
cet""p
--r-meter- "
Llt
...
l,
r,r~
ArC:'I..,n
dl\.:
.....
,r
..
~.
rHrln~H
1.-
t.='n..
~
H~., U
tJ~
Dill..
l~
selectedatthe
lain
lenu
and
calculates
the
commands
that
GETCALC
will
send
the
MicronEye
and
the
numberofbytes
the
MicronEye
will
return.
SCREENDUM?
dumps
the
current
picturetoan
IDMorEpson
printer.
XFERSCR
moves
the
pictureinthe
WORKMAP
areatothe
screen.
The
proper
calling
sequence
fromaBASIC
programisas
follows:
DEF
SEG=~Hxxxx
'where
xxxx
specifies
the
assembler
routine
address
BlDAD
"HEYEDRVRn.O
GErPIC
= 0 "
PARMCALC
=6 SCRDU"?=12 SCRXFER
=
16
DATA.
AREA
=
20
·
CALL
SCREENDUMP
·
CALL
GETPIC(screen_start,white_pct,key_value}
·
CALL
XFERSCR
All
variablesinthe
argument
list
are
assumedtobeoftype
lNTEGER.
The
variables
are
definedasfollows:
PIC
TYPE--determines
the
formatofthe
image
transmitted
from
-
the
MicronEye.
The
following
are
valid
commands:
o-
12Bx64
picture
(black&white)
1 -
512
x64picture
(wI
smoothing)
2 -
512x64
picture
(oreyl
3 -
512
x
12B
picture
(olack~white)
4 -
640
x
12B
picture
(wI
smoothing)
5 -
640
x
12B
picture
(grey)
The
command
byte
sent
this
routineisnot
the
sameasthe
control
byte
senttothe
MicronEve.
For
a
complete
descriptionofthe
HicronEye
confrol
byte
refertothe
Operator's
manual.
PICS
PER
SCREEN--If
set
to2then
both
blocksofimage
sensors
-
on
fhe
OpticRAM
willbetransmitted
from
the
MlcronEye.
The
blocks
(or
arrays)
are
separatedbya
dead
zone
so
the
displayed
picture
Hill
appeartobe
split-screen.
EXIT
AT
EOF
--
If
true
(an
odd
number)
then
controlisreturned
to
- -the callino
programatthe
endofeach
picture
trans~ission.
Otherwise,
Jplctures
are
continually
processed
untilakey
is
pressed.
EXPOSE
TIME--the
numberofmilliseconds
for
which
the
image
should
-beexposed.
SCREEN
START--The
bvte
positiononthe
screen
pa?e
at
which
the
-
picture
shoulo
start.
This
positionisca.culated
as:
(ROW*801+(COLUMN/B).
Row
mustbean
even
number
between0and
134.
Column
must
be
between0and
512
and
divisible
by.
B.
Page 79
The
IBM
Personal
Comguter
Assembler
03-22-84
M1CRGNEYE
ASSEMBLER
KuUTINES
!MEYEDRVR)
PAGE
1-2
~HITE
pel
-- A
value
between0and
100
that indicates
the
-
appfoxi~ate
percentofthe
current
picture
thatiswhite.
KEY
VALUE--At
the
beginninoofeach
FRAMEGRAB
this
variable
is'
set
-
to
zero.Ifduring
the
FRAMESRAB
a
key
is
pressed~
then
the
ASCI!
valueofthe
key
is
placedinthe
LSBofkey_value,
For
CU=tD~
applications
you
may
wishtoincreaseordecrease
the
size
Or
the
buffers
usedtocreate
picturesofeachofthe
supported
ty~es.
lhe
tahle
helow
shows
the
byte
requirEments
for
the3buffers
B!T~A?,
dITMAPB,
and
WORKMAP
when
Jsina
each
picture
type.
As
shipp~d.
WORKMAPissetto10240
bytes.
BiTMAP
10240
bytes
and
BITMAPB
4096
bvt~s.·
With
suchaconfiguration
the
BASIC
pro~ram
MEYt
allows
single
array
pcitures
for
all 6 picture
types,
but
supports~array
mode
for
only
the
first
three
picture
types
(64
row
pictures).
BUFFER
SIZE
REQUIREMENTS
FOR
EACH
PICTURE
TYPE
----------------------------------------------
BYTES
WHEN
USING
PICTURE
TYPE
BUFFER
NAME
1
AnR~V
2
ARRAYS
n.....
------------
-----------
-------~
128
x
J R
(BfWl
WORK
MAP
1024
2048
O~
512
x
64
iBfW)
BITMAP
1024
2048
WORK
MAP
4096
8192
512
y,
64
(GREY)
BITMAP
1024
2048
BITMAPB
1024
2048
WORKMAP
4096
8
1Qn
.
,~
512
x
128
(BfWl
BITMAP
4096
*
WORKMAP
8192
*
640
y,
128
(BfW)
BITMAP
4096
*
WORKMAP
102~0
*
640
y,
128
(GREY)
BITMAP
10240
*
BITMAPB
4096
*
WORKHAP
10240
*
*
2-array
modeisnot
supportedbythis
software
H~hen
working
with
the
y,128
pictures.
Firstly~
buffer
space
required
was
prohibitive
for
users
with
less
than
19~K
of
memory.
Secondly,aseparate
set
of
routinestohandle
the
enhancementofthe
top
array
(only
the
bottom
arrayisusedini-array
mode)
wouldberequired
because
pixel
placement
is a
mirror
imageofwhatisdoneinthe
bottom
array.
In
other
words.
in
the
top
arrayoneven
rows
you
woulddowhat
was
aoneonodd
rows
in
the
bottom
array
except
that
the
bytes
that
are
moved
one
row
away
stay
where
they
are
and
the
bytes
that
normally
stay
where
they
are
move
one
row
away.
NOTE:
RS-232
users
who
are
referringtothis
cedetodevelop
code
for
other
computers
shouldbeaware
that
the
data
lines
for
the
IBM
interface
have
been
flippedtoaccomodate
the
IBM
PC's
method
of
graphics
display.
All
status. control.
and
data
registers
associated
with
the
MicronEye
interfaceonthe
IBM
version
are
exactly
backwardsofthe
status, control.
and
data
registers
emeloyedbythe
RS-232
interface.
In
otner
words.
when
the
IBn
writesaCO
hex
(11000000
binary)tothe
cont~ol
register.
RS-232
MicronEye
users
will
wanttowritea03
hex
(00000011
binary).
By
the
same
token
data
received
from
the
MicronEyeisbackwards.
In
the
IBM
the
most
significant bitofeach
byte
received
corresponds
to
the
left~ost
of
the
eight
pixelsinthe
image.Inthe
RS-232
the
least significant bitofeach
byte
correspondstothe
leftmost
pixel.
The
AppleIIand
Commodore64versionsofthe
MicronEore
are
similar
in
this
respecttothe
RS-232
version.
The
TRS-80Coor
Computer
interfacetothe
MicronEye
uses
the
same
bit orientationasthe
IBM
PC.
I
I
SUB
TTL
MAIN
SUBROUTINES
AND
DATA
DECLARATIONS
Page 80
The
IBM
Personal
Gornnuter
AssEmbler
03-22-84
MICRONEYE
ASSEMBLER
R5uTINES
{MEYEDRVR}
PAGE
1-3
MAIN
SUBROUTINES
AND
DATA
DECLARATIONS
0014
0400
0016
0000
0018
0000
001A
0000
00lC
0040
001E
0010
(1020
0001
0022
28AO
(
;cal~ulate
parameters.
based
on
pictype,
;
plcs_per~screen,exlt_at_eQf!
and
;
EXpDse_tlfi!e.
iprints
pictureonscreen.
uses
bitmap
;
i~age
rather
than
screenassource.
;get
pictufe(s)
trom
the
MicronEye
;ffioves
bitmap
pictureatWORKMAPtoscreen
1024
o
o
,0
b4
16
1 ,
10400
DUP
(?J
;use
16000
for
2-array
pictypes
3-5
FAR
SETPle
6
FAR
peAle
8
FAR
MOVESCR
FAR
SCRDUMP
PAGE
CBEG
SEGMENT
PARA
PUBLIC
ASSUME
CS:CSEG,DS:CSE6,ES:NOTH1NG
.
!
SEIPleT
PHOC
,ur:
.:nr
GPICX:RET
GET?1CT
END?
j
PAR~~CLC
PHOC
JMP
FARMX:RET
PARMele
END?
i
PICDUMP
PROC
CALL
RET
PleDUMP
ENDP
;
SCRXFER
PROC CALL RET
SCRXFEF:
ENDP
i
MAPBYTES
DW
KEY
VALUE
DW
PICTYPE
DW
SCREEN
STARTDW.
SCR
ROWCT
DW
SCR-COlCT
DW
ARRHYCT
DW
WORKMAP
DB
EB
6303
F:
~"
l"D
CA
GOOE
,..n
17n,..
rl
::0
0,)0::
r.
CB
OOOC
OOOC OOOF
0010
OC06
(lOOt,
0009
0000
0000
0003
')0%
0010 0010 0013
0014
(I00C
28C2
28AO
(
??
BITMAP
DB
10400
DUP
(?)
;use
16000
for
2-array
pictype
5
5162
1000
(
??
BITMAPB
DB
4096
DUP
(?)
;use
8192
for
2-array
pictype
2 & 5
i
'~J..."
0318
CONTROL
DW
318H
icaillera
control
port
c.~.:
6164
0318
STATUS
DW
318H
jcaiera
status
port
6166
0319
DATAlN
DW
319H
icailiera
data-from
port
I
~
! Q
()~(n
DATAOUT
DW
319H
jcailiera
data-to
port
o.o~
~,'1
7
11lt\
0000
EXITEDF
DW
0
C..OH
If'!"
1)1
?'"
EXPOSE
TIME
OW
300
O!O~
H.l..
616E
0000
WHITE
PCT
OW
0
h171'
1B
COMMA~D
DB
IBH
w., u
6171
????
ROWCTR
DW
?
6173
????
COLCTR
DW
?
6175
00
BITCT
DB
0
6176
0000
WOF;DCT
DW
0
6178
????
WHITECT
DW
?
617A
0400
TOTBYTES
DW
1024
.
!
6
17
1'
0400
0400
0400
1000
TOT
TAB
OW
1024,1024~1024,4096,4096,4096
.,
w
-
1000
1000
6188
0040
0040
0040 0080
ROWCT
-
TAB
DW
64,64,64,128,128,128
0080
0080
6194
0010
0040
0040
0040
COLCT
-
TAB
DW
16,64,64,64,80,80
0050
0050
~
61AO
0400
1000
1000
2000
BYTES
-
TAB
OW
1024,4096,4096,8192,10240,10240
2800
2800
61AC
001B 001B
001B
001F
CMD-TAB
DW
1BH,lBH,lBH,lFH,lFH,lFH
001F
001F
;
61B8
0000
PAT
OW
0
61BA
00 05
OF
00
50
0"0"
DPAT
DB
~
0"
r"lFJ.J0O"{IH'
O"O"H
O"rH
r"l
fll:O"
"FO"H
'\1"1:1.1
oJ,J
.
,..I,'
...
",
,tJVI,..
J.J
,~r
,\"',J,
n,vtJ,,\..r,
II
5F
00
FO
F5
-r
rr
6
1
r"f:
00
OF
FO
FF
CPAT
DB
O.OFH.OFOH.OFFH
!1..,J
'IrQ
184108
00
1"1"
GRSETUP
DB
lSH,4lH,8H~ODH.OFFH
;
8/72"
,.
spacing
0 •
..,.
rr
11ne
61CE
I"
.,.'"
00
FF
TEnSET
DB
1BH.32H.ODH.OFFH
;
6 linesl:n
spaClng
.Il
.)J.,
6102
00
OAIB4B
GUN
DB
ODH;OAH;lBH~4BH
;
60
dots/in
graphics
6106
0000
FFFF
GRlEN
DW
OH.OFFFf=H
61DA
11"\111
H
if1•.,
".
624A
F:
"'1'
DW
PICA,PICB,PICC,PlCD,PICE,PICF
0':'10
0':'11
1\
r.w
Page 81
The
IBM
Personal
COmputer
Assembler
03-22-84
PAGE
1-4
MICRONEYE
ASSEMBLER
ROUTINES
{MEYEDRVR)
MAIN
SUBROUTINES
AND
DATA
DECLARATIONS
6253R6:56R625C
R
blEb
673AR674A
R
61EA
????
,..nt'.'.,·"''''''''
OlJt1t,r
11\
MAPADR
DW DW
SOAK,GREYSOAK
? '
SETP!e
ROUTINE
jget
picture
Trom
thE
MicfonEye
The
IBM
Persunal
COffiDuter
Assembler
03-22-84
M!CRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
SErPIC
ROUTINE
jformat
routine
for
512Yo128
B&W
picture
jformat
routine
for
512Yo128
smoothed
picture
iformat
routine
for
512Yo128
grey
picture
j
no
forluattingneeded
for
128x64
BH!
pi
cture
jformat
routine
for
512x64
smoothed
picture
iformat
routine
for
512x64
grey
picture
iinitialize
comru
link
jset
Ur,EStopointtodata
segment
of
i
cal.ln~
prograF..
iset
upD~tobethe
sarneasthe
code
segment
jsave
calling
environment
;get
addressofkey
value
variable
jget
ad~res5
of
whlfe_pct
variable
in
;
call1ng
prooram
jrestore
environment
before
returning
j
(note
thatDSof
calling
pronraruisbeing
used
.
to
,,,,,in" \1,1"" to WH'lJ:'
pr1
-nd
k'EY
1,1/\'LPJ:'
,
w""''''''.,;"l
IW..WI;'..
H'
i ,
...
I
WI
d.
1\
In
U...
jofcall1i:g
programs)
- -
;get
SCREEN_START
address
from
stack
;get
SCREEN_START
value
2-1
jdoes
everything
necessarytoget
picture
;preserve
stack
ptrinBP
SMOOTHS
SREYSQAK
GREYGRAB
GREY
ADD ENHANCE ENHANCE2 FILLIN2 GREYSoAK GREYGF:AB ENHANCE2 ENHANCES GREYADD2 F!LLIN2
DS
[Sn,AX
rDILBX
BP
,
GPIC)
AX,100
\J!HlTECT TOTBYTES WHITE
PCT
AX
B
y
n:17
\IAl
UE
HjjIU.., f't11.
Dr
6[B~J
"I'nrBPl
iJ
110
..
'I
..
ES'
PAGE
FRAM£SRAB
;get
picture
from
MicronEye
BX,PICTYPE
jselect
picture
formatting
routine
based
BX;l
j
on
pictype
WORD
PTR
P1C£BXJ
MOllESCR
;moved
formatted
picturetoscreen
EXITEDF.l
iif
exitatedf
set
then
preparetoexit
DONE
' - -
KEY
VALUE,O
RESTART
iotherwisegoget
another
picture
..
NEAR SP
llP
"P
.',
'~,
DS'
ES
hV
nr"
Ht"J"O
ES.AX AX;CS DS.AX
DL
l(HBPJ
AX;ES:
rDn
SC~:EEN
START,
AX
ACIACLR
'
RET
JMP CALL CALL
JM?
JMP
CALL
JMP
.
CALL CALL CALL CALL CALL JMP ENDP
MOll
MUL DIV MoV MOll
MOV
i10V POP POP
MOV MDV
PDP JMP
GETPIC
;
PICF:
j
PICA:
PIca:
PICC:
DONE:
PASE
SETPIC
PROC
PUSH HOV PUSH PUSH
MOV
KoV MOV MoV MOV
MOV
MOll CALL
RESTART:
CALL
MOV
SHL
CALL
CALL
TEST
JNZ
CMP
JE
C3
l"Q
"74
"
61
Olf,t
f'\
£8
674A
R
ES
63C9
R
£9
65BD
R
E9
MAE
R
E8
6b9B
R
E9
6609
R
£8
674A
R
ES
b3C9
R
EB
669B
R
EB
668F
R
ES
b6F3
F:
E9
6609
R
B8
0064
F7266178
R
F7
36
617.~
R
1\7
J t
If-
Ii
:"'11.'\
O!Cc:.
n
8B1E0016
R
8B
7E
06
8B7608
07
lF
89
04
89
iD
5D
£9
0003
R
E8
63D2
F:
83
IE
0018
R
D1
E3
FF9761DA
F:
E8
638E
F:
F7
06
6161\R0001
75
07
833E0016R00
74
El
6246
/
l'U'"
Ct.'!
I
624A
624D
6250
6253
6256 6259 625C
625F
6262
6265
6268
62bB
if'll'"
:It.Cl:
623C
loj"Y'ii
O';;'
..
\J)
j"':""",
o..::~.::.
6240
6242 6243
,.
....
~i;
O,i..",\.,;'.
i
"',7.1
O";'J.O
6:39
biEe
b1Ee
blED
61EF
61FO
06
61Fl3CD8
8E
CO
r\t"
,..'"
OL,
",0
8E
D8
sa
7E
OA
26:8805
A3
001A
R
E8
6715
F:
SUBTTL
PARMCALC--Determine
picture
characteristics
Page 82
The
IEM
Personal
Computer
Assembler
03-22-84
PAGE
2-2
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
PARMCALC--Determine
picture
characteristics
PAGE
clipped
pic
size
maxis16000
jsave
environment
iget
exiteof
off
stack
irestore
environment
lifwehave
chosen
pictypes
3-5
then
only
i
allow!
array
mode
ireturntoPARMCALC
shell
(doing
things
this
forces
the
needed
FAR
returnl
isetupEStopointtocalling
routine's
;
data
segment
isetupDStobe
the
sameasthis
routine's
;
code
seglvent
;get
pictype
off
stack
;get
arrayct
off
stack
;get
exposetime
off
stack
;transfer
parameters
from
registers
iif
arrayct=2then
i alter
command
byte
for2arrays
i
double
total
bytes
;
double
row
ct
i
double
clipped
nic
size
i
may.
rOHct
IS
200
NEAR
r,p
D.
BP,SP
DS·
SCR
ROWCT,AX MAPF.YTES,tx TOTEYTES;BX
ES
.
DS BP PARM)
..
"
::;J
AX,DS
ES;AX
AX~CS
DS;AX DJ;
12rBP]
BX~
ES:
rD!] PII.TYPE,EX DI,10rBPJ AX;Es:rDIJ ARRA'{CT
,AX
PICTYPE;2
NOTWO
.
ARRAYCT,I DI.
SrEP) AX;Es:rDIJ EXlTEOF,
AX
DI,
MEP)
AX,ES:
rDIJ
EXPOSE
TIME,AX
EX,l
- .
iword-adjustBXfor
table
lookups
AX,COLCT
TAB[EX]
SCR
COLcT,AX
iget
rowct
for
this
pictype
AX,eND
TAB[BXJ
.
COMMANDtAL
iget
MicronEye
command
byte
for
this
pictype
AX,ROWC
_TABrBX]iget
column
bytesctfor
this
pictype
CX,BYTES
TAB[BXJiget
clipped
pic
sizeinbytes
for
this
pictype
DX,
T~T_T~BrBX]
;get
total
bytes
for
this
pictype
. BX,D" DX,ARRAYCT DX DX,I
NO~ARRAY
COMMAND,20H EX,l AX,1 CX;
1
AX,200
RO~OK
AX,200 CX;16000 N02ARRAY CX,16000
PROC
PUSH
MOV
PUSH
PUSH MGV
MDY' MOV
MOV MOV
MOV
MOV MOV MOV MOV CMP JLE
tiD'll
notwo:
MOV MOV MOl} MOV MOV MOV SHL MOV MOV MOV MOV MOV MOV MOV MOV MOV DEC
AND
"
uL
ADD SHL SHL SHL CMP JLE MOV
roV/ok:
CMP JLE MOV
N02ARRAY:
MOV MOV MOV POP POP POP JMP
PCALC
ENDP
A3
001C
R
89OE0014
R
89IE617A
R
(17
IF
5D
E9
0009
R
55
38
EC
lE
06
n,.,
'"!.n
C\"
.Jc
8E
CO
8e
ca
8E
D8
SB
7E
or
"\,
I
I'U'
f n
'::'0.
CD
UJ
89IE0018
R
8E
7E.
OA
26:as05
A3
0020
R S33E001SR02 7E
06
C7060020R0001
8E7E08
26:BE05
A3
616A
R S87E06
26:BB05
A3
616C
R
Dl
E3
SB876194
R
A3
001£
R
SE8761AC
R
A2
6170
R
83 87
6188
R
8ESF61AO
R
as97bi7e
R
88
DA
8E160020
R
4A
SlE20001 74
1C
SO066170R20
Dl
E3
Dl
EO
D1
El
3D
OOCS
03
Ba
(loea
81F93E80
7E
03
89
~,E80
626£
i"'/~
e..:o::
626F
'I"\~t
b..::..:
!
6272
,""..,..,-
c..:;,)
;".,C'
0':'1";
/.,-,.,.
01./
I
6279
627B
627E
6281
I~nr
0-,0';
1l"\Mn
0.:00
;:o,nn
Ci,ot\
628£
''''"7
0':7,'
6295
629B
629E
62Al 62A4
62A7
62AA
62AD
62AF
62B3
62B6
628A
62BD
62C1
62C5
'
.....
r"
O':w7
62CB
62CF
62DO
62D4
,,,,,/
O,Ll!O
62DE 62DD 62DF
62El
62E4
;"1'"'1
0"'::'0
r"'.lr"n
0"::'7
62ED
62EF 62F2
62F2
62F5 62F9
62FD
62FE
62FF 6300 6303
SUBTTL
SCREENDUMP
ROUTINE
-- prints
imageinWORKMAP
buffer
Page 83
"
.,
.i..-..'
PAGE
The
IBM
Personal
Com~uter
Assembler
03-22-84
M1CRONEYE
ASSEMBLER
ROUT1NES
(MEYEDRVRJ
SCREENDUMP
ROUTINE
-- prints
imageinWORKMAP
buffer
jRestore
orginal
valueofSI
iwe
sound
the
belltosignal
early
end
of
j
printing
causedbykeypress
;pointtothe
next
coltoprint
(lasttofirst)
icheck
for
keypress
;if
keypress
then
get
char
and
exit
iThis
routine
prints a string
whose
i starting
addressisinCXand
is
;
terminatedbyOFFH
;This
routine
sends
the
character
i
inDLto
the
printer
ipreserve
calling
environment
. ;setupdata
segmEnt
pointer
AH,5
2HJ
BEEP
TSn
CX,SI DL;rSIl
DL.
OFFH
ENOSTR
PUTBYTE
S1
N?UT
SI,eX
NEAF:
DS
AX4CS
DS;AX
CX;OFFSET
GRSETU?
?UTSTR
isetupline
spacing,
etc
for
graphics
dump
DX,SCR
ROWer
;
the
lenath
of
each
graphic
bitstreaffiiE2x
DX:l
- i
the
taHct.
This
valueisinsertedatEHLEN
GRLEN.DX
j
whichiseartofthe
GLIN
strine
which
puts
AX,SCR
COLCr
j
the
printer
into
graphics
mode·
COLCTR-,AX
isetup
COLCTR
which
also
servesascurrent
col
DX,SCR
ROWCT
jreinitialize
ROWCTRatthe
startofeach
col
ROWCTR-,DX
CDLCTR
AH,OBH
21~
AI
1\
NOCHR
AH,a
21~
EARLY
X
CX,OFFSET
SLIN
;tell
printertoreceive
the
ne~t
SRLEN
bytes
PUTSTR
j
asagraphics
bitstream
SI,OFFSET
WORKMAP
5I;COLCTR
icalculate
locationofthe
first
byte
for
col
AH,rSI]
iget
the
byte
and
complement
.ittoavoid
AH'
i
printinganegative
of
the
picture
CX,8
ine~t
we
needtoinvert
the
bitsinthe
byte
AH,l
i
becauseweare
printing
the
picture
from
DL,l
i
righttoleft
rather
than
the
nor~al
left
FLJPIT
i
to
right
?UTBYTE
iprint
the
byte
twicetoobtain
the
proper
PUTBYTE
i
aspect
ratio
Sl,5eR_COLCT
;get
Lhe
bvte,for
the
ne~t
row
ROWeTR
irepeat
until
done
with
column
(actually
NXTBYT
j
printing8columns
at
a
time)
COLCTR,O
igo
onto
ne~t
row
unless
done
with
NXTSET
i entire
picture
CX,OFFSET
TEXTSET
PUTSTR
jres~ore
printertonormal
operation
DS
jrestore
calling
environment
PAGE
6303
SC;;:DUMP
PRDC
6303
lE
PUSH
',,","·.A
Be
"n
MOV
C~~"'I'"
~·o
6306
BE
DB
MOV
6308
r.n
J I r-n
n
MOV
D7
01\,7
r.
;
"',.,n
""M
!
"'~f"\
...
CALL
O
....:....
;t'
co
0,\1
~.
r.
630E
nn
Ii
00lC
"",
MOV
0.0
."
r,
!":i'fl'\
D1
E2
"1-4'
O\o.\.!k
;)"L
}
....
t"
nr,
"
61D6
r.
MOV
C';:'.i~
O~
10
r.
6318
Itt
001E
R
MOV
111
r
"r
~
f',
~.,
f •
..,.,
R
MOV
~~'lP
11,)
Ol!
"
'''7.~
"n
f ,
OOle
"
nxtset:
MOV
'O
...
':l::'
c.c
.l.C
r,
6322
89
I'
6171
F:
MOV
.0
6326
-...
...
,..
6173
r•
DEC
rr
'
...
1:-
r.
632A
84
t,n
MOV
VD
632C
CD
"f
INT
'::1
i"''''''
.,,,
00
eMP
o~..::.
,)\,
6330
",..
07
JE
I'!
6332
n.'
08
MOV
0.,
6334
CD
21
INT
!'?":fl
E8
."
n.,
JMP
0,\.'0
,)11
7'..1
6339
B9
61D2
n
nochr:
MOV
r.
1'7-',..
E8
,.,...,t"!
R
CALL
a,\,)\'
O,-\/k
1'q"¥P'
BE
0022
R
MOV
o~\2:r
j.,'7.P\
,t'"
36
6173
R
ADD
",
...
'''ti.
'•.1..
\
!'=t!!J
'"
24
nxtbyt:
MOV
Ch.'''tC
OM
6"""
F6
D4
NOT
~1"tO
634A
nn
0008
MOV
D7
634D
DO
E4
flipit:
SHL
l~llF"
DO
DA
RCR
O';''1F
''7£::.
E2
FA
LOOP
O.,hJl
1'7C';;'
E8
,.,...,..,.
"
CALL
O
...
:iJ
..
.t
C,'II
r.
1
'?C';
...
"
J.."'''''''
"
CALL
O~tJo
::'0
lo/\)JI
r.
!";"C'f'l
,t'"
."
001£
r.
ADD
0,),)7
'..1
...
\
.\0
r.
6350
FF
OE
6171
F:
DEC
6361
.,,,
E3
JNZ
I..J
1"'!1'1
n.,
3E
6173
R
00
CMP
O,jo,)
0,)
6368
75
84
JNE
636A
B9
61CE
.,
tset:
MOV
r.
6360
...
.,
,.,..,,,
R
CALL
r.o
O,)I\,
6370
1F
POP
''''71
".,
RET
0,),
\,,)
6"""
E8
!"7rJ\
R
earlyx:
CALL
')1'::
CI"'11
1'7''''fC'
EB
...
.,
JMF'
O~:J
r,)
j
'"'!~""'1
?UTBYTE:
:,}".\J
J
!~""'1""
B4
,alC'
MOV
ChJ/
!
'•
..J
b379
CD
21
INT
637B
".,
RET
:"",,\
i
637C
?UTSTR:
637C
".,
CE
XCHS
01
637E
n,
14
nput:
MOV
011
!
"""I)
80
FA
.....
CM?
c'"",\o""
rr
6383
74
'"
JE
vo
6385
E8
6377
R
CALL
6388
AJ
INC
'10
6389
EB
F3
JMP
63813
"r,
Fl
endstr:
MOV
OJ)
6380
C3
RET
638E
SCRDUMP
ENDP
SUB
TTL
MOVESCR--Move
picturetographics
screen
Page 84
3-1
PAGE
The
IBM
Personal
Computer
Assembler
03-22-84
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
MOVESCR--Move
picturetographics
screen
;continue
until
we've
done
every
row
+
imove
the
entire
odd
row
;setupfor
next
even
row
;move
the
entire
even
row
jsetupfor
odd
row
whichis2000H
away
\I,.."r,
lIt
Hr.
ns
;save
calling
environment
just
ES
;
in
case
this
calliscOiling
AX~CS
;
from
BASIC
DS;AX
;setupproper
data
segment
ptr
SI:0FFSET
WORK
MAP
.
imake
sure
direction
flagisforward
DI,SCREEN
START
;point
destination
register
AX~OB800H-
;
at
desired
offsetonthe
ES,AX
;
qraphics
screen
DX~SCR
ROWCr
JDX"is
settothe
nu~ber
of
rows/2
DX.l
- ;
becausewehandle
two
rowsata
time
BX;SCR
COLCT
JBXissettothe
nu~ber
of
bytes/row
CX;BX
-
;CXisthe
nu~ber
of
words
per
row CX;l MOVSW
DI,
BX
DI,20'jOH
CX,BX
CX.I
MOVSW
DI,lFBOH
DI~
BX DX NXTROW ES DS
PASE
638E
~OVESCR
PRDC
.'
":"Mr-
IE
PUSH
O",,\CC
!7tH'"
06
PUSH
J.\or
I
,,:,n.\
",o.
ron
MOV
0'1.\'7
V
0"-
L.O
6392
8E
D8
MOV
£.,n4
BE
0022
"
MOV
C,"~i't
II
,.,.f"t~
Fe
CLD
0..\7
,!
;.,.nn
.""
7.-
00lA
R
MOV
0.'70
OD
...
\t,
6:8C
""
B800
unll
co
nuv
639F
~
....
".,.,
MOV
CC
(",'..1
63Al
nr,
,/
001C
H
MOV
OD
10
1":'/\.'C
Dl
EA
SHR
O.'H.J
17l\..,
BB
,
....
001E
r,
NOV
O-lHI
• t r•
63AB
8B
,.."
nxtrow:
NOV
l.D
b3AD
Dl
E9
SHR
J"'II.~
F3f
A5
REP
C
...
\HI
63Bl
nr,
'-ll
SUB
':0
r
w
63B3
81C72000
ADD
63B7
8B
CB
MOY
63B9
Dl
E9
SHR
,
7rtT,
F3/
AC'
REP
OJD.C\
H.J
63BD81EF
lFBO
SUB
63C1
2B
FB
SUB
'7t"'.,
"
DEC
0
..
.'\.,,">
~H
J""'.
..,C'
E5
JNZ
0",\'.,,'1
!.J
63C6
07
POP
63C7
IF
PDP
63C8
C3
RET
I":"t"'n
MOYESCR
ENDP
O
...
\lt7
SUBTTL
FRAMEGRABBER
ROUTINES--gets
image
from
NicronEye
Page 85
The
IBM
Personal
Computer
Assembler
03-22-84
PAGE
4-1
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
FRAMEGRABEER
ROUTINES--gets
image
from
MicronEye
izero
keyvalue
jdisable
interrupts
during
orab
jtell
MicronEyetosend
picture
(w/o
soak)
jequate
extra
segment
and
data
segment
jifweuse
two-arrays
and
the
256x128
picture
i
we
haveasmall
problem.
The
descramble
due
j
to
topology
actsonthe
top
array
exactly
;
OPPosItetowhatweare
used
to.
So
even
j
rows
needtobe
processed
like
odd
and
j
vice·versa.
the
qUick
and
dirty
fixisto
i
scoot
the
entire
top
array
up
one
row.
;
zero
Hhi
teet
jset
direction
regtoforward
movelent
isetuptimeout
register
for
byte
receipt
iif
byte
not
available
after
15
;
checks
thenweassume
the
MicronEye
is
j
done
sending
;when
byte
has
comewepointDXto
j
DATAINand
get
the
byte
and
then
j
repaintDXat
the
status register
jput
the
byteinthe
buffer
jincreaent
whitectifhigh
bitofbyte
j
was
white
!g~.~a~~
;nd
t~y
an~
get
another
byte
,
tub
b
.he
.lffieou.
decremmter
jifwehave
timed
out
thenwecheck
and
j
seeifwe
gotasmany
bytesaswe
had
j
hopedtoget
;if
not
enough
bytes
~eceived
then
we
j
beeptoshow
our
dlSgust
jreenable
interrupts
itell
MicronEyetorefresh
w/o
send
iif
keyisavailable
from
keyboard
buffer
'j
then
get
the
key,
putinKey.value
AH,l
16H NOKEY AH,O 16H KEY
VALUE,AX
KEYCHK
AL
1
WHiTECT,
0
NFBYT RECHK AX.DI
AV'
nv
Nt.,
OIl
AX.20
tHO
B
l"l=P
1:.
••
INTDN AH,COMMAND AH',80H SENDCMD COMMAND,3FH NTA DI,MAPADR
S1,
DI SI;32 CX.2048 MOVSW KEYCHK
CX,15 AL,DX AL
1
Dt~CHK
roy
lI"
AL,DX DX
nto:
nta:
.
,
keychk:
MOV
INT
JZ
MOV INT MOV JMP
nokey:
RET
;
FF:AMESRAB
ENDP
PAGE
+
ASSUME
ES:CSES
GREYGRAB
PROC
NEAR
MOV
Dl,OFFSET
BITMAPB
MOV
BX;2
;tnis isanalternate
entry
for
the
JMP
FG2
;
framegrab
routifle
which
sends
the
image
GREYGRAB
END?
;
to
the
BITMAPS
buffer
and
uses
8REYSOAK
; ;
to
make
forashorter
than
normal
sDaktime
FRAMEGRAB
PROC
HEAR
MDV
KEY
VALUE.O
MOV
EX.
U .
CMP
PICTYPE~O
jaIl
pictures
but
pictype0framegrab
JNE
SETBMP
j
to
the
BITMAP
buffer
which
grabs
to
MOV
DI,OFFSET
WORKMAP
JMP
FG~
j
the
WORKMAP
buffer.
This
allows
the
SETBMP:
MOV
DI.OFFSET
BITMAP;
formatted
picturetoalways
endupin
fg2:
MOV
AH;COMMAND
jtell
MicronEyetosoak
w/o
send
MOV
MAPADR.DI
DR
AH.OCOH
CALL
SENDeMD
CALL
WORD
PTR
SOAKPTR[BXl
;soak
for
specified
expose
time
MOV
EX,DI
;save
start
address'ofbuffer
for
cDmpare
CALL
KEVCHK
CALL
INTDFF
MOV
AH.CDMMAND
CALL
SENDCMD
MOV
DX,STATUS
MOV
AX.
DS
MOV
ES;AX
MOV
WH!TECT,
0
CLD
nfbyt:
MOV
rechk:
IN SHL JNC
INC
IN
DEC
STOSB
SHL
ADC
JMP
dnchl::
LOOP
MOV
SUB
CMP JG CALL CALL MOV OR CALL eMP JNE MOV MOV ADD MOV REP CALL RET
''''r''n
0,;,1.,7
63C9
63CC
'-,r"'''
J,\I.,'
63D2 63D2
63D2
"..,
06
0016
R
0000
1.,;
J"'''f\
T",r,
0000
C",\ti'J.
D;:
63DB
n~
':H:.
0018
n
00
0.,)
r,
63EO
..,,,
(,1
i J
.'0
63£2
SF
0022
R
63E5
1:""
04
90
_ll
63E8
SF
28C2
R
63EB
nt.
'"
6170
R
OH
LO
l":,,r-r
89
3E
6lEA
r,
C0c.r
r.
6"n
80
"r
CO
,).
v
l..w
63Fb
I:"n
6720
n
_0
r.
I .....
r-n
rol:"
97
l(r:'
R
b':"7
••
C~
...
O
,,,,r-n
8E
DF
o
...
\rM
6,1:"1:"
E8
6464
R
6402
E8
6768
n
r.
6405
8A
26
6170
r.
r.
6409
E8
6720
R
MOe
8B
16
6164
R
6410
8C
D8
6412
BE
CO
6414
C7
06
6178
R
0000
MIA
ror
'w
641B
B9
OOOF
641E
EC
641F
DO
EO
6421
.,.,
on
t
...
\
6"""
42
.~J
b424
FI'
I:,l"
lA"C
4A
0'1';..1
6426
AA
11M
'II""
DO
EO
O.L/
6429
83
16
6178
R
00
b42E
ron
I:"n
I:.ll
_1:1
6''.n
E2
EC
'1
vv
6432
8B
C7
6434
"n
r"
LD
~b\
1••"'"/
3D
0014
01"
...
\0
1""'/"1
7F
03
0'tJ7
643B
E8
67SA
"
r.
b43E
ron
6761
"
1:.0
r.
6441
M.'
')1
6170
r,
OM
..0
r.
6445
80
"",
80
l..l..
6448
ron
6720
R
co
I i
..
~r,
80
~.
bPI)
R
3F
o't'tl)
J.
./v
6450
75
DE
6452
8B
3E
61EA
R
b456
8E
F7
6458
83
C6
20
645B
B9
0800
64SE
l=~
I
A"
1 ....
\/
.oJ
6460
ES
6464
R
'f-'"
C3
c.OJ
6464
B4
01
6466
CD
16
64687409
~
646A
B4
00
646C
CD
16
6"1"
.
.,
0016
R
'101:
H,)
6471
EE
ro.
.1
6473
,,"'
l..,)
6474
SUBTTL
EXPANSION
ROUTINE
for
512x64
picture
Page 86
The
IBM
Personal
Computer
Assembler
03-22-84
PAGE
4-2.
MJCRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
EXPANSION
ROUTINE
for
512x64
picture
AX.DS
ES;AX
DI~OFFSET
WDRKMAP
SI,DFFSET
BITMAP
BX;
TDTBYTES
;doawordata
time
to
BX.1
j .
speed
thi
ngs
up
WORDCT,BX
;spread
out
byte
4x
isetupbit ctr!2bits/pass) ithis
stretches
the
iffia~e
fro!·
a
i
128
x
64
imagetoa
~12
x
64
image
;
which
goesalong
waytocorrect
the
i
aspect
ratio.
ES
nbitc WORDCT NWORDC
AL,AH DX,AX
cx;a
BX,O
1'\v· 1
lJ/l,
..
BX;1
DX;1 BX,1
AL;CPAHBXJ
NEAR
.."
1:0
PAGE
SMOOTHB
F'ROC
PUSH.
PUSHF
CLD
MOV
MOV
MOl,}
MDV
MOV SHR MOV
nf/ordc:
LODSW
XCH6 MOV MOV
nbi
tc:
MOV
SHL RCL
SHL RCL
MOV STOSB
LOOP DEC
JNZ
POPF
POP
RET
SMOOTHB
ENDP SUB
TTL
ENHANCE
ROUTINE
for
512x128
picture
6474
6474
06
l!""Te
n,..
O~:.J
7~
J
!l~'
1='''
0';10
,"
6477BeDB
6479BECO
647BBF0022
R
647£BE28C2
H
6481BB1E
617A
R
6485D1EB
64B789IE
6176
R
648B
AD
M8C86C4
648E8BDO
6490B90008
6493
BoB
0000
6496D1E2
6498
D1
D3
649AD1E2
649CD1D3
649ESA87
61C5
R
64A2
AA
64A3£2EE
64A5FFOE
6176
R
64A975EO
641\B
9D
64AC
07
64AD
C3
64AE
Page 87
PAGE
The
IBM
Personal
Computer
Assembler
03-22-84
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
ENHANCE
ROUTINE
for
512
x
4-3
128
picture
NEAR
;this routine
takes
the
256x128
image
from
;
the
MicronEye
and
convertsittoa512
x
CLEARW
;
128
i:l':age
rllth
properly
placed
pixels.
SI,OFFSET
BITMAP;zero
out
WORKMAP
buffer,
DointSI(source
DI,OF.FSET
WORKMAP
;index)tothe
256x128'
array,
andDIto
AX.SCR
ROWer
;
the
512x128
array
AX;1
- jsetuprowctrtobe
half
the
number
of
~ows
RDWCTR.AX;becauseweprocessinEven/odd
raw
paIrs
COLCTR;32
;set
tiD
colctrto32
bvtes/rowtodo
even
row
.
;get
byte
from
source
and
increment
source
idx
BX.O
izeraBXand
DX--BXwill
catch
the
odd
bits
OX;
BX
;
andOXwi11catch
the
even
bits
AL;
1 ;
shifthi
gh-orderbit (7) i
ilto
BX BX;l AL,l
;shift bit 6
into
OX
DX;l CX;3
isetupto
shift
other
6 bits-- 3
odd,3even
!il/.rw
0'111::
64AE
/!l{\r'"
C"tHr
6482
/ A r,1:
0'!l).J
64B8
,
.4"'di
O'!t·l)
64BD
64CO 64C6 64C7
64CA
64CC b4CE 64DO
b
Jn
?
b4D4
64D7 64D7 64D9
MDB
64DD 64DF
64El
64E3
64E5
ME7
64E9
64EB
64ED MEF
64F1
64F3
64F5
MF8 MFB
64FF
6501 6507 6508 650B
650D 650F
I&:'4
t
O.Jll
Ie"·'"
C~J.")
6515
!t:'u',
O,J!O
6518
651A
651C
6e:n:
6520
6522 6524
6526 6528
652A
652C
652E
6530
6532
.fe''']'!
C"hJ~
6536
6537
~
6539
653B
653D
.1'='"11""
Ol>l
...
\f"
6542
6545
6546 6548
654A
654D
6550 6554
6556
I!':g"!\
(l,J.J11
Fe
,-n
I
C','~
I"'l
:::'0
O.JHJ
r.
BE
28C2
R
SF
0022
R
Ai
00lC
R
Dl
E8
A3
6171
R
C7066173R0020
,
...
,...
HL.
BB
0000
as
D3
DO
EO
Dl
D3
DO
EO
D1
D2
B9
0003
D
1
~.,.
.
~,)
ft.
i"""
1I!
::,)
01
E3
DO
EO
01
D3
Dl
£2
Dl
E2
Dl
E2
DO
EO
Dl
D2
l""F\
~J\
::..: ~M
D1
E2
36
F2
86
FB
09
15
095D40
n,\
r7
(J'1
c""
....
,
",.i-
FFOE6173
R
75
C5 C7066173R0020 AC
aa
0000
8B
D3 DO
EO
Dl
D3 DO
EO
Dl
D2
B9
0003
D1
E3
D1
E3
D1
E3
DO
EO
D1
D3
D1
E2
D1
E2
Dl
E2
DO
EO
D1
02
E2
Eli
D
1 l:""
.
~,)
D1
E3 D1
E3
01
EA
9F
01
EA 86
F2
86
F8
09
ID
095540
8B
0000
9E
Dl
DB
Dl
EB
087D42 83C702
FF
OE
6173
R
"'if::
1"'11
f,J
o.
FFOE6171
R
75
44
r"fft/'\I""
rHO::
ENHANCE
PROC
CLD
CALL
MOV
MOV
MOl)
1"\1
Hi
on:"
NOV
newrDW:
MOV
eVfOW:
LDDSB
MOV
MOV SHL RCL SHL RCL MOV
nevbyt:
SHL SHL SHL
"'HI
::1m.
RCL SHL
SHL
SHL
SHL
RCL
LOOP
SHL XCHS XCHG OR OR
ADD
DEC
JNZ
MOV
oddrow:
LODSB
MOV
MOV
SHL RCL SHL RCL
MOV
nodbyt:
SHL
SHL
SHL
SHL
RCL SHL
SHL
SHL
SHL
RCL
LOOP
SHL
SHL
SHL
SHR
LAHF
SHR
XCHG XCH6 OR
OR
MOV
SAHF
RCR
SHR
OR
ADD
DEC
JNZ
DEC
JNZ
BX.l BX;
1
BX.l
ALI
BX;l OX;l
DX;l
DX;l AL.l
DX;1 NEVBn DX
1
DH:DL BH;BL
[DD,
DX
64[OlJ
BX
D1,2
'
COLCTR
EVROW
COLCTR,32 BX,O
DX,BX
AL;l BX,l AL,1
DX;l
CX;3
BX,l
BX;l
BX,l
AL,1 BX.1 OX;1
DX;l
DX,l AL;l DX,1 NOnBYT
BX,l
BX.l
BX;1
DX,l
OX.l
DH;OL
BH,BL
[DlJ,BX
64[D!J,
DX
BX,O EX,l
llY' 1
...·uq.4
66tDIJ.BH
D!,2.
COLCTR
ODDROW
RoweTR
NEWRWJ
ithe
even
bitsgointo
theBXregister
such
i
that
the
final
bit
pattern
is:
i
OOOxOOOxOOOxOOOx
where
the
x's
correspond
to
i 7 5 3 1 bit
positions.
;
;the
odd
bitsgointo
theDXregister
such
;
that
the
final
bit
pattern
is:
;
OOxOOOxOOOxOOOxO
; 6 4 2 0 bit
positions
; ;
;afterweflip
ser.onBX
andDXto
get
bytes
in
;
proper
order,weOR
the
pattern
with
,he
; bits
alreadyatthe
destlnationofthe
two
;
words.
; .
iafter
completing
the
even
rowwego
onto
;
the
next
row
whichisan
odd
row
iwe
get
the
byte
and
setuptheBXand
DX
; registersasbefore.
This
ti~e
however
;
we
are
~oing
to
use
a slightly different
; bit
pat,erntoget
things
into
their
proper
places
;theBXreQister
should
endupwith
the
;
following
bit pattern:
i
xOOOxOOOxOOOxOOO
j 7
531
itheDXregister
should
endupwith
the
;
following
bit pattern:
i
OOOOOxOOuxOOOxOO
OxOO
; 6 4 2 0
;since
not
all
the
pattern
fits
intoDXwe
do
;
sOle
fancy
footwork
;the
net
resultofallofthis is
that
we
;
have
some
bit
patterns
that
can
nowbeput
i
into
the
output
array.
iyou
can
see
that
afterwehave
done
this
for
;
every
rowinthe
array,
1/2
the
bitsinthe
;
512x128
array
(except
for
someofthe
edge
;
pixels)
willbefilledin•
iThisisthe
fill-in
algorithm
mentioned
j
in
the
manual.
There
are
probably
other
Page 88
4-4
The
IBM
Personal
Computer
Assembler
03-22-84
M1CRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
ENHANCE
ROUTINE
for
512x128
picture
655C
C7
06
61B8
H
6666
FILL!N:
MDV
!r::lt""t
...
,...
0022
F:
MOV
0..:0":
Dr
felCO
BE
l)O20
filn:
MOl)
c~o'"'
6568
",.,
05
fi 1
p;
MOV
OD
656A
88
9D
0080
MOV
fe'r,-
...
,.,
.,.,
40
MOV
o~oc
CD
'lJJ
.'r:"'Tt
BE
D1
MOV
Ct.!.!
l
.'1:'~7
D1
El
"~I
0..;/
...
\
O
..
~
6575
D1
EA
SHF:
jC''''1~
OB-
,"",
OR
J..
l!
.:
L.H
,e.,.n
88
D1
MDV
O":i7
657B.
23
DO
AND
657D
...
.,
".,
AND
k'-'
I...:
657F
...
.,
eB
AND
..:..:
6581
OB
Cl
OR
6583
OS
""1
OR
I.":
I
cone
...
.,
06
61B8
F:
AND
O.JctJ
..:,)
6589
09
45
40
OR
658C
n.,
".,
02
ADD
0,)
1,1
658F
4E
DEC
6590
.,~
D6
JNZ
I..:
6592
B8
FFFF
MOV
6595
."
06
/
4nn
R
XOR
-'j
OjDO
6599
81
FF
IFC2
n
CMP
r,
659D
7C
r'
JL
wO
659F
C3
RET
65AO
E9
64CO
R
NEWRWJ:
JMP
Ie,.,.,
ENHANCE
ENDP
0":11')
;
65A3
CLEARW
PROC
65A3
HI:"
0022
,.,
MOV
r.
65A6
EB0490
JMP
65A9
SF
""Q"''''
R
CLEARS:
MOV
":w\''':
65AC
FC
cw:
CLD
65AD
nT',
OE
1)014
R
MOl}
0.0
!1:''''1
D1
E9
SHR
O":D.
65B3
8C
D8
MOV
6585
8E
CO
NOV
65B7
B8
0000
NOV
658A
F3/
AB
REP
65BC
r"
RET
w,)
658D
CLEARW
ENDP
SUBHL
PAT,6666H
;
approaches
towards
creatin9a512x128
DI.OFFSET
WORKMAP;array
form
the
256x128
Imaqe
fro~
the
SI~32
;
Mic:roneye.
.
l,y
rnl'
Hllt1.JJ.£,J
BX;
128[DIJ eX;64[D1J DX;eX eX;l
OX'
1
""'''X
l.d"U
I
OX;
ex
DX,AX AX;BX CX,BX AX;CX
AX.DX
AX;PAT 64tDIJ,AX DI,2 SI
"1
AX.~FFFFH
PA'r,AX DI.a096+0FFSET
WORKMAP
filn
NHlROW
NEAR
ithe
CLEARW
routine
zeroes
the
WORKMAP
buffer
DI,OFFSET
WORKMAP
.
CWo
ithe
CLEARG
routine
zeroes
the
BITMAP
buffer
DI,OFFSET
BITMAP
inote
that
onlyanarea
corresponding
CX,MAPBYTESiin
size
to,fhe
current
picture
type'
CX,l
j
iscleared
AX~DS
;setuptheESregistertopointtothe
ES.AX
i
data
segment
AX'Q
iselect
the
valuetobe
reflicated
thru
mef.Dry
STOSW
ithis
command
singlehandedyzeroes
the
desired
;
memory
area
GREY
ADD
ROUTINE
for
512x64
i~age
Page 89
4-5
PASE
The
IBM
Personal
Computer
Assembler
03-22-84
MICRONEYE
ASSEMBLER
ROUTINES
{MEYEDRVRl
SREYADO
ROUTINE
for
512Yo64
image
jsetupcountofwordstobe
~rocessed
tiEAR
;setuploop
ctr,wede
2 bits
per
pass
;word
from
first
imageinAX
(OFFSET
BITMAPB-OFFSET
BITMAP)[SIJ
;corresponding
word
frow
second
image
in
DX
;realign
byte
sex
for
proper
shifting
JBXisgoingtobe
builtupto
contaIn
a
;
~tr
to
the
proper
patterntorepresent
j • setsof4-bit
black,
white,orprey
blobs
j
dependingonthe
valuesofcorresponding
;
pixelsinthe
two
iIDages
jthlSisdonebyshiftino a
pixel
outAXand
;
DX
and
puttino
the
su~
inDXcreating
the
; first 4-bit
bfob's
ptr
(O=black,
l=grev,
;
2=white);weshift
the
su~
over
two
bits,
;
take
the
next
pixel
out
ofAXand
DX,
sum
;
them
and
put
tnat
suminBXaswell
jthe
result is a
ptr
into
DPAT
that
will
return
a
double
blob
thatisthen
put
into
the
destination
buffer
65BD
65BD
FC
653EBE28C2
F:
b~C
1 .
F.F
(1(122
R
·65C4SBlE
617A
R
65C8DlEB
65CA89lE
6176
R
65eE390008
65D18304
65D3SB94
2SAO
65D7
86
C4
65D9
Sb
Db
65DBBE0000
65D£DlEO
65EO
80
03 00
65E3
01
E2
65E580D3
00
65E8D1E3
65EA01E3
b5ECD1EO
65EE80D3·00
65F
1
01
E2
65F380D3
rj(l
65F6SABF
blBA
R 65FA883D 65FC
47
65FDE2DC
65FF83C6
02
6602FFOE
6176
R
6606
75
C6
6608
C3
6609
PAGE
GREY
ADD
PHOC
CLD
MOV
MOl,)
MOV
SHR
MOV
nword:
MOV
MOV
MOV
XCHG XCHS
nbitd:
NOV
SHL
ADC
SHL
ADC SHL SHL SHL ADC SHL ADC
MOV NOV
INC LOOP
ADD
DEC JNZ RET
GREY
ADD
ENDP
;set
forward
direction
SI,OFFSET
BITMAP
juse
BITMAP
as
source
and
WORKMAP
as
DI.OFFSET
WORKMAP
ithe
destination
BX;
TOTBYTES
QV
.
~
.,I..l
WORDCT,BX
r
v
"
...
'1'1,0
Ax~tS!}
OX;WORD
PTR
"I .
li~
H",
1
,",
DLDH
BX;O
AX.l
BL
o
0
oDX;
1
BL;O
BX,l BX.l
AX~l
BL;O
DX.l
BL;O
BH.
DPAHBXJ
[Dll.
BH
n'
0
w!
NBITD
S1
?
WO~:DcT
t~WORD
SUBTTL
FILLIN
ROUTINE
FOR
640x128
picture
Page 90
The
IBM
Personal
Computer
Assembler
03-22-84
PAGE
4-6
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEORVR)
FILLIN
ROUTINE
FOR
640
x
128
picture
itodothe
fillinwelookatthe
bytes
one
row
back,
one
ro~
forward,
and
the
bit
to
the
sideofeach
'hole'.
;whenwework
with
the
odd
rowswedo
exactly
row
back,
one
row
forward,
and
the
bit to'
;
the
sideofeach
'hole'.
NEAR
Sl,OFFSE1
WORKMA?
BX;SCR
ROWCT
jas
discussednthe
topology
section
and
ax:
1 - j
efsewhere,he256};128
array
needs
to
ROWCTR,BX';be
descrambedand
filled
in.
This
takes
DX,SCR'COLCT;careofthe
fillin
when
expanding
the
DX,l
-
256x128to1024x128
(c:1
ioped
to
COLCTR,DX
640
x
128
becauseofscreen
limitations.
D1.DX'
AX~
LSI)
BX;
SO(S!]
ex;BX BX;1
BX,1
CX;
1
ex;
1
BX'
CX
ex:
160(S1]
OX;CX
CX;AY.
AX;BX
BX;DX
AX,BX
AX,Cy'
AX,3C3CH
80tSIJ,AX
SI
2 .
DI'
NEBYT
DI,COLCTR
AX;
fSIJ
BX,80(S1] BH;BL
CX,BX
BX,1 aX;1
CX,1
CX,1
BX,CX BH,SL
CX~160[SI]
OX,CX
CX,AX
AX,BY.
BX,DX
AX,BY.
AX',
CX
AX,OC3C3H
BOtSIJ,AX
SI,2
01
NOSH DI,COLCTR
ROWCTR
NEBYT
PAGE
F!LL!N2
PRDC
MOV
MOV SHF:
NOV
MOV
f"\11r.
;mr,
NOV
MOV
nebyt:
MOV
MOY
NOV
SHL
SHL
SHF: SHR OR
tiOV
MOV AND AND AND OR
OR
AND OR ADD DEC
JNl
MOV
nobyt:
MOV
MOV
XCHG
MOV
SHL SHL SHR SHR
OR XCHS
MOV
MOV
AHD
AND
AND OR OR ANO OR
ADD
DEC
Jill
MOV
DEC
JNl
RET
FILL!N2
ENDP SUBTTL
ENHANCE
ROUTINE
for
640
x
128
picture
6609
oc09BE0022
R
b60e8BlE
001C
R
6610D1EB
661289IE
6171
R
66169B16
001E
R
661
A D1
EA
b61C8916
6173
R
6620SEFA
6622
.8B
04
66248B5[:
50
6627BBCB
6629
D1
E3
662B
D1
E3
6620
01
E9
662FD1E9
6631
OB
D9
663388Be
OOAO
;
1"1""7
nr.
n.f
CO.,) 1
0.0
llJ
l,"'n
,,,.,,,,n
00_'7
.:J
(,0
663B23C3
663D23DA
b63FOBC3
6Ml
OB
Cl
6643253C3C
6M6
094450
664983C6
02
664C
4F
66407503
664Fas3E
6173
R
,"CO'" nf"l
ttA
OO,lJ
OC
'J't
6655SE5C
50
6658
86
FB
665A8BCB
665C
Dl
E3
665EDl£3
6660D1E9
6662DlE9
6664
OB
09
666686FB
66688B8C
OOAO
666C8BDl
666E
23
C8
667023C3
6612
23
DA 6674OBC3 6676
OB
Cl
667825C3C3
b67B
09
44
50
667E83C6
02
6681
4F
663275CF
66848S3E
6173
R
6688
FFOE6171
R
668C
75
94
66SE
C3
668F
Page 91
The
IBM
Persunal
CumPuter
Assembler
03-22-84
PAGE
4-7
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
ENHANCE
ROUTINE
fur
640x128
picture
PAGE
668F
ENHANCES
pr'flr
NEAR
• l\ww
668F
,.."
fC'An
"
CALL
CLEARS
co
0.JM1
r,
6692
BE
C41l"\
R
MOV
SI,OFFSET
BITMAPS
.J'O"
I I
nco
SF
'inf"l"'l
r.
MOV
DT'm;~~n
BITMAP
OC7~
"Oi-':
r.
6698
EB
r,A
90
JMP
Et~tR~{B
w~,
'JM
669B
ENHANCEG
ENDP
;
bb9B
ENHANCE2
PROC
NEAR
669B
E8
65A3
F:
CALL
CLEARW
669E
r.~
28C2
R
MOV
SI.OFFSET
BITMAP
o~
i1/'."
...
~
0022
"
MOV
DI;OFFSET
WORKMAP
OOMJ
D.
r,
6bM
ENTRYB:
66A4
FC
CLD
6bA5
8B
IE
001C
R
MOV
BX.SCR
ROWCT
66A9
Dl
EB
SHR
BX;
1 -
b6AB
B2
01\
110V
DL~10
66AD
8A
F2
nrow2:
MOV
DH,DL
b6AF
AD
nbe2:
LDDSW
6bBO
86
C4
XCHG
AL,AH
66B2
89
0008
MOV
CX,8
!lnl:"
Dl
EO
nxt2:
SHL
AX.!
cO!:'.J
66B7
..,..,
04
JNC
NotA
loJ
ME9
80
4D
50
1\'"
OR
BYTE
PTR
80[DIJ,3
,oJ
6bBD
Dl
EO
nota:
SHL
AX.l
66BF
73
l'.~
JNC
NOeB
'.,.1",'
"('\"
80
OD
OC
OR
BYTE
PTR
[DIJ,OCH
oc:.,
66C4
47
nocb:
INC
DI
66C5
E2
EE
LOOP
NXT2
llf'1,
FE
CE
DEC
DH
00:'1
66C9
75
E4
JNZ
NBE2
66CB
8A
F2
NOV
DH.DL
6.!.rn
83
e6
(lC
ADD
SI~12
;skip
to
start
uf
next
row
66LO
.,
...
nb02:
LoDSW
HlJ
66Dl
86
C4
XCHS
ALAH
66D3
r,q
0008
MOV
CX;8
1:'.
66D6
Dl
EO
nxt3:
SHL
AX~l
66D8
..,..,
03
JNC
NOeC
loJ
6bDA
80
OD
CO
DR
BYTE
PTR
[DIJ,OCOH
bbDD
Dl
EO
noee:
SHL
AX.l
66DF
7'"
04
JNC
NotD
,oJ
66El
804D51
30
DR
BY·TE
PTR
8HDIJ,30H
bbE5
47
noed:
INC
DI
!
!f"'1
E2
EE
LOOP
NXT3
oor.o
beE8
FE
CE
DEC
DH
66EA
~"
E4
JNZ
NB02
I.J
66£C
~F
C6
OC
ADD
51,12
woJ
6'''~
4B
DEC
BX
cr..
6bFO75BB
JNZ
NROW2
bbF2
r"
RET
woJ
11):''''
ENHANCE2
END?
co.
oJ
SUBHL
6REYADD
ROUTINE
for
640
x
1""
picture
_':0
Page 92
The
IBM
Personal
Computer
Assembler
03-22-84
PAGE
4-8
MICRONEYE
ASSEMBLER
ROUTINES
IMEYEDRVR)
GREYADD
ROUTINE
for
640x128
picture
;
GREYSOAK
PROC
NEAR
DOS
calltosound
bell
;enable
kbd/timer.interrupts
BX
CX,rD!J
AX,5555H
CX;OAAAAH
AX,CX
NEAR AL,21H
AL.
OFCH
21k,AL
CXl.EXPOSE
TIME
NG;jOAK
-
CX
f'IV ,,"?
1,dl4
J.i..
",,"
0"::
CX
G1
AL
AH
;setupcommand
DX;DATAOUT
DX,AL
;send
camera
command
AX,D5
:this
routineisverv
sirnDlistic
ES;AX
;we
takes
the
images'producedbythe
two
Sj.OFF~ET
BITMAP;
different
exposure
times
and
alternately
D!~OFFSET
WORKMAP;
use
the
bits
from
one
image
with
the
BX~MAPBYTES
bits
from
the
other
i~age
aX,!
NEAR DX,CONTROL
AL"
OCOH
;send
master
resettocamera
DX:AL
AL;28H
;send
camera
protocol
of
DX,AL
; 1 start, 8
data,1stop
bits
NEAR
CXhEXPOSE
TIME
;soaktime=number
Jiisec
delay
NOoOAK
-
CX
CI,262
;setuploop
for1mSEC
52
ex
S1
NEAR
AH,2
DL",7
21H
NEAR
.
CX,
1000
DX,STATUS
AL,DX
;get
statusofcamera
AL,40H
;see
if
co~=and
canbesent
sol:
scmd
;loo~
until
readyDrtimeout
BEEP
PAGE
GREYADD2
PROC
NEAR CLD MOV
HOV
MOV
MOt)
MO',!
"I!Q:
;:)J'111
nqrey:
LODSW
MOV
~ND
AND
OR
STOS!'!
DEC
JNZ
RET
GREYADD2
ENDP
51:
MOV
JCXZ
Gl:
PUSH MOl}
G2:
LOOP POP LOOP
ngsoak:
RET
GREYSOAK
ENDP
.
!
BEEP
PROC MOV MOl)
INT
RET
BEEP
ENDP
;
HHGN
PROe
IN
AND
OUT
RET
INTON
ENDP
.
l
SOAK
PROe
MOV
JCXZ
PUSH
HOV
LOOP
POP
LOOP
NOSOAK:
RET
SOAK
ENDP
i
ACIACLF:
PROC MOV MOV OUT MOV OUT
RET
ACIACLR
ENDP
;
SENDCMD
PROC MOV
scmd:
MOV
IN TEST
JNZ
LOOP CALL RET
sok:
MOV HOV OUT RET
SENDCMD
ENDP
66F3
i I"''''
...
"
ocr..\
tL,
-'
,,...,
""
:i8
oor~
01.-
66F6
QJ:'
CO
\.i~
6bF8
r,'"
28C2
~:
z\c
J
.'ron
"
...
:"
...•
,""1..,
R
oorD
~r
'~!t~""k
66FE
BE
lE
(}l)14
~:
f
...,.\~
D1
..."
0/'-'1.
:.c
6704
~D
67:)5
:"r.
OD
CD
t
;f\,
25
5555
OiVI
670A
81
El
AAAA
670E
OB
"I
1.-.
6710
AB
""1
'
4B
01.1
6
71
'
.,c-
FO
loJ
6714
".,
L"
..\
J"7tC'
Oil,;
6715
''''41::'
8B
"
It
!I"\
R
OlloJ
10
010..::
6719
BO
CO
671B
......
et.
b71C
BO
""
"'0
b7lE
......
1:1:
671F
C3
6720 6720
6720
B9
03E8
:...,.,.,
8E
16
! t
'A
F:
Oii.,)
010~
6i27
EC
6"""
,."
40
1"::0
HO
;"'1'1"'\/\
"'c-
Ob
~J.Lr',
foJ
li"r
E2
F5
Ol"::w
J
,rH-
E8
675A
R
Of"::l:
6731
".,
1.-,)
!""~l"'\
8A
C4
OJJi.
J.,,""'''
8B166168
c,
~/
..
\'t
r.
J
T'1i''1
EE
0,,,)0
6'1"0
C3
,oj,
:,7A
01,)11
673A
'''''7''
8B
OE
616C
R
OJ
....
\H
673EE309
;."flo
51
O/~
..
l
6741B90106
6744
E"
FE
..::
'"7JI
59
O/AtO
6
7
'7
E2
F7
,~,
6749
r<
w_'
674A
674A
674A
8B
OE
616C
F:
6"'r:
...
.,
09
1'1~
c,)
6750
51
6751
B9
(lODE
6754
E2
FE
6756
c-"
oJ7
6757
E2
r:"
, I
6759
".,
1.-,)
675A
675A
675A
B4
02
l7c:;r
""
:)7
O,ww
z.t.
""c-r:
CD
21
OloJ~
6760
C3
6761
J..7J...t
w,wl
6'"
E4
21
101
6.,17
24
Fe
fO,)
6765
E6
21
6767
C3
6768
Page 93
The
IBM
Personal
Computer
Assembler
03-22-84
PAGE
4-9
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
GREY
ADD
ROUTINE
for
640x128
picture
i~!r"
,....,.
OJ 0:::
~,)
67bF
!"'f!n
OiOO
6768
676A
67bC
!""l
l"\t
:::'1
';;1
OC
03
E6
21
.
,
INTOFF
PROC
IN
OR
OUT
RET
INTOFF
ENDP
NEAF:
"1
"HI
H",~",,,"
"1
7
H
...
i
,.\
21H,AL
idisable
kbd/timer
interrupts
b76F
.
;
CSEG
ENDS
END
Page 94
The
IBN
Personal
COj]puter
Assembler
03-22-84
PAGE
Symools-l
MICHONEYE
ASSEMBLER
ROUTINES
(MEYEDRVR)
Segments
-
-"
grDupE-:
dIll!
N a me
~lze
align
cOmhine
c1
ass
C""'"
o76F
PARA
PUBLIC
~~o
.'
.
Symbol
s:
N a
ill
e
Type
Value
AUr
AC!ACLH.
"
,.,r.nr
'''''' r
r"""'''''
Length
=OOOB
·
il
rnuw
01•.J
\J:Jt.o
.\I"",lil,V""j
L
WORD
0020
CSEG
Hflr,H
It,
••
BEE?
I'
PROC
"rA
CSEG
Length
=0007
·
II
01.J11
r'TTrT
L
BYTE
6175
CSEG
0••w
••
·
BITMAP
·
··
L
BYTE
28C2
CSEG
Length
=28AO
BITMAPB.
,
BYTE
5162
CSEG
Length
=1000
·
L.
BYTES
Thn
L
WORD
61AO
CSEG
IHD.
·
CLEARG
L
NEAR
65A9
CSEG
CLEARW
·
·
N
PROC
65A3
CSEG
Length
=OOIA
eND
TAB.
·
L
WORD
61AC
CSEG
COLCTF:
·
·
L
WORD
6173
CSEG
COLCT
TAB.
·
L
WORD
6194
CSEG
COMMAND.
L
BYTE
6170
CSEG
CONTROL.
L
WORD
6162
CSEG
CPAT
·
L
BYTE
61C5
CSEG
CW
·
L
NEAR
65AC
CSEG
OATAIN
L
WORD
'ill
CSEG
·
0.00
DATAOUT.
·
L
WORD
6168
CSEG
DNCHK.
···
·
L
NEAR
6430
CSEG
DONE
L
NEAR
6"""
CSES
·
··
··
';';'1
DPAT
···
L
BYTE
61BA
CSEG
EARLY
X
L
NEAR
1-,:.,1'1
CSEG
· ····
OoJI';
ENDSTR
· ······
L
NEAR
638B
CSEB
EiiHANCE.
·· ··
·
N
PROC
MAE
CSEG
Length
=00F5
ENHANCE2
···
·
·
N
PROC
669B
CSEG
Length
=0058
ENHANCES
· ·
····
I'
PROC
668F
CSEG
Length
=OOOC
· ·..··
·
.1
ENTRYB
········
·
·
··
·
L
NEAR
66A4
CSEG
EVROW.
·
···
L
NEAR
64C6
CSEG
EXITEOF.
·.
L
WORD
616A
CSEG
EXPOSE
-
TIME.
·
L
WORD
616C
CSEG
FG2.
··
L
NEAR
63EB
CSEG
FILL!N
·
L
NEAR
655C
CSEG
FILLIN2.
N
PROC
6609
CSEG
Length
=0086
F!LN
·
L
NEAR
6565
CSEG
F!LP
··
L
NEAR
6568
CSEG
FLIPIT
L
NEAR
6340
CSEG
FRANEGRAB.
N
PROC
63D2
CSEG
Length
=00A2
Gl
.
·
·
·· ··
L
NEAR
6750
CSEG
""
L
NEAR
6754
CSEG
0':'
· ·····
GETPIC
·
··
·····
N
PROC
61EC
CSEG
Length
=0082
GETPICT.
·
F
PROC
0000
CSEG
Length
=0006
GLIN
·.
··
·····
L
BYTE
61D2
CSEG
GPIC
X. •
L
NEAR
0003
CSEG
GREYAOD.,
N
PROC
65BD
CSEG
Length
=004C
GREYAD02
·
·
'.
·
·
·
N
PROC
66F3
CSEG
Length
=0022
GREYGRAB
···
N
PROC
63C9
CSEG
Length
=0009
G"·~vt:n'·l(
N
PROC
674A
CSEG
Length
=0010
r'&a'
wwt1,\
···
GRLEN.
·
L
WORD
61D6
CSEG
GRSETUP.
L
BYTE
61C9
CSEG
INTOFF
"
PROC
6768
CSEE
Length
=0007
·
··
n
INTON.
·
··
N
PROC
6761
CSEG
Length
=0007
KEYCHK
·.
·
L
NEAR
6464
CSEG
llr""V
VALUE.
L
WORD
0016
CSEG
M::
·
·
·
··
MAPADR
·
··
L
WORD
61EA
CSEG
MAPBYTES
·
L
WORD
0014
CSEG
MOVESCR.
····
·
N
PROC
638E
CSEG
Length
=003B
NB02
· ·
·
·
L
NEAR
66DO
CSEG
NBE2
· ···
·
L
NEAR
66AF
Ct:~~
w~w
NBITC.
·
··
L
"'~An
6493
CSEG
· ·
·
·
fl~l1r,
NBITD.
·
L
NEAR
65DB
CSEG
NEBYT.
L
NEAR
6622
CSES
NEVBYT
L
NEAR
64D7
CSEG
1r.1~1.Ir.nIJ
L
NEAR
64CO
CSEG
Il~l'In\'1'l
·
NEWRWJ
·
L
NEAR
65AO
j"~~1"
ww~1J
NFBYT.
L
NEAR
6418
,..,.,.r,..
·
\.,~t.\J
NGREY.
·
··
L
NEAR
67(14
CSEG
NGSOAK
,
NEAR
6759
CSEG
·
····
·
L.
tlO2ARF:AY
···
L
NEAR
62F2
CSEG
NOBYT.
L
NEAR
6":'1
CSEG
·
·
O.JoJ
Page 95
The
IBM
Personal
Computer
Assemhler
03-22-84
PASE
Symbols-2
MICRONEYE
ASSEMBLER
ROUTINES
(MEYEDRVRl
NOCA
L
NEAP.
66BD
CC:~r.:
w_w
tJnr
1i
L
NEAR
66C4
CSES
II
bI
biD
NOCC
I
'.!"'!\
:~,
b6DD
CSEG
L.
;'1~lil"\
Ul"\f\T".
L
NEAr:
lir-c:
CSES
aU~i:
00::''':
NOCHF:.
··
L
NEAR
6339
CSEG
NODBYT
·
L
NEAR
6518
CSEG
NDKEY.
L
NEAF:
6473
CSES
~lt'"'i""\"i\V
L
NEAF:
6749
[SEG
i\U;:;Ul'lf,
NOTWD.
L
NEAR
629B
CSEG
NPUT
L
NEAR
,,,:,,.,..
CSEG
·
O";I/t:,
NF:Di129
L
NEAR
i.'iln
CSEB
wO
..
w
~lT'"
L
NEAR
6460
CSEG
i1lli.
·
NTC.
L
NEAR
l.l171:
CSEG
·
0 • ..:_
NWORD.
·
L
NEAR
65eE
CSEG
NWORDC
L
NEAR
648B
eSEG
NH2
·
L
NEAR
66B5
CSEG
NXT3
··
···
,
L
NEAR
66D6
CSEG
uVTn"T
L
NEAR
6346
eSES
l'tA:O:
,
·
NXTROW
·
L
NEAR
63AB
CSES
NXTSET
·
L
NEAR
631E
CSEG
GDDRDW
·
····
·
L
NEAR
6507
CSES
PARMClC.
·
F
PROC
0006
CSEG
Length
=0006
PARM
-
X
·····
L
NEAR
0009
CSES
PAT.
·
·····
·
L
WORD
61B8
CSEG
peALC.
N
PROC
626E
CSES
Length
=0095
PIC.
··
···
·
L
WORD
61DA
CSES
PICA
··
···
·
L
NEAR
6246
eSES
PICa
··
L
NEAR
6247
CSES
PIce
···
·
··
··
·
L
NEAR
624A
eSES
"lrn
L
NEAR
6253
CSES
r
.ww
PICnUMP.
F
PROC
OOOC
eSES
Length
=0004
PICE
···
L
NEAR
6256
eSES
PICr
..
L
"I:'~
625C
CSES
"_11
..
FllrTVP~
I
WORD
0018
CSES
r
blJII'
....
·
L.
PUTBYTE.
L
NEAR
''''''7
CSES
·
0,)1.
PUTSTR
··
L
NEAR
637C
eSES
RECHK,
·
L
NEAR
641E
CSEG
RESTART.
·
L
NEAR
6205
CSES
ROWeTR
·.
··,·
, ,
·
····
L
WORD
6171
CSES
ROWCT
TAB.
····
,
·
·
····
L
WORD
618B
eSES
Rowok~
·
·····
·
·
·
···
L
NEAR
62E9
CSES
'"
L
NEAR
6740
CSES
;)1
.
···
S2
.
·
·······
···
·
L
NEAR
6744
CSES
SCMD
·.
·
L
NEAR
6723
CSES
SCHDU!'!P.
··
N
PROC
6303
CSEG
Length
=008B
"r~'~~M
"'TA~T
L
i:lORD
001A
CSES
.')
....
'\0
.•
_'1
:Jt'"11
··
C;"'FlH'~!I
F
PROC
0010
CSEG
Length
=0004
~L,r
....
_",
·
SCF:
COLCTo
··
L
WORD
001E
CSEG
SCR-ROWCT.
·····
·
L
WORD
001C
CSES
SENDCMD.
·
N
PROC
6720
CSES
Length
=OOlA
SET
B!'!
P
··
·
,
···
L
NEAR
63E8
CSES
SMOOTHB.
·
·
,
,
·
·
N
PROC
6474
CSES
Length
=OO3A
"M!\I."
,
,
,
N
PROC
673A
CSES
Length
=0010
~lJH"
·.
·
···
·
SOAKPTR.,
··
·····
·
l
WORD
61E6
CSEG
"'"Il
L
liEAR
,.,.,,,
CSEG
,JurH!
,
···
····
01
oJ
..
STATUS
··
L
WORD
6164
CSES
TEXTSET.
·· ·
··
L
BYTE
61CE
CSES
TDTBYTES
·
L
WORD
617A
CSES
TOT
TAB.
··
L
WORD
617C
CSES
TS£i
, .
·
···
··
L
NEAR
63bA
CSES
WHITECT
··
L
WORD
6178
CSEG
WHITE
PCT.
······
··
L
WORD
616E
CSES
WORDeT
I
WORD
6176
CSES
,
L.
WORK!1AP.
·
L
BYTE
0022
CSES
Length
=28AO
~
Wilrni
ng
Severe
triOrs
Errors
0 0
Page 96
APPENDIX F
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING
TECHNIQUES
F.1
LIGHTING CONSIDERATIONS,
FOR
THE
IS32
OPTICRAM
The
IS32
OpticRAM
lends
itself
to
profiling
scenes
and
component
parts
by
imaging
the
dimension
to
be
measured
onto
a
matrix
of
light
sensors
where
each
light
sensor
is
equal
to
some
distance
in
physical
space.
The
MicronEye
Camera
needs
a
high
contrast
scene
in
order.
to
image
the
object
into
the
IS32.
Unlike
a
TV
camera
which
can
respond
to
shades
of
gray,
the
IS32
is
a
digital
chip
where
each
picture
element
makes
a
black/white
judgement
based
on
an
arbitrary
light
level
used
as
a
threshold
(trip
light
lev~).
Portions
of
the
scene
that
are
lighter
than
the
threshold
level
will
be
judged
as
white
while
portions
of
the
scene
darker
than
the
threshold
level
will
be
judged
as
black.
For
example,
if
the
trip
light
level
is
made
lighter,
then
a new
slice
of
the
scene
would
be
captured
around
that
light
threshold.
One
can
look
at
shades
of
gray
as
planes
of
binary
light
level
slices.
One
example:
64
gray
scales
means
64
binary
light
level
slices.
The
trip
light
level
can
be
changed
in
one
of
three
ways:
1.
Changing
the
exposure
time.
2.
Changing
the
f-stop
on
the
lens.
3.
Changing
the
light
on
the
scenes
itself.
Doubling
the
exposure
time
is
the
same
as
opening
the·
f-stop
by
one
stop,
(changing
the
f-stop
to
the
next
smaller
number),
or
~n
other
words
doubling
the
amount
of
light.
Contrast
can
now
be
defined
as
a
minimum/difference
between
adjacent
slices.
Example:
.
In
taking
64
gray
scale
slices
there
is
normally
only
one
slice
where
the
adjacent
slice
is
of
a minimum
difference.
F-1
Page 97
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING
TECHNIQUES
LIGHTING CONSIDERATIONS
FOR
THE
IS32
OPTICRAM
High
contrast
means
that
there
are
more
than
two
adjacent
slices
that
are
about
the
same
(usually
three
or
more
adjacent
slices
are
about
the
same).
F.1.1
FRONT
LIGHTING
Front
lit
scenes,
where
the
camera
is
on
the
same
side
of
the
scene
as
the
light
source
or
ambient
light,
usually
is
low
in
contrast.
In
this'
situation
extreme
care
in
setting
up
uniform
lighting
on
the
scene
is
necessary
and
the
optimum
trip
light
level
needs
to
be
used.
Front
lighting
requires
a
multiple
diffused
light
source
such
that
the
contrast
in
the
scene
is
increased.
If
defects
or
points
of
interest
are
to
be
emphasized,
side
lighting
such
that
the
defects
or
points
of
interest
cast
a
shadow,
or
increase
in
,spectral
energy
(reflection)
will
usually
point
out
the
defects.
To
set
up
a
front
lit
scene,
normally
one
or
more
flood
lamps
(outdoor
flood
lamps
purchased
from
a
local
hardware
store
are
adequate)
are
arranged
around
the
scene
far
enough
away
so
that
there
are
no
shadows.
Then
the
f-stop,
focus
and
lamps
are
adjusted
for
maximum
contrast
and
focus.
Adjust
the
focus
where
the
smallest
part
of
the
scene
has
the
most
detail.
The
depth
of
focus
(the
distance
the
scene
can
move
in
relation
to
the
camera
and
still
be
in
focus)
is
increased
at
higher
f-stops.
Increase
the
amount
of
light
and/or
the
integration
time
to
optimize
the
result.
A
trade-off
of
lighting,
integration
time,
f-stop
and
scene-to-camera
positioning
(also
lens
selection)
is
necessary
to
optimize
the
result.
Due
to
light
falling
off
(at
a
slope
of
cos*cos*cos*cos)
from
the
center
of
the
lens
going
to
the
edges
of
the'
lens,
the
periphery
of
a
scene
takes
more
light
for
a
uniform
trip
light
threshold
to
capture
the
scene.
F.1.2
BACK
LIGHTING
For
a
backlit
scene,
the
light
comes
from
behind
the
scene
so
that
the
object
being
viewed
is
shadowed
into
the
camera.
Backlighting
the
object,
for
maximum
contrast
will
give
the
best
repeatable
results.
Backlighting
is
recommended
if
the
camera
is
used
to
measure
the
object
or
certain
aspects
of
the
object
and/or
for
part
rec~gnition
since
the
trip
light
level
can
move a
large
amount
without
degrading
the
results.
The
backlit
light
source
must
be
large
enough
so
that
the
camera,
without
the
object
in
the
field
of
view
will
see
a
uniform
amount
of
light.
This
is
normally
accomplished
by
using
several
flood
lamps
and
shining
the
flood
lamps
onto
a
diffused
surface
(ground
glass,
or
F-2
Page 98
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING
TECHNIQUES
LIGHTING CONSIDERATIONS
FOR
THE
IS32
OPTICRAM
diffused
white
plastic,
or
frosted
mylar),
such
that
a
uniform
light
source
is
created.
Placing
the
object
between
the
diffused
surface
and
the
camera
will
shadow
the
object
into
the
camera
with
maximum
contrast.
Adjust
the
f-stop
to
the
maximum
value
that
the
amount
of
light
and
integration
time
will
allow.
NOTE:
For
non-contact
measurement
of
the
objects'
size,
the
magnification
changes
in
relation
to
its
distance
from
the
camera
to
the
object.
In
selecting
a
lens,
the
magnification
change
as
the
object
moves
in
the
Z
axis
must
be
considered.'
The
farther
the
lens
is
from
the
object
the
less
the
size
changes
as
the
object
moves
in
the
Z
axis.
The
equation
that
relates
the
Z
axis
motion
of
the
object
to
the
change
in
lens-to-object
distance
is:
Z =
change
in
object
motion
to/from
the
camera
L=
Lens
to
object
distance;
%
area
change
=
200
*
(Z/L
+
Z*Z/L*L)
For
example,
if
the
Z
axis
motion
is
1/2
inch
and
the
lens
to
object
distance
is
20
inches,
then
the
change
in
size
of
the
scene,
as
the
computer
sees
it,
is
5.25%
in
area.
In
comparing
the
MicronEye
camera,
lighting
and
processing,
to
other
industrial
systems
that
do
gray
scale
processing,
where
lighting
is
not
a
dominant
factor,
there
is
usually
a
300
to
1
cost
trade-off.
Placing
more
emphasis
to
correct
the
lighting
so
that
a
single
threshold
can
be
used
produces
a
saving
of
300
times.
F.1.3
ILLUMINATION
SOURCES
Some
of
the
common
illumination
sources
are
tungsten,
quartz
halogen,
quartz
iodine,
fluorescent,
and
mercury
or
xenon
arc
lamps,
as
well
as
various
flash
lamps,
lasers
and
LED
sources.
The
cornmon
vlays
to
configure
these
sources
are:
1)
illumination
of
the
scene,
2)
backlighting
(shadowing)
of
the
scene
or
3)
a
combination
of
both,
depending
on
the
type
of
information
desired
from
the
camera.
See
figure
F-1.
F-3
Page 99
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING TECHNIQUES
LIGHTING CONSIDERATIONS
FOR
THE
IS32
OPTICRAM
c~.ra
0
Camera
C~.ra
0
L1ght~1'~9h'
<)
Object
0,,1
Light
SHADOW
IMAGING
FRONT-LIT
BACK-LIT
(for
hole
or
IMAGING
IMAGING
bump
defect
getection)
:amet)
Li9h~O
~~
~K
.-i
.~
0
....
----
t
C.mora
I
~'
\'
Camera
CX)¥?
~0
~
\
....
.-i
Light
\
Lens
SPECTRAL
ILLUMINATION
SPECTRAL
ELIMINATION
COLLI~mTED
LIGHTING
Figure
F-1.
Illumination
Techniques
The
light
intensity
required
by
the
image
sensor
must
be
well
defined
in
order
to
have
even
illumination
of
the
scene,
since
the
camera
uses
a common
threshold
for
the
entire
scene,
calling
it
light
or
dark.
Only
a
small
portion
of
light
from
the
light
source,
via
the
scene,
actually
ends
up
in
the
sensor.
Therefore,
in
choosing
a
suitable
light
source,
such
factors
as
even
illumination
versus
threshold,
f-stop
and
magnification
of
the
lens,
and
the
surface
of
the
object
(light
or
dark,
diffused
or
specular)
must
be
considered.
Certain
sections
of
the
object
may
require
spotlights
to
create
an
even
illumination
where
a
meaningful
threshold
scene
can
be
produced.
The
amount
of
light
coming
through
the
lens
is
increasingly
attenuated
as
the
angle
between
the
center
of
the
lens
going
to
the
edge
of
the
lens
increases.
F.2
OPTICS '4:'he
MicronEye
comes
standard
with
a
C-mount
lens.
Special
applications
may
require
the
use
of
other
lenses
or
filters
which
are
not
of
the
C-mount
variety.
C-mount
adaptors
are
available
for
the
more
common
lens
types
discussed
below.
F-4
Page 100
GUIDE
TO
OPTICS SELECTION
AND
LIGHTING TECHNIQUES
OPTICS
F.2.1
LENS
TYPES
Three
common
lens
types
are
the
C-mount
series,
U-mount
series,
and
L-mount
series.
F.2.1.1
The
C-mount
Lens
-
The
C-mount
has
a
flange
focal
distance
of
17.S26mm
(.690").
The
flange
focal
distance
is
the
distance
from
the
lens
mounting
flange
to
the
convergence
point
of
all
parallel
rays
entering
the
lens
when
the
lens
is
focused
at
infinity.
The
C-mount
lens
is
the
work
horse
of
the
TV
camera
world.
Its
format
is
designed
for
performance
over
the
diagonal
of
a
standard
television
camera
videcon.
This
lens
was
selected
by
Micron
because
of
its
popularity
and
ease
of
availability.
The
mounting
thread
characterics
are:
1"
diameter,
32
threads/inch
(machinist
thread
information
1"-32um2A).
Generally,
this
lens
is
an
excellent
choice
for
the
OpticRAM.
However,
due
to
geometric
distortion
and
field
angle
characteristics,
short
focal
length
lenses
should
be
evaluated
as
to
suitability
for
metrology
(measurement)
imaging.
For
instance,
an
8.Smm
focal
length
lens
should
not
be
used
with
an
image
sensor
greater
than
1/8"
in
length
(the
OptiCRAM
is
.174")
if
the
application
involves
metrology.
Also,
the
majority
of
lenses
should
not
be
used
wide
open
because
of
the
light
falloff
characteristics.
The
lens-to-OpticRAM
distance
has
been
established
by
using
the
flange
focal
distance
dimension
for
fixed
focal
length
lenses
(non-adjustable
focus).
For
close-ups,
lens
extenders
will
be
required.
The
lens
extender
is
used
behind
the
lens
to
increase
the
lens
to
OptiCRAM
distance.
Spacer
Lens
(in
mm)
=
Focal
Length
/
Magnification
For
a
given
lens,
as
magnification
increases
the
distance
between
lens
and
focal
plane
decreases.
Figure
F-2
contains
graphs
of
object
,distance
versus
magnification
for
common
C-,
U-,
and
L-mount
lenses.
These
charts
are
a
useful
"ballpark"
guide
for
lens
focal
length
selection.
F.2.1.2
TheU-mount
Lens
-
The
U-mount
lens
is
a
focusable
lens
having
a'
flange
focal
distance
of
46.S2mm
(1.7913").
The
characteristic
of
the
mounting
threads
is
M42x1.
This
lens
was
primarily
designed
for
3Smm
photography
applications.
AC-mount
to
U-mount
adapter
can
be
purchased
from
most
camera
stores.
F-S
Loading...