@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,391 @@
1
+ # CALL
2
+
3
+ ## Effect
4
+
5
+ `CALL` is an instruction reserved to extend the existing BASIC instructions.
6
+
7
+ _Notes:_
8
+ - If you have more then one extension providing an extended instruction with the same name, only the instruction provided by the ROM in a lower numbered slot will be taken into account by the BASIC interpreter.
9
+ - See the existing extended instructions for MSX-BASIC.
10
+
11
+ ## Syntax
12
+
13
+ `CALL <Instruction> (<Parameter>,<Parameter>...)`
14
+
15
+ _Note: `CALL` can be replaced by the character underscore `_`. A space is not required after this character._
16
+
17
+ ## Parameters
18
+
19
+ `<Instruction>` is the name of extended instruction.
20
+
21
+ `<Parameter>` can take different forms (numeric variable, value, string, etc) and several parameters can follow. Do not put parentheses if there is no parameter.
22
+
23
+ ## Example of CALL-instruction implementation in ROM programs
24
+
25
+ When ROM cartridge has standard "AB"-header, the slot attributes will be automatically filled during boot time.
26
+
27
+ ```assembly
28
+ ; Example of String handling in BASIC CALL-instructions
29
+ ; Made By: NYYRIKKI 16.11.2011
30
+ ; Edit by: zPasi 13.3.2014: added a call to FRESTR, to free the temporary string in
31
+ ; routine EVALTXTPARAM
32
+
33
+ OUTPUT "PRINT.ROM"
34
+ ORG #4000
35
+  
36
+ ;---------------------------
37
+ ; External variables & routines
38
+ CHPUT EQU #A2
39
+ CALBAS EQU #159
40
+ ERRHAND EQU #406F
41
+ FRMEVL EQU #4C64
42
+ FRESTR EQU #67D0
43
+ CHRGTR EQU #4666
44
+ VALTYP EQU #F663
45
+ USR EQU #F7F8
46
+ PROCNM EQU #FD89
47
+  
48
+ ;---------------------------
49
+ ; ROM-file header
50
+ DEFW #4241,0,CALLHAND,0,0,0,0,0
51
+  
52
+ ;---------------------------
53
+ ; General BASIC CALL-instruction handler
54
+ CALLHAND:
55
+ PUSH HL
56
+ LD HL,CMDS ; Table with "_" instructions
57
+ .CHKCMD:
58
+ LD DE,PROCNM
59
+ .LOOP: LD A,(DE)
60
+ CP (HL)
61
+ JR NZ,.TONEXTCMD ; Not equal
62
+ INC DE
63
+ INC HL
64
+ AND A
65
+ JR NZ,.LOOP ; No end of instruction name, go checking
66
+ LD E,(HL)
67
+ INC HL
68
+ LD D,(HL)
69
+ POP HL ; routine address
70
+ CALL GETPREVCHAR
71
+ CALL .CALLDE ; Call routine
72
+ AND A
73
+ RET
74
+  
75
+ .TONEXTCMD:
76
+ LD C,0FFH
77
+ XOR A
78
+ CPIR ; Skip to end of instruction name
79
+ INC HL
80
+ INC HL ; Skip address
81
+ CP (HL)
82
+ JR NZ,.CHKCMD ; Not end of table, go checking
83
+ POP HL
84
+ SCF
85
+ RET
86
+  
87
+ .CALLDE:
88
+ PUSH DE
89
+ RET
90
+  
91
+ ;---------------------------
92
+ CMDS:
93
+ ; List of available instructions (as ASCIIZ) and execute address (as word)
94
+ DEFB "UPRINT",0 ; Print upper case string
95
+ DEFW _UPRINT
96
+  
97
+ DEFB "LPRINT",0 ; Print lower case string
98
+ DEFW _LPRINT
99
+  
100
+ DEFB 0 ; No more instructions
101
+  
102
+ ;---------------------------
103
+ _UPRINT:
104
+ CALL EVALTXTPARAM ; Evaluate text parameter
105
+ PUSH HL
106
+ CALL GETSTRPNT
107
+ .LOOP
108
+ LD A,(HL)
109
+ CALL .UCASE
110
+ CALL CHPUT ;Print
111
+ INC HL
112
+ DJNZ .LOOP
113
+  
114
+ POP HL
115
+ OR A
116
+ RET
117
+  
118
+ .UCASE:
119
+ CP "a"
120
+ RET C
121
+ CP "z"+1
122
+ RET NC
123
+ AND %11011111
124
+ RET
125
+
126
+ ;---------------------------
127
+ _LPRINT:
128
+ CALL EVALTXTPARAM ; Evaluate text parameter
129
+ PUSH HL
130
+ CALL GETSTRPNT
131
+ .LOOP
132
+ LD A,(HL)
133
+ CALL .LCASE
134
+ CALL CHPUT ;Print
135
+ INC HL
136
+ DJNZ .LOOP
137
+  
138
+ POP HL
139
+ OR A
140
+ RET
141
+  
142
+ .LCASE:
143
+ CP "A"
144
+ RET C
145
+ CP "Z"+1
146
+ RET NC
147
+ OR %00100000
148
+ RET
149
+
150
+ ;---------------------------
151
+ GETSTRPNT:
152
+ ; OUT:
153
+ ; HL = String Address
154
+ ; B = Lenght
155
+  
156
+ LD HL,(#F7F8)
157
+ LD B,(HL)
158
+ INC HL
159
+ LD E,(HL)
160
+ INC HL
161
+ LD D,(HL)
162
+ EX DE,HL
163
+ RET
164
+  
165
+ EVALTXTPARAM:
166
+ CALL CHKCHAR
167
+ DEFB "(" ; Check for (
168
+ LD IX,FRMEVL
169
+ CALL CALBAS ; Evaluate expression
170
+ LD A,(VALTYP)
171
+ CP 3 ; Text type?
172
+ JP NZ,TYPE_MISMATCH
173
+ PUSH HL
174
+ LD IX,FRESTR ; Free the temporary string
175
+ CALL CALBAS
176
+ POP HL
177
+ CALL CHKCHAR
178
+ DEFB ")" ; Check for )
179
+ RET
180
+  
181
+ CHKCHAR:
182
+ CALL GETPREVCHAR ; Get previous basic char
183
+ EX (SP),HL
184
+ CP (HL) ; Check if good char
185
+ JR NZ,SYNTAX_ERROR ; No, Syntax error
186
+ INC HL
187
+ EX (SP),HL
188
+ INC HL ; Get next basic char
189
+  
190
+ GETPREVCHAR:
191
+ DEC HL
192
+ LD IX,CHRGTR
193
+ JP CALBAS
194
+  
195
+ TYPE_MISMATCH:
196
+ LD E,13
197
+ DB 1
198
+  
199
+ SYNTAX_ERROR:
200
+ LD E,2
201
+ LD IX,ERRHAND ; Call the Basic error handler
202
+ JP CALBAS
203
+  
204
+ ;---------------------------
205
+ DS #8000-$
206
+ ```
207
+
208
+ ## Example of CALL-instruction implementation in BIN-file
209
+
210
+ When a `CALL-instruction` extension is loaded after boot, user must put the address of `CALL` instruction handler to 4th & 5th byte of memory bank and mark that the extension is available (bit 5) to the slot attribute table manually.
211
+
212
+ Please note that if the program is erased from memory the next `CALL` instruction execution may crash the computer if the bit from table is not manually cleared.
213
+
214
+ The correct address inside slot attribute table can be calculated using formula:
215
+ `ADDRESS = Main slot * 16 + Sub slot * 4 + Memory Bank + #FCC9`
216
+
217
+ ```assembly
218
+ OUTPUT "X.BIN"
219
+  
220
+ ; USAGE:
221
+ ; BLOAD "X.BIN",R
222
+ ; CALL X == CLS
223
+  
224
+ SLTATR EQU #FCC9
225
+ PROCNM EQU #FD89
226
+ CLS EQU #C3
227
+  
228
+ ; BASIC header:
229
+  
230
+ DB #FE
231
+ DW BEGIN,END,START
232
+  
233
+ ORG #C004
234
+ BEGIN:
235
+ ; Call handler pointer in Bank 3 fixed offset 4
236
+ DW CALLHAND
237
+ START:
238
+ LD A,(#F344) ; SlotID of RAM in Bank 3 (#C000-#FFFF)
239
+ ; This variable is ready available only when disk drive is present.
240
+ AND A
241
+ JP M,.SKIP ; SlotID has SubSlot information
242
+ AND 3
243
+ .SKIP
244
+ AND 15
245
+ LD E,A
246
+ RLCA
247
+ RLCA
248
+ RLCA
249
+ RLCA
250
+ OR E
251
+ AND 60
252
+ LD D,0
253
+ LD E,A
254
+ LD HL,SLTATR+3 ; +3 for Bank 3
255
+ ADD HL,DE
256
+ SET 5,(HL) ; Set bit 5 to enable CALL handler
257
+ RET
258
+  
259
+ CALLHAND:
260
+  
261
+ PUSH HL
262
+ LD HL,PROCNM
263
+ LD A,(HL)
264
+ CP "X"
265
+ JR NZ,.NOT_FOR_ME
266
+ INC HL
267
+ LD A,(HL)
268
+ AND A ; Commands are zero terminated
269
+ JR NZ,.NOT_FOR_ME
270
+ CALL CLS
271
+ POP HL
272
+ AND A ; Clear carry to inform CALL is handled.
273
+ RET
274
+  
275
+ .NOT_FOR_ME:
276
+  
277
+ POP HL
278
+ SCF
279
+ RET
280
+ END:
281
+ ```
282
+
283
+ ## List of MSX tR default CALL instructions sorted by slots
284
+
285
+ ### Slot #0-2 (MSX-Music)
286
+
287
+ |||
288
+ |---|:-:|
289
+ |AUDREG||
290
+ |APPEND MK|*|
291
+ |APEEK|*|
292
+ |APOKE|*|
293
+ |BGM||
294
+ |CONT MK|*|
295
+ |COPY PCM|*|
296
+ |CONVP|*|
297
+ |CONVA|*|
298
+ |INMK|*|
299
+ |KEY ON|*|
300
+ |KEY OFF|*|
301
+ |LOAD PCM|*|
302
+ |MDR||
303
+ |MK VOICE|*|
304
+ |MK VEL|*|
305
+ |MK VOL|*|
306
+ |MK TEMPO|*|
307
+ |MK STAT|*|
308
+ |MK PCM|*|
309
+ |MUSIC||
310
+ |REC PCM|*|
311
+ |STOPM||
312
+ |SET PCM|*|
313
+ |SAVE PCM|*|
314
+ |SYNTHE|*|
315
+ |TRANSPOSE||
316
+ |TEMPER||
317
+ |VOICE||
318
+ |VOICE COPY||
319
+ |PAUSE||
320
+ |PLAY||
321
+ |PLAY PCM|*|
322
+ |PCM PLAY||
323
+ |PCM REC||
324
+ |PCM FREQ|*|
325
+ |PCM VOL|*|
326
+ |PLAY MK|*|
327
+ |PITCH||
328
+
329
+ (*) Detected, but not supported (causes _illegal function call_).
330
+
331
+
332
+ ### Slot #3-1 (Kanji ROM)
333
+
334
+ ||
335
+ |---|
336
+ |PALETTE|
337
+ |CLS|
338
+ |AKCNV|
339
+ |JIS|
340
+ |SJIS|
341
+ |KACNV|
342
+ |KEXT|
343
+ |KINSTR|
344
+ |KLEN|
345
+ |KMID|
346
+ |KNJ|
347
+ |KTYPE|
348
+ |KANJI|
349
+ |KANJI0|
350
+ |KANJI1|
351
+ |KANJI2|
352
+ |KANJI3|
353
+ |ANK|
354
+
355
+ ### Slot #3-2 (Disk ROM)
356
+
357
+ |||
358
+ |---|:-:|
359
+ |SYSTEM||
360
+ |FORMAT||
361
+ |CHDRV|*|
362
+ |CHDIR|*|
363
+ |MKDIR|*|
364
+ |RMDIR|*|
365
+ |RAMDISK|*|
366
+
367
+ (*) Only when DOS2 is active.
368
+
369
+ ### Slot #3-3 (Panasonic Mapper)
370
+
371
+ |||
372
+ |---|:-:|
373
+ |MWP|*|
374
+ |HIRO|**|
375
+
376
+ (*) Only in Panasonic `FS-A1GT`
377
+ (**) Only in Panasonic `FS-A1ST`
378
+
379
+ `CALL MENU` in Panasonic 2+ machines.
380
+
381
+ ## Related to
382
+
383
+ `ATTR$()`, `CMD`, `IPL`, `USR`
384
+
385
+ # Compatibility
386
+
387
+ MSX-BASIC 1.0 or higher
388
+
389
+ ## Source
390
+
391
+ Retrieved from "https://www.msx.org/wiki/CALL"
@@ -0,0 +1,40 @@
1
+ # CALL ADJUST
2
+
3
+ ## Effect
4
+
5
+ Enables the internal lightpen interface.
6
+
7
+ It is required to use `CALL ADJUST` before using `PAD()` with the values 20 to 23.
8
+
9
+ This instruction enables the lightpen interface (bit6 of the VDP R#8) but not the lightpen interrupts (bit5 of the VDP R#0), and sets the system variables XOFFS=23 and YOFFS=0.
10
+
11
+ Since it doesn't enable the light pen interrupts, this command is not enough to make `GTPAD`/`PAD()` functional. The lightpen interrupts will have to be enabled via VDP register write.
12
+
13
+ This instruction is available **only** with the MSX2 computers manufactured by _Daewoo_:
14
+ - AVT CPC-300
15
+ - Bawareth Perfect MSX2
16
+ - Daewoo CPC-300
17
+ - Daewoo CPC-400
18
+ - Daewoo CPC-400S
19
+ - Talent DPC-300
20
+ - Wandy CPC-300
21
+
22
+ It is also maybe available with the _Sanyo MPC-X Graphic Expander Unit_ and the _Sanyo MPC-27_ computer.
23
+
24
+ ## Syntax
25
+
26
+ `CALL ADJUST`
27
+
28
+ # Related to
29
+
30
+ `PAD()`
31
+
32
+ ## Compatibility
33
+
34
+ Only MSX2 computers manufactured by _Daewoo_.
35
+
36
+ This instruction is part of Hangul BASIC on the Korean MSX2 computers.
37
+
38
+ ## Source
39
+
40
+ Retrieved from "https://www.msx.org/wiki/CALL_ADJUST"
@@ -0,0 +1,28 @@
1
+ # CALL IMPOSE
2
+
3
+ ## Effect
4
+
5
+ Sets superimposition mode.
6
+
7
+ ## Syntax
8
+
9
+ `CALL IMPOSE (<Mode>)`
10
+
11
+ ## Parameter
12
+
13
+ `<Mode>` is a value between 0 and 2 to set video mode.
14
+ - 0 for computer screen (internal synchronization).
15
+ - 1 for superimpose (composite video).
16
+ - 2 for external video.
17
+
18
+ ## Related to
19
+
20
+ `COLOR`, `SCREEN`, `SET VIDEO`
21
+
22
+ ## Compatibility
23
+
24
+ P-BASIC
25
+
26
+ ## Source
27
+
28
+ Retrieved from "https://www.msx.org/wiki/CALL_IMPOSE"
@@ -0,0 +1,26 @@
1
+ # CALL OPTIONS
2
+
3
+ ## Effect
4
+
5
+ Launches a special screen where you can select printer options:
6
+
7
+ - width (many possibilities).
8
+ - printer type (MSX, Arabized MSX, Arabic only, Neutral).
9
+
10
+ When you confirm your choices with the RETURN key, you go back to the calling program.
11
+
12
+ ## Syntax
13
+
14
+ `CALL OPTIONS`
15
+
16
+ ## Related to
17
+
18
+ `CALL CHCOPY`, `CALL HCOPY`
19
+
20
+ ## Compatibility
21
+
22
+ Arabic BASIC 2.01 and higher (only Sakhr MSX2)
23
+
24
+ ## Source
25
+
26
+ Retrieved from "https://www.msx.org/wiki/CALL_OPTIONS"
@@ -0,0 +1,119 @@
1
+ # CALL PAUSE
2
+
3
+ `CALL PAUSE` is a standard instruction for _MSX turbo R_, but it is also an extended instruction available in _ChakkariCopy Basic_, _DM-System2 Basic_ and _Hitachi Basic_.
4
+
5
+ # CALL PAUSE as standard MSX-BASIC instruction
6
+
7
+ ## Effect
8
+
9
+ Stops execution of a BASIC program for the specified time.
10
+
11
+ ## Syntax
12
+
13
+ `CALL PAUSE (<Time>)`
14
+
15
+ ## Parameter
16
+
17
+ `<Time>` is waiting time exprimed in milliseconds. The value can be between 0 and 65535.
18
+
19
+ _Note: You can interrupt the execution during the waiting period by pressing `CTRL`+`STOP`._
20
+
21
+ ## Example
22
+
23
+ ```basic
24
+ CALL PAUSE(1000)
25
+ ```
26
+
27
+ ## Using
28
+
29
+ When `CALL PAUSE` is being executed, interrupt is enabled. Even when `CALL PAUSE` is being executed, you can quit the program by the `CTRL` + `STOP` keys.
30
+
31
+ This instruction is used when you want to take a timing without being affected by the CPU execution speed.
32
+
33
+ ## Related to
34
+
35
+ `TIME`, `WAIT`
36
+
37
+ ## Compatibility
38
+
39
+ MSX-BASIC 4.0 or higher
40
+
41
+ # CALL PAUSE in ChakkariCopy Basic
42
+
43
+ ## Effect
44
+
45
+ Puts the cartridge into `PAUSE` mode.
46
+
47
+ _Note: the paused program can only be resumed by pressing the `PAUSE` button. It cannot be resumed by software._
48
+
49
+ ## Syntax
50
+
51
+ `CALL PAUSE`
52
+
53
+ ## Related to
54
+
55
+ `CALL SCHANGE`
56
+
57
+ ## Using
58
+
59
+ In the `PAUSE` mode it's only possible to print a hardcopy by pressing the `COPY` button or to resume execution by pressing the `PAUSE` button. It's the same operation as pressing the `PAUSE` button on the cartridge.
60
+
61
+ ## Compatibility
62
+
63
+ ChakkariCopy BASIC
64
+
65
+ # CALL PAUSE in DM-System2 Basic
66
+
67
+ ## Effect
68
+
69
+ Stops execution of a BASIC program for the specified time.
70
+
71
+ _Note: You can interrupt the execution during the waiting period by pressing `CTRL`+`STOP`._
72
+
73
+ ## Syntax
74
+
75
+ `CALL PAUSE (<Time>)`
76
+
77
+ ## Parameter
78
+
79
+ `<Time>` is waiting time exprimed in milliseconds. The value can be between 0 and 65535.
80
+
81
+ ## Example
82
+
83
+ `CALL PAUSE(1000)`
84
+
85
+ ## Using
86
+
87
+ When the `CALL PAUSE` is being executed, interrupt is enabled. Even when the `CALL PAUSE` is being executed, you can quit the program by the `CTRL` + `STOP` keys.
88
+
89
+ This instruction is used when you want to take a timing without being affected by the CPU execution speed. It's exactly the same instruction as the standard `CALL PAUSE` for _MSX Turbo R_, but can be used also on _MSX2_ and _MSX2+_.
90
+
91
+ ## Related to
92
+
93
+ `CALL INTWAIT`, `CALL VDPWAIT`, `CALL WAIT`
94
+
95
+ ## Compatibility
96
+
97
+ DM-System2 BASIC
98
+
99
+ # CALL PAUSE in Hitachi Basic
100
+
101
+ ## Effect
102
+
103
+ Puts the built-in data reader of the _Hitachi MB-H2_ computer in pause mode.
104
+
105
+ ## Syntax
106
+
107
+ `CALL PAUSE`
108
+
109
+ ## Related to
110
+
111
+ `CALL FF`, `CALL PLAY`, `CALL REC`, `CALL REW`, `CALL STOP`
112
+
113
+ ## Compatibility
114
+
115
+ Hitachi BASIC version 1
116
+
117
+ ## Source
118
+
119
+ Retrieved from "https://www.msx.org/wiki/CALL_PAUSE"
@@ -0,0 +1,60 @@
1
+ # CALL PCMPLAY
2
+
3
+ ## Effect
4
+
5
+ Plays a PCM audio file on a _MSX turbo R_ computer. It must be previously loaded in computer RAM or VRAM with `BLOAD` or in an array with `COPY`.
6
+
7
+ If the computer mode is `Z80` mode, the mode is automatically switched to the `R800` mode before the execution, and after finishing the `Z80` mode is restored.
8
+
9
+ If the `STOP` key is pushed during the playing, the program execution is quit and returns to BASIC.
10
+
11
+ ## Syntaxes
12
+
13
+ `CALL PCMPLAY(@<StartAddress>,<EndAddress>,<SamplingFrequency>,S)`
14
+
15
+ `CALL PCMPLAY(<Array>,<length>,<SamplingFrequency>)`
16
+
17
+ The `S` and `<Length>` parameters are optional. Parameters can not end with a comma alone.
18
+
19
+ ## Parameters
20
+
21
+ `<StartAddress>` and `<EndAddress>` are used to specify the area of the computer RAM (or VRAM). The `<start address>` needs always to be preceded by `@`.
22
+
23
+ `<SamplingFrequency>` is a number between 0 and 3 to choose one of the four available sampling frequencies:
24
+
25
+ ```
26
+ 0 = 15.75 KHz
27
+ 1 = 7.875 KHz
28
+ 2 = 5.25 KHz
29
+ 3 = 3.9375 KHz
30
+ ```
31
+
32
+ If you specify the sampling rate to 15.75 KHz under `Z80` mode or `R800` ROM mode, you get _"Illegal function call"_ error message.
33
+
34
+ The parameter `S` is used to play from VRAM instead of RAM. This can be done in any screen mode but only the active pages are valid when the screen mode is higher than 4.
35
+
36
+ `<Array>` must be a numeric type variable array.
37
+
38
+ `<Length>` can generally be omitted. When specified, the playing of an array will be stopped when this length is reached.
39
+
40
+ _Note: The format of the data is absolute binary and 1 to 255 is a normal data. 0 is a special data and causes 0 level (127) to be outputted by a number of the cycles specified by 1 byte proceeding the 0._
41
+
42
+ ## Example
43
+
44
+ ```basic
45
+ 10 CLEAR 300,&HB000
46
+ 20 BLOAD"PCMTEST.BIN"
47
+ 30 CALL PCMPLAY(@&HB000,&HDFFF,1)
48
+ ```
49
+
50
+ ## Related to
51
+
52
+ `BLOAD`, `CALL PCMREC`, `COPY`
53
+
54
+ ## Compatibility
55
+
56
+ MSX-BASIC 4.0 or higher
57
+
58
+ ## Source
59
+
60
+ Retrieved from "https://www.msx.org/wiki/CALL_PCMPLAY"