趣味工房 HIRO-G




< CRTC パラメータの設定手順のまとめ >

 
 下記の調査資料は前回に紹介したものと同じです。 これらの資料の内容が初心者に分かり難い理由は、写真1、2のような用語の定義の馴染み難さも大きいですが、当たり前ですが内容は専門的で、理論的な設計手順(例えば、表示文字数から理論的クロック数を決定するなど。)と実用設計(クロックは8MHzや16MHzに条件設定されている。)が混在しており、また、紙面が限られているので初心者が知りたいところは、さらっと書かれているために理解が混乱し、具体的にどうするのかが分かり難い点にあります。 

< 調査資料 >

@ CP/M手作りマイコン1 P39〜51

A トラ技 1978年1月号 P188〜200

B トラ技 1084年2月号 P371〜382

C トラ技 1984年3月号 P397〜401

D 作りながら学ぶマイコン設計トレーニング P104〜114


 で、資料A、B、Cを補完することで、何とか理解できるようになりましたので、取りあえず当方の理解の範囲でのHD46505Sのパラメータの設定手順を報告します。 設定条件ありきから出発しますので、理論的な設計検証は必要く、ただパラメータが設定できる範囲かどうかを確認できれば良いことになります。 HD46505との大きな違いは、R3同期パルス幅の設定方法です。


< 今回の設定条件 >

・表示文字数: 横32文字、縦16文字(行)、合計512文字

・文字の構成: 8X8 ドット

・1行分のラスタ数: 8ラスタ

・クロック: 8MHz(クリスタル8MHz使用)

・インタレース・モード


< 設定手順 >

@ R0: 水平総文字数(Nht)  3FH(63)

・水平一走査期間をキャラクタ・クロック数で示す。

・ドットクロック: 125ns (クロック数8MHzの逆数)

・キャラクタ・クロック: 125nsX8=1000ns=1μs

・水平一走査期間: 63.5μs (水平走査周波数の逆数)      通常のモニタは水平走査周波数15.75KHzであるが、25KHzの  モニタもある。 その場合は、40μsとなる。

・水平総文字数: (水平一走査期間)/(キャラクタ・クロック)       63.5μs/1μs≒64 *設定値=64−1=63

A R1: 水平表示文字数(Nhd) 20H(32)

・設定条件で、、横文字数32文字の設定としている。

B R2: 水平同期位置(Nhsp) 2FH(47

・水平ブランク・エリアのほぼ中央部とする。

・式、(水平総文字数+水平表示文字数)/2で算出する。         (64+32)/2=48   *設定値=48−1=47

C R3: 同期パルス幅(Nvsw,Nhsw) 34H 

・水平同期パルス幅(下位4ビット)は、モニタの水平同期信号のパル   ス幅(一般的に4〜5μs)をキャラクタ・クロック数で表現する。        4μs/1μs=4 または  5μs/1μs=5            どちらでも実用上問題はないと思われる。                 ここでは一応、4とした。

・垂直同期パルス幅(上位4ビット)は、垂直同期信号のパルス幅(一  般的に190μs〜500μs)をラスタ数で示す。             1ラスタは水平一走査期間(63.5μs)と同じである。            190μs/63.5μs≒3 〜500μs/63.5μs≒8    ここでは一般的なモニタとして3とした。

D R4: 垂直総文字数(Nvt) 20H(32)

・垂直一走査期間を表示できる文字数のラスタ数で示す。

・垂直一走査期間: 16.7ms (一画面 1/60s)

・設定条件より、垂直方向の一文字は8ラスタであるから、一文字は、   63.5μs X 8 = 508μs≒0.51ms

・垂直総文字数: (垂直一走査期間)/508μs            16.7ms/0.51ms≒33 *設定値=33−1=32

E R5: トータル・ラスタ・アジャスタ(Nadj) 04H(04)

・一般的に3か4。 ここでは一応、4とした。

F R6: 垂直文字数(Nvd) 10H(16)

・設定条件で、縦16文字(行)の設定としている。

G R7: 垂直同期位置(Nvsp) 18H(24)

・垂直ブランク・エリアのほぼ中央部とする。

・式、(垂直総文字数+垂直表示文字数)/2で算出する。       (33+16)/2≒25   *設定値=25−1=24

H R8: インタレース&スキュー 00H(00)

・設定条件で、インタレース・モードとしている。

I R9: 最大ラスタ・アドレス(Nr) 07H(07)

・設定条件で、1行分のラスタは8としている。                 *設定値=8−1=7

J R10〜R13は、何れも00H(00)とする。

K R14〜R17は無視する。

< 設定値まとめ >

上記の手順で設定された値は次の通りです。

3F、20、2F、34、20、04、10、18、00、07、       00、00、00


以上が設定の手順です。 横文字の文字数、縦の行数が変わっても同様に算出できますが、横の文字数が40文字を越える場合は、クリスタルを16MHzに交換して、クロックを16MHzで計算してください。 写真3はクリスタル16MHzで、横の文字数80、25行、合計2000文字の設定例です。



< 今後の予定 >


@ CRTC パラメータの設定手順のまとめ: 完了
A トラ技基本モニタ&BASICの構造調査: 調査中

B トラ技基本モニタ&BASICの不具合解消:

C TK80BS 機械語インベーダーゲームの移植:

D TK80BS BASICの移植?:

E FDDの製作?:

F グラフィック・ボードの製作?:


BASIC No31


BASICマシン復元進捗  ・CRTC パラメータの設定手順のまとめ
2014年7月31日


写真1 画面構成の用語の定義(資料@ P194より引用)




写真2 HD46505Sの内部レジスタ(資料C P400より引用)




写真3 横80文字X25行設定の例(資料C P401より引用)