Thread: Sine scroller
View Single Post
Old 13 April 2007, 22:35   #10
Zone Friend
bobbybearing's Avatar
Join Date: Oct 2003
Location: France
Age: 45
Posts: 161
you seems to want make all in one step!

have you tested each routine, step by step, before put the whole routs in interrupt ?

first test if text appear on main screen, to see if modulos or addresses are good.
then make a scroll routine and test it in the main loop with a wait vbl
move.l $dff004,d0
and.l #$1ff00,d0
cmpi.l #256<<8,d0
bne.s wait_lmb

bsr get_char_pos

btst #6,mouse
bne.s wait_lmb

and if these 2 routs run fine, you can start the sinus copy. it's more simple to detect bug.

/!\ : in case of animation, you have to use the double buffering for a good result !

start your code with :
movem.l d0-d7/a0-a6,-(sp)
and end the code with:
movem.l (sp)+,d0-d7/a0-a6
moveq #0,d0 ; no error

try to use decimal value for some registers like modulos, bltsize... you can write expressions. more simple to read

about the interrupt, you miss to save and restore intreq/intena registers.
Terminate your interrupt with rte, and not the old address and rts

about scroll : more smooth 8!

sin rout : stay in loop => freeze
bobbybearing is offline  
Page generated in 0.03946 seconds with 11 queries