mirror of
https://github.com/mist64/msbasic.git
synced 2026-04-20 05:16:28 +00:00
automated token numbers
This commit is contained in:
@@ -169,9 +169,6 @@ DSCLEN:
|
||||
JMPADRS:
|
||||
.endif
|
||||
.res 1
|
||||
.ifndef CONFIG_SMALL
|
||||
LENGTH:
|
||||
.endif
|
||||
Z52:
|
||||
.res 1
|
||||
ARGEXTENSION:
|
||||
@@ -256,165 +253,152 @@ STACK := $0100
|
||||
.byte $00,$13,$56
|
||||
.endif
|
||||
|
||||
define_token_init
|
||||
|
||||
.segment "VECTORS"
|
||||
TOKEN_ADDRESS_TABLE:
|
||||
.segment "KEYWORDS"
|
||||
TOKEN_NAME_TABLE:
|
||||
.macro keyvec key, vec
|
||||
;.local label
|
||||
.segment "VECTORS"
|
||||
;label:
|
||||
;.out label
|
||||
.addr vec
|
||||
.segment "KEYWORDS"
|
||||
htasc key
|
||||
.endmacro
|
||||
.macro keyrts key, vec
|
||||
.segment "VECTORS"
|
||||
.word vec-1
|
||||
.segment "KEYWORDS"
|
||||
htasc key
|
||||
.endmacro
|
||||
|
||||
keyrts "END", END
|
||||
keyrts "FOR", FOR
|
||||
keyrts "NEXT", NEXT
|
||||
keyrts "DATA", DATA
|
||||
keyword_rts "END", END
|
||||
keyword_rts "FOR", FOR
|
||||
keyword_rts "NEXT", NEXT
|
||||
keyword_rts "DATA", DATA
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyrts "INPUT#", INPUTH
|
||||
keyword_rts "INPUT#", INPUTH
|
||||
.endif
|
||||
keyrts "INPUT", INPUT
|
||||
keyrts "DIM", DIM
|
||||
keyrts "READ", READ
|
||||
keyword_rts "INPUT", INPUT
|
||||
keyword_rts "DIM", DIM
|
||||
keyword_rts "READ", READ
|
||||
.ifdef APPLE
|
||||
keyrts "PLT", PLT
|
||||
keyword_rts "PLT", PLT
|
||||
.else
|
||||
keyrts "LET", LET
|
||||
keyword_rts "LET", LET
|
||||
.endif
|
||||
keyrts "GOTO", GOTO
|
||||
keyrts "RUN", RUN
|
||||
keyrts "IF", IF
|
||||
keyrts "RESTORE", RESTORE
|
||||
keyrts "GOSUB", GOSUB
|
||||
keyrts "RETURN", POP
|
||||
keyword_rts "GOTO", GOTO, TOKEN_GOTO
|
||||
keyword_rts "RUN", RUN
|
||||
keyword_rts "IF", IF
|
||||
keyword_rts "RESTORE", RESTORE
|
||||
keyword_rts "GOSUB", GOSUB, TOKEN_GOSUB
|
||||
keyword_rts "RETURN", POP
|
||||
.ifdef APPLE
|
||||
keyrts "TEX", TEX
|
||||
keyword_rts "TEX", TEX, TOKEN_REM
|
||||
.else
|
||||
keyrts "REM", REM
|
||||
keyword_rts "REM", REM, TOKEN_REM
|
||||
.endif
|
||||
keyrts "STOP", STOP
|
||||
keyrts "ON", ON
|
||||
keyword_rts "STOP", STOP
|
||||
keyword_rts "ON", ON
|
||||
.ifdef CONFIG_NULL
|
||||
keyrts "NULL", NULL
|
||||
keyword_rts "NULL", NULL
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyrts "PLOD", PLOD
|
||||
keyrts "PSAV", PSAV
|
||||
keyrts "VLOD", VLOD
|
||||
keyrts "VSAV", VSAV
|
||||
keyword_rts "PLOD", PLOD
|
||||
keyword_rts "PSAV", PSAV
|
||||
keyword_rts "VLOD", VLOD
|
||||
keyword_rts "VSAV", VSAV
|
||||
.else
|
||||
keyrts "WAIT", WAIT
|
||||
keyrts "LOAD", LOAD
|
||||
keyrts "SAVE", SAVE
|
||||
keyword_rts "WAIT", WAIT
|
||||
keyword_rts "LOAD", LOAD
|
||||
keyword_rts "SAVE", SAVE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyrts "VERIFY", VERIFY
|
||||
keyword_rts "VERIFY", VERIFY
|
||||
.endif
|
||||
keyrts "DEF", DEF
|
||||
keyword_rts "DEF", DEF
|
||||
.ifdef KBD
|
||||
keyrts "SLOD", SLOD
|
||||
keyword_rts "SLOD", SLOD
|
||||
.else
|
||||
keyrts "POKE", POKE
|
||||
keyword_rts "POKE", POKE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyrts "PRINT#", PRINTH
|
||||
keyword_rts "PRINT#", PRINTH
|
||||
.endif
|
||||
keyrts "PRINT", PRINT
|
||||
keyrts "CONT", CONT
|
||||
keyrts "LIST", LIST
|
||||
keyword_rts "PRINT", PRINT, TOKEN_PRINT
|
||||
keyword_rts "CONT", CONT
|
||||
keyword_rts "LIST", LIST
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyrts "CLR", CLEAR
|
||||
keyword_rts "CLR", CLEAR
|
||||
.else
|
||||
keyrts "CLEAR", CLEAR
|
||||
keyword_rts "CLEAR", CLEAR
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyrts "CMD", CMD
|
||||
keyrts "SYS", SYS
|
||||
keyrts "OPEN", OPEN
|
||||
keyrts "CLOSE", CLOSE
|
||||
keyword_rts "CMD", CMD
|
||||
keyword_rts "SYS", SYS
|
||||
keyword_rts "OPEN", OPEN
|
||||
keyword_rts "CLOSE", CLOSE
|
||||
.endif
|
||||
.ifndef CONFIG_SMALL
|
||||
keyrts "GET", GET
|
||||
keyword_rts "GET", GET
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyrts "PRT", PRT
|
||||
keyword_rts "PRT", PRT
|
||||
.endif
|
||||
keyrts "NEW", NEW
|
||||
keyword_rts "NEW", NEW
|
||||
|
||||
.segment "KEYWORDS"
|
||||
htasc "TAB("
|
||||
htasc "TO"
|
||||
htasc "FN"
|
||||
htasc "SPC("
|
||||
htasc "THEN"
|
||||
htasc "NOT"
|
||||
htasc "STEP"
|
||||
htasc "+"
|
||||
htasc "-"
|
||||
htasc "*"
|
||||
htasc "/"
|
||||
keyword "TAB(", TOKEN_TAB
|
||||
keyword "TO", TOKEN_TO
|
||||
keyword "FN", TOKEN_FN
|
||||
keyword "SPC(", TOKEN_SPC
|
||||
keyword "THEN", TOKEN_THEN
|
||||
keyword "NOT", TOKEN_NOT
|
||||
keyword "STEP", TOKEN_STEP
|
||||
keyword "+", TOKEN_PLUS
|
||||
keyword "-", TOKEN_MINUS
|
||||
keyword "*"
|
||||
keyword "/"
|
||||
.ifdef KBD
|
||||
htasc "#"
|
||||
keyword "#"
|
||||
.else
|
||||
htasc "^"
|
||||
keyword "^"
|
||||
.endif
|
||||
htasc "AND"
|
||||
htasc "OR"
|
||||
htasc ">"
|
||||
htasc "="
|
||||
htasc "<"
|
||||
keyword "AND"
|
||||
keyword "OR"
|
||||
keyword ">", TOKEN_GREATER
|
||||
keyword "=", TOKEN_EQUAL
|
||||
keyword "<"
|
||||
|
||||
.segment "VECTORS"
|
||||
UNFNC:
|
||||
keyvec "SGN", SGN
|
||||
keyvec "INT", INT
|
||||
keyvec "ABS", ABS
|
||||
keyword_addr "SGN", SGN, TOKEN_SGN
|
||||
keyword_addr "INT", INT
|
||||
keyword_addr "ABS", ABS
|
||||
.ifdef KBD
|
||||
keyvec "VER", VER
|
||||
keyword_addr "VER", VER
|
||||
.else
|
||||
.ifdef KIM
|
||||
keyvec "USR", IQERR
|
||||
keyword_addr "USR", IQERR
|
||||
.else
|
||||
keyvec "USR", USR
|
||||
keyword_addr "USR", USR
|
||||
.endif
|
||||
.endif
|
||||
keyvec "FRE", FRE
|
||||
keyvec "POS", POS
|
||||
keyvec "SQR", SQR
|
||||
keyvec "RND", RND
|
||||
keyvec "LOG", LOG
|
||||
keyvec "EXP", EXP
|
||||
keyvec "COS", COS
|
||||
keyvec "SIN", SIN
|
||||
keyvec "TAN", TAN
|
||||
keyvec "ATN", ATN
|
||||
keyword_addr "FRE", FRE
|
||||
keyword_addr "POS", POS
|
||||
keyword_addr "SQR", SQR
|
||||
keyword_addr "RND", RND
|
||||
keyword_addr "LOG", LOG
|
||||
keyword_addr "EXP", EXP
|
||||
keyword_addr "COS", COS
|
||||
keyword_addr "SIN", SIN
|
||||
keyword_addr "TAN", TAN
|
||||
keyword_addr "ATN", ATN
|
||||
.ifdef KBD
|
||||
keyvec "GETC", GETC
|
||||
keyword_addr "GETC", GETC
|
||||
.else
|
||||
keyvec "PEEK", PEEK
|
||||
keyword_addr "PEEK", PEEK
|
||||
.endif
|
||||
keyvec "LEN", LEN
|
||||
keyvec "STR$", STR
|
||||
keyvec "VAL", VAL
|
||||
keyvec "ASC", ASC
|
||||
keyvec "CHR$", CHRSTR
|
||||
keyvec "LEFT$", LEFTSTR
|
||||
keyvec "RIGHT$", RIGHTSTR
|
||||
keyvec "MID$", MIDSTR
|
||||
keyword_addr "LEN", LEN
|
||||
keyword_addr "STR$", STR
|
||||
keyword_addr "VAL", VAL
|
||||
keyword_addr "ASC", ASC
|
||||
keyword_addr "CHR$", CHRSTR
|
||||
keyword_addr "LEFT$", LEFTSTR, TOKEN_LEFTSTR
|
||||
keyword_addr "RIGHT$", RIGHTSTR
|
||||
keyword_addr "MID$", MIDSTR
|
||||
.ifdef CBM2_KBD
|
||||
htasc "GO"
|
||||
keyword "GO"
|
||||
.endif
|
||||
.byte 0
|
||||
.segment "KEYWORDS"
|
||||
.byte 0
|
||||
|
||||
.segment "VECTORS"
|
||||
MATHTBL:
|
||||
|
||||
Reference in New Issue
Block a user