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


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第4回]



●ZB3BASICでは駄目なのです

前回までのところではせっかく作ったPIC−USBIOボードなのにソフトウェアが無いために7年もの間棚上げにしていたことについて書きました。
C、C++が使える方を対象にするならすぐにでも売り出せたのですが、そういう方ばかりではありませんでしょう。
私としてはやっぱりソフトウェアはBASICで提供をしたいと考えています。
そのBASICシステムを作っている時間が無いままに7年が経過してしまいました。
しかし。
前回をお読みいただいた方の中には「BASICならあるじゃないか」とお思いの方もいらっしゃるかもしれません。
前回BASICプログラムのサンプルとしてお見せしたZB3BASICがあるじゃありませんか。
それじゃあいかんのか?
残念ながら、それじゃあいかんのです。
今まで当社では色々なマイコンボードにオリジナルのBASICを載せて提供してきました。
それらはWindowsパソコンにUSBで接続することで動作します。
独立化システムとして動作するBASICもありますがそれについては今回の方向とはちょっと異なるのでここでは論じません。
前回見ていただいたようにちょっと見にはUSB接続を使ってWindowsのコマンドプロンプトの上でBASICが動作しているように見えます。
そのZB3BASICを使えばPIC−USBIOボードをBASICで制御するのも簡単なことのように思えるのですが、そうは簡単にはいかんのです。
今までの当社のBASICシステムを簡単に図で示すと下のようになります。

一見するとWindowsパソコンのコマンドプロンプト上でBASICが走っているように見えますが、実はBASICが走っているのはWindowsパソコンにUSB接続したマイコンボードの上なのです。
たとえばND80Z3.5の場合、ND80Z3.5上にあるROMに書かれたZB3BASICプログラムをZ80CPUが実行しています。
ユーザーのプログラムもすべてND80Z3.5上のRAMに書き込まれて、それがZ80によって実行されます。
Windows側のプログラム(これはコマンドプロンプト上で動作していますがBASICではありません)の働きによってあたかもWindowsパソコンの上でBASICが動作しているかのように見えますが、BASICの本体はWindowsパソコンの外にUSB接続されたマイコンボードの上にあって、そのマイコンボード上のCPUによって実行されているのです。
そのBASICシステムはZ80アセンブラ、または8080アセンブラによって私が作成したマシン語プログラムです。
8086ボードのBASICは8086アセンブラによって作成したものですからそれをもとに改変すればWindowsパソコンのコマンドプロンプト上で実行できるBASICを作ることはできそうなのですが、残念ながらそれは今やレガシーなCOMプログラムにしかなりません。
EXEプログラムを作成するためにはC++で初めから作るしかなさそうです。
必要なBASICシステムプログラムは下の図のイメージになります。

ま。
今まで8ビット、16ビットアセンブラでBASICシステムプログラムを作り上げてきましたから、その知識と経験をもってすれば、C++でBASICシステムプログラムを作成するとしたってなんぼのもんじゃい、というようなものですが。
いくらなんでも一週間や十日でできるほど簡単なものではありませんでしょう。
作るからには本腰をすえてかからなくては。
そう考えるとなかなかその気にはなれないまま、気が付けば早や7年もの歳月が過ぎてしまっていたのでした。

PIC−USBIO using BASIC[第4回]
2022.5.30upload

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