From 68cbd01f676dd73aba35e4eaf0464828baa3e277 Mon Sep 17 00:00:00 2001 From: Michael Steil Date: Sun, 12 Oct 2008 01:32:09 +0000 Subject: [PATCH] cleanup --- defines_cbm.s | 125 +++++------------------------------ make.sh | 14 ++-- msbasic.s | 176 ++++++++++++++++++++++++++++---------------------- 3 files changed, 122 insertions(+), 193 deletions(-) diff --git a/defines_cbm.s b/defines_cbm.s index 682e219..7e35243 100644 --- a/defines_cbm.s +++ b/defines_cbm.s @@ -1,14 +1,24 @@ .ifdef CBM1 -USR := $0000 -Z00 := $0000 -L0001 := $0001 -L0002 := $0002 -GOWARM := $0003 +;USR := $0000 +;Z00 := $0000 +INPUTBUFFERX := $0000 +;L0001 := $0001 +;L0002 := $0002 +;GOWARM := $0003 Z03 := $0003 ; same GOSTROUT := $0006 GOGIVEAYF := $0008 -CHARAC := $005A -ENDCHR := $005B + +;Z15 := $0004 +Z16 := $0005 +Z17 := $0006 +Z18 := $0007 +LINNUM := $0008 +TXPSV := $0008 +INPUTBUFFER := $000A + +;CHARAC := $005A +;ENDCHR := $005B EOLPNTR := $005C DIMFLG := $005D VALTYP := $005E @@ -17,14 +27,6 @@ SUBFLG := $0061 INPUTFLG := $0062 CPRMASK := $0063 Z14 := $0064 ; Ctrl+O flag -Z15 := $0004 -Z16 := $0005 -Z17 := $0006 -Z18 := $0007 -LINNUM := $0008 -TXPSV := $0008 -INPUTBUFFER := $000A -INPUTBUFFERX := $0000 TEMPPT := $0065 LASTPT := $0066 TEMPST := $0068 @@ -86,99 +88,6 @@ L00CF := $00CF RNDSEED := $00DA Z96 := $020C .else - - - -;USR := $0000 -;Z00 := $0000 -;L0001 := $0001 -;L0002 := $0002 -;GOWARM := $0003 -;Z15 := $0004 -;Z17 := $0006 -;GOSTROUT := $0006 -;Z18 := $0007 -;GOGIVEAYF := $0008 -;Z03 := $000E;3 ; same -;LINNUM := $0011;0008 - - - - -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 - -;TEMPPT := $0065-82 -;LASTPT := $0066-82 -;TEMPST := $0068-82 -;INDEX := $0071-82 -;DEST := $0073-82 -;RESULT := $0075-82 -;RESULT_LAST := $0079-82 -;TXTTAB := $007A-82 -;VARTAB := $007C-82 -;ARYTAB := $007E-82 -;STREND := $0080-82 -;FRETOP := $0082-82 -;FRESPC := $0084-82 -;MEMSIZ := $0086-82 -;CURLIN := $0088-82 -;OLDLIN := $008A-82 -;OLDTEXT := $008C-82 -;Z8C := $008E-82 -;DATPTR := $0090-82 -;INPTR := $0092-82 -;VARNAM := $0094-82 -;VARPNT := $0096-82 -;FORPNT := $0098-82 -;LASTOP := $009A-82 -;TXPSV := $009A-82 -;CPRTYP := $009C-82 -;FNCNAM := $009D-82 -;TEMP3 := $009D-82 ; same -;DSCPTR := $009F-82 -;DSCLEN := $00A2-82 -;JMPADRS := $00A3-82 -;Z52 := $00A4-82; -;LENGTH := $00A4-82 -;ARGEXTENSION := $00A5-82 ; overlap with JMPADRS! (same on c64) -;TEMP1 := $00A6-82 -;HIGHDS := $00A7-82 -;HIGHTR := $00A9-82 -;TEMP2 := $00AB-82 -;INDX := $00AC-82 -;TMPEXP := $00AC-82 ; same -;EXPON := $00AD-82 -;LOWTR := $00AE-82 ; $9D also EXPSGN -;LOWTRX := $00AE-82 ; $9D also EXPSGN -;EXPSGN := $00AF-82 -;FAC := $00B0-82 -;FAC_LAST := $00B4-82 -;FACSIGN := $00B5-82 -;SERLEN := $00B6-82 -;SHIFTSIGNEXT := $00B7-82 -;ARG := $00B8-82 -;ARG_LAST := $00BC-82 -;ARGSIGN := $00BD-82 -;STRNG1 := $00BE-82 ; TODO: also SGNCPR -;FACEXTENSION := $00BF-82 -;STRNG2 := $00C0-82 -;CHRGET := $00C2-82 -;CHRGOT := $00C8-82 -;TXTPTR := $00C9-82 -;L00CF := $00CF-82 -;RNDSEED := $00DA-82 -;Z96 := $00E8-82 -;Z16 := $0118-82 - INPUTBUFFER := $0200;00A INPUTBUFFERX := $0200 .endif diff --git a/make.sh b/make.sh index 8e65973..f391450 100755 --- a/make.sh +++ b/make.sh @@ -1,10 +1,10 @@ # 1.0 -#echo cbmbasic1 -#ca65 -D CBM1 msbasic.s -o tmp/cbmbasic1.o && -#ld65 -C cbmbasic1.cfg tmp/cbmbasic1.o -o tmp/cbmbasic1-new.bin && -#xxd -g 1 orig/cbmbasic1.bin > tmp/cbmbasic1.bin.txt -#xxd -g 1 tmp/cbmbasic1-new.bin > tmp/cbmbasic1-new.bin.txt -#diff -u tmp/cbmbasic1.bin.txt tmp/cbmbasic1-new.bin.txt | head +echo cbmbasic1 +ca65 -D CBM1 msbasic.s -o tmp/cbmbasic1.o && +ld65 -C cbmbasic1.cfg tmp/cbmbasic1.o -o tmp/cbmbasic1-new.bin && +xxd -g 1 orig/cbmbasic1.bin > tmp/cbmbasic1.bin.txt +xxd -g 1 tmp/cbmbasic1-new.bin > tmp/cbmbasic1-new.bin.txt +diff -u tmp/cbmbasic1.bin.txt tmp/cbmbasic1-new.bin.txt | head # 1.0 ? #echo kbdbasic @@ -38,7 +38,7 @@ xxd -g 1 orig/cbmbasic2.bin > tmp/cbmbasic2.bin.txt xxd -g 1 tmp/cbmbasic2-new.bin > tmp/cbmbasic2-new.bin.txt diff -u tmp/cbmbasic2.bin.txt tmp/cbmbasic2-new.bin.txt | head -da65 --info del/cbmbasic2-temp.txt +#da65 --info del/cbmbasic2-temp.txt # 1.1 #echo applesoft diff --git a/msbasic.s b/msbasic.s index 99cd6a2..99f9239 100644 --- a/msbasic.s +++ b/msbasic.s @@ -1,83 +1,5 @@ ; Microsoft BASIC for 6502 -.zeropage -.ifdef CBM2 -USR: .res 1 -Z00 = USR -L0001: .res 1 -L0002: .res 1 -GOWARM: .res 1 -Z15: .res 2 -Z17: .res 1 -GOSTROUT = Z17 -Z18: .res 1 -GOGIVEAYF: .res 6 -Z03: .res 3 -LINNUM: .res 2 -TEMPPT: .res 1 -LASTPT: .res 2 -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 -.endif - .ifdef CBM1 .include "defines_cbm.s" ; 6 CONFIG_CBM_ALL := 1 @@ -150,6 +72,104 @@ 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 + +.ifdef CBM1 +CHARAC = $5A +ENDCHR = $5B +.else +CHARAC = GOWARM +ENDCHR = Z15 +.endif + +.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 +.endif + .setcpu "6502" .macpack longbranch