nicobasic

EDU mk1のブートローダ

EDU mk1にはブートローダがなかったので、いまさらですが作ってみました。 ゆきさんが作ってくれたLED game用のブートローダ「MMCboot」を勝手に改造しています。 http://sourceforge.jp/projects/nicobasic/releases/40806/note これで、EDU mk1でもSDカー…

バージョンアップ2008/11/5版

NicoBASICの最新版(nicobas20081105.zip)です。 しばらく、「PWM」命令を無効にしていたので、それを使えるようにしました。 サンプルの「ltrobot.txt」などが再び動くようになりました。 実験用のモータ基板です。基板にはモータドライバしか載ってません…

バージョンアップ2008/10/28版

細切れなアップデートが続きます、、、 nicobas20081028.zipVideo出力のプログラムをアセンブラで書き直して(videodot.S)高速化させてみました。 2倍くらい速くなるかなと思ったんですが、 実際に増えたwidth方向のドット数は18ドット→23ドットでした。ち…

バージョンアップ2008/10/27版

EDU mk2用NicoBASICのバージョンアップ(nicobas20081027.zip)です。 nicobas20081024b.zipのバグを直しました。 ・秋月電子通商製LEDモジュール処理(akiled.c)がうまく点灯しない問題を対策。あと、今回からビデオ出力機能(video.c)を実装しました。抵抗2本…

センター試験の数学

EDU mk2用NicoBASICの最新バージョン(nicobas20081024b.zip)で センター試験の数学に出てくるプログラムをNicoBASICで動くようにしてみました (まだ完全に対応してませんが、、、)。 100 input "a=";A 110 input "b=";B 120 input "c=";C 130 U=C 140 V=…

TV出力機能の実験

まだ実験段階ですが、EDU mk2用のNicoBASICをTVに映してみました。 テレビに出せるのは20MHz時で、52x32ピクセル。 mini版のスモールフォント(3x5pixel)を使った場合、13字x5行表示ができました。 ▲20MHzのクリスタル発振子を付けて外部発振に設定します。カ…

漢字ROM

EDU mk2で漢字を表示させるとき、フォントデータをメモリカードから1文字ずつ取ってくるのは効率がよくありませんので、外部EEPROMにフォントデータを格納しようと思います。テストプログラム(edumk_2test)にEEPROM(24C1024または24C512)に「font.dat」を…

パックマンっぽいデモ4

LED表示用にパックマンっぽいデモをカスタマイズしました。 sample/pacpac4.txt キャラクタサイズを縮めて、小さい画面でも遊べるようにしています。 結局、昔作ったC言語版と同じような感じになりました。 あと、LED表示がやたらチカチカするので、最新版フ…

パックマンっぽい表示デモ3

パックマンっぽいデモに当たり判定を追加しました。 パワーエサも追加しました。取ると、モンスターが白くなって逃げます。 これで完成のつもりです。 絶対値を求めるために新しく搭載した「ABS」関数を使っています。今回のファームのバージョンアップ(nic…

パックマンっぽい表示デモ2

前回作ったパックマンっぽいゲームを改良して、モンスターを追加してみました。 全部で1796バイトです。あと200バイトくらいしか残ってません。 DIM D(20):DIM M(14):DIM T(4) DIM X1(4):DIM Y1(4) X1(0)=0:Y1(0)=-1 X1(1)=1:Y1(1)=0 X1(2)=0:Y1(2)=1 X1(3)=…

bitmap機能アップ

今回のファームのバージョンアップ(nicobas20080824.zip)ではbitmap命令の機能をアップさせました。サンプル sample/BITMAP3.txt XOR表示に対応させました。下地で色が反転するので、レイヤーっぽく表示させることができます。書式は BITMAP 配列名,X,Y,he…

パックマンっぽい表示デモ。

上下左右スイッチを押して、迷路の中のキャラを動かすことができます。敵とかは居ません。 全部で935バイトです。 CLS DIM D(4):DIM M(14) D(0)=&B0110<<12 D(1)=&B1111<<12 D(2)=&B1111<<12 D(3)=&B0110<<12 M( 0)= &B111111111111111 M( 1)= &B10000000000…

シリアルポート経由のプログラム転送

シリアルポート経由のプログラム転送方法を紹介します。次の手順でやってみてください。 Dsub9pinストレートのシリアルケーブルを用意してパソコンとEDU mk2を接続します。 シリアルポートの「RX」のジャンパ(受信)をショートさせておきます。 EDU mk2側で…

PONGのサンプルプログラム

PONGのサンプルプログラムの行番号なしバージョンです(pong3.txt)。 行番号を取ったので、415バイトに縮まりました。内容的には4ヶ月前に公開したものと変わってません。 液晶画面だと、球がまったく見えません。LEDの使用をおすすめします。 X=9:Y=8:H=7:I=…

なんちゃってsin/cos

nicobas20080822b.zipで「なんちゃってsin/cos」を搭載させてみました。 書式は「SIN(角度)」「COS(角度)」です。 引数の角度はラジアンではなく度数。 戻り値は整数-255〜+255です。少数を扱えないので戻り値を整数にしてるのがミソです。 sin/cosもどきを…

ライフゲーム2

あと、前回作ったライフゲームをBITMAP命令に置き換えてみました(life2.txt)。 (50倍くらいに表示速度を上げてます。実際はこんなに早くありません) DIM X1(8):DIM Y1(8) DIM V(16) X1(0)=0:X1(1)= 1:X1(2)= 1:X1(3)= 1 X1(4)=0:X1(5)=-1:X1(6)=-1:X1(7)=-…

BITMAP2

BITMAP命令のパフォーマンスを知りたかったので、 サンプルプログラム(bitmap2.txt)を作りました。 DIM X(5):DIM Y(5):DIM X1(5):DIM Y1(5) DIM D(16) D(0)= &B0000111111110000 D(1)= &B0001000000001000 D(2)= &B0010000000000100 D(3)= &B010000000000001…

バージョンアップ3

先日に公開したEDU mk2用のNicoBASIC(自家製BASICインタプリタ)に不具合を見つけたので、修正しました。 ソースとバイナリです。 http://sourceforge.jp/projects/nicobasic/releases/・gosubとforを一度に一杯呼ぶと暴走する不具合。 →対策としてバッファを…

TETRISもどき

サンプルプログラムです。 昔、PIC-BASIC用に作った「ブロックの落ちるパズルゲーム」を移植しました。 CLS DIM B(3):DIM BK(3) DIM D(16):DIM V(16) *NEWGM D(0)= &B110000000011 D(1)= &B110000000011 D(2)= &B110000000011 D(3)= &B110000000011 D(4)= &B…

NicoBASICのバージョンアップ2

EDU mk2用のNicoBASIC(自家製BASICインタプリタ)をたて続けにバージョンアップしました。 ソースとバイナリです。 http://sourceforge.jp/projects/nicobasic/releases/

インベーダもどき

ちなみにインベーダもどきのプログラムを作ってみました。さっそく新機能のDIM命令を使っています。 1 DIM V(6):DIM W(6) 2 FOR I=0 TO 5 3 V(I)=I*10:W(I)=1 4 NEXT 5 X=15:Y=25 6 A=0:B=0 7 WHILE 1 8 CLS 9 LOCATE X,Y:PRINT "A" 10 IF B=0 THEN 11 IF SW…

nicoBASICのバージョンアップ

EDU mk2用NicoBASIC(自家製BASICインタプリタ)のバージョンアップです。 http://sourceforge.jp/projects/nicobasic/releases/ ・エディットできるデータの上限を1000→2000バイトに増やしました。 ・配列数の上限を50→200に増やしました。 ・配列名の上限を1…

メモリカード読み込み

EDU mk2用のnicoBasicにメモリカード読み込み機能(fopen、fread、fclose)を付けてみました。 まだ実験中です。 1 dim buf(40) 2 fopen "test.bmp" 3 fread buf,14 4 fclose 5 for i=0 to 13 6 print buf(i) 7 print "," 8 next ▲ファイルダンプの実行結果。 …

ライフゲーム

nicoBasicで動くライフゲームです。 1 dim x1(8) 2 dim y1(8) 3 x1(0)=0:x1(1)= 1:x1(2)= 1:x1(3)= 1 4 x1(4)=0:x1(5)=-1:x1(6)=-1:x1(7)=-1 5 y1(0)=-1:y1(1)=-1:y1(2)=0:y1(3)= 1 6 y1(4)= 1:y1(5)= 1:y1(6)=0:y1(7)=-1 7 CLS 8 FOR I=0 TO 100 9 X= RND %…

DIMに対応

1 dim x(10) 2 dim y(10) 3 cls 4 for i=0 to 9 9 d = RND % 3 -1 10 x(i) = x(i) + d 11 if x(i)<0 then x(i)=0 12 if x(i)>120 then x(i)=120 13 d = RND % 3 -1 14 Y(i) = Y(i) + d 15 if y(i)<0 then y(i)=0 16 if y(i)>31 then y(i)=31 17 locate x(i),…

EDUmk2用ブートローダの使い方

NicoBASICを2ヶ月ぶりにバージョンアップしました。 ▲先月にできた新バージョンのEDUmk2基板。マイコンなど最低限の部品だけ載せてます。 ▲adm3202とdsub9pinコネクタを付けた状態です。もっと綺麗な状態の写真を http://photos.yahoo.co.jp/ph/takuyamatsub…

EDUmk2の7/22版

「EDU mk2」のパターンをちょっといじりました。 使わないので、モータドライバを取りました。 SRAMも取ってしまいたかったのですが、副作用が出そうなのでやめました。 ハード的にはもう不満はないので、Basicの機能upをなんとかしたいです。http://nicotak…

makeのブログ

http://jp.makezine.com/blog/2008/06/basic.html Makeのブログにのっけて頂いたみたいなので、 記念にBASICの思い出を。小学生の時に買った「こんにちはマイコン」です。これは2巻。これが出発点ですね。 あと、ベーマガ。 写真は学生時代に送ったベーマガ…

素数計算・グラフ表示サンプルプログラム

http://nicotak.com/nicobasic/edu2/EDUmk2が教材に使えるというアピールがいると思って、 素数を求めるプログラム(prime.txt)を作ってみました。 10 a=1 20 div=2 40 if a % div = 0 then goto 75 50 div=div+1 55 if div

NicoBASIC robot

ブログは、だんだんと記事がまとまらなくなる心配があるのですが、、、ちょっと実験的に作ったものを出してみます。 「NicoBASIC」というオリジナルのBASICインタプリタで動くライントレースロボットです。 基板は3枚あって、一番上がEDU mk2、その下が電池…