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


PICBASICコンパイラ

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

[第236回]



●1年8ヶ月ぶりです

PICBASICコンパイラについて最後に書いたのは2024年10月29日([第156回])ですからそれからもう1年半以上経ってしまいました。
決して忘れていたわけではありません。
ときどき思い出しては「どうしたらよいだろうか」とちょいと悩んでおりました。
この1年半は色々迷走していました。
PICBASICコンパイラについては[第156回]に書きましたようにその後はPIC WRITERの製作の方に行ってしまいました。
PIC WRITERについては昨年9月(超ローコストPIC WRITERの製作[第330回])が最後でしたからそれから数えても半年振りということになります。
それも忘れてはおりません。
何年にも亘って書いてきましたし貴重な資料になっていると思います。
それがなかなか完結するところにまでいかなかったのはぶっちゃけ言って迷いがあったからです。
あれもしたい。
これもしたい。
そうすると終りません。
どこかで割り切ることが必要です。
どこでどう割り切るかそこが悩ましくてつい日々を重ねてしまいました。
でもまあ間を置くことは悪いことばかりではありません。
見えなかったものがだんだん整理されて見えるようになってきます。
それで。
いよいよやります(やるつもりです)。
目標としては6月エンドと言いたいところですがさすがにちょっと無理かと思いますから7月エンドということにします。
できればPICBASICコンパイラだけではなくてPIC WRITERも製品化してしまいたいと思っております(うわあ。大変だ)。
まずはPICBASICコンパイラです。
そもそも論から。
PICって便利な石だと思います。
そりゃあやれることは限られています。
昔のZ80や8080にも遠く及びません。
今時のArduinoだとかラズパイとかとは比較もできませんでしょう。
Z80や8080はマシン語(アセンブラ)での制御ができることが一番の利点です。
その点はPICも同じです。
Z80や8080はCPUだけでは何もできません。
ROMとRAMとI/Oが必須です。
でもPICならPIC単体でできてしまいます。
そこが最大の利点です。
えっと。
Arduinoとかラズパイも近いのでは?
それはそうですけれど。
でも開発言語は主にC++なのでは?
あの。
今時は学校などでもソフトウェア重視とかでプログラムの学習なんてのがあったりして。
でも大抵はC++だったりするのでは?
それっておかしくありませんか?
よくサンプルプログラムなどで見ますけどLEDチカチカとかスイッチONでLED点灯とか。
それをC++でやるって。
どなたも疑問に思いません?
なんたらかんたらのわけのわからぬヘッダーを羅列して、なんたらかんたらの手続きを羅列して…。
何にもわからんので結局のところ見本をコピペして。
それでやっとLED1つ点灯して本当に何かわかります?
そこへいくとPICなんて見事なもんです。
基本としてマシン語コードに1対1で対応するたかだか30個ほどの命令と基本的な記述のルールさえ覚えてしまえばスイッチONでLED点灯ぐらい朝飯前です。
ああしかし。
PICの最大の障壁はあのConfigのクソです。
ここをなんとかしないとどーしようもありません。
それにかててくわえてPIC WRITERなんてものが必須です。
それも近年はやたら高騰していてMicrochip社の正規品PICKITなんたらは1万円以上もしてしまいます。
某国製のまがい品もあるようですが。
えっと。
それについてはコメントは差し控えさせていただきます。
どちらさまも自己責任で。
そのあたりがPICの障壁なのであります。
そこで。
いよいよコマーシャルです。
なんたってPICBASICコンパイラですよ。
C++などクソ食らえでありますね。
LEDチカチカぐらいBASICなら即日速習できてしまいます。
しかもインタプリタじゃありません。
コンパイラです。
でも見たところどう見てもインタプリタだというところがウリです。
しかもPICアセンブラを組み込むことだってできてしまいます。
そしてそして。
なんとPIC WRITERが不要です。
これを製品化しないでどうするの?
てなもんです。
ですけれど。
迷っておりましたのは。
とりあえずはターゲットにするPICを何にしようかというところです。
まずはPICBASICコンパイラの機能上の必要条件からPIC18Fに限定します。
記事としては今まで主として使ってきておりますPIC18F14K50から始まって18F2550や18F4550をターゲットにとりあえずの製品化を考えました。
でもでも。
PIC18Fはそのほかにも一杯あります。
目移りしてしまいます。
そこに迷いがありました。
悪いことにといいますかPICのどーしようもないところがもうひとつありました。
あのSFR。
SFR(Special Function Register)を語らずしてPICを語ることは到底できません。
コイツがですね。
PICによって機能もアドレスもネームも異なっているってんですから、ねえMicrochipさんよお、どないかならんのかいなあと言いたくなってしまいます。
当然のことながらPICBASICコンパイラでもそのSFRのレジスタ名を指定してあれこれしなければLEDチカチカさえもできません。
それがPICごとに異なっているのですからたまりません。
当初はPICごとにレジスタ名セットを組み込むことも考えたのですがそりゃあなかなかに大変な作業ですしせっかく簡単なBASICのはずのところが複雑にならざるを得ません。
うむむむ。
出口なしです。
そういうところにも迷いがありました。

いえ。
よくよく考えてみましたら。
出口はありました。
時間を置いたことにそれなりのメリットはありました。
快刀乱麻を断つというのは大げさですけれど。
何年かぶりにすっきりした思いです。
えっと。
今回は久々に書きましたので長くなってしまいました。
次回にそのスッキリしたところについて書きます。

そうそう。
この連載記事についてもどうするかでちょいと悩んでおりました。
そもそもはPICBASICコンパイラについて書いていたのですが途中からPIC WRITERについて書き始めてしまいました。
そのきっかけは[第156回]です。
そこから[第235回]まではタイトルとしてはPICBASICコンパイラのままですが内容はPIC WRITERについて書いています。
[第236回]からはやっとタイトルも「超ローコストPIC WRITERの製作」に変更しました。
そういう経緯もあってPICBASICコンパイラとしては[第156回]からの続きになりますがそれを[第157回]として書くとタイトルが重複してしまいます。
内容から考えてみると[第157回]から[第235回]はPIC WRITERのための記事ですからその間のタイトルはPICBASICコンパイラですけれどそれはPICBASICコンパイラとしては空番ということにしました。
ですからPICBASICコンパイラとしては[第156回]の続きは[第157回]ではなくて今回の[第236回]になります。
さらにその間にはPICBASICコンパイラでもPIC WRITERでもない別の記事をときどき書きましたのでそこのところでは記事の上下の「前へ」「次へ」のリンクがうまくつながっていないところがあります。
記事内容に合わせてリンクを追っていただくときは目次とか日付順目次から追っていただきますようお願いいたします。

PICBASICコンパイラ[第236回]
2026.6.13 upload

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