36 lines
		
	
	
	
		
			487 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			487 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .define getchar, putchar
 | |
| .sect .text
 | |
| .sect .rom
 | |
| .sect .data
 | |
| .sect .bss
 | |
| .sect .text
 | |
| 
 | |
| ! These getchar and putchar routines can be used for HERMAC computer
 | |
| 
 | |
| ! Read a character from HERMAC-monitor
 | |
| ! Character is returned in a-reg
 | |
| 
 | |
| getchar:
 | |
| 	in a,0xF1
 | |
| 	and 1
 | |
| 	jp z,getchar
 | |
| 	in a,0xF0
 | |
| 	cp 0x0D
 | |
| 	jp nz,1f
 | |
| 	ld a,0x0A
 | |
| 1:	ret
 | |
| 
 | |
| ! Write character on HERMAC monitor
 | |
| ! Assumes character in a-reg
 | |
| 
 | |
| putchar:
 | |
| 	cp 0x0A
 | |
| 	jp nz,1f
 | |
| 	ld a,0x1F
 | |
| 1:	push af
 | |
| 2:	in a,0xF1
 | |
| 	and 4
 | |
| 	jp z,2b
 | |
| 	pop af
 | |
| 	out 0xF0,a
 | |
| 	ret
 |