Figure
2:
VGA
signal
timing
.
VGA
Signal
Generator
Circuitry
Now
we
have
to
figure
out
a
circuit
that
will
send
pixels
to
the
monitor
with
the
correct
timing
and
framing
.
We
can
store
a
picture
in
the
RAM
of
the
XS
Board
.
Then
we
can
retrieve
the
data
from
the
RAM,
format
it
into
lines
of
pixels,
and
send
the
lines
to
the
monitor
with
the
appropriate
pulses
on
the
horizontal
and
vertical
sync
pulses
.
The
pseudocode
for
a
single
frame
of
this
process
is
shown
in
Listing
1
.
The
pseudocode
has
two
outer
loops:
one
which
displays
the
L
lines
of
visible
pixels,
and
another
which
inserts
the
V
blank
lines
and
the
vertical
sync
pulse
.
Within
the
first
loop,
there
are
two
more
loops:
one
which
sends
the
P
pixels
of
each
video
line
to
the
monitor,
and
another
which
inserts
the
H
blank
pixels
and
the
horizontal
sync
pulse
.
Within
the
pixel
display
loop,
there
are
statements
to
get
the
next
byte
from
the
RAM
.
Each
byte
contains
four
two
-
bit
pixels
.
A
small
loop
iteratively
extracts
each
pixel
to
be
displayed
from
the
lower
two
bits
of
the
byte
.
Then
the
byte
is
shifted
by
two
bits
so
the
next
pixel
will
be
in
the
right
position
during
the
next
iteration
of
the
loop
.
Since
it
has
only
two
bits,
each
pixel
can
store
one
of
four
colors
.
The
mapping
from
the
two
-
bit
pixel
value
to
the
actual
values
required
by
the
monitor
electronics
is
done
by
the
COLOR
_
MAP()
routine
.