1
0
mirror of https://github.com/cc65/cc65.git synced 2024-09-28 10:55:43 +00:00

Move the startup code into its own segment

git-svn-id: svn://svn.cc65.org/cc65/trunk@1581 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2002-11-22 17:43:30 +00:00
parent 3274257528
commit bbbf2ac45a
3 changed files with 35 additions and 13 deletions

View File

@ -2,7 +2,7 @@
; Startup code for cc65 (C16 version)
;
; This must be the *first* file on the linker command line
;
;
; Note: The C16 is actually the Plus/4 with just 16KB of memory. So many
; things are similar here, and we even use the plus4.inc include file.
;
@ -17,18 +17,23 @@
; ------------------------------------------------------------------------
; Create an empty LOWCODE segment to avoid linker warnings
.segment "LOWCODE"
; ------------------------------------------------------------------------
; Place the startup code in a special segment.
.segment "STARTUP"
; BASIC header with a SYS call
.code
.org $0FFF
.word Head ; Load address
Head: .word @Next
.word 1000 ; Line number
.byte $9E,"4109" ; SYS 4109
.byte $00 ; End of BASIC line
@Next: .word 0 ; BASIC end marker
.reloc
; ------------------------------------------------------------------------
; Actual code

View File

@ -15,25 +15,30 @@
.include "../cbm/cbm.inc"
; ------------------------------------------------------------------------
; Create an empty LOWCODE segment to avoid linker warnings
.segment "LOWCODE"
; ------------------------------------------------------------------------
; Place the startup code in a special segment.
.segment "STARTUP"
; BASIC header with a SYS call
.code
.org $3FF
.word Head ; Load address
Head: .word @Next
.word 1000 ; Line number
.byte $9E,"1037" ; SYS 1037
.byte $00 ; End of BASIC line
@Next: .word 0 ; BASIC end marker
.reloc
; ------------------------------------------------------------------------
; Actual code
ldx #zpspace-1
L1: lda sp,x
sta zpsave,x ; Save the zero page locations we need
sta zpsave,x ; Save the zero page locations we need
dex
bpl L1
@ -95,6 +100,9 @@ L2: lda zpsave,x
rts
; ------------------------------------------------------------------------
; Data
.data
zpsave: .res zpspace

View File

@ -16,9 +16,17 @@
.include "../cbm/cbm.inc"
; ------------------------------------------------------------------------
; Create an empty LOWCODE segment to avoid linker warnings
.segment "LOWCODE"
; ------------------------------------------------------------------------
; Place the startup code in a special segment.
.segment "STARTUP"
; BASIC header with a SYS call
.segment "EXEHDR"
.word Head ; Load address
Head: .word @Next
.word 1000 ; Line number
@ -34,8 +42,6 @@ Head: .word @Next
; ------------------------------------------------------------------------
; Actual code
.code
ldx #zpspace-1
L1: lda sp,x
sta zpsave,x ; Save the zero page locations we need
@ -99,6 +105,9 @@ L2: lda zpsave,x
jmp RESTOR
; ------------------------------------------------------------------------
; Data
.data
zpsave: .res zpspace