72 lines
1 KiB
ArmAsm
72 lines
1 KiB
ArmAsm
|
.define .lino,.filn
|
||
|
.define EXIT
|
||
|
.define begtext,begdata,begbss
|
||
|
.define EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
|
||
|
.define hol0,.reghp,.limhp,.trpim,.trppc
|
||
|
.define fsoft_used,start_float
|
||
|
.sect .text
|
||
|
.sect .rom
|
||
|
.sect .data
|
||
|
.sect .bss
|
||
|
|
||
|
|
||
|
|
||
|
! runtime startof for 68020 machine
|
||
|
|
||
|
|
||
|
LINO_AD = 0
|
||
|
FILN_AD = 4
|
||
|
|
||
|
EARRAY = 0
|
||
|
ERANGE = 1
|
||
|
ESET = 2
|
||
|
EIDIVZ = 6
|
||
|
EHEAP = 17
|
||
|
EILLINS = 18
|
||
|
ECASE = 20
|
||
|
EBADGTO = 27
|
||
|
|
||
|
.sect .text
|
||
|
begtext:
|
||
|
move.l (sp),d2
|
||
|
lea (4,sp),a0
|
||
|
move.l d2,d1
|
||
|
add.l #1,d1
|
||
|
asl.l #2,d1
|
||
|
move.l a0,a1
|
||
|
add.l d1,a1
|
||
|
pea (a1)
|
||
|
pea (a0)
|
||
|
move.l d2,-(sp)
|
||
|
move.l #0,a6
|
||
|
jsr (fsoft_used)
|
||
|
jsr (_m_a_i_n)
|
||
|
move.l d0,(sp) ! no stack cleanup needed
|
||
|
EXIT:
|
||
|
jsr (_exit)
|
||
|
|
||
|
fsoft_used:
|
||
|
start_float:
|
||
|
jmp (_finitfp_)
|
||
|
|
||
|
.sect .data
|
||
|
begdata:
|
||
|
.data4 0 ! may be at virtual address 0 with no problem
|
||
|
hol0:
|
||
|
.lino:
|
||
|
.data4 0 ! lino
|
||
|
.filn:
|
||
|
.data4 0 ! filn
|
||
|
.reghp:
|
||
|
.data4 _end
|
||
|
.limhp:
|
||
|
.data4 _end
|
||
|
.trppc:
|
||
|
.data4 0
|
||
|
.trpim:
|
||
|
.data4 0 ! USED TO BE 2 BYTES; IS THIS RIGHT?
|
||
|
|
||
|
|
||
|
.sect .bss
|
||
|
begbss: !initialization is not needed because ALL entries are in zero space!
|