Natural Tiny Basic (NT-Basic)

よくある質問


ポーティングする場合、どこから始めれば良いですか?

hal.cの実装から始めて下さい。
組み込みシステムの場合には、progeditモジュール、texteditモジュールは不要かもしれません。

独自の命令を追加する事は可能ですか?

はい。
小規模なモジュールに分割設計されたNatural Tiny Basic (NT-Basic)では、既存の命令を参考にして独自の命令を簡単に追加できます。
追加したい独自の命令に一番近い既存構文を参考に命令を追加して下さい。

命令の基本定義はcore.hに存在し、statement.cで実際の構文制御を行ないます。
ntbasic.cに追加した命令に至る処理を追加して下さい。

独自のハードウェアを制御するような事は可能ですか?

はい。
READ命令、WRITE命令を使って可能です。
制御の詳細はhal.cに隠蔽されており、この実装詳細を変更して下さい。

100 PRINT "This program demonstrates HAL I/O."
110 DIM I, O, V
120 INPUT "INPUT  PORT=", I
130 INPUT "OUTPUT PORT=", O
140 READ I, V
150 PRINT "Input"
160 PRINT "Port"; I; "Value"; V
170 WRITE O, V
180 PRINT "Output"
190 PRINT "Port"; O; "Value"; V
200 END

変数は内部でどのように扱われますか?

変数は対象処理系におけるintで処理されます。
変数名は最大8文字で32個まで定義できます。
扱いたい変数の個数を増やしたり、許容する変数名の最大文字数を増やしたい場合には、variable.hにある定義を変更して下さい。

FORやGOSUBはネストできますか?

はい。
以下のサンプルもご覧下さい。

FORのネスト例

100 PRINT "This program demostrates nested FOR loops."
110 FOR X = 1 TO 5
120   FOR Y = 1 TO 10
130     PRINT X; Y; X*Y
140   NEXT
150 NEXT

GOSUBのネスト例

100 PRINT "This program demonstrates nested GOSUBs."
110 INPUT "enter a number: ", I
120 GOSUB 140
130 END
140 FOR T = 1 TO I
150   X = X + I
160   GOSUB 190
170 NEXT
180 RETURN
190 PRINT X;
200 RETURN