TOP
DOWNLOAD|sample

Original BASIC Interpreter 'NicoBASIC'....During development.

■■■ What is NicoBASIC ?
マイコンで動作するオリジナルのBASICインタプリタです。
(This is Original BASIC Interpreter on MicroController)

パソコンは不要です。ライタも不要です。コンパイラも必要ありません。
(PC less, Writter less , and Compiler less.)

PS/2キーボードやシリアル通信でそのままマイコンのプログラミングが行えます。
(We can program this with a PS/2 keyboard,etc...)




■■■命令/コード(Command/Code)
RUN
LIST
NEW

COLOR (color)
LOCATE (x),(y)
PRINT (value)
PEEK (address)
POKE (address),(data)
CLS
BEEP (hz),(time)
PSET (x),(y),(color)
LINE (x1),(y1),(x2),(y2),(color)
*color:0=black / 1=Red / 2=Green / 3=Yellow / 5=XorRed / 6=XorGreen / 7=XorYellow

SCROLL (dx),(dy)
IF (value) THEN ...[ELSE...][ENDIF]
WHILE (value) ....WEND
FOR (variable)=(start) TO (end) [STEP (step)]...NEXT
GOTO (line number)

<=
=<

>=
=>


<>

*
/
+
-

AND
OR
XOR

PORTB
PORTC
PORTD
PINB
PINC
PIND
DDRB
DDRC
DDRD
ADC2
SW
*1=UP / 2=DOWN / 4=LEFT / 8=RIGHT / A=16 / B=32

■■■Tryout
・機能限定お試し版です。開発途中なので動作は保証できません。実用性もイマイチです。
・対応機種は
LED Game for AVRです。
・文字列が使えません。
・プログラムはマイコン内のEEPROMに格納されます。最大512バイトまで。
・1行あたり45バイトまで。
・数式がカッコに対応してません。
・変数名は1つあたり6文字まで。変数は10個作れます。
・forのネストは3重ループまで。ifとwhileのネストは無制限。

[DOWNLOAD](2007/07/09 NicoBASIC Alpha Version4)
・実行速度が2倍くらい速くなりました。
・COLOR命令が使えるようになりました。
・メモリカードからの読み込みに対応しました。
・PRINT "文字列"に対応
・PS/2キーボードのテンキー対応
・ELSEのバグ修正
・WHILEのバグ修正
[DOWNLOAD](2007/06/21 NicoBASIC Alpha Version3)
・カーソルキー/方向スイッチでプログラムリストが参照できるようになりました。
・テキストエディタ化しました。画面のカーソルが点滅して文字に重なるようになりました。最後にENTERを押さないとプログラムが入力されません。
・Aスイッチを押すとプログラムが実行(RUN)されるようになりました。
・スイッチ入力用の変数「SW」が使えるようになりました。

[DOWNLOAD](2007/05/15 NicoBASIC Alpha Version2)

[公開終了](2007/05/13 NicoBASIC Alpha Version1/)

■導入方法

LED Game for AVRにnicobasic.hexを書き込んでください。CHaNさん仕様のAVRライタを使う場合は次のコマンドとなります。
avrsp -Pc1 -W default\nicobasic.hex

0番地からブート/内部発振8MHzに設定する場合は次のようになります。
avrsp -Pc1 -FX11111001 -FL11100010 -W default\nicobasic.hex

■プログラミング方法
NicoBASICではPS/2とシリアル通信の両方が常に受信待機状態になっていて、そのうち受信のあったほうを採用します。
(A)PS/2キーボード


または NicoKeyboardを接続します。



(B)シリアル通信
CHaNさん仕様のAVRライタでPCと接続してシリアル通信で行います。 ハイパーターミナルを使って入力するか、専用ソフト「nb_term.exe」を使って一括送信します。 ボーレートは9600bps、データビット8、パリティなしです。 1バイトごとにウエイトを入れて送信してください。



(C)メモリカード
・MISO/MOSI/SCK/PC3にメモリカードソケットをつなぎます。これによってシリアルの送受信ができなくなりますので、ご注意ください。
Green Cardの接続例
・対応しているメモリカードはFAT12かFAT16にフォーマットしたSDカード、またはマルチメディアカードです。
・メモリカードのトップディレクトリにプログラムのファイルを置きます(マルチメディアカードは未確認)。
・プログラムのファイルはテキスト形式です。プログラムサイズは約512bytesまでの制限があります。
・本体の電源を入れてAスイッチを押します
・メモリカードソケットにメモリカードを入れます。
・上下左右スイッチで「LOAD」に選択して、Aスイッチを押します。
・ファイルビューアが起動します。左右スイッチでファイル選択、Aスイッチで決定、Bスイッチでキャンセルです。 ・メモリカードの中身がEEPROMに書き込まれてから実行されます。


■■■ Sample Code
Code1:'Loop Test Program'(LED Game for AVR + NicoBASIC)
・3回ループします。
10 A=0
20 A=A+1
30 PRINT A
40 IF A<3 THEN GOTO 20


Code2:'Switch Test Program'(LED Game for AVR + NicoBASIC)
・4方向スイッチに合わせて点が動きます。
10 PORTD=&HFE
20 X=8
30 Y=8
40 K=PIND
50 PSET X,Y,0
60 IF K AND &H40=0 THEN X=X+1
70 IF K AND &H20=0 THEN X=X-1
80 IF K AND &H80=0 THEN Y=Y+1
90 IF K AND &H10=0 THEN Y=Y-1
100 PSET X,Y,1
110 GOTO 40


Code3:'Line Test Program'(LED Game for AVR + NicoBASIC)
・LINE命令のデモです。Timer2を乱数の代りに使っています。
10 X1=7
20 Y1=8
30 X2=12
40 Y2=9
50 X1D=1
60 Y1D=1
70 X2D=-1
80 Y2D=-1
90 R=PEEK &HB2
94 R=R AND 2+1
95 X1=X1+X1D:Y1=Y1+Y1D
96 X2=X2+X2D:Y2=Y2+Y2D
100 IF X1<0 THEN X1D=R
110 IF X1>15 THEN X1D=-R
120 IF Y1<0 THEN Y1D=R
130 IF Y1>15 THEN Y1D=-R
140 IF X2<0 THEN X2D=R
150 IF X2>15 THEN X2D=-R
160 IF Y2<0 THEN Y2D=R
170 IF Y2>15 THEN Y2D=-R
175 CLS
180 LINE X1,Y1,X2,Y2,1
190 GOTO 90


Code4:'For-loop Program'(LED Game for AVR + NicoBASIC)
・3重のFORループです。
10 FOR J=0 TO 15
20 FOR I=15 TO 0 STEP -1
30 CLS
40 LINE I,0,J,15,1
50 FOR K=0 TO 20
60 NEXT
70 NEXT
80 NEXT
90 GOTO 10


Code5:'Pong Program'(LED Game for AVR + NicoBASIC)
・pongもどきです。
1 PORTD=&HFE
2 X=9:Y=8:H=7:I=7:W=1:V=1
3 K=PIND
4 IF K AND &H80=0 THEN IF H<13 THEN H=H+1
5 IF K AND &H10=0 THEN IF H>0 THEN H=H-1
6 IF K AND &H04=0 THEN IF I<13 THEN I=I+1
7 IF K AND &H02=0 THEN IF I>0 THEN I=I-1
8 X=X+W:Y=Y+V
9 IF X<0 THEN W=-W
10 IF X>15 THEN W=-W
11 IF Y<0 THEN V=-V
12 IF Y>15 THEN V=-V
13 IF X=2 THEN
14 IF H<=Y THEN IF H+3>Y THEN W=-W
15 ENDIF
16 IF X=13 THEN
17 IF I<=Y THEN IF I+3>Y THEN W=-W
18 ENDIF
19 CLS:LINE 2,H,2,H+2,1:LINE 13,I,13,I+2,1
20 PSET X,Y,1
21 GOTO 3


Code6:'Program'(LED Game for AVR + NicoBASIC)
・ジェミニ誘導もどきです。
1 X=20:Y=15:X1=40:Y1=0
2 H=700:V=700
3 CLS
4 PSET X/100,Y/100,1
5 PSET H/100,V/100,1
7 IF SW AND 8 THEN H=H+10
8 IF SW AND 4 THEN H=H-10
9 IF SW AND 2 THEN V=V+10
10 IF SW AND 1 THEN V=V-10
11 IF X>H THEN XD=H-X-100 ELSE XD=H-X+100
13 IF Y>V THEN YD=V-Y-100 ELSE YD=V-Y+100
15 X1=XD/90+X1:Y1=YD/90+Y1
16 X=X+X1:Y=Y+Y1
18 GOTO 3


Code7:'Program'(LED Game for AVR + NicoBASIC)
・です。
1 WHILE 1
2 FOR I=0 TO 12
3 CLS
4 COLOR 1
5 LOCATE I,0:PRINT "R"
6 COLOR 2
7 LOCATE I,8:PRINT "G"
8 FOR J=0 TO 500
9 NEXT
10 NEXT
11 WEND


''''''
DEMO movie search







Copyright 2007 NICO, Corp. / Takuya Matsubara