ack/mach/z8000/libem/csb.s
1987-01-19 10:51:50 +00:00

27 lines
389 B
ArmAsm

.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