[M68000] move.w (a0)+,(a1)+ causes crash!

Discussion in 'Programmer's Corner' started by oerg866, Apr 3, 2009.

  1. oerg866

    Thread Starter New Member

    Apr 3, 2009
    1
    0
    Hello.

    I'm working with Motorola 68000 assembly on a Sega Genesis console.

    I have a code here wich works in certain emulators but not on the real console nor ReGen.

    Code ( (Unknown Language)):
    1.                 move.l    #$00000DE3,d0
    2. sndrvloop:
    3.                 move.w    (a0)+,(a1)+                
    4.                 dbf    d0,sndrvloop
    This move.w (a0)+,(a1)+ causes the thing to lock up. Only if I set d0 as or below #$000000FF it works (however the wanted function is not achieved).

    Is there any way to express this command by something else that doesn't lock it up?

    Greetings
    Oerg866
     
  2. Papabravo

    Expert

    Feb 24, 2006
    10,137
    1,786
    The reason for the lockup is rooted in the values you have in a0 and a1. If the processor starts a bus cycle and nobody is there at that address to give a DTACK then you're hosed!
     
Loading...