1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

目的

 Tang-Nano-4Kでモニタを動かしているけれど、本人が言うのも何だがショボい。
 此処はグレードアップが必要ではないかと愚考する。
 ゲームマシン化にする案も有るが、FPGA×MCUの有効活用が思いつかない。
 FPGA単体とか、MCUによるエミュなら、事例が手持ちに有るけど。
 などと考えつつ、此処は王道とも言える、BASICの使えるパソコン風味が良いのではないかと。
   ◆◆◆ よし、Tang-Nano-4KでBASICを動かすぞ ◆◆◆
 Tang-Nano-4Kをパソコンの軛から解放し、BASICマシンとして独立させよう。

経緯

 BASICマシン化と言っても、Tang-Nano-4KのMCUをネイティブで動かす事を方針とする。
 FPGA上に過去の名機を再現する方法も有るが、Tang-Nano-4Kに相応しいものにしたい。
 となると、Cortex-M3で動くBASICインタープリターが必要だが、そんなものは見つからなかった。
 そこで次候補として、C言語で書かれたものを探した。
 これはそこそこ有ったが俗にTinyと言われるもので、機能は余り無い。。
 まあ、Tinyが決してダメな訳では無く、移植が簡単という大きなメリットが存在する。
  ※TinyはBASICの基本コマンドが動作し、プログラム本体は2KB前後かな。
   過去のパソコンでも、8KB~32KB位は有ったのだけどね。
 その中で「豊四季TinyBASIC」を選択、下記に示す様に移植性が高いと思われる。
  ◇比較的マニュアルが(解説)がしっかりしている。
  ◇他機種への移植例が存在。
  ◇基本部は、getch(),putch()さえ用意すれば動かせる。
  ◇日本製だし、住んでる場所も近い。※特に意味は無いか。

 BASICが動作したで終わりでは無く、下記を追加しスタンドアロン化する。
  出力表示をHDMIに行う。
  キーボードを接続。
 おっとその前に、デバッグコマンドを、BASICに追加しなくっちゃ。
 其れなりに時間が掛かってしまうかな。

移植作業

 まずWindows版をダウンロード。
 EXEも付いて来るので、ウイルスチェックしてから正常動作を確認。
  ※windows版といってるが、DODS窓が開くコンソールアプリ。
 付属のプロジェクトを開いてコンパイル、動作確認。
  ※visualstudio2017で開けた。Ver14.0->14,1にUPした模様。
 次にMingw環境で動作確認。
  ※Windows環境では余計なものがついてるかも知れないので。
 多少の変更は必要だったが、動作した。
  ※getch(),putch()相当を定義、kbhitは0を返しておく。
   この結果、取り合えずrun中のブレークは効かないと言う事になる。
  ※monに戻す事を考慮し、stopコマンド発行で処理を終了させる。
 拡張子が.cppなので、g++でコンパイルして動作正常を確認。
 拡張子を.cに変えて、gccでコンパイルして動作正常を確認。

 動作確認が取れたので、Tang-Nano-4K開発環境にコピー。
 Tang-Nano-4Kの入出ルーチンと結合。
 main.cに呼び出し部を記述。
 コンパイル、書込みして動作正常を確認。
 モニタからBASIC(実はB一文字)で起動する。
  ※上記変更を加えたものをgithubに上げた。
   main.c,ttbasic.cの拡張子に、.txtが付いてるので消去して「前回の」と差し替えてね。
 左はSPI通信経由の操作、右はUART経由の操作。
BASIC_4K.jpg

注意事項

 コンパイル結果を下記に示すが、
    text   data  bss   dec   hex  filename
   19076  2356  1824  23256  5ad8  cm3_mon.elf
 dtaとbssセクションを加算すると、4kBを多少超えている。
 もしかするとmcsに割り当てた4KBでは収まらず、不具合の原因になる恐れも。
  ※mcsに8KB割り当てれば解消するが、デバックが窮屈になるので嫌だな。
   BASIC付加の本当の目的はデバッグ支援なので、障害出るまで放置予定(私の環境では)。

感想

 豊四季TinyBASICの入手から、Tang-Nano-4Kでの動作確認まで、約休日一日の手仕事。
 これは当人の力量などでは無く、豊四季TinyBASICが良く出来ている所為なんだろう。
 公開された作者に感謝します。
 なお、上記記載内容は全て無保証であり、各自の責任においてご利用願います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?