REM 944BASIC 'WallPaper2 設定支援' REM メインメニュー DIM M(10)='WallPaper2*コマンド','MORE(識別子+名前)入力','MORE識別子のみ入力','WallPaper2特殊識別子','9Bファイル(C1:)入力','9Bファイル(C2:)入力','画像ファイル(F0)','画像ファイル(C2:WALL)','F0:*.(拡張子)','F1:*.(拡張子)','最小化' REM WPコマンド DIM WPCOM(1,3) WPCOM(0,0)='背景画像','*background.image.' WPCOM(0,1)='背景色(RGB)','*background.color.' WPCOM(0,2)='セパレータ','*separator' WPCOM(0,3)='キャンセル','' REM メニュー表示用配列 DIM WPCMN(3) FOR I=0 TO 3 WPCMN(I)=STR(WPCOM(0,I)) NEXT I REM WP特殊識別子 DIM WPIDF(1,14) WPIDF(0,0)='電源オフ','off' WPIDF(0,1)='アクションリスト','act' WPIDF(0,2)='予定入力','day' WPIDF(0,3)='アクションプランナ','pln' WPIDF(0,4)='INETライブラリ','lib' WPIDF(0,5)='PPP接続','ppp' WPIDF(0,6)='INET録画','rec' WPIDF(0,7)='メール送信','sou' WPIDF(0,8)='送信箱','sob' WPIDF(0,9)='メール受信','jus' WPIDF(0,10)='受信箱','jub' WPIDF(0,11)='メール作成','sak' WPIDF(0,12)='ユーザ設定','usr' WPIDF(0,13)='壁紙起動','w?' WPIDF(0,14)='キャンセル','' REM メニュー表示用配列 DIM WPIDM(14) FOR I=0 TO 14 WPIDM(I)=STR(WPIDF(0,I)) NEXT I REM その他配列 REM MORE/9B一覧(名称と識別子)を格納 DIM MTMP(1,511) REM MORE/9B一覧のメニュー用 DIM MN(511) REM ファイルの有無確認用の一時配列 DIM APM(1) REM その他のファイル用 DIM SUBM(512) REM 改行(エディタによっては、CRLFでは REM まずいおそれがあるので、CRのみ) CR=CHR(13) EVENT 100,999,1:SCREEN 0,0,120,16 FONT 48 COLORBG 192,192,192:CLS REM処理待ちループ *LOOP SYNC IFBLK PADONA KEYWAIT GOSUB *MAINMENU ELSEIF PEN GOSUB *MAINMENU ENDIF COLORFG 96,96,128 GCURSOR 8,3: PRINT 'PUSH [決定] TO SHOW MENU..' COLORFG 0,0,0: BOX 0,0,119,15 GOTO *LOOP REM メニュー表示 REM パスなどをカスタマイズするときは REM ここの当該部分を修正すること *MAINMENU REM OP=OUTPUTで送出する文字列 OP='' REM MNM=MORE名、または9Bソフト名 MNM='' REM 画面拡大 SCREEN 120,0,120,320 CLS: BOX 0,0,119,319 GCURSOR 10,20 MENU M,11,1 MNO=MENUNO IFBLK MNO=0 REM WPコマンド MENU WPCMN,4,1 IF MENUNO=5 THEN GOTO *SKP0 OP=STR(WPCOM(1,MENUNO)) IF INSTR(OP,'?')<>0 THEN GOSUB *INPNUM ELSEIF MNO=1 REM MORE識別子+名前 GOSUB *APLMENU OP=STRCAT(OP,',',MNM,CR) ELSEIF MNO=2 REM MORE識別子のみ GOSUB *APLMENU REM OP=STRCAT(OP,CR) ELSEIF MNO=3 REM WP特殊識別子 MENU WPIDM,15,1 OP=STR(WPIDF(1,MENUNO)) IF INSTR(OP,'?')<>0 THEN GOSUB *INPNUM ELSEIF MNO=4 REM BASファイル(C1) D='C1:\944BASIC\' GOSUB *QBMENU IF LEN(OP) THEN OP=STRCAT('WOFZ,',MNM,CR,'*',D,OP,CR) ELSEIF MNO=5 REM BASファイル(C2) D='C2:\944BASIC\' GOSUB *QBMENU IF LEN(OP) THEN OP=STRCAT('WOFZ,',MNM,CR,'*',D,OP,CR) ELSEIF MNO=6 REM 画像ファイル(F0) REM D=ディレクトリ(パス) REM F=ファイル指定(ワイルドカード) D='F0:\__ZAURUS\' F='*.JPG' GOSUB *FILEMENU IF LEN(OP) THEN OP=STRCAT(D,OP) ELSEIF MNO=7 REM 画像ファイル(C2:\WALL\) REM D=ディレクトリ(パス) REM F=ファイル指定(ワイルドカード) D='C2:\WALL\' F='*.JPG' GOSUB *FILEMENU IF LEN(OP) THEN OP=STRCAT(D,OP) ELSEIF MNO=8 REM 拡張子指定(F0) REM D=ディレクトリ(パス) REM F=ファイル指定(ワイルドカード) D='F0:\__ZAURUS\' F='*.' GOSUB *INPEXT GOSUB *FILEMENU IF LEN(OP) THEN OP=STRCAT(',',OP,CR,'*',D,OP,CR) ELSEIF MNO=9 REM 拡張子指定(F1) D='F1:\__ZAURUS\' F='*.' GOSUB *INPEXT GOSUB *FILEMENU IF LEN(OP) THEN OP=STRCAT(',',OP,CR,'*',D,OP,CR) ELSE GOTO *SKP0 ENDIF REM OP(出力する文字列)が空の場合は REM 何も出力しない IF LEN(OP)=0 THEN GOTO *SKP0 REM 文字列の出力処理 SETPEN 0,239,319 OUTPUT OP SETPEN 0,239,319 *SKP0 FONT 48 SCREEN 0,0,120,16 CLS SETPEN 0,239,319 RETURN REM 数字(2桁)入力 REM 入力された数字と?を置換する *INPNUM RP='':N='' FONT 64 LOCATE 0,8 PRINT '数字(2桁)を入力して' PRINT 'ください' PRINT '例:01、13' INPUT N,2,4 IF LEN(N)<2 THEN GOTO *INPNUM L=LEN(OP): QP=INSTR(OP,'?') LP=LEFT(OP,QP-1) IF QP512 THEN MESSAGE '512ファイル以上あるため表示できません。拡張子を変更するなどの方法で対処してください。':RETURN SUBM(C)='キャンセル' SORT SUBM,0,C GCURSOR 8,16 MENU SUBM,C+1,0 IF MENUNO=C THEN FONT 48:RETURN OP=STR(SUBM(MENUNO)) FONT 48 RETURN