@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,48 @@
1
+ # VPOKE
2
+
3
+ ## Effect
4
+
5
+ Writes a value to a byte of the video memory (VRAM).
6
+
7
+ ## Syntax
8
+
9
+ `VPOKE <Address>,<Value>`
10
+
11
+ ## Parameters
12
+
13
+ `<Address>` must be in the range -32768 to 65535 (&H0000 to &HFFFF).
14
+
15
+ On MSX1 the usable VRAM area is 0-16383.
16
+
17
+ On MSX2 and up the usable VRAM area is 0-65535. In order to address all of the 128kB VRAM, `SET PAGE` instruction must be used. Please note that VRAM addressing is different (interleaved) in `SCREEN` modes 7, 8, 10, 11 and 12. However this is important to notice only if you switch between these two addressing modes between reading / writing.
18
+
19
+ `<Value>` is a decimal number between 0 and 255.
20
+
21
+ ## Example
22
+
23
+ ```basic
24
+ 10 SC=PEEK(&HFCAF) ' Current screen mode (= 0/1 for text)
25
+ 11 A=ASC("!")*8+BASE(SC*5+2) ' VRAM address for "!"-font outlook
26
+ 12 FOR I=0 TO 7: READ D$: VPOKEA+I,VAL("&B"+D$): NEXT I
27
+ 13 'New look (Note: Two last columns are not in use in screen 0)
28
+ 14 DATA 00110000
29
+ 15 DATA 01111000
30
+ 16 DATA 01111000
31
+ 17 DATA 00110000
32
+ 18 DATA 00000000
33
+ 19 DATA 00110000
34
+ 20 DATA 00110000
35
+ 21 DATA 00000000
36
+ ```
37
+
38
+ ## Related to
39
+
40
+ `BASE()`, `SCREEN`, `SET PAGE`, `VDP()`, `VPEEK()`
41
+
42
+ ## Compatibility
43
+
44
+ MSX-BASIC 1.0 or higher
45
+
46
+ ## Source
47
+
48
+ Retrieved from "https://www.msx.org/wiki/VPOKE"
@@ -0,0 +1,38 @@
1
+ # WAIT
2
+
3
+ ## Effect
4
+
5
+ Reads the specified I/O port and suspends the BASIC program execution until the result of value read at `<PortNumber> XOR <Value2> AND <Value1>` equals zero.
6
+
7
+ ## Syntax
8
+
9
+ `WAIT <PortNumber>,<Value1>,<Value2>`
10
+
11
+ _Note: Parameters can not end with a comma alone._
12
+
13
+ ## Parameters
14
+
15
+ `<PortNumber>` is the I/O port to read until the operation equals 0.
16
+
17
+ `<Value1>` is a value between 0 and 255. It can be a variable or an expression.
18
+
19
+ `<Value2>` is a optional value between 0 and 255. It can be a variable or an expression. By default it is 0.
20
+
21
+ ## Example
22
+
23
+ ```basic
24
+ 10 ' Wait until user toggles CAPS LOCK on.
25
+ 20 WAIT 170,64,64
26
+ ```
27
+
28
+ ## Related to
29
+
30
+ `AND`, `INP()`, `OUT`, `SOUND`, `VDP()`, `XOR`
31
+
32
+ ## Compatibility
33
+
34
+ MSX-BASIC 1.0 or higher
35
+
36
+ ## Source
37
+
38
+ Retrieved from "https://www.msx.org/wiki/WAIT"
@@ -0,0 +1,76 @@
1
+ # WIDTH
2
+
3
+ ## Effect
4
+
5
+ Sets the number of columns on current or last used text mode.
6
+
7
+ ## Syntax
8
+
9
+ `WIDTH <Columns>`
10
+
11
+ ## Parameter
12
+
13
+ `<Columns>` is a value between 1 and 32/40/80. The highest value depends on the mode set with `SCREEN` or `CALL KANJI`, and the type of MSX used. Kanji modes don't accept a value lower than 26.
14
+
15
+ |SCREEN|MSX type|Columns|
16
+ |:--|:--|:-:|
17
+ |0|MSX1 <sup>(*)</sup>|1-40|
18
+ |0|MSX2 and higher <sup>(*)</sup>|1-80|
19
+ |1|MSX1 and higher|1-32|
20
+ |9|Korean MSX2|1-80|
21
+ |KANJI0|Japanese MSX2+ and higher|26-64|
22
+ |KANJI1|Japanese MSX2+ and higher|26-80|
23
+ |KANJI2|Japanese MSX2+ and higher|26-64|
24
+ |KANJI3|Japanese MSX2+ and higher|26-80|
25
+
26
+
27
+ <sup>(*)</sup> Special case: the Yamaha CX5MII and CX5MII/128 are MSX1 computers with an additional ROM allowing to use the 80 column text mode.
28
+
29
+ ### Default values
30
+
31
+ The default values according the MSX.
32
+
33
+ |SCREEN|Machines|Default width|
34
+ |:-:|:--|:--|
35
+ |0|Ascii One Chip MSX (improved)|80|
36
+ |0|Ascii One Chip MSX (original)|40|
37
+ |0|Brazilian Ciel and Sharp machines|39|
38
+ |0|Most Brazilian Gradiente machines|40|
39
+ |0|Most European machines|37|
40
+ |0|Japanese, Korean and Russian machines|39|
41
+ |1|All machines|29|
42
+ |9|Korean MSX2 computers|80|
43
+ |9|Korean MSX2 consoles|29 (takes the width of previous text mode)|
44
+ |KANJI0|Japanese MSX2+ and higher|29 (takes the width of previous text mode until the limit possible)|
45
+ |KANJI1|Japanese MSX2+ and higher|39 (takes the width of previous text mode until the limit possible)|
46
+ |KANJI2|Japanese MSX2+ and higher|29 (takes the width of previous text mode until the limit possible)|
47
+ |KANJI3|Japanese MSX2+ and higher|39 (takes the width of previous text mode until the limit possible)|
48
+
49
+ _Note: On MSX2 and higher machines, the instruction `SET SCREEN` saves the current parameter for screen 0 and 1; it's not possible to save this parameter for the Kanji modes. When you restart the MSX the saved parameter is used as default value. On Korean MSX2 the Hangul mode is kept only if `SET SCREEN` is executed in this mode._
50
+
51
+ ## Examples
52
+
53
+ ```basic
54
+ 10 SCREEN 0: SCREEN 2
55
+ 20 WIDTH 39: END
56
+ ```
57
+ ```basic
58
+ 10 SCREEN 1: SCREEN 2
59
+ 20 WIDTH 39: END
60
+ ```
61
+
62
+ _Note: The second example causes an "Illegal function call" error._
63
+
64
+ ## Related to
65
+
66
+ `CALL KANJI`, `SCREEN`, `SET SCREEN`
67
+
68
+ ## Compatibility
69
+
70
+ MSX-BASIC 1.x
71
+
72
+ MSX-BASIC 2.0 or higher according the parameter.
73
+
74
+ ## Source
75
+
76
+ Retrieved from "https://www.msx.org/wiki/WIDTH"
@@ -0,0 +1,72 @@
1
+ # XOR
2
+
3
+ ## Effect
4
+
5
+ Performs a bitwise XOR-operation (logical exclusive or) between two expressions.
6
+
7
+ The bit is set if one bit is set and the other one isn't:
8
+ ```
9
+ 0 XOR 0 = 0
10
+ 0 XOR 1 = 1
11
+ 1 XOR 0 = 1
12
+ 1 XOR 1 = 0
13
+ ```
14
+
15
+ ## Syntax
16
+
17
+ `<Value> XOR <Value>`
18
+
19
+ ## Parameter
20
+
21
+ `<Value>` is a value between -32768 and 32767. It can also be a a numeric variable, a mathematical expression or expression from a condition.
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 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 XOR 11
31
+ 4
32
+ ```
33
+ Binary explanation:
34
+ ```
35
+ 1111
36
+ 1011 XOR
37
+ ----
38
+ 0100
39
+ ```
40
+ ---
41
+ ```basic
42
+ PRINT 5 XOR 13
43
+ 8
44
+ ```
45
+ Binary explanation:
46
+ ```
47
+ 0101
48
+ 1101 XOR
49
+ ----
50
+ 1000
51
+ ```
52
+ ---
53
+ ```basic
54
+ PRINT &B00001111 XOR &B11110001
55
+ 15
56
+ Syntax error
57
+ Ok
58
+ PRINT (&B00001111) XOR &B11110001
59
+ 254
60
+ ```
61
+
62
+ ## Related to
63
+
64
+ `AND`, `EQV`, `IMP`, `MOD`, `NOT`, `OR`
65
+
66
+ ## Compatibility
67
+
68
+ MSX-BASIC 1.0 or higher
69
+
70
+ ## Source
71
+
72
+ Retrieved from "https://www.msx.org/wiki/XOR"