@nataliapc/mcp-openmsx 1.1.14 → 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 (196) hide show
  1. package/README.md +37 -12
  2. package/dist/server.js +198 -69
  3. package/dist/utils.js +54 -7
  4. package/dist/vectordb.js +60 -0
  5. package/package.json +10 -3
  6. package/resources/audio/MGSC111.txt +669 -0
  7. package/resources/audio/msx-midi.md +872 -0
  8. package/resources/audio/opl4tech.txt +688 -0
  9. package/resources/audio/psg_registers.md +281 -0
  10. package/resources/audio/sound_cartridge_scc.md +123 -0
  11. package/resources/audio/sound_cartridge_scci.md +250 -0
  12. package/resources/audio/toc.json +18 -7
  13. package/resources/book--msx2-technical-handbook/toc.json +1 -1
  14. package/resources/msx-unapi/toc.json +2 -2
  15. package/resources/processors/toc.json +4 -4
  16. package/resources/processors/z80_detailed_instruction_set.md +80 -68
  17. package/resources/programming/basic_wiki/ABS().md +36 -0
  18. package/resources/programming/basic_wiki/AND.md +71 -0
  19. package/resources/programming/basic_wiki/ASC().md +38 -0
  20. package/resources/programming/basic_wiki/ATN().md +36 -0
  21. package/resources/programming/basic_wiki/AUTO.md +39 -0
  22. package/resources/programming/basic_wiki/BASE().md +147 -0
  23. package/resources/programming/basic_wiki/BEEP.md +27 -0
  24. package/resources/programming/basic_wiki/BIN$().md +36 -0
  25. package/resources/programming/basic_wiki/BLOAD.md +63 -0
  26. package/resources/programming/basic_wiki/BSAVE.md +61 -0
  27. package/resources/programming/basic_wiki/CALL.md +391 -0
  28. package/resources/programming/basic_wiki/CALL_ADJUST.md +40 -0
  29. package/resources/programming/basic_wiki/CALL_IMPOSE.md +28 -0
  30. package/resources/programming/basic_wiki/CALL_OPTIONS.md +26 -0
  31. package/resources/programming/basic_wiki/CALL_PAUSE.md +119 -0
  32. package/resources/programming/basic_wiki/CALL_PCMPLAY.md +60 -0
  33. package/resources/programming/basic_wiki/CALL_PCMREC.md +70 -0
  34. package/resources/programming/basic_wiki/CDBL().md +36 -0
  35. package/resources/programming/basic_wiki/CHR$().md +51 -0
  36. package/resources/programming/basic_wiki/CINT().md +36 -0
  37. package/resources/programming/basic_wiki/CIRCLE.md +51 -0
  38. package/resources/programming/basic_wiki/CLEAR.md +39 -0
  39. package/resources/programming/basic_wiki/CLOAD.md +27 -0
  40. package/resources/programming/basic_wiki/CLOAD?.md +31 -0
  41. package/resources/programming/basic_wiki/CLOSE.md +44 -0
  42. package/resources/programming/basic_wiki/CLS.md +51 -0
  43. package/resources/programming/basic_wiki/COLOR.md +143 -0
  44. package/resources/programming/basic_wiki/COLOR=.md +93 -0
  45. package/resources/programming/basic_wiki/COLOR_SPRITE$().md +83 -0
  46. package/resources/programming/basic_wiki/COLOR_SPRITE().md +85 -0
  47. package/resources/programming/basic_wiki/CONT.md +23 -0
  48. package/resources/programming/basic_wiki/COPY.md +215 -0
  49. package/resources/programming/basic_wiki/COPY_SCREEN.md +61 -0
  50. package/resources/programming/basic_wiki/COS().md +37 -0
  51. package/resources/programming/basic_wiki/CSAVE.md +35 -0
  52. package/resources/programming/basic_wiki/CSNG().md +36 -0
  53. package/resources/programming/basic_wiki/CSRLIN.md +33 -0
  54. package/resources/programming/basic_wiki/DATA.md +47 -0
  55. package/resources/programming/basic_wiki/DEFDBL.md +40 -0
  56. package/resources/programming/basic_wiki/DEFINT.md +40 -0
  57. package/resources/programming/basic_wiki/DEFSNG.md +40 -0
  58. package/resources/programming/basic_wiki/DEFSTR.md +40 -0
  59. package/resources/programming/basic_wiki/DEF_FN.md +49 -0
  60. package/resources/programming/basic_wiki/DEF_USR.md +33 -0
  61. package/resources/programming/basic_wiki/DELETE.md +49 -0
  62. package/resources/programming/basic_wiki/DIM.md +59 -0
  63. package/resources/programming/basic_wiki/DRAW.md +77 -0
  64. package/resources/programming/basic_wiki/ELSE.md +45 -0
  65. package/resources/programming/basic_wiki/END.md +32 -0
  66. package/resources/programming/basic_wiki/EOF().md +36 -0
  67. package/resources/programming/basic_wiki/EQV.md +76 -0
  68. package/resources/programming/basic_wiki/ERASE.md +35 -0
  69. package/resources/programming/basic_wiki/ERL.md +34 -0
  70. package/resources/programming/basic_wiki/ERR.md +143 -0
  71. package/resources/programming/basic_wiki/ERROR.md +145 -0
  72. package/resources/programming/basic_wiki/EXP().md +38 -0
  73. package/resources/programming/basic_wiki/FIELD.md +48 -0
  74. package/resources/programming/basic_wiki/FIX().md +44 -0
  75. package/resources/programming/basic_wiki/FN.md +61 -0
  76. package/resources/programming/basic_wiki/FOR...NEXT.md +80 -0
  77. package/resources/programming/basic_wiki/FRE().md +66 -0
  78. package/resources/programming/basic_wiki/GET_DATE.md +60 -0
  79. package/resources/programming/basic_wiki/GET_TIME.md +34 -0
  80. package/resources/programming/basic_wiki/GOSUB.md +41 -0
  81. package/resources/programming/basic_wiki/GOTO.md +41 -0
  82. package/resources/programming/basic_wiki/HEX$().md +36 -0
  83. package/resources/programming/basic_wiki/IF...GOTO...ELSE.md +55 -0
  84. package/resources/programming/basic_wiki/IF...THEN...ELSE.md +50 -0
  85. package/resources/programming/basic_wiki/IMP.md +83 -0
  86. package/resources/programming/basic_wiki/INKEY$.md +65 -0
  87. package/resources/programming/basic_wiki/INP().md +33 -0
  88. package/resources/programming/basic_wiki/INPUT$().md +51 -0
  89. package/resources/programming/basic_wiki/INPUT.md +93 -0
  90. package/resources/programming/basic_wiki/INSTR().md +44 -0
  91. package/resources/programming/basic_wiki/INT().md +44 -0
  92. package/resources/programming/basic_wiki/INTERVAL.md +57 -0
  93. package/resources/programming/basic_wiki/KEY().md +51 -0
  94. package/resources/programming/basic_wiki/KEY.md +254 -0
  95. package/resources/programming/basic_wiki/LEFT$().md +39 -0
  96. package/resources/programming/basic_wiki/LEN().md +36 -0
  97. package/resources/programming/basic_wiki/LET.md +68 -0
  98. package/resources/programming/basic_wiki/LINE.md +74 -0
  99. package/resources/programming/basic_wiki/LINE_INPUT.md +79 -0
  100. package/resources/programming/basic_wiki/LIST.md +58 -0
  101. package/resources/programming/basic_wiki/LLIST.md +43 -0
  102. package/resources/programming/basic_wiki/LOAD.md +56 -0
  103. package/resources/programming/basic_wiki/LOCATE.md +67 -0
  104. package/resources/programming/basic_wiki/LOG().md +36 -0
  105. package/resources/programming/basic_wiki/LPOS().md +31 -0
  106. package/resources/programming/basic_wiki/LPRINT.md +46 -0
  107. package/resources/programming/basic_wiki/MAXFILES.md +39 -0
  108. package/resources/programming/basic_wiki/MERGE.md +54 -0
  109. package/resources/programming/basic_wiki/MID$().md +72 -0
  110. package/resources/programming/basic_wiki/MOD.md +39 -0
  111. package/resources/programming/basic_wiki/MOTOR.md +46 -0
  112. package/resources/programming/basic_wiki/NEW.md +27 -0
  113. package/resources/programming/basic_wiki/NOT.md +61 -0
  114. package/resources/programming/basic_wiki/OCT$().md +36 -0
  115. package/resources/programming/basic_wiki/ON...GOSUB.md +45 -0
  116. package/resources/programming/basic_wiki/ON...GOTO.md +42 -0
  117. package/resources/programming/basic_wiki/ON_ERROR_GOTO.md +61 -0
  118. package/resources/programming/basic_wiki/ON_INTERVAL_GOSUB.md +54 -0
  119. package/resources/programming/basic_wiki/ON_KEY_GOSUB.md +56 -0
  120. package/resources/programming/basic_wiki/ON_SPRITE_GOSUB.md +41 -0
  121. package/resources/programming/basic_wiki/ON_STOP_GOSUB.md +56 -0
  122. package/resources/programming/basic_wiki/ON_STRIG_GOSUB.md +70 -0
  123. package/resources/programming/basic_wiki/OPEN.md +103 -0
  124. package/resources/programming/basic_wiki/OR.md +75 -0
  125. package/resources/programming/basic_wiki/OUT.md +35 -0
  126. package/resources/programming/basic_wiki/PAD().md +110 -0
  127. package/resources/programming/basic_wiki/PAINT.md +66 -0
  128. package/resources/programming/basic_wiki/PDL().md +53 -0
  129. package/resources/programming/basic_wiki/PEEK().md +44 -0
  130. package/resources/programming/basic_wiki/PLAY().md +58 -0
  131. package/resources/programming/basic_wiki/PLAY.md +196 -0
  132. package/resources/programming/basic_wiki/POINT.md +52 -0
  133. package/resources/programming/basic_wiki/POKE.md +51 -0
  134. package/resources/programming/basic_wiki/POS().md +36 -0
  135. package/resources/programming/basic_wiki/PRESET.md +61 -0
  136. package/resources/programming/basic_wiki/PRINT.md +179 -0
  137. package/resources/programming/basic_wiki/PSET.md +82 -0
  138. package/resources/programming/basic_wiki/PUT_KANJI.md +93 -0
  139. package/resources/programming/basic_wiki/PUT_SPRITE.md +143 -0
  140. package/resources/programming/basic_wiki/READ.md +45 -0
  141. package/resources/programming/basic_wiki/REM.md +42 -0
  142. package/resources/programming/basic_wiki/RENUM.md +78 -0
  143. package/resources/programming/basic_wiki/RESTORE.md +52 -0
  144. package/resources/programming/basic_wiki/RESUME.md +45 -0
  145. package/resources/programming/basic_wiki/RETURN.md +47 -0
  146. package/resources/programming/basic_wiki/RIGHT$().md +39 -0
  147. package/resources/programming/basic_wiki/RND().md +51 -0
  148. package/resources/programming/basic_wiki/RUN.md +56 -0
  149. package/resources/programming/basic_wiki/SAVE.md +65 -0
  150. package/resources/programming/basic_wiki/SCREEN.md +164 -0
  151. package/resources/programming/basic_wiki/SET_ADJUST.md +66 -0
  152. package/resources/programming/basic_wiki/SET_BEEP.md +76 -0
  153. package/resources/programming/basic_wiki/SET_DATE.md +103 -0
  154. package/resources/programming/basic_wiki/SET_PAGE.md +52 -0
  155. package/resources/programming/basic_wiki/SET_PASSWORD.md +75 -0
  156. package/resources/programming/basic_wiki/SET_PROMPT.md +61 -0
  157. package/resources/programming/basic_wiki/SET_SCREEN.md +100 -0
  158. package/resources/programming/basic_wiki/SET_SCROLL.md +55 -0
  159. package/resources/programming/basic_wiki/SET_TIME.md +83 -0
  160. package/resources/programming/basic_wiki/SET_TITLE.md +87 -0
  161. package/resources/programming/basic_wiki/SET_VIDEO.md +49 -0
  162. package/resources/programming/basic_wiki/SGN().md +38 -0
  163. package/resources/programming/basic_wiki/SIN().md +36 -0
  164. package/resources/programming/basic_wiki/SOUND.md +188 -0
  165. package/resources/programming/basic_wiki/SPACE$().md +38 -0
  166. package/resources/programming/basic_wiki/SPC().md +34 -0
  167. package/resources/programming/basic_wiki/SPRITE$().md +50 -0
  168. package/resources/programming/basic_wiki/SPRITE.md +31 -0
  169. package/resources/programming/basic_wiki/SQR().md +32 -0
  170. package/resources/programming/basic_wiki/STICK().md +70 -0
  171. package/resources/programming/basic_wiki/STOP.md +70 -0
  172. package/resources/programming/basic_wiki/STR$().md +37 -0
  173. package/resources/programming/basic_wiki/STRIG().md +82 -0
  174. package/resources/programming/basic_wiki/STRING$().md +42 -0
  175. package/resources/programming/basic_wiki/SWAP.md +62 -0
  176. package/resources/programming/basic_wiki/TAB().md +38 -0
  177. package/resources/programming/basic_wiki/TAN().md +36 -0
  178. package/resources/programming/basic_wiki/TIME.md +59 -0
  179. package/resources/programming/basic_wiki/TROFF.md +21 -0
  180. package/resources/programming/basic_wiki/TRON.md +39 -0
  181. package/resources/programming/basic_wiki/USR().md +66 -0
  182. package/resources/programming/basic_wiki/VAL().md +36 -0
  183. package/resources/programming/basic_wiki/VARPTR().md +50 -0
  184. package/resources/programming/basic_wiki/VDP().md +103 -0
  185. package/resources/programming/basic_wiki/VPEEK().md +46 -0
  186. package/resources/programming/basic_wiki/VPOKE.md +48 -0
  187. package/resources/programming/basic_wiki/WAIT.md +38 -0
  188. package/resources/programming/basic_wiki/WIDTH.md +76 -0
  189. package/resources/programming/basic_wiki/XOR.md +72 -0
  190. package/resources/programming/basic_wiki/_toc.json +871 -0
  191. package/resources/sdcc/sdccman.lyx +81574 -0
  192. package/resources/sdcc/toc.json +77 -0
  193. package/vector-db/index.json +1 -0
  194. /package/resources/msx-unapi/{Ethernet_UNAPI_specification_1.1.md → Ethernet_UNAPI_specification_1_1.md} +0 -0
  195. /package/resources/msx-unapi/{MSX_UNAPI_specification_1.1.md → MSX_UNAPI_specification_1_1.md} +0 -0
  196. /package/resources/processors/{Z80_R800_instruction_set.md → z80_r800_instruction_set.md} +0 -0
@@ -0,0 +1,76 @@
1
+ # SET BEEP
2
+
3
+ ## Effect
4
+
5
+ Modifies the timbre and the volume of the 'beep' sound produced by the PSG with the `BEEP` instruction, a BASIC error situation, the boot sequence or printing of 'bell'-character (07h).
6
+
7
+ This selected sound and volume will be stored to the SRAM of the Real Time Clock (RTC) to prevent settings being lost when machine is powered off.
8
+
9
+ ## Syntax
10
+
11
+ `SET BEEP <Timbre>,<Volume>`
12
+
13
+ A least one parameter needs to be used.
14
+
15
+ Do not put a comma if no parameters are behind.
16
+
17
+ ## Parameters
18
+
19
+ `<Timbre>` is a number to specify the type of `BEEP`:
20
+ - 1: High tone beep (same as on MSX1 machines).
21
+ - 2: Low tone beep.
22
+ - 3: 2-tone beep.
23
+ - 4: 3-tone beep.
24
+
25
+ `<Volume>` is a number to specify the volume of the `BEEP`:
26
+ - 1: Very low.
27
+ - 2: Low.
28
+ - 3: Medium.
29
+ - 4: High.
30
+
31
+ ## Example
32
+
33
+ ```basic
34
+ SET BEEP 3,2
35
+ ```
36
+
37
+ ## Storage in the RTC
38
+
39
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX).
40
+
41
+ The data saved with `SET BEEP` are stored as following (hexadecimal locations in the files):
42
+
43
+ - #25 in blueMSX (#24 in openMSX).
44
+
45
+ |Value|Timbre|Volume|
46
+ |:-:|---|---|
47
+ |00|1, High tone|1, Very low|
48
+ |01|1, High tone|2, Low|
49
+ |02|1, High tone|3, Medium|
50
+ |03|1, High tone|4, High|
51
+ |04|2, Low tone|1, Very low|
52
+ |05|2, Low tone|2, Low|
53
+ |06|2, Low tone|3, Medium|
54
+ |07|2, Low tone|4, High|
55
+ |08|3, 2-tone|1, Very low|
56
+ |09|3, 2-tone|2, Low|
57
+ |0A|3, 2-tone|3, Medium|
58
+ |0B|3, 2-tone|4, High|
59
+ |0C|4, 3-tone|1, Very low|
60
+ |0D|4, 3-tone|2, Low|
61
+ |0E|4, 3-tone|3, Medium|
62
+ |0F|4, 3-tone|4, High|
63
+
64
+ See also the Description of RTC SRAM's Block 2.
65
+
66
+ ## Related to
67
+
68
+ `BEEP`
69
+
70
+ ## Compatibility
71
+
72
+ MSX-BASIC 2.0 or higher
73
+
74
+ ## Source
75
+
76
+ Retrieved from "https://www.msx.org/wiki/SET_BEEP"
@@ -0,0 +1,103 @@
1
+ # SET DATE
2
+
3
+ ## Effect
4
+
5
+ Sets the date and saves it in the SRAM of the Real Time Clock (RTC) on MSX2 and higher machines.
6
+
7
+ ## Syntax
8
+
9
+ `SET DATE <String>[,A]`
10
+
11
+ ## Parameters
12
+
13
+ `<String>` is a string (between quotes) or a string variable that must contain the date in one of formats shown in table below.
14
+
15
+ When `A` is specified, an alarm date is entered and saved. Only the `DD` value is saved in the RTC.
16
+
17
+ _Note: This parameter has effect only on the MSX equipped with an alarm._
18
+
19
+ ## Date format
20
+
21
+ The date is made of three elements: the day `DD`, the month `MM` and the year `YY`. It can be displayed in 3 different formats, the used format depends from the country for which the computer was released.
22
+
23
+ |Date format|Countries|
24
+ |:--|:--|
25
+ |DD/MM/YY|Brazil, Egypt, France, Germany and Kuwait|
26
+ |MM/DD/YY|Argentina, Saudi Arabia, Soviet countries, USA and Spain|
27
+ |YY/MM/DD|Japan and Korea|
28
+
29
+ ## Example
30
+
31
+ ```basic
32
+ SET DATE "10/25/15"
33
+ ```
34
+
35
+ ## Storage in the RTC
36
+
37
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX).
38
+
39
+ The data saved with `SET DATE` are stored as follows (hexadecimal locations in the files):
40
+
41
+ ### #06
42
+
43
+ This byte stores a value from 00 to 06 corresponding to the day of the week, but this feature is not used in the MSX2 (or higher) computers.
44
+
45
+ |Value|Day of the week|
46
+ |:--|:--|
47
+ |00|Sunday|
48
+ |01|Monday|
49
+ |02|Tuesday|
50
+ |03|Wednesday|
51
+ |04|Thursday|
52
+ |05|Friday|
53
+ |06|Saturday|
54
+
55
+ ### #07 and #08
56
+
57
+ These bytes store the day of the current date by starting with the last digit and ending with the first digit of the date.
58
+
59
+ Example for 25: 05 in #07 and 02 in #08
60
+
61
+ ### #09 and #0A
62
+
63
+ These bytes store the month of the current date by starting with the last digit and ending with the first digit of the month.
64
+
65
+ Example for 10: 00 in #09 and 01 in #0A
66
+
67
+ ### #0B and #0C
68
+
69
+ These byte store the difference between the year of the current date and 1980, by starting with the last digit and ending with the first digit of the difference.
70
+
71
+ Example for 2015: 05 in #0B and 03 in #0C (2015 - 1980 = 35)
72
+
73
+ ### #13
74
+
75
+ This byte is conceived to store a value from 00 to 06 corresponding to the alarm day of the week, but this feature is not used in the MSX2 (or higher) computers.
76
+
77
+ ### #14 and #15
78
+
79
+ These bytes store the day of the alarm date by starting with the last digit and ending with the first digit of the date.
80
+
81
+ ### #18
82
+
83
+ This byte stores a value from 00 to 06 corresponding to the formula `R = D MOD 4` with `D` = difference between year of the current date and 1980 and `R` = remainder after division of `D` by 4. When the value of `R` is 00, it's a leap year with an extra day (29 February).
84
+
85
+ See also:
86
+ - Description of RTC SRAM's Block 0 for current data.
87
+ - Description of RTC SRAM's Block 1 for alarm data.
88
+
89
+ ## Utility on emulators
90
+
91
+ Except for testing, it's not really useful to modify the current date with `SET DATE` on an emulator, because it will automatically synchronize the clock of the emulated MSX2 (and higher) machine to the clock of the host system (Windows, Mac OS, Linux, ...) when making some actions (which vary according to the emulator used).
92
+
93
+ ## Related to
94
+
95
+ `GET DATE`, `GET TIME`, `SET TIME`
96
+
97
+ ## Compatibility
98
+
99
+ MSX-BASIC 2.0 or higher
100
+
101
+ ## Source
102
+
103
+ Retrieved from "https://www.msx.org/wiki/SET_DATE"
@@ -0,0 +1,52 @@
1
+ # SET PAGE
2
+
3
+ ## Effect
4
+
5
+ Defines:
6
+ - the page containing the bitmap/YAE/YJK table used to display the foreground.
7
+ - the page containing the one on which the graphics instructions work.
8
+
9
+ `SET PAGE` only works in SCREEN 5 to 8 and 10 to 12 modes.
10
+
11
+ ## Syntax
12
+
13
+ `SET PAGE <DisplayPage>,<ActivePage>`
14
+
15
+ A least one parameter needs to be used.
16
+
17
+ Do not put a comma if no parameters are behind.
18
+
19
+ ## Parameters
20
+
21
+ `<DisplayPage>` is the number of the page containing the bitmap/YAE/YJK table used to display the foreground.
22
+
23
+ To perform interlacing (see `SCREEN`) or horizontal scrolling with two pages (see `SET SCROLL`), it is required to specify an odd page as `<DisplayPage>`.
24
+
25
+ `<ActivePage>` is the number of the page on which the graphics instructions work.
26
+
27
+ Number of possible pages depends of used graphic mode:
28
+
29
+ |SCREEN|VRAM|Pages|
30
+ |---|--:|---|
31
+ |5, 6|64kB|2 (pages 0 and 1)|
32
+ |5, 6|128kB|4 (pages 0 to 3)|
33
+ |7-8, 10-12|64kB|These screens are not available|
34
+ |7-8, 10-12|128kB|2 (pages 0 and 1)|
35
+
36
+ ## Example
37
+
38
+ ```basic
39
+ SET PAGE 0,1
40
+ ```
41
+
42
+ ## Related to
43
+
44
+ `SCREEN`, `SET SCROLL`
45
+
46
+ ## Compatibility
47
+
48
+ MSX-BASIC 2.0 or higher
49
+
50
+ ## Source
51
+
52
+ Retrieved from "https://www.msx.org/wiki/SET_PAGE"
@@ -0,0 +1,75 @@
1
+ # SET PASSWORD
2
+
3
+ ## Effect
4
+
5
+ Sets a system password and stores it in the SRAM of the Real Time Clock (RTC).
6
+
7
+ ## Syntax
8
+
9
+ `SET PASSWORD <Password>`
10
+
11
+ ## Parameter
12
+
13
+ `<Password>` is a string (between quotes) or a string variable. The string can contain between 0 to 255 characters. You will need to enter this pasword in blind mode on the logo screen before being able to use your computer. The password needs to be followed by a pressing of the RETURN key.
14
+
15
+ _Remark: `SET PROMPT` and `SET TITLE` use also such a string of characters. Only the last entered instruction will be saved in the Real Time Clock (RTC)._
16
+
17
+ ## Examples
18
+
19
+ ```basic
20
+ SET PASSWORD "hello!"
21
+ ```
22
+
23
+ ```basic
24
+ SET PASSWORD "" ' Empty password, but you need to press the RETURN key to quit the logo screen
25
+ ```
26
+
27
+ Here's a BASIC program to create and implement a 'simple' password of 255 characters:
28
+ ```basic
29
+ 10 CLEAR 1000
30
+ 20 A$ = ""
31
+ 30 FOR I = 1 TO 255
32
+ 40 A$ = A$ + "1"
33
+ 50 NEXT I
34
+ 60 SET PASSWORD A$
35
+ ```
36
+
37
+ ## Tips
38
+ - To skip the password, you need to boot while pressing simultaneously the `GRAPH` and `STOP` keys.
39
+ - To remove the password, use `SET PROMPT` or `SET TITLE`, eventually with an empty string of characters.
40
+
41
+ ## Storage in the RTC
42
+
43
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX). However, the Russian Yamaha computers with network have an additionnal byte that comes after #26 in blueMSX, so, for these machines, #27 to #34 are replaced by #28 to #35 in blueMSX.
44
+
45
+ The data saved with `SET PASSWORD` are stored as follows (hexadecimal locations in the files):
46
+
47
+ ### #28 in blueMSX (#27 in openMSX)
48
+
49
+ This byte has always the value 01 when the string of characters X$ is used for `SET PASSWORD`.
50
+
51
+ ### #29 to #2B in blueMSX (#28 to #2A in openMSX)
52
+
53
+ If a correct password has been entered, these bytes work as a security to avoid that a power failure introduces a wrong password. They need to have always respectively the values 01, 02 and 03.
54
+
55
+ ### #2C to #2F in blueMSX (#2B to #2E in openMSX)
56
+
57
+ These bytes store the password in form of a 16bit CRC value.
58
+
59
+ ### #30 in blueMSX (#2F in openMSX)
60
+
61
+ When the value is different from 00, the computer will read the optional 'key cartridge value' (a 16 bit password) via I/0 port 7F and compare it with the contents of the 4 previous bytes.
62
+
63
+ See also the Description of RTC SRAM's Block 3.
64
+
65
+ ## Related to
66
+
67
+ `SET PROMPT`, `SET TITLE`
68
+
69
+ ## Compatibility
70
+
71
+ MSX-BASIC 2.0 or higher
72
+
73
+ ## Source
74
+
75
+ Retrieved from "https://www.msx.org/wiki/SET_PASSWORD"
@@ -0,0 +1,61 @@
1
+ # SET PROMPT
2
+
3
+ ## Effect
4
+
5
+ Modifies the standark 'Ok' prompt and saves the new prompt in the SRAM of the Real Time Clock (RTC).
6
+
7
+ ## Syntax
8
+
9
+ `SET PROMPT <Prompt>`
10
+
11
+ ## Parameter
12
+
13
+ `<Prompt>` is a string (between quotes) or a string variable. Only the 6 first characters will be displayed after each MSX-BASIC command in direct mode.
14
+
15
+ _Remark: `SET PASSWORD` and `SET TITLE` use also such a string of characters. Only the last entered instruction will be saved in the Real Time Clock (RTC)._
16
+
17
+ ## Examples
18
+
19
+ ```basic
20
+ SET PROMPT "hello!"
21
+ ```
22
+
23
+ ```basic
24
+ SET PROMPT "" ' to set an empty prompt
25
+ ```
26
+
27
+ ## Storage in the RTC
28
+
29
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX). However, the Russian Yamaha computers with network have an additionnal byte that comes after #26 in blueMSX, so, for these machines, #27 to #34 are replaced by #28 to #35 in blueMSX.
30
+
31
+ The data saved with `SET PROMPT` are stored as follows (hexadecimal locations in the files):
32
+
33
+ ### #28 in blueMSX (#27 in openMSX)
34
+
35
+ This byte has always the value 02 when the string of characters `X$` is used for `SET PROMPT`.
36
+
37
+ ### #29 to #34 in blueMSX (#28 to #33 in openMSX)
38
+
39
+ These bytes store the 6 first characters of the string `X$`, by using 2 bytes for saving the ASCII code of each character.
40
+
41
+ Example with `SET PROMPT "hello!"`:
42
+ - #29: 08 - #2A: 06 - ASCII code of 'h' is 68
43
+ - #2B: 05 - #2C: 06 - ASCII code of 'e' is 65
44
+ - #2D: 0C - #2D: 06 - ASCII code of 'l' is 6C
45
+ - #2E: 0C - #30: 06 - ASCII code of 'l' is 6C
46
+ - #31: 0F - #32: 06 - ASCII code of 'o is 6F
47
+ - #33: 01 - #34: 02 - ASCII code of '!' is 21
48
+
49
+ See also the Description of RTC SRAM's Block 3.
50
+
51
+ ## Related to
52
+
53
+ `SET PASSWORD`, `SET TITLE`
54
+
55
+ ## Compatibility
56
+
57
+ MSX-BASIC 2.0 or higher
58
+
59
+ ## Source
60
+
61
+ Retrieved from "https://www.msx.org/wiki/SET_PROMPT"
@@ -0,0 +1,100 @@
1
+ # SET SCREEN
2
+
3
+ ## Effect
4
+
5
+ Stores in the SRAM of the Real Time Clock (RTC) the parameters corresponding to the `COLOR`, `KEY ON` / `OFF`, `SCREEN` and `WIDTH` instructions that will be used each time that you boot the computer.
6
+
7
+ ## Syntax
8
+
9
+ `SET SCREEN`
10
+
11
+ ## Saved parameters
12
+
13
+ - SCREEN mode: 0 or 1
14
+ - Interlace mode: 0 to 3
15
+ - WIDTH: 1 to 80
16
+ - Foreground color: 1 to 15
17
+ - Background color: 1 to 15
18
+ - Border color: 1 to 15
19
+ - Keylist display: ON or OFF
20
+ - Keyclick: ON or OFF
21
+ - Printertype: MSX or No MSX _(Note: When Arabic BASIC is enabled, this parameter is extended - see `SCREEN`)_
22
+ - Cassette writing speed: 1200 or 2400 baud
23
+
24
+ _Remark: If you use `SET SCREEN` when you are on `SCREEN 9`, the computer will display the MSX-BASIC screen after booting in `SCREEN 9` instead of `SCREEN 0` or `1`; the parameters of the other screens, especially `SCREEN 0` and `SCREEN 1`, will also be modified._
25
+
26
+ ## Storage in the RTC
27
+
28
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX). It is a little different in blueMSX because this emulator stores an extra setting in #1A, that probably checks if the computer is normally working.
29
+
30
+ The data saved with `SET SCREEN` are stored as follows (hexadecimal locations in the files):
31
+
32
+ ### #1E in blueMSX (#1D in openMSX)
33
+
34
+ |Value|SCREEN|Displaymode|
35
+ |---|---|---|
36
+ |00|0|0, Normal|
37
+ |01|1|0, Normal|
38
+ |02|0|1, Interlaced|
39
+ |03|1|1, Interlaced|
40
+ |04|0|2, Normal, alternating even/uneven|
41
+ |05|1|2, Normal, alternating even/uneven|
42
+ |06|0|3, Interlaced, alternating even/uneven|
43
+ |07|1|3, Interlaced, alternating even/uneven|
44
+
45
+ ### #1F and #20 in blueMSX (#1E and #1F in openMSX)
46
+
47
+ These bytes stores the WIDTH value with the formula (16 x value in #20) + value in #1F
48
+
49
+ Examples:
50
+ - Width 40 - value 08 in #1F and value 02 in #20 - (16 x 2) + 8 = 40
51
+ - Width 80 - value 00 in #1F and value 05 in #20 - (16 x 5) + 0 = 80
52
+
53
+ ### #21 in blueMSX (#20 in openMSX)
54
+
55
+ This byte stores the foreground color (00 to 0F).
56
+
57
+ ### #22 in blueMSX (#21 in openMSX)
58
+
59
+ This byte stores the background color (00 to 0F).
60
+
61
+ ### #23 in blueMSX (#22 in openMSX)
62
+
63
+ This byte stores the border color (00 to 0F).
64
+
65
+ ### #24 in blueMSX (#23 in openMSX)
66
+
67
+ |Value|KEY|Keyclick|Printer|Cassette speed|
68
+ |---|---|---|---|---|
69
+ |00|OFF|No|MSX|1200 baud|
70
+ |01|ON|No|MSX|1200 baud|
71
+ |02|OFF|Yes|MSX|1200 baud|
72
+ |03|ON|Yes|MSX|1200 baud|
73
+ |04|OFF|No|No MSX|1200 baud|
74
+ |05|ON|No|No MSX|1200 baud|
75
+ |06|OFF|Yes|No MSX|1200 baud|
76
+ |07|ON|Yes|No MSX|1200 baud|
77
+ |08|OFF|No|MSX|2400 baud|
78
+ |09|ON|No|MSX|2400 baud|
79
+ |0A|OFF|Yes|MSX|2400 baud|
80
+ |0B|ON|Yes|MSX|2400 baud|
81
+ |0C|OFF|No|No MSX|2400 baud|
82
+ |0D|ON|No|No MSX|2400 baud|
83
+ |0E|OFF|Yes|No MSX|2400 baud|
84
+ |0F|ON|Yes|No MSX|2400 baud|
85
+
86
+ _Remark: In Korean Daewoo CPC-300, using a value corresponding to 'No MSX Printer" has as effect to skip the built-in software MSX-TUTOR when booting._
87
+
88
+ See also the Description of RTC SRAM's Block 2.
89
+
90
+ ## Related to
91
+
92
+ `COLOR`, `KEY`, `SCREEN`, `WIDTH`
93
+
94
+ ## Compatibility
95
+
96
+ MSX-BASIC 2.0 or higher
97
+
98
+ ## Source
99
+
100
+ Retrieved from "https://www.msx.org/wiki/SET_SCREEN"
@@ -0,0 +1,55 @@
1
+ # SET SCROLL
2
+
3
+ ## Effect
4
+
5
+ Waits until current screen refresh is done and performs horizontal and vertical scrolling of the screen contents on any text or graphic screen on MSX2+ and higher machines. It includes the Kanji text modes.
6
+
7
+ _Notes:_
8
+ - `SET SCROLL` can also be used on screen 9, but only if you add the version 4 of Hangul BASIC created by Korean MSX fan Plaire to an MSX2+ or turbo R machine.
9
+ - Scrolled positions of the screen return to their initial conditions if you reset the screen mode by using `SCREEN` or `CALL KANJI`.
10
+
11
+ ## Syntax
12
+
13
+ `SET SCROLL <X>,<Y>,<MaskMode>,<PageMode>`
14
+
15
+ _Note: Each parameter is optional except the last specified. Do not put a comma after this parameter._
16
+
17
+ ## Parameters
18
+
19
+ `<X>` is a value between 0 and 511 to specify the starting column of an horizontal scrolling.
20
+
21
+ `<Y>` is a value between 0 and 255 to specify the starting line of a vertical scrolling.
22
+
23
+ When not specified, the value of `<x>` and `<y>` is the last specified value (initial value is 0).
24
+
25
+ _Note: In screens 0 and 9 and Kanji text modes, all these values are also accepted, but it's recommended to use small values._
26
+
27
+ `<MaskMode>` allows to specify what happens with the left dots of Bitmap screens (8 dots in screens 5, 8, 10 to 12; 16 dots in screens 6 and 7) when making an horizontal scrolling:
28
+ - 0 = are displayed (default value).
29
+ - 1 = are hidden.
30
+
31
+ `<PageMode>` allows to specify the mode to be used in screens 5 to 8 and 10 to 12:
32
+ - 0 = only one page will be used for the horizontal scrolling (default value).
33
+ - 1 = two sequential pages are treated as a connected page for the horizontal scrolling.
34
+
35
+ To execute a two page sequential display, the displayed page must be an odd numbered page.
36
+
37
+ In screens 5 and 6, it will associate pages 0 and 1 OR 2 and 3. In screens 7, 8, 10 to 12, it will associate pages 0 and 1.
38
+
39
+ ## Example
40
+
41
+ ```basic
42
+ SET SCROLL 50, 100, 1, 1
43
+ ```
44
+
45
+ ## Related to
46
+
47
+ `CALL KANJI`, `SCREEN`, `SET ADJUST`, `SET PAGE`
48
+
49
+ ## Compatibility
50
+
51
+ MSX-BASIC 3.0 or higher
52
+
53
+ ## Source
54
+
55
+ Retrieved from "https://www.msx.org/wiki/SET_SCROLL"
@@ -0,0 +1,83 @@
1
+ # SET TIME
2
+
3
+ ## Effect
4
+
5
+ Sets the time and saves it in the SRAM of the Real Time Clock (RTC) on MSX2 and higher machines.
6
+
7
+ ## Syntax
8
+
9
+ `SET TIME <String>[,A]`
10
+
11
+ ## Parameters
12
+
13
+ `<String>` is a string (between quotes) or a string variable that will contain the time in the format _"HH:MM:SS"_. HH for the hour digits, MM for the minutes digits and SS for the seconds digits.
14
+
15
+ When `A` is specified, an alarm time is entered and saved. Only the HH and MM values are saved in the RTC.
16
+
17
+ _Note: The parameter `A` has effect only on the MSX equipped with an alarm._
18
+
19
+ ## Example
20
+
21
+ ```basic
22
+ SET TIME "21:18:43"
23
+ ```
24
+
25
+ ## Storage in the RTC
26
+
27
+ The Real Time Clock (RTC) is a small storage of 53 bytes in blueMSX (52 bytes in openMSX).
28
+
29
+ The data saved with `SET TIME` are stored as follows (hexadecimal locations in the files):
30
+
31
+ ### #00 and #01
32
+
33
+ These bytes store the seconds of the current time by starting with the last digit and ending with the first digit of the seconds.
34
+
35
+ Example for 43 seconds: 03 in #00 and 04 in #01
36
+
37
+ ### #02 and #03
38
+
39
+ These bytes store the minutes of the current time by starting with the last digit and ending with the first digit of the minutes.
40
+
41
+ Example for 18 minutes: 08 in #02 and 01 in #03
42
+
43
+ ### #04 and #05
44
+
45
+ These bytes store the hours of the current time by starting with the last digit and ending with the first digit of the hours.
46
+
47
+ Example for 21 hours: 01 in #04 and 02 in #05
48
+
49
+ ### #0F and #10
50
+
51
+ These bytes store the minutes of the alarm time by starting with the last digit and ending with the first digit of the minutes.
52
+
53
+ ### #11 and #12
54
+
55
+ These bytes store the hours of the alarm time by starting with the last digit and ending with the first digit of the hours.
56
+
57
+ ### #17
58
+
59
+ This byte stores how the hours are counted:
60
+ - from 0 to 11 (AM), and then from 20 to 31 (PM) if stored value is 00.
61
+ - from 0 to 23 if stored value is 01.
62
+
63
+ On the MSX2 and higher computers, the 24 hour mode is used.
64
+
65
+ See also:
66
+ - Description of RTC SRAM's Block 0 for current data
67
+ - Description of RTC SRAM's Block 1 for alarm data
68
+
69
+ ## Utility on emulators
70
+
71
+ Except for testing, it's not really useful to modify the current time with `SET TIME` on an emulator, because it will automatically synchronize the clock of the emulated MSX2 (and higher) machine to the clock of the host system (Windows, Mac OS, Linux, ...) when making some actions (which vary according to the emulator used).
72
+
73
+ ## Related to
74
+
75
+ `GET DATE`, `GET TIME`, `SET DATE`
76
+
77
+ ## Compatibility
78
+
79
+ MSX-BASIC 2.0 or higher
80
+
81
+ ## Source
82
+
83
+ Retrieved from "https://www.msx.org/wiki/SET_TIME"
@@ -0,0 +1,87 @@
1
+ # SET TITLE
2
+
3
+ ## Effect
4
+
5
+ Specifies the title and the colors of the initial logo screen at system startup, and saves these parameters in the SRAM of the Real Time Clock (RTC).
6
+
7
+ ## Syntax
8
+
9
+ `SET TITLE <Title>,<LogoScreenColors>`
10
+
11
+ _Notes:_
12
+ - At least one parameter needs to be used.
13
+ - Parameters can not end with a comma alone.
14
+
15
+ ## Parameters
16
+
17
+ `<Title>` is a string (between quotes) or a alphanumeric variable. Only the 6 first characters will be displayed below the logo screen and the computer will wait for the pressing on a key to quit this screen.
18
+
19
+ _Note: `SET PASSWORD` and `SET PROMPT` use also such a string of characters. Only the last entered instruction will be saved in the Real Time Clock (RTC).
20
+
21
+ `<LogoScreenColors>` is a number between 1 and 4 to specify the type of logo screen:
22
+
23
+ |Logo screen|Background|MSX logo|Logo box|
24
+ |---|---|---|---|
25
+ |1|Blue|White|Black|
26
+ |2|Green|White|Medium Blue|
27
+ |3|Medium Red|White|Purple|
28
+ |4|Light Orange|White|Red|
29
+
30
+ _Note: If you change only the logo screen mode, you are free to use later `SET PASSWORD` or `SET PROMPT` without losing the new colors for the logo screen._
31
+
32
+ ## Examples
33
+
34
+ ```basic
35
+ SET TITLE "hello!" ' change only the title text
36
+ ```
37
+
38
+ ```basic
39
+ SET TITLE ,3 ' change only the logo screen mode
40
+ ```
41
+
42
+ ## Storage in the RTC
43
+
44
+ The Real Time Clock (RTC) is a small storage of generally 53 bytes in blueMSX (52 bytes in openMSX). However, the Russian Yamaha computers with network have an additionnal byte that comes after #26 in blueMSX, so, for these machines, #27 to #34 are replaced by #28 to #35 in blueMSX.
45
+
46
+ The data saved with SET TITLE are stored as follows (hexadecimal locations in the files):
47
+
48
+ ### #26 in blueMSX (#25 in openMSX)
49
+
50
+ |Value|Logo screen|Background|MSX logo|Logo box|
51
+ |---|---|---|---|
52
+ |00|1|Blue|White|Black|
53
+ |01|2|Green|White|Medium Blue|
54
+ |02|3|Medium Red|White|Purple|
55
+ |03|4|Light Orange|White|Red|
56
+
57
+ ### #28 in blueMSX (#27 in openMSX)
58
+
59
+ This byte has always the value 00 when the string of characters `X$` is used for `SET TITLE`.
60
+
61
+ ### #29 to #34 in blueMSX (#28 to #33 in openMSX)
62
+
63
+ These bytes store the 6 first characters of the string X$, by using 2 bytes for saving the ASCII code of each character.
64
+
65
+ Example with SET TITLE "hello!":
66
+ - #29: 08 - #2A: 06 - ASCII code of 'h' is 68
67
+ - #2B: 05 - #2C: 06 - ASCII code of 'e' is 65
68
+ - #2D: 0C - #2D: 06 - ASCII code of 'l' is 6C
69
+ - #2E: 0C - #30: 06 - ASCII code of 'l' is 6C
70
+ - #31: 0F - #32: 06 - ASCII code of 'o is 6F
71
+ - #33: 01 - #34: 02 - ASCII code of '!' is 21
72
+
73
+ See also:
74
+ - Description of RTC SRAM's Block 2 for the startup logo screen colors.
75
+ - Description of RTC SRAM's Block 3 for the title.
76
+
77
+ ## Related to
78
+
79
+ `SET PASSWORD`, `SET PROMPT`
80
+
81
+ ## Compatibility
82
+
83
+ MSX-BASIC 2.0 or higher
84
+
85
+ ## Source
86
+
87
+ Retrieved from "https://www.msx.org/wiki/SET_TITLE"