マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第113回]
●TYPE
TYPEはCP/MやMSDOSにあるコマンドですが、ZB3BASICには今まで実装されていませんでした。
いままではWindowsパソコンにUSB接続して使う形で、外部記憶装置としてはWindowsパソコンのハードディスクのフォルダを使いましたので、DOS窓内でファイル(テキストファイル)の中身を表示するよりも、DOS窓の外でメモ帳(Notepad)などで開くほうが楽だったからです。
ところが独立型のシステムになると、SDカードに記録したテキストファイルの中身を読むためには一旦SDカードを独立型システムから外してWindowsパソコンに直接接続して読み出すという面倒な作業が必要になりました。
もっとも独立型の場合、通常はテキストファイルといえばZB3BASICのプログラムファイルになりますから、LOADコマンドでメモリにロードしたあと、LISTコマンドで表示させれば済みました。
そういう理由もあって、いままでTYPEコマンドは実装しないできたのですが、ここにきてTYPEコマンドの必要性がでてきました。
必要になった具体的な理由については次回に書きます。
今回はZB3BASICに新しく実装したTYPEコマンドについて説明をします。
下の画像はTYPEコマンドを実際に使用しているところです。
TYPEコマンドはSDカードで現在アクティブになっているディレクトリ内のテキストファイルの内容を表示するためのコマンドです。
長いファイルだと表示がスクロールして画面の上から消えてしまいます。
USB接続型ではページモードにすれば上に消えてしまった画面を再表示することができますが独立型にはその機能はありません。
独立型でもページモードを実装することを考えてはみたのですが、ログ機能を追加したために画面の表示速度がかなり低下しました。
そのうえページモードまで追加すると、さらにさらに画面の表示速度が低下してしまいます。
そういう理由でページモードは見送らざるを得ませんでした。
そういうことになると、せっかくTYPEコマンドを実装しても長いファイルについては「役立たず」になってしまいます。
そこを何とか回避するための工夫が必要でした。
あまり効率がよいとはいえませんが、シンプルな機能として1行表示するたびに停止させることにしました。
上の画面はディレクトリにあるSQRTEST.TXTを最初の1行だけ表示して、そこで停止しているところです。
ここで何かキーを押すと次の1行が表示され、それを繰り返すことで必要なところまでの表示が得られます(下の画像)。
途中でTYPEコマンドの実行を打ち切りたいときは[Enter]を入力します。
この例はZB3BASICのプログラムファイルを表示させたものですから、TYPEコマンドを使わなくても、上に書きましたように、LOADとLISTを使えばファイル内容を表示させることができます。
しかしLOAD、LISTはBASICプログラムファイルに対してのみ有効なコマンドですから、BASICプログラムではない、一般的なテキストファイルに使うことはできません。
その点今回追加したTYPEならば、BASICプログラム以外のテキストファイルでも表示させることができます。
中身がテキストファイルになっていれば、拡張子はTXTではなくても、あるいは拡張子がなくても開くことができます。
下はZ80アセンブラのソースプログラムファイルをTYPEコマンドで表示させているところです。
LOADはBASICプログラムをRAMに実際にロードしますが、TYPEコマンドはSDカード用のデータバッファのみを利用するため、ユーザー用のRAMエリアには影響を与えません。
上に書きましたようにTYPEコマンドは1行表示するごとに停止します。
1行の表示文字数を正しくカウントする必要性から、TAB(コード09)は1桁のスペースに置き換えて表示します。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第113回]
2017.10.28upload
前へ
次へ
ホームページトップへ戻る