@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,58 @@
1
+ # LIST
2
+
3
+ ## Effect
4
+
5
+ Displays the program, or a part of it, in memory on screen.
6
+
7
+ ## Syntaxes
8
+
9
+ `LIST <LineNumber>`
10
+
11
+ `LIST <StartLineNumber>-<EndLineNumber>`
12
+
13
+ ## Parameters
14
+
15
+ `<LineNumber>` specifies the number of the line that you want to display.
16
+
17
+ `<StartLineNumber>` specifies the number of the first line that you want to display. First line of the program by default.
18
+
19
+ `<EndLineNumber>` specifies the number of the last line that you want to display.
20
+ Without any parameter, the entire program will be displayed.
21
+
22
+ A dot `.` can replace one of the parameters. In this case it takes the last executed line number. It is useful especially after an error message.
23
+
24
+ If you specify line numbers that don't exist, the computer will not display an error message, it will display the eventually existing lines between the specified start line and end line.
25
+
26
+ ## Example
27
+
28
+ ```basic
29
+ LIST 10-30
30
+ 10 FOR I=1 TO 5
31
+ 20 PRINT I
32
+ 30 NEXT I
33
+ ```
34
+
35
+ ```basic
36
+ RUN
37
+ Syntax error in 20
38
+ Ok
39
+
40
+ LIST .
41
+ 20 PRIINT I
42
+
43
+ LIST .-
44
+ 20 PRIINT I
45
+ 30 NEXT I
46
+ ```
47
+
48
+ ## Related to
49
+
50
+ `AUTO`, `DELETE`, `LLIST`, `RENUM`
51
+
52
+ ## Compatibility
53
+
54
+ MSX-BASIC 1.0 or higher
55
+
56
+ ## Source
57
+
58
+ Retrieved from "https://www.msx.org/wiki/LIST"
@@ -0,0 +1,43 @@
1
+ # LLIST
2
+
3
+ ## Effect
4
+
5
+ Sends the program, or a part of it, in memory to the printer.
6
+
7
+ ## Syntaxes
8
+
9
+ `LLIST <LineNumber>`
10
+
11
+ `LLIST <StartLineNumber>-<EndLineNumber>`
12
+
13
+ ## Parameters
14
+
15
+ `<LineNumber>` specifies the number of the line that you want to print.
16
+
17
+ `<StartLineNumber>` specifies the number of the first line that you want to print. First line of the program by default.
18
+
19
+ `<EndLineNumber>` specifies the number of the last line that you want to print.
20
+
21
+ Without any parameter, the entire program will be printed.
22
+
23
+ A dot `.` can replace one of the parameters. In this case it takes the last executed line number. It is useful especially after an error message.
24
+
25
+ If you specify line numbers that don't exist, the computer will not display an error message, it will print the eventually existing lines between the specified start line and end line.
26
+
27
+ ## Example
28
+
29
+ ```basic
30
+ LLIST 10-30
31
+ ```
32
+
33
+ ## Related to
34
+
35
+ `AUTO`, `DELETE`, `LIST`, `RENUM`
36
+
37
+ ## Compatibility
38
+
39
+ MSX-BASIC 1.0 or higher
40
+
41
+ ## Source
42
+
43
+ Retrieved from "https://www.msx.org/wiki/LLIST"
@@ -0,0 +1,56 @@
1
+ # LOAD
2
+
3
+ ## Effect
4
+
5
+ Loads a BASIC program in the MSX memory and optionally executes it.
6
+
7
+ If you use a cassette, the program needs to be in ASCII text, saved with `SAVE`, not with `CSAVE`.
8
+
9
+ If you use a different device, the program can be either in ASCII text or in tokenized format.
10
+
11
+ ## Syntax
12
+
13
+ `LOAD "<Device>:\<Path>\<Filename>",R`
14
+
15
+ _Notes:_
16
+ - Character backslash `\` serves as a separator between the folders and the file name in MSX-DOS2. You don't have to put it after the colon of the device name.
17
+ - Parameters in quotes can be replaced by a alphanumeric variable containing the corresponding parameters.
18
+ - Character backslash is replaced by the character yen `¥` on Japanese MSX or the character won `₩` on Korean MSX.
19
+ - Parameters can not end with a comma alone.
20
+
21
+ ## Parameters
22
+
23
+ `<Device>` is the name for used device (see table below).
24
+
25
+ |Device type|Device name|Remark|
26
+ |---|---|---|
27
+ |Disk drive|A, B, C, D, E, F, G, H|A floppy disk interface can control up to 2 drives.|
28
+ |Data recorder|CAS|Not available on MSX turbo R|
29
+ |Data cartridge (Sony)|CAT|Requires Sony HBI-55|
30
+ |Linked computer|COM[n]|Requires RS-232C interface|
31
+ |Data cartridge (Yamaha)|DC|Requires Yamaha UDC-01 + YRM-104 or YRM-504|
32
+ |Memory disk|MEM|Created with CALL MEMINI|
33
+ |Device controlled by Pioneer UC-V102|RS[n]|Requires Pioneer UK-V104 RS-232C board|
34
+ |Stringy Floppy Drive(special data recorder)|S|Requires Spectravideo SVI-777<br>Not available on MSX turbo R|
35
+
36
+ By default, the loading will be made from tape on a system without any disk drive, from the current active drive (generally drive `A`) in the other cases.
37
+
38
+ `<Path>` is used to specify the location in folders of file to load. Each folder name in path are separate by a backslash `\`. This parameter is only available in version 2 of Disk BASIC.
39
+
40
+ `<Filename>` is the file name that contains the BASIC program to load. It needs to be specified if the file is on disk or memory disk. If you use a tape and don't indicate the file name, `LOAD` will load the first or next BASIC program in ASCII mode found on tape.
41
+
42
+ When the file is saved on tape the format of file name is case sensitive and limited to 6 characters without extension. If another device is used, then the format is 8 characters followed by a point and an extension with 3 characters (not case sensitive).
43
+
44
+ Parameter `R` forces the execution of BASIC program after load.
45
+
46
+ ## Related to
47
+
48
+ `CALL MEMINI`, `CLOAD`, `CSAVE`, `MERGE`, `RUN`, `SAVE`
49
+
50
+ ## Compatibility
51
+
52
+ MSX-BASIC 1.0 or higher
53
+
54
+ ## Source
55
+
56
+ Retrieved from "https://www.msx.org/wiki/LOAD"
@@ -0,0 +1,67 @@
1
+ # LOCATE
2
+
3
+ ## Effect
4
+
5
+ Controls text cursor position and visibility in text modes, just before using instructions such as `PRINT`, `INPUT` or `LINE INPUT`.
6
+
7
+ When used with _Delta BASIC_, it can also control text cursor position inside a window, just before using `WPRINT` or `WINPUT`. However, the working of this feature seems to be buggy when used with `WPRINT`.
8
+
9
+ ## Syntaxes
10
+
11
+ `LOCATE <X>,<Y>,<Cursor>`
12
+
13
+ `LOCATE #<WindowNumber>,<X>,<Y>` (only with _Delta BASIC_)
14
+
15
+ _Note: Parameters can not end with a comma alone._
16
+
17
+ ## Parameters
18
+
19
+ `<X>` is x-coordinate (column) of cursor (0-255). This parameter must always be specified when you don't specify the y-coordinate. By default, the x-coordinate is 0 when you specify only a y-coordinate.
20
+
21
+ When used inside a window with _Delta BASIC_, this parameter cannot be omitted and must be an internal x-coordinate of the specified window.
22
+
23
+ `<Y>` is y-coordinate (row) of cursor (0-255).
24
+
25
+ When used inside a window with _Delta BASIC_, this parameter cannot be omitted and must be an internal y-coordinate of the specified window.
26
+
27
+ `<Cursor>` is a numeric parameter. When this parameter is 0 the cursor will not be displayed (default) when computer is busy. Any other value (0-255) will keep the cursor visible all the time when computer is in text mode.
28
+
29
+ `<WindowNumber>` is a number between 1 and 9. It must always be preceded by `#` and correspond to a window previously defined with the `WINDOW` instruction of _Delta BASIC_.
30
+
31
+ ## Examples
32
+
33
+ ```basic
34
+ 10 SCREEN0:KEYOFF:WIDTH40
35
+ 20 LOCATE ,14
36
+ 30 PRINT"HELLO"
37
+ ```
38
+
39
+ ```basic
40
+ 10 SCREEN0:KEYOFF:WIDTH40
41
+ 20 LOCATE 5,14
42
+ 30 PRINT"HELLO"
43
+ ```
44
+
45
+ With Delta BASIC:
46
+ ```basic
47
+ 10 SCREEN0:KEYOFF:WIDTH40
48
+ 20 WINDOW#1,1,1,38,3
49
+ 30 WBOX#1
50
+ 40 LOCATE#1,5,0
51
+ 50 WPRINT#1,"HELLO"
52
+ ```
53
+
54
+ ## Related to
55
+
56
+ - Standard instruction: `CSRLIN`, `INKEY$`, `INPUT`, `LINE INPUT`, `POS()`, `PRINT`, `SCREEN`, `WIDTH`
57
+ - Delta BASIC: `WINDOW`, `WINPUT`, `WPRINT`
58
+
59
+ ## Compatibility
60
+
61
+ MSX-BASIC 1.0 or higher
62
+
63
+ Delta BASIC
64
+
65
+ ## Source
66
+
67
+ Retrieved from "https://www.msx.org/wiki/LOCATE"
@@ -0,0 +1,36 @@
1
+ # LOG()
2
+
3
+ ## Effect
4
+
5
+ Returns the natural logarithm (base e=2.718281884588) of a number.
6
+
7
+ ## Syntax
8
+
9
+ `LOG(<Number>)`
10
+
11
+ ## Parameter
12
+
13
+ `<Number>` must be greater than zero.
14
+
15
+ ## Example
16
+
17
+ ```basic
18
+ 10 PRINT "The natural logarithm of 2 is ";LOG(2)
19
+ 20 PRINT "The natural logarithm of 10 is ";LOG(10)
20
+  
21
+ RUN
22
+ The natural logarithm of 2 is .69314718055993
23
+ The natural logarithm of 10 is 2.302585092994
24
+ ```
25
+
26
+ ## Related to
27
+
28
+ `EXP()`
29
+
30
+ ## Compatibility
31
+
32
+ MSX-BASIC 1.0 or higher
33
+
34
+ ## Source
35
+
36
+ Retrieved from "https://www.msx.org/wiki/LOG()"
@@ -0,0 +1,31 @@
1
+ # LPOS()
2
+
3
+ ## Effect
4
+
5
+ Returns the current memory address of the print head within the printer buffer.
6
+
7
+ ## Syntax
8
+
9
+ `LPOS(<Variable>)`
10
+
11
+ ## Parameter
12
+
13
+ `<Variable>` is a dummy variable.
14
+
15
+ ## Example
16
+
17
+ ```basic
18
+ 10 LPRINT "MSX Forever!"
19
+ 20 LPOS(0)
20
+  
21
+ RUN
22
+ 12
23
+ ```
24
+
25
+ ## Compatibility
26
+
27
+ MSX-BASIC 1.0 or higher
28
+
29
+ ## Source
30
+
31
+ Retrieved from "https://www.msx.org/wiki/LPOS()"
@@ -0,0 +1,46 @@
1
+ # LPRINT
2
+
3
+ ## Effect
4
+
5
+ Prints and formats text and numbers to a printer connected to the standard MSX parallel port.
6
+
7
+ _Notes:_
8
+ - Contrary to `PRINT`, you can't shorten `LPRINT` to "L?" Doing this will cause a very hard to find problem. The listing will look fine, but it will still cause a _"Syntax error"_.
9
+ - In case you have done that you can list the lines to the screen and push the `RETURN` key on top of the lines to fix these errors.
10
+
11
+ ## Syntax
12
+
13
+ `LPRINT USING <ItemFormat>; <Item>;<Item>...`
14
+
15
+ ## Parameters
16
+
17
+ `<Item>` can be a character string, an expression, a variable or a value to print. All four items types can be mixed freely.
18
+
19
+ Items must be separated by `;`. If the last item does not end to `;` then `CR`+`LF` combination is printed.
20
+
21
+ A comma can replace a `;` to separate the items. In case of `,` they are separated by tabulator instead of a space.
22
+
23
+ `<Item>` can be omitted to print an empty line.
24
+
25
+ `USING <ItemFormat>;` is optional. `<ItemFormat>` is a string that defines how the next items to be printed must be formatted. When `USING` is used the type of following usable items depends on the specified format.
26
+
27
+ `<Item>` and `<ItemFormat>` are exactly same as with `PRINT` instruction. Please see documentation there.
28
+
29
+ ## Example
30
+
31
+ ```basic
32
+ 10 ' Initialize Epson compatible printer and select NLQ Sans Serif font:
33
+ 20 SCREEN ,,,,1:LPRINT CHR$(27);"@";CHR$(27);"k1";
34
+ ```
35
+
36
+ ## Related to
37
+
38
+ `LFILES`, `LLIST`, `LPOS()`, `PRINT`, `SCREEN`, `SPC()`, `TAB()`
39
+
40
+ ## Compatibility
41
+
42
+ MSX-BASIC 1.0 or higher
43
+
44
+ ## Source
45
+
46
+ Retrieved from "https://www.msx.org/wiki/LPRINT"
@@ -0,0 +1,39 @@
1
+ # MAXFILES
2
+
3
+ ## Effect
4
+
5
+ Determines the maximum of files that can be opened simultaneously with the `OPEN` instruction.
6
+
7
+ When `MAXFILES` is executed, all variables are reseted, files opened are closed, and current info defined with `DEF` are lost.
8
+
9
+ ## Syntax
10
+
11
+ `MAXFILES=<Maximum>`
12
+
13
+ ## Parameter
14
+
15
+ `<Maximum>` is a number between 0 and 15.
16
+
17
+ _Note that the maximum of files that can be opened at the same time can't exceed 6 on a disk and 2 on a QuickDisk. When computer is started the default value is 1._
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 MAXFILES=2
23
+ 20 OPEN "CAS:DEMO" FOR INPUT AS #1
24
+ 30 OPEN "LPT:" FOR OUTPUT AS #2
25
+ 40 INPUT #1,A$
26
+ 50 PRINT #2,A$
27
+ ```
28
+
29
+ ## Related to
30
+
31
+ `CLEAR`, `CLOSE`, `OPEN`, `VARPTR`
32
+
33
+ ## Compatibility
34
+
35
+ MSX-BASIC 1.0 or higher
36
+
37
+ ## Source
38
+
39
+ Retrieved from "https://www.msx.org/wiki/MAXFILES"
@@ -0,0 +1,54 @@
1
+ # MERGE
2
+
3
+ ## Effect
4
+
5
+ Merges a BASIC program saved in ASCII text to the program currently in the MSX memory.
6
+ It implies that it has been saved with `SAVE` and that parameter `A` has been used for saving on disk or another computer.
7
+
8
+ _Notes:_
9
+ - If both programs have same program lines, the lines of the program in the MSX memory are replaced by the lines of the loaded program.
10
+ - The new program created by this merging stays in the MSX memory and can be handled as another BASIC program (especially, you can run it, save it, modify it).
11
+
12
+ ## Syntax
13
+
14
+ `MERGE "<Device>:\<Path>\<Filename>"`
15
+
16
+ _Notes:_
17
+ - Character backslash `\` serves as a separator between the folders and the file name in MSX-DOS2. You don't have to put it after the colon of the device name.
18
+ - Parameters can be replaced by a alphanumeric variable containing the corresponding parameters.
19
+ - Character backslash is replaced by the character yen `¥` on Japanese MSX or the character won `₩` on Korean MSX.
20
+
21
+ ## Parameters
22
+
23
+ `<Device>` is the name for used device (see table below).
24
+
25
+ |Device type|Device name|Remark|
26
+ |---|---|---|
27
+ |Disk drive|A, B, C, D, E, F, G, H|A floppy disk interface can control up to 2 drives.|
28
+ |Data recorder|CAS|Not available on MSX turbo R|
29
+ |Data cartridge (Sony)|CAT|Requires Sony HBI-55|
30
+ |Linked computer|COM[n]|Requires RS-232C interface|
31
+ |Data cartridge (Yamaha)|DC|Requires Yamaha UDC-01 + YRM-104 or YRM-504|
32
+ |Memory disk|MEM|Created with CALL MEMINI|
33
+ |Device controlled by Pioneer UC-V102|RS[n]|Requires Pioneer UK-V104 RS-232C board|
34
+ |Stringy Floppy Drive(special data recorder)|S|Requires Spectravideo SVI-777<br>Not available on MSX turbo R|
35
+
36
+ By default, the loading will be made from tape on a system without any disk drive, from the current active drive (generally drive A) in the other cases.
37
+
38
+ `<Path>` is used to specify the location in folders of file to merge. Each folder name in path are separate by a backslash `\`. This parameter is only available in version 2 of Disk BASIC.
39
+
40
+ `<Filename>` is the BASIC program name saved in ASCII text to merge with the program in the MSX memory. The device name needs to be specified if the file is on disk or memory disk. If you use a tape and don't indicate the file name, `MERGE` will load the first BASIC program in ASCII text found on tape.
41
+
42
+ The size of file name is limited to 6 characters without extension, when the device is a _Data recorder_. If another device is used, then the size is 8 characters followed by a point and an extension with 3 characters.
43
+
44
+ ## Related to
45
+
46
+ `CALL MEMINI`, `LOAD`, `RUN`, `SAVE`
47
+
48
+ ## Compatibility
49
+
50
+ MSX-BASIC 1.0 or higher
51
+
52
+ ## Source
53
+
54
+ Retrieved from "https://www.msx.org/wiki/MERGE"
@@ -0,0 +1,72 @@
1
+ # MID$()
2
+
3
+ ## Effect
4
+
5
+ `MID$` is kind of special as it can be used both as function or as instruction:
6
+
7
+ As function, it returns a string corresponding to a specified number of characters from an original string, this from a specified position.
8
+
9
+ As instruction, it can replace a substring by another string.
10
+
11
+ _Note: For strings with Japanese or Korean characters, you need to use `CALL KMID`._
12
+
13
+ ## Syntaxes
14
+
15
+ ### Function Syntax
16
+
17
+ `MID$("<String1>",<Start>,<Length>)`
18
+
19
+ ### Instruction Syntax
20
+
21
+ `MID$("<String1>",<Start>,<Length>)="<String2>"`
22
+
23
+ ## Parameters
24
+
25
+ `<String1>` and `<String2>` are strings of characters between double quotes `"`. They can include non-printable characters and be replaced by a numeric or string variable (also named as alphanumeric variable).
26
+
27
+ `<String2>` will be used as replacement substring when `MID$` is used as instruction.
28
+
29
+ `<Start>` is the starting position in the string to extract or replace the substring. The first character in the string is numbered 1. The highest possible position is 255.
30
+
31
+ When `<Start>` = 1, `MID$` function replaces the `LEFT$` function - Example: `MID$(A$,1,3)` is equivalent to `LEFT$(A$,3)`.
32
+
33
+ When `<Start>` = `LEN(A$)-<Length>+1`, `MID$` function replaces the `RIGHT$` function - Example: If `LEN(A$)=5` then `MID$(A$,4,2)` is equivalent to `RIGHT$(A$,2)`.
34
+
35
+ `<Length>` is a number between 0 and 255. When is omitted, it will default to the remainder of the string to return a result or make the replacement.
36
+
37
+ ## Examples
38
+
39
+ ### MID$ as function
40
+ ```basic
41
+ 10 A$="www.msx.org"
42
+ 20 PRINT MID$(A$,5,3)
43
+ 30 PRINT MID$(A$,5)
44
+  
45
+ RUN
46
+ msx
47
+ msx.org
48
+ ```
49
+
50
+ ### MID$ as instruction
51
+ ```basic
52
+ 10 A$="ABCDEFG"
53
+ 20 PRINT A$
54
+ 30 MID$(A$,4)="XYZ"
55
+ 40 PRINT A$
56
+  
57
+ RUN
58
+ ABCDEFG
59
+ ABCXYZG
60
+ ```
61
+
62
+ ## Related to
63
+
64
+ `CALL KMID`, `LEN`, `LEFT$`, `RIGHT$`
65
+
66
+ ## Compatibility
67
+
68
+ MSX-BASIC 1.0 or higher
69
+
70
+ ## Source
71
+
72
+ Retrieved from "https://www.msx.org/wiki/MID$()"
@@ -0,0 +1,39 @@
1
+ # MOD
2
+
3
+ ## Effect
4
+
5
+ Divides two expressions as integers and returns the remainder as a result.
6
+
7
+ _Note: It's the unique BASIC instruction made of alphabetical characters and corresponding to an arithmetical operator, but MSX-BASIC provides also 6 other arithmetical operators (without using of alphabetical characters) and 6 instructions corresponding to logical operators._
8
+
9
+ ## Syntax
10
+
11
+ `<Number1> MOD <Number2>`
12
+
13
+ ## Parameters
14
+
15
+ `<Number1>` and `<Number2>` can be numbers, numeric variables, or mathematical expressions. But because `MOD` converts them to integers before the division, any input outside of the integer range will result in an overflow error.
16
+
17
+ ## Examples
18
+
19
+ ```basic
20
+ PRINT 5 MOD 3
21
+ 2
22
+ ```
23
+
24
+ ```basic
25
+ A=31:B=13:C=A MOD B:PRINT C
26
+ 5
27
+ ```
28
+
29
+ ## Related to
30
+
31
+ Arithmetical Operators, `AND`, `EQV`, `IMP`, `NOT`, `OR`, `XOR`
32
+
33
+ ## Compatibility
34
+
35
+ MSX-BASIC 1.0 or higher
36
+
37
+ ## Source
38
+
39
+ Retrieved from "https://www.msx.org/wiki/MOD"
@@ -0,0 +1,46 @@
1
+ # MOTOR
2
+
3
+ ## Effect
4
+
5
+ Turns the motor of the data tape recorder on or off.
6
+
7
+ ## Syntax
8
+
9
+ `MOTOR [ON|OFF]`
10
+
11
+ ## Parameters
12
+
13
+ 48Without any parameter, `MOTOR` works as a toggle between both positions of the motor.
14
+
15
+ With `ON`, you turn the motor on.
16
+
17
+ With `OFF`, you turn the motor off.
18
+
19
+ ## Examples
20
+
21
+ This example toggles the motor on and off 10 times, with a delay in between:
22
+
23
+ ```basic
24
+ 10 FOR I=1 TO 10
25
+ 20 MOTOR
26
+ 30 FOR J=1 TO 500:NEXT J
27
+ 40 NEXT I
28
+ ```
29
+
30
+ This example turns the motor on and then loads a program named "DEMO":
31
+ ```basic
32
+ 10 MOTOR ON
33
+ 20 CLOAD "DEMO"
34
+ ```
35
+
36
+ ## Related to
37
+
38
+ `CLOAD`, `CLOAD?`, `CSAVE`
39
+
40
+ ## Compatibility
41
+
42
+ MSX-BASIC versions before 4.0
43
+
44
+ ## Source
45
+
46
+ Retrieved from "https://www.msx.org/wiki/MOTOR"
@@ -0,0 +1,27 @@
1
+ # NEW
2
+
3
+ ## Effect
4
+
5
+ Erases the MSX-BASIC program in memory, clears all variables and closes all open files.
6
+
7
+ This instruction is usually used to delete the program in computer memory before starting with a new MSX-BASIC program.
8
+
9
+ It can also disable the tracing of program execution, started with `TRON`.
10
+
11
+ _Note: If previous started MSX-BASIC program has executed instructions such as `CLEAR` or `MAXFILES`, the available memory is affected and will not be restored back to boot up defaults even if you execute `NEW`. If you get a 'No enough memory' error message, the best solution is to reboot the computer before launching another program._
12
+
13
+ ## Syntax
14
+
15
+ `NEW`
16
+
17
+ ## Related to
18
+
19
+ `CLEAR`, `CLOSE`, `DELETE`, `MAXFILES`, `TROFF`, `TRON`
20
+
21
+ ## Compatibility
22
+
23
+ MSX-BASIC 1.0 or higher
24
+
25
+ ## Source
26
+
27
+ Retrieved from "https://www.msx.org/wiki/NEW"
@@ -0,0 +1,61 @@
1
+ # NOT
2
+
3
+ ## Effect
4
+
5
+ Performs a bitwise NOT-operation (logical complement) on an expression.
6
+
7
+ All bits are inverted. For each bit, the results are:
8
+ ```
9
+ NOT 0 = 1
10
+ NOT 1 = 0
11
+ ```
12
+
13
+ ## Syntax
14
+
15
+ `NOT <Value>`
16
+
17
+ ## Parameter
18
+
19
+ `<Value>` is a value between -32768 and 32767. It can also be a numeric variable, an mathematical expression or expression from a condition.
20
+
21
+ _Note: When `NOT` is performed before an expression in a condition (`IF...THEN...ELSE` or `IF...GOTO...ELSE`), the result becomes false if true and vice versa._
22
+
23
+ ## Examples
24
+
25
+ ```basic
26
+ PRINT NOT 15
27
+ -16
28
+ ```
29
+
30
+ Binary explanation:
31
+ ```
32
+ 0000000000001111 NOT
33
+ ----------------
34
+ 1111111111110000
35
+ ```
36
+ -16 is actually the number 65520
37
+
38
+ ---
39
+ ```basic
40
+ PRINT NOT &B11001100
41
+ -205
42
+ ```
43
+ Binary explanation:
44
+ ```
45
+ 0000000011001100 NOT
46
+ ----------------
47
+ 1111111100110011
48
+ ```
49
+ -205 is actually the number 65331
50
+
51
+ ## Related to
52
+
53
+ `AND`, `EQV`, `IMP`, `MOD`, `OR`, `XOR`
54
+
55
+ ## Compatibility
56
+
57
+ MSX-BASIC 1.0 or higher
58
+
59
+ ## Source
60
+
61
+ Retrieved from "https://www.msx.org/wiki/NOT"