次はSTM32ボードを積極的に使ていきたい(14) - Tiny BASIC(2)
豊四季版tiny BASIC をBlue Pill用に移植&機能追加中です。
オリジナル版は、シリアル接続で行単位のプログラム入力でしたが、
ビデオ出力とPS/2キーボード対応、フルスクリーンエディタ対応等の機能追加して
IchigoJamのような感じで利用出来るようになってきました。
グラフィック描画や、GPIOを使った入出力、I2C、シリアル通信、RTC対応等
色々と詰め込中です。
豊四季タイニーBASIC for Arduino STM32 V0.6
https://github.com/Tamakichi/ttbasic_arduino/tree/ttbasic_arduino_ps2_ntsc
« 次はSTM32ボードを積極的に使ていきたい(13) - グラフィック液晶 | トップページ | 次はSTM32ボードを積極的に使ていきたい(15) - Tiny BASIC(3) »
「arduino」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「ARM」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
「STM32」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
コメント
« 次はSTM32ボードを積極的に使ていきたい(13) - グラフィック液晶 | トップページ | 次はSTM32ボードを積極的に使ていきたい(15) - Tiny BASIC(3) »
たま吉さん、TinyBASIC に興味があり、よく拝見しています。
現在、私は PIC32MX250F128B に豊四季タイニーBASIC の移植を試みています。
使用法としては、組み込みで、ターミナルから使うことを想定しています。
そこで、質問なのですが、
1.豊四季タイニーBASIC for Arduino STM32 のソースの一部分を使わさせて頂いてよろしいでしょうか。
2.もし使ってよろしいなら、V0.5 と V0.7 、どちらから引用したらいいでしょうか。(TV出力は使わないです。)
以上、よろしくご回答をお願いします。
投稿: みのすけ | 2017年4月24日 (月) 21時38分
みのすけさん
ソースの使用、OKです。
ターミナル上で本格的なスクリーン制御を行うのであれば、V0.5の方が良い思います。
V0.5では、ターミナル上でフルスクリーンエディットをサポートしています。
V0.6以降は、一旦ターミナルのスクリーン制御を廃止しています。
スクリーン制御はmcursesライブラリをつかっています。
mcursesライブラリの移植も必要になるかもしれませんね。
https://nuneno.cocolog-nifty.com/blog/2017/03/arduinocurses-9.html
投稿: たま吉さん(管理者) | 2017年4月24日 (月) 22時53分
たま吉さん、ありがとうございます。
豊四季タイニーBASIC for Arduino STM32 V0.5 は機能が豊富ですごく参考になります。
所で変数は A~Z のみですが、自由な文字列の変数を使う様には出来ないでしょうか。
最初に A~Z に自由な文字列変数の割り当てを宣言してから使う様にします。
例えば、
10 DEFINE LED1 AS A ← LED1 という変数を 変数Aに割り当てて使用する。
20 LED1=1
30 OUT LED1
当方、プロクラミングの知識が浅く、自分で追加するのは難しいです。
ご意見をよろしくお願いします。
投稿: みのすけ | 2017年4月25日 (火) 07時31分
みのすけさん
まずは、変数の管理については、次の構造を踏まえての修正が必要となります。
1)豊四季タイニーBASIC では、入力したプログラムの文字列を
決められたキーワードに対応する中間コードに変換してメモリー上に格納しています。
2)変数はそのキーワードに無い1文字のアルファベットというルールで変数と判断しています。
そのアルファベットA-Zは変数コード0~25となります。
中間コードでは[I_VAR] [変数コード]の2バイトで管理しています。
10 DEFINE LED1 AS A
20 LED1=1
30 OUT LED1
を実装するには、
10 DEFINE LED1 AS A では
1)DEFINE、ASの中間コードの追加
2)中間コードに変換するフェーズでDEFINE以降の文字列を変数の別名として管理するテーブル等への登録
20 LED1=1、30 OUT LED1 では
1)LED1を中間コードに変更する際、
[I_VAR][変数コード]の形式に従い、LED1をAの変数コードに変換する処理の実装
2)中間コードからの逆変換で
[I_VAR][変数コード]からLED1を復元するための処理の実装
等のLED1の中間コード変換、中間コード逆変換を処理する必要があります。
豊四季タイニーBASIC の開発者さんが
「タイニーBASICをCで書く」とう書籍を出しているので、参考にしてはどうでしょうか?
私は購入していませんが...^^
投稿: たま吉さん(管理者) | 2017年4月25日 (火) 08時59分
たま吉さん、アドバイスありがとうございます。
「タイニーBASICをCで書く」の本を読んで、トライしてみようと思います。
投稿: みのすけ | 2017年4月25日 (火) 09時43分