I think your assembly is a bit buggy (though it's true that codewarrior
doesn't always report the error messages on the right line)
> link.w a6, +0x04
--------------------------
Problems:
- The ".w" isn't needed (and I think codewarrior doesn't like it)
- You need a "#" before the 0x04
- You likely want the displacement to be negative, since right now you're
Putting a6 on the stack and immediately popping it off.
Suggested fix:
link a6, #-4
> lea.l 0xfffff305, a0 // Here illegal addressing mode error
--------------------------------------------------------------------------
Problems:
- The ".l" isn't needed
Suggested fix:
lea 0xfffff305, a0
> bclr 0x0002, a0 // Here illegal addressing mode error
------------------------------------------------------------------------
Problems:
- You need a # before the displacement
- bclr doesn't work on address registers (see the 68K manual)
Suggested fix:
bclr 2, d0