@nataliapc/mcp-openmsx 1.1.15 → 1.2.2

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 (190) hide show
  1. package/README.md +25 -14
  2. package/dist/server.js +73 -24
  3. package/dist/utils.js +10 -2
  4. package/dist/vectordb.js +60 -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-unapi/toc.json +2 -2
  13. package/resources/programming/basic_wiki/ABS().md +36 -0
  14. package/resources/programming/basic_wiki/AND.md +71 -0
  15. package/resources/programming/basic_wiki/ASC().md +38 -0
  16. package/resources/programming/basic_wiki/ATN().md +36 -0
  17. package/resources/programming/basic_wiki/AUTO.md +39 -0
  18. package/resources/programming/basic_wiki/BASE().md +147 -0
  19. package/resources/programming/basic_wiki/BEEP.md +27 -0
  20. package/resources/programming/basic_wiki/BIN$().md +36 -0
  21. package/resources/programming/basic_wiki/BLOAD.md +63 -0
  22. package/resources/programming/basic_wiki/BSAVE.md +61 -0
  23. package/resources/programming/basic_wiki/CALL.md +391 -0
  24. package/resources/programming/basic_wiki/CALL_ADJUST.md +40 -0
  25. package/resources/programming/basic_wiki/CALL_IMPOSE.md +28 -0
  26. package/resources/programming/basic_wiki/CALL_OPTIONS.md +26 -0
  27. package/resources/programming/basic_wiki/CALL_PAUSE.md +119 -0
  28. package/resources/programming/basic_wiki/CALL_PCMPLAY.md +60 -0
  29. package/resources/programming/basic_wiki/CALL_PCMREC.md +70 -0
  30. package/resources/programming/basic_wiki/CDBL().md +36 -0
  31. package/resources/programming/basic_wiki/CHR$().md +51 -0
  32. package/resources/programming/basic_wiki/CINT().md +36 -0
  33. package/resources/programming/basic_wiki/CIRCLE.md +51 -0
  34. package/resources/programming/basic_wiki/CLEAR.md +39 -0
  35. package/resources/programming/basic_wiki/CLOAD.md +27 -0
  36. package/resources/programming/basic_wiki/CLOAD?.md +31 -0
  37. package/resources/programming/basic_wiki/CLOSE.md +44 -0
  38. package/resources/programming/basic_wiki/CLS.md +51 -0
  39. package/resources/programming/basic_wiki/COLOR.md +143 -0
  40. package/resources/programming/basic_wiki/COLOR=.md +93 -0
  41. package/resources/programming/basic_wiki/COLOR_SPRITE$().md +83 -0
  42. package/resources/programming/basic_wiki/COLOR_SPRITE().md +85 -0
  43. package/resources/programming/basic_wiki/CONT.md +23 -0
  44. package/resources/programming/basic_wiki/COPY.md +215 -0
  45. package/resources/programming/basic_wiki/COPY_SCREEN.md +61 -0
  46. package/resources/programming/basic_wiki/COS().md +37 -0
  47. package/resources/programming/basic_wiki/CSAVE.md +35 -0
  48. package/resources/programming/basic_wiki/CSNG().md +36 -0
  49. package/resources/programming/basic_wiki/CSRLIN.md +33 -0
  50. package/resources/programming/basic_wiki/DATA.md +47 -0
  51. package/resources/programming/basic_wiki/DEFDBL.md +40 -0
  52. package/resources/programming/basic_wiki/DEFINT.md +40 -0
  53. package/resources/programming/basic_wiki/DEFSNG.md +40 -0
  54. package/resources/programming/basic_wiki/DEFSTR.md +40 -0
  55. package/resources/programming/basic_wiki/DEF_FN.md +49 -0
  56. package/resources/programming/basic_wiki/DEF_USR.md +33 -0
  57. package/resources/programming/basic_wiki/DELETE.md +49 -0
  58. package/resources/programming/basic_wiki/DIM.md +59 -0
  59. package/resources/programming/basic_wiki/DRAW.md +77 -0
  60. package/resources/programming/basic_wiki/ELSE.md +45 -0
  61. package/resources/programming/basic_wiki/END.md +32 -0
  62. package/resources/programming/basic_wiki/EOF().md +36 -0
  63. package/resources/programming/basic_wiki/EQV.md +76 -0
  64. package/resources/programming/basic_wiki/ERASE.md +35 -0
  65. package/resources/programming/basic_wiki/ERL.md +34 -0
  66. package/resources/programming/basic_wiki/ERR.md +143 -0
  67. package/resources/programming/basic_wiki/ERROR.md +145 -0
  68. package/resources/programming/basic_wiki/EXP().md +38 -0
  69. package/resources/programming/basic_wiki/FIELD.md +48 -0
  70. package/resources/programming/basic_wiki/FIX().md +44 -0
  71. package/resources/programming/basic_wiki/FN.md +61 -0
  72. package/resources/programming/basic_wiki/FOR...NEXT.md +80 -0
  73. package/resources/programming/basic_wiki/FRE().md +66 -0
  74. package/resources/programming/basic_wiki/GET_DATE.md +60 -0
  75. package/resources/programming/basic_wiki/GET_TIME.md +34 -0
  76. package/resources/programming/basic_wiki/GOSUB.md +41 -0
  77. package/resources/programming/basic_wiki/GOTO.md +41 -0
  78. package/resources/programming/basic_wiki/HEX$().md +36 -0
  79. package/resources/programming/basic_wiki/IF...GOTO...ELSE.md +55 -0
  80. package/resources/programming/basic_wiki/IF...THEN...ELSE.md +50 -0
  81. package/resources/programming/basic_wiki/IMP.md +83 -0
  82. package/resources/programming/basic_wiki/INKEY$.md +65 -0
  83. package/resources/programming/basic_wiki/INP().md +33 -0
  84. package/resources/programming/basic_wiki/INPUT$().md +51 -0
  85. package/resources/programming/basic_wiki/INPUT.md +93 -0
  86. package/resources/programming/basic_wiki/INSTR().md +44 -0
  87. package/resources/programming/basic_wiki/INT().md +44 -0
  88. package/resources/programming/basic_wiki/INTERVAL.md +57 -0
  89. package/resources/programming/basic_wiki/KEY().md +51 -0
  90. package/resources/programming/basic_wiki/KEY.md +254 -0
  91. package/resources/programming/basic_wiki/LEFT$().md +39 -0
  92. package/resources/programming/basic_wiki/LEN().md +36 -0
  93. package/resources/programming/basic_wiki/LET.md +68 -0
  94. package/resources/programming/basic_wiki/LINE.md +74 -0
  95. package/resources/programming/basic_wiki/LINE_INPUT.md +79 -0
  96. package/resources/programming/basic_wiki/LIST.md +58 -0
  97. package/resources/programming/basic_wiki/LLIST.md +43 -0
  98. package/resources/programming/basic_wiki/LOAD.md +56 -0
  99. package/resources/programming/basic_wiki/LOCATE.md +67 -0
  100. package/resources/programming/basic_wiki/LOG().md +36 -0
  101. package/resources/programming/basic_wiki/LPOS().md +31 -0
  102. package/resources/programming/basic_wiki/LPRINT.md +46 -0
  103. package/resources/programming/basic_wiki/MAXFILES.md +39 -0
  104. package/resources/programming/basic_wiki/MERGE.md +54 -0
  105. package/resources/programming/basic_wiki/MID$().md +72 -0
  106. package/resources/programming/basic_wiki/MOD.md +39 -0
  107. package/resources/programming/basic_wiki/MOTOR.md +46 -0
  108. package/resources/programming/basic_wiki/NEW.md +27 -0
  109. package/resources/programming/basic_wiki/NOT.md +61 -0
  110. package/resources/programming/basic_wiki/OCT$().md +36 -0
  111. package/resources/programming/basic_wiki/ON...GOSUB.md +45 -0
  112. package/resources/programming/basic_wiki/ON...GOTO.md +42 -0
  113. package/resources/programming/basic_wiki/ON_ERROR_GOTO.md +61 -0
  114. package/resources/programming/basic_wiki/ON_INTERVAL_GOSUB.md +54 -0
  115. package/resources/programming/basic_wiki/ON_KEY_GOSUB.md +56 -0
  116. package/resources/programming/basic_wiki/ON_SPRITE_GOSUB.md +41 -0
  117. package/resources/programming/basic_wiki/ON_STOP_GOSUB.md +56 -0
  118. package/resources/programming/basic_wiki/ON_STRIG_GOSUB.md +70 -0
  119. package/resources/programming/basic_wiki/OPEN.md +103 -0
  120. package/resources/programming/basic_wiki/OR.md +75 -0
  121. package/resources/programming/basic_wiki/OUT.md +35 -0
  122. package/resources/programming/basic_wiki/PAD().md +110 -0
  123. package/resources/programming/basic_wiki/PAINT.md +66 -0
  124. package/resources/programming/basic_wiki/PDL().md +53 -0
  125. package/resources/programming/basic_wiki/PEEK().md +44 -0
  126. package/resources/programming/basic_wiki/PLAY().md +58 -0
  127. package/resources/programming/basic_wiki/PLAY.md +196 -0
  128. package/resources/programming/basic_wiki/POINT.md +52 -0
  129. package/resources/programming/basic_wiki/POKE.md +51 -0
  130. package/resources/programming/basic_wiki/POS().md +36 -0
  131. package/resources/programming/basic_wiki/PRESET.md +61 -0
  132. package/resources/programming/basic_wiki/PRINT.md +179 -0
  133. package/resources/programming/basic_wiki/PSET.md +82 -0
  134. package/resources/programming/basic_wiki/PUT_KANJI.md +93 -0
  135. package/resources/programming/basic_wiki/PUT_SPRITE.md +143 -0
  136. package/resources/programming/basic_wiki/READ.md +45 -0
  137. package/resources/programming/basic_wiki/REM.md +42 -0
  138. package/resources/programming/basic_wiki/RENUM.md +78 -0
  139. package/resources/programming/basic_wiki/RESTORE.md +52 -0
  140. package/resources/programming/basic_wiki/RESUME.md +45 -0
  141. package/resources/programming/basic_wiki/RETURN.md +47 -0
  142. package/resources/programming/basic_wiki/RIGHT$().md +39 -0
  143. package/resources/programming/basic_wiki/RND().md +51 -0
  144. package/resources/programming/basic_wiki/RUN.md +56 -0
  145. package/resources/programming/basic_wiki/SAVE.md +65 -0
  146. package/resources/programming/basic_wiki/SCREEN.md +164 -0
  147. package/resources/programming/basic_wiki/SET_ADJUST.md +66 -0
  148. package/resources/programming/basic_wiki/SET_BEEP.md +76 -0
  149. package/resources/programming/basic_wiki/SET_DATE.md +103 -0
  150. package/resources/programming/basic_wiki/SET_PAGE.md +52 -0
  151. package/resources/programming/basic_wiki/SET_PASSWORD.md +75 -0
  152. package/resources/programming/basic_wiki/SET_PROMPT.md +61 -0
  153. package/resources/programming/basic_wiki/SET_SCREEN.md +100 -0
  154. package/resources/programming/basic_wiki/SET_SCROLL.md +55 -0
  155. package/resources/programming/basic_wiki/SET_TIME.md +83 -0
  156. package/resources/programming/basic_wiki/SET_TITLE.md +87 -0
  157. package/resources/programming/basic_wiki/SET_VIDEO.md +49 -0
  158. package/resources/programming/basic_wiki/SGN().md +38 -0
  159. package/resources/programming/basic_wiki/SIN().md +36 -0
  160. package/resources/programming/basic_wiki/SOUND.md +188 -0
  161. package/resources/programming/basic_wiki/SPACE$().md +38 -0
  162. package/resources/programming/basic_wiki/SPC().md +34 -0
  163. package/resources/programming/basic_wiki/SPRITE$().md +50 -0
  164. package/resources/programming/basic_wiki/SPRITE.md +31 -0
  165. package/resources/programming/basic_wiki/SQR().md +32 -0
  166. package/resources/programming/basic_wiki/STICK().md +70 -0
  167. package/resources/programming/basic_wiki/STOP.md +70 -0
  168. package/resources/programming/basic_wiki/STR$().md +37 -0
  169. package/resources/programming/basic_wiki/STRIG().md +82 -0
  170. package/resources/programming/basic_wiki/STRING$().md +42 -0
  171. package/resources/programming/basic_wiki/SWAP.md +62 -0
  172. package/resources/programming/basic_wiki/TAB().md +38 -0
  173. package/resources/programming/basic_wiki/TAN().md +36 -0
  174. package/resources/programming/basic_wiki/TIME.md +59 -0
  175. package/resources/programming/basic_wiki/TROFF.md +21 -0
  176. package/resources/programming/basic_wiki/TRON.md +39 -0
  177. package/resources/programming/basic_wiki/USR().md +66 -0
  178. package/resources/programming/basic_wiki/VAL().md +36 -0
  179. package/resources/programming/basic_wiki/VARPTR().md +50 -0
  180. package/resources/programming/basic_wiki/VDP().md +103 -0
  181. package/resources/programming/basic_wiki/VPEEK().md +46 -0
  182. package/resources/programming/basic_wiki/VPOKE.md +48 -0
  183. package/resources/programming/basic_wiki/WAIT.md +38 -0
  184. package/resources/programming/basic_wiki/WIDTH.md +76 -0
  185. package/resources/programming/basic_wiki/XOR.md +72 -0
  186. package/resources/programming/basic_wiki/_toc.json +871 -0
  187. package/resources/sdcc/toc.json +1 -1
  188. package/vector-db/index.json +1 -0
  189. /package/resources/msx-unapi/{Ethernet_UNAPI_specification_1.1.md → Ethernet_UNAPI_specification_1_1.md} +0 -0
  190. /package/resources/msx-unapi/{MSX_UNAPI_specification_1.1.md → MSX_UNAPI_specification_1_1.md} +0 -0
@@ -0,0 +1,57 @@
1
+ # INTERVAL
2
+
3
+ ## Effect
4
+
5
+ Changes the way BASIC timer interrupts are handled.
6
+
7
+ ## Syntax
8
+
9
+ `INTERVAL ON|OFF|STOP`
10
+
11
+ ## Parameters
12
+
13
+ This instruction is always combined with `ON INTERVAL GOSUB`.
14
+
15
+ With `INTERVAL ON`, the computer will check if a specified time interval has been elapsed and the subroutine specified with `ON INTERVAL GOSUB` is executed immediately.
16
+
17
+ With `INTERVAL OFF`, this checking is disabled.
18
+
19
+ With `INTERVAL STOP`, the checking is made, but the execution of the subroutine specified with `ON INTERVAL GOSUB` will happen only when an `INTERVAL ON` instruction is executed later in the program.
20
+
21
+ ## Example
22
+
23
+ ```basic
24
+ 10 ON INTERVAL=60 GOSUB 50
25
+ 20 INTERVAL ON
26
+ 30 X=X+1:IF INKEY$="" THEN 30
27
+ 40 END
28
+ 50 PRINT X:RETURN
29
+ ```
30
+
31
+ ```basic
32
+ 10 ON INTERVAL=300 GOSUB 60
33
+ 20 INTERVAL ON
34
+ 30 FOR I=1 TO 10000:NEXT I
35
+ 40 INTERVAL OFF
36
+ 50 END
37
+ 60 K=K+6:PRINT K;"seconds"
38
+ 70 RETURN
39
+  
40
+ RUN
41
+ 6 seconds
42
+ 12 seconds
43
+ 18 seconds
44
+ 24 seconds
45
+ ```
46
+
47
+ ## Related to
48
+
49
+ `ON INTERVAL GOSUB`
50
+
51
+ ## Compatibility
52
+
53
+ MSX-BASIC 1.0 or higher
54
+
55
+ ## Source
56
+
57
+ Retrieved from "https://www.msx.org/wiki/INTERVAL"
@@ -0,0 +1,51 @@
1
+ # KEY()
2
+
3
+ ## Effect
4
+
5
+ Enables/disables/stops a function key.
6
+
7
+ ## Syntax
8
+
9
+ `KEY (<Number>) ON|OFF|STOP`
10
+
11
+ ## Parameters
12
+
13
+ `<Number>` is the function key number. It can vary between 1 and 10.
14
+
15
+ `ON`, `OFF` or `STOP` enables, disables or stops the call caused by the corresponding function key.
16
+
17
+ ## Example
18
+
19
+ ```basic
20
+ 10 FOR I = 1 TO 3: KEY(I) STOP: NEXT ' F1 to F3 are stopped
21
+ 20 FOR I = 4 TO 10: KEY(I) OFF: NEXT ' F4 to F10 are disabled
22
+ 30 ON KEY GOSUB 170, 180, 190 ' Subroutine will only be active from line 130
23
+ 40 CLS
24
+ 50 PRINT"TEST 1"
25
+ 60 PRINT
26
+ 70 PRINT"Press a function key or ESC key"
27
+ 80 A$=INPUT$(1)
28
+ 90 IF A$ = CHR$(27) THEN 100 ELSE 80
29
+ 100 CLS
30
+ 110 PRINT"TEST 2"
31
+ 120 PRINT"Press a function key"
32
+ 130 KEY(1) ON:KEY(2) ON:KEY(3) ON ' F1 to F3 and the subroutine in line 30 are enabled
33
+ 140 GOTO 160
34
+ 150 PRINT " pressed"
35
+ 160 GOTO 160
36
+ 170 PRINT:PRINT "F1";:RETURN 150
37
+ 180 PRINT:PRINT "F2";:RETURN 150
38
+ 190 PRINT:PRINT "F3";:RETURN 150
39
+ ```
40
+
41
+ ## Related to
42
+
43
+ `KEY`, `ON KEY GOSUB`
44
+
45
+ ## Compatibility
46
+
47
+ MSX-BASIC 1.0 or higher
48
+
49
+ ## Source
50
+
51
+ Retrieved from "https://www.msx.org/wiki/KEY()"
@@ -0,0 +1,254 @@
1
+ # KEY
2
+
3
+ ## Effect
4
+
5
+ Lists the contents of the function keys (`KEY LIST`).
6
+
7
+ Enables (`KEY ON`) or disables (`KEY OFF`) the display of their content
8
+ - on line 24 of text modes SCREEN 0, 1, 9.
9
+ - on line 13 of Kanji text modes 0 and 1, activated with `CALL KANJI`, `CALL KANJI0` or `CALL KANJI1`.
10
+ - on line 24 of Kanji text modes 2 and 3, activated with `CALL KANJI2` or `CALL KANJI3`.
11
+
12
+ Changes the text displayed at the bottom of the screen.
13
+
14
+ ## Syntaxes
15
+
16
+ `KEY LIST`
17
+
18
+ `KEY ON|OFF`
19
+
20
+ `KEY <Number>,"<String>"`
21
+
22
+ ## Parameters
23
+
24
+ `ON`/`OFF` enables/disables display of the function key text at the bottom of the screen. It is only displayed in text screen modes.
25
+
26
+ `LIST` is used to list the contents of the function keys.
27
+
28
+ `<Number>` is the function key number. (1~10)
29
+
30
+ `<String>` is a text of up to 15 characters allocated for each function key. This string is executed as a BASIC program line when the corresponding key is pressed.
31
+
32
+ When pressing the specific function key in direct mode the text is displayed at the location of the cursor. This allows quick entry of text or instructions that are often used. The function key text will also be displayed on the last line of the screen, if this feature is active, which is the default.
33
+
34
+ If the text contains an instruction and you want to have it automatically executed upon pressing the function key, add `+CHR$(13)` at the end of the string. This corresponds to the RETURN/ENTER key. See MSX Characters & Control Codes for other character codes.
35
+
36
+ During a program execution pressing a function key will have the same effect as you press each key corresponding at characters in text with in extra the call to the routine defined by `ON KEY GOSUB`. The text will not be displayed except during the execution of `INPUT`.
37
+
38
+ _Note: To go back completely to the default function keys, you need to use `DEFUSR=&H3E : X=USR(0) : KEY ON`_
39
+
40
+ ## Example
41
+
42
+ ```basic
43
+ 10 A$="FILES"+CHR$(13)
44
+ 20 KEY 1,A$+"?DSKF(0)"+CHR$(13)
45
+ ```
46
+
47
+ ## Standard function keys
48
+
49
+ By default, the contents of the function keys are as follows (complete display with `KEY LIST`):
50
+
51
+ ### Japanese and Korean machines
52
+
53
+ Also for Philips VG-8000 and VG-8010 (not the 8010F version), Sanyo PHC-28S.
54
+
55
+ |Key|Display|String|
56
+ |---|---|---|
57
+ |F1|color|"color"|
58
+ |F2|auto|"auto"|
59
+ |F3|goto|"goto"|
60
+ |F4|list|"list"|
61
+ |F5|run|"run"+CHR$(13)|
62
+ |F6|color 15,4,7|"color 15,4,7"+CHR$(13)|
63
+ |F7 <sup>(*)</sup>|cload"|"cload"+CHR$(34)|
64
+ |F8|cont|"cont"+CHR$(13)|
65
+ |F9|list.|"list."+CHR$(13)|
66
+ |F10|run|CHR$(12)+"run"+CHR$(13)|
67
+
68
+ <sup>(*)</sup> `cload"` for `"load"+CHR$(34)` on MSX2+ and MSX turbo R machines.
69
+
70
+ ### European, Argentinian and Russian MSX/MSX2 machines
71
+
72
+ Also for Sharp HB-8000-11 and HB-8000-12, Arabic versions of Spectravideo SVI-728 and SVI-738, Arabic machines in European mode.
73
+
74
+ On Yamaha YIS-503IIR, the network needs to be disabled: boot while pressing `DEL` key.
75
+ On Arabic machines, the Arabic mode needs to be disabled: boot while presssing `CTRL` key.
76
+
77
+ |Key|Display|String|
78
+ |---|---|---|
79
+ |F1|color|"color"|
80
+ |F2|auto|"auto"|
81
+ |F3|goto|"goto"|
82
+ |F4|list|"list"|
83
+ |F5|run|"run"+CHR$(13)|
84
+ |F6|color 15,4,4|"color 15,4,4"+CHR$(13)|
85
+ |F7|cload"|"cload"+CHR$(34)|
86
+ |F8|cont|"cont"+CHR$(13)|
87
+ |F9|list.|"list."+CHR$(13)|
88
+ |F10|run|CHR$(12)+"run"+CHR$(13)|
89
+
90
+ ### Brazilian MSX machines
91
+
92
+ |Key|Display|String|
93
+ |---|---|---|
94
+ |F1|color|"color"|
95
+ |F6 <sup>(*)</sup>|color 15,1,1|"color 15,1,1"+CHR$(13)|
96
+ |F2|auto|"auto"|
97
+ |F7|cload"|"cload"+CHR$(34)|
98
+ |F3|goto|"goto"|
99
+ |F8|cont|"cont"+CHR$(13)|
100
+ |F4|list|"list"|
101
+ |F9|list.|"list."|
102
+ |F5|run|"run"+CHR$(13)|
103
+ |F10|run|"run"|
104
+
105
+ <sup>(*)</sup> `color 15,4,4` for `"color 15,4,4"+CHR$(13)` on Sharp HB-8000-14.
106
+
107
+ ## Non-standard function keys
108
+
109
+ ### Daewoo Zemmix CPC-50, CPC-50A, CPC-50B and CPC-51
110
+
111
+ These machines are conceived as consoles, not as computers. On the real hardware, it's impossible to use MSX-BASIC. On emulators, you can access to MSX-BASIC but by default, the contents of the function keys are empty.
112
+
113
+ ### Frael Bruc 100
114
+
115
+ This MSX clone never displays the contents of the function keys, even if you use KEY ON. However, you can list these contents with KEY LIST (or by pressing the F1 key) and use KEY to change them.
116
+
117
+ |Key|Display|String|
118
+ |---|---|---|
119
+ |F1 <sup>(*)</sup>|keylist|"keylist"+CHR$(13)|
120
+ |F6|color|"color|
121
+ |F2|cload"|"cload"+CHR$(34)|
122
+ |F7|csave"|"csave"+CHR$(34)|
123
+ |F3|auto|"auto"|
124
+ |F8|renum|"renum"|
125
+ |F4|list .|"list ."+CHR$(13)|
126
+ |F9|list|"list"|
127
+ |F5|run|"RUN "|
128
+ |F10|cont|"cont"+CHR$(13)|
129
+
130
+ <sup>(*)</sup> displays the contents of all function keys.
131
+
132
+ ### Philips NMS 800 and NMS 801
133
+
134
+ |Key|Display|String|
135
+ |---|---|---|
136
+ |F1|run"cas:"|"run"+CHR$(34)+"cas:"+CHR$(13)|
137
+ |F2|bload"cas:",r|"bload"+CHR$(34)+"cas:"+CHR$(34)+",r"+CHR$(13)|
138
+ |F3|cload|"cload"+CHR$(13)|
139
+ |F4|load"cas:",r|"load"+CHR$(34)+"cas:"+CHR$(34)+",r"+CHR$(13)|
140
+ |F5|run|"run"+CHR$(13)|
141
+ |F6|color 15,4,4|"color 15,4,4"+CHR$(13)|
142
+ |F7|cont|"cont"+CHR$(13)|
143
+ |F8|cload"|"cload"+CHR$(34)|
144
+ |F9|list|"list"|
145
+ |F10|run|CHR$(12)+"run"+CHR$(13)|
146
+
147
+ ### Brazilian MSX2 machines with MSX-BASIC 2.2
148
+
149
+ |Key|Display|String|
150
+ |---|---|---|
151
+ |F1|copy|"copy"|
152
+ |F2|files|"files"+CHR$(13)|
153
+ |F3|bload"|"bload"+CHR$(34)|
154
+ |F4|list|"list"|
155
+ |F5|run|"run"+CHR$(13)|
156
+ |F6|color 15,1,1|"color 15,1,1"+CHR$(13)|
157
+ |F7|_format|"_format"+CHR$(13)|
158
+ |F8|_system|"_system"+CHR$(13)|
159
+ |F9|load"|"load"+CHR$(34)|
160
+ |F10|save"|"save"+CHR$(34)|
161
+
162
+ ### Brazilian MSX2+ machines with MSX-BASIC 3.1 or 3.2
163
+
164
+ |Key|Display|String|
165
+ |---|---|---|
166
+ |F1|files|"files"+CHR$(13)|
167
+ |F2|bload"|"bload"+CHR$(34)|
168
+ |F3|copy|"copy"|
169
+ |F4|list|"list"|
170
+ |F5|run|"run"+CHR$(13)|
171
+ |F6|color 15,0,0|"color 15,0,0"+CHR$(13)|
172
+ |F7|load"|"load"+CHR$(34)|
173
+ |F8|_format|"_format"+CHR$(13)|
174
+ |F9|_system|"_system"+CHR$(13)|
175
+ |F10|run|CHR$(12)+"run"+CHR$(13)|
176
+
177
+ ## Function keys defined by software
178
+
179
+ ### Firmware of Arabic MSX/MSX2 machines
180
+
181
+ By default, the Arabic mode of these computers (except Arabic versions of Spectravideo SVI-728 and SVI-738) is enabled and the content of the function keys is modified for F2 and F6 to F8 (F9 on Bawareth Perfect machines with 1990 version of Arabic Basic):
182
+
183
+ |Key|Display|String|
184
+ |---|---|---|
185
+ |F1|color|"color"|
186
+ |F2|_arb1|"_arb1"|
187
+ |F3|goto|"goto"|
188
+ |F4|list|"list"|
189
+ |F5|run|"run"+CHR$(13)|
190
+ |F6 <sup>(*)</sup>|_dcolor|"_dcolor"|
191
+ |F7 <sup>(**)</sup>|_arb2 or _arb0|"_arb2" or "_arb0"|
192
+ |F8 <sup>(***)</sup>|_engl|"_engl"|
193
+ |F9 <sup>(****)</sup>|list|"list."+CHR$(13)|
194
+ |F10|run|CHR$(12)+"run"+CHR$(13)|
195
+
196
+ <sup>(\*)</sup> not on Bawareth Perfect computers with a 1987 Arabic BASIC version (3.21 - 3.30).
197
+ <sup>(\*\*)</sup> see below.
198
+ <sup>(\*\*\*)</sup> _latin for "_latin" on Sakhr AX-170F and AX-350IIF.
199
+ <sup>(\*\*\*\*\*)</sup> _arb0 on Bawareth Perfect machines with 1990 version of Arabic Basic
200
+
201
+ #### Contents of F7 key
202
+
203
+ - _arb2 on Sakhr MSX1 computers.
204
+ - _arb0 on Sakhr MSX2 computers and Bawareth Perfect machines with 1987 version of Arabic Basic.
205
+ - _auto for "_auto" on Bawareth Perfect machines with 1990 version of Arabic Basic.
206
+ - _trans when using an Arabic Sakhr Basic cartridge or the equivalent option on Sakhr AX-370: Arabic/English toggle for MSX-BASIC programming.
207
+
208
+ ### Firmware of Yamaha YIS-503IIR
209
+
210
+ By default, the network firmware is enabled and the content of the function keys is modified for F1 and F6 to F10:
211
+
212
+ |Key|Display|String|
213
+ |---|---|---|
214
+ |F1|color|"color"|
215
+ |F2|auto|"auto"|
216
+ |F3|goto|"goto"|
217
+ |F4|list|"list"|
218
+ |F5|run|"run"+CHR$(13)|
219
+ |F6|run"COM:"|"run"+CHR$(34)+"COM:"+CHR$(34)|
220
+ |F7|save"COM:"|"save"+CHR$(34)+"COM:"+CHR$(34)|
221
+ |F8|load"COM:"|"load"+CHR$(34)+"COM:"+CHR$(34)|
222
+ |F9|merge"COM:"|"merge"+CHR$(34)+"COM:"+CHR$(34)|
223
+ |F10|_comterm|"_comterm"+CHR$(13)|
224
+
225
+ ### Connection of a Quick Disk Drive
226
+
227
+ When booting a MSX computer with a Quick Disk Drive connected, you will see that the contents of most function keys have been modified as follows:
228
+
229
+ |Key|Display|String|
230
+ |---|---|---|
231
+ |F1|_RUN|"_RUN "|
232
+ |F2|_LOAD|"_LOAD "|
233
+ |F3|_BLOAD|"_BLOAD"|
234
+ |F4 (*)|list|"list "|
235
+ |F5 (*)|run|"run"+CHR$(13)|
236
+ |F6 (**)|color 15,4,7|"color 15,4,7"+CHR$(13)|
237
+ |F7|_QDKEY|"_QDKEY "|
238
+ |F8|_SAVE("QD:|"_SAVE("+CHR$(34)+"QD:"|
239
+ |F9|_BSAVE("QD:|"_BSAVE("+CHR$(34)+"QD:"|
240
+ |F10|_QDFILES|"_QDFILES"|
241
+
242
+ <sup>(\*)</sup> Generally unchanged.
243
+ <sup>(\*\*)</sup> Same as Japanese machines, Korean machines, Philips VG-8000 and VG-8010 (not the 8010F version), Sanyo PHC-28S.
244
+
245
+ ## Related to
246
+
247
+ `KEY()`, `ON KEY GOSUB`
248
+
249
+ ## Compatibility
250
+
251
+ MSX-BASIC 1.0 or higher
252
+
253
+ ## Source
254
+ Retrieved from "https://www.msx.org/wiki/KEY"
@@ -0,0 +1,39 @@
1
+ # LEFT$()
2
+
3
+ ## Effect
4
+
5
+ Returns a string corresponding to a specified number of the leftmost characters from an original string.
6
+
7
+ _Note: For strings with Japanese or Korean characters, you need to use `CALL KMID`._
8
+
9
+ ## Syntax
10
+
11
+ `LEFT$("<String>",<Length>)`
12
+
13
+ ## Parameters
14
+
15
+ `<String>` is a string of characters between double quotes `"`. It can include non-printable characters and be replaced by a numeric or string variable (also named as alphanumeric variable).
16
+
17
+ `<Length>` is a number between 0 and 255.
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ 10 A$=LEFT$("MSX Forever!",3)
23
+ 20 PRINT A$
24
+  
25
+ RUN
26
+ MSX
27
+ ```
28
+
29
+ ## Related to
30
+
31
+ `CALL KMID`, `MID$`, `RIGHT$`
32
+
33
+ ## Compatibility
34
+
35
+ MSX-BASIC 1.0 or higher
36
+
37
+ ## Source
38
+
39
+ Retrieved from "https://www.msx.org/wiki/LEFT$()"
@@ -0,0 +1,36 @@
1
+ # LEN()
2
+
3
+ ## Effect
4
+
5
+ Returns the length of a string, including all non-printable characters.
6
+
7
+ _Note: For strings with Japanese or Korean characters, you need to use `CALL KLEN`._
8
+
9
+ ## Syntax
10
+
11
+ `LEN("<String>")`
12
+
13
+ ## Parameter
14
+
15
+ `<String>` is a string of characters between double quotes `"`. It can include non-printable characters and be replaced by a string variable (also named as alphanumeric variable).
16
+
17
+ ## Examples
18
+
19
+ ```basic
20
+ PRINT LEN("MSX")
21
+ 3
22
+ A$="MSX":PRINT LEN(A$)
23
+ 3
24
+ ```
25
+
26
+ ## Related to
27
+
28
+ `CALL KLEN`
29
+
30
+ ## Compatibility
31
+
32
+ MSX-BASIC 1.0 or higher
33
+
34
+ ## Source
35
+
36
+ Retrieved from "https://www.msx.org/wiki/LEN()"
@@ -0,0 +1,68 @@
1
+ # LET
2
+
3
+ ## Effect
4
+
5
+ Assigns a value to a specified variable.
6
+
7
+ _Note: Only the first two letters are taken into account as variable name, but different variable types and tables are considered different even if they have same name (please see the examples)._
8
+
9
+ ## Syntax
10
+
11
+ `LET <Variable> = <Value>`
12
+
13
+ The `LET` instruction itself is optional and can be skipped except if you use the _Exprif BASIC_ extension.
14
+
15
+ ## Parameters
16
+
17
+ `<Variable>` is a numeric or alphanumeric variable.
18
+
19
+ `<Value>` is a numeric value or a character string (between quotation mark). It can be also an expression.
20
+
21
+ ## Examples
22
+
23
+ ```basic
24
+ 10 LET A=10
25
+ 20 LET B$="Hello"
26
+ 30 C=20
27
+ 40 D$="World!"
28
+ 50 CLS
29
+ 60 PRINT A;C
30
+ 70 PRINT
31
+ 80 PRINT B$;" "; D$
32
+
33
+ RUN
34
+ 10 20
35
+
36
+ Hello World!
37
+ Ok
38
+ ```
39
+
40
+ ```basic
41
+ 10 SIZE=1:SIDE=2:SI=6
42
+ 20 PRINT SIZE
43
+
44
+ RUN
45
+ 6
46
+ Ok
47
+ ```
48
+
49
+ ```basic
50
+ 10 XY$="Values:":XY#=1:XY!=2:XY%=3:XY#(0)=4:XY!(0)=5:XY%(0)=6
51
+ 20 PRINT XY$;XY#;XY!;XY%;XY#(0);XY!(0);XY%(0)
52
+
53
+ RUN
54
+ Values: 1 2 3 4 5 6
55
+ Ok
56
+ ```
57
+
58
+ ## Related to
59
+
60
+ `DEFDBL`, `DEFINT`, `DEFSNG`, `DEFSTR`, `DIM`, `SWAP`
61
+
62
+ ## Compatibility
63
+
64
+ MSX-BASIC 1.0 or higher
65
+
66
+ ## Source
67
+
68
+ Retrieved from "https://www.msx.org/wiki/LET"
@@ -0,0 +1,74 @@
1
+ # LINE
2
+
3
+ ## Effect
4
+
5
+ Draws a line or a rectangle between absolute or relative coordinates on a graphic screen (2 to 8, 10 to 12).
6
+
7
+ ## Syntaxes
8
+
9
+ `LINE STEP(<X1>,<Y1>)-STEP(<X2>,<Y2>),<Color>,<Shape>,<Operator>`
10
+
11
+ `LINE -STEP(<X2>,<Y2>),<Color>,<Shape>,<Operator>`
12
+
13
+ _Notes:_
14
+ - Parameters can not end with a comma alone.
15
+ - Current cursor coordinates are used as starting coordinates with the second syntax.
16
+
17
+ ## Parameters
18
+
19
+ `STEP` can be put before coordinates, to specify relative coordinates to the current cursor position. In this case the values can also be negative.
20
+
21
+ `<X1>` is coordinate X of the starting point of the line (0-255/511).
22
+
23
+ `<Y1>` is coordinate Y of the starting point of the line (0-191/211).
24
+
25
+ When `<X1>` and `<Y1>` are omitted, the coordinates of the last drawn point are used as starting point.
26
+
27
+ `<X2>` is coordinate X of the end point of the line (0-255/511).
28
+
29
+ `<Y2>` is coordinate Y of the end point of the line (0-191/211).
30
+
31
+ `<Color>` is the color to be used for drawing the line = 0 to 15 (screens 2 to 5, 7 and 10), 0 to 3 (screen 6), 0 to 255 (screens 8, 11, 12). If `<Color>` is not specified the current foreground color is used.
32
+
33
+ `<Shape>` define the shape to draw. It can be `B` to draw an empty rectangle or `BF` for filled rectangle. A line is drawn when this parameter is omited.
34
+
35
+ `<Operator>` is the logical operation to be performed between the color of the old pixel and the new color. This parameter can be used only on screens 5 to 8 and 10 to 12, it requires a MSX2 or higher computer.
36
+
37
+ The available operators are `AND`, `OR`, `PRESET`, `PSET` (default), `TAND`, `TOR`, `TPRESET`, `TPSET`, `TXOR`, `XOR`. Specifying a logical operation preceded by "T" causes nothing to be done when specified color is transparent (color 0).
38
+
39
+ The effect of the operators is done on each corresponding bit as shown in the following table.
40
+
41
+ |Current bit|Copied color bit|AND|OR|PRESET|PSET|XOR|
42
+ |:-:|:-:|:-:|:-:|:-:|:-:|:-:|
43
+ |0|0|0|0|1|0|0|
44
+ |0|1|0|1|0|1|1|
45
+ |1|0|0|1|1|0|1|
46
+ |1|1|1|1|0|1|0|
47
+
48
+ ## Examples
49
+
50
+ ```basic
51
+ 10 SCREEN 2
52
+ 20 FOR I=0 TO 95 STEP 2
53
+ 30 LINE (128-I,95-I)-(128+I,95+I),1,B
54
+ 40 NEXT
55
+ 50 GOTO 50
56
+ ```
57
+
58
+ ```basic
59
+ 10 SCREEN 7
60
+ 20 LINE (10,10)-(500,200),13,BF
61
+ 30 GOTO 30
62
+ ```
63
+
64
+ ## Related to
65
+
66
+ `CIRCLE`, `COLOR`, `DRAW`, `PAINT`, `POINT`, `PRESET`, `PSET`, `SCREEN`
67
+
68
+ ## Compatibility
69
+
70
+ MSX-BASIC 1.0 or higher
71
+
72
+ ## Source
73
+
74
+ Retrieved from "https://www.msx.org/wiki/LINE"
@@ -0,0 +1,79 @@
1
+ # LINE INPUT
2
+
3
+ ## Effect
4
+
5
+ Retrieves a complete string from the keyboard or a sequential file, storing the input of maximum 254 characters into a variable.
6
+
7
+ _Note: Contrary to `INPUT`, this instruction does not go to text screen mode when it is executed in a graphic screen mode but the input is not done correctly._
8
+
9
+ ## Syntaxes
10
+
11
+ `LINE INPUT["<Prompt>";]<Variable>`
12
+
13
+ `LINE INPUT#<FileNumber>,<Variable>`
14
+
15
+ ## Parameters
16
+
17
+ `<Prompt>` is the text displayed to ask what you need to input, but contrary to `INPUT`, it is not followed by a question mark.
18
+
19
+ `<Variable>` is a string variable that will take the input string.
20
+
21
+ `<FileNumber>` is the number of file opened by `OPEN`.
22
+
23
+ _Note: With this parameter and device `"CON"`, only the characters that has been typed will be retrieved, other characters on same input line will not be retrieved._
24
+
25
+ ## Examples
26
+
27
+ ```basic
28
+ 10 LINE INPUT "What is your favorite computer system ?";A$
29
+ 20 PRINT A$
30
+  
31
+ RUN
32
+ What is your favorite computer system ?
33
+ MSX
34
+ ```
35
+
36
+ ```basic
37
+ 10 OPEN "CAS:DATA" FOR INPUT AS #1
38
+ 20 IF EOF(1) THEN 40
39
+ 30 LINE INPUT#1,A$ : PRINT A$ : GOTO 20
40
+ 40 CLOSE#1 : END
41
+ ```
42
+
43
+ ```basic
44
+ 10 COLOR 15,4,4: SCREEN 2
45
+ 20 OPEN"con" FOR INPUT AS #1
46
+ 30 LINE INPUT#1,A$: CLOSE#1
47
+ 40 PSET(124-(LEN(A$)*4),92),4
48
+ 50 OPEN"grp:" AS #1
49
+ 60 PRINT#1,A$: CLOSE#1
50
+ 70 IF NOT STRIG(0)THEN 70 ' Press Space key to exit
51
+ ```
52
+
53
+ ## Data
54
+
55
+ ### Retrieved from keyboard
56
+
57
+ The data retrieved from the keyboard are stored in only one value (not several values) and it's always a string (never a number).
58
+
59
+ `LINE INPUT` accepts all types of characters. Only pressing the `RETURN/ENTER` key will specify the end of the string.
60
+
61
+ ### Read from sequential file
62
+
63
+ The data read from a sequential file are stored in only one value (not several values) and it's always a string (never a number).
64
+
65
+ `LINE INPUT` accepts all types of characters. Only a `RETURN` character is viewed as the end of a string.
66
+
67
+ This instruction is very useful to read a MSX-BASIC program as datafile, if it was saved (by using the `SAVE` instruction) in ASCII text.
68
+
69
+ ## Related to
70
+
71
+ `INPUT`, `INPUT$`, `OPEN`, `PRINT`, `SAVE`
72
+
73
+ ## Compatibility
74
+
75
+ MSX-BASIC 1.0 or higher
76
+
77
+ ## Source
78
+
79
+ Retrieved from "https://www.msx.org/wiki/LINE_INPUT"