1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ! $Source$
- ! $State$
- ! $Revision$
- .sect .text; .sect .rom; .sect .data; .sect .bss
- .sect .text
- .define .strhp
- .extern .reghp, .limhp, EHEAP, .trp
- ! Updates the heap pointer:
- !
- ! int .strhp(void* newpointer)
- !
- ! .reghp is the current heap pointer;
- ! .limhp is the current top of memory.
- !
- ! If the desired new heap pointer is above the top of memory, then BRK is
- ! called to extend the memory.
- .strhp:
- pop bx
- pop ax
- mov (.reghp),ax
- cmp ax,(.limhp)
- jb 1f
- add ax,02000
- and ax,~0777
- push bx
- push ax
- call BRK
- pop cx
- pop bx
- cmp ax,-1
- je 2f
- 1:
- mov (.limhp),cx
- jmp bx
- 2:
- mov ax,EHEAP
- push bx
- jmp .trp
|