msbasic/defines_cbm.s
2008-10-08 05:07:59 +00:00

232 lines
5.4 KiB
ArmAsm

.ifdef CBM1
USR := $0000
Z00 := $0000
L0001 := $0001
L0002 := $0002
GOWARM := $0003
Z03 := $0003 ; same
GOSTROUT := $0006
GOGIVEAYF := $0008
CHARAC := $005A
ENDCHR := $005B
EOLPNTR := $005C
DIMFLG := $005D
VALTYP := $005E
DATAFLG := $0060
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
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
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
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
.else
USR := $0000
Z00 := $0000
L0001 := $0001
L0002 := $0002
GOWARM := $0003
Z15 := $0004
Z16 := $00C6;05
Z17 := $0006
GOSTROUT := $0006
Z18 := $0007
LINNUM := $0011;0008
TXPSV := $0048
GOGIVEAYF := $0008
INPUTBUFFER := $0200;00A
Z03 := $000E;3 ; same
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
CPRTYP := $009C-82
FNCNAM := $009D-82
TEMP3 := $009D-82 ; same
DSCPTR := $009F-82
DSCLEN := $00A2-82
JMPADRS := $00A3-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
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
.endif
BYTES_PER_FRAME := $12
.ifdef CBM1
SPACE_FOR_GOSUB := $36
.else
SPACE_FOR_GOSUB := $3E
.endif
FOR_STACK1 := $0F
FOR_STACK2 := $09
NUM_TOKENS := $23
NULL_MAX := $0A
BYTES_PER_ELEMENT := 5
BYTES_PER_VARIABLE := 7
BYTES_FP := 5
MANTISSA_BYTES := BYTES_FP-1
RAMSTART2 := $0400
RAMSTART3 := $0400
TOKEN_GOTO := $89
TOKEN_GOSUB := $8D
TOKEN_TAB := $A3
TOKEN_TO := $A4
TOKEN_FN := $A5
TOKEN_SPC := $A6
TOKEN_THEN := $A7
TOKEN_NOT := $A8
TOKEN_STEP := $A9
TOKEN_PLUS := $AA
TOKEN_MINUS := $AB
TOKEN_GREATER := $B1
TOKEN_EQUAL := $B2
TOKEN_SGN := $B4
TOKEN_LEFTSTR := $C8
OPEN := $FFC0
CLOSE := $FFC3
CHKIN := $FFC6
CHKOUT := $FFC9
CLRCH := $FFCC
CHRIN := $FFCF
CHROUT := $FFD2
LOAD := $FFD5
SAVE := $FFD8
VERIFY := $FFDB
SYS := $FFDE
ISCNTC := $FFE1
GETIN := $FFE4
CLALL := $FFE7
LE7F3 := $E7F3
MONCOUT := CHROUT
MONRDKEY := GETIN
.ifdef CBM1
ENTROPY = $9044
.else
ENTROPY = $E844
.endif