27 lines
		
	
	
	
		
			435 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			435 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .sect .text; .sect .rom; .sect .data; .sect .bss
 | |
| .define .csa4
 | |
| 
 | |
| .sect .text
 | |
| .csa4:
 | |
| 				! ebx, descriptor address
 | |
| 				! eax, index
 | |
| 	mov     edx,(ebx)         ! default
 | |
| 	sub     eax,4(ebx)
 | |
| 	cmp     eax,8(ebx)
 | |
| 	ja      1f
 | |
| 	sal     eax,2
 | |
| 	add	ebx,eax
 | |
| 	mov     ebx,12(ebx)
 | |
| 	test    ebx,ebx
 | |
| 	jnz     2f
 | |
| 1:
 | |
| 	mov     ebx,edx
 | |
| 	test    ebx,ebx
 | |
| 	jnz     2f
 | |
| .extern ECASE
 | |
| .extern .fat
 | |
| 	mov     eax,ECASE
 | |
| 	push    eax
 | |
| 	jmp     .fat
 | |
| 2:
 | |
| 	jmp     ebx
 |