PS/55についてディスプレイ表示フォーマットの比較表を作ろうとして、PC-98で使われている24 kHzモードがどうだったか疑問が生じた。ミリ秒・マイクロ秒といった時間単位でのざっくりしたパラメーターは知っていたが、実際にディスプレイコントローラー μPD7220A (GDC)に入力されているパラメーターは知らなかったので調べていた。

GDCではRESETまたはSYNCコマンドに続いて入力される8バイトのパラメーターで表示フォーマットが決まる。この内容はGDCのマニュアルを参照すれば分かるが、今さらその資料を入手するのは難しい。Webで入手できる情報では、GDCの設計者である小口哲司氏がWebに公開している資料に掲載されている。

Tetsuji Oguchi - Publications (Japanese)(トランジスタ技術1984年2月号 p.358)

データはビット単位で区切られていて、P2からP8の7バイトで表示フォーマット(水平同期・垂直同期のタイミングなど)が決まる。

  DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
P1 0 0 Chr Flash Interlace DRAM Grph Shrink
P2 Characters in Row
P3 Vertical Sync (L) Horizontal Sync
P4 Horizontal Front Porch Vertical Sync (H)
P5 DS PH Horizontal Back Porch
P6 VH VL Vertical Front Porch
P7 Lines per Frame (L)
P8 Vertical Back Porch Lines per Frame (H)

PC-98の24kHzモードにおけるGDCマスターに入力される初期値は、np2/gdc.c at master · MaddTheSane/np2 · GitHubのdefsyncm24という定数の通り。この値は私が抽出した実機ROM (PC-9801F) にも出てくることを確認している。

static const UINT8 defsyncm24[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65};

これを先のパラメーターに当てはめていく。いくつかのパラメーターはこれに1または2を足した数字が実際の表示フォーマットにおける値になることに注意する必要がある。

  • Characters in Row = 4Eh + 2 = 78 + 2 = 80 characters
  • Horizontal Sync = 7 + 1 = 8 characters
  • Vertical Sync = 8 lines
  • Horizontal Front Porch = 9 + 1 = 10 characters = 3.800μs
  • Horizontal Back Porch = 7 + 1 = 8 characters = 3.040μs
  • Vertical Front Prch = 7 lines
  • Lines per Frame = 190h = 400 lines
  • Vertical Back Porch = 25 lines

ここでおかしいことに気付く。PC-98ではピクセルクロックが21.0526 MHzかつ1文字の幅は8ピクセルであることから、上記のパラメーターを時間に換算した値を右に併記したが、この数値はPC-9800シリーズテクニカルデータブック HARDWARE編(アスキー、1993年)では水平同期のフロントポーチとバックポーチが逆になっている。その表記がテクニカルデータブックの上だけならアスキーお馴染みの誤植だろうと済ませるところだが、PC-KD854Nカラーディスプレイのカタログにも同じ数字が確認できる。

なおちま屋 = 昔のカタログ保存館

なお、VESA規格などを見るに通例はフロントポーチよりバックポーチが大きく取られる場合が多く、これに基づくならGDCのマニュアルは誤記で、ディスプレイカタログやテクニカルデータブックの表記が正となる。

どちらが正なのかは実際のディスプレイ出力の波形を調べれば分かるだろうが、残念ながら実機もオシロスコープも手放してしまったので確かめる術がない。

後日調査した結果 → ArduinoでNEC 7220A (GDC)の同期信号フォーマットを調べる


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!