Have you enabled cpu interrupts?
Like by calling something like splx(0), below:
// set the current interrupt mask level and return the old one
int
splx(int level)
{
short oldlevel = 0;
level = (level & 7) << 8;
// enable cpu interrupts
asm {
move.w sr,d1
move.w d1,oldlevel // get the old level from the sr
and #0xf8ff,d1
or level,d1 // insert the new level into the sr
move.w d1,sr
}
return (oldlevel >> 8) & 7;
}