1234567891011121314151617181920212223242526 |
- .define csb
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- !R1 contains address of jump table
- !R2 contains case index
- csb:
- ld R3, 0(R1) !default pointer
- ld R0, 2(R1) !number of entries
- test R0
- jr EQ, 1f
- 3: inc R1, $4
- cp R2, 0(R1)
- jr EQ, 2f
- djnz R0, 3b
- 1: ld R1, R3 !default pointer
- jr 4f
- 2: ld R1, 2(R1)
- 4: test R1
- jr EQ, 5f
- jp 0(R1)
- 5: push *RR14, $ECASE
- jr fatal
|