From 091f190852ad3526e2a6a6936745be29531daa0a Mon Sep 17 00:00:00 2001 From: Michael Steil Date: Sun, 12 Oct 2008 04:31:52 +0000 Subject: [PATCH] convert most of ZP of non CONFIG_SMALL into .res format --- defines_apple.s | 118 +++++++++++++------------- defines_cbm.s | 161 +++++++++++++++++++++--------------- defines_kim.s | 117 +++++++++++++------------- msbasic.s | 214 ++++++++++++++++++++++++++++-------------------- 4 files changed, 333 insertions(+), 277 deletions(-) diff --git a/defines_apple.s b/defines_apple.s index b45f3f4..ba0b09e 100644 --- a/defines_apple.s +++ b/defines_apple.s @@ -23,65 +23,64 @@ LINNUM := $0053 TXPSV := $0053 INPUTBUFFER := $0200 INPUTBUFFERX := $0200 -TEMPPT := $0063-14 -LASTPT := $0064-14 -INDEX := $0061 -DEST := $0071-14 -RESULT := $0073-14 -RESULT_LAST := $0077-14 -TXTTAB := $0078-14 -VARTAB := $007A-14 -ARYTAB := $007C-14 -STREND := $007E-14 -FRETOP := $0080-14 -FRESPC := $0082-14 -MEMSIZ := $0084-14 -CURLIN := $0086-14 -OLDLIN := $0088-14 -OLDTEXT := $008A-14 -Z8C := $008C-14 -DATPTR := $008E-14 -INPTR := $0090-14 -VARNAM := $0092-14 -VARPNT := $0094-14 -FORPNT := $0096-14 -LASTOP := $0098-14 -CPRTYP := $009A-14 -FNCNAM := $009B-14 -TEMP3 := $009B-14 ; same -DSCPTR := $009D-14 - -DSCLEN := $00A0-14 -JMPADRS := $00A1-14 -Z52 := $00A2-14 -LENGTH := $00A2-14 -ARGEXTENSION := $00A3-14 ; overlap with JMPADRS! (same on c64) -TEMP1 := $00A4-14 -HIGHDS := $00A5-14 -HIGHTR := $00A7-14 -TEMP2 := $00A9-14 -INDX := $00AA-14 -TMPEXP := $00AA-14 ; same -EXPON := $00AB-14 -LOWTR := $00AC-14 ; $9D also EXPSGN -LOWTRX := $00AC-14 ; $9D also EXPSGN -EXPSGN := $00AD-14 -FAC := $00AE-14 -FAC_LAST := $00B2-14 -FACSIGN := $00B3-14 -SERLEN := $00B4-14 -SHIFTSIGNEXT := $00B5-14 -ARG := $00B6-14 -ARG_LAST := $00BA-14 -ARGSIGN := $00BB-14 -STRNG1 := $00BC-14 ; TODO: also SGNCPR -FACEXTENSION := $00BD-14 -STRNG2 := $00BE-14 -CHRGET := $00C0-14 -CHRGOT := $00C6-14 -TXTPTR := $00C7-14 - -RNDSEED := $00D8-14 +;TEMPPT := $0063-14 +;LASTPT := $0064-14 +;TEMPST := $58 +;INDEX := $0061 +;DEST := $0071-14 +;RESULT := $0073-14 +;RESULT_LAST := $0077-14 +;TXTTAB := $0078-14 +;VARTAB := $007A-14 +;ARYTAB := $007C-14 +;STREND := $007E-14 +;FRETOP := $0080-14 +;FRESPC := $0082-14 +;MEMSIZ := $0084-14 +;CURLIN := $0086-14 +;OLDLIN := $0088-14 +;OLDTEXT := $008A-14 +;Z8C := $008C-14 +;DATPTR := $008E-14 +;INPTR := $0090-14 +;VARNAM := $0092-14 +;VARPNT := $0094-14 +;FORPNT := $0096-14 +;LASTOP := $0098-14 +;CPRTYP := $009A-14 +;FNCNAM := $009B-14 +;TEMP3 := $009B-14 ; same +;DSCPTR := $009D-14 +;DSCLEN := $00A0-14 +;JMPADRS := $00A1-14 +;Z52 := $00A2-14 +;LENGTH := $00A2-14 +;ARGEXTENSION := $00A3-14 ; overlap with JMPADRS! (same on c64) +;TEMP1 := $00A4-14 +;HIGHDS := $00A5-14 +;HIGHTR := $00A7-14 +;TEMP2 := $00A9-14 +;INDX := $00AA-14 +;TMPEXP := $00AA-14 ; same +;EXPON := $00AB-14 +;LOWTR := $00AC-14 ; $9D also EXPSGN +;LOWTRX := $00AC-14 ; $9D also EXPSGN +;EXPSGN := $00AD-14 +;FAC := $00AE-14 +;FAC_LAST := $00B2-14 +;FACSIGN := $00B3-14 +;SERLEN := $00B4-14 +;SHIFTSIGNEXT := $00B5-14 +;ARG := $00B6-14 +;ARG_LAST := $00BA-14 +;ARGSIGN := $00BB-14 +;STRNG1 := $00BC-14 ; TODO: also SGNCPR +;FACEXTENSION := $00BD-14 +;STRNG2 := $00BE-14 +;CHRGET := $00C0-14 +;CHRGOT := $00C6-14 +;TXTPTR := $00C7-14 +;RNDSEED := $00D8-14 L1800 := $1800 L1873 := $1873 @@ -91,7 +90,6 @@ MONCOUT := $FDED STACK_TOP := $F8 BYTES_PER_FRAME := $12 SPACE_FOR_GOSUB := $36 -TEMPST := $58 FOR_STACK1 := $0F FOR_STACK2 := $09 NUM_TOKENS := $1C diff --git a/defines_cbm.s b/defines_cbm.s index 7e35243..96a4df0 100644 --- a/defines_cbm.s +++ b/defines_cbm.s @@ -1,15 +1,15 @@ .ifdef CBM1 -;USR := $0000 -;Z00 := $0000 +USR := $0000 +Z00 := $0000 INPUTBUFFERX := $0000 -;L0001 := $0001 -;L0002 := $0002 -;GOWARM := $0003 +L0001 := $0001 +L0002 := $0002 +GOWARM := $0003 Z03 := $0003 ; same GOSTROUT := $0006 GOGIVEAYF := $0008 -;Z15 := $0004 +Z15 := $0004 Z16 := $0005 Z17 := $0006 Z18 := $0007 @@ -17,8 +17,8 @@ LINNUM := $0008 TXPSV := $0008 INPUTBUFFER := $000A -;CHARAC := $005A -;ENDCHR := $005B +CHARAC := $005A +ENDCHR := $005B EOLPNTR := $005C DIMFLG := $005D VALTYP := $005E @@ -27,67 +27,94 @@ SUBFLG := $0061 INPUTFLG := $0062 CPRMASK := $0063 Z14 := $0064 ; Ctrl+O flag -TEMPPT := $0065 -LASTPT := $0066 -TEMPST := $0068 -INDEX := $0071 -DEST := $0073 -RESULT := $0075 -RESULT_LAST := $0079 -TXTTAB := $007A -VARTAB := $007C -ARYTAB := $007E -STREND := $0080 -FRETOP := $0082 -FRESPC := $0084 -MEMSIZ := $0086 -CURLIN := $0088 -OLDLIN := $008A -OLDTEXT := $008C -Z8C := $008E -DATPTR := $0090 -INPTR := $0092 -VARNAM := $0094 -VARPNT := $0096 -FORPNT := $0098 -LASTOP := $009A -CPRTYP := $009C -FNCNAM := $009D -TEMP3 := $009D; ; same -DSCPTR := $009F -DSCLEN := $00A2 -JMPADRS := $00A3 -Z52 := $00A4; -LENGTH := $00A4 -ARGEXTENSION := $00A5 ; overlap with JMPADRS! (same on c64) -TEMP1 := $00A6 -HIGHDS := $00A7 -HIGHTR := $00A9 -TEMP2 := $00AB -INDX := $00AC -TMPEXP := $00AC ; same -EXPON := $00AD -LOWTR := $00AE ; $9D also EXPSGN -LOWTRX := $00AE ; $9D also EXPSGN -EXPSGN := $00AF -FAC := $00B0 -FAC_LAST := $00B4 -FACSIGN := $00B5 -SERLEN := $00B6 -SHIFTSIGNEXT := $00B7 -ARG := $00B8 -ARG_LAST := $00BC -ARGSIGN := $00BD -STRNG1 := $00BE ; TODO: also SGNCPR -FACEXTENSION := $00BF -STRNG2 := $00C0 -CHRGET := $00C2 -CHRGOT := $00C8 -TXTPTR := $00C9 -L00CF := $00CF -RNDSEED := $00DA +;TEMPPT := $0065 +;LASTPT := $0066 +;TEMPST := $0068 +;INDEX := $0071 +;DEST := $0073 +;RESULT := $0075 +;RESULT_LAST := $0079 +;TXTTAB := $007A +;VARTAB := $007C +;ARYTAB := $007E +;STREND := $0080 +;FRETOP := $0082 +;FRESPC := $0084 +;MEMSIZ := $0086 +;CURLIN := $0088 +;OLDLIN := $008A +;OLDTEXT := $008C +;Z8C := $008E +;DATPTR := $0090 +;INPTR := $0092 +;VARNAM := $0094 +;VARPNT := $0096 +;FORPNT := $0098 +;LASTOP := $009A +;CPRTYP := $009C +;FNCNAM := $009D +;TEMP3 := $009D; ; same +;DSCPTR := $009F +;DSCLEN := $00A2 +;JMPADRS := $00A3 +;Z52 := $00A4; +;LENGTH := $00A4 +;ARGEXTENSION := $00A5 ; overlap with JMPADRS! (same on c64) +;TEMP1 := $00A6 +;HIGHDS := $00A7 +;HIGHTR := $00A9 +;TEMP2 := $00AB +;INDX := $00AC +;TMPEXP := $00AC ; same +;EXPON := $00AD +;LOWTR := $00AE ; $9D also EXPSGN +;LOWTRX := $00AE ; $9D also EXPSGN +;EXPSGN := $00AF +;FAC := $00B0 +;FAC_LAST := $00B4 +;FACSIGN := $00B5 +;SERLEN := $00B6 +;SHIFTSIGNEXT := $00B7 +;ARG := $00B8 +;ARG_LAST := $00BC +;ARGSIGN := $00BD +;STRNG1 := $00BE ; TODO: also SGNCPR +;FACEXTENSION := $00BF +;STRNG2 := $00C0 +;CHRGET := $00C2 +;CHRGOT := $00C8 +;TXTPTR := $00C9 +;L00CF := $00CF +;RNDSEED := $00DA Z96 := $020C .else +USR := $0000 +Z00 := $0000 +L0001 := $0001 +L0002 := $0002 +GOWARM := $0003 +Z15 := $0004 +CHARAC := $005A-82-5 +ENDCHR := $005B-82-5 +EOLPNTR := $005C-82-5 +DIMFLG := $005D-82-5 +VALTYP := $005E-82-5 +DATAFLG := $0060-82-5 +SUBFLG := $0061-82-5 +INPUTFLG := $0062-82-5 +CPRMASK := $0063-82-5 +Z14 := $0064-82-5 ; Ctrl+O flag + +Z17 := $0006 +GOSTROUT := $0006 +Z18 := $0007 +GOGIVEAYF := $0008 +Z03 := $000E;3 ; same +LINNUM := $0011;0008 +Z96 := $00E8-82 +Z16 := $0118-82 +TXPSV = LASTOP + INPUTBUFFER := $0200;00A INPUTBUFFERX := $0200 .endif diff --git a/defines_kim.s b/defines_kim.s index 704e1e8..55be97e 100644 --- a/defines_kim.s +++ b/defines_kim.s @@ -23,65 +23,65 @@ LINNUM := $0019 TXPSV := $0019 INPUTBUFFER := $001B INPUTBUFFERX := $0000 -TEMPPT := $0063 -LASTPT := $0064 -INDEX := $006F -DEST := $0071 -RESULT := $0073 -RESULT_LAST := $0077 -TXTTAB := $0078 -VARTAB := $007A -ARYTAB := $007C -STREND := $007E -FRETOP := $0080 -FRESPC := $0082 -MEMSIZ := $0084 -CURLIN := $0086 -OLDLIN := $0088 -OLDTEXT := $008A -Z8C := $008C -DATPTR := $008E -INPTR := $0090 -VARNAM := $0092 -VARPNT := $0094 -FORPNT := $0096 -LASTOP := $0098 -CPRTYP := $009A -FNCNAM := $009B -TEMP3 := $009B ; same -DSCPTR := $009D +;TEMPPT := $0063 +;LASTPT := $0064 +;TEMPST := $66 +;INDEX := $006F +;DEST := $0071 +;RESULT := $0073 +;RESULT_LAST := $0077 +;TXTTAB := $0078 +;VARTAB := $007A +;ARYTAB := $007C +;STREND := $007E +;FRETOP := $0080 +;FRESPC := $0082 +;MEMSIZ := $0084 +;CURLIN := $0086 +;OLDLIN := $0088 +;OLDTEXT := $008A +;Z8C := $008C +;DATPTR := $008E +;INPTR := $0090 +;VARNAM := $0092 +;VARPNT := $0094 +;FORPNT := $0096 +;LASTOP := $0098 +;CPRTYP := $009A +;FNCNAM := $009B +;TEMP3 := $009B ; same +;DSCPTR := $009D -DSCLEN := $00A0 -JMPADRS := $00A1 -Z52 := $00A2 -LENGTH := $00A2 -ARGEXTENSION := $00A3 ; overlap with JMPADRS! (same on c64) -TEMP1 := $00A4 -HIGHDS := $00A5 -HIGHTR := $00A7 -TEMP2 := $00A9 -INDX := $00AA -TMPEXP := $00AA ; same -EXPON := $00AB -LOWTR := $00AC ; $9D also EXPSGN -LOWTRX := $00AC ; $9D also EXPSGN -EXPSGN := $00AD -FAC := $00AE -FAC_LAST := $00B2 -FACSIGN := $00B3 -SERLEN := $00B4 -SHIFTSIGNEXT := $00B5 -ARG := $00B6 -ARG_LAST := $00BA -ARGSIGN := $00BB -STRNG1 := $00BC ; TODO: also SGNCPR -FACEXTENSION := $00BD -STRNG2 := $00BE -CHRGET := $00C0 -CHRGOT := $00C6 -TXTPTR := $00C7 - -RNDSEED := $00D8 +;DSCLEN := $00A0 +;JMPADRS := $00A1 +;Z52 := $00A2 +;LENGTH := $00A2 +;ARGEXTENSION := $00A3 ; overlap with JMPADRS! (same on c64) +;TEMP1 := $00A4 +;HIGHDS := $00A5 +;HIGHTR := $00A7 +;TEMP2 := $00A9 +;INDX := $00AA +;TMPEXP := $00AA ; same +;EXPON := $00AB +;LOWTR := $00AC ; $9D also EXPSGN +;LOWTRX := $00AC ; $9D also EXPSGN +;EXPSGN := $00AD +;FAC := $00AE +;FAC_LAST := $00B2 +;FACSIGN := $00B3 +;SERLEN := $00B4 +;SHIFTSIGNEXT := $00B5 +;ARG := $00B6 +;ARG_LAST := $00BA +;ARGSIGN := $00BB +;STRNG1 := $00BC ; TODO: also SGNCPR +;FACEXTENSION := $00BD +;STRNG2 := $00BE +;CHRGET := $00C0 +;CHRGOT := $00C6 +;TXTPTR := $00C7 +;RNDSEED := $00D8 L1800 := $1800 L1873 := $1873 @@ -91,7 +91,6 @@ MONCOUT := $1EA0 STACK_TOP := $FC BYTES_PER_FRAME := $12 SPACE_FOR_GOSUB := $36 -TEMPST := $66 FOR_STACK1 := $0F FOR_STACK2 := $09 NUM_TOKENS := $1D diff --git a/msbasic.s b/msbasic.s index b7a7710..51b5c54 100644 --- a/msbasic.s +++ b/msbasic.s @@ -81,101 +81,133 @@ CONFIG_SAFE_NAMENOTFOUND := 1 .include "macros.s" .zeropage -.ifdef CONFIG_CBM_ALL -USR: .res 1 -Z00 = USR -L0001: .res 1 -L0002: .res 1 -GOWARM: .res 1 -Z15: .res 1 +.ifndef CONFIG_SMALL .ifdef CBM1 -CHARAC = $5A -ENDCHR = $5B -.else -CHARAC = GOWARM -ENDCHR = Z15 -.endif - +.res $65 .endif .ifdef CBM2 - -EOLPNTR: .res 1 -Z17: .res 1 -GOSTROUT = Z17 -DIMFLG = Z17 -Z18: .res 1 -VALTYP = Z18 -GOGIVEAYF: .res 1 -DATAFLG: .res 1 -SUBFLG: .res 1 -INPUTFLG: .res 1 -CPRMASK: .res 1 -Z14: .res 1 -Z03: .res 3 -LINNUM: .res 2 -TEMPPT: .res 1; := $0065-82 -LASTPT: .res 2; := $0066-82 -TEMPST: .res 9; := $0068-82 -INDEX: .res 2; := $0071-82 -DEST: .res 2; := $0073-82 -RESULT: .res 4; := $0075-82 -RESULT_LAST:.res 1; := $0079-82 -TXTTAB: .res 2; := $007A-82 -VARTAB: .res 2; := $007C-82 -ARYTAB: .res 2; := $007E-82 -STREND: .res 2; := $0080-82 -FRETOP: .res 2; := $0082-82 -FRESPC: .res 2; := $0084-82 -MEMSIZ: .res 2; := $0086-82 -CURLIN: .res 2; := $0088-82 -OLDLIN: .res 2; := $008A-82 -OLDTEXT: .res 2; := $008C-82 -Z8C: .res 2; := $008E-82 -DATPTR: .res 2; := $0090-82 -INPTR: .res 2; := $0092-82 -VARNAM: .res 2; := $0094-82 -VARPNT: .res 2; := $0096-82 -FORPNT: .res 2; := $0098-82 -LASTOP: .res 2; := $009A-82 -TXPSV = LASTOP -CPRTYP: .res 1; := $009C-82 -FNCNAM: .res 2; := $009D-82 -TEMP3 = FNCNAM -DSCPTR: .res 3; := $009F-82 -DSCLEN: .res 1; := $00A2-82 -JMPADRS: .res 1; := $00A3-82 -Z52: .res 1; := $00A4-82; -LENGTH = Z52 -ARGEXTENSION:.res 1; := $00A5-82 ; overlap with JMPADRS! (same on c64) -TEMP1: .res 1; := $00A6-82 -HIGHDS: .res 2; := $00A7-82 -HIGHTR: .res 2; := $00A9-82 -TEMP2: .res 1; := $00AB-82 -INDX: .res 1; := $00AC-82 -TMPEXP = INDX -EXPON: .res 1; := $00AD-82 -LOWTR: .res 1; := $00AE-82 ; $9D also EXPSGN -LOWTRX = LOWTR -EXPSGN: .res 1; := $00AF-82 -FAC: .res 4; := $00B0-82 -FAC_LAST: .res 1; := $00B4-82 -FACSIGN: .res 1; := $00B5-82 -SERLEN: .res 1; := $00B6-82 -SHIFTSIGNEXT:.res 1; := $00B7-82 -ARG: .res 4; := $00B8-82 -ARG_LAST: .res 1; := $00BC-82 -ARGSIGN: .res 1; := $00BD-82 -STRNG1: .res 1; := $00BE-82 ; TODO: also SGNCPR -FACEXTENSION:.res 1; := $00BF-82 -STRNG2: .res 2; := $00C0-82 -CHRGET: .res 6; := $00C2-82 -CHRGOT: .res 1; := $00C8-82 -TXTPTR: .res 6; := $00C9-82 -L00CF: .res 11; := $00CF-82 -RNDSEED: .res 14; := $00DA-82 -Z96: .res 48; := $00E8-82 -Z16: .res 1; := $0118-82 +.res $13 +.endif +.ifdef KIM +.res $63 +.endif +.ifdef APPLE +.res $55 +.endif +TEMPPT: + .res 1 +LASTPT: + .res 2 +TEMPST: + .res 9 +INDEX: + .res 2 +DEST: + .res 2 +RESULT: + .res 4 +RESULT_LAST: + .res 1 +TXTTAB: + .res 2 +VARTAB: + .res 2 +ARYTAB: + .res 2 +STREND: + .res 2 +FRETOP: + .res 2 +FRESPC: + .res 2 +MEMSIZ: + .res 2 +CURLIN: + .res 2 +OLDLIN: + .res 2 +OLDTEXT: + .res 2 +Z8C: + .res 2 +DATPTR: + .res 2 +INPTR: + .res 2 +VARNAM: + .res 2 +VARPNT: + .res 2 +FORPNT: + .res 2 +LASTOP: + .res 2 +CPRTYP: + .res 1 +FNCNAM: +TEMP3: + .res 2 +DSCPTR: + .res 3 +DSCLEN: + .res 1 +JMPADRS: + .res 1 +LENGTH: +Z52: + .res 1 +ARGEXTENSION: + .res 1 +TEMP1: + .res 1 +HIGHDS: + .res 2 +HIGHTR: + .res 2 +TEMP2: + .res 1 +INDX: +TMPEXP: + .res 1 +EXPON: + .res 1 +LOWTR: +LOWTRX: + .res 1 +EXPSGN: + .res 1 +FAC: + .res 4 +FAC_LAST: + .res 1 +FACSIGN: + .res 1 +SERLEN: + .res 1 +SHIFTSIGNEXT: + .res 1 +ARG: + .res 4 +ARG_LAST: + .res 1 +ARGSIGN: + .res 1 +STRNG1: + .res 1 +FACEXTENSION: + .res 1 +STRNG2: + .res 2 +CHRGET: + .res 6 +CHRGOT: + .res 1 +TXTPTR: + .res 6 +L00CF: + .res 11 +RNDSEED: .endif .setcpu "6502"