1234567891011121314151617181920212223242526272829303132 |
- .define .csb4
- .define .csb
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- ECASE=20
- .sect .text
- .csb4:
- .csb:
- ! case descriptor in a0
- ! index in d0
- move.l (a0)+, a1 ! default jump address
- move.l (a0)+, d1 ! # entries
- beq 3f
- sub.l #1, d1
- 1:
- cmp.l (a0,d1.w*8), d0
- dbeq d1, 1b
- bne 3f
- move.l (4,a0,d1.w*8), a1 ! jump address
- 3:
- move.l a1, d0
- beq 4f
- jmp (a1)
- 4:
- move.l #ECASE, -(sp)
- jmp (.fatal)
- .align 2
|