ack/mach/ns/libem/csb.s
1991-09-18 19:10:24 +00:00

34 lines
551 B
ArmAsm

.define .csb
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
.sect .text
!r0 contains index
!r1 contains pointer to csb descriptor
.csb:
movd 4(r1), r2 !number of entries
cmpqd 0, r2
beq 3f
movd r1, r3
1:
addd 8, r3 !find addres of next index
cmpd 0(r3), r0 !compare indices
beq 2f
acbd -1, r2, 1b
3: !r1 now contains right pointer
cmpqd 0, 0(r1) !test destination addres
beq 4f
movd 0(r1), tos !jump to destination
ret 4
2:
addr 4(r3), r1 !put destination pointer in r1
br 3b
4:
movd ECASE, tos
jsr @.trp
ret 0