40 lines
		
	
	
	
		
			764 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			764 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define Mon
 | 
						|
.sect .text
 | 
						|
.sect .rom
 | 
						|
.sect .data
 | 
						|
.sect .bss
 | 
						|
.sect .text
 | 
						|
 | 
						|
! This subroutine performs some monitor calls.
 | 
						|
! The exit call just resets the hardware_stackpointer so
 | 
						|
! this routine will return to the operating system.
 | 
						|
! The close call just returns a zero.
 | 
						|
! The ioctl call just pops its arguments and returns a zero.
 | 
						|
! The write routine is a real one.
 | 
						|
 | 
						|
 | 
						|
Mon:
 | 
						|
	cpx #1
 | 
						|
	bne 1f		! exit
 | 
						|
	ldx STACK	! load stackpointer
 | 
						|
	dex
 | 
						|
	dex		! adjust stackpointer
 | 
						|
	txs		! set stackpointer
 | 
						|
	rts
 | 
						|
    1:	cpx #4
 | 
						|
	bne 1f
 | 
						|
	jmp Mwrite
 | 
						|
    1:	cpx #6		! facked
 | 
						|
	bne 1f		! close
 | 
						|
	lda #0
 | 
						|
	tax		! return zero
 | 
						|
	rts
 | 
						|
    1:	cpx #54
 | 
						|
	jsr Pop		! pop first argument (fildes)
 | 
						|
	jsr Pop		! pop second argument (request)
 | 
						|
	jsr Pop		! pop third argument (argp)
 | 
						|
	lda #0
 | 
						|
	tax		! return zero
 | 
						|
	rts
 | 
						|
 | 
						|
 |