MSX Datapack wiki化計画

5章 BIOSの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
,{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},
,   ,      ,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},
,   ,      ,VRAM指定時は、EレジスタとHLレジスタとをあわせて、3バイトで返します。Eレジスタが最上位バイトです。{COLS:2},

,変更レジスタ{SIZE:100|CENTER}
すべて

,注意{SIZE:100|CENTER}
 Z80モードの時には、自動的にR800 ROMモードに切り換えて実行し、終わるとZ80モードに戻ります。
Z80モードやR800 ROMモードときに、サンプリングレートを15.75KHzに指定すると、「サンプリング周波数誤り」エラーになります。録音中は、割り込み禁止されます。なお[STOP]キーが押されると実行を中断します。
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セグメント]]                                                     →