2017.10.15
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第107回]



●キャラジェネの選択

VGA/CRTインターフェースボードのキャラジェネ(Character Generator)ROMは27C256を使っています。
文字コード00〜FFに対応する8×8ドットのパターンが書いてあります。
1ドット1ビットなので1つの文字コードあたり8バイト占有します。
メモリサイズとしては8バイト×256=2KBあれば足ります。
ですから昔はキャラジェネROMとして2KBの2716を使いました。
27C256は32KBなので中はがら空きです。
2KBの文字パターンが16組入れられます。
勿体無いのでとりあえずPC8001のキャラジェネパターンとMZ80のキャラジェネパターンを入れてあります。
キャラジェネパターンについては「CRTインターフェースボードの製作」[第5回]で紹介しています。
そこでお見せしたキャラジェネパターン図を下に再掲します。
こちらはMZ80です。


こちらはPC8001です。

MZ80のキャラジェネパターンには英小文字がありませんから、独立化システムとしては通常はPC8001を選択して使います。
キャラジェネパターンの選択は8Pディップスイッチで行ないます。

bRをONにするとPC8001モード、OFFにするとMZ80モードになります。
キャラジェネパターンの選択はソフトウェアには関係(影響)しません。
VRAMに書かれた文字コードを画面に表示するときに機械的に選択されます。
ですから画面に文字を表示させておいて、ディップスイッチのbRをON、OFFすると選択されたキャラジェネパターンにしたがって表示が変わります。

こちらは通常のPC8001キャラジェネによる表示です。


上の表示の状態でディップスイッチDS1のbRをOFFにしてMZ80キャラジェネを選択してみました。

数字や英大文字の表示には変化はありませんが、英小文字や記号などは全く異なるパターンになってしまいました。
右下のシフト状態を示す”a”も違うパターンになっています。
このように現行のVGA/CRTインターフェースボードではPC8001とMZ80のキャラジェネをディップスイッチで選択することができますが、画面全体の表示を一律に決めることになるので、画面の表示の一部だけをどちらかのキャラジェネパターンで表示するということはできません。

そこで今回の新しいVGA/CRT/カラーキャラクタディスプレイボードなのですが。
まずディップスイッチのbRはOFFにしておきます。


そしてRAMとROMの間にあるショートピンをセットします。


そのようにするとPC8001とMZ80のキャラジェネをソフトウエアで選択することができるようになります!
これって、ちょいとすごいことだとは思いませんか?

ただし今のところシステムプログラムの制約があって、完全にフリーというわけにはいきません。
でもとにかくちょっとそのすごいところをよーくご覧になってください。

画面上部に表示されているBASICプログラムを2回実行しています。
文字をカラーにする必要は無いのですが、表示の違いを引き立たせるためにそのようにしてみました。
上側の水色の文字がPC8001の文字パターンです。
下側の黄色と赤の文字がMZ80の文字パターンです。
MZ80の文字パターンは黄色と赤色の文字を表示している期間のみ選択されていて、画面のそのほかの範囲には影響していません。

キャラジェネの切換はメモリアドレスF14Fの値によって行なわれます。
ここは実は文字色(及び背景色)を決定しているシステム変数エリアです。
通常はエスケープシーケンスで値を変えますが、そこをPOKE文を使ってダイレクトに書き換えています。
F14Fの値の下位4ビットは文字色を決定しますが、実は0〜7(0000〜0111)までの下位3ビットしか使っていません。
そこで空いている4ビット目をキャラジェネの選択に利用しました。
アドレスF14Fの値のビット3が0のときはPC8001の文字セットが選択され、ビット3が1のときはMZ80の文字セットが選択されます。

上の画面中のプログラムリストで60行でF14Fに09をセットしています。
そこから100行で07をセットするまでの間、文字色が赤(色コード001)でかつMZ80文字セットが選択されます。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第107回]
2017.10.15upload

前へ
次へ
ホームページトップへ戻る