29 lines
		
	
	
	
		
			695 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			695 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define Ior
 | 
						|
 | 
						|
! This subroutine performs the logical inclusive or on two
 | 
						|
! groups of bytes. The groups may consist of atmost 254 bytes.
 | 
						|
! The two groups are on the stack.
 | 
						|
 | 
						|
Ior:
 | 
						|
	lda SP+1
 | 
						|
	sta ADDR+1	! address of the first group (highbyte)
 | 
						|
	lda SP+2
 | 
						|
	sta ADDR	! address of the first group (lowbyte)
 | 
						|
	clc
 | 
						|
	tya
 | 
						|
	adc SP+2
 | 
						|
	sta SP+2	! new stackpointer (lowbyte)
 | 
						|
	sta ADDR+2	! address of second group (lowbyte)
 | 
						|
	lda #0
 | 
						|
	adc SP+1
 | 
						|
	sta SP+1	! new stackpointer (highbyte)
 | 
						|
	sta ADDR+3	! address of second group (highbyte)
 | 
						|
    1:  dey
 | 
						|
	lda (ADDR),y	! get byte first group
 | 
						|
	ora (ADDR+2),y	! inclusive or with byte second group
 | 
						|
	sta (ADDR+2),y	! restore result on stack
 | 
						|
	tya
 | 
						|
	bne 1b		! perform n times
 | 
						|
	rts
 | 
						|
 | 
						|
 |