100 '---------------  ＶＩＬローダファイル Ver3.10　---------------
110 '--------------------  ＶＩＬ組み込み開始　--------------------
120 CLEAR ,,512,FRE(4)-1024*128,0,0               'メモリ領域設定
130 SCREEN 0:CLS
140 VIL_W0%=0:VIL_W1%=0:VIL_W2%=0:VIL_W3%=0:VIL_W4%=0  '汎用ワーク変数
150 VIL_W5%=0:VIL_W6%=0:VIL_W7%=0:VIL_W8%=0:VIL_W9%=0
160 VIL_W0&=0:VIL_W1&=0:VIL_W2&=0:VIL_W3&=0:VIL_W4&=0  '汎用ワーク変数
170 VIL_W5&=0:VIL_W6&=0:VIL_W7&=0:VIL_W8&=0:VIL_W9&=0
180 VIL_W0$="":VIL_W1$="":VIL_W2$="":VIL_W3$=""
190 'ループ変数                長さ
200 VIL_I%=0:VIL_J%=0:VIL_K%=0:VIL_L%=0
210 '文字列汎用,ファイル名汎用,描画色  ,背景色(0..15)
220 VIL_A$="":VIL_F$="":VIL_C%=15:VIL_CB%=0:VIL_CC%=7
230 '左上隅・右下隅座標
240 VIL_X%=0:VIL_Y%=0:VIL_W%=0:VIL_Z%=0
250 'Ｘ・Ｙ軸方向長さ  ,個数
260 VIL_XL%=0:VIL_YL%=0:VIL_XN%=0:VIL_YN%=0
270 'パレット番号,入力番号,入力キー,アスキーコード,パッドコード
280 VIL_P%=0:VIL_KN%=0:VIL_K$="":VIL_KY%=0:VIL_PAD%=0
290 'マウス位置
300 VIL_MX%=0:VIL_MY%=0:VIL_MW%=0:VIL_MZ%=0
310 '
320 VIL_E%=0                                      'エラー番号
330 VIL_DIR$=""                                   'VILディレクトリ
340 VIL_APPCNF$="APPLI.CNF"                       'アプリ設定ファイル名
350 DIM VIL_ENVNAM$(31),VIL_ENVVAL$(31)           '環境変数　名前／値
360 VIL_ENVNUM%=0                                 '環境変数の数
370 VIL_VER%=310                                  'ＶＩＬ VER3.10
380 '
390 *VIL_CNF                              '設定ファイル"VIL.CNF"読込
400 PRINT"Searching "+CHR$(34)+"VIL.CNF"+CHR$(34)
410 PRINT"Searching current directory"
420 GOSUB *VIL_ERR_ON:VIL_E%=0
430 OPEN "I",#1,"VIL.CNF"                 'カレントディレクトリを探す
440 IF VIL_E%=63 THEN
450   PRINT"Searching root directory"
460   VIL_E%=0
470   OPEN "I",#1,"\VIL.CNF"              'ルートディレクトリを探す
480   IF VIL_E%=63 THEN                   '見つからなければ設定中止
490     PRINT"WARNING:"+CHR$(34)+"VIL.CNF"+CHR$(34)+" not found"
500     GOTO *VIL_L_BGN
510   ENDIF
520 ENDIF
530 PRINT"Reading "+CHR$(34)+"VIL.CNF"+CHR$(34)
540 '
550 '    環境変数設定
560 WHILE EOF(1)=0
570   GOSUB *VIL_LNR
580   VIL_W0%=INSTR(VIL_W0$," "):VIL_W1%=VIL_W0%          'スペース開始
590   WHILE MID$(VIL_W0$,VIL_W1%,1)=" ":VIL_W1%=VIL_W1%+1:WEND
600   VIL_ENVNAM$(VIL_ENVNUM%)=LEFT$(VIL_W0$,VIL_W0%-1)
610   VIL_ENVVAL$(VIL_ENVNUM%)= MID$(VIL_W0$,VIL_W1%)
620   VIL_ENVNUM%=VIL_ENVNUM%+1
630 '  GOSUB *VIL_LNR
640 WEND
650 'FOR VIL_I%=0 TO VIL_ENVNUM%-1:                                                 PRINT VIL_I%;"|";VIL_ENVNAM$(VIL_I%);"|";VIL_ENVVAL$(VIL_I%);"|":          NEXT':VIL_W0$=INPUT$(1)                        '*** デバッグ用
660 VIL_W0%=SEARCH(VIL_ENVNAM$,"VILDIR"):                                        IF VIL_W0%>-1 THEN VIL_DIR$=VIL_ENVVAL$(VIL_W0%) 'VILディレクトリ設定
670 VIL_W0%=SEARCH(VIL_ENVNAM$,"APPLICNF"):                                      IF VIL_W0%>-1 THEN VIL_APPCNF$=VIL_ENVVAL$(VIL_W0%)
680 CLOSE #1
690 '
700 *VIL_L_BGN                                ' VIL リンク開始
710 ON ERROR GOTO 0
720 *VIL_L_BAS:                                                                  CHAIN MERGE VIL_DIR$+"VIL_BAS.BAS",*VIL_L_VWM,ALL,DELETE *VIL_L_BAS
730 *VIL_L_VWM:                                                                  CHAIN MERGE VIL_DIR$+"VIL_VWM.BAS",*VIL_L_END,ALL,DELETE *VIL_L_VWM
740 *VIL_L_END                                ' VIL リンク終了
750 '
760 GOSUB *VIL_ERR_ON:GOSUB *VIL_DEFFN:GOTO *MAIN
770 '
780 *VIL_DEFFN
790 '  S$:文字列に変換 SS$:左にスペースを詰める S0$:左に0を詰める
800 '  P :正の整数     I  :整数                 R  :実数
810 DEF FNVIL_P2S$(X&)       =MID$(STR$(X&),2)
820 DEF FNVIL_P2SS$(X&,Y%)   =RIGHT$("          "+STR$(X&),Y%)
830 DEF FNVIL_P2S0$(X&,Y%)   =RIGHT$("0000000000"+MID$(STR$(X&),2),Y%)
840 DEF FNVIL_I2S$(X&)       =MID$(STR$(X&),1-(X&>=0))
850 DEF FNVIL_I2SS$(X&,Y%)   =RIGHT$("          "+STR$(X&),Y%)
860 '符号１桁(+-) + 00… + 数値
870 DEF FNVIL_I2S0$(X&,Y%)   =MID$("+-",1-(X&<0),1)                                                       +RIGHT$("0000000000"+MID$(STR$(ABS(X&)),2)                                          ,Y%-1)
880 DEF FNVIL_R2S$(X#)       =MID$(STR$(X#),1-(X#>=0))
890 DEF FNVIL_R2SS$(X#,Y%,Z%)=RIGHT$("          "+STR$(FIX(X#)),Y%)+"."                                   +MID$("0000000000"+STR$(X#)+"0000000000"                                          ,INSTR("0000000000"+STR$(X#),".")+1,Z%)
900 DEF FNVIL_R2S0$(X#,Y%,Z%)=MID$("+-",1-(X#<0),1)+RIGHT$("0000000000"              +MID$(STR$(FIX(ABS(X#))),2),Y%-1)+MID$("0000000000"+STR$(X#)                 +"0000000000",INSTR("0000000000"+STR$(X#),".")+1,Z%)
910 RETURN
920 '
930 'ＶＩＬ汎用モジュール
940 '
950 *VIL_ERR_ON:ON ERROR GOTO *VIL_ERR:RETURN
960 '
970 *VIL_ERR:VIL_E%=ERR:RESUME NEXT
980 '*VIL_ERR:SCREEN 0:VIL_E%=ERR:PRINT "ERR";VIL_E%;"IN";ERL:BEEP:A$=INPUT$(1):IF A$=" " THEN ON ERROR GOTO 0 ELSE RESUME NEXT   'デバッグ用
990 '
1000 *VIL_CNFOP
1010 'VIL_APPCNF$ をオープン。正常終了時 VIL_E%=0
1020 VIL_E%=0
1030 OPEN "I",#1,VIL_APPCNF$
1040 RETURN
1050 '
1060 *VIL_CNFCL
1070 'VIL_APPCNF$ をクローズ。正常終了時 VIL_E%=0
1080 VIL_E%=0
1090 CLOSE #1
1100 RETURN
1110 '
1120 *VIL_CNFERR
1130 'ＶＩＬ設定ファイル読み込み時のエラー処理（現バージョンでは強制終了）
1140 PRINT"CNFファイルに誤りがあります"
1150 PRINT"エラー行:";VIL_W0$
1160 STOP
1170 RETURN
1180 '
1190 *VIL_LNR
1200 '１行読み込み（空行・コメント行スキップ）
1210 LINE INPUT #1,VIL_W0$':SCREEN 0:PRINT VIL_W0$;"!"
1220 IF (VIL_W0$="" OR LEFT$(VIL_W0$,1)="'") AND EOF(1)=0 THEN *VIL_LNR
1230 RETURN
1240 '
1250 '--------------------  ＶＩＬ組み込み終了　--------------------
20000 '
20010 '<<<<<<<<<<<<<<<  Visual Interface Library Demo V3.10  >>>>>>>>>>>>>>>
20020 '
20030 *MAIN       'ＶＩＬは最初にこのラベルを呼び出す
20040 '
20050 RANDOMIZE TIME:DEFINT A-Z
20060 '
20070 'SCREEN 1,0,3,1:VIEW(0,0)-(639,479):WINDOW(0,0)-(639,479)
20080 VIEW(0,0)-(639,479):WINDOW(0,0)-(639,479)
20090 PALETTE@:CLS
20100 PLAY OFF
20110 '
20120 '起動画面
20130 '
20140 SCREEN 0:CLS
20150 LINE(160,160)-(479,319),PSET,7,BF
20160 SYMBOL(224,168),"ＶＩＬ",4,4,4
20170 SYMBOL(224,260),"Visual Interface Library",1,1,0
20180 SYMBOL(224,280)," Demonstration  Program ",1,1,0
20190 '
20200 '<<<<<<<<<<<<<<<<<<<<  VIL INITIALIZE  >>>>>>>>>>>>>>>>>>>>
20210 '
20220 'ＶＩＬパッケージ初期化
20230 '
20240 GOSUB *VIL_CNFOP
20250 '
20260 GOSUB *VIL_ENV_INITM
20270 '
20280 GOSUB *VIL_BEEP_INITM
20290 '
20300 VIL_W0&=1024*500\2            '画面退避(最大ウィンドウ総面積)
20310 VIL_W1%=20                    '最大ウィンドウ番号
20320 GOSUB *VIL_WIN_INITM
20330 '
20340 GOSUB *VIL_VKEY_INITM
20350 '
20360 VIL_W0%=120                   '最大メニュー番号
20370 VIL_W1%=256                   '最大ボックス数
20380 VIL_W2%=10                    '設定メニュー最大行数
20390 GOSUB *VIL_MSEL_INITM
20400 '
20410 VIL_W0%=2                     'ヒストリ系列数
20420 GOSUB *VIL_INP_INITM
20430 '
20440 VIL_W0&=100000                '画像データバッファ要素数
20450 VIL_W1%=50                    '画像データインデックス要素数
20460 VIL_W2&=100                   'パレットデータバッファ要素数
20470 VIL_W3%=10                    'パレットデータインデックス要素数
20480 GOSUB *VIL_MG_INITM
20490 '
20500 VIL_W0%=10                   '最大ウィンドウ通し番号
20510 VIL_W1%=8                     'ウィンドウ背景色用パレット番号
20520 VIL_W2%=0                     '枠幅パターン数
20530 GOSUB *VIL_VWM_INITM
20540 '
20550 GOSUB *VIL_SBAR_INITM
20560 '
20570 GOSUB *VIL_SEL_INITM
20580 '
20590 IF VIL_E% THEN PRINT"VIL INIT ERROR!!":BEEP:STOP
20600 GOSUB *VIL_CNFCL
20610 '
20620 'アプリ環境ファイル読み込み
20630 '
20640 GOSUB *VIL_ENV_ROP
20650   GOSUB *VIL_BEEP_ENVR
20660   GOSUB *VIL_WIN_ENVR
20670   GOSUB *VIL_VKEY_ENVR
20680   GOSUB *VIL_MSEL_ENVR
20690   GOSUB *VIL_INP_ENVR
20700   GOSUB *VIL_MG_ENVR
20710   GOSUB *VIL_VWM_ENVR
20720   GOSUB *VIL_SBAR_ENVR
20730   GOSUB *VIL_SEL_ENVR
20740 GOSUB *VIL_ENV_RCL
20750 '
20760 '<<<<<<<<<<<<<<<<<<<<  INIT  >>>>>>>>>>>>>>>>>>>>
20770 DIM TXTBUF$(51)
20780 RESTORE *TXT_DATA:FOR I=0 TO 51:READ TXTBUF$(I):NEXT
20790 *TXT_DATA
20800 DATA "　　　　 ～　スクロールバー　～ 　　　　"
20810 DATA "　このウィンドウは縦方向のスクロールバー"
20820 DATA "が付いています。                      　"
20830 DATA "              上スクロールスイッチ→┌┐"
20840 DATA "                            　      ├┤"
20850 DATA "              リージョン────┬→││"
20860 DATA "                            　  │  ├┤"
20870 DATA "              インジケータ────→││"
20880 DATA "                                │  ├┤"
20890 DATA "                                └→││"
20900 DATA "                                    ├┤"
20910 DATA "              下スクロールスイッチ→└┘"
20920 DATA "　下スクロールスイッチをクリックすると、"
20930 DATA "この説明文の続きを読むことができます。最"
20940 DATA "初の方を読みたいときは、上スクロールスイ"
20950 DATA "ッチをクリックしてください。            "
20960 DATA "                                      　"
20970 DATA "　インジケータは、説明文全体のうちどの部"
20980 DATA "分がウィンドウ内に表示されているかを示し"
20990 DATA "ています。このインジケータをドラッグする"
21000 DATA "ことで、任意の位置に一気に移動することが"
21010 DATA "できます。                              "
21020 DATA "                                      　"
21030 DATA "　スクロールスイッチをクリックすると表示"
21040 DATA "内容を一行ずつ進める／戻すことができます"
21050 DATA "が、インジケータ上下のリージョンをクリッ"
21060 DATA "クすると、一ページずつ進める／戻すことが"
21070 DATA "できます。                              "
21080 DATA "                                      　"
21090 DATA "　この後では横方向のスクロールバーも登場"
21100 DATA "しますが、操作方法は同様です。        　"
21110 DATA ""
21120 DATA "　この文章、ある程度長さがないとスクロー"
21130 DATA "ルバーの例になりませんので、以下余談を書"
21140 DATA "きます(^_^;)。なお、このウィンドウを抜け"
21150 DATA "るときは、クローズスイッチを押してくださ"
21160 DATA "い。"
21170 DATA ""
21180 DATA "　このウィンドウマネージャ（ＷＭ）は一応"
21190 DATA "ＶＩＬの標準ＷＭとして設計しています。で"
21200 DATA "すから人によっては高機能すぎると思われる"
21210 DATA "かもしれませんが、使わない属性は指定しな"
21220 DATA "いようにすれば、アプリケーション側で対応"
21230 DATA "ルーチンを書く必要もありません。        "
21240 DATA ""
21250 DATA "  例えばＲＰＧを作るのなら、全てのウィン"
21260 DATA "ドウで全属性ＯＦＦでも問題ないでしょう。"
21270 DATA "個人的には MOVE 属性ぐらいは対応すると、"
21280 DATA "コマンドウィンドウのレイアウトが自由にで"
21290 DATA "きて楽しいと思いますが……（妙に具体的な"
21300 DATA "例(^_^;)。フリコレ11にはなんとか(謎)）。"
21310 DATA ""
21320 '
21330 DIM SHTMAP(63,7)
21340 RESTORE *SHTMAP_DATA
21350 FOR Y=0 TO 7
21360   READ A$
21370   FOR X=0 TO 63
21380     SHTMAP(X,Y)=VAL(MID$(A$,X+1,1))
21390   NEXT
21400 NEXT
21410 '
21420 *SHTMAP_DATA
21430 DATA 0000000000000000004000000000000000000040040000000222222242222222
21440 DATA 0000000000001322224222200001000000000040040000000000000040000000
21450 DATA 0000000000000000004000000005000000100040040000000222222222222222
21460 DATA 0000000013222222224000000004000001010222022000000000000012222222
21470 DATA 0000000000000000004000010134000000100004000000000000000012222222
21480 DATA 0001000000000000004000050004000000500002224200000222222222222222
21490 DATA 0005000000000000004000042224000000400000004000000000000040000000
21500 DATA 0004000000000000004000040004000000400000004000000222222242222222
21510 '
21520 VIL_MG_F$="VDEMO310":GOSUB *VIL_MG_LD
21530 '
21540 '<<<<<<<<<<<<<<<<<<<<  MAIN MENU  >>>>>>>>>>>>>>>>>>>>
21550 *MAINMENU
21560 'SCREEN 1,1:SCREEN@0:PALETTE@:CLS
21570 'SCREEN 1,0:SCREEN@0:CLS
21580 'MOUSE 2,VIL_VWM_MCA0$,VIL_VWM_MCD0$,VIL_VWM_MCX0%,VIL_VWM_MCY0%
21590 'ON ERROR GOTO 0'**********
21600 'GOTO *APPLY' *VWM_XSCRLBAR_0
21610 GOSUB *VIL_WIN_PMA
21620 CLS:PALETTE 4,[100,0,150]
21630 LINE(0,0)-(639,479),PSET,%4,BF
21640 LINE(216,128)-(423,399),PRESET,,BF
21650 SYMBOL(224,32),"Visual Interface Library",1,1,7
21660 SYMBOL(272,64),"ＶＩＬ",2,2,4,,,7
21670 SYMBOL(192,104),"デモンストレ－ション  プログラム",1,1,4
21680 RESTORE *MAINMENU_DATA
21690 FOR Y=0 TO 3
21700   READ A$
21710   SYMBOL(232,Y*32+144),FNVIL_P2S$(Y+1)+" "+A$,1,1,7
21720 NEXT
21730 '
21740 *MAINMENU_DATA
21750 DATA "はじめに","基本パッケージ"
21760 DATA "ウィンドウマネージャ","応用例"
21770 '
21780 VIL_X%=224:VIL_Y%=142:VIL_W%=VIL_X%+191:VIL_Z%=VIL_Y%+19
21790 VIL_XN%=1:VIL_YN%=4:VIL_YL%=32:VIL_C%=15:VIL_CB%=0
21800 VIL_MSEL_BB%=1:VIL_MSEL_BE%=4:VIL_MSEL_BD%=0:VIL_MSEL_BAM%=0:
21810 VIL_MSEL_MN%=100:VIL_MSEL_BC%=0
21820 GOSUB *VIL_MSEL_M
21830 IF VIL_KN%>0 THEN ON VIL_KN% GOSUB *INTRO,*BAS,*VWM,*APPLY
21840 GOTO *MAINMENU
21850 '
21860 '<<<<<<<<<<<<<<<<<<<<  はじめに  >>>>>>>>>>>>>>>>>>>>
21870 *INTRO
21880 CLS
21890 VIL_WIN_X%=20:VIL_WIN_Y%=20:VIL_WIN_W%=VIL_WIN_X%+399:VIL_WIN_Z%=471
21900 VIL_VWM_AT%=0:VIL_VWM_T$="INTRO"
21910 GOSUB *VIL_VWM_OP
21920 SYMBOL(8,  8),"　　　　　　　　　～　はじめに　～　　　　　　　",1,1,6
21930 SYMBOL(8, 36),"　ＶＩＬはＦ－ＢＡＳＩＣ３８６上のプログラムで、",1,1,7
21940 SYMBOL(8, 56),"マルチウィンドウ表示・マウス入力などのユーザ・イ",1,1,7
21950 SYMBOL(8, 76),"ンタフェースを実現するサブルーチン集です。　　　",1,1,7
21960 SYMBOL(8, 96),"　このデモンストレーション・プログラムでは、以下",1,1,7
21970 SYMBOL(8,116),"の項目でその機能を説明します。　　　　　　　　　",1,1,7
21980 SYMBOL(8,136),"　２．基本パッケージ　　　　　　　　　　　　　　",1,1,7
21990 SYMBOL(8,156),"　　ウィンドウ、メニュー選択、文字列入力、      ",1,1,7
22000 SYMBOL(8,176),"　　マルチグラフィック表示　　　　　　　　　　　",1,1,7
22010 SYMBOL(8,196),"　３．ウィンドウマネージャ・パッケージ　　　　　",1,1,7
22020 SYMBOL(8,216),"　　移動、サイズ変更、スクロールバー　　　　　　",1,1,7
22030 SYMBOL(8,236),"　４．応用　　　　　　　　　　　　　　　　　　　",1,1,7
22040 SYMBOL(8,256),"　　各パッケージの組み合わせによる応用例　　　　",1,1,7
22050 SYMBOL(8,436)," リターンキーかマウスの左ボタンを押してください ",1,1,6
22060 WAIT 50
22070 WHILE INKEY$<>CHR$(13) AND MOUSE(3,0)=0 AND MOUSE(2,0)=0:WEND
22080 GOSUB *VIL_VWM_CL
22090 RETURN
22100 '
22110 '<<<<<<<<<<<<<<<<<<<<  基本パッケージ  >>>>>>>>>>>>>>>>>>>>
22120 *BAS
22130 '
22140 CLS'SCREEN 0:CLS
22150 MOUSE 2,VIL_VWM_MCA0$,VIL_VWM_MCD0$,VIL_VWM_MCX0%,VIL_VWM_MCY0%
22160 LINE(0,0)-(639,479),PSET,4,BF
22170 FOR I=0 TO 30
22180   LINE(RND*639,RND*480)-(RND*639,RND*480),XOR,RND*6+1,BF
22190 NEXT
22200 '
22210 VIL_WIN_X%=30:VIL_WIN_Y%=50
22220 VIL_WIN_W%=VIL_WIN_X%+16*16+15:VIL_WIN_Z%=VIL_WIN_Y%+136+16+7
22230 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
22240 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
22250 CLS
22260 SYMBOL(8,  8)," ～　ＶＩＬ　基本パッケージ　～ ",1,1,6
22270 SYMBOL(8, 36),"基本パッケージは以下のパッケージ",1,1,7
22280 SYMBOL(8, 56),"から成っています。              ",1,1,7
22290 SYMBOL(8, 76),"・ブザー音パッケージ            ",1,1,7
22300 SYMBOL(8, 96),"・ウィンドウ・パッケージ        ",1,1,7
22310 SYMBOL(8,116),"・メニュー選択パッケージ        ",1,1,7
22320 SYMBOL(8,136),"・入力パッケージ                ",1,1,7
22330 '
22340 VIL_WIN_X%=50:VIL_WIN_Y%=240
22350 VIL_WIN_W%=VIL_WIN_X%+16*13+15:VIL_WIN_Z%=VIL_WIN_Y%+68+16+7
22360 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
22370 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
22380 CLS
22390 SYMBOL(8,  8),"ウィンドウ・パッケージでは",1,1,7
22400 SYMBOL(8, 28),"このように画面の矩形領域を",1,1,7
22410 SYMBOL(8, 48),"退避し、ウィンドウを開くこ",1,1,7
22420 SYMBOL(8, 68),"とができます。　　　　　　",1,1,7
22430 '
22440 VIL_WIN_X%=30:VIL_WIN_Y%=350
22450 VIL_WIN_W%=VIL_WIN_X%+16*15+15:VIL_WIN_Z%=VIL_WIN_Y%+28+16+7
22460 VIL_WIN_UB%=5:VIL_WIN_DB%=5:VIL_WIN_LB%=5:VIL_WIN_RB%=5
22470 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP
22480 LINE(VIL_WIN_X%-5,VIL_WIN_Y%-5)-(VIL_WIN_W%+5,VIL_WIN_Z%+5),PSET,0,B
22490 LINE(VIL_WIN_X%-4,VIL_WIN_Y%-4)-(VIL_WIN_W%+4,VIL_WIN_Z%+4),PSET,7,BF
22500 LINE(VIL_WIN_X%-2,VIL_WIN_Y%-2)-(VIL_WIN_W%+2,VIL_WIN_Z%+2),PSET,0,B
22510 LINE(VIL_WIN_X%-1,VIL_WIN_Y%-1)-(VIL_WIN_W%+1,VIL_WIN_Z%+1),PSET,0,B
22520 GOSUB *VIL_WIN_PMR
22530 SYMBOL(8,  8),"必要ならばユーザ・プログラムが",1,1,0
22540 SYMBOL(8, 28),"枠などを描画できます。　　　　",1,1,0
22550 '
22560 VIL_WIN_X%=360:VIL_WIN_Y%=40
22570 VIL_WIN_W%=VIL_WIN_X%+16*11+15:VIL_WIN_Z%=VIL_WIN_Y%+139
22580 VIL_WIN_UB%=2:VIL_WIN_DB%=2:VIL_WIN_LB%=2:VIL_WIN_RB%=2
22590 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP
22600 DEF PEN 0,2
22610 LINE(VIL_WIN_X%-2,VIL_WIN_Y%-2)-(VIL_WIN_W%+1,VIL_WIN_Z%+1),PSET,1,B
22620 GOSUB *VIL_WIN_PMR
22630 CLS
22640 FOR I=1 TO 7
22650   CIRCLE(0,0),I*5,I
22660   CIRCLE(190,10),I*5,I
22670   SYMBOL(-60+I*8*6,120),"SAMPLE",1,1,I
22680 NEXT
22690 SYMBOL(8, 50),"ウィンドウ内への描画は",1,1,7
22700 SYMBOL(8, 70),"このようにクリッピング",1,1,7
22710 SYMBOL(8, 90),"させることが可能です。",1,1,7
22720 '
22730 PALETTE 4,[ 64, 64, 64]
22740 PALETTE 5,[128,  0,  0]
22750 RESTORE *WIN_DATA1
22760 FOR I=0 TO 2
22770   VIL_WIN_X%=320+I*24:VIL_WIN_Y%=240+I*48
22780   VIL_WIN_W%=VIL_WIN_X%+119:VIL_WIN_Z%=VIL_WIN_Y%+63
22790   VIL_WIN_UB%=16:VIL_WIN_DB%=2:VIL_WIN_LB%=2:VIL_WIN_RB%=2
22800   GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP
22810   LINE(VIL_WIN_X%-2,VIL_WIN_Y%-16)                                                -(VIL_WIN_W%+2,VIL_WIN_Y%- 2),PSET,%5,BF
22820   DEF PEN 0,2
22830   LINE(VIL_WIN_X%-2,VIL_WIN_Y%-16)                                                -(VIL_WIN_W%+1,VIL_WIN_Z%+ 1),PSET,%4,B
22840   LINE(VIL_WIN_X%-2,VIL_WIN_Y%- 2)                                                -(VIL_WIN_W%+1,VIL_WIN_Y% -2),PSET,%4
22850   DEF PEN 0,1
22860   LINE(VIL_WIN_X%+1,VIL_WIN_Y%-13)                                                -(VIL_WIN_X%+9,VIL_WIN_Y%-4),PSET,%4,B
22870   CIRCLE(VIL_WIN_X%+5,VIL_WIN_Y%-8.6!),2,%1,1.5!,,,F
22880   LINE(VIL_WIN_W%-1,VIL_WIN_Y%-13)                                                -(VIL_WIN_W%-9,VIL_WIN_Y%- 4),PSET,%4,B
22890   LINE(VIL_WIN_W%-1,VIL_WIN_Y%-13)                                                -(VIL_WIN_W%-5,VIL_WIN_Y%- 8),PSET,%4,B
22900   SYMBOL(VIL_WIN_X%+13,VIL_WIN_Y%-11),"xterm",.5!,.5!,%4
22910   GOSUB *VIL_WIN_PMR
22920   CLS
22930   READ A$
22940   SYMBOL(8,8),A$,1,1,7
22950 NEXT
22960 '
22970 *WIN_DATA1
22980 DATA "ウィンドウの","重ね合わせも","このとおり"
22990 '
23000 RESTORE *WIN_DATA2
23010 GOSUB *VIL_WIN_PMA
23020 LINE(272,434)-(639,479),PSET,7,BF
23030 SYMBOL(280,440),"[RET]キー／マウスの左クリック／パッドの[A]で",1,1,0
23040 SYMBOL(280,460),"ウィンドウが１個ずつ閉じます。              ",1,1,0
23050 FOR I=1 TO 6 
23060   WHILE INKEY$=CHR$(13) OR MOUSE(3,0) OR PTRIG(1)=1:WEND
23070   WHILE INKEY$<>CHR$(13) AND MOUSE(3,0)=0 AND PTRIG(1)<>1:WEND
23080   READ VIL_WIN_UB%,VIL_WIN_DB%,VIL_WIN_LB%,VIL_WIN_RB%
23090   GOSUB *VIL_WIN_CL 
23100 NEXT
23110 '
23120 *WIN_DATA2
23130 DATA 16,2,2,2, 16,2,2,2, 16,2,2,2, 2,2,2,2, 5,5,5,5, 0,0,0,0
23140 '
23150 LINE(272,434)-(639,479),PSET,7,BF
23160 SYMBOL(280,440),"取消キー／マウスの右クリック／パッドの[B]で",1,1,0
23170 SYMBOL(280,460),"次に進みます。",1,1,0
23180 '
23190 VIL_WIN_X%=50:VIL_WIN_Y%=240
23200 VIL_WIN_W%=VIL_WIN_X%+16*13+15:VIL_WIN_Z%=VIL_WIN_Y%+148+16+7
23210 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
23220 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
23230 CLS
23240 SYMBOL(8,  8),"メニュー選択パッケージでは",1,1,7
23250 SYMBOL(8, 28),"・マウス　　　　　　　　　",1,1,7
23260 SYMBOL(8, 48),"・パッド　　　　　　　　　",1,1,7
23270 SYMBOL(8, 68),"・テンキー　　　　　　　　",1,1,7
23280 SYMBOL(8, 88),"・カ－ソルキー　　　　　　",1,1,7
23290 SYMBOL(8,108),"などを使用して、　　　　　",1,1,7
23300 SYMBOL(8,128),"画面の矩形領域（ボックス）",1,1,7
23310 SYMBOL(8,148),"の一つを選択できます。　　",1,1,7
23320 '
23330 VIL_WIN_X%=320:VIL_WIN_Y%=40
23340 VIL_WIN_W%=VIL_WIN_X%+16*18+15:VIL_WIN_Z%=VIL_WIN_Y%+359
23350 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
23360 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
23370 '
23380 CLS
23390 SYMBOL(8,  8),"例えば下の数字の中から",1,1,7
23400 SYMBOL(8, 28),"一つ選択してみてください。",1,1,7
23410 FOR Y=0 TO 2
23420   FOR X=0 TO 2
23430     LINE(X*64+16,192-Y*64)-(X*64+63,192-Y*64+47),PSET,7,B
23440     SYMBOL(X*64+28,194-Y*64),FNVIL_I2S$(Y*3+X+1),3,3,7
23450   NEXT
23460 NEXT
23470 SYMBOL(16, 304),"選択→",1,1,7
23480 LINE(80,288)-(127,335),PSET,7,B
23490 '
23500 VIL_MSEL_BN%=1:VIL_MSEL_MN%=0:VIL_MSEL_BC%=0
23510 '
23520 *MSEL_TENKEY1
23530 VIL_X%=12:VIL_Y%=188:VIL_W%=VIL_X%+55:VIL_Z%=VIL_Y%+55
23540 VIL_XN%=3:VIL_YN%=3:VIL_XL%=64:VIL_YL%=64:VIL_MSEL_BD%=4:VIL_C%=10
23550 VIL_MSEL_BB%=1:VIL_MSEL_BE%=9
23560 GOSUB *VIL_MSEL_M
23570 IF VIL_KN%>0 THEN
23580   LINE(81,289)-(126,334),PRESET,,BF
23590   SYMBOL(92,290),FNVIL_P2S$(VIL_KN%),3,3,6
23600 ENDIF
23610 IF VIL_KN%<>-1 THEN *MSEL_TENKEY1
23620 '
23630 *MSEL_TAU1
23640 CLS
23650 '
23660 ANS=INT(RND*64)+1
23670 FOR Y=0 TO 7
23680   FOR X=0 TO 7
23690     XA=RND*8:YA=RND*8
23700     SYMBOL(X*24+XA+64,Y*24+YA+64),                                                     KMID$("ΤＴ",2+(Y*8+X+1=ANS),1),1,1,RND*6+1
23710   NEXT
23720 NEXT
23730 SYMBOL(8,260)," ☆☆☆  「Τを探せ」ゲ－ム  ☆☆☆ ",1,1,6
23740 SYMBOL(8,280),"Ｔ(ティー)の中に一つだけ隠れている  ",1,1,4
23750 SYMBOL(8,300),"Τ(タウ)を見つけて選択してください。",1,1,4
23760 '
23770 VIL_MSEL_BN%=1:VIL_MSEL_MN%=0:VIL_MSEL_BC%=0
23780 '
23790 *MSEL_TAU2
23800 VIL_X%=64:VIL_Y%=64:VIL_W%=VIL_X%+23:VIL_Z%=VIL_Y%+23
23810 VIL_XL%=24:VIL_YL%=24:VIL_XN%=8:VIL_YN%=8:VIL_MSEL_BD%=0:VIL_C%=15
23820 VIL_MSEL_BB%=1:VIL_MSEL_BE%=64
23830 GOSUB *VIL_MSEL_M
23840 IF VIL_KN%>0 THEN 
23850   IF VIL_KN%=ANS THEN
23860     LINE(80,320)-(239,335),PRESET,,BF
23870     SYMBOL(80,320),"☆☆☆ 正解！ ☆☆☆",1,1,6
23880     GOSUB *VIL_BEEP_G
23890     GOTO *MSEL_TAU1
23900   ELSE
23910     LINE(80,320)-(239,335),PRESET,,BF
23920     SYMBOL(80,320),"××× はずれ ×××",1,1,2
23930     GOSUB *VIL_BEEP_B
23940   ENDIF
23950 ENDIF
23960 IF VIL_KN%<>-1 THEN *MSEL_TAU2
23970 '
23980 *MSEL_ADV1
23990 CLS
24000 '
24010 LINE(4,  4)-(299,295),PSET,4,B
24020 LINE(8, 30)-(295,229),PSET,4,B
24030 LINE(8,234)-(295,261),PSET,4,B
24040 SYMBOL(104,10),"MYSTIC HOUSE",1,1,4
24050 SYMBOL(16,238),"見る   取る   動かす たたく 終わる",1,1,4
24060 SYMBOL(8,302),"　↑　アドベンチャーゲームなどにも",1,1,7
24070 SYMBOL(8,322),"　　　利用できます。",1,1,7
24080 RESTORE *MSEL_DATA1
24090 FOR I=0 TO 17
24100   READ K,X,Y:LINE(X,Y)-(X,Y),PSET,4
24110   FOR J=2 TO K:READ X,Y:LINE -(X,Y),PSET,4:NEXT
24120 NEXT
24130 '
24140 *MSEL_DATA1
24150 DATA 4,  48, 30,  48,110, 255,110, 255, 30
24160 DATA 2,  48,110,   8,229
24170 DATA 2, 255,110, 295,229
24180 DATA 4,  70,110,  70, 35, 110, 35, 110,110
24190 DATA 5,  74, 70,  74, 73,  77, 73,  77, 70,  74, 70
24200 DATA 5, 130,130, 120,160, 210,160, 200,130, 130,130
24210 DATA 4, 120,160, 120,170, 210,170, 210,160
24220 DATA 4, 135,170, 125,210, 130,210, 140,170
24230 DATA 4, 195,170, 205,210, 200,210, 190,170
24240 DATA 5, 265, 40, 265, 80, 280,130, 280, 90, 265, 40
24250 DATA 5, 160, 45, 160, 80, 200, 80, 200, 45, 160, 45
24260 DATA 5, 170, 50, 173, 74, 187, 70, 188, 52, 170, 50
24270 DATA 2, 174, 56, 177, 55
24280 DATA 2, 182, 56, 185, 58
24290 DATA 2, 180, 57, 178, 62
24300 DATA 2, 176, 70, 181, 67
24310 DATA 5,  65,127,  65,122, 70,127,  65,127, 58,134
24320 DATA 2,  61,131,  63,134
24330 '
24340 VIL_MSEL_BN%=1:VIL_MSEL_BC%=0
24350 '
24360 *MSEL_ADV2
24370 VIL_X%=14:VIL_Y%=236:VIL_W%=VIL_X%+51:VIL_Z%=VIL_Y%+23
24380 VIL_XN%=5:VIL_YN%=1:VIL_XL%=56:VIL_MSEL_BD%=0:VIL_C%=15
24390 VIL_MSEL_BB%=1:VIL_MSEL_BE%=5:VIL_MSEL_MN%=101
24400 GOSUB *VIL_MSEL_M
24410 IF VIL_KN%>0 THEN
24420   VIL_X%=8:VIL_Y%=265:VIL_L%=36:VIL_C%=12
24430   VIL_A$=KMID$("見る　取る　動かすたたく終わる",VIL_KN%*3-2,3)
24440   GOSUB *VIL_INP_GPRINT
24450   IF VIL_KN%=5 THEN *MSEL_CNFM1
24460   VERB=VIL_KN%
24470 '
24480   RESTORE *MSEL_DATA2
24490   FOR I=1 TO 5
24500     READ VIL_MSEL_X%(I),VIL_MSEL_Y%(I),VIL_MSEL_W%(I),VIL_MSEL_Z%(I)
24510   NEXT
24520   VIL_XN%=5:VIL_YN%=1:VIL_MSEL_BD%=0:VIL_C%=15
24530   VIL_MSEL_MN%=102:VIL_MSEL_BC%=0
24540   VIL_MSEL_BB%=1:VIL_MSEL_BE%=5
24550 *MSEL_ADV3
24560   GOSUB *VIL_MSEL_IN
24570   GOSUB *VIL_MSEL_BC
24580   IF VIL_KN%<1 THEN *MSEL_ADV3
24590 '
24600 *MSEL_DATA2
24610   DATA  68, 33,112,112
24620   DATA 158, 43,202, 82 
24630   DATA 263, 38,282,132
24640   DATA  56,120, 72,136
24650   DATA 118,128,212,212
24660 '
24670   RESTORE *MSEL_DATA3:FOR I=1 TO VIL_KN%:READ VIL_A$:NEXT
24680 '
24690 *MSEL_DATA3
24700   DATA ドア,肖像画,窓,鍵,テーブル
24710 '
24720   VIL_X%=64:VIL_Y%=265:VIL_L%=8:VIL_C%=12:VIL_CB%=0
24730   GOSUB *VIL_INP_GPRINT
24740 '
24750   RESTORE *MSEL_DATA4
24760   FOR I=1 TO VERB
24770     IF I=VERB THEN
24780       FOR J=1 TO VIL_KN%:READ VIL_A$:NEXT
24790     ELSE
24800       FOR J=1 TO 5:READ VIL_A$:NEXT
24810     ENDIF
24820   NEXT
24830 '
24840 *MSEL_DATA4
24850   DATA "閉まっている　　　","見覚えのない顔だ　","外は晴れている　　"
24860   DATA "黄金の鍵だ　　　　","埃が積もっている　"
24870   DATA "取れるわけがない　","使い道はなさそうだ","取れるわけがない　"
24880   DATA "何故か取れない　　","重くて持てない　　"
24890   DATA "鍵が掛かっている　","ネジ止めされている","錆びついている　　"
24900   DATA "何故か動かない　　","疲れるからいやだ　"
24910   DATA "トントン　　　　　","手が痛いからいやだ","叩いても開かない　"
24920   DATA "叩いてどーする　　","ドンドン　　　　　"
24930 '
24940   VIL_X%=136:VIL_Y%=265:VIL_L%=20:VIL_C%=12:VIL_CB%=0
24950   VIL_A$=": "+VIL_A$
24960   GOSUB *VIL_INP_GPRINT
24970 ENDIF
24980 GOTO *MSEL_ADV2
24990 '
25000 *MSEL_CNFM1
25010 MAXTURN=50
25020 RESTORE *MSEL_DATA5
25030 FOR I=1 TO 8
25040   READ J:VIL_MSEL_BN%(105+I)=J
25050 NEXT
25060 '
25070 *MSEL_DATA5
25080 DATA 2,1,1,2,2,4,1,1
25090 '
25100 *MSEL_CNFM2
25110 CLS
25120 SYMBOL(16,  8),"　☆☆☆☆☆　設　定　☆☆☆☆☆　",1,1,6
25130 SYMBOL(16, 36),"表示      　英語　　　　日本語　　",1,1,7
25140 SYMBOL(16, 60),"ＢＧＭ      ＯＮ    　　ＯＦＦ　　",1,1,7
25150 SYMBOL(16, 84),"効果音　　　ＯＮ　　　　ＯＦＦ　　",1,1,7
25160 SYMBOL(16,108),"ヒント      あり    　　なし　　　",1,1,7
25170 SYMBOL(16,132),"難易度      初級　中級　上級　　　",1,1,7
25180 SYMBOL(16,156),"表示速度　　０　１　２　３　４　５",1,1,7
25190 SYMBOL(16,180),"最大ターン　(00)  ←　  　→  (99)",1,1,7
25200 SYMBOL(16,212),"　　　　～　決定　取消　～　　　　",1,1,7
25210 SYMBOL(16,276),"　↑　設定メニューも実現できます。",1,1,5
25220 GOSUB *PRINT_TURN
25230 '
25240 VIL_MSEL_BC%=0:VIL_VWM_R%=0
25250 VIL_C%=15:VIL_CC%=7
25260 VIL_MSEL_CMN%=105:VIL_MSEL_CMR%=8
25270 VIL_MSEL_BN%(VIL_MSEL_CMN%)=1 'カーソル位置を第一行に設定
25280 GOSUB *VIL_MSEL_CNFSV
25290 MAXTURN_OLD=MAXTURN
25300 '
25310 RESTORE *MSEL_DATA6
25320 FOR I=1 TO 8
25330   READ VIL_MSEL_CX%(I),VIL_MSEL_CY%(I)
25340   READ W,Z
25350     VIL_MSEL_CW%(I)=VIL_MSEL_CX%(I)+W
25360     VIL_MSEL_CZ%(I)=VIL_MSEL_CY%(I)+Z
25370   READ VIL_MSEL_CL%(I)
25380   READ VIL_MSEL_CN%(I),VIL_MSEL_CBB%(I),VIL_MSEL_CBE%(I)
25390 NEXT
25400 '
25410 *MSEL_DATA6
25420 DATA 108, 34, 51, 19,  96,  2,1,2
25430 DATA 108, 58, 51, 19,  96,  2,1,2
25440 DATA 108, 82, 51, 19,  96,  2,1,2
25450 DATA 108,106, 51, 19,  96,  2,1,2
25460 DATA 108,130, 35, 19,  48,  3,1,3
25470 DATA 108,154, 19, 19,  32,  6,0,5
25480 DATA 108,178, 35, 19, 144,  2,1,2
25490 DATA 108,210, 35, 19,  48,  2,1,2
25500 '
25510 ENDF=0
25520 WHILE ENDF=0
25530   GOSUB *VIL_MSEL_CNFM
25540   IF VIL_MSEL_CR%=7 AND VIL_KN%>0 THEN
25550     MAXTURN=MAXTURN-(VIL_KN%=1)*(MAXTURN>0)+(VIL_KN%=2)*(MAXTURN<99)
25560     GOSUB *PRINT_TURN
25570   ELSE IF VIL_MSEL_CR%=8 THEN
25580     ENDF=-1
25590     IF VIL_KN%=2 THEN GOSUB *VIL_MSEL_CNFLD:MAXTURN=MAXTURN_OLD
25600 '                    設定を取消
25610   ENDIF
25620 WEND
25630 '
25640 *MSEL_CNFM3
25650 SYMBOL(16,304)," 　　　もう一度やりますか？　　　 ",1,1,7
25660 VIL_X%=92:VIL_Y%=334:VIL_MSEL_BN%=1:VIL_C%=15
25670 GOSUB *VIL_SEL_YN
25680 SYMBOL(16,304),"　　　　　　　　　　　　　　　　　",1,1,7
25690 IF VIL_KN%=1 THEN *MSEL_CNFM2                                                             ELSE IF VIL_KN%=2 THEN *INP ELSE *MSEL_CNFM3
25700 '
25710 *PRINT_TURN
25720 VIL_X%=192:VIL_Y%=180:VIL_L%=2:VIL_C%=15:VIL_CB%=0
25730 VIL_A$=FNVIL_P2S0$(MAXTURN,2)
25740 GOSUB *VIL_INP_GPRINT
25750 RETURN
25760 '
25770 *INP
25780 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_CL:GOSUB *VIL_WIN_CL
25790 '
25800 LINE(272,434)-(639,479),PSET,4,BF
25810 VIL_WIN_X%=16:VIL_WIN_Y%=240
25820 VIL_WIN_W%=VIL_WIN_X%+16*15+15:VIL_WIN_Z%=VIL_WIN_Y%+68+16+7
25830 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
25840 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
25850 CLS
25860 SYMBOL(8,  8),"入力パッケージでは、　　　　　",1,1,7
25870 SYMBOL(8, 28),"・入力文字列の最大長を指定可能",1,1,7
25880 SYMBOL(8, 48),"・日本語入力が可能　　　　　　",1,1,7
25890 SYMBOL(8, 68),"・ヒストリ呼び出しが可能    　",1,1,7
25900 '
25910 VIL_WIN_X%=320:VIL_WIN_Y%=8
25920 VIL_WIN_W%=VIL_WIN_X%+16*18+15:VIL_WIN_Z%=VIL_WIN_Y%+376+16+7
25930 VIL_WIN_UB%=0:VIL_WIN_DB%=0:VIL_WIN_LB%=0:VIL_WIN_RB%=0
25940 GOSUB *VIL_WIN_PMA:GOSUB *VIL_WIN_OP:GOSUB *VIL_WIN_PMR
25950 NAM$="":TIM$=""
25960 '
25970 *INP_NAME1
25980 CLS:GOSUB *VIL_INP_FEPON
25990 SYMBOL(8,  8),"＊＊＊＊＊　使用可能キー　＊＊＊＊＊",1,1,6
26000 SYMBOL(8, 28),"[RET]   : 決定　　　　　　　　　　　",1,1,7
26010 SYMBOL(8, 48),"[取消]  : 取消　　　　　　　　　　　",1,1,7
26020 SYMBOL(8, 68),"←　→  : カーソル移動　　　　　　　",1,1,7
26030 SYMBOL(8, 88),"[BS]    : カーソル位置の左１文字削除",1,1,7
26040 SYMBOL(8,108),"[削除]  : カーソル位置１文字削除　　",1,1,7
26050 SYMBOL(8,128),"[HOME]  : クリア　　　　　　　　　　",1,1,7
26060 SYMBOL(8,148),"↑↓    : ヒストリー呼び出し  　　　",1,1,7
26070 SYMBOL(8,168),"マウス左/右 : [決定]/[取消]と等価　 ",1,1,7
26080 SYMBOL(8,188),"パッドＡ/Ｂ : [決定]/[取消]と等価　 ",1,1,7
26090 SYMBOL(8,208),"方向ボタン  : カーソルキーと等価　　",1,1,7
26100 SYMBOL(8,228),"＊＊＊＊＊　 　使用例　 　＊＊＊＊＊",1,1,6
26110 '
26120 SYMBOL(8,248),"あなたの名前を入力してください。　　",1,1,7
26130 SYMBOL(8,268),"(半角16文字以内) :　　　　　　　　　",1,1,7
26140 '
26150 *INP_NAME2
26160 VIL_X%=8+16*9:VIL_Y%=268:VIL_L%=16:VIL_C%=15:VIL_CB%=0:VIL_A$="" 'NAM$
26170 VIL_INP_HSN%=1
26180 GOSUB *VIL_INP_STR
26190 IF VIL_KN%=-1 OR VIL_A$="" THEN *INP_NAME2
26200 NAM$=VIL_A$
26210 '
26220 SYMBOL(8,288),"現在時刻を入力してください。　　　　",1,1,7
26230 SYMBOL(8,308),"(00:00～23:59)   :　　　　　　　　　",1,1,7
26240 '
26250 *INP_NAME3
26260 VIL_INP_HSN%=2
26270 VIL_X%=8+16*9:VIL_Y%=308:VIL_L%=5:VIL_C%=15:VIL_CB%=0:VIL_A$="" 'TIM$
26280 GOSUB *VIL_INP_STR
26290 IF VIL_KN%=-1 OR VIL_A$="" THEN *INP_NAME3
26300 TIM$=VIL_A$
26310 IF LEN(VIL_A$)<>5 OR MID$(VIL_A$,3,1)<>":"                                     THEN GOSUB *VIL_BEEP_B:GOTO *INP_NAME3
26320 HOUR=VAL(LEFT$(VIL_A$,2)):MINUTE=VAL(MID$(VIL_A$,4,2))
26330 IF HOUR<0 OR 23<HOUR OR MINUTE<0 OR 59<MINUTE THEN
26340   GOSUB *VIL_BEEP_B:GOTO *INP_NAME3
26350 ENDIF
26360 IF 6<=HOUR AND HOUR<=11 THEN
26370   A$="おはよう。"
26380 ELSE IF 12=<HOUR AND HOUR<=18 THEN
26390   A$="こんにちは。"
26400 ELSE
26410   A$="こんばんは。"
26420 ENDIF
26430 '
26440 GOSUB *VIL_INP_FEPOFF
26450 SYMBOL(8,328),"現在"+FNVIL_P2S$(HOUR)+"時"+FNVIL_P2S$(MINUTE)+"分。"                      ,1,1,4
26460 SYMBOL(8,348),NAM$+"さん、"+A$,1,1,4
26470 *INP_NAME4
26480 SYMBOL(8,376),"もう一度やる？",1,1,7
26490 VIL_MSEL_BN%=1
26500 VIL_X%=132:VIL_Y%=372
26510 GOSUB *VIL_SEL_YN
26520 IF VIL_KN%<1 THEN *INP_NAME4
26530 IF VIL_KN%=1 THEN *INP_NAME1
26540 '
26550 'SCREEN 1,0
26560 RETURN
26570 '
26580 '<<<<<<<<<<<<<<<<<<<<  ウィンドウマネージャ  >>>>>>>>>>>>>>>>>>>>
26590 *VWM
26600 CLS'SCREEN 1,0:CLS
26610 VIL_VWM_N%=0
26620 VIL_WIN_UB%=14:VIL_WIN_DB%=8:VIL_WIN_RB%=8:VIL_WIN_LB%=8
26630                                               'ウィンドウ枠幅設定
26640 PALETTE 7,[255,255,255]  'パレット(8 XOR 15)を白にする
26650 PALETTE 5,[80,80,0]
26660 FOR Y=0 TO 479 STEP 16
26670   FOR X=0 TO 639 STEP 8*7
26680     SYMBOL(X,Y),"ＶＩＬ ",1,1,%5,,NOT
26690   NEXT
26700 NEXT
26710 '
26720 VIL_WIN_X%=100                :VIL_WIN_Y%=40
26730 VIL_WIN_W%=VIL_WIN_X%+16*19+15:VIL_WIN_Z%=VIL_WIN_Y%+8+16+7
26740 VIL_VWM_T$="VWM":VIL_VWM_AT%=0
26750 GOSUB *VIL_VWM_OP
26760 SYMBOL(  8,  8),"～ ウィンドウマネージャ・パッケージ ～",1,1,6
26770 '
26780 GOSUB *VIL_WIN_PMA
26790 VIL_WIN_X%=20                 :VIL_WIN_Y%=80
26800 VIL_WIN_W%=VIL_WIN_X%+16*16+15:VIL_WIN_Z%=VIL_WIN_Y%+136+16+7
26810 VIL_VWM_T$="MOVE":VIL_VWM_AT%=8
26820 GOSUB *VIL_VWM_OP
26830 SYMBOL(  8,  8),"　　 ～　ウィンドウ移動　～ 　　",1,1,6
26840 SYMBOL(  8, 36)," MOVE 属性をもつウィンドウは、上",1,1,7
26850 SYMBOL(  8, 56),"部のタイトルバーにマウスカーソル",1,1,7
26860 SYMBOL(  8, 76),"を合わせて左ボタンを押すと、ドラ",1,1,7
26870 SYMBOL(  8, 96),"ッグで動かすことができます。　　",1,1,7
26880 SYMBOL(  8,136),"　　　　　　　納得した。→　　　",1,1,7
26890 '
26900 VIL_KN%=0
26910 WHILE VIL_KN%<>1
26920   VIL_X%=228:VIL_Y%=132
26930   GOSUB *VIL_SEL_OK
26940   IF VIL_KN%=-2 THEN GOSUB *VIL_VWM_WIN
26950 WEND
26960 '
26970 VIL_WIN_X%=60                 :VIL_WIN_Y%=122
26980 VIL_WIN_W%=VIL_WIN_X%+16*15+15:VIL_WIN_Z%=VIL_WIN_Y%+116+16+7
26990 VIL_VWM_T$="CLOSE 0":VIL_VWM_AT%=0
27000 GOSUB *VIL_VWM_OP
27010 SYMBOL(8, 8)," ～　ウィンドウ・クローズ　～ ",1,1,6
27020 SYMBOL(8,36),"CLOSE 属性をもつウィンドウは、",1,1,7
27030 SYMBOL(8,56),"左上隅の　スイッチをクリックす",1,1,7
27040 SYMBOL(8,76),"ると、閉じることができます。　",1,1,7
27050 LINE(75,60)-(84,69),PSET,7,B
27060 LINE(75,60)-(84,69),PSET,7
27070 LINE(75,69)-(84,60),PSET,7
27080 '
27090 *VWM_CL0
27100 '
27110 VIL_WIN_X%=160                :VIL_WIN_Y%=250
27120 VIL_WIN_W%=VIL_WIN_X%+16*12+15:VIL_WIN_Z%=VIL_WIN_Y%+28+16+7
27130 VIL_VWM_T$="CLOSE 1":VIL_VWM_AT%=2
27140 GOSUB *VIL_VWM_OP
27150 SYMBOL(8, 8),"例えば、このウィンドウを",1,1,7
27160 SYMBOL(8,28),"閉じてみてください。　　",1,1,7
27170 '
27180 VIL_VWM_R%=0
27190 WHILE VIL_VWM_R%<>2
27200   MOUSE 1,,,1
27210   WHILE MOUSE(3,0)=0 AND MOUSE(2,0)=0:WEND
27220   VIL_MX%=MOUSE(0):VIL_MY%=MOUSE(1)
27230   MOUSE 1,,,0
27240   GOSUB *VIL_VWM_WIN
27250 WEND
27260 '
27270 WHILE INKEY$<>"":WEND
27280 SYMBOL(8,116),"もう一度やる？",1,1,7
27290 '
27300 *VWM_CL1
27310 '
27320 'VIL_KN%=0
27330 VIL_X%=132:VIL_Y%=112
27340 GOSUB *VIL_SEL_YN
27350 IF VIL_KN%<1 THEN *VWM_CL1
27360 IF VIL_KN%=1 THEN *VWM_CL0
27370 '
27380 VIL_WIN_X%=100                :VIL_WIN_Y%=164
27390 VIL_WIN_W%=VIL_WIN_X%+16*15+15:VIL_WIN_Z%=VIL_WIN_Y%+136+16+7
27400 VIL_VWM_T$="HIDE":VIL_VWM_AT%=4
27410 GOSUB *VIL_VWM_OP
27420 SYMBOL(8,  8),"　～　ウィンドウ一時消去　～　",1,1,6
27430 SYMBOL(8, 36)," HIDE 属性をもつウィンドウは、",1,1,7
27440 SYMBOL(8, 56),"左上隅の　スイッチをクリックす",1,1,7
27450 SYMBOL(8, 76),"ると、左ボタンを押している間、",1,1,7
27460 SYMBOL(8, 96),"一時的に閉じることができます。",1,1,7
27470 SYMBOL(8,136),"　　納得したら  →　　　　　　",1,1,7
27480 LINE(75,60)-(84,69),PSET,7,B
27490 LINE(75,69)-(84,60),PSET,7
27500 '
27510 VIL_KN%=0
27520 WHILE VIL_KN% <> 1
27530   VIL_X%=212:VIL_Y%=132
27540   GOSUB *VIL_SEL_OK
27550   IF VIL_KN%=-2 THEN GOSUB *VIL_VWM_WIN
27560 WEND
27570 '
27580 *VWM_RESIZE0
27590 VIL_WIN_X%=140                :VIL_WIN_Y%=206
27600 VIL_WIN_W%=VIL_WIN_X%+16*16+15:VIL_WIN_Z%=VIL_WIN_Y%+136+16+7
27610 VIL_VWM_T$="RESIZE":VIL_VWM_AT%=16
27620 GOSUB *VIL_VWM_OP
27630 *VWM_RESIZE1
27640 SYMBOL(8,  8)," ～　ウィンドウ・サイズ変更　～ ",1,1,6
27650 SYMBOL(8, 36)," RESIZE 属性をもつウィンドウは、",1,1,7
27660 SYMBOL(8, 56),"右上隅の　スイッチにマウスカーソ",1,1,7
27670 SYMBOL(8, 76),"ルを合わせて左ボタンを押すと、ド",1,1,7
27680 SYMBOL(8, 96),"ラッグで大きさを変えることができ",1,1,7
27690 SYMBOL(8,116),"ます。                          ",1,1,7
27700 SYMBOL(8,136),"　　納得したら  →　　　　　　　",1,1,7
27710 LINE(75,60)-(84,69),PSET,7,B
27720 LINE(75,64)-(80,69),PSET,7,B
27730 *VWM_RESIZE2
27740 'VIL_KN%=0
27750 VIL_X%=212:VIL_Y%=132
27760 GOSUB *VIL_SEL_OK
27770 IF VIL_KN%=-2 THEN GOSUB *VIL_VWM_WIN:                                        IF VIL_VWM_R%=16 THEN *VWM_RESIZE1
27780 IF VIL_KN%<>1 THEN *VWM_RESIZE2
27790 '
27800 *VWM_YSCRLBAR_0
27810 VIL_WIN_X%=100                :VIL_WIN_Y%=100
27820 VIL_WIN_W%=VIL_WIN_X%+16*20+15:VIL_WIN_Z%=VIL_WIN_Y%+20*16+15
27830 VIL_VWM_T$="Y SCROLL BAR":VIL_VWM_AT%=2+8192
27840 VIL_VWM_YLBL%=52:VIL_VWM_YLIL%=16:VIL_VWM_YLIP%=0:VIL_VWM_YLPL%=16
27850 GOSUB *VIL_VWM_OP
27860 MOUSE 1,,,1:VIL_VWM_R%=0
27870 WHILE VIL_VWM_R%<>2
27880   VIL_VWM_R%=0
27890   IF VIL_SBAR_R%=1 THEN '一行UP
27900     GET@A(0,  0)-(16*20+15,20*16+15),VIL_WIN_BF%,                                                                 VIL_WIN_BFO&(VIL_WIN_AN%)
27910     PUT@A(0, 20)-(16*20+15,20*16+35),VIL_WIN_BF%,,,,,                                                             VIL_WIN_BFO&(VIL_WIN_AN%)
27920     LINE(0,0)-(16*20+15,19),PSET,%VIL_VWM_CB%,BF
27930     SYMBOL(8,8),TXTBUF$(VIL_VWM_YLIP%),1,1,7
27940   ELSE IF VIL_SBAR_R%=5 THEN '一行DOWN
27950     GET@A(0,  0)-(16*20+15,20*16+15),VIL_WIN_BF%,                                                                 VIL_WIN_BFO&(VIL_WIN_AN%)
27960     PUT@A(0,-20)-(16*20+15,20*16- 5),VIL_WIN_BF%,,,,,                                                             VIL_WIN_BFO&(VIL_WIN_AN%)
27970     LINE(0,20*15+8)-(16*20+15,20*16+15),PSET,%VIL_VWM_CB%,BF
27980     SYMBOL(8,20*15+8),TXTBUF$(VIL_VWM_YLIP%+15),1,1,7
27990   ELSE 
28000     GOSUB *VIL_VWM_CLS
28010     FOR I=0 TO 15
28020       SYMBOL(8,I*20+8),TXTBUF$(VIL_VWM_YLIP%+I),1,1,7
28030     NEXT
28040   ENDIF
28050   VIL_X%=-1:VIL_Y%=-1:VIL_W%=VIL_X%:VIL_Z%=VIL_Y%
28060   VIL_XN%=1:VIL_YN%=1:VIL_MSEL_BD%=0:VIL_C%=15:VIL_MSEL_MN%=0
28070   VIL_MSEL_BB%=1:VIL_MSEL_BE%=1
28080   WHILE VIL_VWM_R%<>8192 AND VIL_VWM_R%<>2
28090     GOSUB *VIL_MSEL_M
28100     GOSUB *VIL_VWM_CHECK
28110   WEND
28120 WEND
28130 '
28140 *VWM_XSCRLBAR_0
28150 VIL_WIN_X%=160                :VIL_WIN_Y%=160
28160 VIL_WIN_W%=VIL_WIN_X%+79:VIL_WIN_Z%=VIL_WIN_Y%+79
28170 VIL_VWM_T$="X-Y":VIL_VWM_AT%=2+4096+8192
28180 VIL_VWM_XLBL%=320:VIL_VWM_XLIL%=80:VIL_VWM_XLIP%=0:VIL_VWM_XLPL%=40
28190 VIL_VWM_YLBL%=320:VIL_VWM_YLIL%=80:VIL_VWM_YLIP%=0:VIL_VWM_YLPL%=40
28200 GOSUB *VIL_VWM_OP:CLS
28210 MOUSE 1,,,1:VIL_VWM_R%=0
28220 WHILE VIL_VWM_R%<>2
28230   VIL_VWM_R%=0
28240   VIL_MG_GN%=20
28250   VIL_MG_X%=-VIL_VWM_XLIP%
28260   VIL_MG_Y%=-VIL_VWM_YLIP%
28270   GOSUB *VIL_MG_PUTG
28280   VIL_X%=-1:VIL_Y%=-1:VIL_W%=VIL_X%:VIL_Z%=VIL_Y%
28290   VIL_XN%=1:VIL_YN%=1:VIL_MSEL_BD%=0:VIL_C%=15:VIL_MSEL_MN%=0
28300   VIL_MSEL_BB%=1:VIL_MSEL_BE%=1
28310   WHILE VIL_VWM_R%<>4096 AND VIL_VWM_R%<>8192 AND VIL_VWM_R%<>2
28320     GOSUB *VIL_MSEL_M
28330     GOSUB *VIL_VWM_CHECK
28340   WEND
28350 WEND
28360 'SCREEN 1,1:CLS:SCREEN 1,0
28370 '
28380 FOR I=1 TO 4:GOSUB *VIL_VWM_CL:NEXT
28390 VIL_WIN_X%=20                 :VIL_WIN_Y%=80
28400 VIL_WIN_W%=VIL_WIN_X%+16*18+15:VIL_WIN_Z%=VIL_WIN_Y%+218+16+7
28410 VIL_VWM_T$="ALL 0":VIL_VWM_AT%=0
28420 GOSUB *VIL_VWM_OP
28430 SYMBOL(8,  8),"　最後の例として、全属性を指定したウ",1,1,7
28440 SYMBOL(8, 28),"ィンドウを右に挙げます。いろいろ試し",1,1,7
28450 SYMBOL(8, 48),"てみてください。　　　　　　　　　　",1,1,7
28460 SYMBOL(8, 68),"　なお、このウィンドウは　　　　　　",1,1,7
28470 SYMBOL(8, 88),"・移動範囲　 　: (120,40)-(599,439) ",1,1,4
28480 SYMBOL(8,108),"・最大サイズ 　: 328×248ドット　 　",1,1,4
28490 SYMBOL(8,128),"・最小サイズ　 : 136× 72ドット　 　",1,1,4
28500 SYMBOL(8,148),"・移動単位　 　: X・Y方向共 8ドット ",1,1,4
28510 SYMBOL(8,168),"・リサイズ単位 : X・Y方向共16ドット ",1,1,4
28520 SYMBOL(8,188),"となっています。　　　　　　　　　　",1,1,7
28530 '
28540 *VWM_ALL_0
28550 VIL_WIN_X%=320           :VIL_WIN_Y%=120
28560 VIL_WIN_W%=VIL_WIN_X%+167:VIL_WIN_Z%=VIL_WIN_Y%+119
28570 VIL_VWM_T$="ALL 1":VIL_VWM_AT%=1+2+4+8+16
28580 GOSUB *VIL_VWM_OP
28590 *VWM_ALL_1
28600 GOSUB *VWM_ALL_9
28610 VIL_VWM_XM%=120       '移動/リサイズ時ウィンドウ左上隅座標最小値
28620 VIL_VWM_YM%= 40
28630 VIL_VWM_WM%=599       '移動/リサイズ時ウィンドウ右下隅座標最大値
28640 VIL_VWM_ZM%=439
28650 VIL_VWM_XL%=136       'リサイズ時のＸ・Ｙ方向長さ最小値
28660 VIL_VWM_YL%= 72
28670 VIL_VWM_WL%=328       'リサイズ時のＸ・Ｙ方向長さ最大値
28680 VIL_VWM_ZL%=248
28690 VIL_VWM_XD%=  8       '移動時の単位ドット数
28700 VIL_VWM_YD%=  8
28710 VIL_VWM_WD%= 16       'リサイズ時の単位ドット数
28720 VIL_VWM_ZD%= 16
28730 '
28740 MOUSE 1,,,1:VIL_VWM_R%=0
28750 WHILE VIL_VWM_R%<>2
28760   VIL_X%=8:VIL_Y%=8:VIL_W%=VIL_X%+7:VIL_Z%=VIL_Y%+7
28770   VIL_XN%=1:VIL_YN%=1:VIL_MSEL_BD%=0:VIL_C%=15:VIL_MSEL_MN%=0
28780   VIL_MSEL_BB%=1:VIL_MSEL_BE%=1
28790   GOSUB *VIL_MSEL_M
28800   GOSUB *VIL_VWM_CHECK
28810   IF VIL_VWM_R% AND VIL_VWM_R%<>2 THEN GOSUB *VWM_ALL_1
28820 WEND
28830 '
28840 *VWM_ALL_2
28850 SYMBOL(8,218),"もう一度やる？",1,1,7
28860 VIL_KN%=0
28870 VIL_X%=132:VIL_Y%=218
28880 GOSUB *VIL_SEL_YN
28890 IF VIL_KN%<1 THEN *VWM_ALL_2
28900 IF VIL_KN%=1 THEN *VWM_ALL_0
28910 '
28920 VIL_VWM_XM%=  8       '移動/リサイズ時ウィンドウ左上隅座標最小値
28930 VIL_VWM_YM%= 14
28940 VIL_VWM_WM%=631       '移動/リサイズ時ウィンドウ右下隅座標最大値
28950 VIL_VWM_ZM%=471
28960 VIL_VWM_XL%= 32       'リサイズ時のＸ・Ｙ方向長さ最小値
28970 VIL_VWM_YL%=  8
28980 VIL_VWM_WL%=624       'リサイズ時のＸ・Ｙ方向長さ最大値
28990 VIL_VWM_ZL%=458
29000 VIL_VWM_XD%=  1       '移動時の単位ドット数
29010 VIL_VWM_YD%=  1
29020 VIL_VWM_WD%=  1       'リサイズ時の単位ドット数
29030 VIL_VWM_ZD%=  1
29040 GOSUB *VIL_VWM_CLALL
29050 RETURN
29060 '
29070 *VWM_ALL_9
29080 GOSUB *VIL_VWM_CLS
29090 CIRCLE((VIL_WIN_W%-VIL_WIN_X%)\2,(VIL_WIN_Z%-VIL_WIN_Y%)\2)                        ,(VIL_WIN_W%-VIL_WIN_X%)\2,1                                                 ,(VIL_WIN_Z%-VIL_WIN_Y%)/(VIL_WIN_W%-VIL_WIN_X%)
29100 A$="位置　("+FNVIL_P2S0$(VIL_WIN_X%,3)+","                                               +FNVIL_P2S0$(VIL_WIN_Y%,3)+")"
29110 SYMBOL(8, 8),A$,1,1,6
29120 A$="　 　-("+FNVIL_P2S0$(VIL_WIN_W%,3)+","                                               +FNVIL_P2S0$(VIL_WIN_Z%,3)+")"
29130 SYMBOL(8,28),A$,1,1,6
29140 A$="サイズ("+FNVIL_P2S0$(VIL_WIN_W%-VIL_WIN_X%+1,3)+","                                  +FNVIL_P2S0$(VIL_WIN_Z%-VIL_WIN_Y%+1,3)+")"
29150 SYMBOL(8,48),A$,1,1,6
29160 RETURN
29170 '
29180 '<<<<<<<<<<<<<<<<<<<<  応用例  >>>>>>>>>>>>>>>>>>>>
29190 *APPLY
29200 '
29210 CLS'SCREEN 1,0:CLS:SCREEN 1,1:CLS
29220 *FACE_DEMO_0
29230 VIL_MG_PN%=VIL_MG_MGD%(VIL_MG_MGI&(1)+1)
29240 GOSUB *VIL_MG_SETP
29260 'VIL_MG_PN%=1:GOSUB *VIL_MG_SETP
29270 VIL_MG_GN%=1:VIL_MG_X%=400:VIL_MG_Y%=200:GOSUB *VIL_MG_PUTG
29280 VIL_MG_GN%=4:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG:                 WAIT 20
29290 T1=0
29300 RESTORE *APPLY_MAKU_DATA
29310 FOR I=1 TO 17
29320   READ VIL_C%,A$,T2,VIL_A$
29330   VIL_X%=80:VIL_Y%=450:VIL_L%=64:GOSUB *VIL_INP_GPRINT
29340   IF A$="A"                                                                      THEN VIL_MG_GN%=5:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG
29350   IF A$="B"                                                                      THEN VIL_MG_GN%=6:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG
29360   IF A$="C" THEN
29370     VIL_MG_GN%=4:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG
29380     VIL_MG_GN%=6:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG
29390     WAIT 150
29400     VIL_MG_GN%=1:VIL_MG_X%=400:VIL_MG_Y%=200:GOSUB *VIL_MG_PUTG
29410   ENDIF
29420   IF A$="D" THEN
29430   WAIT 300
29440     VIL_MG_GN%=1:VIL_MG_X%=400:VIL_MG_Y%=200:GOSUB *VIL_MG_PUTG
29450   ENDIF
29460 '  T2=RND*6
29470   J=0:WHILE J<T2
29480     VIL_MG_GN%=3:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG:                 WAIT 5+RND*10
29490     VIL_MG_GN%=2:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG:                 WAIT 5+RND*10
29500     VIL_MG_GN%=3:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG:                 WAIT 5+RND*10
29510     IF RND>.3! THEN                                                               VIL_MG_GN%=4:VIL_MG_X%=447:VIL_MG_Y%=270:GOSUB *VIL_MG_PUTG:                 WAIT 10+RND*20
29520     T1=T1+1
29530     IF T1>10+RND*5 THEN
29540     VIL_MG_GN%=6:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29550     VIL_MG_GN%=7:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29560     VIL_MG_GN%=8:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29570     VIL_MG_GN%=7:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29580     VIL_MG_GN%=6:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29590     VIL_MG_GN%=5:VIL_MG_X%=428:VIL_MG_Y%=242:GOSUB *VIL_MG_PUTG:WAIT 5
29600     T1=0
29610     ENDIF
29620   J=J+1:WEND
29630 NEXT
29640 CLS:PALETTE@:GOSUB *VIL_VWM_PALSET
29650 RETURN
29660 *APPLY_MAKU_DATA
29670 DATA  2,A,8,"こんにちは。特別出演（？）のまくらちゃんです　　　"
29680 DATA  2,A,7,"ＶＩＬの開発にはタッチしていないのですが、　　　　"
29690 DATA  2,A,6,"なぜか説明役に駆り出されてしまいました。　　　　　"
29700 DATA  2,A,4,"……それはともかく、                              "
29710 DATA  2,A,9,"ここではウィンドウマネージャとマルチグラフィックの"
29720 DATA  2,A,5,"連携例などを説明します。                          "   
29730 DATA  2,C,0,"……え？　　　　　　　　　　　　　　　　　　　　　"
29740 DATA  2,A,6,"ごめんなさい、まだできてないみたいです。          "
29750 DATA  9,D,0,"[風ガ]し、締切が……ひぃいいい                　　"
29760 DATA  2,A,8,"本当はウィンドウにアイコンを張りつける例とか、　　"
29770 DATA  2,A,7,"背景に顔グラフィックがオーバラップする例とか、　　"
29780 DATA  2,A,6,"いろいろ予定していたようなんですが……　　　　　　"
29790 DATA  2,A,4,"ちなみにこの口パクアニメは、　　　　　　　　　　　"
29800 DATA  2,A,7,"マルチグラフィックパッケージで実現しています。　　"
29810 DATA  2,A,3,"これも時間があれば、                              "
29820 DATA  2,A,6,"もっといろんな演出をお見せできたのですが。　　　　"
29830 DATA 10,D,0,"（……表情が変わらないよぉ、しくしく(;_;)）       "
