; Heap variables and initialization.
;
- .export __horg, __hptr, __hend, __hfirst, __hlast
- .export __hinit
- .import __BSS_RUN__, __BSS_SIZE__, __stksize
+ .constructor initheap, 24
+ .import __BSS_RUN__, __BSS_SIZE__, __STACKSIZE__
.importzp sp
+ .include "_heap.inc"
+
+
.data
-__horg:
+__heaporg:
.word __BSS_RUN__+__BSS_SIZE__ ; Linker calculates this symbol
-__hptr:
- .word __BSS_RUN__+__BSS_SIZE__ ; Dito
-__hend:
+__heapptr:
+ .word __BSS_RUN__+__BSS_SIZE__ ; Dito
+__heapend:
.word __BSS_RUN__+__BSS_SIZE__
-__hfirst:
- .word 0
-__hlast:
- .word 0
+__heapfirst:
+ .word 0
+__heaplast:
+ .word 0
-;
-; Initialization. Must be called from startup!
-;
+; Initialization. Will be called from startup!
.code
-__hinit:
- sec
- lda sp
- sbc __stksize
- sta __hend
- lda sp+1
- sbc __stksize+1
- sta __hend+1
+initheap:
+ sec
+ lda sp
+ sbc #<__STACKSIZE__
+ sta __heapend
+ lda sp+1
+ sbc #>__STACKSIZE__
+ sta __heapend+1
rts
-
-
-
-