42 lines
589 B
ArmAsm
42 lines
589 B
ArmAsm
|
#include "syscall.h"
|
||
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||
|
.define _sbrk,_brk
|
||
|
_sbrk:
|
||
|
move.l (4,sp),d0
|
||
|
add.l #3,d0
|
||
|
move.l #~3,d1
|
||
|
and.l d1,d0
|
||
|
move.l d0,a0
|
||
|
move.l (curbrk),d0
|
||
|
add.l #3,d0
|
||
|
and.l d1,d0
|
||
|
move.l d0,(curbrk)
|
||
|
add.l d0,a0
|
||
|
move.l a0,(4,sp)
|
||
|
pea (17) ! not SYS_sbrk
|
||
|
trap #0
|
||
|
bcs 1f
|
||
|
move.l (curbrk),d0
|
||
|
move.l (4,sp),(curbrk)
|
||
|
rts
|
||
|
1:
|
||
|
jmp (cerror)
|
||
|
|
||
|
_brk:
|
||
|
move.l (4,sp),d0
|
||
|
add.l #3,d0
|
||
|
move.l #~3,d1
|
||
|
and.l d1,d0
|
||
|
move.l d0,(4,sp)
|
||
|
pea (17)
|
||
|
trap #0
|
||
|
bcs 1f
|
||
|
move.l (4,sp),(curbrk)
|
||
|
clr.l d0
|
||
|
rts
|
||
|
1:
|
||
|
jmp (cerror)
|
||
|
|
||
|
.sect .data
|
||
|
curbrk: .data4 endbss
|