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


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第82回]



●SDカードIF(2)PICBASICコンパイラボードに接続したい

前回もちょっと書きましたように現行のZ80/8080システムでのSDカードインターフェースはマイコン独立化システムを構成するボードの中の1枚です。
下にその概念図を示します。

これも前回書きましたようにマイコン独立化システムの中でSDカードインターフェースの占める役割は重要です。
初期のパソコン(8ビット世代のマイコン)ではその役割はフロッビーディスクが担っていました。
さらにさらに旧時代の大型コンピューター世代では、よく古いSF映画などに登場するテープシステムなどが幅を利かせていました。
そういう時代から考えるとSDカードというのは実にありがたいツールです。
マイコン独立化システムでのSDカード容量は2GBです。
たった2GBと言う無かれです。
Windows95が登場した当時標準的なハードディスクはわずか1GB程度でした。
それから考えれば2GBもあればもう十分でありましょう。
問題はそのインターフェースにあります。

以前はよくBIOSとともにDOSという言葉が使われました。
今は半分死語になってしまっているようです。
BIOSはBASIC INPUT OUTPUT SYSTEMの略語です。
このBASICは言語の「BASIC」ではなくて「基本的な」のような意味です。
CPUはメモリ(通常はRAM)に書き込まれたプログラムを実行します。
しかしそのプログラムはどこからどうやって書き込めばよいのでしょうか?
またたとえばその実行結果などをモニター画面に表示したりプリンタに出力したりするのにはどうしたらよいでしょうか?
そのような役割を果たすプログラムを個々のユーザープログラムがそれぞれ別個に書いていたらとても非効率でたまりません。
そこでそのような基本的な外部アクセス機能を集めてユーザーシステムの下層に置いて必要なときに必要な機能のサブルーチンをCALLできるようにしたものがBIOSです。
Windowsの場合にもROMBIOSという名前でROM化されたものがマザーボードに組み込まれています。
実際にはDISKシステムにアクセスすることでWindowsなどのOSをインストールしなければなりませんから単なるBIOSではなくてそこに初期的なDOS機能も含まれています。
DOSはDISK OPERATIING SYSTEMの略語です。
かってCP/Mという名のDOSが有名だった時代がありました。
当時は8インチのフロッピーディスクがベースだったようで、Windows以前のパソコン世代としては高嶺の花でとても手の届く代物ではありませんでした。
その後にWindowsに類似(?)のDOSがMSDOSとして組み込まれたことによってやっと普通のユーザーもその恩恵に浴することができるようになりました。
もっとも今や貴重なMSDOSもまさに風前の灯といった感があります。
実際にMSDOSは貴重なのですよ。
当社でもせっかく8ビットの独立化システムを作ったのですからZB3DOSという名のCP/M互換DOSを開発しました。
とここまで書いてきたのですが。

ここでこれから何とかしたいと言っておりますSDカードを使った「DOS」はそんなCP/M互換DOSなどといったご大層なものではありません。
PICにそんなものを搭載したっておそらく使い道などありませんでしょうし、そもそもCP/Mは8080のためのオペレーションシステムですしそれはZB3DOSでも同じです。
PICは80系とはマシン語の体系が全く異なりますしそんなものを作りたいというのではありません。
しかしそこまでできなくても可能ならばWindowsの基本的なディスクシステムとの互換性は欲しいと考えています。
いまどきはWindowsの標準システムはNTFSということになっていますがそんなものに首をつっこむ気はさらさらありません。
2GBのSDカードとしてはFAT32のもうひとつ前の世代のFAT16が分相応ということになりましょう。

しかしそうだとしても。
前回も書きましたように、FAT16だってこれはもう大変な作業なのです。
たとえば。
FAT16のルールに従って、あるデータをファイル名をつけて保存するだけでも大変でありましょう。
たとえば。
DIRコマンドを使って登録済みのファイル名の一覧を表示するにはどうしたらよいのか?
あるいはファイル名を指定してそのファイルを読み出すにはどうしたらよいのか?
PICのBASICコンパイラシステムにSDカードIFを組み込むということはつまりはそういうことを可能にするということです。
それはCP/Mほどの機能や互換性は必要ではありませんが、せめてセクタREADとかセクタWRITEなどのごくごくベーシックなディスクアクセスのための仕組みが必要です。
まさに初期的、基本的なDOSシステムであります。

それではマイコン独立化システムではそのDOSはどこにあるかと言いますと。
上でお見せしました概念図の中でND80Z3.5(またはND8080)のシステムROMの一部として組み込んであるのです。

当然のことながら。
そのDOSプログラムは8080(Z80)のマシン語で記述しています。
上に書きましたように、PICのマシン語とは全く異なります。

ならば。
どうする?(次回に続きます)

PICBASICコンパイラ[第82回]
2023.10.2upload

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