▲趣味で作ったポケットコンピュータのサンプルプログラムの動画を作ってみました。
自作のインタプリタ(NicoBASIC)で動いてます。
▲長いプログラムを入力するのは大変なので、パソコン側のプログラム転送ツールを作りました。
テトリスもどきのプログラム。1kバイトの空き容量のうち993バイトを使っています。
DIM B(3) DIM K(3) DIM D(8) *NG FOR I=0 TO 6 D(I)=&HC03 NEXT D(7)=&HFFF GOSUB *BN G=0:V=40 *MA E=X:W=Y:T=0 IF SW=31 THEN G=V IF SW=28 THEN E=E-1:GOSUB *HC IF SW=29 THEN E=E+1:GOSUB *HC IF T=0 THEN X=E IF SW=30 THEN FOR H=0 TO 2 K(H)=B(H) B(H)=0 NEXT FOR H=0 TO 2 FOR J=0 TO 2 B(H)=B(H) << 1 M=K(J) >> H AND 1 B(H)=B(H) OR M NEXT NEXT GOSUB *HC IF T THEN FOR H=0 TO 2 B(H)=K(H) NEXT ENDIF ENDIF G=G+1 % V IF G=0 THEN E=X W=W+1 GOSUB *HC IF T THEN GOSUB *FIX IF D(0) AND &H3FC THEN GOTO *NG ELSE Y=W ENDIF ENDIF BITMAP D,0,0,8 BITMAP B,-X,Y,3,1 GOTO *MA *HC T=0 FOR H=0 TO 2 M=B(H)<<E AND D(H+W) T=T OR M NEXT RETURN *FIX FOR H=0 TO 2 D(H+Y)=B(H)<<X OR D(H+Y) NEXT FOR H=0 TO 5 IF D(H)=&HFFF THEN FOR I=H TO 1 STEP -1 D(I)=D(I-1) NEXT D(0)=&HC03 IF V>0 THEN V=V-1 ENDIF NEXT GOSUB *BN RETURN *BN I=RND % 7 B(0)=2 B(1)=2 B(2)=0 IF I=0 THEN B(2)=2 IF I=1 THEN B(2)=6 IF I=2 THEN B(2)=3 IF I=3 THEN B(1)=7 IF I=4 THEN B(1)=3:B(2)=1 IF I=5 THEN B(1)=6:B(2)=4 IF I=6 THEN B(0)=6:B(1)=6 X=5:Y=0 RETURN
▲テトリスもどきの実行画面です。
BASICプログラムはEEPROMに格納しています。
回路図とプログラムはこちら。
https://sites.google.com/site/yugenkaisyanico/pokecom