映像信号を測る / PC-8801FA

(前置き:※PC-8800シリーズはバリエーション豊富なので機種毎に値が違う可能性があります。マニュアルにタイミングチャートが記載されているのかもしれませんが所有していません。私はPC-8801について詳しくなく、細かい仕様はよくわかっていません)

PC-8801FAはアナログRGBがD-SUB15ピンとして出力されていて、垂直同期信号と水平同期信号が別々になっています。測定はV2MODE,CPU速度4MHz,本体背面にあるモニタ解像度切り替えスイッチは15KHzに設定しました。ディスクを入れずに電源投入してしばらくするとHow Many Files?の表示になるので、この状態で放置しての測定です。

まずは垂直同期期間です。
15KHz Vsync

垂直同期期間は約16.003ms、測定時の有効数字でみると16.00msでした。最初から不安になる数字です。というのも周波数で表記すると62.5Hzです。一般的な60Hzという数値よりも離れています。
Enri’s Home PAGE (PC-8001)さんのページでは、PC-8001の垂直走査周波数が60Hz、Diary on windさんのページではPC-8801は61.226Hzと表記されています。
60Hzだと想定しているものに対して2.5Hzの差があるとなると結構大きいです。1秒間ごとに2.5回だけ画面更新のズレが生じますから25秒後には1秒分の画面のズレが起きることになります。PC-8801は垂直同期割り込みがあるので、割り込みでタイミングを取っているソフトで影響が出ますね。
これが本体の個体差によるものなのか、8800シリーズの種別による違いなのか、私の測定ミスなのかはわかりません。

続いて水平同期期間です。
8801FA水平同期期間

約62.465usでした。16.01KHzくらいでしょうか。これだと水平走査周波数が15KHzというよりも16KHzになってしまうので、測定時の誤差によるもの、もしくは、先の垂直走査周波数の事も考えると、測定に用いた8801FA内の水晶発振器にズレが出ているのかもしれません。

同期信号は負論理でTTLレベルです。水平同期信号のパルス幅は4.48us、垂直同期信号のパルス幅は499.86μsでした。

水平同期信号と垂直同期信号を並べたものがこちらです。
8801FA水平垂直同期信号 8801FA水平垂直同期信号拡大

青いラインが垂直同期信号、赤いラインが水平同期信号です。最初の画像では、水平同期信号の電圧レンジを変えてあります。垂直同期信号の同期パルス部分を拡大したのが2枚目の画像です。
1回の垂直同期信号期間は、約8本分の映像信号の期間と同じなのですが、よくみると2つの同期信号の立ち下がりタイミングにズレがあり、約11.8usほどでした。

今回は同期信号だけでなく、映像信号もみてみました。ただ、手持ちのオシロが2chなのでRGBのいずれかと同期信号のどちらかしかみれませんから、Redと水同期信号の組み合わせです。映像信号の受け方がわからなかったので、とりあえず75Ωの抵抗を使っています。
BASICからpaint(0,0),2:console,,0を実行してファンクションキーを非表示にして画面を赤一色にしています。(カーソルはどうやって消すんだろう…)

8801FA赤色のみ

Redの映像信号に水平同期信号のノイズが乗ってしまっているのは、両信号のGNDをまとめてしまったからかもしれません(PC-8801のRGB映像信号にはRGBそれぞれにGNDがあります)。
Redの映像信号が最大になっている期間、つまり赤い映像が表示されている期間は44.59us、水平同期信号の立ち上がりから赤の表示開始までは9.067us、赤の表示終了から水平同期信号の立ち下がりまでは4.53usでした。水平同期信号のパルス幅4.48usを加えると一本分の水平期間で62.667usになります。先ほどの水平期間の測定値62.465usとはちょっと計算がずれてしまいましたが、62.667usは15.957KHzですから、なんとか水平周波数15KHzといえる値に収まります。先の16.01KHzとの差が気になるのですが、0.1us単位での誤差なので判断が難しいところです。もっと厳密に調べないとダメですね。

ついでといってはなんですが、赤一色の状態だけではなんですから、縦線を1ドット毎に描いてみました。赤と黒が交互に表示されている縞模様です。BASICでCLS3:FOR X=0 TO 639 STEP 2:LINE(X,0)-(x,199),2:NEXTを実行しています。8801 BASICの座標範囲が0-639なのか1-640なのか知らないのですが雰囲気で。

8801FA赤縞模様 8801FA赤縞模様拡大

1枚目の画像を拡大したものが2枚目で、赤の映像信号がアナログ的に時間変化しているのがわかります。

15KHzモードでの測定は以上ですが、PC-8801FAには、V1MODEへの切り替えスイッチ以外にCPUを8MHzで動作させるためのスイッチがあるので切り替えて測定してみたところ、2つのスイッチをどのように切り替えても映像同期信号に変化はありませんでした。

さて、PC-8801FAは背面の切り替えスイッチで映像信号を24KHzにすることが出来るので併せて測定してみました。ざっとまとめると、垂直同期期間が約18.05ms(55.4Hz)、垂直同期期間が約40.35us(24.78KHz)でした。
15KHzと24KHzでは垂直走査周波数が5Hzほど違うので垂直同期割り込みでタイミングをとっているゲームでは影響がありそうなのですが、どうしていたんだろう・・・。プログラム側から強制的に15KHzにすることが出来たのか、それとも24KHzだと速度が変わっちゃったりしたのでしょうか。

それから、PC-8801はI/Oポートの50H,51Hあたりを使ってCRTCを操作できるようです。これによって周波数が操作できるかもしれませんが、その辺の事は詳しくないので未調査です。

コメント / トラックバック2件

  1. 武田 より:

    不義理しっぱなしで申し訳ありません。m(_ _)m

    ePC-8801MAでは、56KHz/60KHzで実装しています。

    倉庫の奥底に、何機種かPC-8801が眠ってるんで、
    いずれこちらでも計測してみたいなーとは思うんですが(苦笑)

  2. moriyan より:

    いえいえ、お互いに時間の使い方が難しいお年頃(笑)ですから、
    ハードを引っ張り出して分解とか計測とか手間のかかることはやりにくいですよね。
    また何かこちらでも有用な情報が取り出せたら御報告したいと思います。