755 lines
24 KiB
NASM
755 lines
24 KiB
NASM
; ===================================================
|
|
; MSX BASIC for Orion-128
|
|
;
|
|
; Statement, operator and function dispatch tables
|
|
; Disassembled by Romychs @ 2026-10-02
|
|
; ===================================================
|
|
|
|
; ---------------------------------------------------
|
|
; Function tokens
|
|
; ---------------------------------------------------
|
|
|
|
; 0x81..0x8F
|
|
_LEFT_ EQU 0x81 ; 129
|
|
_RIGHT_ EQU 0x82 ; 130
|
|
_MID_ EQU 0x83 ; 131
|
|
_SGN EQU 0x84 ; 132
|
|
_INT EQU 0x85 ; 133
|
|
_ABS EQU 0x86 ; 134
|
|
_SQR EQU 0x87 ; 135
|
|
_RND EQU 0x88 ; 136
|
|
_SIN EQU 0x89 ; 137
|
|
_LOG EQU 0x8a ; 138
|
|
_EXP EQU 0x8b ; 139
|
|
_COS EQU 0x8c ; 140
|
|
_TAN EQU 0x8d ; 141
|
|
_ATN EQU 0x8e ; 142
|
|
_FRE EQU 0x8f ; 143
|
|
; ----
|
|
_INP EQU 0x90 ; 144
|
|
_POS EQU 0x91 ; 145
|
|
_LEN EQU 0x92 ; 146
|
|
_STR_ EQU 0x93 ; 147
|
|
_VAL EQU 0x94 ; 148
|
|
_ASC EQU 0x95 ; 149
|
|
_CHR_ EQU 0x96 ; 150
|
|
_PEEK EQU 0x97 ; 151
|
|
_VPEEK EQU 0x98 ; 152
|
|
_SPACE_ EQU 0x99 ; 153
|
|
_OCT_ EQU 0x9a ; 154
|
|
_HEX EQU 0x9b ; 155
|
|
_LPOS EQU 0x9c ; 156
|
|
_BIN_ EQU 0x9d ; 157
|
|
_CINT EQU 0x9e ; 158
|
|
_CSNG EQU 0x9f ; 159
|
|
; ----
|
|
_CDBL EQU 0xA0 ; 160
|
|
_FIX EQU 0xA1 ; 161
|
|
_STICK EQU 0xA2 ; 162
|
|
_STRIG EQU 0xA3 ; 163
|
|
_PDL EQU 0xA4 ; 164
|
|
_PAD EQU 0xA5 ; 165
|
|
_DSKF_ EQU 0xA6 ; 166
|
|
_FPOS EQU 0xA7 ; 167
|
|
_CVI EQU 0xA8 ; 168
|
|
_CVS EQU 0xA9 ; 169
|
|
_CVD EQU 0xAa ; 170
|
|
_EOF EQU 0xAb ; 171
|
|
_LOC EQU 0xAc ; 172
|
|
_LOF EQU 0xAd ; 173
|
|
_MKI_ EQU 0xAe ; 174
|
|
_MKS_ EQU 0xAf ; 175
|
|
_MKD_ EQU 0xB0 ; 176
|
|
|
|
|
|
ONEFUN EQU 0x81 ; 129
|
|
|
|
; ---------------------------------------------------
|
|
; Operator tokens
|
|
; ---------------------------------------------------
|
|
|
|
; 0x80..0x8F
|
|
_END EQU 0x81 ; 129
|
|
_FOR EQU 0x82 ; 130
|
|
_NEXT EQU 0x83 ; 131
|
|
_DATA EQU 0x84 ; 132
|
|
_INPUT EQU 0x85 ; 133
|
|
_DIM EQU 0x86 ; 134
|
|
_READ EQU 0x87 ; 135
|
|
_LET EQU 0x88 ; 136
|
|
_GOTO EQU 0x89 ; 137
|
|
_RUN EQU 0x8a ; 138
|
|
_IF EQU 0x8b ; 139
|
|
_RESTORE EQU 0x8c ; 140
|
|
_GOSUB EQU 0x8d ; 141
|
|
_RETURN EQU 0x8e ; 142
|
|
_REM EQU 0x8f ; 143
|
|
; 0x90..0x9F
|
|
_STOP EQU 0x90 ; 144
|
|
_PRINT EQU 0x91 ; 145
|
|
_CLEAR EQU 0x92 ; 146
|
|
_LIST EQU 0x93 ; 147
|
|
_NEW EQU 0x94 ; 148
|
|
_ON EQU 0x95 ; 149
|
|
_WAIT EQU 0x96 ; 150
|
|
_DEF EQU 0x97 ; 151
|
|
_POKE EQU 0x98 ; 152
|
|
_CONT EQU 0x99 ; 153
|
|
_CSAVE EQU 0x9a ; 154
|
|
_CLOAD EQU 0x9b ; 155
|
|
_OUT EQU 0x9c ; 156
|
|
_LPRINT EQU 0x9d ; 157
|
|
_LLIST EQU 0x9e ; 158
|
|
_CLS EQU 0x9f ; 159
|
|
; 0xA0..0xAF
|
|
_WIDTH EQU 0xa0 ; 160
|
|
_ELSE EQU 0xa1 ; 161
|
|
_TRON EQU 0xa2 ; 162
|
|
_TROFF EQU 0xa3 ; 163
|
|
_SWAP EQU 0xa4 ; 164
|
|
_ERASE EQU 0xa5 ; 165
|
|
_ERROR EQU 0xa6 ; 166
|
|
_RESUME EQU 0xa7 ; 167
|
|
_DELETE EQU 0xa8 ; 168
|
|
_AUTO EQU 0xa9 ; 169
|
|
_RENUM EQU 0xaa ; 170
|
|
_DEFSTR EQU 0xab ; 171
|
|
_DEFINT EQU 0xac ; 172
|
|
_DEFSNG EQU 0xad ; 173
|
|
_DEFDBL EQU 0xae ; 174
|
|
_LINE EQU 0xaf ; 175
|
|
; 0xB0..0xBF
|
|
_OPEN EQU 0xb0 ; 176
|
|
_FIELD EQU 0xb1 ; 177
|
|
_GET EQU 0xb2 ; 178
|
|
_PUT EQU 0xb3 ; 179
|
|
_CLOSE EQU 0xb4 ; 180
|
|
_LOAD EQU 0xb5 ; 181
|
|
_MERGE EQU 0xb6 ; 182
|
|
_FILES EQU 0xb7 ; 183
|
|
_LSET EQU 0xb8 ; 184
|
|
_RSET EQU 0xb9 ; 185
|
|
_SAVE EQU 0xba ; 186
|
|
_LFILES EQU 0xbb ; 187
|
|
_CIRCLE EQU 0xbc ; 188
|
|
_COLOR EQU 0xbd ; 189
|
|
_DRAW EQU 0xbe ; 190
|
|
_PAINT EQU 0xbf ; 191
|
|
; 0xC0..0xCF
|
|
_BEEP EQU 0xc0 ; 192
|
|
_PLAY EQU 0xc1 ; 193
|
|
_PSET EQU 0xc2 ; 194
|
|
_PRESET EQU 0xc3 ; 195
|
|
_SOUND EQU 0xc4 ; 196
|
|
_SCREEN EQU 0xc5 ; 197
|
|
_VPOKE EQU 0xc6 ; 198
|
|
_SPRITE EQU 0xc7 ; 199
|
|
_VDP EQU 0xc8 ; 200
|
|
_BASE EQU 0xc9 ; 201
|
|
_CALL EQU 0xca ; 202
|
|
_TIME EQU 0xcb ; 203
|
|
_KEY EQU 0xcc ; 204
|
|
_MAX EQU 0xcd ; 205
|
|
_MOTOR EQU 0xce ; 206
|
|
_BLOAD EQU 0xcf ; 207
|
|
; 0xD0..0xDF
|
|
_BSAVE EQU 0xd0 ; 208
|
|
_DSKO_ EQU 0xd1 ; 209
|
|
_SET EQU 0xd2 ; 210
|
|
_NAME EQU 0xd3 ; 211
|
|
_KILL EQU 0xd4 ; 212
|
|
_IPL EQU 0xd5 ; 213
|
|
_COPY EQU 0xd6 ; 214
|
|
_CMD EQU 0xd7 ; 215
|
|
_LOCATE EQU 0xd8 ; 216
|
|
|
|
NUMCMD EQU _LOCATE - _END + 1 ; 88 Number of commands
|
|
|
|
_TO EQU 0xd9 ; 217
|
|
_THEN EQU 0xda ; 218
|
|
_TAB EQU 0xdb ; 219
|
|
_STEP EQU 0xdc ; 220
|
|
_USR EQU 0xdd ; 221
|
|
_FN EQU 0xde ; 222
|
|
_SPC EQU 0xdf ; 223
|
|
; 0xE0..0xEF
|
|
_NOT EQU 0xe0 ; 224
|
|
_ERL EQU 0xe1 ; 225
|
|
_ERR EQU 0xe2 ; 226
|
|
_STRING_ EQU 0xe3 ; 227
|
|
_USING EQU 0xe4 ; 228
|
|
_INSTR EQU 0xe5 ; 229
|
|
; 0xE6 skipped
|
|
_VARPTR EQU 0xe7 ; 231
|
|
_CSRLIN EQU 0xe8 ; 232
|
|
_ATTR EQU 0xe9 ; 233
|
|
_DSKI_ EQU 0xea ; 234
|
|
_OFF EQU 0xeb ; 235
|
|
_INKEY_ EQU 0xec ; 236
|
|
_POINT EQU 0xed ; 237
|
|
;
|
|
|
|
;EXPTK EQU 0xf5
|
|
_AND EQU 0xf6 ; 246
|
|
_OR EQU 0xf7 ; 247
|
|
|
|
_XOR EQU 0xf8 ; 248
|
|
_EQV EQU 0xf9 ; 249
|
|
_IMP EQU 0xfa ; 250
|
|
_MOD EQU 0xfb ; 251
|
|
|
|
; --------------------------------------------------
|
|
; Operation tokens
|
|
; --------------------------------------------------
|
|
TABTK EQU 0xdb
|
|
STEPTK EQU 0xdc
|
|
SPCTK EQU 0xdf
|
|
USINTK EQU 0xe4
|
|
SNGQTK EQU 0xe6
|
|
GREATK EQU 0xee
|
|
EQULTK EQU 0xef
|
|
LESSTK EQU 0xf0
|
|
PLUSTK EQU 0xf1
|
|
MINUTK EQU 0xf2
|
|
MULTK EQU 0xf3
|
|
DIVTK EQU 0xf4
|
|
EXPTK EQU 0xf5
|
|
IDIVTK EQU 0xfc
|
|
|
|
; --------------------------------------------------
|
|
; Base tokens
|
|
; --------------------------------------------------
|
|
OCTCON EQU 0x0B ; 11 embeded Octal constant
|
|
HEXCON EQU 0x0C ; 12 embeded Hex constant
|
|
PTRCON EQU 0x0D ; 13 line pointer constant
|
|
LINCON EQU 0x0E ; 14 line number
|
|
IN2CON EQU 0x0F ; 15 Single byte integer (two byte with token) 11..255
|
|
|
|
CONCN2 EQU 0x10 ; 16 Internal token, returned second type constant is scaned
|
|
|
|
ONECON EQU 0x11 ; 17 First of 10 special tokens for Int (0x11 - 1, 0x12 - 2 ... 0x1B - 10)
|
|
INTCON EQU 0x1C ; 28 2-byte Int
|
|
SNGCON EQU 0x1D ; 29 4-byte single precision real EEDDDDDD
|
|
CONCON EQU 0x1E ; 30 Internal token, returned by CHARGET after constant scanned
|
|
DBLCON EQU 0x1F ; 31 8-byte double precision real EEDDDDDDDDDDDDDD
|
|
|
|
|
|
|
|
; ---------------------------------------------------
|
|
; Statement and Operator handler table
|
|
; ---------------------------------------------------
|
|
STMDSP:
|
|
DW MB_ENDS
|
|
DW MB_FOR
|
|
DW MB_NEXT
|
|
DW MB_DATAS
|
|
DW MB_INPUT
|
|
DW MB_DIM
|
|
DW MB_READ
|
|
DW MB_LET
|
|
DW MB_GOTO
|
|
DW MB_RUN
|
|
DW MB_IFS
|
|
DW MB_RESTORE
|
|
DW MB_GOSUB
|
|
DW MB_RETURN
|
|
DW MB_REM_ELSE
|
|
; 0x90..0x9F
|
|
DW MB_STOP
|
|
DW MB_PRINT
|
|
DW MB_CLEAR
|
|
DW MB_LIST
|
|
DW MB_SCRATH
|
|
DW MB_ONGOTO
|
|
DW MB_FNWAIT
|
|
DW MB_DEF
|
|
DW MB_POKE
|
|
DW MB_CONT
|
|
DW MB_CSAVE
|
|
DW MB_CLOAD
|
|
DW MB_OUTWRD
|
|
DW MB_LPRINT
|
|
DW MB_LLIST
|
|
DW CLS
|
|
; 0xA0..0xAF
|
|
DW MB_WIDTH
|
|
DW MB_REM_ELSE
|
|
DW MB_TRON
|
|
DW MB_TROFF
|
|
DW MB_SWAP
|
|
DW MB_ERASE
|
|
DW MB_ERRORS
|
|
DW MB_RESUME
|
|
DW MB_DELETE
|
|
DW MB_AUTO
|
|
DW MB_RESEQ
|
|
DW MB_DEFSTR
|
|
DW MB_DEFINT
|
|
DW MB_DEFSGN
|
|
DW MB_DEFDBL
|
|
DW MB_LINE
|
|
; 0xB0..0xBF
|
|
DW MB_OPEN
|
|
DW MB_FIELD
|
|
DW MB_GET
|
|
DW MB_PUT
|
|
DW MB_CLOSE
|
|
DW MB_LOAD
|
|
DW MB_MERGE
|
|
DW MB_FILES
|
|
DW MB_LSET
|
|
DW MB_RSET
|
|
DW MB_SAVE
|
|
DW MB_LFILES
|
|
DW MB_CIRCLE
|
|
DW MB_COLOR
|
|
DW MB_DRAW
|
|
DW MB_PAINT
|
|
; 0xC0..0xCF
|
|
DW BEEP
|
|
DW MB_PLAY
|
|
DW MB_PSETST
|
|
DW MB_PRESET
|
|
DW MB_SOUND
|
|
DW MB_SCREEN
|
|
DW MB_VPOKE
|
|
DW MB_SPRITE
|
|
DW MB_VDP
|
|
DW MB_BASE
|
|
DW MB_CALL
|
|
DW MB_TIMEST
|
|
DW MB_KEY
|
|
DW MB_MAX
|
|
DW MB_MOTOR
|
|
DW MB_BLOAD
|
|
; 0xD0..0xDF
|
|
DW MB_BSAVE
|
|
DW MB_DSKO
|
|
DW MB_SET
|
|
DW MB_NAME
|
|
DW MB_KILL
|
|
DW MB_IPL
|
|
DW MB_COPY
|
|
DW MB_CMD
|
|
DW MB_LOCATE
|
|
|
|
; ---------------------------------------------------
|
|
; Function handler table
|
|
; ---------------------------------------------------
|
|
; 0x81..0x8F
|
|
MB_FUNDSP:
|
|
DW MB_LEFT_
|
|
DW MB_RIGHT_
|
|
DW MB_MID_
|
|
DW MB_SGN
|
|
DW MB_INT
|
|
DW MB_ABS
|
|
DW MB_SQR
|
|
DW MB_RND
|
|
DW MB_SIN
|
|
DW MB_LOG
|
|
DW MB_EXP
|
|
DW MB_COS
|
|
DW MB_TAN
|
|
DW MB_ATN
|
|
DW MB_FRE
|
|
; 0x90..0x9F
|
|
DW MB_FNINP
|
|
DW MB_POS
|
|
DW MB_LEN
|
|
DW MB_STR_
|
|
DW MB_VAL
|
|
DW MB_ASC
|
|
DW MB_CHR
|
|
DW MB_PEEK
|
|
DW MB_VPEEK
|
|
DW MB_SPACE_
|
|
DW MB_OCT_
|
|
DW MB_HEX_
|
|
DW MB_LPOS
|
|
DW MB_BIN_
|
|
DW MB_FRCINT
|
|
DW MB_FRCSNG
|
|
; 0xA0..0xAF
|
|
DW MB_FRCDBL
|
|
DW MB_FIXER
|
|
DW MB_STICK
|
|
DW MB_TRIGFN
|
|
DW MB_PDL
|
|
DW MB_PAD
|
|
DW MB_DSKF_
|
|
DW MB_FPOS
|
|
DW MB_CVI
|
|
DW MB_CVS
|
|
DW MB_CVD
|
|
DW MB_EOF
|
|
DW MB_LOC
|
|
DW MB_LOF
|
|
DW MB_MKI
|
|
DW MB_MKS
|
|
DW MB_MKD
|
|
|
|
; ---------------------------------------------------
|
|
; Alphabetic operator and function offset table
|
|
; ---------------------------------------------------
|
|
ALPTAB:
|
|
DW ATAB
|
|
DW BTAB
|
|
DW CTAB
|
|
DW DTAB
|
|
DW ETAB
|
|
DW FTAB
|
|
DW GTAB
|
|
DW HTAB
|
|
DW ITAB
|
|
DW JTAB
|
|
DW KTAB
|
|
DW LTAB
|
|
DW MTAB
|
|
DW NTAB
|
|
DW OTAB
|
|
DW PTAB
|
|
DW QTAB
|
|
DW RTAB
|
|
DW STAB
|
|
DW TTAB
|
|
DW UTAB
|
|
DW VTAB
|
|
DW WTAB
|
|
DW XTAB
|
|
DW YTAB
|
|
DW ZTAB
|
|
|
|
; ---------------------------------------------------
|
|
; Alphabetic character by character
|
|
; statement, operator and function table
|
|
; ---------------------------------------------------
|
|
ATAB:
|
|
DB "UT", 'O' + 0x80, _AUTO
|
|
DB "N", 'D' + 0x80, _AND
|
|
DB "B", 'S' + 0x80, _ABS - 0x80
|
|
DB "T", 'N' + 0x80, _ATN - 0x80
|
|
DB "S", 'C' + 0x80, _ASC - 0x80
|
|
DB "TT", 'R' + 0x80, _ATTR
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
BTAB:
|
|
DB "AS", 'E' + 0x80, _BASE
|
|
DB "SAV", 'E' + 0x80, _BSAVE
|
|
DB "LOA", 'D' + 0x80, _BLOAD
|
|
DB "EE", 'P' + 0x80, _BEEP
|
|
DB "IN", '$' + 0x80, _BIN_ - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
CTAB:
|
|
DB "AL", 'L' + 0x80, _CALL
|
|
DB "LOS", 'E' + 0x80, _CLOSE
|
|
DB "OP", 'Y' + 0x80, _COPY
|
|
DB "ON", 'T' + 0x80, _CONT
|
|
DB "LEA", 'R' + 0x80, _CLEAR
|
|
DB "LOA", 'D' + 0x80, _CLOAD
|
|
DB "SAV", 'E' + 0x80, _CSAVE
|
|
DB "SRLI", 'N' + 0x80, _CSRLIN
|
|
DB "IN", 'T' + 0x80, _CINT - 0x80
|
|
DB "SN", 'G' + 0x80, _CSNG - 0x80
|
|
DB "DB", 'L' + 0x80, _CDBL - 0x80
|
|
DB "V", 'I' + 0x80, _CVI - 0x80
|
|
DB "V", 'S' + 0x80, _CVS - 0x80
|
|
DB "V", 'D' + 0x80, _CVD - 0x80
|
|
DB "O", 'S' + 0x80, _COS - 0x80
|
|
DB "HR", '$' + 0x80, _CHR_ - 0x80
|
|
DB "IRCL", 'E' + 0x80, _CIRCLE
|
|
DB "OLO", 'R' + 0x80, _COLOR
|
|
DB "L", 'S' + 0x80, _CLS
|
|
DB "M", 'D' + 0x80, _CMD
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
DTAB:
|
|
DB "ELET", 'E' + 0x80, _DELETE
|
|
DB "AT", 'A' + 0x80, _DATA
|
|
DB "I", 'M' + 0x80, _DIM
|
|
DB "EFST", 'R' + 0x80, _DEFSTR
|
|
DB "EFIN", 'T' + 0x80, _DEFINT
|
|
DB "EFSN", 'G' + 0x80, _DEFSNG
|
|
DB "EFDB", 'L' + 0x80, _DEFDBL
|
|
DB "SKO", '$' + 0x80, _DSKO_
|
|
DB "E", 'F' + 0x80, _DEF
|
|
DB "SKI", '$' + 0x80, _DSKI_
|
|
DB "SK", 'F' + 0x80, _DSKF_ - 0x80
|
|
DB "RA", 'W' + 0x80, _DRAW
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
ETAB:
|
|
DB "LS", 'E' + 0x80, _ELSE
|
|
DB "N", 'D' + 0x80, _END
|
|
DB "RAS", 'E' + 0x80, _ERASE
|
|
DB "RRO", 'R' + 0x80, _ERROR
|
|
DB "R", 'L' + 0x80, _ERL
|
|
DB "R", 'R' + 0x80, _ERR
|
|
DB "X", 'P' + 0x80, _EXP - 0x80
|
|
DB "O", 'F' + 0x80, _EOF - 0x80
|
|
DB "Q", 'V' + 0x80, _EQV
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
FTAB:
|
|
DB "O", 'R' + 0x80, _FOR
|
|
DB "IEL", 'D' + 0x80, _FIELD
|
|
DB "ILE", 'S' + 0x80, _FILES
|
|
DB 'N' + 0x80, _FN
|
|
DB "R", 'E' + 0x80, _FRE - 0x80
|
|
DB "I", 'X' + 0x80, _FIX - 0x80
|
|
DB "PO", 'S' + 0x80, _FPOS - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
GTAB:
|
|
DB "OT", 'O' + 0x80, _GOTO
|
|
DB "O T", 'O' + 0x80, _GOTO
|
|
DB "OSU", 'B' + 0x80, _GOSUB
|
|
DB "E", 'T' + 0x80, _GET
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
HTAB:
|
|
DB "EX", '$' + 0x80, _HEX - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
ITAB:
|
|
DB "NPU", 'T' + 0x80, _INPUT
|
|
DB 'F' + 0x80, _IF
|
|
DB "NST", 'R' + 0x80, _INSTR
|
|
DB "N", 'T' + 0x80, _INT - 0x80
|
|
DB "N", 'P' + 0x80, _INP - 0x80
|
|
DB "M", 'P' + 0x80, _IMP
|
|
DB "NKEY", '$' + 0x80, _INKEY_
|
|
DB "P", 'L' + 0x80, _IPL
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
JTAB:
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
KTAB:
|
|
DB "IL", 'L' + 0x80, _KILL
|
|
DB "E", 'Y' + 0x80, _KEY
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
LTAB:
|
|
DB "PRIN", 'T' + 0x80, _LPRINT
|
|
DB "LIS", 'T' + 0x80, _LLIST
|
|
DB "PO", 'S' + 0x80, _LPOS - 0x80
|
|
DB "E", 'T' + 0x80, _LET
|
|
DB "OCAT", 'E' + 0x80, _LOCATE
|
|
DB "IN", 'E' + 0x80, _LINE
|
|
DB "OA", 'D' + 0x80, _LOAD
|
|
DB "SE", 'T' + 0x80, _LSET
|
|
DB "IS", 'T' + 0x80, _LIST
|
|
DB "FILE", 'S' + 0x80, _LFILES
|
|
DB "O", 'G' + 0x80, _LOG - 0x80
|
|
DB "O", 'C' + 0x80, _LOC - 0x80
|
|
DB "E", 'N' + 0x80, _LEN - 0x80
|
|
DB "EFT", '$' + 0x80, _LEFT_ - 0x80
|
|
DB "O", 'F' + 0x80, _LOF - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
MTAB:
|
|
DB "OTO", 'R' + 0x80, _MOTOR
|
|
DB "ERG", 'E' + 0x80, _MERGE
|
|
DB "O", 'D' + 0x80, _MOD
|
|
DB "KI", '$' + 0x80, _MKI_ - 0x80
|
|
DB "KS", '$' + 0x80, _MKS_ - 0x80
|
|
DB "KD", '$' + 0x80, _MKD_ - 0x80
|
|
DB "ID", '$' + 0x80, _MID_ - 0x80
|
|
DB "A", 'X' + 0x80, _MAX
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
NTAB:
|
|
DB "EX", 'T' + 0x80, _NEXT
|
|
DB "AM", 'E' + 0x80, _NAME
|
|
DB "E", 'W' + 0x80, _NEW
|
|
DB "O", 'T' + 0x80, _NOT
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
OTAB:
|
|
DB "PE", 'N' + 0x80, _OPEN
|
|
DB "U", 'T' + 0x80, _OUT
|
|
DB 'N' + 0x80, _ON
|
|
DB 'R' + 0x80, _OR
|
|
DB "CT", '$' + 0x80, _OCT_ - 0x80
|
|
DB "F", 'F' + 0x80, _OFF
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
PTAB:
|
|
DB "RIN", 'T' + 0x80, _PRINT
|
|
DB "U", 'T' + 0x80, _PUT
|
|
DB "OK", 'E' + 0x80, _POKE
|
|
DB "O", 'S' + 0x80, _POS - 0x80
|
|
DB "EE", 'K' + 0x80, _PEEK - 0x80
|
|
DB "SE", 'T' + 0x80, _PSET
|
|
DB "RESE", 'T' + 0x80, _PRESET
|
|
DB "OIN", 'T' + 0x80, _POINT
|
|
DB "AIN", 'T' + 0x80, _PAINT
|
|
DB "D", 'L' + 0x80, _PDL - 0x80
|
|
DB "A", 'D' + 0x80, _PAD - 0x80
|
|
DB "LA", 'Y' + 0x80, _PLAY
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
QTAB:
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
RTAB:
|
|
DB "ETUR", 'N' + 0x80, _RETURN
|
|
DB "EA", 'D' + 0x80, _READ
|
|
DB "U", 'N' + 0x80, _RUN
|
|
DB "ESTOR", 'E' + 0x80, _RESTORE
|
|
DB "E", 'M' + 0x80, _REM
|
|
DB "ESUM", 'E' + 0x80, _RESUME
|
|
DB "SE", 'T' + 0x80, _RSET
|
|
DB "IGHT", '$' + 0x80, _RIGHT_ - 0x80
|
|
DB "N", 'D' + 0x80, _RND - 0x80
|
|
DB "ENU", 'M' + 0x80, _RENUM
|
|
DB 0
|
|
; --------------------------------------------------
|
|
STAB:
|
|
DB "CREE", 'N' + 0x80, _SCREEN
|
|
DB "PRIT", 'E' + 0x80, _SPRITE
|
|
DB "TO", 'P' + 0x80, _STOP
|
|
DB "WA", 'P' + 0x80, _SWAP
|
|
DB "E", 'T' + 0x80, _SET
|
|
DB "AV", 'E' + 0x80, _SAVE
|
|
DB "PC", '(' + 0x80, _SPC
|
|
DB "TE", 'P' + 0x80, _STEP
|
|
DB "G", 'N' + 0x80, _SGN - 0x80
|
|
DB "Q", 'R' + 0x80, _SQR - 0x80
|
|
DB "I", 'N' + 0x80, _SIN - 0x80
|
|
DB "TR", '$' + 0x80, _STR_ - 0x80
|
|
DB "TRING", '$' + 0x80, _STRING_
|
|
DB "PACE", '$' + 0x80, _SPACE_ - 0x80
|
|
DB "OUN", 'D' + 0x80, _SOUND
|
|
DB "TIC", 'K' + 0x80, _STICK - 0x80
|
|
DB "TRI", 'G' + 0x80, _STRIG - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
TTAB:
|
|
DB "HE", 'N' + 0x80, _THEN
|
|
DB "RO", 'N' + 0x80, _TRON
|
|
DB "ROF", 'F' + 0x80, _TROFF
|
|
DB "AB", '(' + 0x80, _TAB
|
|
DB 'O' + 0x80, _TO
|
|
DB "IM", 'E' + 0x80, _TIME
|
|
DB "A", 'N' + 0x80, _TAN - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
UTAB:
|
|
DB "SIN", 'G' + 0x80, _USING
|
|
DB "S", 'R' + 0x80, _USR
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
VTAB:
|
|
DB "A", 'L' + 0x80, _VAL - 0x80
|
|
DB "ARPT", 'R' + 0x80, _VARPTR
|
|
DB "D", 'P' + 0x80, _VDP
|
|
DB "POK", 'E' + 0x80, _VPOKE
|
|
DB "PEE", 'K' + 0x80, _VPEEK - 0x80
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
WTAB:
|
|
DB "IDT", 'H' + 0x80, _WIDTH
|
|
DB "AI", 'T' + 0x80, _WAIT
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
XTAB:
|
|
DB "O", 'R' + 0x80, _XOR
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
YTAB:
|
|
DB 0
|
|
; ---------------------------------------------------
|
|
ZTAB:
|
|
DB 0
|
|
|
|
; ---------------------------------------------------
|
|
; Special operators table
|
|
; ---------------------------------------------------
|
|
MB_SPCTAB:
|
|
db '+'+0x80
|
|
db PLUSTK
|
|
db '-'+0x80
|
|
db MINUTK
|
|
db '*'+0x80
|
|
db MULTK
|
|
db '/'+0x80
|
|
db DIVTK
|
|
db '^'+0x80
|
|
db EXPTK
|
|
db ASCII_BKSL+0x80
|
|
db IDIVTK
|
|
db '''' + 0x80
|
|
db SNGQTK
|
|
db '>'+0x80
|
|
db GREATK
|
|
db '='+0x80
|
|
db EQULTK
|
|
db '<'+0x80
|
|
db LESSTK
|
|
db 0
|
|
|
|
; ---------------------------------------------------
|
|
; Math precedences table
|
|
; ---------------------------------------------------
|
|
MB_OPTAB:
|
|
db 121
|
|
db 121
|
|
db 124
|
|
db 124
|
|
db 127
|
|
db 80
|
|
db 70
|
|
db 60
|
|
db 50
|
|
db 40
|
|
db 122
|
|
db 123
|
|
|
|
; --------------------------------------------------
|
|
; Used by assignment code to force the right hand
|
|
; value to correspond to the value type of the
|
|
; variable being assigned to.
|
|
; --------------------------------------------------
|
|
MB_FRCTBL:
|
|
DW MB_FRCDBL
|
|
DW 0x00
|
|
DW MB_FRCINT
|
|
DW MB_CHKSTR
|
|
DW MB_FRCSNG
|
|
|
|
; ---------------------------------------------------
|
|
; Double precision routines
|
|
; ---------------------------------------------------
|
|
MB_DBLDSP:
|
|
DW MB_DADD
|
|
DW MB_DSUB
|
|
DW MB_DMUL
|
|
DW MB_DDIV
|
|
DW MB_DEXP
|
|
DW MB_DCOMP
|
|
|
|
; ---------------------------------------------------
|
|
; Single precision routines
|
|
; ---------------------------------------------------
|
|
MB_SNGDSP:
|
|
DW MB_FADD
|
|
DW MB_FSUB
|
|
DW MB_FMUL
|
|
DW MB_FDIV
|
|
DW MB_FEXP
|
|
DW MB_FCOMP
|
|
|
|
; ---------------------------------------------------
|
|
; Integer routines
|
|
; ---------------------------------------------------
|
|
MB_INTDSP:
|
|
DW MB_IADD
|
|
DW MB_ISUB
|
|
DW MB_IMUL
|
|
DW MB_INTDIV
|
|
DW MB_IEXP
|
|
DW MB_ICOMP
|