; Initialization. Will be called from startup!
-.code
+.segment "INIT"
initheap:
sec
sta __heapend+1
rts
+
;
-; Ullrich von Bassewitz, 17.09.1998
+; Ullrich von Bassewitz, 1998-09-17, 2005-02-26.
;
; Zero the bss segment.
;
.importzp ptr1
-.code
+.segment "INIT"
zerobss:
lda #<__BSS_RUN__
.macpack cpu
-.code
-
; --------------------------------------------------------------------------
; Initialize library modules
+.segment "INIT"
+
.proc initlib
- ldy #<(__CONSTRUCTOR_COUNT__*2)
+ ldy #<(__CONSTRUCTOR_COUNT__*2)
beq exit
- lda #<__CONSTRUCTOR_TABLE__
- ldx #>__CONSTRUCTOR_TABLE__
+ lda #<__CONSTRUCTOR_TABLE__
+ ldx #>__CONSTRUCTOR_TABLE__
jmp condes
exit: rts
; --------------------------------------------------------------------------
; Cleanup library modules
+.code
+
.proc donelib
ldy #<(__DESTRUCTOR_COUNT__*2)
- beq initlib::exit
+ beq exit
lda #<__DESTRUCTOR_TABLE__
ldx #>__DESTRUCTOR_TABLE__
jmp condes
+exit: rts
.endproc
; Use macros for better readability
.macpack generic
-.code
; ----------------------------------------------------------------------------
; Initialization code. This is a constructor, so it is called on startup if
; the linker has detected references to this module.
+.segment "INIT"
+
.proc initstkchk
- lda sp
- sta initialsp
- sub #<__STACKSIZE__
- sta lowwater
- lda sp+1
- sta initialsp+1
- sbc #>__STACKSIZE__
- add #1 ; Add 256 bytes safety area
- sta lowwater+1
- rts
+ lda sp
+ sta initialsp
+ sub #<__STACKSIZE__
+ sta lowwater
+ lda sp+1
+ sta initialsp+1
+ sbc #>__STACKSIZE__
+ add #1 ; Add 256 bytes safety area
+ sta lowwater+1
+ rts
.endproc
; 6502 stack checking routine. Does not need to save any registers.
; Safety zone for the hardware stack is 12 bytes.
+.code
+
stkchk: tsx
cpx #12
bcc Fail ; Jump on stack overflow
- rts ; Return if ok
+ rts ; Return if ok
; ----------------------------------------------------------------------------
; C stack checking routine. Does not need to save any registers.
+.code
+
cstkchk:
; Check the high byte of the software stack
lowwater: .word 0
-
+