home *** CD-ROM | disk | FTP | other *** search
-
- * Phil!94 / LSD.
-
- * Blitter bug? If you look at the code below you would expect the
- * word at $RESULT after the blit to be $00ff. Cus the Blitter
- * is set up to OR together every other word from the DATA table,
- * (skipping the $ffff's). The Minterm D = B OR C is used with
- * B being the new data word to be ORed and C being the result of
- * previous blits. The modulos for D and C are set to -2 so that
- * all the words read in from source B are ORed into one single word
- * location.. (It constantly overwrites the same location)
- * BUT! The result is always $00aa, as if the words read in with the
- * even bits are lost.. If you run the blitter in descending mode,
- * the result is $0055, IE: the words with the odd bits are
- * missing from the final result....
-
-
- result equ $f0000 ;somewhere safe in chip ram
-
-
- Clr.w result
- Move.l #$dff000,a0
- move.l #$07ee0000,$40(a0) ;BC&D enabled. Minterms:D = B OR C
-
- move.l #result,$48(a0) ;C source set
- move.l #data+2,$4c(a0) ;B source set
- move.l #result,$54(a0) ;D destination set
-
- move.w #$fffe,$60(a0) ;c modulo = -2 (overlap word)
- move.w #$0002,$62(a0) ;b modulo = +2 (skip $ffff words)
- move.w #$fffe,$66(a0) ;d modulo = -2 (overlap word)
-
- move.w #$0201,$58(a0) ;blit = 8 words high, 1 word width
- wait btst #$e,$2(a0)
- bne.s wait ;wait for blit to end
- rts
-
- section blitdata,data_c
-
- data dc.w $ffff,$0001,$ffff,$0002,$ffff,$0004,$ffff,$0008
- dc.w $ffff,$0010,$ffff,$0020,$ffff,$0040,$ffff,$0080
-
-
-