From d1f5b74f013b3ab62ba3fbc93b02328faeb58d04 Mon Sep 17 00:00:00 2001
From: "ol.sc"
Date: Sat, 2 Oct 2010 10:37:20 +0000
Subject: [PATCH] Now that we reduce the size of the RAM memory area by the
stacksize in the linker configuration we need to add the stacksize to end of
the RAM area when setting the initial stack pointer in the startup code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4822 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
libsrc/atmos/crt0.s | 7 ++++---
libsrc/c128/crt0.s | 6 +++---
libsrc/c64/crt0.s | 5 +++--
libsrc/geos/devel/crt0.s | 5 +++--
libsrc/lynx/crt0.s | 6 +++---
libsrc/vic20/crt0.s | 5 +++--
6 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/libsrc/atmos/crt0.s b/libsrc/atmos/crt0.s
index 4fe9d5cbc..1f561cfe6 100644
--- a/libsrc/atmos/crt0.s
+++ b/libsrc/atmos/crt0.s
@@ -8,7 +8,8 @@
.export __STARTUP__ : absolute = 1 ; Mark as startup
.import initlib, donelib
.import callmain, zerobss
- .import __RAM_START__, __RAM_SIZE__, __BSS_LOAD__
+ .import __RAM_START__, __RAM_SIZE__
+ .import __BSS_LOAD__, __STACKSIZE__
.include "zeropage.inc"
.include "atmos.inc"
@@ -60,9 +61,9 @@ L1: lda sp,x
tsx
stx spsave ; save system stk ptr
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
; Call module constructors
diff --git a/libsrc/c128/crt0.s b/libsrc/c128/crt0.s
index f5ba7b9ab..be478e368 100644
--- a/libsrc/c128/crt0.s
+++ b/libsrc/c128/crt0.s
@@ -9,7 +9,7 @@
.import push0, callmain
.import RESTOR, BSOUT, CLRCH
.import __INTERRUPTOR_COUNT__
- .import __RAM_START__, __RAM_SIZE__
+ .import __RAM_START__, __RAM_SIZE__, __STACKSIZE__
.include "zeropage.inc"
.include "c128.inc"
@@ -77,9 +77,9 @@ L1: lda sp,x
tsx
stx spsave ; Save the system stack pointer
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
; If we have IRQ functions, chain our stub into the IRQ vector
diff --git a/libsrc/c64/crt0.s b/libsrc/c64/crt0.s
index a533d7568..ffeebd834 100644
--- a/libsrc/c64/crt0.s
+++ b/libsrc/c64/crt0.s
@@ -10,6 +10,7 @@
.import RESTOR, BSOUT, CLRCH
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
+ .import __STACKSIZE__ ; Linker generated
.include "zeropage.inc"
.include "c64.inc"
@@ -71,9 +72,9 @@ L1: lda sp,x
tsx
stx spsave ; Save the system stack ptr
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
; If we have IRQ functions, chain our stub into the IRQ vector
diff --git a/libsrc/geos/devel/crt0.s b/libsrc/geos/devel/crt0.s
index 6d85a9631..fb0289a4c 100644
--- a/libsrc/geos/devel/crt0.s
+++ b/libsrc/geos/devel/crt0.s
@@ -8,6 +8,7 @@
.export __STARTUP__ : absolute = 1 ; Mark as startup
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
+ .import __STACKSIZE__ ; Linker generated
.import initlib, donelib
.import callmain
.import zerobss
@@ -25,9 +26,9 @@
; Setup stack
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
; Call module constructors
diff --git a/libsrc/lynx/crt0.s b/libsrc/lynx/crt0.s
index a49902c4a..397d85bb3 100644
--- a/libsrc/lynx/crt0.s
+++ b/libsrc/lynx/crt0.s
@@ -25,7 +25,7 @@
.import _main
.import __BSS_LOAD__
.import __INTERRUPTOR_COUNT__
- .import __RAM_START__, __RAM_SIZE__
+ .import __RAM_START__, __RAM_SIZE__, __STACKSIZE__
.include "zeropage.inc"
.include "extzp.inc"
@@ -94,9 +94,9 @@ MikeyInitData: .byte $9e,$18,$68,$1f,$00,$00,$00,$00,$00,$ff,$1a,$1b,$04,$0d,$2
; setup the stack
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1
; Init Mickey
diff --git a/libsrc/vic20/crt0.s b/libsrc/vic20/crt0.s
index 9c8a53be8..4b1673780 100644
--- a/libsrc/vic20/crt0.s
+++ b/libsrc/vic20/crt0.s
@@ -10,6 +10,7 @@
.import RESTOR, BSOUT, CLRCH
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
+ .import __STACKSIZE__ ; Linker generated
.include "zeropage.inc"
.include "vic20.inc"
@@ -59,9 +60,9 @@ L1: lda sp,x
tsx
stx spsave ; Save the system stack ptr
- lda #<(__RAM_START__ + __RAM_SIZE__)
+ lda #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
; If we have IRQ functions, chain our stub into the IRQ vector
--
2.39.5