68k initialization

Basic init code
The initial PC value in the 68k binary must be $C00402 (Init BIOS call), the initial SP value must be $10F300 (end of the user RAM).

The entrypoints for the 68k code start at $000122. There's usually 4 JMP instructions there (why ?).

lea    $10F300, sp    lea     $10F300, a7       ; Depends on assemblers... move.b d0,REG_DIPSW      ; Kick the watchdog move.w #7,REG_IRQACK     ; Acknowledge any pending interrupts move.w #$2700,sr         ; Disable all interrupts

See 68k interrupts and Watchdog for more informations.

Clearing user RAM: lea    RAMSTART,a0       ; Should be $100000 move.l #($F300/4)-1,d0   ; User RAM's size is $F300, and we clear longwords (4 bytes) clram: clr.l  (a0)+ dbra   d0,clram

Note that this function also clears the stack. Don't make a subroutine out of it unless you're sure that the return address won't be cleared.

Clearing sprites and the fix layer: make BIOS Calls.

Don't forget to kick the watchdog regularly in your init code if the VBL interrupt isn't enabled or doesn't kick it itself.