Natural Tiny Basic (NT-Basic)

構文


REM

REM命令を用いると、コメントを記述できます。

100 REM Complete example.

DIM

使用したい変数名は、あらかじめDIM命令で宣言してから使用します。

110 DIM X, Y, Z, I, J
120 X=2; Y=4; Z=8; I=0; J=0

PRINT

PRINT命令を使うと変数の中身の値の表示が可能です。 変数Xの値を表示したい場合、以下のように記述します。 hal.cの実装によって標準出力やLCDなど出力先が決まります。 ダブル・クオーテーションを使って文字列の表示も可能です。 もし、改行をしたくない場合には、終わりに;記号を追加して下さい。 また、文字列に続けて変数の中身の値の表示も可能です。 カンマに続けて変数名を記述します。

130 PRINT X, Y, Z
140 PRINT "This is a text string."
150 PRINT "(X, Y, Z)="; X, Y, Z

GOTO

GOTO命令を用いると、指定した行番号へ処理を移動します。

160 GOTO 180
170 PRINT "Control does not reach here."
180 PRINT "Our next control."

IF - THEN

IF - THEN命令を用いると、条件判断を交えながら命令を実行できます。

190 IF X < 5 THEN PRINT "X < 5"
200 IF Y < 5 THEN PRINT "Y < 5"
210 IF Z < 5 THEN PRINT "Z < 5"

FOR - NEXT

FOR- NEXT命令を用いると、繰り返し処理を実行できます。

220 FOR I = 1 TO 10
230 PRINT (X * I), (Y * I), (Z * I)
240 NEXT
250 FOR I = 1 TO 10
260 J = J + (X + Y + Z)
270 PRINT "J = J + (X + Y + Z) = "; J
280 NEXT
290 PRINT "J=";J

INPUT

INPUT命令を用いると、hal.cで定義された標準入力から値を入力できます。

300 PRINT "Enter a number for I:";
310 INPUT I
320 INPUT "Enter a number for J: ", J

GOSUB - RETURN

GOSUB - RETURN命令を用いると、サブルーチンの呼び出しとサブルーチンからの復帰を実行できます。

330 GOSUB 350
340 GOTO 370
350 PRINT "This is a sub routine."
360 RETURN

READ

READは、抽象化されたハードウェアから何らかの読み込み処理を必要とする場合にhal.cに実装を追加する事で機能します。

変数Xで定義されたポート番号から値を読み込み、変数Yに格納します。 ポート番号0から値を読み込み、変数Zに格納します。

370 READ 0, X
380 PRINT "X=", X
390 READ I, J
400 PRINT "J=", J

WRITE

WRITEは、抽象化されたハードウェアへ何らかの書き込み処理を必要とする場合にhal.cに実装を追加する事で機能します。

変数Xで定義されたポート番号へ、変数Yに格納されている値を書き込みます。 ポート番号0へ変数Zに格納されている値を書き込みます。

410 WRITE 0, X
420 WRITE I, J

END

END命令を使うとプログラムの終了を実行できます。

430 END

完全なサンプル・コード

構文解説で断片的に用いたコードを繋ぎ合わせた完全なサンプル・コードを以下に示します。

100 REM Complete example.
110 DIM X, Y, Z, I, J
120 X=2; Y=4; Z=8; I=0; J=0
130 PRINT X, Y, Z
140 PRINT "This is a text string."
150 PRINT "(X, Y, Z)="; X, Y, Z
160 GOTO 180
170 PRINT "Control does not reach here."
180 PRINT "Our next control."
190 IF X < 5 THEN PRINT "X < 5"
200 IF Y < 5 THEN PRINT "Y < 5"
210 IF Z < 5 THEN PRINT "Z < 5"
220 FOR I = 1 TO 10
230   PRINT (X * I), (Y * I), (Z * I)
240 NEXT
250 FOR I = 1 TO 10
260   J = J + (X + Y + Z)
270   PRINT "J = J + (X + Y + Z) = "; J
280 NEXT
290 PRINT "J=";J
300 PRINT "Enter a number for I:";
310 INPUT I
320 INPUT "Enter a number for J: ", J
330 GOSUB 350
340 GOTO 370
350 PRINT "This is a sub routine."
360 RETURN
370 READ 0, X
380 PRINT "X=", X
390 READ I, J
400 PRINT "J=", J
410 WRITE 0, X
420 WRITE I, J
430 END