MSX Datapack wiki化計画

Appendix A.6 スーパーインポーズの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{include unfinished_page}}

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[A.5 拡張I/Oポート|Appendix A.5 拡張I/Oポート]]                                   ,{BSIZE:0|RIGHT}[[A.7 サンプルプログラム|Appendix A.7 サンプルプログラム]]                        →

!!A.6.1 ハードウェア

1.I/OポートF5H番地のビット3
 内部I/OポートF7H番地の入力を許可します。このビットが1のとき、本体内部のI/OポートF7H番地のリード(ビット3)を有効にします(A.6.1 3.外部ポートの存在の判定参照)。
 この機能はI/Oポートのデータバスの衝突を避けるためのもので、他の方法により衝突が避けられる場合には、必ずしもこの機能を使う必要はありません。

1.I/OポートF7H番地
{{svg 図A.10.svg}}
図A.10 I/OポートF7Hのビット構成

■各ビットの詳細
 ビット7とビット6には、VDPレジスタ#9のビット5(S1)、ビット4(S0)の否定値が出力されます。したがって、ビット7,6の値と表示モードとの対応は、表A.3のようになります。

表A.3 F7Hのビット7,6と表示モードの対応
,ビット7,ビット6,表示モード
,0,0,未定義
,0,1,テレビ画面(同期モードはNTSCコンパチブル。Ysが常時アクティブ)
,1,0,コンピュータ画面・スーパーインポーズ*(同期モードはNTSCコンパチブル)
,1,1,コンピュータ画面(同期モードはTMS9918コンパチブル)

*コンピュータ画面とスーパーインポーズの切り換えはTPビットで行う。TPビット(VDPレジスタ#8のビット5)を1にすると、透明色の時にYs信号がアクティブになる。

*Ymコントロール(ビット5)、AVコントロール(ビット4)
 マルチコネクタの出力を制御します。「0」の時にEIAJ TTC-003に規定する論理レベル0を、「1」の時に論理レベル1を出力します。

*外部ビデオ検出(ビット3、入力時)
 ビデオ入力の有無を検出します。ビット2で選択された入力端子に入力がないときに「0」を、入力があるときに「1」を返します。ビット7、ビット6で設定されるモードには関係しません。

*同期モード切り替え(ビット3、出力時)
 「0」のときに内部同期、「1」のときに外部同期になります。

*ビデオ入力選択(ビット2)
 ビデオおよびオーディオの入力端子を選択します。「0」のときにRGBマルチコネクタを、「1」のときにRCAコネクタを選択します。

*外部音声混合 左チャンネル(ビット1)、右チャンネル(ビット0)
 外部オーディオ入力のミキシングを指定します。「0」のときにミキシングONとし、コンピュータの音と外部入力の音を混合します。「0」のときにミキシングOFFとし、コンピュータの音のみを出力します。

3.外部ポートの存在の判定
 本体外部に接続するF7Hポートはリード時にビット7に「0」を返さなければなりません。外部にF7Hポートが接続されているときにこのポートを読むと、バスのプルアップ抵抗により「1」の入力が期待されます。
 したがって、MSX2、MSX2+のシステムソフトウェアは初期設定時にF7Hポートを読み、図A.11のビットパターンが返らなかったときに、外部F7Hポートはないと判断し、F5Hポートのビット3を「1」にセットします。

{{svg 図A.11.svg}}
図A.11 初期設定時に判定されるF7Hポートの値

4.初期設定
 MSX2、MSX2+のシステムソフトウェアにより、F7H番地の初期設定が行われるので、ハードウェアによる初期設定は規定しません。
!!A.6.2 ソフトウェア
1.I/OポートF7H番地の初期設定
 MSX2、MSX2+のシステムソフトウェアは、I/OポートのF7H番地を表A.4のように初期化します。

表A.4 システムソフトウェアによるF7Hの初期化
,ビット,値,意味
,7,1,コンピュータ画面を表示する(TMS9918コンパチブルモード)。
,6,1,
,5,0,フルトーンで表示する。
,4,1,外部入力を選択する。
,3,0,内部同期を選択する。
,2,0,RGBマルチコネクタから入力する。
,1、0,1,外部音声信号を混合しない。

 これらのビットは、MSX BASIC version 2.0意向でサポートされる、SET VIDEOステートメントで操作することができます。(「第2部3章 BASIC」参照)。

2.各表示モードにおける標準設定値
 各表示モードの標準設定値は表A.5のように定めます。

表A.5 各モードの標準設定値
,表示モード,7,6,5,4,3,2,1 0,(ビット)
,コンピュータ,1,1,0,1,0,*1,1,
,ビデオ RGBマルチ,0,1,0,1,0,0,0,
,ビデオ RCA,0,1,0,1,0,1,0,
,スーパーRGBマルチ,1,0,*2,1,1,0,*2,
,スーパーRCA,1,0,*2,1,1,1,*2,

*1 任意
*2 「0」を基準とする。このモードに設定するときは、必要な場合にのみ対応するビットを「1」にしたパラメータをセットする。

 各ビットをビット単位でセット・リセット可能にするために、ワークエリアの【AVCSAV(FAF7H)】にF7Hポートに出力した値を保存します。新たにF7Hポートの状態を変えるときは、このポートの内容の該当するビットを変更した後、【AVCSA[[V|BugTrack-datapack/74]](FAF7H)】とF7Hポートに出力します。

3.BASICのSET VIDEO命令とI/OポートF7Hの関係
■BASIC
 SET VIDEO MODE,[Ym,[CB,[同期,[音声,[ビデオ入力,[AVコントロール]]]]]]

■I/Oポート F7H
{{svg 図A.12.svg}}

表A.6 MODEレジスタとS1、S0、CBの関係
表A.7 V9938のMODEレジスタ
表A.8 Ymとビット5
表A.9 同期とビット3
表A.10 音声とビット1、0
表A.11 ビデオ入力とビット2
表A.12 AVコントロールとビット4
!!A.6.3 その他
 RGBマルチコネクタのAVコントロール、Ys、Ym信号出力は、本体の電源が切れているときに、EIAJ TTC-003に規定する論理レベル0でなければなりません。この条件を守らなければ、AV対応テレビの映像が正しく表示されないことがあります。

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[A.5 拡張I/Oポート|Appendix A.5 拡張I/Oポート]]                                   ,{BSIZE:0|RIGHT}[[A.7 サンプルプログラム|Appendix A.7 サンプルプログラム]]                        →