Hej Jury,
niestety, niezaleznie od synchronizacji, Timery MPF zawsze beda niestabilne, bo CPU i MPF maja osobe zegary. Minimalny rozjazd to z tego co pamietam 4-12 cykli.
Tak jak pisze Sqward, do tego efektu lepiej zrezygowac z przerwania i synchronizowac kod raz na ramke. Na szybko, zrobilem kod pod devpaca dla trybu PAL - 50Hz.
linia MACRO
;move.w (A0)+,(A1) ;480 cykli
dc.w $3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298
dc.w $3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298
dc.w $3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298
dc.w $3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298,$3298
;nop ; 32 cykle
dc.w $4e71,$4e71,$4e71,$4e71,$4e71,$4e71,$4e71,$4e71
ENDM
START
move.w #$20,-(A7)
trap #1
addq.l #6,A7
move.w #$2700,SR
lea RASTER,A0
lea $ffff8240.w,A1
VBL_Synchro
move.b $ffff8209.w,D0
beq.s VBL_Synchro
not.b D0
lsl.b D0,D0
REPT 80
nop
ENDR
KOLORUJ_LINIE
REPT 199
linia 40
ENDR
lea RASTER,A0
bra.w VBL_Synchro
RASTER ;kolory 199 lini po 40 kolumn
REPT 199
dc.w $0777,$0700,$0070,$0007,$0077,$0707,$0770,$0000
dc.w $0666,$0600,$0060,$0006,$0066,$0606,$0660,$0000
dc.w $0555,$0500,$0050,$0005,$0055,$0505,$0550,$0000
dc.w $0444,$0400,$0040,$0004,$0044,$0404,$0440,$0000
dc.w $0333,$0300,$0030,$0003,$0033,$0303,$0330,$0000
ENDR