31 lines
		
	
	
	
		
			468 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			468 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .define Cmi
 | |
| .sect .text
 | |
| .sect .rom
 | |
| .sect .data
 | |
| .sect .bss
 | |
| .sect .text
 | |
| 
 | |
| ! This subroutine compares on two integers.
 | |
| ! If T is pushed first and than S, the routine will return:
 | |
| !   -1  if S < T,
 | |
| !    0  if S = T,
 | |
| !    1  if S > T.
 | |
| 
 | |
| 
 | |
| Cmi:
 | |
| 	jsr Sbi2	! subtract operands (T - S)
 | |
| 	bpl 1f		! S >= T
 | |
| 	lda #0FFh	! S < T
 | |
| 	tax		! AX becomes -1
 | |
| 	rts
 | |
|     1:	beq 2f
 | |
|     3:	lda #0		! S > T
 | |
| 	ldx #1		! AX becomes 1
 | |
| 	rts
 | |
|     2:	txa
 | |
| 	bne 3b
 | |
| 	lda #0		! S = T
 | |
| 	tax		! AX becomes 0
 | |
| 	rts
 | |
| 
 | |
| 
 |