! $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