ポケットコンピュータ(サンプルプログラム)



▲趣味で作ったポケットコンピュータのサンプルプログラムの動画を作ってみました。
自作のインタプリタ(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