|
|
1.1 ! root 1: #old = sbrk(increment); ! 2: # ! 3: #sbrk gets increment more core, and returns a pointer ! 4: # to the beginning of the new core area ! 5: # ! 6: break = 17 ! 7: .globl _sbrk ! 8: .globl _end ! 9: .globl cerror ! 10: ! 11: _sbrk: ! 12: linkw a6,#0 ! 13: addql #3,sp@(8) ! 14: andl #0xfffffffc,sp@(8) ! 15: movl nd,d0 ! 16: addl sp@(8),d0 ! 17: movl d0,sp@- ! 18: jsr 1f ! 19: bcc noerr1 ! 20: addql #4,sp ! 21: jmp cerror2 ! 22: noerr1: ! 23: addql #4,sp ! 24: movl nd,d0 ! 25: movl sp@(8),d1 ! 26: addl d1,nd ! 27: movl d0,a0 ! 28: unlk a6 ! 29: rts ! 30: 1: ! 31: linkw a6,#0 ! 32: pea break ! 33: trap #0 ! 34: unlk a6 ! 35: rts ! 36: ! 37: .globl _brk ! 38: # brk(value) ! 39: # as described in man2. ! 40: # returns 0 for ok, -1 for error. ! 41: ! 42: _brk: ! 43: linkw a6,#0 ! 44: pea break ! 45: trap #0 ! 46: bcc noerr2 ! 47: jmp cerror2 ! 48: noerr2: ! 49: movl sp@(8),nd ! 50: clrl d0 ! 51: lea 0,a0 ! 52: unlk a6 ! 53: rts ! 54: ! 55: .data ! 56: nd: .long _end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.