Files
MZBAS/dispatch.asm

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