MSX Basic v2 draft
This commit is contained in:
1 parent
00610b2925
commit
4f26befd74
19 files changed
+19381
-437
No files matched your search
@@ -0,0 +1,188 @@
|
||||
; ---------------------------------------------------
|
||||
_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
|
||||
; ?? 0x98 - 0x80 = 0x18
|
||||
_OCT_ EQU 0x99 ; 153
|
||||
_HEX_ EQU 0x9a ; 154
|
||||
_LPOS EQU 0x9b ; 155
|
||||
_CINT EQU 0x9c ; 156
|
||||
_CSNG EQU 0x9d ; 157
|
||||
_CDBL EQU 0x9e
|
||||
_FIX EQU 0x9f ; 159
|
||||
|
||||
; ---------------------------------------------------
|
||||
; Conversion functions
|
||||
; ---------------------------------------------------
|
||||
_CVI EQU 0xA0 ; 160
|
||||
_CVS EQU 0xA1 ; 161
|
||||
_CVD EQU 0xA2 ; 162
|
||||
|
||||
; ---------------------------------------------------
|
||||
; Disk functions
|
||||
; ---------------------------------------------------
|
||||
|
||||
_DSKF EQU 0xA3 ; 163
|
||||
_EOF EQU 0xA4 ; 164
|
||||
_LOC EQU 0xA5 ; 165
|
||||
_LOF EQU 0xA6 ; 166
|
||||
_FPOS EQU 0xA7 ; 167
|
||||
|
||||
|
||||
; ---------------------------------------------------
|
||||
; Conversion functions
|
||||
; ---------------------------------------------------
|
||||
_MKI_ EQU 0xA8 ; 168
|
||||
_MKS_ EQU 0xA9 ; 169
|
||||
_MKD_ EQU 0xAA ; 170
|
||||
|
||||
|
||||
ASCII_TAB EQU 0x09 ; 9
|
||||
ASCII_LF EQU 0x0a ; 10
|
||||
ASCII_VTAB EQU 0x0b ; 11
|
||||
ASCII_CR EQU 0x0d ; 13
|
||||
ASCII_SP EQU 0x20 ; 32
|
||||
ASCII_CUR EQU 0x24 ; 36
|
||||
|
||||
CTRL_O EQU 0x0f ; 15
|
||||
|
||||
_SPACE_ EQU 0x18 ; 24
|
||||
_CDBL EQU 0x1e ; 30
|
||||
|
||||
|
||||
_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
|
||||
; ---------------------------------------------------
|
||||
_STOP EQU 0x90 ; 144
|
||||
_PRINT EQU 0x91 ; 145
|
||||
_CLEAR EQU 0x92 ; 146
|
||||
_LIST EQU 0x93 ; 147
|
||||
_SCRATCH EQU 0x94
|
||||
_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
|
||||
_KEY EQU 0x9f ; 159
|
||||
; ---------------------------------------------------
|
||||
_WIDTH EQU 0xa0 ; 160
|
||||
_ELSE EQU 0xa1 ; 161
|
||||
_TRON EQU 0xa2 ; 162
|
||||
_TROFF EQU 0xa3 ; 163
|
||||
_SWAP EQU 0xa4 ; 164
|
||||
_ERASE EQU 0xa5 ; 165
|
||||
_EDIT EQU 0xa6 ; 166
|
||||
_ERROR EQU 0xa7 ; 167
|
||||
_RESUME EQU 0xa8 ; 168
|
||||
_DELETE EQU 0xa9 ; 169
|
||||
_AUTO EQU 0xaa ; 170
|
||||
_RENUM EQU 0xab ; 171
|
||||
_DEFSTR EQU 0xac ; 172
|
||||
_DEFINT EQU 0xad ; 173
|
||||
_DEFSNG EQU 0xae ; 174
|
||||
_DEFDBL EQU 0xaf ; 175
|
||||
; ---------------------------------------------------
|
||||
_LINE EQU 0xb0 ; 176
|
||||
_WHILE EQU 0xb1 ; 177
|
||||
_WEND EQU 0xb2 ; 178
|
||||
_CALL EQU 0xb3 ; 179
|
||||
_BEEP EQU 0xb4 ; 180
|
||||
_MON EQU 0xb5 ; 181
|
||||
; ? b6
|
||||
_WRITE EQU 0xb7 ; 183
|
||||
_COMMON EQU 0xb8 ; 184
|
||||
_CHAIN EQU 0xb9 ; 185
|
||||
_OPTION EQU 0xba ; 186
|
||||
_RANDOMIZE EQU 0xbb ; 187
|
||||
_DSKO_ EQU 0xbc ; 188
|
||||
_OPEN EQU 0xbd ; 189
|
||||
_FIELD EQU 0xbe ; 190
|
||||
_GET EQU 0xbf ; 191
|
||||
; ---------------------------------------------------
|
||||
_PUT EQU 0xc0 ; 192
|
||||
_SET EQU 0xc1 ; 193
|
||||
_CLOSE EQU 0xc2 ; 194
|
||||
_LOAD EQU 0xc3 ; 195
|
||||
_MERGE EQU 0xc4 ; 196
|
||||
_FILES EQU 0xc5 ; 197
|
||||
_NAME EQU 0xc6 ; 198
|
||||
_KILL EQU 0xc7 ; 199
|
||||
_LSET EQU 0xc8 ; 200
|
||||
_RSET EQU 0xc9 ; 201
|
||||
_SAVE EQU 0xca ; 202
|
||||
_LFILES EQU 0xcb ; 203
|
||||
_PSET EQU 0xcc ; 204
|
||||
_PRESET EQU 0xcd ; 205
|
||||
_COLOR EQU 0xce ; 206
|
||||
_LOCATE EQU 0xcf ; 207
|
||||
; ---------------------------------------------------
|
||||
_CLS EQU 0xd0 ; 208
|
||||
_CONSOLE EQU 0xd1 ; 209
|
||||
;?
|
||||
_TO EQU 0xd3 ; 211
|
||||
_THEN EQU 0xd4 ; 212
|
||||
_TAB EQU 0xd5 ; 213
|
||||
_STEP EQU 0xd6 ; 214
|
||||
_USR EQU 0xd7 ; 215
|
||||
_FN EQU 0xd8 ; 216
|
||||
_SPC EQU 0xd9 ; 217
|
||||
; ?
|
||||
_ERL EQU 0xdb ; 219
|
||||
_ERR EQU 0xdc ; 220
|
||||
_STRING_ EQU 0xdd ; 221
|
||||
_USING EQU 0xde ; 222
|
||||
_INSTR EQU 0xdf ; 223
|
||||
; ---------------------------------------------------
|
||||
; ? E0
|
||||
_VARPTR EQU 0xe1 ; 225
|
||||
_CSRLIN EQU 0xe2 ; 226
|
||||
_ATTR_ EQU 0xe3 ; 227
|
||||
_DSKI_ EQU 0xe4 ; 228
|
||||
_POINT EQU 0xe5 ; 229
|
||||
_INKEY EQU 0xe6 ; 230
|
||||
|
||||
_AND EQU 0xf6 ; 246
|
||||
_OR EQU 0xf7 ; 247
|
||||
_XOR EQU 0xf8 ; 248
|
||||
_EQV EQU 0xf9 ; 249
|
||||
_IMP EQU 0xfa ; 250
|
||||
_MOD EQU 0xfb ; 251
|
||||
@@ -0,0 +1,131 @@
|
||||
MB_ERRTAB:
|
||||
db 0
|
||||
MB_ERROR_MSGS:
|
||||
DB "NEXT without FOR", 0 ; 1
|
||||
DB "Syntax error", 0 ; 2
|
||||
DB "RETURN without GOSUB", 0 ; 3
|
||||
DB "Out of DATA", 0 ; 4
|
||||
DB "Illegal function call", 0 ; 5
|
||||
MB_OVRMSG:
|
||||
DB "Overflow", 0 ; 6
|
||||
DB "Out of memory", 0 ; 7
|
||||
DB "Undefined line number", 0 ; 8
|
||||
DB "Subscript out of range", 0 ; 9
|
||||
DB "Duplicate Definition", 0 ; 10
|
||||
MB_DBZ_MSG:
|
||||
DB "Division by zero", 0 ; 11
|
||||
DB "Illegal direct",0 ; 12
|
||||
MSG_TYPE_MM:
|
||||
DB "Type mismatch", 0 ; 13
|
||||
DB "Out of string space", 0 ; 14
|
||||
DB "String too long", 0 ; 15
|
||||
DB "String formula too complex", 0 ; 16
|
||||
|
||||
DB "Can't continue", 0 ; 17
|
||||
DB "Undefined user function", 0 ; 18
|
||||
DB "No RESUME", 0 ; 19
|
||||
DB "RESUME without error", 0 ; 20
|
||||
DB "Unprintable error", 0 ; 21
|
||||
DB "Missing operand", 0 ; 22
|
||||
DB "Line buffer overflow", 0 ; 23
|
||||
DB "Device I/O error", 0 ; 24
|
||||
db '?', 0 ; 25
|
||||
db '?', 0 ; 26
|
||||
DB "FOR Without NEXT", 0 ; 27 - 0x1B
|
||||
db '?', 0 ; 28
|
||||
db '?', 0 ; 29
|
||||
DB "WHILE without WEND", 0 ; 30
|
||||
DB "WEND without WHILE", 0 ; 31
|
||||
|
||||
MSG_FOW_ERR:
|
||||
DB "FIELD overflow", 0 ; 50
|
||||
DB "Internal error", 0 ; 51
|
||||
DB "Bad file number", 0 ; 52
|
||||
DB "File not found", 0 ; 53
|
||||
DB "File already open", 0 ; 54
|
||||
DB "Disk not mounted", 0 ; 55
|
||||
DB "Disk I/O error", 0 ; 56
|
||||
DB "File already exists", 0 ; 57
|
||||
db '?', 0 ; 58
|
||||
DB "Disk already mounted", 0 ; 59
|
||||
DB "Disk full",0 ; 60
|
||||
DB "Input past end", 0 ; 61
|
||||
DB "Bad file name", 0 ; 62
|
||||
DB "Direct statement in file", 0 ; 63
|
||||
DB "Bad allocation table", 0 ; 64
|
||||
DB "Bad drive number", 0 ; 65
|
||||
DB "Bad track/sector", 0 ; 66
|
||||
DB "Deleted record", 0 ; 67
|
||||
MSG_RAD_ERR:
|
||||
DB "Rename across disks", 0 ; 68
|
||||
DB "Sequential after PUT", 0 ; 69
|
||||
DB "Sequential I/O only", 0 ; 70
|
||||
DB "File not OPEN", 0 ; 71
|
||||
DB "File write protected", 0 ; 72
|
||||
DB "Disk offline", 0 ; 73
|
||||
|
||||
; --------------------------------------------------
|
||||
; Error codes
|
||||
; --------------------------------------------------
|
||||
ERRNF EQU 0x01
|
||||
ERRSN EQU 0x02 ; 2
|
||||
ERRRG EQU 0x03 ; 3
|
||||
ERROD EQU 0x04 ; 4
|
||||
ERRFC EQU 0x05 ; 5
|
||||
ERROV EQU 0x06 ; 6
|
||||
ERROM EQU 0x07
|
||||
ERRUS EQU 0x08 ; 8
|
||||
ERRBS EQU 0x09 ; 9
|
||||
ERRDD EQU 0x0a ; 10
|
||||
ERRDV0 EQU 0x0b ; 11
|
||||
ERRID EQU 0x0c ; 12
|
||||
ERRTM EQU 0x0d ; 13
|
||||
ERRSO EQU 0x0e ; Out of space
|
||||
ERRLS EQU 0x0f ; 15
|
||||
ERRST EQU 0x10 ; String formula too complex
|
||||
ERRCN EQU 0x11 ; 17
|
||||
ERRUF EQU 0x12 ; Undefined user function
|
||||
ERRNR EQU 0x13 ; 19
|
||||
ERRRE EQU 0x14 ; 20
|
||||
ERRUE EQU 0x15 ; Unprintable error
|
||||
ERRMO EQU 0x16 ; Missing operand
|
||||
ERRLBO EQU 0x17 ; 23
|
||||
ERRDIO EQU 0x18 ; Device I/O error
|
||||
; skipped and 19, 1a
|
||||
ERRFN EQU 0x1b ; 2
|
||||
; skipped 1c and 1d
|
||||
ERRWH EQU 0x1e ; 29
|
||||
ERRWE EQU 0x1f ; 30
|
||||
|
||||
NONDSK EQU 0x1f ; Last non disk error
|
||||
|
||||
; Disk errors starts from here
|
||||
DSKERR EQU 0x31 ; 49
|
||||
;
|
||||
ERRFOV EQU 0x32 ; 50
|
||||
ERRIER EQU 0x33 ; 51
|
||||
ERRBFN EQU 0x34 ; 52
|
||||
ERRFNF EQU 0x35 ; 53
|
||||
ERRFAO EQU 0x36 ; 54
|
||||
ERRDNM EQU 0x37 ; 55
|
||||
ERRIOE EQU 0x38 ; 56
|
||||
ERRFAE EQU 0x39 ; 57
|
||||
; 0x3a - 58
|
||||
ERRDAM EQU 0x3b ; 59 Disk already mounted
|
||||
ERRDFL EQU 0x3c ; 60 Disk full
|
||||
ERRRPE EQU 0x3d ; 61 Inp past end
|
||||
ERRBFL EQU 0x3e ; 62 Bad file name
|
||||
ERRDSF EQU 0x3f ; 63 Direct statement in file
|
||||
ERRBAT EQU 0x40 ; 64 Bad alloc table
|
||||
ERRBDN EQU 0x41 ; 65
|
||||
ERRBTS EQU 0x42 ; 66 Bad trk/sec
|
||||
ERRDLR EQU 0x43 ; 67 Deleted record
|
||||
|
||||
ERRRAD EQU 0x44 ; 68 ren across disks
|
||||
ERRSAP EQU 0x45 ; 69 Seq aft PUT
|
||||
ERRSIO EQU 0x46 ; 70 Seq I/O only
|
||||
ERRFNO EQU 0x47 ; 71 File not open
|
||||
ERRFWP EQU 0x49 ; 72 File protected
|
||||
ERRDOF EQU 0x48 ; 73 Disk offline
|
||||
|
||||
; --------------------------------------------------
|
||||
Reference in new issue
Block a user