ack/mach/m65oo2/libem/csa4.s

31 lines
493 B
ArmAsm

.sect .text; .sect .rom; .sect .data; .sect .bss
.define .csa4
.sect .text
.csa4:
! bx, descriptor address
! ax, dx: index
mov cx,(bx) ! default
sub ax,2(bx)
! ignore high order word; if non-zero, the
! case descriptor would not fit anyway
cmp ax,6(bx)
ja 1f
2:
sal ax,1
add bx,ax
mov bx,10(bx)
test bx,bx
jnz 2f
1:
mov bx,cx
test bx,bx
jnz 2f
.extern ECASE
.extern .fat
mov ax,ECASE
push ax
jmp .fat
2:
jmp bx