Quantcast
Viewing all articles
Browse latest Browse all 2618

豊四季タイニーBASICをmbedに移植してみた。

”自分で組み立てて学ぶコンピューター”というものを見かけて調べてみたら、LPC1114にキーボードとディスプレイを繋いでBASICを動かすという面白いものだということが分かった。

自分で組み立てて学ぶコンピューター IchigoJam ブレッドボード版提供開始

しかし、自分の使い方だとディスプレイは不要なので、さらに調べてみるとマイコンにシリアル端末を繋いで動かすTinyBASICがあることが分かった。

豊四季タイニーBASICのリファレンスを公開  電脳伝説 Vintagechips

これは、Windows PC、PIC24F、Arduinoに対応しているが、mbedで使いたかったので移植してみた。

ハード依存はシリアル入出力ぐらいなので移植は簡単だった。

mbedに慣れた人なら1時間も掛からないと思う。

移植はここが参考になる。

豊四季タイニーBASICの移植の手引き  電脳伝説 Vintagechips

 

移植手順

1.ソースをダウンロードする。

 ここから豊四季タイニーBASICのソースをダウンロードし、適当なディレクトリに解凍する。

 PIC24F版が移植しやすい。

2.mbedコンパイラに新規プログラムを作成する。

 mbedコンパイラのメニュー New ー>New Program... で新しくプログラムを作成する。

 作成したプログラムに New ー>New File... で、空のファイル”ttbasic.cpp”と”ttbasic.h”を作る。

 拡張子は、”c”ではなく”cpp”なので注意。

 Image may be NSFW.
Clik here to view.

3.豊四季タイニーBASICのソースをmbedに持ってくる。

 豊四季タイニーBASICのソースを適当なテキストエディタで開き、先ほど作ったmbedコンパイラの該当するファイルへコピペする。

 必要なファイルは、"main.c"と”ttbasic.c”と”ttbasic.h”。

4.ソースを修正する。

 下記赤枠のようにソースを修正する。

【"main.cpp"の修正】

 Image may be NSFW.
Clik here to view.

 ――――――――――――――――以下省略――――――――――――――――――――――

【”ttbasic.cpp”の修正】

 Image may be NSFW.
Clik here to view.

 ――――――――――――――――途中省略――――――――――――――――――――――

 Image may be NSFW.
Clik here to view.

 ――――――――――――――――途中省略――――――――――――――――――――――

 Image may be NSFW.
Clik here to view.

 ――――――――――――――――以下省略――――――――――――――――――――――

5.コンパイルする。

いくつか警告が出るが無視しても大丈夫みたい。

Lpc1768とFRDM-K64F、LPC1114で動くことを確認している。

ハードウェアへの依存性が低いので他のmbedでも問題ないはず。

Image may be NSFW.
Clik here to view.

 6.実行する。

mbedに書き込み、TeraTermなどのシリアル端末ソフトで接続する。

うまくいけばこのようになるはず。これはLPC1114で動かした例。

 Image may be NSFW.
Clik here to view.

 Image may be NSFW.
Clik here to view.

7.コマンドの拡張

 ここまで来るとIO入出力コマンドを追加したくなるが、その時はここが参考になる。 

 実際にやってみたがそれほど難しくはなかった。

 ・機能拡張のおおまかな話  電脳伝説 Vintagechips

 

IO出力コマンドとWAITコマンドを追加してBASICでLチカしてみた。

 Image may be NSFW.
Clik here to view.

 Image may be NSFW.
Clik here to view.
 

 

ー以上ー

 

関連する記事

mbed LPC1114FN28を使ってみた。

参考リンク

mbed LPC1114での遊び方

 


Viewing all articles
Browse latest Browse all 2618

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>