PICで走るTiny-BASIC(続きの続きの続き)
実用的な観点からは、21世紀にもなってTiny-BASICを作ることにあまり意味があるとも思えません。
カンタンにソフトを作りたいならArduinoがあるし、PICでも開発環境が無償化されているので、PicKit2と参考書を買うだけで比較的簡単にスタートできます。なにもBASICを使う必要はありません。
それに、BASICには未来は無いですが(たぶん)Cはまだまだ現役です。ちょっと大変でもCから始めた方がいいのは明らかです。
でも、懐かしいですね。
僕は77年頃に8080のマイコンを作り、いずれはBASICを作ろうと思っていました。ところが数年で自作機の時代が終わって、MZ-80やPC-8001といったメーカ機が台頭してくると、僕も(就職して懐具合が改善したので)PC-8001に乗り換えてしまい、結局BASICは作らずじまいでした。
その雪辱戦と言ったところです。真空管のラジオを作る感じかな? やってみると面白いです。
そんなわけで、当時の自作機の雰囲気に組上げてみました。ムカシの名前は忘れてしまいましたが、本機はHANACと命名しました。ENIAC,EDSAC,UNIVAC,TAC,NEAC,HITAC....懐かしい計算機にあやかってAutomatic Computerがつく名前にしました。
当時の僕の自作機は、おなじみのスイッチレジスタを使わずに、TTLで組んだROMにIPL(ブートローダー)を入れ、UART(Intersilの6402だったかな)からカセットテープに記録したプログラムを読み込むようになっていました。
本物の電子計算機(磁気テープがくるくる回ってるヤツ)に憧れてキースイッチや照光式ボタンを奢ったのも懐かしいです。今回、この辺も再現しました。おかげでシャーシだけで5K円以上もかかってしまいましたが。
もっとも寸法は大分小さくなっています。当時の基板は56Pのカードエッジのモノで、面積ではこれの4倍です。それが3枚アルミシャーシに立っているという体でした。取っ手は補強のつもりで付けてました。
本機はホストとの通信に、USBシリアル変換機とXBeeを選択できるようになっています。電源は単三電池を2本内蔵、USB接続の時にはUSBから給電します。
ccscのソースコード、回路図、BASICのサンプルプログラムを公開します。詳しい説明もありますので、興味がある方はダウンロードしてみてください。フォルダにまとめて入れてあります。
思いつきで3週間くらいで作ったインタープリタですから、出来はよくないです。あまり作り方の参考にはならないと思いますが、こんなものでも動くんだという見本と思ってください。
ccscを持っていない方でも、main.hexをPicKit2で書き込んでもらえば動かすことが出来ます。
カレントループインターフェイスを作ればお宅に眠っているASR-33(まさかね)も接続できますよ。「謎の円盤UFO」のオープニングごっこなんかはいかがですか?
<後日追加>
いくつかバグを取った20MHzクロック版のVer0.41がこちらにあります。