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

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

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

[総合第2回]


●スクリーンエディタ

前回はハードウェアの合体についてのお話でしたが今回はソフトウェアの合体がテーマです。
実は全くもってうかつなことに、ソフトウェアも基礎から構築しなければならないということをすっかり失念しておりました。
CRT/VGA基板も出来上がり、画面に文字コードに対応した文字が表示できることを確認しました。
またキーボードのインターフェース基板も出来上がり、Windows用のキーボードを接続して、キーボードから文字コードを入力できることも確認しました。
今まではND80Z3.5(ND80ZV)もMYCPU80もND8080もUSBケーブルでWindowsパソコンと接続して、USBケーブル経由で、Windowsパソコンのキーボードから入力して、Windowsパソコンのディスプレイに文字を表示するというシステムだったのですが、いよいよWindowsパソコンから切り離して、ND80Z3.5に直接つないだキーボードから入力し(勿論キーボードインターフェース基板を介してですが)、そしてCRT/VGAインターフェース基板を介して直接ディスプレイに文字を表示することができるようになりました。
と、簡単に考えていたのでありますが。
いざ具体的な作業にとりかかってみて、そこで初めて気が付きました。

駄目じゃないの。
スクリーンエディタのプログラムをまず作らなきゃ。

ずっとずっと昔は勿論自前のスクリーンエディタプログラムもしっかり搭載しておりました。
しかしWindowsパソコンに接続するようになってからは、Windowsパソコンを端末代わりに使ってしまうわけですから、当然スクリーンエディタもWindowsパソコン上で動くように(正確にはコマンドプロンプトの中でですが)、Windows側のプログラムとして作ったのでした。
Windowsパソコンから独立するということは、そこのところもきっぱり諦めて、自前で持たなければならないということです。
なかなかに独立するということは大変なことなのです。

いまどきはマウスで画面上のどこでも自由にクリックしていろいろな操作をすることができますから、スクリーンエディタなんて、大したことはないではないか、と思われるかもしれません。
でもコマンドプロンプトの中で操作された方ならお分かりと思います。
コマンドプロンプトでは今でもラインエデイタしか働かないのです。
CP/Mだってそうでした。
ラインエディタは今入力中の行の中でのみバックして入力を訂正したりできるのですが、[Enter]を押したらそれで終わりです。
[Enter]を押してしまってからあとで、入力したものを訂正したいことも出てくるので、入力した行をもう一度呼び出してそこで訂正することができる機能を備えたシステムもありますが、基本的にラインエディタはその行の中でしか編集はできません。
つまりカーソルは水平方向にしか移動できません。
それに対してスクリーンエデイタは水平だけではなくて垂直方向にも移動できます。
カーソルを画面上のどこにでも自由に移動させて、そこに表示されている行を再編集することができます。

実際の画面で説明します。
「CRTインターフェースボードの製作」[第34回]でお見せした画面です。

お見せした画面はBASICプログラムの実行を終ってカーソルが画面左下にありましたが、そこで[↑]キーを押すとカーソルマークが上に移動していきます。
なんでもないことのように思われるかも知れませんが、画面の中を移動するというのはなかなかに大変なことなのです。
ゲームのような感覚ですけれど、グラフィックではなくてキャラクタ表示なのですよね。

今度は[→]で右方向に移動です。


そこでプログラム行の一部を書き換えました。

これだけではまだ画面の表示を書き換えただけで、プログラムそのものは書き換わってはいません。

そこで[Enter]キーを押すとプログラムのその行が書き換わります。
[Enter]キーの入力はカーソルがその行の上ならどこにあっても有効です。


そのままlistと入力してみました。


listに続いて[Enter]を入力するとリスト表示が行なわれます。

表示は先に表示されている画面に重ねて文字のある部分だけ上書き表示されます。
40行が書き換わったことが確認できます。

このまま再度実行するためにrunと入力しました。

しかしちょっとこの位置ではまずいことになります。

そのまま{Enter]を入力すると、エラーメッセージ(ERR:31)が表示されました。

ERR:31はRUNのパラメータが間違っている、というメッセージです。
これがスクリーンエディタの特徴です。
キーから入力された文字だけではなくて、プログラムなどで先に画面に表示された文字でも、そこに表示されている文字はずっと生きています。
ですから上で
run[Enter]
と入力したつもりでも、その行の全体が
run       sqr(a)=2
のように入力されてしまいます。
本来は便利な機能なのですけれど、便利なだけに注意すべき点もあるのです。

今度は気をつけてrunの後ろをスペースで置き換えました。


そのあと[Enter]を入力しました。

今度は正しく実行されました。

ご覧いただきましたように、スクリーンエディタはキー入力と画面表示が一体となったソフトウェア機能です。
こういうプログラムを自分自身で作ってみたいと思いませんか?
ちょいと上級者向きではありますが、挑戦してみるのも面白いのではないかと思います。

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

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