906 lines
11 KiB
ArmAsm
906 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
|
||
|
|
||
|
|