TELLING THE SYSTEM HOW
TO
FETCH
AND
DISPLAY
DATA
After defining the size and position of the display window, you need
to
give the system
the on-screen location for
data
fetched from memory.
To
do this, you describe the hor-
izontal positions where each line
starts
and stops and write these positions
to
the data-
fetch registers. The data-fetch registers have a four-pixel resolution (unlike the display
window registers, which have a one-pixel resolution). Each position specified
is
four pix-
els from the last one. Pixel 0
is
position
0;
pixel 4
is
position
1,
and so on.
The data-fetch
start
and display window starting positions interact with each other.
It
is recommended
that
data-fetch
start
values be restricted
to
a programming resolution of
16
pixels
(8
clocks in low-resolution mode, 4 clocks
in
high-resolution mode). The
hardware requires some time after the first
data
fetch before
it
can actually display the
data. As a result, there
is
a difference between the value of window
start
and data-fetch
start. In low-resolution mode the difference is
8.5
clocks;
in
high-resolution mode the
difference
is
4.5 clocks.
The
normal low-resolution DDFSTRT
is
($0038). The normal high-resolution
DDFSTRT
is
($003C). Recall
that
the hardware resolution of display window
start
and
stop
is
twice the hardware resolution of
data
fetch:
($81/2 - 8.5)
=
($38)
($81/2 - 4.5) = ($3C)
The relationship between data-fetch
start
and stop is
DDFSTRT
= DDFSTOP - (8*(word count -
1)
for
low
resolution
DDFSTRT
= DDFSTOP - (4*(word count -
2)
for high resolution
The normal low-resolution DDFSTOP
is
($OODO).
The normal high-resolution
DDFSTOP is ($00D4).
The following example sets data-fetch
start
to
$0038 and data-fetch stop to
$ooDO
for a
basic playfield.
DDFSTRT EQU
DDFSTOP EQU
MOVE.W
MOVE.W
$DFF092
$DFF094
#$0038,DDFSTRT
#$OODO,DDFSTOP
; Write to
DDFSTRT
; Write
to
DDFSTOP
Playfield Hardware
49