.define .csa .sect .text .sect .rom .sect .data .sect .bss .sect .text .csa: move.l (sp)+,a0 ! case descriptor move (sp)+,d0 ! index move.l (a0)+,a1 ! default address sub (a0)+,d0 ! index - lower bound blt 1f cmp (a0)+,d0 ! rel. index <-> upper - lower bound bgt 1f asl #2,d0 add d0,a0 move.l (a0),d1 ! test jump address move.l d1,d0 beq 1f move.l d1,a1 bra 3f 1: move.l a1,d0 ! test default jump address beq 2f 3: jmp (a1) 2: move.w #ECASE,-(sp) jmp .fat