34 lines
		
	
	
	
		
			557 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			557 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define Mwrite
 | 
						|
 | 
						|
! This subroutine performs the monitor call write.
 | 
						|
! Writing is always done to standardoutput.
 | 
						|
! A zero is returned on exit.
 | 
						|
! The subroutine WRCH is a special routine of the BBC
 | 
						|
! microcomputer.
 | 
						|
 | 
						|
 | 
						|
Mwrite:
 | 
						|
	jsr Pop		! get fildes
 | 
						|
	jsr Pop		! get address of characterbuffer
 | 
						|
	stx ADDR	! bufferaddress (lowbyte)
 | 
						|
	sta ADDR+1	! bufferaddress (highbyte)
 | 
						|
	jsr Pop		! number of characters to be writen.
 | 
						|
	ldy #0
 | 
						|
    1:	lda (ADDR),y
 | 
						|
	cmp #10
 | 
						|
	bne 2f
 | 
						|
	pha
 | 
						|
	lda #13
 | 
						|
	jsr WRCH
 | 
						|
	pla
 | 
						|
    2:	jsr WRCH
 | 
						|
	iny
 | 
						|
	dex
 | 
						|
	bne 1b
 | 
						|
	tya
 | 
						|
	tax
 | 
						|
	lda #0
 | 
						|
	jsr Push
 | 
						|
	tax
 | 
						|
	rts
 | 
						|
 |