REM 944BASIC 'すずむしさんでちょこっと遊ぼう' REM キーコード A=65:S=83:D=68:F=70:G=71:H=72:J=74:K=75:L=76 REM 表示文字と音階値 DIM M(1,128) M(0,A)='ド','15' M(0,S)='レ','17' M(0,D)='ミ','19' M(0,F)='ファ','20' M(0,G)='ソ','22' M(0,H)='ラ','24' M(0,J)='シ','26' M(0,K)='ど','27' HEADER 'テンポ?(DEFAULT=120)' LOCATE 1,2 INPUT TEMPO,3,4 IF LEN(TEMPO)=0 THEN TEMPO=120 CLS HEADER 'ASDFGHJK=ドレミファソラシど SPC=休 入力=終' REM 音符の数 NOTES=1023 DIM STACK(NOTES) C=1:LENGTH=8 X=0:Y=2:LOCATE X,Y *LOOP SYNC KY=INKEY IFBLK (KY>=65)*(KY<=90)*(LEN(M(0,KY))<>0) STACK(C)=STRCAT(STACK(C),',',LENGTH):LENGTH=12 C=C+1:STACK(C)=STR(M(1,KY)) X=X+2:LOCATE X,Y:PRINT M(0,KY) ENDIF IF (KY=13) THEN X=0:Y=Y+1:LOCATE X,Y:STACK(C)=STRCAT(STACK(C),',',LENGTH):LENGTH=12:C=C+1:STACK(C)=STR('00') REM スペース IF (KY=32) THEN X=X+2:LOCATE X,Y:PRINT ' ':STACK(C)=STRCAT(STACK(C),',',LENGTH):LENGTH=12:C=C+1:STACK(C)=STR('00') IF (X>=38) THEN X=0:Y=Y+1:LOCATE X,Y REM 入力キー IF (KY=767) THEN STACK(C)=STRCAT(STACK(C),',',LENGTH):LENGTH=12:STACK(C+1)='@END':GOTO *EXITLOOP IF PADX=1 THEN LENGTH=LENGTH+12:X=X+2:LOCATE X,Y:PRINT 'ー' WAIT 1 GOTO *LOOP *EXITLOOP TEMPO=STR(TEMPO) STACK(1)=STRCAT('t',TEMPO,',0') CLS HEADER 'ファイル名を入力してください' LOCATE 1,2 INPUT FILE,8,3 STACK(0)=STRCAT('#',FILE) FILE=STRCAT('F1:\PZ\',FILE,'.PZ') FOR I=0 TO NOTES IF STRCMP(STACK(I),'@END')=0 THEN ELEMENTS=I-1:I=NOTES NEXT I DIM TMP(ELEMENTS) FOR I=0 TO ELEMENTS TMP(I)=STR(STACK(I) NEXT I SAVETEXT FILE, TMP REM APL 'MPUW' END