Place the zero page variables into the ZEROPAGE segment

git-svn-id: svn://svn.cc65.org/cc65/trunk@322 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2000-09-07 21:49:13 +00:00
parent 5446245eb4
commit e0a619ff90
7 changed files with 148 additions and 103 deletions

View File

@ -15,25 +15,33 @@
; Define and export the ZP variables for the C64 runtime ; Define and export the ZP variables for the C64 runtime
.exportzp sp, sreg, regsave .exportzp sp, sreg, regsave
.exportzp ptr1, ptr2, ptr3, ptr4 .exportzp ptr1, ptr2, ptr3, ptr4
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace .exportzp regbank, zpspace
; These zero page entries overlap with the sweet-16 registers. ; These zero page entries overlap with the sweet-16 registers in
; must be changed if sweet-16 is to be supported ; the standard apple2 linker config. They must be changed if sweet-16
sp = $00 ; stack pointer ; is to be supported
sreg = $02 ; secondary register/high 16 bit for longs
regsave = $04 ; slot to save/restore (E)AX into .zeropage
ptr1 = $08 ;
ptr2 = $0A zpstart = *
ptr3 = $0C sp: .res 2 ; Stack pointer
ptr4 = $0E sreg: .res 2 ; Secondary register/high 16 bit for longs
tmp1 = $10 regsave: .res 2 ; slot to save/restore (E)AX into
tmp2 = $11 ptr1: .res 2
tmp3 = $12 ptr2: .res 2
tmp4 = $13 ptr3: .res 2
regbank = $14 ; 6 byte register bank ptr4: .res 2
zpspace = $1A ; Zero page space allocated tmp1: .res 1
tmp2: .res 1
tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; Actual code ; Actual code

View File

@ -26,20 +26,27 @@
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp fntemp, regbank, zpspace .exportzp fntemp, regbank, zpspace
sp = $D2 ; (2bytes) stack pointer
sreg = $D4 ; (2bytes) secondary register/high 16 bit for longs .zeropage
regsave = $D6 ; (4bytes) slot to save/restore (E)AX into
ptr1 = $DA ; (2bytes) zpstart = *
ptr2 = $DC ; (2bytes) sp: .res 2 ; Stack pointer
ptr3 = $DE ; (2bytes) sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr4 = $E0 ; (2bytes) regsave: .res 2 ; slot to save/restore (E)AX into
tmp1 = $E2 ; (1byte) ptr1: .res 2
tmp2 = $E3 ; (1byte) ptr2: .res 2
tmp3 = $E4 ; (1byte) ptr3: .res 2
tmp4 = $E5 ; (1byte) ptr4: .res 2
fntemp = $E6 ; (2bytes) pointer to file name tmp1: .res 1
regbank = $E8 ; (6bytes) 6 byte register bank tmp2: .res 1
zpspace = $EE - sp ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
fntemp: .res 2 ; Pointer to file name
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; EXE header ; EXE header
@ -86,12 +93,12 @@ L1: lda sp,y
sta appmsav+1 sta appmsav+1
jsr getmemtop ; adjust for graphics mode to use jsr getmemtop ; adjust for graphics mode to use
sta sp sta sp
sta APPMHI sta APPMHI
stx sp+1 ; Set argument stack ptr stx sp+1 ; Set argument stack ptr
stx APPMHI+1 stx APPMHI+1
; set left margin to 0 ; set left margin to 0
lda LMARGN lda LMARGN
@ -104,7 +111,7 @@ L1: lda sp,y
ldx SHFLOK ldx SHFLOK
stx old_shflok stx old_shflok
sta SHFLOK sta SHFLOK
; Initialize the heap ; Initialize the heap
jsr __hinit jsr __hinit
@ -160,7 +167,7 @@ _exit: jsr doatexit ; call exit functions
sta SHFLOK sta SHFLOK
; restore APPMHI ; restore APPMHI
lda appmsav lda appmsav
sta APPMHI sta APPMHI
lda appmsav+1 lda appmsav+1
@ -259,9 +266,9 @@ grmemusage:
; 220 GRAPHICS 0 ; 220 GRAPHICS 0
; 230 FOR I=0 TO 31:PRINT #1;I;":",G(I);" - ";G(0)-G(I):NEXT I ; 230 FOR I=0 TO 31:PRINT #1;I;":",G(I);" - ";G(0)-G(I):NEXT I
; 240 CLOSE #1 ; 240 CLOSE #1
; 999 END ; 999 END
; 1000 VAL=PEEK(741)+256*PEEK(742) ; 1000 VAL=PEEK(741)+256*PEEK(742)
; 1010 RETURN ; 1010 RETURN
.bss .bss

View File

@ -19,19 +19,25 @@
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace .exportzp regbank, zpspace
sp = $02 ; stack pointer .zeropage
sreg = $04 ; secondary register/high 16 bit for longs
regsave = $06 ; slot to save/restore (E)AX into zpstart = *
ptr1 = $0A ; sp: .res 2 ; Stack pointer
ptr2 = $0C sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr3 = $0E regsave: .res 2 ; slot to save/restore (E)AX into
ptr4 = $10 ptr1: .res 2
tmp1 = $12 ptr2: .res 2
tmp2 = $13 ptr3: .res 2
tmp3 = $14 ptr4: .res 2
tmp4 = $15 tmp1: .res 1
regbank = $16 ; 6 byte register bank tmp2: .res 1
zpspace = $1A ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; BASIC header with a SYS call ; BASIC header with a SYS call

View File

@ -19,19 +19,25 @@
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace .exportzp regbank, zpspace
sp = $02 ; stack pointer .zeropage
sreg = $04 ; secondary register/high 16 bit for longs
regsave = $06 ; slot to save/restore (E)AX into zpstart = *
ptr1 = $0A ; sp: .res 2 ; Stack pointer
ptr2 = $0C sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr3 = $0E regsave: .res 2 ; slot to save/restore (E)AX into
ptr4 = $10 ptr1: .res 2
tmp1 = $12 ptr2: .res 2
tmp2 = $13 ptr3: .res 2
tmp3 = $14 ptr4: .res 2
tmp4 = $15 tmp1: .res 1
regbank = $16 ; 6 byte register bank tmp2: .res 1
zpspace = $1A ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; BASIC header with a SYS call ; BASIC header with a SYS call

View File

@ -25,19 +25,25 @@
.exportzp crtc, sid, IPCcia, cia, acia, tpi1, tpi2 .exportzp crtc, sid, IPCcia, cia, acia, tpi1, tpi2
.exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf .exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf
sp = $02 ; stack pointer .zeropage
sreg = $04 ; secondary register/high 16 bit for longs
regsave = $06 ; slot to save/restore (E)AX into zpstart = *
ptr1 = $0A ; sp: .res 2 ; Stack pointer
ptr2 = $0C sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr3 = $0E regsave: .res 2 ; slot to save/restore (E)AX into
ptr4 = $10 ptr1: .res 2
tmp1 = $12 ptr2: .res 2
tmp2 = $13 ptr3: .res 2
tmp3 = $14 ptr4: .res 2
tmp4 = $15 tmp1: .res 1
regbank = $16 ; 6 byte register bank tmp2: .res 1
zpspace = $1A ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; BASIC header and a small BASIC program. Since it is not possible to start ; BASIC header and a small BASIC program. Since it is not possible to start

View File

@ -19,19 +19,25 @@
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace .exportzp regbank, zpspace
sp = $02 ; stack pointer .zeropage
sreg = $04 ; secondary register/high 16 bit for longs
regsave = $06 ; slot to save/restore (E)AX into zpstart = *
ptr1 = $0A ; sp: .res 2 ; Stack pointer
ptr2 = $0C sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr3 = $0E regsave: .res 2 ; slot to save/restore (E)AX into
ptr4 = $10 ptr1: .res 2
tmp1 = $12 ptr2: .res 2
tmp2 = $13 ptr3: .res 2
tmp3 = $14 ptr4: .res 2
tmp4 = $15 tmp1: .res 1
regbank = $16 ; 6 byte register bank tmp2: .res 1
zpspace = $1A ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; BASIC header with a SYS call ; BASIC header with a SYS call

View File

@ -19,19 +19,25 @@
.exportzp tmp1, tmp2, tmp3, tmp4 .exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace .exportzp regbank, zpspace
sp = $02 ; stack pointer .zeropage
sreg = $04 ; secondary register/high 16 bit for longs
regsave = $06 ; slot to save/restore (E)AX into zpstart = *
ptr1 = $0A ; sp: .res 2 ; Stack pointer
ptr2 = $0C sreg: .res 2 ; Secondary register/high 16 bit for longs
ptr3 = $0E regsave: .res 2 ; slot to save/restore (E)AX into
ptr4 = $10 ptr1: .res 2
tmp1 = $12 ptr2: .res 2
tmp2 = $13 ptr3: .res 2
tmp3 = $14 ptr4: .res 2
tmp4 = $15 tmp1: .res 1
regbank = $16 ; 6 byte register bank tmp2: .res 1
zpspace = $1A ; Zero page space allocated tmp3: .res 1
tmp4: .res 1
regbank: .res 6 ; 6 byte register bank
zpspace = * - zpstart ; Zero page space allocated
.code
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; BASIC header with a SYS call ; BASIC header with a SYS call