905 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			905 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .define _EmMon, _EmTrp
 | |
|  
 | |
| .sect .text
 | |
|  
 | |
| _EmMon:
 | |
|  LDR R11,[R12]
 | |
|  CMP R11,#1
 | |
|  BNE _2
 | |
| !
 | |
| ! EXIT
 | |
| !
 | |
|  LDR R2,[R12,#4]
 | |
|  MOV R1,#0x41
 | |
|  ADD R1,R1,#0x4200
 | |
|  ADD R1,R1,#0x450000
 | |
|  ADD R1,R1,#0x58000000
 | |
|  SWI 17  ! os_exit
 | |
| _2:
 | |
|  CMP R11,#3
 | |
|  BNE _3
 | |
| !
 | |
| ! READ
 | |
| !
 | |
|  MOV R0,#4
 | |
|  LDR R1,[R12,#4]  !fildes
 | |
|  CMP R1,#5
 | |
|  BGE _22
 | |
| !
 | |
| ! READ FROM THE KEYBOARD
 | |
| !
 | |
|  LDR R0,[R12,#8]  !buffer
 | |
|  MOV R10,R0
 | |
|  LDR R1,[R12,#12]  ! char count
 | |
|  CMP R1,#256
 | |
|  MOV.CS R1,#255   !OS_Readline max
 | |
|  MOV R2,#0
 | |
|  MOV R3,#126
 | |
|  SWI 14  !OS_READLINE
 | |
| ! CR TO LF
 | |
|  LDR.B R0,[R10,R1]
 | |
|  CMP R0,#13
 | |
|  BNE _23
 | |
|  MOV R0,#10
 | |
|  STR.B R0,[R10,R1]
 | |
| _23:
 | |
|  ADD R1,R1,#1 ! INC BUFFER COUNT
 | |
|  STMFD R12<,{R1}
 | |
|  MOV R0,#0
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _22:
 | |
| ! READ FROM A FILE
 | |
|  LDR R2,[R12,#8]
 | |
|  LDR R3,[R12,#12]
 | |
|  STR R5,_savreg
 | |
|  STR R4,_savreg2
 | |
|  MOV R5,R3
 | |
|  SWI 12  !os_gbpb
 | |
|  SUB R5,R5,R3
 | |
|  STMFD R12<,{R5}
 | |
|  MOV R5,#0
 | |
|  STMFD R12<,{R5}
 | |
|  LDR R5,_savreg
 | |
|  LDR R4,_savreg2
 | |
|  MOV R15,R14
 | |
| _3:
 | |
|  CMP R11,#4
 | |
|  BNE _4
 | |
| !
 | |
| ! WRITE
 | |
| !
 | |
|  LDR R1,[R12,#4]
 | |
|  CMP R1,#5
 | |
|  BGE _33
 | |
| ! WRITE TO THE SCREEN
 | |
|  LDR R0,[R12,#8]
 | |
|  LDR R1,[R12,#12]
 | |
|  SWI 70  !os_writeN
 | |
| ! APPEND CR TO LINE ENDING WITH LF
 | |
|  LDR R0,[R12,#12]
 | |
|  SUB R0,R0,#1
 | |
|  LDR R1,[R12,#8]
 | |
|  LDR.B R2,[R1,R0]
 | |
|  CMP R2,#10
 | |
|  SWI.EQ 269  !OUTPUT CR
 | |
|  LDR R1,[R12,#12]
 | |
|  STMFD R12<,{R1}
 | |
|  MOV R1,#0
 | |
|  STMFD R12<,{R1}
 | |
|  MOV R15,R14
 | |
| _33:
 | |
| ! WRITE TO A FILE
 | |
|  MOV R0,#2
 | |
|  LDR R2,[R12,#8]
 | |
|  LDR R3,[R12,#12]
 | |
|  STR R5,_savreg
 | |
|  STR R4,_savreg2
 | |
|  SWI 12  !os_gbpb
 | |
|  LDR R1,[R12,#12]   !always success
 | |
|  STMFD R12<,{R1}
 | |
|  LDR R5,_savreg
 | |
|  LDR R4,_savreg2
 | |
|  MOV R0,#0
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _4:
 | |
|  CMP R11,#5
 | |
|  BNE _5
 | |
| !
 | |
| ! OPEN
 | |
| !
 | |
|  LDR R2,[R12,#8]
 | |
|  CMP R2,#0
 | |
|  BNE _46
 | |
|  MOV R0,#67  !READ ONLY
 | |
|  BAL _45
 | |
| _46:
 | |
|  CMP R2,#2
 | |
|  BNE _44
 | |
|  MOV R0,#195  !UPDATE, FILE MUST EXIST
 | |
|  BAL _45
 | |
| _44:
 | |
|  MOV R0,#131  !CREATE AND OPEN FOR UPDATE
 | |
| _45:
 | |
|  LDR R1,[R12,#4]  !FILE NAME
 | |
|  MOV R2,#0  !NO PATH
 | |
|  SWI 0x2000D  !Xos_find
 | |
|  MOV.VS R0,#0
 | |
|  CMP R0,#0 !MAP ERROR CODES
 | |
|  MOV.EQ R0,#-1
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R2,#0
 | |
|  STMFD R12<,{R2}
 | |
|  MOV R15,R14
 | |
| _5:
 | |
|  CMP R11,#6
 | |
|  BNE _6
 | |
| !
 | |
| ! CLOSE
 | |
| !
 | |
|  MOV R0,#0
 | |
|  LDR R1,[R12,#4]
 | |
|  CMP R1,#5
 | |
|  BLT _51  !IGNORE IF NOT FILE
 | |
|  SWI 0x2000D  !Xos_find (IGNORE ERRORS)
 | |
| _51:
 | |
|  MOV R0,#0
 | |
| ! STMFD R12<,{R0}  !not sure...
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _6:
 | |
|  CMP R11,#8
 | |
|  BNE _7
 | |
| !
 | |
| ! CREAT
 | |
| !
 | |
|  BAL _44
 | |
| _7:
 | |
|  CMP R11,#10
 | |
|  BNE _8
 | |
| !
 | |
| ! UNLINK
 | |
| !
 | |
| ! note that on UNIX, unlink may be
 | |
| ! done on an open file. This would
 | |
| ! cause an error on RiscOs, which is ignored
 | |
|  MOV R0,#6
 | |
|  LDR R1,[R12,#4]
 | |
|  STR R5,_savreg
 | |
|  STR R4,_savreg2
 | |
|  CMP R1,#5
 | |
|  SWI.GE 0x20008  !os_file
 | |
|  LDR R5,_savreg
 | |
|  LDR R4,_savreg2
 | |
|  MOV R8,#0
 | |
| ! STMFD R12<,{R8}  ! not sure...
 | |
|  STMFD R12<,{R8}
 | |
|  MOV R15,R14
 | |
| _8:
 | |
|  CMP R11,#12
 | |
|  BNE _9
 | |
| !
 | |
| ! CHDIR
 | |
| !
 | |
|  MOV R0,#0
 | |
|  LDR R1,[R12,#4]
 | |
|  SWI 41  !os_fscontrol
 | |
|  MOV R0,#0
 | |
|  STMFD R12<,{R0}  !not sure...
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _9:
 | |
|  CMP R11,#19
 | |
|  BNE _10
 | |
| !
 | |
| ! LSEEK
 | |
| !
 | |
|  MOV R0,#0  !FIRST GET CURRENT PTR
 | |
|  LDR R1,[R12,#4]
 | |
|  SWI 9  !OS_ARGS
 | |
|  MOV R11,R2
 | |
|  LDR R3,[R12,#12]  !NOW DO THE LSEEK
 | |
|  CMP R3,#2
 | |
|  BEQ _92
 | |
|  CMP R3,#1
 | |
|  BEQ _91
 | |
|  LDR R1,[R12,#4]
 | |
|  LDR R2,[R12,#8]
 | |
| _90:
 | |
|  MOV R0,#1
 | |
|  SWI 9  !os_args
 | |
|  BAL _99
 | |
| _92:
 | |
|  MOV R0,#2
 | |
|  LDR R1,[R12,#4]
 | |
|  SWI 9  !os_args
 | |
|  LDR R8,[R12,#8]
 | |
|  ADD R2,R2,R8
 | |
|  LDR R1,[R12,#4]
 | |
|  BAL _90
 | |
| _91:
 | |
|  MOV R0,#0
 | |
|  LDR R1,[R12,#4]
 | |
|  SWI 9  !os_args
 | |
|  LDR R3,[R12,#8]
 | |
|  ADD R2,R1,R3
 | |
|  BAL _90
 | |
| _99:
 | |
|  STMFD R12<,{R11}
 | |
|  MOV R0,#0
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _10:
 | |
|  CMP R11, #54
 | |
|  BNE _1001
 | |
| !
 | |
| ! IOCTL
 | |
| ! always returns 0
 | |
| !
 | |
|  MOV R0, #0
 | |
|  STMFD R12<, {R0}
 | |
|  MOV R15, R14
 | |
| !
 | |
| ! TIMES
 | |
| !
 | |
| _1001:
 | |
|  CMP R11, #43
 | |
|  BNE _1003
 | |
|  ADR R1,_17
 | |
|  MOV R0,#3
 | |
|  STR R0,[R1]
 | |
|  MOV R0,#14
 | |
|  SWI 7  !OS_WORD
 | |
|  ADR R0,_17
 | |
|  LDR R0,[R0]
 | |
|  MOV R1,#0
 | |
|  LDR R2,[R12,#4]
 | |
|  STR R0,[R2]
 | |
|  STR R0,[R2,#4] ! utime = stime
 | |
|  STR R1,[R2,#8]
 | |
|  STR R1,[R2,#12]
 | |
|  STMFD R12<,{R1}
 | |
|  MOV R15,R14
 | |
| !
 | |
| ! GETPID
 | |
| ! returns random number (clock ticks)
 | |
| !
 | |
| _1003:
 | |
|  CMP R11, #20
 | |
|  BNE _1002
 | |
|  ADR R1,_17
 | |
|  MOV R0,#3
 | |
|  STR R0,[R1]
 | |
|  MOV R0,#14
 | |
|  SWI 7  !OS_WORD
 | |
|  ADR R0,_17
 | |
|  LDR R0,[R0]
 | |
|  AND R0,R0,#0xFF
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| !
 | |
| ! EXECE
 | |
| ! ONLY FIRST PARAMETER IS USED
 | |
| !
 | |
| _1002:
 | |
|  CMP R11, #59
 | |
|  BNE _1000
 | |
|  LDR R0,[R12,#4]
 | |
|  SWI 5  !OS_CLI
 | |
|  MOV R0,#0
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| ! 
 | |
| ! NOT IMPLEMENTED CALLS
 | |
| ! ---------------------
 | |
| ! THESE CALLS MAY REQUIRE DIFFERENT
 | |
| ! STACK HANDLING (THERE MAY BE BUGS HERE!!)
 | |
| ! (the number of return values does not always
 | |
| ! correspond to the Ack manual)
 | |
| !
 | |
| _1000:
 | |
|  CMP R11,#7
 | |
|  BNE _9726
 | |
|  ADR R0,_9607
 | |
|  BAL _9352
 | |
| _9726:
 | |
|  CMP R11,#26
 | |
|  BNE _9727
 | |
|  ADR R0,_9626
 | |
|  BAL _9352
 | |
| _9727:
 | |
|  CMP R11,#27
 | |
|  BNE _9741
 | |
|  ADR R0,_9627
 | |
|  BAL _9352
 | |
| _9741:
 | |
|  CMP R11,#41
 | |
|  BNE _9742
 | |
|  ADR R0,_9641
 | |
|  BAL _9352
 | |
| _9742:
 | |
|  CMP R11,#42
 | |
|  BNE _9748
 | |
|  ADR R0,_9642
 | |
|  BAL _9352
 | |
| _9748:
 | |
|  CMP R11,#48
 | |
|  BNE _9760
 | |
|  ADR R0,_9648
 | |
|  BAL _9352
 | |
| _9760:
 | |
|  CMP R11,#60
 | |
|  BNE _9709
 | |
|  ADR R0,_9660
 | |
|  BAL _9352
 | |
| _9709:
 | |
|  CMP R11,#9
 | |
|  BNE _9714
 | |
|  ADR R0,_9609
 | |
|  BAL _9351
 | |
| _9714:
 | |
|  CMP R11,#14
 | |
|  BNE _9715
 | |
|  ADR R0,_9614
 | |
|  BAL _9351
 | |
| _9715:
 | |
|  CMP R11,#15
 | |
|  BNE _9716
 | |
|  ADR R0,_9615
 | |
|  BAL _9351
 | |
| _9716:
 | |
|  CMP R11,#16
 | |
|  BNE _9718
 | |
|  ADR R0,_9616
 | |
|  BAL _9351
 | |
| _9718:
 | |
|  CMP R11,#18
 | |
|  BNE _9720
 | |
|  ADR R0,_9618
 | |
|  BAL _9351
 | |
| _9720:
 | |
|  CMP R11,#20
 | |
|  BNE _9721
 | |
|  ADR R0,_9620
 | |
|  BAL _9351
 | |
| _9721:
 | |
|  CMP R11,#21
 | |
|  BNE _9722
 | |
|  ADR R0,_9621
 | |
|  BAL _9351
 | |
| _9722:
 | |
|  CMP R11,#22
 | |
|  BNE _9723
 | |
|  ADR R0,_9622
 | |
|  BAL _9351
 | |
| _9723:
 | |
|  CMP R11,#23
 | |
|  BNE _9724
 | |
|  ADR R0,_9623
 | |
|  BAL _9351
 | |
| _9724:
 | |
|  CMP R11,#24
 | |
|  BNE _9725
 | |
|  ADR R0,_9624
 | |
|  BAL _9351
 | |
| _9725:
 | |
|  CMP R11,#25
 | |
|  BNE _9728
 | |
|  ADR R0,_9625
 | |
|  BAL _9351
 | |
| _9728:
 | |
|  CMP R11,#28
 | |
|  BNE _9729
 | |
|  ADR R0,_9628
 | |
|  BAL _9351
 | |
| _9729:
 | |
|  CMP R11,#29
 | |
|  BNE _9730
 | |
|  ADR R0,_9629
 | |
|  BAL _9351
 | |
| _9730:
 | |
|  CMP R11,#30
 | |
|  BNE _9733
 | |
|  ADR R0,_9630
 | |
|  BAL _9351
 | |
| _9733:
 | |
|  CMP R11,#33
 | |
|  BNE _9734
 | |
|  ADR R0,_9633
 | |
|  BAL _9351
 | |
| _9734:
 | |
|  CMP R11,#34
 | |
|  BNE _9735
 | |
|  ADR R0,_9634
 | |
|  BAL _9351
 | |
| _9735:
 | |
|  CMP R11,#35
 | |
|  BNE _9736
 | |
|  ADR R0,_9635
 | |
|  BAL _9351
 | |
| _9736:
 | |
|  CMP R11,#36
 | |
|  BNE _9737
 | |
|  ADR R0,_9636
 | |
|  BAL _9351
 | |
| _9737:
 | |
|  CMP R11,#37
 | |
|  BNE _9744
 | |
|  ADR R0,_9637
 | |
|  BAL _9351
 | |
| _9744:
 | |
|  CMP R11,#44
 | |
|  BNE 9746
 | |
|  ADR R0,_9644
 | |
|  BAL _9351
 | |
| _9746:
 | |
|  CMP R11,#46
 | |
|  BNE 9747
 | |
|  ADR R0,_9646
 | |
|  BAL _9351
 | |
| _9747:
 | |
|  CMP R11,#47
 | |
|  BNE 9751
 | |
|  ADR R0,_9647
 | |
|  BAL _9351
 | |
| _9751:
 | |
|  CMP R11,#51
 | |
|  BNE 9753
 | |
|  ADR R0,_9651
 | |
|  BAL _9351
 | |
| _9753:
 | |
|  CMP R11,#53
 | |
|  BNE 9756
 | |
|  ADR R0,_9653
 | |
|  BAL _9351
 | |
| _9756:
 | |
|  CMP R11,#56
 | |
|  BNE 9761
 | |
|  ADR R0,_9656
 | |
|  BAL _9351
 | |
| _9761:
 | |
|  ADR R0,_9661
 | |
|  BAL _9351
 | |
| 
 | |
|  
 | |
| .sect .data
 | |
| _14:
 | |
| .data4 0
 | |
| .data4 0
 | |
| _15:
 | |
| .asciz "Monitor call "
 | |
| .data4 0
 | |
| .align 4
 | |
| _16:
 | |
| .asciz ": not implemented"
 | |
| .data4 0
 | |
| .align 4
 | |
| _17:
 | |
| .data4 3
 | |
| .data4 0
 | |
| .align 4
 | |
| 
 | |
| .sect .text
 | |
| 
 | |
| _EmTrp:
 | |
|  SWI 3  !OS_NEWLINE
 | |
|  LDR R11,[R12]
 | |
| !
 | |
| ! deal with ignore mask here
 | |
| ! (not yet implemented)
 | |
| !
 | |
|  CMP R11,#0
 | |
|  BNE _9101
 | |
|  ADR R0,_9000
 | |
|  BAL _9200
 | |
| _9101:
 | |
|  CMP R11,#1
 | |
|  BNE _9102
 | |
|  ADR R0,_9001
 | |
|  BAL _9200
 | |
| _9102:
 | |
|  CMP R11,#2
 | |
|  BNE _9103
 | |
|  ADR R0,_9002
 | |
|  BAL _9200
 | |
| _9103:
 | |
|  CMP R11,#3
 | |
|  BNE _9104
 | |
|  ADR R0,_9003
 | |
|  BAL _9200
 | |
| _9104:
 | |
|  CMP R11,#4
 | |
|  BNE _9105
 | |
|  ADR R0,_9004
 | |
|  BAL _9200
 | |
| _9105:
 | |
|  CMP R11,#5
 | |
|  BNE _9106
 | |
|  ADR R0,_9005
 | |
|  BAL _9200
 | |
| _9106:
 | |
|  CMP R11,#6
 | |
|  BNE _9107
 | |
|  ADR R0,_9006
 | |
|  BAL _9200
 | |
| _9107:
 | |
|  CMP R11,#7
 | |
|  BNE _9108
 | |
|  ADR R0,_9007
 | |
|  BAL _9200
 | |
| _9108:
 | |
|  CMP R11,#8
 | |
|  BNE _9109
 | |
|  ADR R0,_9008
 | |
|  BAL _9200
 | |
| _9109:
 | |
|  CMP R11,#9
 | |
|  BNE _9110
 | |
|  ADR R0,_9009
 | |
|  BAL _9200
 | |
| _9110:
 | |
|  CMP R11,#10
 | |
|  BNE _9111
 | |
|  ADR R0,_9010
 | |
|  BAL _9200
 | |
| _9111:
 | |
|  CMP R11,#11
 | |
|  BNE _9112
 | |
|  ADR R0,_9011
 | |
|  BAL _9200
 | |
| _9112:
 | |
|  CMP R11,#12
 | |
|  BNE _9113
 | |
|  ADR R0,_9012
 | |
|  BAL _9200
 | |
| _9113:
 | |
|  CMP R11,#13
 | |
|  BNE _9114
 | |
|  ADR R0,_9013
 | |
|  BAL _9200
 | |
| _9114:
 | |
|  CMP R11,#14
 | |
|  BNE _9115
 | |
|  ADR R0,_9014
 | |
|  BAL _9200
 | |
| _9115:
 | |
|  CMP R11,#15
 | |
|  BNE _9116
 | |
|  ADR R0,_9015
 | |
|  BAL _9200
 | |
| _9116:
 | |
|  CMP R11,#16
 | |
|  BNE _9117
 | |
|  ADR R0,_9016
 | |
|  BAL _9200
 | |
| _9117:
 | |
|  CMP R11,#17
 | |
|  BNE _9118
 | |
|  ADR R0,_9017
 | |
|  BAL _9200
 | |
| _9118:
 | |
|  CMP R11,#18
 | |
|  BNE _9119
 | |
|  ADR R0,_9018
 | |
|  BAL _9200
 | |
| _9119:
 | |
|  CMP R11,#19
 | |
|  BNE _9120
 | |
|  ADR R0,_9019
 | |
|  BAL _9200
 | |
| _9120:
 | |
|  CMP R11,#20
 | |
|  BNE _9121
 | |
|  ADR R0,_9020
 | |
|  BAL _9200
 | |
| _9121:
 | |
|  CMP R11,#21
 | |
|  BNE _9122
 | |
|  ADR R0,_9021
 | |
|  BAL _9200
 | |
| _9122:
 | |
|  CMP R11,#22
 | |
|  BNE _9123
 | |
|  ADR R0,_9022
 | |
|  BAL _9200
 | |
| _9123:
 | |
|  CMP R11,#23
 | |
|  BNE _9124
 | |
|  ADR R0,_9023
 | |
|  BAL _9200
 | |
| _9124:
 | |
|  CMP R11,#24
 | |
|  BNE _9125
 | |
|  ADR R0,_9024
 | |
|  BAL _9200
 | |
| _9125:
 | |
|  CMP R11,#25
 | |
|  BNE _9126
 | |
|  ADR R0,_9025
 | |
|  BAL _9200
 | |
| _9126:
 | |
|  CMP R11,#26
 | |
|  BNE _9127
 | |
|  ADR R0,_9026
 | |
|  BAL _9200
 | |
| _9127:
 | |
|  CMP R11,#27
 | |
|  BNE _9128
 | |
|  ADR R0,_9027
 | |
|  BAL _9200
 | |
| _9128:
 | |
|  CMP R11,#127
 | |
|  BGT _9129
 | |
|  ADR R0,_9028
 | |
|  SWI 2  !OS_WRITE0
 | |
|  MOV R0,R11
 | |
|  ADR R1,_12
 | |
|  MOV R2,#5
 | |
|  SWI 217  !CONVERT
 | |
|  SUB R1,R1,R0
 | |
|  SWI 70  !WRITEN
 | |
|  BAL _9300
 | |
| _9129:
 | |
|  ADR R0,_11
 | |
|  SWI 2  !OS_WRITE0
 | |
|  MOV R0,R11
 | |
|  ADR R1,_12
 | |
|  MOV R2,#5
 | |
|  SWI 217  !CONVERT
 | |
|  SUB R1,R1,R0
 | |
|  SWI 70  !WRITEN
 | |
|  BAL _9300
 | |
| _9200: SWI 2
 | |
| _9300:
 | |
|  ADR R0, _Lineno
 | |
|  LDR R0,[R0]
 | |
|  CMP R0,#0
 | |
|  BEQ _9301
 | |
|  MOV R10,R0
 | |
|  ADR R0,_9050
 | |
|  SWI 2
 | |
|  MOV R0,R10
 | |
|  ADR R1,_12
 | |
|  MOV R2,#5
 | |
|  SWI 217
 | |
|  SUB R1,R1,R0
 | |
|  SWI 70
 | |
|  SWI 3
 | |
|  BAL _9302
 | |
| _9301:
 | |
|  ADR R0,_9501
 | |
|  SWI 2
 | |
|  SWI 3
 | |
| _9302:
 | |
|  MOV R0,#1
 | |
|  STMFD R12<,{R0}
 | |
|  STMFD R12<,{R0}
 | |
|  BAL.L _EmMon
 | |
| _9351:
 | |
|  SWI 2  !WRITE0
 | |
|  ADR R0,_16
 | |
|  SWI 2 !OS_WRITE0
 | |
|  SWI 3 !NEWLINE
 | |
|  MOV R0, #0
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| _9352:
 | |
|  SWI 2  !WRITE0
 | |
|  ADR R0,_16
 | |
|  SWI 2 !OS_WRITE0
 | |
|  SWI 3 !NEWLINE
 | |
|  MOV R0, #0
 | |
|  STMFD R12<,{R0}
 | |
|  STMFD R12<,{R0}
 | |
|  MOV R15,R14
 | |
| 
 | |
| 
 | |
| .sect.data
 | |
| _11:
 | |
| .asciz "Trap "
 | |
| .align 4
 | |
| _12:
 | |
| .data4 0
 | |
| .data4 0
 | |
| _9000:
 | |
| .asciz "Array bound error "
 | |
| .align 4
 | |
| _9001:
 | |
| .asciz "Range bound error "
 | |
| .align 4
 | |
| _9002:
 | |
| .asciz "Set bound error "
 | |
| .align 4
 | |
| _9003:
 | |
| .asciz "Integer overflow "
 | |
| .align 4
 | |
| _9004:
 | |
| .asciz "Floating overflow "
 | |
| .align 4
 | |
| _9005:
 | |
| .asciz "Floating underflow "
 | |
| .align 4
 | |
| _9006:
 | |
| .asciz "Divide by 0 "
 | |
| .align 4
 | |
| _9007:
 | |
| .asciz "Divide by 0.0 "
 | |
| .align 4
 | |
| _9008:
 | |
| .asciz "Undefined integer "
 | |
| .align 4
 | |
| _9009:
 | |
| .asciz "Undefined float "
 | |
| .align 4
 | |
| _9010:
 | |
| .asciz "Conversion error "
 | |
| .align 4
 | |
| _9011:
 | |
| .asciz "unknown trap "
 | |
| .align 4
 | |
| _9012:
 | |
| .asciz "unknown trap "
 | |
| .align 4
 | |
| _9013:
 | |
| .asciz "unknown trap "
 | |
| .align 4
 | |
| _9014:
 | |
| .asciz "unknown trap "
 | |
| .align 4
 | |
| _9015:
 | |
| .asciz "unknown trap "
 | |
| .align 4
 | |
| _9016:
 | |
| .asciz "Stack overflow "
 | |
| .align 4
 | |
| _9017:
 | |
| .asciz "Heap overflow "
 | |
| .align 4
 | |
| _9018:
 | |
| .asciz "Illegal instruction "
 | |
| .align 4
 | |
| _9019:
 | |
| .asciz "Illegal size argument "
 | |
| .align 4
 | |
| _9020:
 | |
| .asciz "Case error "
 | |
| .align 4
 | |
| _9021:
 | |
| .asciz "Addressing non-existent memory "
 | |
| .align 4
 | |
| _9022:
 | |
| .asciz "Bad pointer used "
 | |
| .align 4
 | |
| _9023:
 | |
| .asciz "Program counter out of range "
 | |
| .align 4
 | |
| _9024:
 | |
| .asciz "Bad argument of LAE "
 | |
| .align 4
 | |
| _9025:
 | |
| .asciz "Bad monitor call "
 | |
| .align 4
 | |
| _9026:
 | |
| .asciz "Argument of LIN too high "
 | |
| .align 4
 | |
| _9027:
 | |
| .asciz "GOTO decriptor error "
 | |
| .align 4
 | |
| _9028:
 | |
| .asciz "Language run-time trap "
 | |
| .align 4
 | |
| _9501:
 | |
| .asciz " (line number unknown)"
 | |
| .align 4
 | |
| _9050:
 | |
| .asciz " at line "
 | |
| .align 4
 | |
| 
 | |
| _9607:
 | |
| .asciz "Wait"
 | |
| .align 4
 | |
| _9609:
 | |
| .asciz "Link"
 | |
| .align 4
 | |
| _9614:
 | |
| .asciz "Mknod"
 | |
| .align 4
 | |
| _9615:
 | |
| .asciz "Chmod"
 | |
| .align 4
 | |
| _9616:
 | |
| .asciz "Chown"
 | |
| .align 4
 | |
| _9618:
 | |
| .asciz "Stat"
 | |
| .align 4
 | |
| _9620:
 | |
| .asciz "Getpid"
 | |
| .align 4
 | |
| _9621:
 | |
| .asciz "Mount"
 | |
| .align 4
 | |
| _9622:
 | |
| .asciz "Umount"
 | |
| .align 4
 | |
| _9623:
 | |
| .asciz "Setuid"
 | |
| .align 4
 | |
| _9624:
 | |
| .asciz "Getuid"
 | |
| .align 4
 | |
| _9625:
 | |
| .asciz "Stime"
 | |
| .align 4
 | |
| _9626:
 | |
| .asciz "Ptrace"
 | |
| .align 4
 | |
| _9627:
 | |
| .asciz "Alarm"
 | |
| .align 4
 | |
| _9628:
 | |
| .asciz "Fstat"
 | |
| .align 4
 | |
| _9629:
 | |
| .asciz "Pause"
 | |
| .align 4
 | |
| _9630:
 | |
| .asciz "Utime"
 | |
| .align 4
 | |
| _9633:
 | |
| .asciz "Access"
 | |
| .align 4
 | |
| _9634:
 | |
| .asciz "Nice"
 | |
| .align 4
 | |
| _9635:
 | |
| .asciz "Ftime"
 | |
| .align 4
 | |
| _9636:
 | |
| .asciz "Sync"
 | |
| .align 4
 | |
| _9637:
 | |
| .asciz "Kill"
 | |
| .align 4
 | |
| _9641:
 | |
| .asciz "Dup"
 | |
| .align 4
 | |
| _9642:
 | |
| .asciz "Pipe"
 | |
| .align 4
 | |
| _9644:
 | |
| .asciz "Profil"
 | |
| .align 4
 | |
| _9646:
 | |
| .asciz "Setgid"
 | |
| .align 4
 | |
| _9647:
 | |
| .asciz "Getgid"
 | |
| .align 4
 | |
| _9648:
 | |
| .asciz "Sigtrp"
 | |
| .align 4
 | |
| _9651:
 | |
| .asciz "Acct"
 | |
| .align 4
 | |
| _9653:
 | |
| .asciz "Lock"
 | |
| .align 4
 | |
| _9656:
 | |
| .asciz "Mpxcall"
 | |
| .align 4
 | |
| _9660:
 | |
| .asciz "Umask"
 | |
| .align 4
 | |
| _9661:
 | |
| .asciz "Chroot"
 | |
| .align 4
 | |
| 
 | |
| .sect .data
 | |
| _savreg:
 | |
| .data4 0
 | |
| _savreg2:
 | |
| .data4 0
 | |
| 
 | |
| 
 |