74 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
#
 | 
						|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
 | 
						|
.define  LINO_AD,FILN_AD
 | 
						|
.define  ERANGE,ESET,EHEAP,EILLINS,ECASE
 | 
						|
.define  hol0,trppc~,trpim~,reghp~
 | 
						|
! $Header$
 | 
						|
 | 
						|
#define float 1
 | 
						|
#define hardfp 1
 | 
						|
 | 
						|
LINO_AD = 0
 | 
						|
FILN_AD = 4
 | 
						|
 | 
						|
ERANGE  = 1
 | 
						|
ESET    = 2
 | 
						|
EFOVFL  = 4
 | 
						|
EFUNFL  = 5
 | 
						|
EFDIVZ  = 7
 | 
						|
EFUND   = 011
 | 
						|
ECONV   = 012
 | 
						|
EHEAP   = 021
 | 
						|
EILLINS = 022
 | 
						|
ECASE   = 024
 | 
						|
 | 
						|
#ifdef float
 | 
						|
#ifndef hardfp
 | 
						|
!	sys     060;.data2 4,fptrap	/ if not commented it will appear as undefined
 | 
						|
#endif
 | 
						|
	sys     060;.data2 010,sig8
 | 
						|
	ldfps   $07600
 | 
						|
#endif
 | 
						|
	mov     2(sp),r0
 | 
						|
	clr     -2(r0)
 | 
						|
	mov     sp,r0
 | 
						|
	sub     $4,sp
 | 
						|
	mov     4(sp),(sp)
 | 
						|
	tst     (r0)+
 | 
						|
	mov     r0,2(sp)
 | 
						|
1:
 | 
						|
	tst     (r0)+
 | 
						|
	bne     1b
 | 
						|
	cmp     r0,*2(sp)
 | 
						|
	blo     1f
 | 
						|
	tst     -(r0)
 | 
						|
1:
 | 
						|
	mov     r0,4(sp)
 | 
						|
	jsr     pc,_m_a_i_n
 | 
						|
! next two lines for as long as tail needs printf
 | 
						|
!	mov     r0,-(sp)
 | 
						|
!	jsr     pc,*$_exit
 | 
						|
	sys     1
 | 
						|
 | 
						|
	.sect .data
 | 
						|
hol0:   .data2 0,0     ! line no
 | 
						|
	.data2 0,0     ! file
 | 
						|
trppc~: .data2 0
 | 
						|
trpim~: .data2 0
 | 
						|
reghp~: .data2 _end
 | 
						|
 | 
						|
	.sect .text
 | 
						|
sig8:
 | 
						|
#ifdef float
 | 
						|
	mov     r0,-(sp)
 | 
						|
	stst    r0
 | 
						|
	mov     1f(r0),-(sp)
 | 
						|
	jsr     pc,trp~
 | 
						|
	sys     060;.data2 010,sig8
 | 
						|
	mov     (sp)+,r0
 | 
						|
	rti
 | 
						|
 | 
						|
	.sect .data
 | 
						|
1:      .data2 EILLINS, EILLINS, EFDIVZ, ECONV, EFOVFL, EFUNFL, EFUND, EILLINS
 | 
						|
	.sect .text
 | 
						|
#endif
 |