@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,40 @@
1
+ # DEFDBL
2
+
3
+ ## Effect
4
+
5
+ Defines a variable or a range of variables as double precision.
6
+
7
+ As an alternative, a single variable can be declared as double precision by appending the `#` sign to its name.
8
+
9
+ ## Syntax
10
+
11
+ `DEFDBL <StartVariable>-<EndVariable>,<StartVariable>-<EndVariable>...`
12
+
13
+ _Note: Parameters can not end with a comma or hyphen alone._
14
+
15
+ ## Parameters
16
+
17
+ `<StartVariable>` and `<EndVariable>` are letters put in alphabetic order. If `<EndVariable>` is not specified, all the variables beginning with the specified letter will be defined as double precision.
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 DEFDBL A-Z
23
+ 20 A=7/6
24
+ 30 PRINT "7 divided by 6 (in double precision) is ";A
25
+  
26
+ RUN
27
+ 7 divided by 6 (in double precision) is 1.1666666666667
28
+ ```
29
+
30
+ ## Related to
31
+
32
+ `DEFINT`, `DEFSNG`, `DEFSTR`
33
+
34
+ ## Compatibility
35
+
36
+ MSX-BASIC 1.0 or higher
37
+
38
+ ## Source
39
+
40
+ Retrieved from "https://www.msx.org/wiki/DEFDBL"
@@ -0,0 +1,40 @@
1
+ # DEFINT
2
+
3
+ ## Effect
4
+
5
+ Defines a variable or a range of variables as integer.
6
+
7
+ As an alternative, a single variable can be declared as integer by appending the `%` sign to its name.
8
+
9
+ ## Syntax
10
+
11
+ `DEFINT <StartVariable>-<EndVariable>,<StartVariable>-<EndVariable>...`
12
+
13
+ _Note: Parameters can not end with a comma or hyphen alone._
14
+
15
+ ## Parameters
16
+
17
+ `<StartVariable>` and `<EndVariable>` are letters put in alphabetic order. If `<EndVariable>` is not specified, all the variables beginning with the specified letter will be defined as integer.
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 DEFINT A-Z
23
+ 20 A=7/6
24
+ 30 PRINT "7 divided by 6 (in integer) is ";A
25
+  
26
+ RUN
27
+ 7 divided by 6 (in integer) is 1
28
+ ```
29
+
30
+ ## Related to
31
+
32
+ `DEFDBL`, `DEFSNG`, `DEFSTR`
33
+
34
+ ## Compatibility
35
+
36
+ MSX-BASIC 1.0 or higher
37
+
38
+ ## Source
39
+
40
+ Retrieved from "https://www.msx.org/wiki/DEFINT"
@@ -0,0 +1,40 @@
1
+ # DEFSNG
2
+
3
+ ## Effect
4
+
5
+ Defines a variable or a range of variables as single precision.
6
+
7
+ As an alternative, a single variable can be declared as single precision by appending the `!` sign to its name.
8
+
9
+ ## Syntax
10
+
11
+ `DEFSNG <StartVariable>-<EndVariable>,<StartVariable>-<EndVariable>...`
12
+
13
+ _Note: Parameters can not end with a comma or hyphen alone._
14
+
15
+ ## Parameters
16
+
17
+ `<StartVariable>` and `<EndVariable>` are letters put in alphabetic order. If `<EndVariable>` is not specified, all the variables beginning with the specified letter will be defined as single precision.
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 DEFSNG A-Z
23
+ 20 A=7/6
24
+ 30 PRINT "7 divided by 6 (in single precision) is ";A
25
+  
26
+ RUN
27
+ 7 divided by 6 (in single precision) is 1.16667
28
+ ```
29
+
30
+ ## Related to
31
+
32
+ `DEFDBL`, `DEFINT`, `DEFSTR`
33
+
34
+ ## Compatibility
35
+
36
+ MSX-BASIC 1.0 or higher
37
+
38
+ ## Source
39
+
40
+ Retrieved from "https://www.msx.org/wiki/DEFSNG"
@@ -0,0 +1,40 @@
1
+ # DEFSTR
2
+
3
+ ## Effect
4
+
5
+ Defines a variable or a range of variables as string.
6
+
7
+ As an alternative, a single variable can be declared as a string by appending the `$` sign to its name.
8
+
9
+ ## Syntax
10
+
11
+ `DEFSTR <StartVariable>-<EndVariable>,<StartVariable>-<EndVariable>...`
12
+
13
+ _Note: Parameters can not end with a comma or hyphen alone._
14
+
15
+ ## Parameters
16
+
17
+ `<StartVariable>` and `<EndVariable>` are letters put in alphabetic order. If `<EndVariable>` is not specified, all the variables beginning with the specified letter will be defined as string.
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 DEFSTR A-Z
23
+ 20 A="Yay!"
24
+ 30 PRINT "Variable A contains the text ";A
25
+  
26
+ RUN
27
+ Variable A contains the text Yay!
28
+ ```
29
+
30
+ ## Related to
31
+
32
+ `DEFDBL`, `DEFINT`, `DEFSNG`
33
+
34
+ ## Compatibility
35
+
36
+ MSX-BASIC 1.0 or higher
37
+
38
+ ## Source
39
+
40
+ Retrieved from "https://www.msx.org/wiki/DEFSTR"
@@ -0,0 +1,49 @@
1
+ # DEF FN
2
+
3
+ ## Effect
4
+
5
+ Defines a function which returns user-specified output based on optional variables.
6
+
7
+ ## Syntax
8
+
9
+ `DEF FN <FunctionName> (<Variable>,<Variable>...)=<Expression>`
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
+ `<Variable>` is optional , it is a variable that will be used in the `<Expression>`. Several variables can be specified, they must be separated by a comma. It's only useful to define the function. The variables don't have any influence on the variables with the same name in the main program.
17
+
18
+ `<Expression>` is the function itself. It can use variables that are not specified in the `<Variable>` part, but have already a value in the main program.
19
+
20
+ ## Examples
21
+
22
+ ```basic
23
+ 10 DEF FN SQUARE (X)=X^2
24
+ 20 PRINT "The square of 2 is ";FN SQUARE(2)
25
+ 30 PRINT "The square of 4 is ";FN SQUARE(4)
26
+  
27
+ RUN
28
+ The square of 2 is 4
29
+ The square of 4 is 16
30
+ ```
31
+ ```basic
32
+ 10 DEF FN F$(A$)=CHR$(ASC(A$) OR 32)
33
+ 20 PRINT FN F$("A")
34
+  
35
+ RUN
36
+ a
37
+ ```
38
+
39
+ ## Related to
40
+
41
+ `CLEAR`, `FN`
42
+
43
+ ## Compatibility
44
+
45
+ MSX-BASIC 1.0 or higher
46
+
47
+ ## Source
48
+
49
+ Retrieved from "https://www.msx.org/wiki/DEF_FN"
@@ -0,0 +1,33 @@
1
+ # DEF USR
2
+
3
+ ## Effect
4
+
5
+ Defines the start address of a machine language routine for later use in MSX-BASIC. Up to 10 different routines can be used.
6
+
7
+ ## Syntax
8
+
9
+ `DEF USR <Number>=<Address>`
10
+
11
+ ## Parameters
12
+
13
+ `<Number>` can range from 0 to 9. When omitted, 0 is assumed.
14
+
15
+ `<Address>` is the start address of the machine language routine.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 10 DEF USR1=&H156:A=USR1(0) ' To clear keyboard buffer
21
+ ```
22
+
23
+ ## Related to
24
+
25
+ `USR()`
26
+
27
+ ## Compatibility
28
+
29
+ MSX-BASIC 1.0 or higher
30
+
31
+ ## Source
32
+
33
+ Retrieved from "https://www.msx.org/wiki/DEF_USR"
@@ -0,0 +1,49 @@
1
+ # DELETE
2
+
3
+ ## Effect
4
+
5
+ Erases part of an MSX-BASIC program from memory.
6
+
7
+ ## Syntaxes
8
+
9
+ `DELETE <LineNumber>`
10
+
11
+ `DELETE <StartLineNumber>-<EndLineNumber>`
12
+
13
+ ## Parameters
14
+
15
+ `<LineNumber>` specifies the number of the line that you want to delete.
16
+
17
+ `<StartLineNumber>` specifies the number of the first line that you want to delete in your program.
18
+
19
+ `<EndLineNumber>` is optional and specifies the number of the last line to be deleted.
20
+ A period `.` as a parameter specifies the last line `LIST`ed or `RUN`ed.
21
+
22
+ If you specify a line number that does not exist, an _"Illegal function call"_ error message will be displayed.
23
+
24
+ _Notes:_
25
+ - To delete only one line of your program, you can also enter the number of this line without any instruction. If you do that with a line number that does not exist, an _"Undefined line number"_ error message will be displayed.
26
+ - To delete all the lines of your program, it's easier and better to use `NEW` as it will simultaneously clear all variables and close all open files.
27
+
28
+ ## Example
29
+
30
+ ```basic
31
+ 10 PRINT "Haha! I am here to stay!"
32
+ 20 PRINT "Oh no! I will be sent to oblivion!"
33
+  
34
+ DELETE 20
35
+ RUN
36
+ Haha! I am here to stay!
37
+ ```
38
+
39
+ ## Related to
40
+
41
+ `AUTO`, `LIST`, `LLIST`, `NEW`, `RENUM`
42
+
43
+ ## Compatibility
44
+
45
+ MSX-BASIC 1.0 or higher
46
+
47
+ ## Source
48
+
49
+ Retrieved from "https://www.msx.org/wiki/DELETE"
@@ -0,0 +1,59 @@
1
+ # DIM
2
+
3
+ ## Effect
4
+
5
+ Reserves memory for the specified variables and initializes the array(s).
6
+
7
+ _Note: If if an array is referred to when not first created with a `DIM` instruction, a maximum index of 10 is assumed._
8
+
9
+ ## Syntax
10
+
11
+ `DIM <ArrayName>(<Size1>,<Size2>),<ArrayName>(<Size1>,<Size2>),...`
12
+
13
+ ## Parameters
14
+
15
+ `<ArrayName>` is an alphanumeric variable or a string. Several array names can be specified in the `DIM` instruction, they need to be separated by a comma.
16
+
17
+ `<Size1>` is a number that specifies the maximum index of the array. The first index is always 0.
18
+
19
+ `<Size2>` is optional, it is required only for two-dimensional arrays and specifies the maximum index for the second dimension of the array.
20
+
21
+ ## Examples
22
+
23
+ ```basic
24
+ 10 DIM M(25)
25
+ 20 FOR A=0 TO 25:M(A)=3*A:NEXT
26
+ 30 FOR A=0 TO 25
27
+ 40 PRINT "3 times ";A;" is ";M(A)
28
+ 50 NEXT A
29
+ ```
30
+ ```basic
31
+ 10 DIM A$(26)
32
+ 20 FOR I=0 TO 26
33
+ 30 A$(I)=CHR$(64+I)
34
+ 40 NEXT I
35
+ 50 PRINT A$(22)
36
+  
37
+ RUN
38
+ V
39
+ ```
40
+ ```basic
41
+ 10 DIM A(20,5)
42
+ 20 A(20,5)=2
43
+ 30 PRINT "In row 20, column 5 of array A I stored the value ";A(20,5)
44
+  
45
+ RUN
46
+ In row 20, column 5 of array A I stored the value 2
47
+ ```
48
+
49
+ ## Related to
50
+
51
+ `CLEAR`, `COPY`, `ERASE`
52
+
53
+ ## Compatibility
54
+
55
+ MSX-BASIC 1.0 or higher
56
+
57
+ ## Source
58
+
59
+ Retrieved from "https://www.msx.org/wiki/DIM"
@@ -0,0 +1,77 @@
1
+ # DRAW
2
+
3
+ ## Effect
4
+
5
+ Executes the instructions of a Graphics Macro Language (GML) allowing to draw complex figures to screen (graphic modes only).
6
+
7
+ ## Syntaxes
8
+
9
+ `DRAW "<GMLstring>"`
10
+
11
+ Parameters
12
+ `"<GMLstring>"` is a string or an alphanumeric variable that contains macro language instructions to describe the figures to draw. Maximum length is 255 characters per string.
13
+
14
+ ## GML instructions
15
+
16
+ GML has the following instructions:
17
+
18
+ |Tracing Instruction|Meaning|Effect|Values / Remarks|
19
+ |:--|:--|:--|:--|
20
+ |`D<length>`|Down|Moves the cursor of `<length>` pixels to the downward direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
21
+ |`E<length>`|Up-Right|Moves the cursor diagonally of `<length>` pixels to the up-right direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
22
+ |`F<length>`|Down-Right|Moves the cursor diagonally of `<length>` pixels to the down-right direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
23
+ |`G<length>`|Down-Left|Moves the cursor diagonally of `<length>` pixels to the down-left direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
24
+ |`H<length>`|Up-Left|Moves the cursor diagonally of `<length>` pixels to the up-left direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
25
+ |`L<length>`|Left|Moves the cursor of `<length>` pixels to the left direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
26
+ |`M<x>,<y>`|Move|Moves the cursor from the current position to specified coordinates `x`,`y` tracing a line.|`<x>` and `<y> `can be positive or negative values|
27
+ |`R<length>`|Right|Moves the cursor of `<length>` pixels to the right direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
28
+ |`U<length>`|Up|Moves the cursor of `<length>` pixels to the upward direction tracing a line.|`<length>` = 0~255 (The cursor stays in the same place if 0)|
29
+
30
+ |Other instructions|Meaning|Effect|Values / Remarks|
31
+ |:--|:--|:--|:--|
32
+ |`A<orientation>`|Rotation Axe|Changes the orientation of the following tracing instructions.|`<orientation>` = `0` (normal), `1` (90 degrees clockwise), `2` (180 degrees clockwise) or `3` (270 degrees clockwise)|
33
+ |`B<tracing instruction>`|Blank Move|Place `B` before a tracing command to move the cursor without drawing.||
34
+ |`C<color>`|Color|Changes the foreground (drawing) color to the specified color| `<color>` = 0 to 15 (screens 2 to 5, 7 and 10), 0 to 3 (screen 6), 0 to 255 (screens 8, 11 and 12)|
35
+ |`N<tracing instruction>`|New Line|Place N before a tracing command to trace without moving the cursor (cursor stays at the previous position)||
36
+ |`S<scale>`|Scale|Scales every length specified after this command by `<scale>`/4 pixels.|if `S`=0, it is the same as `S`=4 (default) and it means each step = 1 pixel.|
37
+ |`X<alphanumeric variable>;`|Execute sub-instruction|Executes a sub-string of GML placed in a alphanumeric variable.|- String-variables can be used within DRAW GML instructions.<br>- A `X` needs to be prefixed and all variables must be closed by a `;`.<br>- Adding other GML instructions after the last `;` will result in error.|
38
+ |`=<variable>;`|Equal|Puts a parameter in a integer-variable after one of several sub-strings of GML (see `X` instruction)|- The value range is determined by the preceding GML but it cannot exceed the value 32767.<br>- To start cursor on positon given by `X` and `Y` variables, you can use: `DRAW "BM=X;,=Y;"`|
39
+
40
+ _Please note: Things like orientation, color, scale or current graphics coordinates do not reset to default values when program is `RUN` again or other program is loaded._
41
+
42
+ ## Examples
43
+
44
+ ```basic
45
+ 10 REM This program draws a little heart
46
+ 20 SCREEN 2
47
+ 30 PRESET(124,91): A$="A0S4C6 R1BR2R1 F1L6 D1R6 D1L6 D1R6 G1L4 F1R2G1"
48
+ 40 DRAW A$
49
+ 50 A$=INPUT$(1)
50
+ ```
51
+ ```basic
52
+ 10 SCREEN 5
53
+ 20 A$="A0S4C15BM50,50"
54
+ 30 S=50
55
+ 40 DRAW "XA$;D=S;R=S;U=S;L=S;"
56
+ 50 A$=INPUT$(1)
57
+ ```
58
+
59
+ _Note: Line 40 is same as `DRAW A$+"D=S;R=S;U=S;L=S;"`_
60
+
61
+ ```basic
62
+ 10 ' One line drawing program done using DRAW-command (by NYYRIKKI)
63
+ 20 ' Cursors = Move, Space = Draw, ESC = Exit
64
+ 30 COLOR15,0,0:SCREEN2,0,0:SPRITE$(0)=" P ":DRAW "A0S4BM128,96":FOR I=0 TO 0:PUTSPRITE 0,STEP(-2,-2),8:S$=MID$("B",1-STRIG(0))+MID$(" UERFDGLH",1+STICK(0),1):I=CHR$(27)<>INKEY$:DRAW"BF2XS$;":DRAW MID$("A2XS$;A0",9+(PEEK(-839)>191 OR PEEK(-840)>0)*8):NEXT
65
+ ```
66
+
67
+ ## Related to
68
+
69
+ `CIRCLE`, `CLS`, `COLOR`, `LINE`, `PAINT`, `POINT`, `PRESET`, `PSET`, `SCREEN`
70
+
71
+ ## Compatibility
72
+
73
+ MSX-BASIC 1.0 or higher
74
+
75
+ ## Source
76
+
77
+ Retrieved from "https://www.msx.org/wiki/DRAW"
@@ -0,0 +1,45 @@
1
+ # ELSE
2
+
3
+ ## Effect
4
+
5
+ This instruction is officially part of `IF...THEN...ELSE` or `IF...GOTO...ELSE` but can be used as a standalone instruction as well.
6
+
7
+ When used alone the rest of the line is skipped. When compared to `REM` this has the benefit that the BASIC instructions will keep stored in compressed form taking less memory and ie. `RENUM` will still handle the line numbers correctly.
8
+
9
+ ## Syntax
10
+
11
+ `ELSE <BASICinstruction>:<BASICinstruction>...`
12
+
13
+ ## Parameter
14
+
15
+ `<BASICinstruction>` can be any MSX-BASIC instruction.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 4 REM CLS:GOTO 7
21
+ 5 ELSE CLS:GOTO 7
22
+ 6 END
23
+ 7 PRINT "We don't execute this line"
24
+
25
+ renum
26
+ Ok
27
+
28
+ list
29
+ 10 REM CLS:GOTO 7
30
+ 20 ELSE CLS:GOTO 40
31
+ 30 END
32
+ 40 PRINT "We don't execute this line"
33
+ ```
34
+
35
+ ## Related to
36
+
37
+ `IF...GOTO...ELSE`, `IF...THEN...ELSE`, `REM`, `RENUM`
38
+
39
+ ## Compatibility
40
+
41
+ MSX-BASIC 1.0 or higher
42
+
43
+ ## Source
44
+
45
+ Retrieved from "https://www.msx.org/wiki/ELSE"
@@ -0,0 +1,32 @@
1
+ # END
2
+
3
+ ## Effect
4
+
5
+ Closes all open files (if any) and ends program execution.
6
+
7
+ ## Syntax
8
+
9
+ `END`
10
+
11
+ ## Example
12
+
13
+ ```basic
14
+ 10 PRINT "The end is nigh!"
15
+ 20 END
16
+ 30 PRINT "I shall not be executed"
17
+
18
+ run
19
+ The end is nigh!
20
+ ```
21
+
22
+ ## Related to
23
+
24
+ `STOP`
25
+
26
+ ## Compatibility
27
+
28
+ MSX-BASIC 1.0 or higher
29
+
30
+ ## Source
31
+
32
+ Retrieved from "https://www.msx.org/wiki/END"
@@ -0,0 +1,36 @@
1
+ # EOF()
2
+
3
+ ## Effect
4
+
5
+ Returns whether or not the end of a file has been reached.
6
+
7
+ Value of `EOF` is zero while the end of the open file is not reached.
8
+
9
+ ## Syntax
10
+
11
+ `EOF(<Number>)`
12
+
13
+ ## Parameter
14
+
15
+ `<Number>` corresponds to the number assigned to the file opened with the `OPEN` instruction.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 10 OPEN "CAS:DATA" FOR INPUT AS #1
21
+ 20 IF EOF(1) THEN 40
22
+ 30 INPUT#1,X$,Y$,Z$ : PRINT X$,Y$,Z$ : GOTO 20
23
+ 40 CLOSE#1 : END
24
+ ```
25
+
26
+ ## Related to
27
+
28
+ `CLOSE`, `INPUT`, `OPEN`, `PRINT`
29
+
30
+ ## Compatibility
31
+
32
+ MSX-BASIC 1.0 or higher
33
+
34
+ ## Source
35
+
36
+ Retrieved from "https://www.msx.org/wiki/EOF()"
@@ -0,0 +1,76 @@
1
+ # EQV
2
+
3
+ ## Effect
4
+
5
+ Performs a bitwise `EQV`-operation (logical equivalence) between two expressions.
6
+
7
+ The bit is set if both bits are equal. For each bit, the results are:
8
+ ```
9
+ 0 EQV 0 = 1
10
+ 0 EQV 1 = 0
11
+ 1 EQV 0 = 0
12
+ 1 EQV 1 = 1
13
+ ```
14
+
15
+ ## Syntax
16
+
17
+ `<Value> EQV <Value>`
18
+
19
+ ## Parameter
20
+
21
+ `<Value>` is a value between -32768 and 32767. It can also be a numeric variable or an mathematical expression.
22
+
23
+ _Notes:_
24
+ - If you use binary expressions, it is best to put the first expression in parenthesis to avoid the bug in interpreter that causes a syntax error. This problem does not happen with decimal, hexadecimal or octal expressions.
25
+ - When the expression is performed in a condition (`IF...THEN...ELSE` or `IF...GOTO...ELSE`), if the result of the whole expression is zero the value is taken as false, otherwise it's taken as true.
26
+
27
+ ## Examples
28
+
29
+ ```basic
30
+ PRINT 15 EQV 11
31
+ -5
32
+ ```
33
+ Binary explanation:
34
+ ```
35
+ 0000000000001111
36
+ 0000000000001011 EQV
37
+ ----------------
38
+ 1111111111111011
39
+ ```
40
+ -5 is actually the number 65531
41
+
42
+ ---
43
+ ```basic
44
+ PRINT 5 EQV 13
45
+ -9
46
+ ```
47
+ Binary explanation:
48
+ ```
49
+ 0000000000000101
50
+ 0000000000001101 EQV
51
+ ----------------
52
+ 1111111111110111
53
+ ```
54
+ -9 is actually the number 65527
55
+
56
+ ---
57
+ ```basic
58
+ PRINT &B00001111 EQV &B11110001
59
+ Syntax error
60
+ ok
61
+ PRINT (&B00001111) EQV &B11110001
62
+ -255
63
+ ```
64
+ -255 is actually the number 65281
65
+
66
+ ## Related to
67
+
68
+ `AND`, `IMP`, `MOD`, `NOT`, `OR`, `XOR`
69
+
70
+ ## Compatibility
71
+
72
+ MSX-BASIC 1.0 or higher
73
+
74
+ ## Source
75
+
76
+ Retrieved from "https://www.msx.org/wiki/EQV"
@@ -0,0 +1,35 @@
1
+ # ERASE
2
+
3
+ ## Effect
4
+
5
+ Frees memory by erasing one or more arrays.
6
+
7
+ ## Syntax
8
+
9
+ `ERASE <ArrayVariable>,<ArrayVariable>...`
10
+
11
+ _Note: Parameters can not end with a comma alone._
12
+
13
+ ## Parameter
14
+
15
+ `<ArrayVariable>` is an array of numeric variables or string variables (also named as alphanumeric variables) that has been created with the DIM instruction.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 10 DIM A(100),X$(60)
21
+
22
+ 500 ERASE A,X$
23
+ ```
24
+
25
+ ## Related to
26
+
27
+ `CLEAR`, `DIM`
28
+
29
+ ## Compatibility
30
+
31
+ MSX-BASIC 1.0 or higher
32
+
33
+ ## Source
34
+
35
+ Retrieved from "https://www.msx.org/wiki/ERASE"
@@ -0,0 +1,34 @@
1
+ # ERL
2
+
3
+ ## Effect
4
+
5
+ Returns the line number in which an error occured.
6
+
7
+ ## Syntax
8
+
9
+ `ERL`
10
+
11
+ ## Example
12
+
13
+ ```basic
14
+ 10 ON ERROR GOTO 50
15
+ 20 MSX ' Generates an error, as "MSX" is not a valid MSX-BASIC command
16
+ 30 END
17
+ 50 PRINT "An error occurred in line ";ERL
18
+ 60 RESUME 30
19
+  
20
+ run
21
+ An error occurred in line 20
22
+ ```
23
+
24
+ ## Related to
25
+
26
+ `ERR`, `ERROR`, `ON ERROR GOTO`, `RESUME`
27
+
28
+ ## Compatibility
29
+
30
+ MSX-BASIC 1.0 or higher
31
+
32
+ ## Source
33
+
34
+ Retrieved from "https://www.msx.org/wiki/ERL"