MSX Datapack wiki化計画

5章 BIOS

 5.1 追加されたエントリ

 MSX turbo Rでは、BIOSについても、CPUの切り換えやPCM関連のエントリが追加されています。
 以下では、それぞれのエントリについて説明します。

5.1.1 CPU切り換え

 CPUの切り換えのBIOSには、CHGCPUとGETCPUというエントリがあります。

CHGCPU(0180H/MAIN)
機 能

CPUを切り換えます。

コール手順


・モード
 CPUのモードを指定します。

モード意味
00 Z80モード
01 R800 ROM モード
10 R800 DRAMモード
11 システム予約

・LED
 LEDの状態を指定します。

LED 意味
0 LEDを変化させない
1 LEDを変化させる

戻り値

なし

変更レジスタ

なし

解 説

 Aレジスタの内容によって、CPUを切り替えます。もし、Aレジスタのビット7が1なら、変更したCPUにあわせて、CPUの状態を表すLEDを変化(点灯するか消灯するか)させます。Aレジスタのビット7が0なら、LEDを変化させません。
 変更前のCPUのレジスタの内容は、Rレジスタ以外は、変更後のCPUに受け継がれます。変更後は、割り込みは許可されます。

注 意

 CPUの切り換えは、システムコントロールLSI(S1990)内の設定を変えるだけです。そのため、Z80やR800 ROMモードに切り替えた後、空いたDRAMエリアの内容を書き換えて、R800 DRAMモードにすると、システムは暴走します。DRAMへのシステムソフトウェアの転送は、システム起動時にのみ行っています。

GETCPU(0183H/MAIN)
機 能

現在、どちらのCPUが動作しているかを調べます

コール手順
なし
戻り値
A
意味
0 Z80モード
1 R800 ROM モード
2 R800 DRAMモード

変更レジスタ

F

5.1.2 PCM

 PCMデータの録音・再生のBIOSには、PCMPLYとPCMRECというエントリがあります。

PCMPLY(0186H/MAIN)
機 能

PCMのデータを再生します。

コール手順

・サンプリングレート
 サンプリングレートを指定します。
サンプリングレート意味(KHz)
00 15.75
01 7.875
10 5.25
11 3.9375
・メモリ
 再生するデータをおくメモリを指定します。
メモリ意味
0 メインメモリ
1 VRAM

HLPCMデータのアドレス
VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで設定します。Eレジスタが最上位バイトです。
BCPCMデータの長さ
VRAM指定時は、DレジスタとBCレジスタとをあわせて、3バイトで設定します。Dレジスタが最上位バイトです。
戻り値

キャリーフラグ

意味
0 正常終了
1 異常終了
A 異常終了要因
1 サンプリング周波数指定誤り
2 [STOP]キーによる中断
HL 中断時のデータアドレス
VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで返します。Eレジスタが最上位バイトです。

変更レジスタ

すべて

注 意

 Z80モードの時には、自動的にR800 ROMモードに切り換えて実行し、終わるとZ80モードに戻ります。
PCMを再生しているあいだは、割り込みは禁止されます。なお、[STOP]キーが押されると実行を中断します。
このBIOSは、実際にはページ1(04000H〜07FFFH)におかれたプログラムで実行されます。したがって、データをメインメモリにおくときは、必ず08000H番地以降でなければなりません。

PCMREC(0189H/MAIN)
機 能

PCMのデータを録音します。

コール手順


・サンプリングレート
 サンプリングレートを指定します。

サンプリングレート意味(KHz)
00 15.75
01 7.875
10 5.25
11 3.9375

・圧縮
圧縮するかしないかを指定します。

圧縮意味
0 圧縮しない
1 圧縮する

・トリガーレベル
 録音のきっかけとなる音の大きさを指定します。

・メモリ
 録音するメモリを指定します。

メモリ意味
0 メインメモリ
1 VRAM

HLPCMデータのアドレス
VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで設定します。Eレジスタが最上位バイトです。
BCPCMデータの長さ
VRAM指定時は、DレジスタとBCレジスタとをあわせて、3バイトで設定します。Dレジスタが最上位バイトです。
戻り値

キャリーフラグ

意味
0 正常終了
1 異常終了
A 異常終了要因
1 サンプリング周波数指定誤り
2 [STOP]キーによる中断
HL 中断時のデータアドレス
VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで返します。Eレジスタが最上位バイトです。

変更レジスタ

すべて

注意

 Z80モードの時には、自動的にR800 ROMモードに切り換えて実行し、終わるとZ80モードに戻ります。
Z80モードやR800 ROMモードのときに、サンプリングレートを15.75KHzに指定すると、「サンプリング周波数誤り」エラーになります。録音中は、割り込み禁止されます。なお[STOP]キーが押されると実行を中断します。
メインメモリに録音するときは、PCMPLYと同じように、データを録音する番地に注意して下さい。

圧縮
再生時には、常にデータは圧縮されているものと見なして再生します。
録音時には、圧縮スイッチにより圧縮処理の有無を指定できます。ただし、録音データが0のときは、常に1に読みかえて録音します。

5.2 変更されたエントリ

 MSX turbo Rの仕様により、内容が変わったエントリもあります。
 以下では、それぞれについて変更された点を説明します。

GTPDL(00DEH/MAIN)
機 能

パドル機能はなくなりました。常に0が返されます。

TAPION(00E1H/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

TAPIN(00E4H/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

TAPIOF(00E7H/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

TAPOON(00EAH/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

TAPOUT(00EDH/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

TAPOOF(00F0H/MAIN)
機 能

常にキャリーフラグを立て、エラーとしてリターンします。

STMOTR(00F3H/MAIN)
機 能

何もせずにリターンします。

GTPAD(00DBH/MAIN)
機 能

ライトペン機能はなくなりました。Aレジスタに8〜11を入れてコールすると、常に0が返されます。

NEWPAD(01ADH/SUB)
機 能

ライトペン機能はなくなりました。Aレジスタに8〜11を入れてコールすると、常に0が返されます。

RDRES(017AH/MAIN)
機 能

システム予約です。

WRRES(017DH/MAIN)
機 能

システム予約です。