Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;------------------------------------------------------------
- _FireDraw_4x4: ; (void)
- ;------------------------------------------------------------
- movem.l d0-d3/a0-a4,-(sp) ; store registers
- move.l _FireArray,a0 ; fire array addr
- move.l _FireChunky,a1 ; chunky screen addr
- move.l #FIREH-1,d0 ; y < FIREH
- .loopY ; for y
- move.l a1,a2 ; a2 = a1
- move.l a1,a3 ; a3 = a1
- move.l a1,a4 ; a4 = a1
- add.l #(SCRW*1),a2 ; a2 + 1 line
- add.l #(SCRW*2),a3 ; a3 + 2 lines
- add.l #(SCRW*3),a4 ; a4 + 3 lines
- move.l #FIREW-1,d1 ; x < FIREW
- .loopX ; for x
- move.b (a0)+,d2 ; get byte
- move.b d2,d3 ; byte to long
- rol.w #8,d3 ;
- move.b d2,d3 ;
- move.w d3,d2 ;
- swap d3 ;
- move.w d2,d3 ;
- move.l d3,(a1)+ ; write pixels
- move.l d3,(a2)+ ;
- move.l d3,(a3)+ ;
- move.l d3,(a4)+ ;
- dbf d1,.loopX ; next x
- move.l a4,a1 ; a1 = a4
- dbf d0,.loopY ; next y
- movem.l (sp)+,d0-d3/a0-a4 ; restore registers
- rts ; return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement