sbrk.s 515 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "syscall.h"
  2. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  3. .define _sbrk,_brk
  4. _sbrk:
  5. move.l 4(sp),d0
  6. add.l #3,d0
  7. move.l #~3,d1
  8. and.l d1,d0
  9. move.l d0,a0
  10. move.l .limhp,d0
  11. add.l #3,d0
  12. and.l d1,d0
  13. move.l d0,.limhp
  14. add.l d0,a0
  15. move.l a0,4(sp)
  16. pea 17 ! not SYS_sbrk
  17. trap #0
  18. bcs 1f
  19. move.l .limhp,d0
  20. move.l 4(sp),.limhp
  21. rts
  22. 1:
  23. jmp cerror
  24. _brk:
  25. move.l 4(sp),d0
  26. add.l #3,d0
  27. move.l #~3,d1
  28. and.l d1,d0
  29. move.l d0,4(sp)
  30. pea 17
  31. trap #0
  32. bcs 1b
  33. move.l 4(sp),.limhp
  34. clr.l d0
  35. rts