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

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

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

[総合第40回]


●2度目の完売御礼

前回、当初予定しておりました2回目のロットもまだ発注手配が完了しないうちから、ほとんど完売になってしまいました、と書きましたが本当に完売してしまいました。
皆様のご愛顧にあらためて深く感謝申し上げます。
これからも一層のお引き立てをお願いいたします。

ということで、本日はほとんど丸1日かけて、追加のプリント基板の手配とか、不足するパーツの洗い出しと発注手配などをしておりました。
説明書の作成作業も急がなくてはいけません。
超多忙な日々が続きそうです。

昨日と今日は、そんな作業の合間に、ずっと気になっていたプログラムの追加作業もしておりました。

●40字×25行画面用スクリーンエディタ

VGAモードは80字×25行のみですが、RCAモードは80字×25行と40字×25行をDIPスイッチで切り換えて表示することができます。

左端1番がVGAとRCAの切り換えでその右の2番が40字と80字の切り換えです。

これは小型のモニタTVや昔のブラウン管TVのように80字では文字がつぶれてしまって見にくい場合に対応するために付加した機能です。
といってもそのままではただ画面が80字から40字に変わるだけで、そのままでは使えません。
そのままでは画面は1行40字なのに、そこに表示する文字列は1行80字で表示されるからです。
40字表示では後半の40字はその下の行に表示されます。
それだけならそれでもよさそうに思えますが、普通は80字いっぱいを使うことは少なくて大抵は1行40字以内で終ってしまいます。
すると40字画面ではその下の行に空白の1行が表示されてしまい、結局1行飛びの表示になって、実質1画面12〜13行の表示しかできないことになってしまいます。
もっと問題なのは画面スクロールです。
80×25行の最後の1行のメモリ上の位置よりも下にカーソルが行ったときに、画面全体を1行上にスクロールして、カーソルを最下行に表示させる機能です。
40字モードでは画像メモリの上半分しか表示されませんから、下半分のところにカーソルが行ってしまうと、隠れてしまって何の反応もなくなってしまいます。
ずっと下の方までカーソルが進むとやっとスクロールされますが、カーソルはずっと隠れたままになってしまいます。
それは前からわかっていて、なんとかしなければならないとは思っていたのですが、それをしているだけの余裕がありませんでした。
でももうそんなことは言っておれません。
覚悟を決めて片付けてしまうことにしました。

スクリーンエディタプログラムを変更して80字と40字のそれぞれに対応できるようにしました。
それに伴ってシステムの初期設定も変わってきます。
昔はプログラムを変更するとそれをROMに焼いて試したものですが、大抵は一度ではうまくいかなくて、でもROMにしてしまうと簡単にはデバッグができないので随分苦労したものです。
今はND80Z3.5の裏RAMに変更後のプログラムをロードして、RAM上で実行してデバッグすることができますので随分手間が省けます。
今回はプログラムの開発はUSBでWindowsに接続した現行版のND80Z3.5を利用して行なって、そこで作ったデバッグ用のシステムプログラムをSDカードにセーブします。

ごちゃごちゃやっていますが、SZRAM3I.BINというのが、デバッグ用のシステムプログラムです。
27C256と同じ32KBあります。
そこにスクリーンエディタ(SZSEDT1G.BIN)とシステムエントリプログラム(SZENT1H.BIN)をロードして、再度保存しています。
以上の作業はWindowsのHDに対して行なっています。
そのあとSDカードにもセーブしました。
ここから後は独立型ND80Z3.5システムでの作業になります。

SDカードを装着してDIRを実行しました。

SZRAM3I.BINを0000番地からロードします。
0000〜7FFFのアドレスを指定すると、裏のRAMにロードされます。
I/Oアドレスの9CにFFを出力すると、0000〜7FFFの範囲がROMからRAMに切り換わります。

RAMに切り換わってからもう一度ZB3BASICにエントリしました。

もう一度DIRを実行しました(これは必要なことではなくて、ただまともに動作しているかどうかを確認してみただけです)。
0000〜7FFFがRAMに切り換わったかどうか、確認してみました。
CMコマンドで7FFFの中身を書き換えることができましたから、RAMが選択されています。
つまり今はRAMにロードしたシステムプログラムが動作していることになります。
こういうことができるとなかなか便利です。

80字と40字の切り換えはF150番地に28(=40)か50(=80)を書き込むことで行なわれます。

CMコマンドでF150の値を28に書き換えた途端に表示が40字モードに切り換わりました。
CMコマンドの次の行が(80字モードの)下の行ではなくて(40字の)次の行に表示されました。
このままでは表示モードは完全には切り換わりません。

一旦ZB3BASICシステムを再起動します。

システムを再起動するにはJP 1000を実行します。

システムを再起動すると画面がクリアされます。

40字モードに切り換わったため、80字画面の上半分しかクリアされません。
大文字/小文字表示の’a’が40字×25行画面の右下隅に相当する位置に表示されています。

もう一度DIRコマンドを実行して、BASICテストプログラムSQR.TXTをLOADしました。

VGAモードは80字表示しかできませんから、40字画面もそのまま表示されます。
よく見ると40字のところで右半分は左半分の次の行になっています。

RUNコマンドを実行しました。

40字モードで画面がスクロールしたのが分かりますでしょうか?

CRTモニタに切り換えて表示させました。

さすがに20インチと9インチでは文字サイズが、めちゃめちゃ小さいです。

ここでVGA/CRTインターフェース基板のDIPSWを40字表示に切り換えました。

40字表示の画面になりました。
DIR表示などのもともと80字を前提にしているものは40字画面ではレイアウトが崩れて見にくくなりますが、それは仕方がありません。
ZB3DOS(CP/M互換DOS)も40字表示にするとレイアウトが崩れます。
40字表示はあくまで補助的な機能だと思ってください。

デバッグ中の写真です。


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

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