1. general:
The question is when to change BPLCON1 if you want to be in sync with reading the 16 pixels?
DMA-Time Slot Diagramm: for a part of 16 Pixel: DDFSTRT $38
Bitplane-and Coppercycles:
Code:
DDFSTRT on $38
[38 56] [39 57] [3A 58] [3B 59] [3C 60] [3D 61] [3E 62] [3F 63]
1 2 3 4 - BPL4 BPL6 BPL2
(free) (free) (free) (steal)
COP COP COP COP
[40 64] [41 65] [42 66] [43 67] [44 68] [45 69] [46 70] [47 71] [48 72] [49 73]
COP 08C BPL3 BPL5 BPL1 1 2
(free) (steal) (free)
COP COP COP COP COP Data shown on Screen
$38 - DDFSTRT
$43 - DFFSTRT finished
$48 - then 5 cylces wait
$49 - data shown on screen (17 pixel later then DDFSTRT or 8,5 cycles)
2. Which is the last Copper Position which the the Hardwarescroll Value with BPLCON1 changes?
Code:
DDFSTRT on $38
[38 56] [39 57] [3A 58] [3B 59] [3C 60] [3D 61] [3E 62] [3F 63]
COP 08C 2 COP 102 4 COP 08C BPL4 COP 102 BPL2
102 0055 102 0044
(free) (free) (free) (steal)
COP COP COP COP
[40 64] [41 65] [42 66] [43 67] [44 68] [45 69] [46 70] [47 71] [48 72] [49 73]
COP 08C BPL3 COP 102 BPL1 COP 08C COP 102 1 2
102 0033 102 0022
(free) (steal) (free)
COP COP COP COP COP Data shown on Screen
3. For this example which value would be take from the videologic?
the last one? dc.w $102,$0022 ? and all the previous are ignored?
4. if so, then I have to make a wait on: $44?
dc.w $2c45,$fffe ; a copper move needs 8 pixel lowres
dc.w $0102,$0022
5. this would be also synchronized with all the other in a row of 40 Copper Moves
dc.w $01FE,$0000
dc.w $01FE,$0000
dc.w $01FE,$0000
dc.w $0102,$0011 ; new value this is in distance: + HH=$20
6. or if I want no row of 40 copper moves
find (calculate not empiric) the correct wait-position for the next
copper move dc.w $0102,$00xx for all (or certain) from the other 19x16 pixels (320x256) in the row.