,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[3章 システムの動作モード]] ,{BSIZE:0|RIGHT}[[5章 BIOS]] → ,{c B0},{BSIZE:0} ,{c B1},{BSIZE:1|SIZE:100|CENTER} !!4.1 追加された命令  MSX turbo Rでは、PCM命令などの機能が追加されたので、BASICでもそれらの機能が使えるよう、CALL PAUSE、CALL PCMPLAY、CALL PCMREC命令が追加されました。  以下ではそれぞれの命令について説明します。 ::CALL PAUSE ,機 能{SIZE:100|CENTER}  指定された時間だけポーズします。 ,書 式{SIZE:100|CENTER} CALL PAUSE(ポーズ時間) ,文 例{SIZE:100|CENTER} CALL PAUSE(1000) 1秒間ポーズ ,解 説{SIZE:100|CENTER}  指定された時間だけBASICプログラムの実行を停止します。ポーズ時間の単位はミリ秒です。CALL PAUSE実行中は、割り込みは許可されています。CALL PAUSE実行中でも、[CTRL] + [STOP]キーでプログラムを中断することができます。CPUの実行速度の影響を受けないタイミングをとるときに使います。 ::CALL PCMPLAY ,機 能{SIZE:100|CENTER}  PCM音を再生します。 ,書 式{SIZE:100|CENTER} ,{t},{BSIZE:0} ,{c},{BSIZE:0},{BSIZE:0} ,"CALL PCMPLAY(@開始番地, 終了番地, サンプリングレート)    ",'''メインRAMからの再生''' ,"CALL PCMPLAY(@開始番地, 終了番地, サンプリングレート,S)",'''VRAMからの再生''' ,"CALL PCMPLAY(配列変数名, [長さ], サンプリングレート)",'''配列変数からの再生''' ,文 例{SIZE:100|CENTER} CALL PCMPLAY(@&HB000,&HBFFF,1) メインメモリの&HB000番地から&HBFFF番地をPCMデータとして再生します。サンプリングレートは7.875KHzとします。 ,解 説{SIZE:100|CENTER}  メインRAMまたはVRAMの内容をPCMデータとして、指定されたサンプリング周波数で再生します。 ・サンプリングレート  サンプリングレートを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0} ,値 ,サンプリングレート(KHz) ,{c},{BSIZE:0|SIZE:50},{BSIZE:0|SIZE:200} ,0 ,15.75 ,1 ,7.875 ,2 ,5.25 ,3 ,3.9375 ・長さ  省略できます。省略したときは、配列変数の内容すべてを再生します。  データの形式はアブソリュートバイナリで、1〜255が通常のデータです。0は特殊なデータで、0の後に続く1バイトで指定された回数分、0レベル(127)を出力します。 ,注 意{SIZE:100|CENTER}  Z80モードのときには、自動的にR800モードに切り換えて実行し、終わるとZ80モードに戻ります。再生中に、STOPキーが押されるとプログラムの実行を中断し、BASICに戻ります。 MSX-BASICでは、&Hで表現できる16進数は&H0000〜&HFFFFの4桁であることと、&H8000〜&HFFFFは負の数であることに注意してください。これは、メインRAMを指定する際には問題にはなりませんが、VRAMを指定するときには注意が必要です。例えば、VRAMの後半の64KBを再生するには、 CALL PCMPLAY(@65536,131071,2,S) のように指定しなければなりません。(131071=65536×2-1)。これを、 CALL PCMPLAY(@65536,131071,2,S) のように指定すると、「Overflow」エラーになります。また、 CALL PCMPLAY(@&HFFFF+1,&H1FFFF×2+1,2,S) は、&HFFFF+1=-1+1=0と&HFFFF×2+1=-1×2+1=-1=&HFFFFとで、CALL PCMPLAY(@0,&HFFFF,2,S)と同じになります。 ::CALL PCMREC ,機 能{SIZE:100|CENTER} 音声をPCM録音します。 ,書 式{SIZE:100|CENTER} CALL PCMREC(@開始番地, 終了番地, サンプリングレート [,[トリガレベル][,圧縮スイッチ]]) '''メインRAMへの録音''' CALL PCMREC(@開始番地, 終了番地, サンプリングレート ,[トリガレベル],[圧縮スイッチ],S) '''VRAMへの録音''' CALL PCMREC(配列変数名, [長さ], サンプリングレート [,[トリガレベル][, 圧縮スイッチ]]) '''配列変数への録音''' ,文 例{SIZE:100|CENTER} CLEAR 300,&HB000 CALL PCMREC(@&HB000,&HBFFF,1) メインメモリの&HB000番地から&HBFFF番地にPCM録音します。サンプリングレートは7.875KHzとします。 ,解 説{SIZE:100|CENTER}  音声をPCM方式で、指定された周波数でサンプリングし、メインRAM、VRAM、または配列変数に録音します。 ・サンプリングレート  サンプリングレートを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0|SIZE:200} ,値 ,サンプリングレート(KHz) ,{c},{BSIZE:0},{BSIZE:0} ,0 ,15.75 ,1 ,7.875 ,2 ,5.25 ,3 ,3.9375 ・トリガレベル  録音開始時の入力レベルを指定します。値の範囲は、0〜127です。省略されたときや0のときは、ただちに録音を開始します。 ・圧縮スイッチ  無音データ圧縮を行うかどうかを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0|SIZE:200} ,値 ,意味 ,{c},{BSIZE:0},{BSIZE:0} ,省略,圧縮しない ,0 ,圧縮しない ,1 ,圧縮する ・長さ  省略できます。省略したときは、配列変数の内容すべてに録音します。  データの形式はアブソリュートバイナリで、1〜255が通常のデータです。0レベル付近(126〜128)のデータが2つ以上連続したときは、0とその連続した回数を記録することによって、データを圧縮できます。この圧縮を無音データ圧縮といいます。 ,注 意{SIZE:100|CENTER}  Z80モードのときには、自動的にR800モードに切り換えて実行し、終わるとZ80モードに戻ります。また、Z80モードやR800 ROMモードのときに、サンプリングレートを15.75KHzに指定すると、「Illegal function call」エラーになります。録音中に、[STOP]キーが押されるとプログラムの実行を中断し、BASICに戻ります。 VRAMへ録音するときは、CALL PCMPLAYと同じように、指定する番地に注意して下さい。 !!4.2 変更された命令  MSX turbo Rでは、MSX-DOS2が標準搭載され、カセットインターフェイスが削除されたので、ファイル名をパラメータとする命令の仕様が変わりました。  以下では、それぞれの命令について説明します。 ::BLOAD/BSAVE/LOAD/MERGE/OPEN/RUN/SAVE ,解説{SIZE:100|CENTER}  これらの命令で、ファイル名に「CAS:」を指定すると、「Bad file name」エラーになります。また、MSX-DOS2で、ディスクファイルを指定するときは、ファイル名をフルパスで指定することができます。 ::COPY/FILES/KILL/LFILES/NAME ,解説{SIZE:100|CENTER}  MSX-DOS2に対応しました。MSX-DOS2を使っているときは、ファイル名をフルパスで指定することができます。 !!4.3 削除された命令  MSX turbo Rでは、カセットインターフェイスが削除されました。それにともなって、カセットテープ関連の命令が削除されました。  以下では、それぞれの命令について説明します。 ::CLOAD/CSAVE/MOTOR ,解説{SIZE:100|CENTER}  これらの命令を実行すると、「Syntax error」になります。 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[3章 システムの動作モード]] ,{BSIZE:0|RIGHT}[[5章 BIOS]] →