趣味工房 HIRO-G
< CRTC パラメータの設定方法の調査完了 >
前回のBASIC No18までは、以前から気にはなっていた、文字を表示した場合に文字の下に意図せぬアンダーラインのようなものがくっついて表示される件の問題は、良く見ますと本来のアンダーラインではなく、各文字のラスターアドレス「0」番地の水平部のドットが反映していることが分かりました。
どうもパラメータの設定が間違っているのではないかと思い、以下の資料で設定の方法を詳細に調べました。 当方が使用しているCRTCのHD46505S(型番の最後にSが付いている。)はHD46505の改良版であることは分かっていましたが、設定方法が一部異なっていることは知りませんでした。 調査した次の資料の内、@、AはHD46505に関する資料で、B、C、Dは改良版のHD46505Sに関する資料でした。
< 調査資料 >
@ CP/M手作りマイコン1 P39〜51
A トラ技 1978年1月号 P188〜200
B トラ技 1084年2月号 P371〜382
C トラ技 1984年3月号 P397〜401
D 作りながら学ぶマイコン設計トレーニング P104〜114
以上、5冊の内容を確認しました結果、どの1冊をとりましても初心者が設定できるようには書かれていませんので、、関係資料の内容を補完しながら確認しました。 一番具体的に分かりやすく書かれているのは、資料@と菱田氏が執筆された資料BとCでした。 写真1は資料@から引用したもので、最も基本的なCRTの画面構成を説明した図です。 写真2は資料Bより引用したもので、HD46505Sの内部レジスタの一覧を説明した表です。 資料Dも数式を記載されて、そこそこ具体的に説明されていますが、その数式の一部に記載間違いがあったため、調査中に逆に混乱しました。
パラメータの設定がうまくいかなかった主な原因は、当方が最初にパラメータの設定の参考にしたのが資料@で、これは改良前のHD46505の設定方法であったのですが、たまたまHD46505Sでも問題がなかったため、何の疑いもなく、クリスタル8MHzを使う水平40文字以下の設定には、ずっとこの設定方法で進めていました。 しかし今回の件では、うまく行かない状態となり、資料を精査し初めて設定の違いが分かりました。
HD46505と改良版のHD46505Sで、最も設定が方法が異なるのが、「R3レジスタの同期パルス幅」の設定です。 HD46505では、「水平同期パルス幅」となっており、水平同期パルス幅のみを設定すれば良かったのですが、改良版のHD46505Sでは、「水平同期パルス幅」と「垂直同期パルス幅」の両方の設定が必要です。
具体的な設定手順は次回まとめますが、その手順で設定した結果、 写真3、4、5の通り文字の下のアンダーラインの様なものは消えて、まともな文字表示になり、スッキリしました。
写真4 テストプログラムのリスト
写真5 テストプログラムの結果
< 今後の予定 >
@ CRTC パラメータの設定方法調査: 完了
A CRTC パラメータの設定手順のまとめ:
B トラ技基本モニタ&BASICの構造調査: 調査中
C トラ技基本モニタ&BASICの不具合解消:
BASICマシン復元進捗 ・CRTC パラメータの設定方法の調査完了 |
2014年7月29日 |
写真1 資料@ P194より引用
写真2 資料B P400より引用
写真3 パラメータ変更テスト
|