,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[4章 BASIC]] ,{BSIZE:0|RIGHT}[[6章 マッパーRAMセグメント]] → !!5.1 追加されたエントリ  MSX turbo Rでは、BIOSについても、CPUの切り換えやPCM関連のエントリが追加されています。  以下では、それぞれのエントリについて説明します。 !5.1.1 CPU切り換え  CPUの切り換えのBIOSには、CHGCPUとGETCPUというエントリがあります。 ::CHGCPU(0180H/MAIN) ,機 能{SIZE:100|CENTER} CPUを切り換えます。 ,コール手順{SIZE:100|CENTER} {{svg 図P25.svg}} ・モード  CPUのモードを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0|SIZE:300} ,モード,意味 ,{c},{BSIZE:0},{BSIZE:0} ,00 ,Z80モード ,01 ,R800 ROM モード ,10 ,R800 DRAMモード ,11 ,システム予約 ・LED  LEDの状態を指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0|SIZE:300} ,LED ,意味 ,{c},{BSIZE:0},{BSIZE:0} ,0 ,LEDを変化させない ,1 ,LEDを変化させる ,戻り値{SIZE:100|CENTER} なし ,変更レジスタ{SIZE:100|CENTER} なし ,解 説{SIZE:100|CENTER}  Aレジスタの内容によって、CPUを切り替えます。もし、Aレジスタのビット7が1なら、変更したCPUにあわせて、CPUの状態を表すLEDを変化(点灯するか消灯するか)させます。Aレジスタのビット7が0なら、LEDを変化させません。  変更前のCPUのレジスタの内容は、Rレジスタ以外は、変更後のCPUに受け継がれます。変更後は、割り込みは許可されます。 ,注 意{SIZE:100|CENTER}  CPUの切り換えは、システムコントロールLSI(S1990)内の設定を変えるだけです。そのため、Z80やR800 ROMモードに切り替えた後、空いたDRAMエリアの内容を書き換えて、R800 DRAMモードにすると、システムは暴走します。DRAMへのシステムソフトウェアの転送は、システム起動時にのみ行っています。 ::GETCPU(0183H/MAIN) ,機 能{SIZE:100|CENTER} 現在、どちらのCPUが動作しているかを調べます ,コール手順{SIZE:100|CENTER} なし ,戻り値{SIZE:100|CENTER} A ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:60},{BSIZE:1 0 1 0|SIZE:300} ,値 ,意味 ,{c},{BSIZE:0},{BSIZE:0} ,0 ,Z80モード ,1 ,R800 ROM モード ,2 ,R800 DRAMモード ,変更レジスタ{SIZE:100|CENTER} F !5.1.2 PCM  PCMデータの録音・再生のBIOSには、PCMPLYとPCMRECというエントリがあります。 ::PCMPLY(0186H/MAIN) ,機 能{SIZE:100|CENTER} PCMのデータを再生します。 ,コール手順 {{svg 図P27.svg}} ・サンプリングレート  サンプリングレートを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0|SIZE:200},{BSIZE:1 0|SIZE:300} ,サンプリングレート,意味(KHz) ,{c},{BSIZE:0},{BSIZE:0} ,00 ,15.75 ,01 ,7.875 ,10 ,5.25 ,11 ,3.9375 ・メモリ  再生するデータをおくメモリを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:80},{BSIZE:1 0 1 0|SIZE:300} ,メモリ,意味 ,{c},{BSIZE:0},{BSIZE:0} ,0 ,メインメモリ ,1 ,VRAM ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:60},{BSIZE:0} ,HL,PCMデータのアドレス , ,VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで設定します。Eレジスタが最上位バイトです。 ,BC,PCMデータの長さ , ,VRAM指定時は、DレジスタとBCレジスタとをあわせて、3バイトで設定します。Dレジスタが最上位バイトです。 ,戻り値{SIZE:100|CENTER} キャリーフラグ ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0} ,値 ,意味 , , ,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0} ,0 ,正常終了{COLS:3}, , ,1 ,異常終了{COLS:3}, , , ,A ,異常終了要因{COLS:2}, , , ,1 ,サンプリング周波数指定誤り , , ,2 ,[STOP]キーによる中断 , ,HL ,中断時のデータアドレス{COLS:2}, , , ,VRAM指定時は、EレジスタとHLレジスタとをあせて、3バイトで返します。Eレジスタが最上位バイトです。{COLS:2}, ,変更レジスタ{SIZE:100|CENTER} すべて ,注 意{SIZE:100|CENTER}  Z80モードの時には、自動的にR800 ROMモードに切り換えて実行し、終わるとZ80モードに戻ります。 PCMを再生しているあいだは、割り込みは禁止されます。なお、[STOP]キーが押されると実行を中断します。 このBIOSは、実際にはページ1(04000H〜07FFFH)におかれたプログラムで実行されます。したがって、データをメインメモリにおくときは、必ず08000H番地以降でなければなりません。 ::PCMREC(0189H/MAIN) ,機 能{SIZE:100|CENTER} PCMのデータを録音します。 ,コール手順{SIZE:100|CENTER} {{svg 図P29.svg}} ・サンプリングレート  サンプリングレートを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0|SIZE:200},{BSIZE:1 0|SIZE:300} ,サンプリングレート,意味(KHz) ,{c},{BSIZE:0},{BSIZE:0} ,00 ,15.75 ,01 ,7.875 ,10 ,5.25 ,11 ,3.9375 ・圧縮 圧縮するかしないかを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:80},{BSIZE:1 0 1 0|SIZE:300} ,圧縮,意味 ,{c},{BSIZE:0},{BSIZE:0} ,0 ,圧縮しない ,1 ,圧縮する ・トリガーレベル  録音のきっかけとなる音の大きさを指定します。 ・メモリ  録音するメモリを指定します。 ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0 1 0|SIZE:80},{BSIZE:1 0 1 0|SIZE:300} ,メモリ,意味 ,{c},{BSIZE:0},{BSIZE:0} ,0 ,メインメモリ ,1 ,VRAM ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:60},{BSIZE:0} ,HL,PCMデータのアドレス , ,VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで設定します。Eレジスタが最上位バイトです。 ,BC,PCMデータの長さ , ,VRAM指定時は、DレジスタとBCレジスタとをあわせて、3バイトで設定します。Dレジスタが最上位バイトです。 ,戻り値{SIZE:100|CENTER} キャリーフラグ ,{t},{BSIZE:1 0} ,{c},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0} ,値 ,意味 , , ,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0} ,0 ,正常終了{COLS:3}, , ,1 ,異常終了{COLS:3}, , , ,A ,異常終了要因{COLS:2}, , , ,1 ,サンプリング周波数指定誤り , , ,2 ,[STOP]キーによる中断 , ,HL ,中断時のデータアドレス{COLS:2}, , , ,VRAM指定時は、EレジスタとHLレジスタとをあせて、3バイトで返します。Eレジスタが最上位バイトです。{COLS:2}, ,変更レジスタ{SIZE:100|CENTER} すべて ,注意{SIZE:100|CENTER}  Z80モードの時には、自動的にR800 ROMモードに切り換えて実行し、終わるとZ80モードに戻ります。 Z80モードやR800 ROMモードときに、サンプリングレートを15.75KHzに指定すると、「サンプリング周波数誤り」エラーになります。録音中は、割り込み禁止されます。なお[STOP]キーが押されると実行を中断します。 メインメモリに録音するときは、PCMPLYと同じように、データを録音する番地に注意して下さい。 '''圧縮''' 再生時には、常にデータは圧縮されているものと見なして再生します。 録音時には、圧縮スイッチにより圧縮処理の有無を指定できます。ただし、録音データが0のときは、常に1に読みかえて録音します。 !5.2 変更されたエントリ  MSX turbo Rの仕様により、内容が変わったエントリもあります。  以下では、それぞれについて変更された点を説明します。 ::GTPDL(00DEH/MAIN) ,機 能{SIZE:100|CENTER} パドル機能はなくなりました。常に0が返されます。 ::TAPION(00E1H/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::TAPIN(00E4H/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::TAPIOF(00E7H/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::TAPOON(00EAH/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::TAPOUT(00EDH/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::TAPOOF(00F0H/MAIN) ,機 能{SIZE:100|CENTER} 常にキャリーフラグを立て、エラーとしてリターンします。 ::STMOTR(00F3H/MAIN) ,機 能{SIZE:100|CENTER} 何もせずにリターンします。 ::GTPAD(00DBH/MAIN) ,機 能{SIZE:100|CENTER} ライトペン機能はなくなりました。Aレジスタに8〜11を入れてコールすると、常に0が返されます。 ::NEWPAD(01ADH/SUB) ,機 能{SIZE:100|CENTER} ライトペン機能はなくなりました。Aレジスタに8〜11を入れてコールすると、常に0が返されます。 ::RDRES(017AH/MAIN) ,機 能{SIZE:100|CENTER} システム予約です。 ::WRRES(017DH/MAIN) ,機 能{SIZE:100|CENTER} システム予約です。 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[4章 BASIC]] ,{BSIZE:0|RIGHT}[[6章 マッパーRAMセグメント]] →