10000 ! テキスト色変更式カーソル移動プログラム 10010 !========================================= 10020 ! お約束の処理 10030 INIT 10040 TEXTMODE 2 10050 RANDOMIZE 10060 !========================================= 10070 ! BLACKで適当な文字を表示してみる 10080 TEXTCOL BLACK 10090 FOR Y=0 TO 19 10100 FOR X=0 TO 49 10110 LOCATE X,Y 10120 JIS_CODE=INT(RND*26)+65 ! A-ZのJIS CODE 10130 PRINT CHR$(JIS_CODE); 10140 NEXT X 10150 NEXT Y 10160 !========================================= 10170 ! カーソル移動処理のメイン部分 10180 X,Y=0 ! 最初の座標位置 10190 DO 10200 ! PAD入力チェック 10210 IF PAD(1,1)>0 THEN X=MOD(X+1,50-3) 10220 IF PAD(1,2)>0 THEN X=MOD(X-1,50-3) 10230 IF PAD(1,3)>0 THEN Y=MOD(Y-1,20) 10240 IF PAD(1,4)>0 THEN Y=MOD(Y+1,20) 10250 ! 10260 ! 座標(X,Y)から3文字分の文字をR$に格納 10270 CALL SCRSTR(R$,X,Y,3) 10280 TEXTCOL WHITE 10290 LOCATE X,Y 10300 PRINT R$; 10310 ! TV画面の表示が終わるまで待つ 10320 ! カーソル移動速度を遅くするには 10330 ! FSYNCのAの数値を大きくする 10340 FSYNC 1 10350 TEXTCOL BLACK 10360 LOCATE X,Y 10370 PRINT R$; 10380 LOOP UNTIL PAD(1,20)=1 10390 LOCATE 0,20 10400 END 10410 !========================================= 10420 ! 座標(X1,Y1)から横にN個分の画面に表示され 10430 ! ている文字を読み出してS$に格納する 10440 SUB SCRSTR(S$,X1,Y1,N) 10450 S$="" ! S$の初期化 10460 FOR I=0 TO N-1 10470 ! 座標(X1+I,Y1)の文字をS$に加える 10480 S$=S$+SCRCHR$(X1+I,Y1) 10490 NEXT I 10500 END SUB