< 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 グラフィック・ボードの製作?: