From: Oliver Schmidt Date: Mon, 7 Mar 2016 00:44:19 +0000 (+0100) Subject: Use AX paradigm for stack initalization. X-Git-Tag: V2.16~172 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=69fbcb30fd393277c93eade43737a52d20582c47;p=cc65 Use AX paradigm for stack initalization. --- diff --git a/libsrc/atari5200/crt0.s b/libsrc/atari5200/crt0.s index 7073bb2a7..ee3d0de4f 100644 --- a/libsrc/atari5200/crt0.s +++ b/libsrc/atari5200/crt0.s @@ -27,9 +27,9 @@ start: ; Set up the stack. lda #<(__RAM_START__ + __RAM_SIZE__ - __RESERVED_MEMORY__) + ldx #>(__RAM_START__ + __RAM_SIZE__ - __RESERVED_MEMORY__) sta sp - lda #>(__RAM_START__ + __RAM_SIZE__ - __RESERVED_MEMORY__) - sta sp+1 ; Set argument stack ptr + stx sp+1 ; Set argument stack ptr ; Call the module constructors. diff --git a/libsrc/gamate/crt0.s b/libsrc/gamate/crt0.s index 99af9b2d9..5a5bb3aa0 100644 --- a/libsrc/gamate/crt0.s +++ b/libsrc/gamate/crt0.s @@ -20,7 +20,7 @@ Start: ldx #0 stx ZP_IRQ_CTRL ; disable calling cartridge IRQ/NMI handler - ; Setup stack and memory mapping + ; Set up stack and memory mapping ;ldx #$FF ; Stack top ($01FF) dex txs @@ -31,7 +31,7 @@ Start: ; Copy the .data segment to RAM jsr copydata - ; setup the stack + ; Set up the stack lda #<(__RAM_START__+__RAM_SIZE__) ldx #>(__RAM_START__+__RAM_SIZE__) sta sp diff --git a/libsrc/nes/crt0.s b/libsrc/nes/crt0.s index de874d363..4d258ff9e 100644 --- a/libsrc/nes/crt0.s +++ b/libsrc/nes/crt0.s @@ -100,9 +100,9 @@ start: ; Set up the stack. lda #<(__SRAM_START__ + __SRAM_SIZE__) + ldx #>(__SRAM_START__ + __SRAM_SIZE__) sta sp - lda #>(__SRAM_START__ + __SRAM_SIZE__) - sta sp+1 ; Set argument stack ptr + stx sp+1 ; Set argument stack ptr ; Call the module constructors. diff --git a/libsrc/pce/crt0.s b/libsrc/pce/crt0.s index e92e9eca3..80b32c089 100644 --- a/libsrc/pce/crt0.s +++ b/libsrc/pce/crt0.s @@ -39,22 +39,21 @@ start: - ; setup the CPU and System-IRQ + ; Set up the CPU and System-IRQ ; Initialize CPU - sei nop - csh ; set high speed CPU mode + csh ; Set high speed CPU mode nop cld nop - ; Setup stack and memory mapping + ; Set up stack and memory mapping ldx #$FF ; Stack top ($21FF) txs - ; at startup all MPRs are set to 0, so init them + ; At startup all MPRs are set to 0, so init them lda #$ff tam #%00000001 ; 0000-1FFF = Hardware page lda #$F8 @@ -98,11 +97,11 @@ start: ; Copy the .data segment to RAM tii __DATA_LOAD__, __DATA_RUN__, __DATA_SIZE__ - ; setup the stack + ; Set up the stack lda #<(__RAM_START__+__RAM_SIZE__) + ldx #>(__RAM_START__+__RAM_SIZE__) sta sp - lda #>(__RAM_START__+__RAM_SIZE__) - sta sp + 1 + stx sp + 1 ; Call module constructors jsr initlib @@ -114,7 +113,7 @@ start: jsr push0 ; argv ldy #4 ; Argument size - jsr _main ; call the users code + jsr _main ; Call the users code ; Call module destructors. This is also the _exit entry. _exit: