Last Modified at 1998/02/25.

PC9821 Software Technical Data


注意: このページに書かれている内容は TAKE52が独自に調査したものであり、 情報の確度については保証できません。 このページの情報に関しましては 各自の責任においてご利用下さい。 また、このページの内容についてメーカ等に問い合わせをすることはご遠慮下さい。


Contents(目次)

Tech PC98 Home(TOP)へ戻る Technical Data Pageへ戻る


How to Set/Get Plug and Play Port Data (PnP ポートの取得/設定)

 WSS(Windows Sound System)搭載の 9821には PnP(Plug and Play)設定ポートがあり、 PnPに対応している周辺デバイスの 使用ポートアドレス および ポート有効/無効 を ソフトウェアによって制御できます。 以下は拙作 Read_PnP.COM によって調査した結果です。 あなたの 98には未知の PnPポートがありますでしょうか。 報告をお待ちしていますm(_ _)m。

PnP Port  bit 
0C24h Write 7 周辺デバイスが使用する I/Oポートの制御
 0: 無効化
 1: 有効化
 6  PnP アドレス設定ポート(0C2Bh, 0C2Dh)の制御1
 0: 無効化(Read/Write不可)
 1: 有効化(制御2による)
 5  PnP アドレス設定ポート(0C2Bh, 0C2Dh)の制御2
 0: Read Only(アドレス値の読み出しのみ可)
   周辺デバイスが使用する I/Oポートへの書き込み不可
 1: Read/Write可(アドレス再設定可)
   周辺デバイスが使用する I/Oポートへの書き込み可
 4-0  制御する周辺デバイスIDの指定
 00000b: (通常 0F40h) WSSコントロールポート
 00001b: (通常 A460h) WSS SoundID
 00010b: (通常 0F48h) 不明
 00011b: (通常 FFFFh) 未使用?
 00100b: (通常 0188h) YMF288音源
 00101b: (通常 0F4Ah) Canbe/ValueStarミキサー
 00110b: (通常 548Eh) たぶん OPL3
 00111b: (通常 FFFFh) 未使用?
 01000b: (通常 1480h) ゲーム(ジョイスティック)ポート
 01001b: (通常 1488h) MIDI OUT?ポート
 01010b: (通常 148Ch) Canbe / ValueStar / 118音源 MIDI
 01011b: (通常 0480h) 不明
 01100b: 以下、予約(たぶん^^;)
   (
    )
ただし、機種によってデコードする bit数が違います。
   PC-9821Xシリーズは下位 2bitのみデコード
   PC-9821Cf/Cx/Cx2/Cb2 は下位 3bitのみデコード
   118系音源内蔵機は 下位 4bitのみデコード
 
0C24h Read 7 最後に制御した PnP器機の有効/無効識別
 0: 無効化
 1: 有効化
 6, 5  最後に出力した値
 4-0  最後に制御した周辺デバイスのID
ただし、デコードしていない bitは常に 1
 
0C2Bh R/W 7-0 PnP アドレス設定ポート1(下位 8bit)
周辺デバイスが使用する I/Oポートアドレス(下位 8bit)
 
0C2Dh R/W 7-0 PnP アドレス設定ポート1(上位 8bit)
周辺デバイスが使用する I/Oポートアドレス(上位 8bit)

Tech PC98 Home(TOP)へ戻る Technical Data Pageへ戻る 目次へ戻る


How to Set/Get Canbe/ValueStar Mixer
(Canbe/ValueStarミキサー制御方法)

 Canbe/ValuStar/118系音源内蔵の 9821には WSSとは別の音量ミキサーがあります(そして このミキサーの出力は WSSの AUX1へ入力されます)。 以下は拙作 Read_F4A.COM によって調査した結果です。 あなたの 98には未知の ミキサーがありますでしょうか。
報告をお待ちしていますm(_ _)m。

Port  bit 
0F4Ah R/W 7-0 音量制御する周辺デバイスID
PnP により移動可  00h: ?
 01h: ?
 02h: 内蔵モデム(ステレオ)? 左音量
 03h: 内蔵モデム(ステレオ)? 右音量
 30h: FM音源 左音量
 31h: FM音源 右音量
 32h: CD-ROM 左音量
 33h: CD-ROM 右音量
 34h: TV 左音量
 35h: TV 右音量
 36h: 内蔵モデム(モノラル)?
 
0F4Bh R/W 7  ミュート設定
PnP により移動可  0:ミュートしない
 1:ミュートする
 6-5未使用
 4-0音量設定
 00000b:最大
  (
   )
 11111b:最小

Tech PC98 Home(TOP)へ戻る Technical Data Pageへ戻る 目次へ戻る


How to Wait at constant time (一定時間 waitをかける方法)

 ハードウェアを直接制御するようなプログラムには一定の時間だけ waitが必要になることが多々あります。単純に固定値によるループで waitを取っていたのでは、 マシンの高速化についていけなくなりますし、 かといってループ数をむやみに増やせば遅い機種で実用にならなくなります。 そこで一定の間隔で割り込みが掛かるようにするとか、 一定の間隔で変化するカウンタを監視する必要が出てきます。 しかし、98には一定の間隔で掛かってくるような割り込みは タイマ割り込み と VSYNC割り込み しかありせん。 タイマ割り込みは1種類のプログラムからしか利用できない貴重な資源であり、 VSYNC割り込みは CRT BIOSと競合したり、ディスプレイ周波数によって周期が変わるので扱いが難しいです。 以下は割り込みを使わないで一定時間 waitをかける方法の紹介です。

・I/O Port 5Fh(OUT 05Fh, al)

対象機種 PC-H98, PC-9821シリーズ
Wait 時間
(実測値)
PC-9821Ap(仮想86モード) 486-66MHz1.77μsec.
PC-9821Xa(仮想86モード) P5-90MHz 1.75μsec.
PC-9801Xt16(仮想86モード) P5-166MHz1.75μsec.
      参考 PC-9801NS/E(仮想86モード)386-16MHz2.27μsec.
PC-9801NS/E(リアルモード)386-16MHz0.92μsec.
PC-9801VX286-10MHz5.29μsec.
 一定時間の Waitをかける方法の内で最も簡単かつ強力なものです。対象機種は PC-H98, PC-9821シリーズに限られますが、ほぼ 1.8μsec.の waitが得られます。表の中の実測値は仮想86モード中での wait時間で、リアルモードでは 約 0.6μsec.の waitとなります。
 なお、PC-9801シリーズでは、 機種ごとに実行時間が異なりますので使用にあたっては注意が必要です。


・Timer Counter(8253C)

対象機種 PC-9801/E/F1,2,3/M2,3 以外の 98x1 全て
Count Rate 500.8nsec.(1.9968MHz): System Clock 8/16MHz系
406.9nsec.(2.4576MHz): System Clock 5/10/12/20MHz系, 9821系
 98に搭載されている 8253という周辺LSIは #1, #2, #3 の3つのカウンタを持っており、 それぞれ、タイマ割り込み, シリアルポート通信速度, ビープ音の音階 に使用しています。これらのカウンタは一定の間隔でカウントダウンを繰り返しており、 このカウンタを監視すれば一定時間経過したかどうかを判断できます。 一般的に、前2つ(#1,#2)は環境によっては使用していなかったりしてカウンタが停止していることがあるので、 参照するのは #3 にするのが良いようです。 なお、具体的な参照方法は一般市販書籍に譲ります。



・Time Stamper

対象機種 PC-H98, PC-9821シリーズ
Count Rate 3255.2nsec.(307.2kHz): 対象機種全て
 PC-H98, PC-9821には 8253以外にもバイナリカウンタが実装されています。 このカウンタは 307.2kHzで常にカウントアップを繰り返しており、24bit分の幅を持っています。 具体的なアクセス方法は以下の通り。

Port Adr R/W  bit 
05Ch  R 15-0  カウンタの bit 15〜0(下位 16bits)
05Eh  R 7-0  カウンタの bit 23〜8(上位 16bits)

Tech PC98 Home(TOP)へ戻る Technical Data Pageへ戻る 目次へ戻る


How to Set/Reset Memory Switch(メモリスイッチの設定/初期化 等)

 ほとんどの PC-98(たぶんPC-9801VX以降)は、 起動時(含むリセット時)にキーボードのチェックを行ない、 特定の組み合わせのキーが押されている場合は以下の動作を行ないます。
(PC-9821Xa ITF 調べ)

Keyの組み合わせ動作
"GRPH" + "1" DOS上で使用するディスプレイ周波数を 24.8kHz に設定
"GRPH" + "2" DOS上で使用するディスプレイ周波数を 31.5kHz に設定
"CAPS"と"カナ"が ON状態で
 "CTRL" + "GRPH"
ITF(Initial Test Firmware) Version 表示
"ESC" + "HELP" + "1"ROM BIOS Revision 表示
"GRPH" + "SHIFT" PnP設定 および メモリスイッチの初期化
  (バッテリバックアップ S-RAMの初期化)
"ESC" + "HELP" + "9"
"ESC" + "HELP" + "8"BIOS書き換えプログラム呼び出し(要BIOS UPDATE FD)
"STOP" + "CTRL" + "SHIFT"1.25Mフォーマットされた FDをドライブに入れて "COPY" を押すと 下位 1Mbytes分のメモリイメージを FDへコピーします。

Tech PC98 Home(TOP)へ戻る Technical Data Pageへ戻る 目次へ戻る


signature
top Tech98 support download forum
Copyright(c) 1997-98 TAKE52
E-mail: take52@mxq.mesh.ne.jp