; }
; }
;
+;
+; On entry, ptr2 must contain a pointer to the block, which must be at least
+; HEAP_MIN_BLOCKSIZE bytes in size, and ptr1 contains the total size of the
+; block.
+;
; Check if the free list is empty, storing _hfirst into ptr3 for later
dey ; Points to next
lda (ptr3),y ; right = right->next;
tax
- iny ; Points to next+1
+ iny ; Points to next+1
lda (ptr3),y
stx ptr3
sta ptr3+1
; Do left->next->prev = left
- iny ; Points to prev
+ iny ; Points to prev
lda ptr4 ; Low byte of left
sta (ptr1),y
iny
lda ptr4+1 ; High byte of left
sta (ptr1),y
- rts ; Done
+ rts ; Done
; This is now the last block, do _heaplast = left
; we come here. Do left->next = f.
NoLeftMerge:
- iny ; Points to next
+ iny ; Points to next
lda ptr2 ; Low byte of left
sta (ptr4),y
iny
; Do f->prev = left
- iny ; Points to prev
+ iny ; Points to prev
lda ptr4
sta (ptr2),y
iny
lda ptr4+1
sta (ptr2),y
- rts ; Done
+ rts ; Done