@nataliapc/mcp-openmsx 1.1.15 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +84 -37
  2. package/dist/server.js +101 -40
  3. package/dist/utils.js +42 -2
  4. package/dist/vectordb.js +61 -0
  5. package/package.json +8 -3
  6. package/resources/audio/msx-midi.md +872 -0
  7. package/resources/audio/psg_registers.md +281 -0
  8. package/resources/audio/sound_cartridge_scc.md +123 -0
  9. package/resources/audio/sound_cartridge_scci.md +250 -0
  10. package/resources/audio/toc.json +8 -4
  11. package/resources/book--msx2-technical-handbook/toc.json +1 -1
  12. package/resources/msx-dos/MSX-DOS_2_Environment_Variables.md +1368 -0
  13. package/resources/msx-dos/MSX-DOS_File_extensions.md +154 -0
  14. package/resources/msx-dos/toc.json +13 -0
  15. package/resources/msx-unapi/toc.json +2 -2
  16. package/resources/others/keyboard_matrices.md +243 -0
  17. package/resources/others/toc.json +6 -0
  18. package/resources/programming/asm_callbios.md +79 -0
  19. package/resources/programming/asm_docopy.md +115 -0
  20. package/resources/programming/asm_fast_loops.md +200 -0
  21. package/resources/programming/asm_getslot.md +143 -0
  22. package/resources/programming/asm_interrupts.md +202 -0
  23. package/resources/programming/asm_load_screen.md +240 -0
  24. package/resources/programming/asm_mult_div_shifts.md +487 -0
  25. package/resources/programming/asm_raminpage1.md +56 -0
  26. package/resources/programming/asm_vdp_detection.md +78 -0
  27. package/resources/programming/asm_vdp_routines.md +343 -0
  28. package/resources/programming/asm_z80_routines_collection.md +810 -0
  29. package/resources/programming/basic_wiki/ABS().md +36 -0
  30. package/resources/programming/basic_wiki/AND.md +71 -0
  31. package/resources/programming/basic_wiki/ASC().md +38 -0
  32. package/resources/programming/basic_wiki/ATN().md +36 -0
  33. package/resources/programming/basic_wiki/AUTO.md +39 -0
  34. package/resources/programming/basic_wiki/BASE().md +147 -0
  35. package/resources/programming/basic_wiki/BEEP.md +27 -0
  36. package/resources/programming/basic_wiki/BIN$().md +36 -0
  37. package/resources/programming/basic_wiki/BLOAD.md +63 -0
  38. package/resources/programming/basic_wiki/BSAVE.md +61 -0
  39. package/resources/programming/basic_wiki/CALL.md +391 -0
  40. package/resources/programming/basic_wiki/CALL_ADJUST.md +40 -0
  41. package/resources/programming/basic_wiki/CALL_IMPOSE.md +28 -0
  42. package/resources/programming/basic_wiki/CALL_OPTIONS.md +26 -0
  43. package/resources/programming/basic_wiki/CALL_PAUSE.md +119 -0
  44. package/resources/programming/basic_wiki/CALL_PCMPLAY.md +60 -0
  45. package/resources/programming/basic_wiki/CALL_PCMREC.md +70 -0
  46. package/resources/programming/basic_wiki/CDBL().md +36 -0
  47. package/resources/programming/basic_wiki/CHR$().md +51 -0
  48. package/resources/programming/basic_wiki/CINT().md +36 -0
  49. package/resources/programming/basic_wiki/CIRCLE.md +51 -0
  50. package/resources/programming/basic_wiki/CLEAR.md +39 -0
  51. package/resources/programming/basic_wiki/CLOAD.md +27 -0
  52. package/resources/programming/basic_wiki/CLOAD?.md +31 -0
  53. package/resources/programming/basic_wiki/CLOSE.md +44 -0
  54. package/resources/programming/basic_wiki/CLS.md +51 -0
  55. package/resources/programming/basic_wiki/COLOR.md +143 -0
  56. package/resources/programming/basic_wiki/COLOR=.md +93 -0
  57. package/resources/programming/basic_wiki/COLOR_SPRITE$().md +83 -0
  58. package/resources/programming/basic_wiki/COLOR_SPRITE().md +85 -0
  59. package/resources/programming/basic_wiki/CONT.md +23 -0
  60. package/resources/programming/basic_wiki/COPY.md +215 -0
  61. package/resources/programming/basic_wiki/COPY_SCREEN.md +61 -0
  62. package/resources/programming/basic_wiki/COS().md +37 -0
  63. package/resources/programming/basic_wiki/CSAVE.md +35 -0
  64. package/resources/programming/basic_wiki/CSNG().md +36 -0
  65. package/resources/programming/basic_wiki/CSRLIN.md +33 -0
  66. package/resources/programming/basic_wiki/DATA.md +47 -0
  67. package/resources/programming/basic_wiki/DEFDBL.md +40 -0
  68. package/resources/programming/basic_wiki/DEFINT.md +40 -0
  69. package/resources/programming/basic_wiki/DEFSNG.md +40 -0
  70. package/resources/programming/basic_wiki/DEFSTR.md +40 -0
  71. package/resources/programming/basic_wiki/DEF_FN.md +49 -0
  72. package/resources/programming/basic_wiki/DEF_USR.md +33 -0
  73. package/resources/programming/basic_wiki/DELETE.md +49 -0
  74. package/resources/programming/basic_wiki/DIM.md +59 -0
  75. package/resources/programming/basic_wiki/DRAW.md +77 -0
  76. package/resources/programming/basic_wiki/ELSE.md +45 -0
  77. package/resources/programming/basic_wiki/END.md +32 -0
  78. package/resources/programming/basic_wiki/EOF().md +36 -0
  79. package/resources/programming/basic_wiki/EQV.md +76 -0
  80. package/resources/programming/basic_wiki/ERASE.md +35 -0
  81. package/resources/programming/basic_wiki/ERL.md +34 -0
  82. package/resources/programming/basic_wiki/ERR.md +143 -0
  83. package/resources/programming/basic_wiki/ERROR.md +145 -0
  84. package/resources/programming/basic_wiki/EXP().md +38 -0
  85. package/resources/programming/basic_wiki/FIELD.md +48 -0
  86. package/resources/programming/basic_wiki/FIX().md +44 -0
  87. package/resources/programming/basic_wiki/FN.md +61 -0
  88. package/resources/programming/basic_wiki/FOR...NEXT.md +80 -0
  89. package/resources/programming/basic_wiki/FRE().md +66 -0
  90. package/resources/programming/basic_wiki/GET_DATE.md +60 -0
  91. package/resources/programming/basic_wiki/GET_TIME.md +34 -0
  92. package/resources/programming/basic_wiki/GOSUB.md +41 -0
  93. package/resources/programming/basic_wiki/GOTO.md +41 -0
  94. package/resources/programming/basic_wiki/HEX$().md +36 -0
  95. package/resources/programming/basic_wiki/IF...GOTO...ELSE.md +55 -0
  96. package/resources/programming/basic_wiki/IF...THEN...ELSE.md +50 -0
  97. package/resources/programming/basic_wiki/IMP.md +83 -0
  98. package/resources/programming/basic_wiki/INKEY$.md +65 -0
  99. package/resources/programming/basic_wiki/INP().md +33 -0
  100. package/resources/programming/basic_wiki/INPUT$().md +51 -0
  101. package/resources/programming/basic_wiki/INPUT.md +93 -0
  102. package/resources/programming/basic_wiki/INSTR().md +44 -0
  103. package/resources/programming/basic_wiki/INT().md +44 -0
  104. package/resources/programming/basic_wiki/INTERVAL.md +57 -0
  105. package/resources/programming/basic_wiki/KEY().md +51 -0
  106. package/resources/programming/basic_wiki/KEY.md +254 -0
  107. package/resources/programming/basic_wiki/LEFT$().md +39 -0
  108. package/resources/programming/basic_wiki/LEN().md +36 -0
  109. package/resources/programming/basic_wiki/LET.md +68 -0
  110. package/resources/programming/basic_wiki/LINE.md +74 -0
  111. package/resources/programming/basic_wiki/LINE_INPUT.md +79 -0
  112. package/resources/programming/basic_wiki/LIST.md +58 -0
  113. package/resources/programming/basic_wiki/LLIST.md +43 -0
  114. package/resources/programming/basic_wiki/LOAD.md +56 -0
  115. package/resources/programming/basic_wiki/LOCATE.md +67 -0
  116. package/resources/programming/basic_wiki/LOG().md +36 -0
  117. package/resources/programming/basic_wiki/LPOS().md +31 -0
  118. package/resources/programming/basic_wiki/LPRINT.md +46 -0
  119. package/resources/programming/basic_wiki/MAXFILES.md +39 -0
  120. package/resources/programming/basic_wiki/MERGE.md +54 -0
  121. package/resources/programming/basic_wiki/MID$().md +72 -0
  122. package/resources/programming/basic_wiki/MOD.md +39 -0
  123. package/resources/programming/basic_wiki/MOTOR.md +46 -0
  124. package/resources/programming/basic_wiki/NEW.md +27 -0
  125. package/resources/programming/basic_wiki/NOT.md +61 -0
  126. package/resources/programming/basic_wiki/OCT$().md +36 -0
  127. package/resources/programming/basic_wiki/ON...GOSUB.md +45 -0
  128. package/resources/programming/basic_wiki/ON...GOTO.md +42 -0
  129. package/resources/programming/basic_wiki/ON_ERROR_GOTO.md +61 -0
  130. package/resources/programming/basic_wiki/ON_INTERVAL_GOSUB.md +54 -0
  131. package/resources/programming/basic_wiki/ON_KEY_GOSUB.md +56 -0
  132. package/resources/programming/basic_wiki/ON_SPRITE_GOSUB.md +41 -0
  133. package/resources/programming/basic_wiki/ON_STOP_GOSUB.md +56 -0
  134. package/resources/programming/basic_wiki/ON_STRIG_GOSUB.md +70 -0
  135. package/resources/programming/basic_wiki/OPEN.md +103 -0
  136. package/resources/programming/basic_wiki/OR.md +75 -0
  137. package/resources/programming/basic_wiki/OUT.md +35 -0
  138. package/resources/programming/basic_wiki/PAD().md +110 -0
  139. package/resources/programming/basic_wiki/PAINT.md +66 -0
  140. package/resources/programming/basic_wiki/PDL().md +53 -0
  141. package/resources/programming/basic_wiki/PEEK().md +44 -0
  142. package/resources/programming/basic_wiki/PLAY().md +58 -0
  143. package/resources/programming/basic_wiki/PLAY.md +196 -0
  144. package/resources/programming/basic_wiki/POINT.md +52 -0
  145. package/resources/programming/basic_wiki/POKE.md +51 -0
  146. package/resources/programming/basic_wiki/POS().md +36 -0
  147. package/resources/programming/basic_wiki/PRESET.md +61 -0
  148. package/resources/programming/basic_wiki/PRINT.md +179 -0
  149. package/resources/programming/basic_wiki/PSET.md +82 -0
  150. package/resources/programming/basic_wiki/PUT_KANJI.md +93 -0
  151. package/resources/programming/basic_wiki/PUT_SPRITE.md +143 -0
  152. package/resources/programming/basic_wiki/READ.md +45 -0
  153. package/resources/programming/basic_wiki/REM.md +42 -0
  154. package/resources/programming/basic_wiki/RENUM.md +78 -0
  155. package/resources/programming/basic_wiki/RESTORE.md +52 -0
  156. package/resources/programming/basic_wiki/RESUME.md +45 -0
  157. package/resources/programming/basic_wiki/RETURN.md +47 -0
  158. package/resources/programming/basic_wiki/RIGHT$().md +39 -0
  159. package/resources/programming/basic_wiki/RND().md +51 -0
  160. package/resources/programming/basic_wiki/RUN.md +56 -0
  161. package/resources/programming/basic_wiki/SAVE.md +65 -0
  162. package/resources/programming/basic_wiki/SCREEN.md +164 -0
  163. package/resources/programming/basic_wiki/SET_ADJUST.md +66 -0
  164. package/resources/programming/basic_wiki/SET_BEEP.md +76 -0
  165. package/resources/programming/basic_wiki/SET_DATE.md +103 -0
  166. package/resources/programming/basic_wiki/SET_PAGE.md +52 -0
  167. package/resources/programming/basic_wiki/SET_PASSWORD.md +75 -0
  168. package/resources/programming/basic_wiki/SET_PROMPT.md +61 -0
  169. package/resources/programming/basic_wiki/SET_SCREEN.md +100 -0
  170. package/resources/programming/basic_wiki/SET_SCROLL.md +55 -0
  171. package/resources/programming/basic_wiki/SET_TIME.md +83 -0
  172. package/resources/programming/basic_wiki/SET_TITLE.md +87 -0
  173. package/resources/programming/basic_wiki/SET_VIDEO.md +49 -0
  174. package/resources/programming/basic_wiki/SGN().md +38 -0
  175. package/resources/programming/basic_wiki/SIN().md +36 -0
  176. package/resources/programming/basic_wiki/SOUND.md +188 -0
  177. package/resources/programming/basic_wiki/SPACE$().md +38 -0
  178. package/resources/programming/basic_wiki/SPC().md +34 -0
  179. package/resources/programming/basic_wiki/SPRITE$().md +50 -0
  180. package/resources/programming/basic_wiki/SPRITE.md +31 -0
  181. package/resources/programming/basic_wiki/SQR().md +32 -0
  182. package/resources/programming/basic_wiki/STICK().md +70 -0
  183. package/resources/programming/basic_wiki/STOP.md +70 -0
  184. package/resources/programming/basic_wiki/STR$().md +37 -0
  185. package/resources/programming/basic_wiki/STRIG().md +82 -0
  186. package/resources/programming/basic_wiki/STRING$().md +42 -0
  187. package/resources/programming/basic_wiki/SWAP.md +62 -0
  188. package/resources/programming/basic_wiki/TAB().md +38 -0
  189. package/resources/programming/basic_wiki/TAN().md +36 -0
  190. package/resources/programming/basic_wiki/TIME.md +59 -0
  191. package/resources/programming/basic_wiki/TROFF.md +21 -0
  192. package/resources/programming/basic_wiki/TRON.md +39 -0
  193. package/resources/programming/basic_wiki/USR().md +66 -0
  194. package/resources/programming/basic_wiki/VAL().md +36 -0
  195. package/resources/programming/basic_wiki/VARPTR().md +50 -0
  196. package/resources/programming/basic_wiki/VDP().md +103 -0
  197. package/resources/programming/basic_wiki/VPEEK().md +46 -0
  198. package/resources/programming/basic_wiki/VPOKE.md +48 -0
  199. package/resources/programming/basic_wiki/WAIT.md +38 -0
  200. package/resources/programming/basic_wiki/WIDTH.md +76 -0
  201. package/resources/programming/basic_wiki/XOR.md +72 -0
  202. package/resources/programming/basic_wiki/_toc.json +871 -0
  203. package/resources/programming/dos_error_handling.md +85 -0
  204. package/resources/programming/toc.json +51 -36
  205. package/resources/programming/vdp_commands_speed.md +147 -0
  206. package/resources/programming/vdp_programming_faq.md +55 -0
  207. package/resources/programming/vdp_programming_tutorial.md +390 -0
  208. package/resources/programming/vdp_screensplit_programming_guide.md +166 -0
  209. package/resources/programming/vdp_scrolling_on_msx.md +124 -0
  210. package/resources/programming/vdp_the_yjk_screen_modes.md +227 -0
  211. package/resources/programming/vdp_v9938_vram_timings.md +539 -0
  212. package/resources/programming/vdp_v9938_vram_timings_part_2.md +281 -0
  213. package/resources/sdcc/toc.json +1 -1
  214. package/vector-db/index.json +1 -0
  215. /package/resources/msx-unapi/{Ethernet_UNAPI_specification_1.1.md → Ethernet_UNAPI_specification_1_1.md} +0 -0
  216. /package/resources/msx-unapi/{MSX_UNAPI_specification_1.1.md → MSX_UNAPI_specification_1_1.md} +0 -0
@@ -0,0 +1,143 @@
1
+ # ERR
2
+
3
+ ## Effect
4
+
5
+ Returns the code number of the error that occured.
6
+
7
+ Can vary between 1 and 255.
8
+
9
+ As MSX-BASIC uses values 1 to 25 and Disk BASIC values 50 to 82, you can use the non-defined values to generate specific error messages in your programs. Variables are not usable.
10
+
11
+ ## Syntax
12
+
13
+ `ERR`
14
+
15
+ ## Example
16
+
17
+ ```basic
18
+ 10 ON ERROR GOTO 50
19
+ 20 MSX ' Generates an error, as "MSX" is not a valid MSX-BASIC command
20
+ 30 END
21
+ 50 PRINT "Error code ";ERR
22
+ 60 RESUME 30
23
+ 70 ON ERROR GOTO 0
24
+
25
+ run
26
+ Error code 2
27
+ ```
28
+
29
+ ## Defined Errors
30
+
31
+ ### MSX-BASIC and Disk BASIC
32
+
33
+ Errors 72 to 75 have been added by version 2 of Disk BASIC, 76 to 82 by version 3 provided by the Nextor operating system.
34
+
35
+ |MSX-BASIC|Message|
36
+ |:-:|---|
37
+ |1|NEXT without FOR|
38
+ |2|Syntax error|
39
+ |3|RETURN without GOSUB|
40
+ |4|Out of DATA|
41
+ |5|Illegal function call|
42
+ |6|Overflow|
43
+ |7|Out of memory|
44
+ |8|Undefined line number|
45
+ |9|Subscript out of range|
46
+ |10|Redimensioned array|
47
+ |11|Division by zero|
48
+ |12|Illegal direct|
49
+ |13|Type mismatch|
50
+ |14|Out of string space|
51
+ |15|String too long|
52
+ |16|String formula too complex|
53
+ |17|Can't CONTINUE|
54
+ |18|Undefined user function|
55
+ |19|Device I/O error|
56
+ |20|Verify error|
57
+ |21|No RESUME|
58
+ |22|RESUME without error|
59
+ |23|Unprintable error|
60
+ |24|Missing operand|
61
+ |25|Line buffer overflow|
62
+
63
+ |Disk BASIC|Message|
64
+ |:-:|---|
65
+ |50|FIELD overflow|
66
+ |51|Internal error|
67
+ |52|Bad file number|
68
+ |53|File not found|
69
+ |54|File already open|
70
+ |55|Input past end|
71
+ |56|Bad file name|
72
+ |57|Direct statement in file|
73
+ |58|Sequential I/O only|
74
+ |59|File not OPEN|
75
+ |60|Bad FAT|
76
+ |61|Bad file mode|
77
+ |62|Bad drive name|
78
+ |63|Bad sector number|
79
+ |64|File still open|
80
+ |65|File already exists|
81
+ |66|Disk full|
82
+ |67|Too many files|
83
+ |68|Disk write protected|
84
+ |69|Disk I/O error|
85
+ |70|Disk offline|
86
+ |71|Rename across disk|
87
+ |72|File write protected|
88
+ |73|Directory already exists|
89
+ |74|Directory not found|
90
+ |75|RAM disk already exists|
91
+ |76|Invalid device driver|
92
+ |77|Invalid device or LUN|
93
+ |78|Invalid partition number|
94
+ |79|Partition already in use|
95
+ |80|File is mounted|
96
+ |81|Bad file size|
97
+ |82|Invalid cluster sequence|
98
+
99
+ ### HI-GRAPhics
100
+
101
+ HI-GRAPHics is an utility written by Arjen Schrijvers (see Interlacing Demo).
102
+
103
+ Note that the error messages can be in conflict with Disk BASIC versions 2 and 3.
104
+
105
+ |HI-GRAPHics|Message|
106
+ |:-:|---|
107
+ |72|Bad display page|
108
+ |73|Bad screen mode|
109
+ |74|Bad display mode|
110
+
111
+ ### Delta BASIC
112
+
113
+ |Delta BASIC|Message|
114
+ |:-:|---|
115
+ |200|ENDPROC without PROC|
116
+ |201|DEFPROC not found|
117
+ |202|ENDPROC not found|
118
+ |203|MODE error|
119
+ |204|UNNEW without NEW|
120
+ |205|Program recovered|
121
+ |206|TOO MUCH varspace|
122
+ |207|NO ROOM for vars|
123
+ |208|INVALID definition windows|
124
+ |209|INVALID window|
125
+ |210|MISSING definition window|
126
+ |211|LOCATE out of window|
127
+ |212|MEMDISC initialised|
128
+ |213|LINE number too big|
129
+ |214|MOVLIN error|
130
+ |215|COPLIN error|
131
+ |216|STATE size|
132
+
133
+ ## Related to
134
+
135
+ `ERL`, `ERROR`, `ON ERROR GOTO`, `RESUME`
136
+
137
+ ## Compatibility
138
+
139
+ MSX-BASIC 1.0 or higher
140
+
141
+ ## Source
142
+
143
+ Retrieved from "https://www.msx.org/wiki/ERR"
@@ -0,0 +1,145 @@
1
+ # ERROR
2
+
3
+ ## Effect
4
+
5
+ Simulates an error that is specified by its code.
6
+
7
+ ## Syntax
8
+
9
+ `ERROR <ErrorNumber>`
10
+
11
+ ## Parameter
12
+
13
+ `<ErrorNumber>` can vary between 1 and 255.
14
+
15
+ As MSX-BASIC uses values 1 to 25 and Disk BASIC values 50 to 82, you can use the non-defined values to generate specific error messages in your programs. Variables are not usable.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 10 ON ERROR GOTO 400
21
+ 20 INPUT "X= ";A
22
+ 30 IF A&gt;100 THEN ERROR 150
23
+ 40 IF A&lt;10 THEN ERROR 151
24
+ 50 END
25
+ 400 IF ERR=150 THEN PRINT "MAXIMUM 100!"
26
+ 410 IF ERR=151 THEN PRINT "MINIMUM 10!"
27
+ 420 RESUME 20
28
+ 430 ON ERROR GOTO 0
29
+ ```
30
+
31
+ ## Defined Errors
32
+
33
+ ### MSX-BASIC and Disk BASIC
34
+
35
+ Errors 72 to 75 have been added by version 2 of Disk BASIC, 76 to 82 by version 3 provided by the Nextor operating system.
36
+
37
+ |MSX-BASIC|Message|
38
+ |:-:|---|
39
+ |1|NEXT without FOR|
40
+ |2|Syntax error|
41
+ |3|RETURN without GOSUB|
42
+ |4|Out of DATA|
43
+ |5|Illegal function call|
44
+ |6|Overflow|
45
+ |7|Out of memory|
46
+ |8|Undefined line number|
47
+ |9|Subscript out of range|
48
+ |10|Redimensioned array|
49
+ |11|Division by zero|
50
+ |12|Illegal direct|
51
+ |13|Type mismatch|
52
+ |14|Out of string space|
53
+ |15|String too long|
54
+ |16|String formula too complex|
55
+ |17|Can't CONTINUE|
56
+ |18|Undefined user function|
57
+ |19|Device I/O error|
58
+ |20|Verify error|
59
+ |21|No RESUME|
60
+ |22|RESUME without error|
61
+ |23|Unprintable error|
62
+ |24|Missing operand|
63
+ |25|Line buffer overflow|
64
+
65
+ |Disk BASIC|Message|
66
+ |:-:|---|
67
+ |50|FIELD overflow|
68
+ |51|Internal error|
69
+ |52|Bad file number|
70
+ |53|File not found|
71
+ |54|File already open|
72
+ |55|Input past end|
73
+ |56|Bad file name|
74
+ |57|Direct statement in file|
75
+ |58|Sequential I/O only|
76
+ |59|File not OPEN|
77
+ |60|Bad FAT|
78
+ |61|Bad file mode|
79
+ |62|Bad drive name|
80
+ |63|Bad sector number|
81
+ |64|File still open|
82
+ |65|File already exists|
83
+ |66|Disk full|
84
+ |67|Too many files|
85
+ |68|Disk write protected|
86
+ |69|Disk I/O error|
87
+ |70|Disk offline|
88
+ |71|Rename across disk|
89
+ |72|File write protected|
90
+ |73|Directory already exists|
91
+ |74|Directory not found|
92
+ |75|RAM disk already exists|
93
+ |76|Invalid device driver|
94
+ |77|Invalid device or LUN|
95
+ |78|Invalid partition number|
96
+ |79|Partition already in use|
97
+ |80|File is mounted|
98
+ |81|Bad file size|
99
+ |82|Invalid cluster sequence|
100
+
101
+ ### HI-GRAPhics
102
+
103
+ HI-GRAPHics is an utility written by Arjen Schrijvers (see Interlacing Demo).
104
+
105
+ Note that the error messages can be in conflict with Disk BASIC versions 2 and 3.
106
+
107
+ |HI-GRAPHics|Message|
108
+ |:-:|---|
109
+ |72|Bad display page|
110
+ |73|Bad screen mode|
111
+ |74|Bad display mode|
112
+
113
+ ### Delta BASIC
114
+
115
+ |Delta BASIC|Message|
116
+ |:-:|---|
117
+ |200|ENDPROC without PROC|
118
+ |201|DEFPROC not found|
119
+ |202|ENDPROC not found|
120
+ |203|MODE error|
121
+ |204|UNNEW without NEW|
122
+ |205|Program recovered|
123
+ |206|TOO MUCH varspace|
124
+ |207|NO ROOM for vars|
125
+ |208|INVALID definition windows|
126
+ |209|INVALID window|
127
+ |210|MISSING definition window|
128
+ |211|LOCATE out of window|
129
+ |212|MEMDISC initialised|
130
+ |213|LINE number too big|
131
+ |214|MOVLIN error|
132
+ |215|COPLIN error|
133
+ |216|STATE size|
134
+
135
+ ## Related to
136
+
137
+ `ERL`, `ERR`, `ON ERROR GOTO`, `RESUME`
138
+
139
+ ## Compatibility
140
+
141
+ MSX-BASIC 1.0 or higher
142
+
143
+ ## Source
144
+
145
+ Retrieved from "https://www.msx.org/wiki/ERROR"
@@ -0,0 +1,38 @@
1
+ # EXP()
2
+
3
+ ## Effect
4
+
5
+ Returns mathematical constant e (base of the natural logarithm) to the power of a specified number.
6
+
7
+ ## Syntax
8
+
9
+ `EXP(<Number>)`
10
+
11
+ ## Parameter
12
+
13
+ `<Number>` must be less or equal 145.06286058562
14
+
15
+ ## Example
16
+
17
+ ```basic
18
+ 10 PRINT "e to the power of 1 is ";EXP(1)
19
+ 20 PRINT "e to the power of 0 is ";EXP(0)
20
+ 30 PRINT "e to the power of 10 is";EXP(10)
21
+
22
+ RUN
23
+ e to the power of 1 is 2.7182818284588
24
+ e to the power of 0 is 1
25
+ e to the power of 10 is 22026.4657948
26
+ ```
27
+
28
+ ## Related to
29
+
30
+ `LOG()`
31
+
32
+ ## Compatibility
33
+
34
+ MSX-BASIC 1.0 or higher
35
+
36
+ ## Source
37
+
38
+ Retrieved from "https://www.msx.org/wiki/EXP()"
@@ -0,0 +1,48 @@
1
+ # FIELD
2
+
3
+ ## Effect
4
+
5
+ Defines random access file record format. The file needs to be opened with `OPEN` before fields can be defined.
6
+
7
+ The record is separated into single fields. Every data field has a length and a string variable is assigned to access this fixed size space inside the record buffer. The number of fields is not limited but must not exceed the record length as specified with `OPEN` (by default: 256).
8
+
9
+ The fields inside a record are assigned in same order as they are presented in a program. Presentation can be done with single or multiple `FIELD` instructions. These fields are not separated in any way and their format is not stored, so record format needs to be presented both for reading and writing.
10
+
11
+ _Notes:_
12
+ - Random access of files in BASIC originates from time before disk drives, so it helps to understand the ideology and functionality, if you think the records as virtual stack of punched cards.
13
+ - `LET` can't be used to modify the record buffer, because it moves variable back to normal variable storage space. When handling random access files, you need to use `LSET` or `RSET` instead of `LET`.
14
+ - The record buffer location in memory can be checked with the `VARPTR` instruction.
15
+
16
+ ## Syntax
17
+
18
+ `FIELD # <FileNumber>,<CharacterLength> AS <StringVariable>,<CharacterLength> AS <StringVariable> ...`
19
+
20
+ At least one data field needs to be defined. Parameters can not end with a comma alone.
21
+
22
+ ## Parameters
23
+
24
+ `<FileNumber>` is the number of the open file, it can vary between 1 and 15, but can't exceed the maximum number of files eventually defined with `MAXFILES`. The `#` in front can be omitted.
25
+
26
+ `<CharacterLength>` is the length of a data field.
27
+
28
+ `<StringVariable>` is the variable assigned to this data field.
29
+
30
+ ## Example
31
+
32
+ ```basic
33
+ 10 OPEN "A:RECORD.DAT" AS #1
34
+ 20 FIELD #1, 20 AS A$, 10 AS B$, 15 AS C$
35
+ 30 CLOSE #1
36
+ ```
37
+
38
+ ## Related to
39
+
40
+ `CLOSE`, `GET`, `LSET`, `MAXFILES`, `OPEN`, `PUT`, `RSET`
41
+
42
+ ## Compatibility
43
+
44
+ Disk BASIC 1.0 or higher / both modes of Nextor OS
45
+
46
+ ## Source
47
+
48
+ Retrieved from "https://www.msx.org/wiki/FIELD"
@@ -0,0 +1,44 @@
1
+ # FIX()
2
+
3
+ ## Effect
4
+
5
+ Returns the integer part of a variable by truncating the numbers after the decimal point.
6
+
7
+ ## Syntax
8
+
9
+ `FIX (<Expression>)`
10
+
11
+ ## Parameter
12
+
13
+ `<Expression>` can be a value, a numeric variable or an mathematical expression.
14
+
15
+ ## Example
16
+
17
+ ```basic
18
+ 10 PRINT "FIX(1.23) results in ";FIX(1.23)
19
+ 20 PRINT "FIX(-1.99) results in ";FIX(-1.99)
20
+ 30 PRINT "FIX(-1.01) results in ";FIX(-1.01)
21
+  
22
+ RUN
23
+ FIX(1.23) results in 1
24
+ FIX(-1.99) results in -1
25
+ FIX(-1.01) results in -1
26
+ ```
27
+
28
+ ## Difference between FIX, INT and CINT
29
+
30
+ When the variable is negative, `INT` gives the next lower number, whereas `FIX` merely truncates the numbers after the decimal point. `FIX(x)` is equivalent to `INT(ABS(x))*SGN(x)`.
31
+
32
+ `CINT` is similar to `FIX`, but the integer part is limited between -32768 and 32767.
33
+
34
+ ## Related to
35
+
36
+ `ABS()`, `CINT()`, `INT()`, `SGN()`
37
+
38
+ ## Compatibility
39
+
40
+ MSX-BASIC 1.0 or higher
41
+
42
+ ## Source
43
+
44
+ Retrieved from "https://www.msx.org/wiki/FIX()"
@@ -0,0 +1,61 @@
1
+ # FN
2
+
3
+ ## Effect
4
+
5
+ Performs the functions defined by `DEF FN`. It is used as expression.
6
+
7
+ ## Syntax
8
+
9
+ `FN <FunctionName> (<Value>,<Value>...)`
10
+
11
+ ## Parameters
12
+
13
+ `<FunctionName>` is the function name, the length of the function name can be as long as you want, only the first two characters of the function name will actually be used.
14
+ Furthermore, if a function is to return a string, the name of the function has to be suffixed by a `$`.
15
+
16
+ `<Value>` is optional, it is a value that will be used in the `<Expression>` defined by `DEF FN`. Several values can be specified, they must be separated by a comma.
17
+
18
+ ## Examples
19
+
20
+ ```basic
21
+ 10 DEF FN SQUARE (X)=X^2
22
+ 20 PRINT "The square of 2 is ";FN SQUARE(2)
23
+ 30 PRINT "The square of 4 is ";FN SQUARE(4)
24
+  
25
+ RUN
26
+ The square of 2 is 4
27
+ The square of 4 is 16
28
+ ```
29
+ ```basic
30
+ 10 DEF FN PER(X,P)=X/(100/P)
31
+ 20 INPUT"Value";X
32
+ 30 INPUT"Percentage";P
33
+ 40 PRINT P;"% of";X;"="; FN PER(X,P)
34
+  
35
+ RUN
36
+ Value? 30
37
+ Percentage? 50
38
+ 50% of 30 = 15
39
+ ```
40
+ ```basic
41
+ 10 ' Limit mouse movement to screen using limit function
42
+ 20 DEF FNL(N,MI,MA)=((N&lt;MI)AND(MI-N))+N+((N&gt;MA)AND(MA-N))
43
+ 30 SCREEN 5
44
+ 40 SPRITE$(0)=" P "
45
+ 50 R=PAD(12) ' Read mouse from port 1
46
+ 60 X=FNL(X+PAD(13),0,255) : Y=FNL(Y+PAD(14),0,211)
47
+ 70 PUT SPRITE 0,(X-2,Y-2)
48
+ 80 IF NOT STRIG(1) THEN 50
49
+ ```
50
+
51
+ ## Related to
52
+
53
+ `CLEAR`, `DEF FN`
54
+
55
+ ## Compatibility
56
+
57
+ MSX-BASIC 1.0 or higher
58
+
59
+ ## Source
60
+
61
+ Retrieved from "https://www.msx.org/wiki/FN"
@@ -0,0 +1,80 @@
1
+ # FOR...NEXT
2
+
3
+ ## Effect
4
+
5
+ Sets up a loop in order to repeat a block of instructions until the counter variable has exceeded the end value.
6
+
7
+ ## Syntax
8
+
9
+ `FOR <Variable1>=<StartValue> TO <EndValue> STEP <Increment>`
10
+ ...
11
+ `NEXT <Variable1>,<Variable2>,...`
12
+
13
+ _Notes:_
14
+ - Several `FOR...NEXT` loops are possible.
15
+ - "..." can be several program lines
16
+ - `NEXT` can be applied on several loops,
17
+
18
+ For example:
19
+ `NEXT <Variable1>,<Variable2>`
20
+ has the same effect as
21
+ `NEXT <Variable1> : NEXT <Variable2>`
22
+ (see also examples below).
23
+
24
+ ## Parameters
25
+
26
+ `<Variable1>` is the numeric variable used for the loop. After the instruction `NEXT`, the variables are optional. They are used only to indicate to which loop it corresponds.
27
+
28
+ `<Variable2>`,etc are variables from preceding outer loops.
29
+
30
+ `<StartValue>` is the variable value on which the loop begins.
31
+
32
+ `<EndValue>` is the limit value of the loop.
33
+
34
+ `STEP` is an optional part that can be only used with `<Increment>` together.
35
+
36
+ `<Increment>` is the value to add at each back to begin. By default the value is 1.
37
+
38
+ _Note: if `<EndValue>` is inferior to `<StartValue>` then `<Increment>` must be negative._
39
+
40
+ `NEXT` is an instruction that causes the increment and then go back to the line just after that of the `FOR` instruction as long as the result does not exceed `<EndValue>`.
41
+
42
+ _Note: Each variable behind `NEXT` is optional except the last specified. Do not put a comma after this variable._
43
+
44
+ Within a loop another loop can be implemented, so loops can be nested. To avoid confusion, it's better to specify the corresponding variable(s) after `NEXT`. Every loop will be executed at least once because the termination condition is checked in the `NEXT` instruction(s).
45
+
46
+ ## Examples
47
+
48
+ ```basic
49
+ 10 FOR x=1 TO 25 STEP 5
50
+ 20 PRINT x
51
+ 30 NEXT
52
+
53
+ RUN
54
+ 1
55
+ 6
56
+ 11
57
+ 16
58
+ 21
59
+ ```
60
+ ```basic
61
+ 10 FOR I=1 TO 4
62
+ 20 PRINT I;
63
+ 30 NEXT:PRINT
64
+ 40 FOR I=0 TO 5 STEP 5
65
+ 50 FOR J=0 TO I+2
66
+ 60 PRINT J;
67
+ 70 NEXT J,I:PRINT
68
+
69
+ RUN
70
+ 1 2 3 4
71
+ 0 1 2 0 1 2 3 4 5 6 7
72
+ ```
73
+
74
+ ## Compatibility
75
+
76
+ MSX-BASIC 1.0 or higher
77
+
78
+ ## Source
79
+
80
+ Retrieved from "https://www.msx.org/wiki/FOR...NEXT"
@@ -0,0 +1,66 @@
1
+ # FRE()
2
+
3
+ ## Effect
4
+
5
+ - Returns the amount of bytes in memory which can be used for BASIC programs, variables, etc... if the parameter is a numeric value.
6
+ - Returns the amount of bytes in memory which can be used for strings If the parameter is a string.
7
+
8
+ ## Syntaxes
9
+
10
+ `FRE(<Value>)`
11
+
12
+ `FRE("<String>")`
13
+
14
+ ## Parameters
15
+
16
+ `<Value>` can be any value or a numeric variable.
17
+
18
+ `<String>` can be any string between double quotes `"` or a string variable (also named as alphanumeric variable).
19
+
20
+ ## Examples
21
+
22
+ Get free memory for your Basic program:
23
+
24
+ ```basic
25
+ 10 PRINT "First there are ";FRE(0);" bytes free"
26
+ 20 DIMB(100)
27
+ 30 PRINT "Now there are ";FRE(0);" bytes free"
28
+  
29
+ RUN
30
+ First there are 23332 bytes free
31
+ Now there are 22516 bytes free
32
+ ```
33
+
34
+ Get free memory for strings in your Basic program:
35
+
36
+ ```basic
37
+ PRINT FRE("")
38
+ 200
39
+ Ok
40
+
41
+ A$="MSX"
42
+ PRINT FRE(A$)
43
+ 197
44
+ Ok
45
+ ```
46
+
47
+ ## Tips to increase the free RAM in MSX-BASIC
48
+
49
+ - Use `ELSE` instead of `REM` when you comment out instructions (helps also with `RENUM` problems).
50
+ - In other comments (especially in "comment only" lines where `:` is not needed) use `REM` instead of `'` (i.e. `10 ELSEGOTO10` takes up 10 bytes in RAM, `10 REMGOTO10` takes up 12 bytes and `10 'GOTO10` takes up 14 bytes of RAM).
51
+ - Don't use `SPACE` characters between instructions (but it will make your code less easy to read).
52
+ - Define variables as integers when ever possible.
53
+ - Allocate correct amount of space for strings and tables.
54
+ - Disable BASIC extensions that you don't need (i.e. hold down `SHIFT` during boot to disable all disk drives or `CTRL` to disable 2nd drive).
55
+
56
+ ## Related to
57
+
58
+ `CLEAR`, `ELSE`, `ERASE`, `NEW`, `REM`
59
+
60
+ ## Compatibility
61
+
62
+ MSX-BASIC 1.0 or higher
63
+
64
+ ## Source
65
+
66
+ Retrieved from "https://www.msx.org/wiki/FRE()"
@@ -0,0 +1,60 @@
1
+ # GET DATE
2
+
3
+ ## Effect
4
+
5
+ Reads the date in the SRAM of the Real Time Clock (RTC) on MSX2 and higher machines.
6
+
7
+ ## Syntax
8
+
9
+ `GET DATE <StringVariable>,A`
10
+
11
+ ## Parameters
12
+
13
+ `<StringVariable>` is a string variable that will contain the date in one of formats showed in table below.
14
+
15
+ When `A` is specified, the alarm date that you have entered with `SET DATE` will be read (no effect on almost all MSXs).
16
+
17
+ ## Date format
18
+
19
+ The date is made of three elements: the day (DD), the month (MM) and the year (YY). It can be displayed in 3 different formats, the used format depends from the country for which the computer was released.
20
+
21
+ When `A` is specified, MM and YY values are "00". If no any alarm date has been entered, DD value is also "00".
22
+
23
+ |Date format|Countries|
24
+ |:-:|---|
25
+ |DD/MM/YY|Brazil, Egypt, France, Germany, Kuwait|
26
+ |MM/DD/YY|Argentina, Saudi Arabia, Soviet countries, USA and Spain|
27
+ |YY/MM/DD|Japan and Korea|
28
+
29
+ ## Example
30
+
31
+ ```basic
32
+ GET DATE A$:PRINT A$
33
+ 09/26/15
34
+ ```
35
+
36
+ If you want to convert this format to Y/M/D (which would be closest to ISO8601 format) based on the system's date format as reported in &H002B, you can use the following snippet, it will print the original date in the system's date format, followed by the date in Y/M/D format:
37
+
38
+ ```basic
39
+ 1 GET DATE A$:PRINT A$:ON ((PEEK(&H2B) AND &B01110000)/16+1) GOSUB 3,4,5
40
+ 2 PRINT A$:END
41
+ 3 RETURN ' Y/M/D is already the right format, nothing to change here
42
+ 4 A$=MID$(A$,7,2)+"/"+MID$(A$,1,2)+"/"+MID$(A$,4,2):RETURN ' Convert from M/D/Y format
43
+ 5 A$=MID$(A$,7,2)+"/"+MID$(A$,4,2)+"/"+MID$(A$,1,2):RETURN ' Convert from D/M/Y format
44
+
45
+ RUN
46
+ 31/05/21
47
+ 21/05/31
48
+ ```
49
+
50
+ ## Related to
51
+
52
+ `GET TIME`, `SET DATE`, `SET TIME`
53
+
54
+ ## Compatibility
55
+
56
+ MSX-BASIC 2.0 or higher
57
+
58
+ ## Source
59
+
60
+ Retrieved from "https://www.msx.org/wiki/GET_DATE"