mirror of
https://github.com/mist64/msbasic.git
synced 2024-09-21 02:27:33 +00:00
separated out token and error tables
This commit is contained in:
parent
c4f4578d97
commit
d38b698496
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
48
error.s
Normal file
48
error.s
Normal file
@ -0,0 +1,48 @@
|
||||
init_error_table
|
||||
|
||||
.ifdef CONFIG_SMALL
|
||||
define_error ERR_NOFOR, "NF"
|
||||
define_error ERR_SYNTAX, "SN"
|
||||
define_error ERR_NOGOSUB, "RG"
|
||||
define_error ERR_NODATA, "OD"
|
||||
define_error ERR_ILLQTY, "FC"
|
||||
define_error ERR_OVERFLOW, "OV"
|
||||
define_error ERR_MEMFULL, "OM"
|
||||
define_error ERR_UNDEFSTAT, "US"
|
||||
define_error ERR_BADSUBS, "BS"
|
||||
define_error ERR_REDIMD, "DD"
|
||||
define_error ERR_ZERODIV, "/0"
|
||||
define_error ERR_ILLDIR, "ID"
|
||||
define_error ERR_BADTYPE, "TM"
|
||||
define_error ERR_STRLONG, "LS"
|
||||
define_error ERR_FRMCPX, "ST"
|
||||
define_error ERR_CANTCONT, "CN"
|
||||
define_error ERR_UNDEFFN, "UF"
|
||||
.else
|
||||
define_error ERR_NOFOR, "NEXT WITHOUT FOR"
|
||||
define_error ERR_SYNTAX, "SYNTAX"
|
||||
define_error ERR_NOGOSUB, "RETURN WITHOUT GOSUB"
|
||||
define_error ERR_NODATA, "OUT OF DATA"
|
||||
define_error ERR_ILLQTY, "ILLEGAL QUANTITY"
|
||||
.ifdef CBM1
|
||||
.byte 0,0,0,0,0
|
||||
.endif
|
||||
define_error ERR_OVERFLOW, "OVERFLOW"
|
||||
define_error ERR_MEMFULL, "OUT OF MEMORY"
|
||||
define_error ERR_UNDEFSTAT, "UNDEF'D STATEMENT"
|
||||
define_error ERR_BADSUBS, "BAD SUBSCRIPT"
|
||||
define_error ERR_REDIMD, "REDIM'D ARRAY"
|
||||
define_error ERR_ZERODIV, "DIVISION BY ZERO"
|
||||
define_error ERR_ILLDIR, "ILLEGAL DIRECT"
|
||||
define_error ERR_BADTYPE, "TYPE MISMATCH"
|
||||
define_error ERR_STRLONG, "STRING TOO LONG"
|
||||
.ifdef CBM1
|
||||
define_error ERR_BADDATA, "BAD DATA"
|
||||
.endif
|
||||
.ifdef CBM2
|
||||
define_error ERR_BADDATA, "FILE DATA"
|
||||
.endif
|
||||
define_error ERR_FRMCPX, "FORMULA TOO COMPLEX"
|
||||
define_error ERR_CANTCONT, "CAN'T CONTINUE"
|
||||
define_error ERR_UNDEFFN, "UNDEF'D FUNCTION"
|
||||
.endif
|
1
kb9.cfg
1
kb9.cfg
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
10
macros.s
10
macros.s
@ -57,6 +57,16 @@ DUMMY_START:
|
||||
NUM_TOKENS := <(*-DUMMY_START)
|
||||
.endmacro
|
||||
|
||||
.macro init_error_table
|
||||
.segment "ERROR"
|
||||
ERROR_MESSAGES:
|
||||
.endmacro
|
||||
|
||||
.macro define_error error, msg
|
||||
.segment "ERROR"
|
||||
error := <(*-ERROR_MESSAGES)
|
||||
htasc msg
|
||||
.endmacro
|
||||
|
||||
;---------------------------------------------
|
||||
; set the MSB of every byte of a string
|
||||
|
265
msbasic.s
265
msbasic.s
@ -60,261 +60,12 @@ STACK := $0100
|
||||
.byte $00,$13,$56
|
||||
.endif
|
||||
|
||||
init_token_tables
|
||||
.include "token.s"
|
||||
|
||||
keyword_rts "END", END
|
||||
keyword_rts "FOR", FOR
|
||||
keyword_rts "NEXT", NEXT
|
||||
keyword_rts "DATA", DATA
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "INPUT#", INPUTH
|
||||
.endif
|
||||
keyword_rts "INPUT", INPUT
|
||||
keyword_rts "DIM", DIM
|
||||
keyword_rts "READ", READ
|
||||
.ifdef APPLE
|
||||
keyword_rts "PLT", PLT
|
||||
.else
|
||||
keyword_rts "LET", LET
|
||||
.endif
|
||||
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
|
||||
keyword_rts "TEX", TEX, TOKEN_REM
|
||||
.else
|
||||
keyword_rts "REM", REM, TOKEN_REM
|
||||
.endif
|
||||
keyword_rts "STOP", STOP
|
||||
keyword_rts "ON", ON
|
||||
.ifdef CONFIG_NULL
|
||||
keyword_rts "NULL", NULL
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyword_rts "PLOD", PLOD
|
||||
keyword_rts "PSAV", PSAV
|
||||
keyword_rts "VLOD", VLOD
|
||||
keyword_rts "VSAV", VSAV
|
||||
.else
|
||||
keyword_rts "WAIT", WAIT
|
||||
keyword_rts "LOAD", LOAD
|
||||
keyword_rts "SAVE", SAVE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "VERIFY", VERIFY
|
||||
.endif
|
||||
keyword_rts "DEF", DEF
|
||||
.ifdef KBD
|
||||
keyword_rts "SLOD", SLOD
|
||||
.else
|
||||
keyword_rts "POKE", POKE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "PRINT#", PRINTH
|
||||
.endif
|
||||
keyword_rts "PRINT", PRINT, TOKEN_PRINT
|
||||
keyword_rts "CONT", CONT
|
||||
keyword_rts "LIST", LIST
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "CLR", CLEAR
|
||||
.else
|
||||
keyword_rts "CLEAR", CLEAR
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "CMD", CMD
|
||||
keyword_rts "SYS", SYS
|
||||
keyword_rts "OPEN", OPEN
|
||||
keyword_rts "CLOSE", CLOSE
|
||||
.endif
|
||||
.ifndef CONFIG_SMALL
|
||||
keyword_rts "GET", GET
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyword_rts "PRT", PRT
|
||||
.endif
|
||||
keyword_rts "NEW", NEW
|
||||
|
||||
count_tokens
|
||||
|
||||
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
|
||||
keyword "#"
|
||||
.else
|
||||
keyword "^"
|
||||
.endif
|
||||
keyword "AND"
|
||||
keyword "OR"
|
||||
keyword ">", TOKEN_GREATER
|
||||
keyword "=", TOKEN_EQUAL
|
||||
keyword "<"
|
||||
|
||||
.segment "VECTORS"
|
||||
UNFNC:
|
||||
|
||||
keyword_addr "SGN", SGN, TOKEN_SGN
|
||||
keyword_addr "INT", INT
|
||||
keyword_addr "ABS", ABS
|
||||
.ifdef KBD
|
||||
keyword_addr "VER", VER
|
||||
.else
|
||||
.ifdef KIM
|
||||
keyword_addr "USR", IQERR
|
||||
.else
|
||||
keyword_addr "USR", USR
|
||||
.endif
|
||||
.endif
|
||||
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
|
||||
keyword_addr "GETC", GETC
|
||||
.else
|
||||
keyword_addr "PEEK", PEEK
|
||||
.endif
|
||||
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
|
||||
keyword "GO"
|
||||
.endif
|
||||
.segment "KEYWORDS"
|
||||
.byte 0
|
||||
|
||||
.segment "VECTORS"
|
||||
MATHTBL:
|
||||
.byte $79
|
||||
.word FADDT-1
|
||||
.byte $79
|
||||
.word FSUBT-1
|
||||
.byte $7B
|
||||
.word FMULTT-1
|
||||
.byte $7B
|
||||
.word FDIVT-1
|
||||
.byte $7F
|
||||
.word FPWRT-1
|
||||
.byte $50
|
||||
.word TAND-1
|
||||
.byte $46
|
||||
.word OR-1
|
||||
.byte $7D
|
||||
.word NEGOP-1
|
||||
.byte $5A
|
||||
.word EQUOP-1
|
||||
.byte $64
|
||||
.word RELOPS-1
|
||||
.include "error.s"
|
||||
|
||||
.segment "CODE"
|
||||
ERROR_MESSAGES:
|
||||
.ifdef CONFIG_SMALL
|
||||
.define ERRSTR_NOFOR "NF"
|
||||
.define ERRSTR_SYNTAX "SN"
|
||||
.define ERRSTR_NOGOSUB "RG"
|
||||
.define ERRSTR_NODATA "OD"
|
||||
.define ERRSTR_ILLQTY "FC"
|
||||
.define ERRSTR_OVERFLOW "OV"
|
||||
.define ERRSTR_MEMFULL "OM"
|
||||
.define ERRSTR_UNDEFSTAT "US"
|
||||
.define ERRSTR_BADSUBS "BS"
|
||||
.define ERRSTR_REDIMD "DD"
|
||||
.define ERRSTR_ZERODIV "/0"
|
||||
.define ERRSTR_ILLDIR "ID"
|
||||
.define ERRSTR_BADTYPE "TM"
|
||||
.define ERRSTR_STRLONG "LS"
|
||||
.define ERRSTR_FRMCPX "ST"
|
||||
.define ERRSTR_CANTCONT "CN"
|
||||
.define ERRSTR_UNDEFFN "UF"
|
||||
.else
|
||||
.define ERRSTR_NOFOR "NEXT WITHOUT FOR"
|
||||
.define ERRSTR_SYNTAX "SYNTAX"
|
||||
.define ERRSTR_NOGOSUB "RETURN WITHOUT GOSUB"
|
||||
.define ERRSTR_NODATA "OUT OF DATA"
|
||||
.define ERRSTR_ILLQTY "ILLEGAL QUANTITY"
|
||||
.define ERRSTR_OVERFLOW "OVERFLOW"
|
||||
.define ERRSTR_MEMFULL "OUT OF MEMORY"
|
||||
.define ERRSTR_UNDEFSTAT "UNDEF'D STATEMENT"
|
||||
.define ERRSTR_BADSUBS "BAD SUBSCRIPT"
|
||||
.define ERRSTR_REDIMD "REDIM'D ARRAY"
|
||||
.define ERRSTR_ZERODIV "DIVISION BY ZERO"
|
||||
.define ERRSTR_ILLDIR "ILLEGAL DIRECT"
|
||||
.define ERRSTR_BADTYPE "TYPE MISMATCH"
|
||||
.define ERRSTR_STRLONG "STRING TOO LONG"
|
||||
.ifdef CBM1
|
||||
.define ERRSTR_BADDATA "BAD DATA"
|
||||
.endif
|
||||
.ifdef CBM2
|
||||
.define ERRSTR_BADDATA "FILE DATA"
|
||||
.endif
|
||||
.define ERRSTR_FRMCPX "FORMULA TOO COMPLEX"
|
||||
.define ERRSTR_CANTCONT "CAN'T CONTINUE"
|
||||
.define ERRSTR_UNDEFFN "UNDEF'D FUNCTION"
|
||||
.endif
|
||||
|
||||
ERR_NOFOR := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_NOFOR
|
||||
ERR_SYNTAX := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_SYNTAX
|
||||
ERR_NOGOSUB := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_NOGOSUB
|
||||
ERR_NODATA := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_NODATA
|
||||
ERR_ILLQTY := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_ILLQTY
|
||||
.ifdef CBM1
|
||||
.byte 0,0,0,0,0
|
||||
.endif
|
||||
ERR_OVERFLOW := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_OVERFLOW
|
||||
ERR_MEMFULL := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_MEMFULL
|
||||
ERR_UNDEFSTAT := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_UNDEFSTAT
|
||||
ERR_BADSUBS := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_BADSUBS
|
||||
ERR_REDIMD := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_REDIMD
|
||||
ERR_ZERODIV := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_ZERODIV
|
||||
ERR_ILLDIR := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_ILLDIR
|
||||
ERR_BADTYPE := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_BADTYPE
|
||||
ERR_STRLONG := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_STRLONG
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
ERR_BADDATA := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_BADDATA
|
||||
.endif
|
||||
ERR_FRMCPX := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_FRMCPX
|
||||
ERR_CANTCONT := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_CANTCONT
|
||||
ERR_UNDEFFN := <(*-ERROR_MESSAGES)
|
||||
htasc ERRSTR_UNDEFFN
|
||||
QT_ERROR:
|
||||
.ifdef KBD
|
||||
.byte " err"
|
||||
@ -1863,6 +1614,18 @@ L28BE:
|
||||
sta INDEX
|
||||
cmp #$19
|
||||
bcs L28A0
|
||||
; <<<<<DANGEROUS CODE>>>>>
|
||||
; NOTE THAT IF (A) = $AB ON THE LINE ABOVE,
|
||||
; ON.1 WILL COMPARE = AND CAUSE A CATASTROPHIC
|
||||
; JUMP TO $22D9 (FOR GOTO), OR OTHER LOCATIONS
|
||||
; FOR OTHER CALLS TO LINGET.
|
||||
;
|
||||
; YOU CAN SEE THIS IS YOU FIRST PUT "BRK" IN $22D9,
|
||||
; THEN TYPE "GO TO 437761".
|
||||
;
|
||||
; ANY VALUE FROM 437760 THROUGH 440319 WILL CAUSE
|
||||
; THE PROBLEM. ($AB00 - $ABFF)
|
||||
; <<<<<DANGEROUS CODE>>>>>
|
||||
lda LINNUM
|
||||
asl a
|
||||
rol INDEX
|
||||
|
1
osi.cfg
1
osi.cfg
@ -9,6 +9,7 @@ SEGMENTS {
|
||||
HEADER: load = BASROM, type = ro;
|
||||
VECTORS: load = BASROM, type = ro;
|
||||
KEYWORDS: load = BASROM, type = ro;
|
||||
ERROR: load = BASROM, type = ro;
|
||||
CODE: load = BASROM, type = ro;
|
||||
CHRGET: load = BASROM, type = ro;
|
||||
INIT: load = BASROM, type = ro;
|
||||
|
167
token.s
Normal file
167
token.s
Normal file
@ -0,0 +1,167 @@
|
||||
init_token_tables
|
||||
|
||||
keyword_rts "END", END
|
||||
keyword_rts "FOR", FOR
|
||||
keyword_rts "NEXT", NEXT
|
||||
keyword_rts "DATA", DATA
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "INPUT#", INPUTH
|
||||
.endif
|
||||
keyword_rts "INPUT", INPUT
|
||||
keyword_rts "DIM", DIM
|
||||
keyword_rts "READ", READ
|
||||
.ifdef APPLE
|
||||
keyword_rts "PLT", PLT
|
||||
.else
|
||||
keyword_rts "LET", LET
|
||||
.endif
|
||||
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
|
||||
keyword_rts "TEX", TEX, TOKEN_REM
|
||||
.else
|
||||
keyword_rts "REM", REM, TOKEN_REM
|
||||
.endif
|
||||
keyword_rts "STOP", STOP
|
||||
keyword_rts "ON", ON
|
||||
.ifdef CONFIG_NULL
|
||||
keyword_rts "NULL", NULL
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyword_rts "PLOD", PLOD
|
||||
keyword_rts "PSAV", PSAV
|
||||
keyword_rts "VLOD", VLOD
|
||||
keyword_rts "VSAV", VSAV
|
||||
.else
|
||||
keyword_rts "WAIT", WAIT
|
||||
keyword_rts "LOAD", LOAD
|
||||
keyword_rts "SAVE", SAVE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "VERIFY", VERIFY
|
||||
.endif
|
||||
keyword_rts "DEF", DEF
|
||||
.ifdef KBD
|
||||
keyword_rts "SLOD", SLOD
|
||||
.else
|
||||
keyword_rts "POKE", POKE
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "PRINT#", PRINTH
|
||||
.endif
|
||||
keyword_rts "PRINT", PRINT, TOKEN_PRINT
|
||||
keyword_rts "CONT", CONT
|
||||
keyword_rts "LIST", LIST
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "CLR", CLEAR
|
||||
.else
|
||||
keyword_rts "CLEAR", CLEAR
|
||||
.endif
|
||||
.ifdef CONFIG_CBM_ALL
|
||||
keyword_rts "CMD", CMD
|
||||
keyword_rts "SYS", SYS
|
||||
keyword_rts "OPEN", OPEN
|
||||
keyword_rts "CLOSE", CLOSE
|
||||
.endif
|
||||
.ifndef CONFIG_SMALL
|
||||
keyword_rts "GET", GET
|
||||
.endif
|
||||
.ifdef KBD
|
||||
keyword_rts "PRT", PRT
|
||||
.endif
|
||||
keyword_rts "NEW", NEW
|
||||
|
||||
count_tokens
|
||||
|
||||
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
|
||||
keyword "#"
|
||||
.else
|
||||
keyword "^"
|
||||
.endif
|
||||
keyword "AND"
|
||||
keyword "OR"
|
||||
keyword ">", TOKEN_GREATER
|
||||
keyword "=", TOKEN_EQUAL
|
||||
keyword "<"
|
||||
|
||||
.segment "VECTORS"
|
||||
UNFNC:
|
||||
|
||||
keyword_addr "SGN", SGN, TOKEN_SGN
|
||||
keyword_addr "INT", INT
|
||||
keyword_addr "ABS", ABS
|
||||
.ifdef KBD
|
||||
keyword_addr "VER", VER
|
||||
.else
|
||||
.ifdef KIM
|
||||
keyword_addr "USR", IQERR
|
||||
.else
|
||||
keyword_addr "USR", USR
|
||||
.endif
|
||||
.endif
|
||||
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
|
||||
keyword_addr "GETC", GETC
|
||||
.else
|
||||
keyword_addr "PEEK", PEEK
|
||||
.endif
|
||||
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
|
||||
keyword "GO"
|
||||
.endif
|
||||
.segment "KEYWORDS"
|
||||
.byte 0
|
||||
|
||||
.segment "VECTORS"
|
||||
MATHTBL:
|
||||
.byte $79
|
||||
.word FADDT-1
|
||||
.byte $79
|
||||
.word FSUBT-1
|
||||
.byte $7B
|
||||
.word FMULTT-1
|
||||
.byte $7B
|
||||
.word FDIVT-1
|
||||
.byte $7F
|
||||
.word FPWRT-1
|
||||
.byte $50
|
||||
.word TAND-1
|
||||
.byte $46
|
||||
.word OR-1
|
||||
.byte $7D
|
||||
.word NEGOP-1
|
||||
.byte $5A
|
||||
.word EQUOP-1
|
||||
.byte $64
|
||||
.word RELOPS-1
|
Loading…
Reference in New Issue
Block a user