30 lines
		
	
	
	
		
			509 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			509 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .define Lxl
 | |
| .sect .text
 | |
| .sect .rom
 | |
| .sect .data
 | |
| .sect .bss
 | |
| .sect .text
 | |
| 
 | |
| ! This subroutine loads LB n (255 => n > 0) static levels back.
 | |
| 
 | |
| 
 | |
| Lxl:
 | |
| 	lda LB
 | |
| 	sta ADDR	! address of localbase (lowbyte)
 | |
| 	lda LB+1
 | |
| 	sta ADDR+1	! address of localbase (highbyte)
 | |
|     1:	ldy #2
 | |
| 	lda (ADDR),y	! get localbase (lowbyte) 1 level back
 | |
| 	pha
 | |
| 	iny
 | |
| 	lda (ADDR),y	! get localbase (highbyte) 1 level back
 | |
| 	sta ADDR+1	! new localbase (highbyte)
 | |
| 	pla
 | |
| 	sta ADDR	! new localbase (lowbyte)
 | |
| 	dex
 | |
| 	bne 1b		! n levels
 | |
| 	tax
 | |
| 	lda ADDR+1
 | |
| 	rts
 | |
| 
 | |
| 
 |