_sbrk.s 661 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .define __brk
  2. .define __sbrk
  3. .sect .text
  4. .sect .rom
  5. .sect .data
  6. .sect .bss
  7. .sect .text
  8. .extern __brk
  9. .sect .text
  10. __brk:
  11. tst.b -40(sp)
  12. link a6,#-0
  13. move.l 8(a6),-(sp)
  14. jsr __Sbrk
  15. add.l #4,sp
  16. unlk a6
  17. rts
  18. .extern __sbrk
  19. __sbrk:
  20. tst.b -40(sp)
  21. link a6,#-0
  22. move.w 8(a6), d2
  23. ext.l d2
  24. move.l d2,-(sp)
  25. jsr __Ssbrk
  26. add.l #4,sp
  27. unlk a6
  28. rts
  29. __Ssbrk: tst.b -8(sp)
  30. move.l 4(sp),d0
  31. beq 1f
  32. add.l .limhp,d0
  33. move.l d0,-(sp)
  34. clr.l -(sp)
  35. trap #0
  36. .data2 0x11
  37. add.l #8,sp
  38. bcc 1f
  39. jmp cerror
  40. 1:
  41. move.l .limhp,d0
  42. move.l 4(sp),d1
  43. add.l d1,.limhp
  44. rts
  45. __Sbrk: trap #0
  46. .data2 0x11
  47. bcc 1f
  48. jmp cerror
  49. 1:
  50. move.l 4(sp),.limhp
  51. clr.l d0
  52. rts