home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / install / install.cci < prev    next >
Text File  |  1995-06-20  |  91KB  |  3,725 lines

  1. # 1 "main.c"
  2.  
  3. # 1 "main.c"
  4. # 6 "install.h"
  5. char *get_inst_main_mnu();
  6.  
  7. char *get_inst_imag_mnu();
  8. char *get_inst_tool_mnu();
  9. char *get_inst_snd_mnu();
  10. char *get_inst_game_mnu();
  11. char *get_inst_data_mnu();
  12.  
  13.  
  14. int disp_desktop();
  15.  
  16. int syl_clear();
  17. int syl_putf(char *form);
  18. char *add_path_fn(char *path, char *fn);
  19. int tif_load(char *fn);
  20. int tiflist_disp( char **list );
  21. int mveplay(char *fn, int loop);
  22. int exprun(char *fn, char *para);
  23. int inst_help( int evNo, char *evDat, char *fn);
  24. int install_end( char *soft_name, int err );
  25.  
  26. int install_exec( char *probuf );
  27.  
  28. int item_setApl( int drv, int icon, char *ttl, char *path, char *para, int att );
  29. # 20 "main.c"
  30. int DrvInst = -1;
  31. int PltNoWhite = 5;
  32. int ColBoxNormal = 0;
  33. int ColBoxInfo = 0;
  34. int ColBoxCaution = 0;
  35. int ColBoxError = 0;
  36. int ColMesh = 0;
  37.  
  38. int init();
  39. int term();
  40. int install_main();
  41. int set_debug_menu(char *mnu);
  42. # 39 "main.c"
  43. int main(int argc, char **argv)
  44. {
  45. init();
  46. install_main();
  47. term();
  48.  
  49. return (0);
  50. }
  51.  
  52. int init()
  53. {
  54. char msg[80], tmp[128];
  55. char *mnu;
  56. char *msgMenu[(1)];
  57. char *img;
  58. int winBasCol;
  59.  
  60. APL_init((0x030A),1,1);
  61. LHA_sysInit((0));
  62.  
  63.  
  64. disp_desktop();
  65. SCN_wrtPage(1);
  66. tmp[0] = 0;
  67. tmp[1] = 255;
  68. tmp[2] = 255;
  69. tmp[3] = 255;
  70. SCN_palette(0,PltNoWhite,tmp);
  71.  
  72.  
  73. SCN_wrtPage(1);
  74. winBasCol = 0;
  75.  
  76. winBasCol = (_ScnCol_though);
  77. APL_openBaseWin(winBasCol);
  78.  
  79.  
  80. SCN_wrtPage(1);
  81. sprintf(msg,"%c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF);
  82. msgMenu[0] = " INSTALL ";
  83. # 82 "main.c"
  84. APL_openTopBarMenu(Fnt16x16,msg,(_ScnColTbl[12]), (1),Fnt16x12,msgMenu,(_ScnCol_black));
  85.  
  86.  
  87. MNU_datAdd( SysMnu, 0, 'A', Fnt16x16, 0, "about_dlg" , 0, "このプログラムについて");
  88. MNU_datAdd( SysMnu, 0, 'F', Fnt16x16, 0, "dsp_freemem", 0, "フリーメモリ" );
  89.  
  90.  
  91. mnu = AplMnu[0];
  92. MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "inst_help", "message.doc", "説明" );
  93. MNU_datAdd( mnu, 0, 0 , Rom16x16, 0, "" , 0 , (0) );
  94. MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, get_inst_imag_mnu() , "グラフィック");
  95. MNU_mnuAdd( mnu, 0, 'S', Fnt16x16, get_inst_snd_mnu() , "サウンド" );
  96. MNU_mnuAdd( mnu, 0, 'A', Fnt16x16, get_inst_tool_mnu() , "ツール" );
  97. MNU_mnuAdd( mnu, 0, 'G', Fnt16x16, get_inst_game_mnu() , "ゲーム" );
  98. MNU_mnuAdd( mnu, 0, 'D', Fnt16x16, get_inst_data_mnu() , "データ" );
  99. # 104 "main.c"
  100. APL_setExitEvt("EXIT",(9999),"exit_chk");
  101.  
  102.  
  103. AplDtaInit();
  104.  
  105.  
  106. ColBoxNormal = SCN_tile_newMixCol(ColBoxNormal ,(0x00),(_ScnCol_dark) ,(_ScnColTbl[ 7]));
  107. ColBoxInfo = SCN_tile_newMixCol(ColBoxInfo ,(0x00),(_ScnColTbl[12]) ,(_ScnColTbl[ 7]));
  108. ColBoxError = SCN_tile_newMixCol(ColBoxError ,(0x00),(_ScnColTbl[10]) ,(_ScnColTbl[ 7]));
  109. ColBoxCaution = SCN_tile_newMixCol(ColBoxCaution,(0x00),(_ScnColTbl[14]),(_ScnColTbl[ 7]));
  110. ColMesh = SCN_tile_newMixCol(ColMesh ,(0x00),(_ScnCol_though),(_ScnColTbl[ 7]));
  111.  
  112. return ((0));
  113. }
  114.  
  115. int term()
  116. {
  117. char tmp[256];
  118.  
  119. FS_chdrv(toupper(DirStart[0]) - 'A');
  120. sprintf(tmp,"%s.",DirStart);
  121. FS_chdir(tmp);
  122.  
  123. APL_term();
  124. }
  125.  
  126. int disp_desktop()
  127. {
  128.  
  129. int n;
  130. char tmp[256];
  131. static char lastno = -1;
  132. static char *tbl[(9)] =
  133. {
  134. "_oht412.tif",
  135. "_oht501.tif",
  136. "_oht502.tif",
  137. "_oht503.tif",
  138. "_oht504.tif",
  139. "_oht505.tif",
  140. "_oht506.tif",
  141. "_oht507.tif",
  142. "_oht508.tif"
  143. };
  144.  
  145. if ( lastno < 0 )
  146. {
  147. n = (9) - 1;
  148. } else
  149. {
  150. srand( clock() & 0x7FFFFFFF );
  151. do
  152. {
  153. n = rand() % (9);
  154. } while ( n == lastno );
  155. }
  156. sprintf(tmp,"%sWALL/%s", DirStart, tbl[n] );
  157. lastno = n;
  158.  
  159. return tif_load(tmp);
  160. }
  161.  
  162. int install_main()
  163. {
  164. int ret;
  165.  
  166. SCN_wrtPage(1);
  167. syl_clear();
  168. for (;;)
  169. {
  170. PD_curOn();
  171. ret = EV_chk(EvTop,0);
  172. if ( ret == (9999) )
  173. break;
  174. }
  175. return (0);
  176. }
  177.  
  178. int exit_chk()
  179. {
  180. char *dlgTxm;
  181. int i, ret;
  182. static char *msgtbl[4] =
  183. {
  184. "",
  185. "インストーラを終了しますか?",
  186. "",
  187. (0)
  188. };
  189.  
  190. dlgTxm = DlgTxm_open(ColBoxCaution);
  191. for ( i = 0; msgtbl[i] != (0); ++i )
  192. DlgTxm_putf( dlgTxm, Fnt16x16, (1), msgtbl[i]);
  193.  
  194. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnColTbl[15]), (_ScnCol_dark),
  195. '\r' , 0x7300 , (9999), "", 0, "終了 : [実行]");
  196. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnColTbl[15]), (_ScnCol_dark),
  197. '\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
  198. DlgTxm_setSize(dlgTxm,480,64);
  199. DlgTxm_setPosition(dlgTxm,(1));
  200. ret = DlgTxm_start(dlgTxm);
  201. DlgTxm_close(dlgTxm);
  202. if ( ret != (9999) )
  203. ret = 0;
  204.  
  205. return (ret);
  206. }
  207.  
  208. int about_dlg()
  209. {
  210. char *dlgTxm;
  211.  
  212. dlgTxm = DlgTxm_open(ColBoxNormal);
  213. DlgTxm_setTitle(dlgTxm,Fnt16x16, "天晴CD installer ver.%s edition #%s",
  214. "1.01a", "02" );
  215.  
  216. DlgTxm_putf( dlgTxm, Fnt16x16, (1),"「天晴CD Vol.2 鳳凰の巻」インストールプログラム");
  217. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  218. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "%c%c",
  219. Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
  220. DlgTxm_putf( dlgTxm, Rom16x16, (1), "1995 8月号付録");
  221. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "%c%c SOFTBANK",
  222. Gaiji_copyright>>8, Gaiji_copyright&0xFF );
  223.  
  224. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
  225. (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
  226. DlgTxm_setSize(dlgTxm,320,48);
  227. DlgTxm_setPosition(dlgTxm,(1));
  228.  
  229. DlgTxm_start(dlgTxm);
  230. DlgTxm_close(dlgTxm);
  231.  
  232. return (0);
  233. }
  234.  
  235. int dsp_freemem()
  236. {
  237. unsigned int siz;
  238. char *dlgTxm;
  239. char tmp1[32], tmp2[32];
  240.  
  241. siz = APL_getFreeMem();
  242. dlgTxm = DlgTxm_open(ColBoxInfo);
  243. DlgTxm_setTitle(dlgTxm,Fnt16x16, "FREE MEMORY SIZE");
  244.  
  245. DlgTxm_putf( dlgTxm, Fnt16x12, (1),
  246. "free memory %s (%s) bytes",
  247. fdl_ltoaDig(siz,tmp1), fdl_ltoaMsg(siz,tmp2) );
  248.  
  249. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
  250. (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
  251. DlgTxm_setSize(dlgTxm,400,64);
  252. DlgTxm_setPosition(dlgTxm,(0),2,22);
  253.  
  254. DlgTxm_start(dlgTxm);
  255. DlgTxm_close(dlgTxm);
  256. }
  257. # 5 "instimg.c"
  258. char *get_inst_imag_mnu()
  259. {
  260. char *mnu;
  261.  
  262. if ( (mnu = MNU_open()) == (0) )
  263. return ((0));
  264. MNU_datAdd( mnu, 0, 'A', Rom16x16, 0, "install_artemis2", 0, "フルカラー対応 ARTemis" );
  265. MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "install_tetujin" , 0, "画像処理の鉄人達" );
  266. MNU_datAdd( mnu, 0, 'U', Rom16x16, 0, "install_ugoku" , 0, "動くざんす" );
  267. MNU_datAdd( mnu, 0, 'I', Rom16x16, 0, "install_icv" , 0, "減色&画像コンバートツール ICV" );
  268. MNU_datAdd( mnu, 0, 'P', Rom16x16, 0, "install_prin" , 0, "画像入出力ツール PRIN" );
  269. MNU_datAdd( mnu, 0, 'E', Rom16x16, 0, "install_eastray" , 0, "高機能\レイトレーシングシステム EASTRAY" );
  270. MNU_datAdd( mnu, 0, 'O', Rom16x16, 0, "install_okigoku" , 0, "お気楽極楽大作戦「EASTRAY入門」" );
  271. MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_si" , 0, "ビデオ映像表\示 SI" );
  272. MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_marin" , 0, "3D CGツール集 by MARIN" );
  273. MNU_setPosition(mnu,-1);
  274.  
  275. return (mnu);
  276. }
  277.  
  278. int install_artemis2()
  279. {
  280. static char *buf[6] =
  281. {
  282. "softname    \"「フルカラー対応 ARTemis」\"",
  283. "instfile    /OH_TOWNS/ART2    \"artemis*.*\"",
  284. "help        artemis2.ggg",
  285. "arcfile    src.lzh    SRC",
  286. "item        \"ARTemis2\",artemis2.exp,\"\",2",
  287. (0)
  288. };
  289.  
  290. return install_exec(buf);
  291. }
  292.  
  293.  
  294. int install_tetujin()
  295. {
  296. static char *buf[7] =
  297. {
  298. "softname    \"「画像処理の鉄人達」\"",
  299. "instfile    /OH_TOWNS/TETUJIN    \"*.exg *.doc\"",
  300. "help        TETUJIN.GGG",
  301. "arcfile    src.lzh    SRC",
  302. "item        \"画像処理の鉄人達\"    ,TETUJIN.EXG,\"\" ,2",
  303. "item        \"画像処理の鉄人達/387\",TETUJINF.EXG,\"\",2",
  304. (0)
  305. };
  306.  
  307. return install_exec(buf);
  308. }
  309.  
  310. int install_ugoku()
  311. {
  312. static char *buf[13] =
  313. {
  314. "softname    \"「動くざんす」\"",
  315. "instfile    /OH_TOWNS/UGOKU    \"*.*\"",
  316. "help        UGOKU.GGG",
  317.  
  318. "item        \"MOVPLAY\"        ,MOVPLAY.EXP,\"\",2",
  319. "item        \"MOVPLAY/SHELL\"  ,MOVPLAY.EXG,\"\",2",
  320. "item        \"MOVREC\"         ,MOVREC.EXP ,\"\",2",
  321. "item        \"MOVREC/SHELL\"   ,MOVREC.EXG ,\"\",2",
  322. "item        \"VDSYS\"          ,VDSYS.EXP  ,\"\",2",
  323. "item        \"VDSYS/SHELL\"    ,VDSYS.EXG  ,\"\",2",
  324. "item        \"レリーフ\"       ,MOVRLF.EXP ,\"\",2",
  325. "item        \"レリーフ/SHELL\" ,MOVRLF.EXG ,\"\",2",
  326. (0)
  327. };
  328.  
  329. return install_exec(buf);
  330. }
  331.  
  332. int install_okigoku()
  333. {
  334. static char *buf[4] =
  335. {
  336. "softname    \"お気楽極楽大作戦「EASTRAY入門」\"",
  337. "instfile    /OH_TOWNS/OKIGOKU    \"*.*\"",
  338. "help        OKIGOKU.GGG",
  339. (0)
  340. };
  341.  
  342. return install_exec(buf);
  343. }
  344.  
  345. int install_icv()
  346. {
  347. static char *buf[6] =
  348. {
  349. "softname    \"減色&画像コンバートツール ICV\"",
  350. "instfile    /OH_TOWNS/ICV    \"*.*\"",
  351. "help        ICV099.GGG",
  352. "item        \"ICV\"      ,ICV.EXP,\"\",2",
  353. "item        \"ICV/SHELL\",ICV.EXG,\"\",2",
  354. (0)
  355. };
  356.  
  357. return install_exec(buf);
  358. }
  359.  
  360. int install_prin()
  361. {
  362. static char *buf[5] =
  363. {
  364. "softname    \"画像入出力ツール PRIN\"",
  365. "instfile    /OH_TOWNS/PRIN    \"*.*\"",
  366. "help        PRIN.GGG",
  367. "item        \"PRIN\"     ,PRIN.EXP,\"\",2",
  368. (0)
  369. };
  370.  
  371. return install_exec(buf);
  372. }
  373.  
  374. int install_si()
  375. {
  376. static char *buf[5] =
  377. {
  378. "softname    \"SI version α\"",
  379. "instfile    /OH_TOWNS/SI    \"*.*\"",
  380. "help        SI.DOC",
  381. "item        \"SI\"     ,SI.EXG,\"\",2",
  382. (0)
  383. };
  384.  
  385. return install_exec(buf);
  386. }
  387.  
  388. int install_marin()
  389. {
  390. static char *buf[4] =
  391. {
  392. "softname    \"3D CGツール集 by MARIN\"",
  393. "instfile    /OH_TOWNS/MARIN    \"*.*\"",
  394. "help        MARIN.DOC",
  395. (0)
  396. };
  397.  
  398. return install_exec(buf);
  399. }
  400. # 5 "_eastray.c"
  401. int _eastray_demo()
  402. {
  403. static char *tiflist[16] =
  404. {
  405. "MOON.TIF" ,
  406. "RAYTRACE.TIF",
  407. "BALL3_2.TIF" ,
  408. "FPICS.TIF" ,
  409. "FPICS2.TIF" ,
  410. "FR_C.TIF" ,
  411. "PLANET_C.TIF",
  412. "SAM10.TIF" ,
  413. "SAM13.TIF" ,
  414. "SAM9.TIF" ,
  415. "TEST10.TIF" ,
  416. "TOUMEI_C.TIF",
  417. "FIG3X.TIF" ,
  418. "FIG5X.TIF" ,
  419. "FIG6_2.TIF" ,
  420. (0)
  421. };
  422.  
  423. FS_chdrv( toupper(DirStart[0]) - 'A' );
  424. FS_chdir( "/OH_TOWNS/EASTRAY/DEMO" );
  425. tiflist_disp(tiflist);
  426.  
  427. return (0);
  428. }
  429.  
  430. int install_eastray()
  431. {
  432. int ret, drv, fcopy_att, prog_type, srcdrv, item_setup;
  433. char *softname;
  434. char *helpfn;
  435. char *srcdir;
  436. char instdir[256], *instfile;
  437. char *item_prog, *item_ttl, item_para[128];
  438. int item_att;
  439. char *dlgTxm;
  440. char tmp[256], tmp2[256];
  441.  
  442. instdir[0] = '\0';
  443.  
  444.  
  445.  
  446. softname = "「高機能\レイトレーシング システム EASTRAY」";
  447.  
  448. srcdir = "/OH_TOWNS/EASTRAY";
  449. instfile = "*.*";
  450. helpfn = "/OH_TOWNS/EASTRAY/EASTRAY.GGG";
  451. item_att = 2;
  452.  
  453. srcdrv = toupper(DirStart[0]) - 'A';
  454.  
  455.  
  456. _TOP:
  457. syl_putf("%s",softname);
  458. dlgTxm = DlgTxm_open(ColBoxNormal);
  459. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  460. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  461. "%s をインストールします。", softname );
  462. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  463.  
  464. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  465. 1, "", 0, "インストール : [実行]");
  466. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  467. 2, "inst_help", helpfn, "説明 : [H]");
  468. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
  469. 3, "", 0, "デモ : [D");
  470. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  471. 4, "", (0), "取消 : [取消]");
  472.  
  473. DlgTxm_setSize(dlgTxm,480,40);
  474. DlgTxm_setPosition(dlgTxm,(1));
  475. do
  476. {
  477. ret = DlgTxm_start(dlgTxm);
  478. } while ( ret == 2 );
  479. DlgTxm_close(dlgTxm);
  480. if ( ret == 3 )
  481. {
  482. _eastray_demo();
  483. goto _TOP;
  484. } else if ( ret != 1 )
  485. goto _RET;
  486.  
  487.  
  488. dlgTxm = DlgTxm_open(ColBoxNormal);
  489. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  490. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  491. "プログラムの種別を指定してください。" );
  492. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  493. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "  1. TOS386 … TOWNS 用" );
  494. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "  2. TOS387 … TOWNS 用        (数値演算プロセッサ/ODP 搭載機種)" );
  495. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "  3. DOS386 … DOS-EXTENDER汎用" );
  496. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "  4. DOS387 … DOS-EXTENDER汎用(数値演算プロセッサ/ODP 搭載機種)" );
  497.  
  498.  
  499. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '1', 0x0200,
  500. 1, "", 0, "TOS386 : [1]");
  501. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '2', 0x0300,
  502. 2, "", 0, "TOS387 : [2]");
  503. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '3', 0x0400,
  504. 3, "", 0, "DOS386 : [3]");
  505. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '4', 0x0500,
  506. 4, "", 0, "DOS387 : [4]");
  507.  
  508. DlgTxm_setSize(dlgTxm,480,40);
  509. DlgTxm_setPosition(dlgTxm,(1));
  510. do
  511. {
  512. ret = DlgTxm_start(dlgTxm);
  513. } while ( ret < 1 );
  514. DlgTxm_close(dlgTxm);
  515. prog_type = ret;
  516.  
  517.  
  518. ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
  519. if ( ret )
  520. goto _TOP;
  521.  
  522. dlgTxm = DlgTxm_open(ColBoxNormal);
  523. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  524. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  525. "%s", instdir );
  526. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  527. "このディレクトリにインストールしてもいいですか?" );
  528. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  529. if ( prog_type == 1 || prog_type == 2 )
  530. {
  531. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  532. "インストール1 … ファイルを複写してTownsMENU にアイテム登録");
  533. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  534. "インストール2 … ファイルを複写(アイテム登録はしない)    ");
  535. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
  536. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
  537. } else
  538. {
  539. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 2, "", 0, "インストール : [実行]");
  540. }
  541. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
  542.  
  543. DlgTxm_setSize(dlgTxm,320,40);
  544. DlgTxm_setPosition(dlgTxm,(1));
  545. ret = DlgTxm_start(dlgTxm);
  546. DlgTxm_close(dlgTxm);
  547. if ( ret != 1 && ret != 2 )
  548. goto _TOP;
  549. item_setup = (ret == 1 ? 1 : 0);
  550.  
  551.  
  552. syl_putf("INSTALL START");
  553. switch ( prog_type )
  554. {
  555. case 1: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/TOWNS386"; break;
  556. case 2: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/TOWNS387"; break;
  557. case 3: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/EXTEN386"; break;
  558. case 4: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/EXTEN387"; break;
  559. }
  560.  
  561. FS_chdrv(srcdrv);
  562. FS_getFullPn(tmp,srcdir);
  563. fcopy_att = (0x00000010) | (0x00000100);
  564. instfile = "*.*";
  565. ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
  566.  
  567.  
  568.  
  569. if ( ret == (0) && item_setup != 0 )
  570. {
  571. syl_putf("ITEM SETUP");
  572. drv = toupper(instdir[0]) - 'A';
  573. strcpy(item_para,"");
  574.  
  575. strcpy(tmp,instdir);
  576. add_path_fn(tmp,"SUPPORT.EXP");
  577. item_setApl( drv, 1024, "EASTRAY/SUPPORT", tmp, item_para, item_att );
  578. }
  579.  
  580.  
  581. install_end( softname, ret );
  582.  
  583. _RET:
  584. syl_clear();
  585. return (0);
  586. }
  587. # 6 "instsnd.c"
  588. char *get_inst_snd_mnu()
  589. {
  590. char *mnu;
  591.  
  592. if ( (mnu = MNU_open()) == (0) )
  593. return ((0));
  594. MNU_datAdd( mnu, 0, 'O', Rom16x16, 0, "install_otohime", 0, "音姫七変化" );
  595. MNU_datAdd( mnu, 0, 'G', Rom16x16, 0, "install_gwav" , 0, "PCM Player 'GWAV'");
  596. MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_gcanvas", 0, "GraphicCanvas" );
  597. MNU_setPosition(mnu,-1);
  598.  
  599. return (mnu);
  600. }
  601.  
  602.  
  603. int install_otohime()
  604. {
  605. static char *buf[7] =
  606. {
  607. "softname    \"音姫七変化シリーズ\"",
  608. "instfile    /OH_TOWNS/OTOHIME    \"*.*\"",
  609. "help        WAVHIME.GGG",
  610. "item        \"音姫七変化/WAVE\",WAVHIME.EXG,\"\",2",
  611. "item        \"音姫七変化/SND\" ,OTOHIME.EXP,\"\",2",
  612. "item        \"音姫七録音機\"   ,HIMEREC.EXG,\"\",2",
  613. (0)
  614. };
  615.  
  616. return install_exec(buf);
  617. }
  618.  
  619. int install_gwav()
  620. {
  621. static char *buf[5] =
  622. {
  623. "softname    \"「PCM Player 'GWAV'」\"",
  624. "instfile    /OH_TOWNS/GWAV    \"*.*\"",
  625. "help        SRC/GWAV.DOC",
  626. "item        \"PCM Player GWAV\",EXP\\GWAV.EXG,\"\",2",
  627. (0)
  628. };
  629.  
  630. return install_exec(buf);
  631. }
  632.  
  633. int install_gcanvas()
  634. {
  635. static char *buf[5] =
  636. {
  637. "softname    \"GraphicCanvas\"",
  638. "instfile    /OH_TOWNS/GCANVAS    \"*.*\"",
  639. "help        GCANVAS.DOC",
  640. "item        \"GraphicCanvas\",GCANVAS.EXP,\"\",2",
  641. (0)
  642. };
  643.  
  644. return install_exec(buf);
  645. }
  646. # 5 "insttool.c"
  647. int install_bascheck();
  648. int install_ccheck();
  649.  
  650. char *get_inst_tool_mnu()
  651. {
  652. char *mnu;
  653.  
  654. if ( (mnu = MNU_open()) == (0) )
  655. return ((0));
  656. MNU_datAdd( mnu, 0, 'K', Rom16x16, 0, "install_kakeibo" , 0, "マルチウインド型家計簿" );
  657. MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_gdev" , 0, "エセ統合環境 (GDEV)" );
  658. MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_gdlldbg" , 0, "Townsシェルデバッグ表\示設定" );
  659. MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_ssaver" , 0, "Townsシェルスクリーンセーバー" );
  660. MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_dic" , 0, "CD辞書検索プログラム DIC" );
  661. MNU_datAdd( mnu, 0, 'W', Rom16x16, 0, "install_whereis" , 0, "WHEREIS [WHEREIS.EXG]" );
  662. MNU_datAdd( mnu, 0, 'B', Rom16x16, 0, "install_bascheck", 0, "BASICチェックサム" );
  663. MNU_datAdd( mnu, 0, 'C', Rom16x16, 0, "install_ccheck" , 0, "Cソ\ースコードチェックサム" );
  664. MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "install_his" , 0, "ハードウェア割込支援ライブラリ" );
  665. MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "tarosc_install" , 0, "TaroPYON SoftWare collection" );
  666. MNU_setPosition(mnu,-1);
  667.  
  668. return (mnu);
  669. }
  670.  
  671. int install_whereis()
  672. {
  673. static char *buf[5] =
  674. {
  675. "softname    \"WHEREIS [WHEREIS.EXG] V1.4\"",
  676. "instfile    /OH_TOWNS/WHEREIS    \"*.*\"",
  677. "help        WHEREIS.GGG",
  678. "item        \"WHEREIS\",WHEREIS.EXG,\"\",2",
  679. (0)
  680. };
  681.  
  682. return install_exec(buf);
  683. }
  684.  
  685. int install_gdev()
  686. {
  687. static char *buf[5] =
  688. {
  689. "softname    \"エセ統合環境 V0.1 L10β\"",
  690. "instfile    /OH_TOWNS/GDEV    \"*.*\"",
  691. "help        GDEV.DOC",
  692. "item        \"エセ統合環境(GDEV)\",GDEV.EXG,\"\",2",
  693. (0)
  694. };
  695.  
  696. return install_exec(buf);
  697. }
  698.  
  699. int install_gdlldbg()
  700. {
  701. static char *buf[5] =
  702. {
  703. "softname    \"Townsシェルデバッグ表\示設定\"",
  704. "instfile    /OH_TOWNS/GDLLDBG    \"*.*\"",
  705. "help        GDLLDBG.DOC",
  706. "item        \"シェルデバッグ表\示設定\",GDLLDBG.EXG,\"\",2",
  707. (0)
  708. };
  709.  
  710. return install_exec(buf);
  711. }
  712.  
  713. int install_ssaver()
  714. {
  715. static char *buf[5] =
  716. {
  717. "softname    \"Townsシェルスクリーンセーバー SSAVER\"",
  718. "instfile    /OH_TOWNS/SSAVER    \"*.*\"",
  719. "help        SSAVER.DOC",
  720. "item        \"SSAVER\",SSAVER.EXG,\"\",2",
  721. (0)
  722. };
  723.  
  724. return install_exec(buf);
  725. }
  726.  
  727.  
  728. int install_dic()
  729. {
  730. static char *buf[4] =
  731. {
  732. "softname    \"CD辞書検索プログラム DIC\"",
  733. "instfile    /OH_TOWNS/DIC    \"dic.exe dic.doc\"",
  734. "help        DIC.GGG",
  735. (0)
  736. };
  737.  
  738. return install_exec(buf);
  739. }
  740.  
  741. int install_his()
  742. {
  743. static char *buf[4] =
  744. {
  745. "softname    \"ハードウェア割込支援ライブラリ\"",
  746. "instfile    /OH_TOWNS/HIS    \"*.*\"",
  747. "help        HIS.GGG",
  748. (0)
  749. };
  750.  
  751. return install_exec(buf);
  752. }
  753.  
  754. int install_bascheck()
  755. {
  756. static char *buf[4] =
  757. {
  758. "softname    \"BASICチェックサム\"",
  759. "instfile    /OH_TOWNS/LISTTOOL/BASCHECK    \"*.bas *.doc\"",
  760. "help        BASCHECK.GGG",
  761. (0)
  762. };
  763.  
  764. return install_exec(buf);
  765. }
  766.  
  767. int install_ccheck()
  768. {
  769. static char *buf[4] =
  770. {
  771. "softname    \"Cソ\ースコードチェックサム\"",
  772. "instfile    /OH_TOWNS/LISTTOOL/CCHECK    \"*.exe *.c *.doc\"",
  773. "help        CHK.GGG",
  774. (0)
  775. };
  776.  
  777. return install_exec(buf);
  778. }
  779. # 5 "_kakeibo.c"
  780. int _kakeibo_make_cfg(char *instdir);
  781.  
  782. int install_kakeibo()
  783. {
  784. int ret, drv, fcopy_att, srcdrv, item_setup;
  785. char *softname;
  786. char *helpfn;
  787. char *srcdir;
  788. char instdir[256], *instfile;
  789. char *item_prog, *item_ttl, item_para[128];
  790. int item_att;
  791. char *dlgTxm;
  792. char tmp[256];
  793.  
  794. instdir[0] = '\0';
  795. softname = "マルチウインド型家計簿";
  796. srcdir = "/OH_TOWNS/KAKEIBO";
  797. instfile = "*.*";
  798. helpfn = "/OH_TOWNS/KAKEIBO/KAKEIBO.GGG";
  799. item_ttl = "家計簿";
  800. item_prog = "KAKEIBO.EXP";
  801. item_att = 2;
  802.  
  803. srcdrv = toupper(DirStart[0]) - 'A';
  804.  
  805.  
  806. _TOP:
  807. syl_putf("%s",softname);
  808. dlgTxm = DlgTxm_open(ColBoxNormal);
  809. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  810. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  811. "%s をインストールします。", softname );
  812. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  813.  
  814. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  815. 1, "", 0, "インストール : [実行]");
  816. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  817. 2, "inst_help", helpfn, "説明 : [H]");
  818. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  819. 3, "", (0), "取消 : [取消]");
  820.  
  821. DlgTxm_setSize(dlgTxm,480,40);
  822. DlgTxm_setPosition(dlgTxm,(1));
  823. do
  824. {
  825. ret = DlgTxm_start(dlgTxm);
  826. } while ( ret == 2 );
  827. DlgTxm_close(dlgTxm);
  828. if ( ret != 1 )
  829. goto _RET;
  830.  
  831.  
  832.  
  833. ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
  834. if ( ret )
  835. goto _TOP;
  836.  
  837. dlgTxm = DlgTxm_open(ColBoxNormal);
  838. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  839. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  840. "%s", instdir );
  841. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  842. "このディレクトリにインストールしてもいいですか?" );
  843. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  844. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  845. "インストール1 … ファイルを複写してTownsMENU にアイテム登録");
  846. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  847. "インストール2 … ファイルを複写(アイテム登録はしない)    ");
  848.  
  849. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
  850. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
  851.  
  852. DlgTxm_setSize(dlgTxm,320,40);
  853. DlgTxm_setPosition(dlgTxm,(1));
  854. ret = DlgTxm_start(dlgTxm);
  855. DlgTxm_close(dlgTxm);
  856. if ( ret != 1 && ret != 2 )
  857. goto _TOP;
  858. item_setup = (ret == 1 ? 1 : 0);
  859.  
  860.  
  861. syl_putf("INSTALL START");
  862. FS_chdrv(srcdrv);
  863. FS_getFullPn(tmp,srcdir);
  864. fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
  865. ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
  866.  
  867. if ( ret == (0) )
  868. ret = _kakeibo_make_cfg(instdir);
  869.  
  870.  
  871. if ( ret == (0) && item_setup != 0 )
  872. {
  873. syl_putf("ITEM SETUP");
  874. drv = toupper(instdir[0]) - 'A';
  875.  
  876. strcpy(tmp,instdir);
  877. add_path_fn(tmp,item_prog);
  878.  
  879. item_para[0] = '\0';
  880. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  881. }
  882.  
  883.  
  884. install_end( softname, ret );
  885.  
  886. _RET:
  887. syl_clear();
  888. return (0);
  889. }
  890.  
  891. int _kakeibo_make_cfg(char *instdir)
  892. {
  893. int ret, ch, len;
  894. char *fpsrc, *fpdst;
  895. char *s, tmp[256], tmp2[256], buf[256];
  896.  
  897. ret = (-1);
  898. fpsrc = (0);
  899. fpdst = (0);
  900.  
  901.  
  902. strcpy(tmp,DirStart); add_path_fn(tmp,"_kakeibo.cfg");
  903. if ( (fpsrc = FS_fopen(tmp,"r")) == (0) )
  904. goto _ERR;
  905.  
  906.  
  907. strcpy(tmp,instdir); add_path_fn(tmp,"kakeibo.cfg");
  908. if ( (fpdst = FS_fopen(tmp,"w")) == (0) )
  909. goto _ERR;
  910.  
  911. while ( fgets(buf,256,fpsrc) != (0) )
  912. {
  913. if ( buf[0] == '*' )
  914. {
  915. fputs(buf,fpdst);
  916. } else
  917. {
  918. s = buf;
  919. while ( *s != '\0' )
  920. {
  921. if ( *s == '$' && *(char *)(s + 1) == '(' )
  922. {
  923. s += 2;
  924. if ( strncmp(s,"INSTDIR)",8) == 0 )
  925. {
  926. s += 8;
  927. FS_cnvFn(tmp,instdir);
  928. len = strlen(tmp);
  929. if ( len > 0 && tmp[len-1] == '/' )
  930. tmp[len-1] = '\0';
  931. FS_dosFn(tmp2,tmp);
  932. fputs(tmp2,fpdst);
  933. }
  934. } else
  935. {
  936. ch = (*s) & 0xFF;
  937. ++s;
  938. fputc(ch,fpdst);
  939. }
  940. }
  941. }
  942. }
  943. ret = (0);
  944.  
  945. _ERR:
  946. if ( fpsrc != (0) ) FS_fclose(fpsrc);
  947. if ( fpdst != (0) ) FS_fclose(fpdst);
  948.  
  949. return (ret);
  950. }
  951. # 12 "..\TAROPYON\INSTALL\_tarocol.c"
  952. char *_tc_aplname[(9)] =
  953. {
  954. "HEwin" ,
  955. "EDIA" ,
  956. "GSPLAY" ,
  957. "HE386" ,
  958. "CCI" ,
  959. "WallPop" ,
  960. "DOS tools" ,
  961. "TownsOS tools",
  962. "Sidework"
  963. };
  964.  
  965. char _tc_skey[(9)] =
  966. {
  967. 'H',
  968. 'E',
  969. 'G',
  970. 'M',
  971. 'C',
  972. 'W',
  973. 'D',
  974. 'T',
  975. 'S'
  976. };
  977.  
  978. char _tc_instdir[(9)][128];
  979. char _tc_defdir[128];
  980.  
  981. int _hewin_swapDrv, _hewin_scnmode, _hewin_instmode;
  982. int _edia_swapDrv , _edia_scnmode;
  983.  
  984. int _gsplay_midi, _gsplay_rsmidi, _gsplay_internal;
  985. char _gsplay_datapath[256];
  986. char _gsplay_datapath_fmb[256];
  987. char _gsplay_datapath_pmb[256];
  988. char _gsplay_datapath_snd[256];
  989. # 58 "..\TAROPYON\INSTALL\_tarocol.c"
  990. int _tc_setinstdir(char *instdir);
  991. int _tc_setapldir();
  992. int _tc_check_config(int item_setup);
  993. int _hewin_config(char *instdir, int item_setup);
  994. int _hewin_install(char *instdir,int item_setup);
  995. int _hewin_setup(char *instdir,int item_setup);
  996. int _edia_config(char *instdir, int item_setup);
  997. int _edia_install(char *instdir,int item_setup);
  998. int _edia_setup(char *instdir,int item_setup);
  999. int _hewin_edia_setup(char *fn_mac, char *instdir,int item_setup);
  1000. int _chk_pathlist( char *pathlist, char *path );
  1001. int _gsplay_config(char *instdir, int item_setup);
  1002. int _gsplay_install(char *instdir,int item_setup);
  1003. int _gsplay_setup(char *instdir,int item_setup);
  1004. int _he386_install(char *instdir,int item_setup);
  1005. int _cci_install(char *instdir,int item_setup);
  1006. int _wallpop_install(char *instdir,int item_setup);
  1007. int _dostool_install(char *instdir,int item_setup);
  1008. int _tostool_install(char *instdir,int item_setup);
  1009. int _sdktool_config(char *instdir,int item_setup);
  1010. int _sdktool_install(char *instdir,int item_setup);
  1011.  
  1012. int tarosc_install()
  1013. {
  1014. int ret, i, att, len, drv, argc, item_setup;
  1015. char *fp;
  1016. char **argv, *p, *typename;
  1017. char *instdir;
  1018. char *softname;
  1019. char srcdir[128], instfile[128];
  1020. char helpfn[128];
  1021. char item_ttl[80],item_prog[16], item_para[128];
  1022. int item_att;
  1023. char *dlgTxm;
  1024. char tmp[256], tmp2[256];
  1025.  
  1026. instdir = _tc_defdir; instdir[0] = '\0';
  1027. strcpy( instdir, "D:/USR");
  1028. softname = "TaroPYON SoftWare collection";
  1029.  
  1030. _TOP:
  1031. syl_putf(softname);
  1032. dlgTxm = DlgTxm_open(ColBoxNormal);
  1033. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  1034. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1035. "%s をインストールします。", softname );
  1036. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  1037. 1, "", 0, "インストール : [実行]");
  1038. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  1039. 2, "inst_help", "/OH_TOWNS/TAROPYON/tarocol.doc", "説明 : [H]");
  1040. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  1041. 3, "", 0, "取消 : [取消]");
  1042. DlgTxm_setSize(dlgTxm,320,40);
  1043. DlgTxm_setPosition(dlgTxm,(1));
  1044. do
  1045. {
  1046. ret = DlgTxm_start(dlgTxm);
  1047. } while ( ret == 2 );
  1048. DlgTxm_close(dlgTxm);
  1049. if ( ret != 1 )
  1050. goto _RET;
  1051.  
  1052.  
  1053. _SETDIR:
  1054. if ( _tc_setinstdir(instdir) )
  1055. goto _TOP;
  1056. if ( _tc_setapldir() < 0 )
  1057. goto _TOP;
  1058.  
  1059. dlgTxm = DlgTxm_open(ColBoxNormal);
  1060. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  1061. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1062. "以下のディレクトリにインストールします。" );
  1063. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  1064. ret = 0;
  1065. for ( i = 0; i < (9); ++i )
  1066. {
  1067. if ( _tc_instdir[i][0] )
  1068. {
  1069. ret = 1;
  1070. DlgTxm_putf( dlgTxm, Fnt16x12, (0),
  1071. "  %-14s [%s]", _tc_aplname[i], _tc_instdir[i] );
  1072. }
  1073. }
  1074. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  1075. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1076. "インストール1 … ファイルを複写してTownsMENU にアイテム登録");
  1077. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1078. "インストール2 … ファイルを複写(アイテム登録はしない)    ");
  1079.  
  1080. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
  1081. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
  1082. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
  1083. DlgTxm_setSize(dlgTxm,320,40);
  1084. DlgTxm_setPosition(dlgTxm,(1));
  1085. ret = DlgTxm_start(dlgTxm);
  1086. DlgTxm_close(dlgTxm);
  1087. if ( ret != 1 && ret != 2 )
  1088. goto _TOP;
  1089. item_setup = (ret == 1 ? 1 : 0);
  1090.  
  1091.  
  1092. if ( _tc_instdir[(0) ][0] ) _hewin_config( _tc_instdir[(0) ], item_setup);
  1093. if ( _tc_instdir[(1) ][0] ) _edia_config( _tc_instdir[(1) ], item_setup);
  1094. if ( _tc_instdir[(2) ][0] ) _gsplay_config( _tc_instdir[(2) ], item_setup);
  1095.  
  1096.  
  1097.  
  1098. ret = _tc_check_config(item_setup);
  1099. if ( ret < 0 )
  1100. goto _TOP;
  1101. if ( ret == 0 )
  1102. goto _SETDIR;
  1103.  
  1104.  
  1105. if ( _tc_instdir[(0) ][0] ) _hewin_install( _tc_instdir[(0) ], item_setup);
  1106. if ( _tc_instdir[(1) ][0] ) _edia_install( _tc_instdir[(1) ], item_setup);
  1107. if ( _tc_instdir[(2) ][0] ) _gsplay_install( _tc_instdir[(2) ], item_setup);
  1108. if ( _tc_instdir[(3) ][0] ) _he386_install( _tc_instdir[(3) ], item_setup);
  1109. if ( _tc_instdir[(4) ][0] ) _cci_install( _tc_instdir[(4) ], item_setup);
  1110. if ( _tc_instdir[(5)][0] ) _wallpop_install(_tc_instdir[(5)], item_setup);
  1111. if ( _tc_instdir[(6)][0] ) _dostool_install(_tc_instdir[(6)], item_setup);
  1112. if ( _tc_instdir[(7)][0] ) _tostool_install(_tc_instdir[(7)], item_setup);
  1113. if ( _tc_instdir[(8)][0] ) _sdktool_install(_tc_instdir[(8)], item_setup);
  1114. install_end( softname, 0 );
  1115.  
  1116. _RET:
  1117. syl_clear();
  1118.  
  1119. return ((0));
  1120. }
  1121.  
  1122. int _tc_setinstdir(char *instdir)
  1123. {
  1124. char tmp[256];
  1125.  
  1126. if ( APL_setInstallDir(instdir,"インストール先指定") )
  1127. return ((-1));
  1128.  
  1129. strcpy(tmp,instdir);
  1130. add_path_fn(tmp,"");
  1131.  
  1132. sprintf( _tc_instdir[(0) ], "%s%s", tmp, "HEWIN" );
  1133. sprintf( _tc_instdir[(1) ], "%s%s", tmp, "EDIA" );
  1134. sprintf( _tc_instdir[(2) ], "%s%s", tmp, "GSPLAY" );
  1135. sprintf( _tc_instdir[(3) ], "%s%s", tmp, "HE386" );
  1136. sprintf( _tc_instdir[(4) ], "%s%s", tmp, "CCI" );
  1137. sprintf( _tc_instdir[(5)], "%s%s", tmp, "WALLPOP");
  1138. sprintf( _tc_instdir[(6)], "%s%s", tmp, "DOS" );
  1139. sprintf( _tc_instdir[(7)], "%s%s", tmp, "TOOL" );
  1140. sprintf( _tc_instdir[(8)], "%s%s", tmp, "SDK" );
  1141.  
  1142. sprintf( _gsplay_datapath , "%s%s", tmp, "DATA" );
  1143.  
  1144. return ((0));
  1145. }
  1146.  
  1147. int _tc_setapldir()
  1148. {
  1149. char *mnu, *mnuapl[(9)];
  1150. char *dir;
  1151. int i, flag, ret;
  1152.  
  1153.  
  1154. for ( i = 0; i < (9); ++i )
  1155. {
  1156. if ( (mnuapl[i] = MNU_open()) != (0) )
  1157. {
  1158. MNU_datAdd( mnuapl[i], 0, '1', Rom16x16, i, "_setdir_tarosc" , (0), "ディレクトリ指定" );
  1159. MNU_datAdd( mnuapl[i], 0, '0', Rom16x16, i, "_noinstall_tarosc", (0), "インストールしない");
  1160. MNU_setPosition(mnuapl[i],-1);
  1161. }
  1162. }
  1163.  
  1164. do
  1165. {
  1166. if ( (mnu = MNU_open()) == (0) )
  1167. return ((-1));
  1168.  
  1169. for ( i = 0; i < (9); ++i )
  1170. {
  1171. dir = _tc_instdir[i];
  1172. if ( *dir == '\0' )
  1173. dir = "No install";
  1174. MNU_mnuAdd( mnu, 0, _tc_skey[i], Fnt16x16, mnuapl[i],
  1175. "%-14s [%s]", _tc_aplname[i], dir);
  1176. }
  1177. MNU_datAdd( mnu, 0, 0 , (0) , 0, "", 0, (0) );
  1178. MNU_datAdd( mnu, 0, 'N', Rom16x16, 1, "", 0, " >>> 次へ進む >>>");
  1179. MNU_setPosition(mnu,(0),8,32);
  1180. ret = MNU_start(mnu);
  1181. MNU_close(mnu);
  1182. MNU_datClear(mnu);
  1183. } while ( ret == 0 );
  1184.  
  1185. flag = 0;
  1186. for ( i = 0; i < (9); ++i )
  1187. {
  1188. if ( _tc_instdir[i][0] )
  1189. flag = 1;
  1190. MNU_datClear( mnuapl[i] );
  1191. }
  1192. if ( flag == 0 )
  1193. ret = -1;
  1194.  
  1195. return (ret);
  1196. }
  1197.  
  1198. int _setdir_tarosc(int evNo, char *evdat)
  1199. {
  1200. char *aplname;
  1201. char *instdir;
  1202.  
  1203. instdir = _tc_instdir[evNo];
  1204. if ( *instdir == '\0' )
  1205. strcpy(instdir,_tc_defdir);
  1206. APL_setInstallDir(instdir,"%s インストール先指定", _tc_aplname[evNo]);
  1207. return (0);
  1208. }
  1209.  
  1210. int _noinstall_tarosc(int evNo, char *evdat)
  1211. {
  1212. _tc_instdir[evNo][0] = '\0';
  1213. return (0);
  1214. }
  1215. # 289 "..\TAROPYON\INSTALL\_tarocol.c"
  1216. int _tc_check_config(int item_setup)
  1217. {
  1218. int ret, i;
  1219. char *dlgTxm;
  1220. char tmp[256], *msg;
  1221.  
  1222. dlgTxm = DlgTxm_open(ColBoxNormal);
  1223. DlgTxm_setTitle(dlgTxm,Fnt16x16,"設定の確認");
  1224.  
  1225. for ( i = 0; i < (9); ++i )
  1226. {
  1227. if ( _tc_instdir[i][0] )
  1228. sprintf( tmp, "%-14s インストール先 … %s",
  1229. _tc_aplname[i], _tc_instdir[i] );
  1230. else
  1231. sprintf( tmp, "%-16s インストールしない",
  1232. _tc_aplname[i], _tc_instdir[i] );
  1233. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "%s", tmp );
  1234.  
  1235. if ( _tc_instdir[i][0] )
  1236. {
  1237. switch ( i )
  1238. {
  1239. case (0):
  1240. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1241. "  初期設定              … [%s]",
  1242. _hewin_instmode == (1) ? "する" : "しない");
  1243. if ( item_setup )
  1244. {
  1245. if ( _hewin_swapDrv < 0 )
  1246. msg = "指定なし";
  1247. else
  1248. {
  1249. msg = tmp;
  1250. sprintf(msg,"%c:", _hewin_swapDrv);
  1251. }
  1252. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1253. "  作業ドライブ          … [%s]", msg);
  1254.  
  1255. switch ( _hewin_scnmode )
  1256. {
  1257. case 2 : msg = "中解像度 736×496" ; break;
  1258. case 5 : msg = "高解像度 1024×768"; break;
  1259. default: msg = "中解像度 640×480" ; break;
  1260. }
  1261. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1262. "  画面モード            … [%s]", msg);
  1263. }
  1264. break;
  1265. case (1):
  1266. if ( item_setup )
  1267. {
  1268. if ( _edia_swapDrv < 0 )
  1269. msg = "指定なし";
  1270. else
  1271. {
  1272. msg = tmp;
  1273. sprintf(msg,"%c:", _hewin_swapDrv);
  1274. }
  1275. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1276. "  作業ドライブ          … [%s]", msg);
  1277.  
  1278. switch ( _edia_scnmode )
  1279. {
  1280. case 5 : msg = "高解像度 1024×768"; break;
  1281. default: msg = "中解像度 640×480" ; break;
  1282. }
  1283. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1284. "  画面モード            … [%s]", msg);
  1285. }
  1286. break;
  1287. case (2):
  1288. if ( item_setup && (_gsplay_midi >= 0 || _gsplay_rsmidi || _gsplay_internal >=0) )
  1289. {
  1290. if ( _gsplay_midi < 0 )
  1291. {
  1292. msg = "未使用";
  1293. } else
  1294. {
  1295. msg = tmp;
  1296. sprintf(msg,"port %c", _gsplay_midi + 'A' );
  1297. }
  1298. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1299. "  演奏データ出力先      … [MIDI card (%s)]", msg);
  1300.  
  1301. if ( _gsplay_rsmidi >= 0 )
  1302. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1303. "                        … [RS-232C MIDI]");
  1304. if ( _gsplay_internal >= 0 )
  1305. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1306. "                        … [内蔵音源]");
  1307. }
  1308. if ( _gsplay_datapath_fmb[0] )
  1309. {
  1310. DlgTxm_putf( dlgTxm, Fnt16x12, (0),
  1311. "  FMB data file         … [%s]",
  1312. isalpha(_gsplay_datapath_fmb[0]) ? "install" : "read from CD-ROM" );
  1313. }
  1314. if ( _gsplay_datapath_pmb[0] )
  1315. {
  1316. DlgTxm_putf( dlgTxm, Fnt16x12, (0),
  1317. "  PMB data file         … [%s]",
  1318. isalpha(_gsplay_datapath_pmb[0]) ? "install" : "read from CD-ROM" );
  1319. }
  1320. if ( _gsplay_datapath_snd[0] )
  1321. {
  1322. DlgTxm_putf( dlgTxm, Fnt16x12, (0),
  1323. "  SND data file         … [%s]",
  1324. isalpha(_gsplay_datapath_snd[0]) ? "install" : "read from CD-ROM" );
  1325. }
  1326. break;
  1327. # 407 "..\TAROPYON\INSTALL\_tarocol.c"
  1328. }
  1329. }
  1330. }
  1331.  
  1332. DlgTxm_putf( dlgTxm, Fnt16x16, (0), "");
  1333. DlgTxm_putf( dlgTxm, Fnt16x16, (0),
  1334. "実行ファイルのアイテム登録      … [%s]",
  1335. item_setup ? "行う" : "行わない" );
  1336.  
  1337. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  1338. 1, "", 0, "インストール開始 : [実行]");
  1339. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'R' , 0x1400 ,
  1340. 2, "", 0, " 再設定 : [R] ");
  1341. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  1342. 3, "", 0, " 取消 : [取消] ");
  1343. DlgTxm_setSize(dlgTxm,480,40);
  1344. DlgTxm_setPosition(dlgTxm,(1));
  1345. ret = DlgTxm_start(dlgTxm);
  1346. DlgTxm_close(dlgTxm);
  1347.  
  1348. switch ( ret )
  1349. {
  1350. case 1:
  1351. return (1);
  1352. case 2:
  1353. return (0);
  1354. default:
  1355. return (-1);
  1356. }
  1357. }
  1358.  
  1359. int _tc_pre_config( char *instdir, char *exefn, char *aplname )
  1360. {
  1361. int ret, instflag;
  1362. char *dlgTxm;
  1363. char fn[256];
  1364.  
  1365. strcpy(fn, instdir); add_path_fn(fn, exefn);
  1366. instflag = ( FS_isFile(fn) == (1) ) ? 1 : 0;
  1367.  
  1368. dlgTxm = DlgTxm_open(ColBoxNormal);
  1369. DlgTxm_setTitle(dlgTxm,Fnt16x16,"%s環境設定", aplname);
  1370. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "インストール先 : %s", instdir );
  1371. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1372. if ( instflag )
  1373. {
  1374. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1375. "指定のディレクトリには既に%sがインストールされています。", aplname);
  1376. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1377. }
  1378. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
  1379. 1, "", 0, "OK : [実行]");
  1380. DlgTxm_setSize(dlgTxm,480,40);
  1381. DlgTxm_setPosition(dlgTxm,(1));
  1382. do
  1383. {
  1384. ret = DlgTxm_start(dlgTxm);
  1385. } while ( ret < 0 );
  1386. DlgTxm_close(dlgTxm);
  1387.  
  1388. return (instflag);
  1389. }
  1390.  
  1391. char *_tc_getFcopySrcDir( char *srcdir, char *buf )
  1392. {
  1393. int len;
  1394. char tmp[256];
  1395.  
  1396. FS_chdrv( toupper(DirStart[0]) - 'A' );
  1397. if ( *srcdir == '\0' || *srcdir == '.' )
  1398. {
  1399. strcpy(tmp,DirStart);
  1400. len = strlen(tmp);
  1401. if ( len > 3 && FS_isDelim(tmp[len-1]) )
  1402. tmp[len-1] = '\0';
  1403. } else
  1404. {
  1405. if ( FS_isDelim(*srcdir) )
  1406. strcpy(tmp,srcdir);
  1407. else
  1408. sprintf(tmp,"%s%s",DirStart, srcdir);
  1409. }
  1410. FS_getFullPn(buf,tmp);
  1411.  
  1412. return (buf);
  1413. }
  1414.  
  1415. int _hewin_edia_setup(char *fn_mac, char *instdir,int item_setup)
  1416. {
  1417. char *p, *s, *dir, *pathInst, fnMac[256], path[1024];
  1418. char *MACROKEY_EXPSEARCH_PATH;
  1419. char *amac;
  1420.  
  1421. pathInst = instdir;
  1422. MACROKEY_EXPSEARCH_PATH = "Exp_search_path";
  1423.  
  1424. strcpy(fnMac,pathInst);
  1425. add_path_fn(fnMac,fn_mac);
  1426.  
  1427. if ( (amac = AMAC_allocWork(0)) == (0) )
  1428. return ((-1));
  1429. AMAC_load( amac, fnMac );
  1430.  
  1431. if ( (p = AMAC_getName( amac, MACROKEY_EXPSEARCH_PATH)) == (0) || *p == '\0' )
  1432. {
  1433. path[0] = '\0';
  1434. p = path;
  1435.  
  1436. dir = _tc_instdir[(2)];
  1437. if ( *dir )
  1438. {
  1439. if ( p != path ) { *p = ';'; ++p; }
  1440. strcpy(p, dir);
  1441. p += strlen(dir);
  1442. }
  1443. dir = _tc_instdir[(3)];
  1444. if ( *dir )
  1445. {
  1446. if ( p != path ) { *p = ';'; ++p; }
  1447. strcpy(p, dir);
  1448. p += strlen(dir);
  1449. }
  1450. dir = _tc_instdir[(4)];
  1451. if ( *dir )
  1452. {
  1453. if ( p != path ) { *p = ';'; ++p; }
  1454. strcpy(p, dir);
  1455. p += strlen(dir);
  1456. }
  1457. dir = _tc_instdir[(5)];
  1458. if ( *dir )
  1459. {
  1460. if ( p != path ) { *p = ';'; ++p; }
  1461. strcpy(p, dir);
  1462. p += strlen(dir);
  1463. }
  1464. dir = _tc_instdir[(7)];
  1465. if ( *dir )
  1466. {
  1467. if ( p != path ) { *p = ';'; ++p; }
  1468. strcpy(p, dir);
  1469. p += strlen(dir);
  1470. }
  1471. if ( p != path )
  1472. AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
  1473. } else
  1474. {
  1475. strcpy(path,p);
  1476.  
  1477. dir = _tc_instdir[(2)];
  1478. if ( _chk_pathlist(path,dir) == 0 )
  1479. {
  1480. strcat(path,";");
  1481. strcat(path,dir);
  1482. }
  1483. dir = _tc_instdir[(3)];
  1484. if ( _chk_pathlist(path,dir) == 0 )
  1485. {
  1486. strcat(path,";");
  1487. strcat(path,dir);
  1488. }
  1489. dir = _tc_instdir[(4)];
  1490. if ( _chk_pathlist(path,dir) == 0 )
  1491. {
  1492. strcat(path,";");
  1493. strcat(path,dir);
  1494. }
  1495. dir = _tc_instdir[(5)];
  1496. if ( _chk_pathlist(path,dir) == 0 )
  1497. {
  1498. strcat(path,";");
  1499. strcat(path,dir);
  1500. }
  1501. dir = _tc_instdir[(7)];
  1502. if ( _chk_pathlist(path,dir) == 0 )
  1503. {
  1504. strcat(path,";");
  1505. strcat(path,dir);
  1506. }
  1507. AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
  1508. }
  1509. AMAC_save( amac, fnMac, fn_mac);
  1510. AMAC_freeWork(amac);
  1511.  
  1512. return ((0));
  1513. }
  1514.  
  1515. int _chk_pathlist( char *pathlist, char *path )
  1516. {
  1517. char s1[1024], s2[256];
  1518.  
  1519. strcpy(s1,pathlist); FS_strupr(s1);
  1520. strcpy(s2,path); FS_strupr(s2);
  1521. if ( strstr(s1,s2) == (0) )
  1522. return (0);
  1523. else
  1524. return (1);
  1525. }
  1526. # 5 "..\TAROPYON\INSTALL\_hewin.c"
  1527. char *_hewin_usrfile[8] =
  1528. {
  1529. "hewin.ini" ,
  1530. "hewin.itm" ,
  1531. "hewin.icn" ,
  1532. "hewin.apl" ,
  1533. "hewin.env" ,
  1534. (0)
  1535. };
  1536.  
  1537. int _hewin_config(char *instdir, int item_setup)
  1538. {
  1539. int ret, i, instflag, updateflag;
  1540. char *dlgTxm;
  1541. char *dlgGets;
  1542. char tmp[256], buf[8];
  1543.  
  1544. _hewin_instmode = (0);
  1545. strcpy(tmp,instdir); add_path_fn(tmp,"hewin.exp");
  1546. instflag = ( FS_isFile(tmp) == (1) ) ? 1 : 0;
  1547. if ( instflag )
  1548. {
  1549. updateflag = 1;
  1550. i = 0;
  1551. while ( _hewin_usrfile[i] != (0) )
  1552. {
  1553. strcpy(tmp,instdir); add_path_fn(tmp,_hewin_usrfile[i]);
  1554. if ( FS_isFile(tmp) != (1) )
  1555. {
  1556. updateflag = 0;
  1557. break;
  1558. }
  1559. ++i;
  1560. }
  1561. } else
  1562. updateflag = 0;
  1563.  
  1564. dlgTxm = DlgTxm_open(ColBoxNormal);
  1565. DlgTxm_setTitle(dlgTxm,Fnt16x16,"HEwin 環境設定");
  1566.  
  1567. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "インストール先 : %s", instdir );
  1568. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1569. if ( instflag )
  1570. {
  1571. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1572. "指定のディレクトリには既にHEwin がインストールされています。");
  1573. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1574. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1575. "インストール時に設定情報を初期化しますか?");
  1576. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1577.  
  1578. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1579. "初期設定 … インストール時にHEwin の設定情報をすべて初期化します。  ");
  1580. if ( updateflag )
  1581. {
  1582. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1583. "            既にインストールされているHEwin の設定情報は失われます。");
  1584.  
  1585. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1586. "更新     … 既にインストールされているHEwin の設定情報は残したまま  ");
  1587. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1588. "            実行ファイルだけ新しくインストールします。              ");
  1589. } else
  1590. {
  1591. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1592. "なし     … 実行ファイルだけ新しくインストールします。              ");
  1593. }
  1594.  
  1595. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'I' , 0x1800 ,
  1596. 1, "", 0, "初期設定 : [I]");
  1597. if ( updateflag )
  1598. {
  1599. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'U' , 0x1700 ,
  1600. 2, "", 0, "更新 : [U]");
  1601. } else
  1602. {
  1603. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
  1604. 0, "", 0, "なし : [N]");
  1605. }
  1606. } else
  1607. {
  1608.  
  1609. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
  1610. 1, "", 0, "OK : [実行]");
  1611. }
  1612.  
  1613. DlgTxm_setSize(dlgTxm,320,40);
  1614. DlgTxm_setPosition(dlgTxm,(1));
  1615. do
  1616. {
  1617. ret = DlgTxm_start(dlgTxm);
  1618. } while ( ret < 0 );
  1619. DlgTxm_close(dlgTxm);
  1620. switch ( ret )
  1621. {
  1622. case 1 : _hewin_instmode = (1) ; break;
  1623. case 2 : _hewin_instmode = (2) ; break;
  1624. default: _hewin_instmode = (0); break;
  1625. }
  1626.  
  1627.  
  1628. _hewin_swapDrv = -1;
  1629. if ( item_setup )
  1630. {
  1631. if ( (dlgGets = DlgGets_open()) == (0) )
  1632. return ((-1));
  1633.  
  1634. DlgGets_setTitle(dlgGets,Fnt16x16,"HEwin 環境設定");
  1635. buf[0] = _hewin_swapDrv < 0 ? toupper(instdir[0]) : _hewin_swapDrv + 'A';
  1636. buf[1] = '\0';
  1637. DlgGets_setSize(dlgGets,320,64);
  1638. DlgGets_putf( dlgGets, Fnt16x16, 1, "作業ドライブを指定してください(例:「D」)。" );
  1639. DlgGets_setPosition(dlgGets,(1));
  1640. if ( DlgGets_start(dlgGets,3,buf) == (0) )
  1641. {
  1642. if ( isalpha(buf[0]) )
  1643. _hewin_swapDrv = toupper(buf[0]);
  1644. else
  1645. _hewin_swapDrv = -1;
  1646. }
  1647. DlgGets_close(dlgGets);
  1648. }
  1649.  
  1650.  
  1651. _hewin_scnmode = -1;
  1652. if ( item_setup )
  1653. {
  1654. dlgTxm = DlgTxm_open(ColBoxNormal);
  1655. DlgTxm_setTitle(dlgTxm,Fnt16x16,"HEwin 画面モード");
  1656.  
  1657. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1658. "動作画面モードを指定してください。");
  1659. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1660.  
  1661. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度    … 640×480ドット                            " );
  1662. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度 #2 … 736×496ドット ディスプレイによっては正常" );
  1663. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "               に表\示されないことがあります。            " );
  1664. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "高解像度    … 1024×768ドット 高解像度TBIOS を組み込んだ" );
  1665. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "               場合に使用できます。高解像度に対応した機種" );
  1666. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "               (MX/MA/HC/HB/HA等)で使用できます。  " );
  1667.  
  1668.  
  1669. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
  1670. 1, "", 0, "中解像度  : [N]");
  1671. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'S' , 0x1F00 ,
  1672. 2, "", 0, "中解像度 #2 : [S]");
  1673. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  1674. 3, "", 0, "高解像度 : [H]");
  1675.  
  1676. DlgTxm_setSize(dlgTxm,320,40);
  1677. DlgTxm_setPosition(dlgTxm,(1));
  1678. do
  1679. {
  1680. ret = DlgTxm_start(dlgTxm);
  1681. } while ( ret < 0 );
  1682. DlgTxm_close(dlgTxm);
  1683. switch ( ret )
  1684. {
  1685. case 1: _hewin_scnmode = 0; break;
  1686. case 2: _hewin_scnmode = 2; break;
  1687. case 3: _hewin_scnmode = 5; break;
  1688. }
  1689. }
  1690.  
  1691. return ((0));
  1692. }
  1693.  
  1694. char *_hewin_init_delfile[10] =
  1695. {
  1696. "center.dat" ,
  1697. "hewin.apl" ,
  1698. "hewin.env" ,
  1699. "hewin.icn" ,
  1700. "hewin.ini" ,
  1701. "hewin.itm" ,
  1702. "hewin.mac" ,
  1703. "tdpedit.his",
  1704. (0)
  1705. };
  1706.  
  1707. int _hewin_install(char *instdir,int item_setup)
  1708. {
  1709. int ret, i, att, drv;
  1710. char *srcdir, *instfile;
  1711. char *item_prog, *item_ttl, item_para[128];
  1712. int item_att;
  1713. char tmp[256], scnmode_para[32];
  1714.  
  1715. syl_putf("HEwin INSTALL");
  1716.  
  1717. if ( _hewin_instmode == (1) )
  1718. {
  1719. i = 0;
  1720. while ( _hewin_init_delfile[i] != (0) )
  1721. {
  1722. strcpy(tmp,instdir); add_path_fn(tmp,_hewin_init_delfile[i]);
  1723. if ( FS_isFile(tmp) == (1) )
  1724. FS_remove(tmp);
  1725. ++i;
  1726. }
  1727. }
  1728.  
  1729. srcdir = "/OH_TOWNS/TAROPYON/HEWIN";
  1730. instfile = "*.exp *.cci *.c *.h *.rex *.dll *.exe *.doc *.hlp *.lst *.tbl";
  1731. item_prog = "HEWIN.EXP";
  1732. item_ttl = "HEwin";
  1733. item_para[0] = '\0';
  1734. item_att = 2;
  1735.  
  1736. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  1737. switch ( _hewin_instmode )
  1738. {
  1739. case (1) : att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) ; break;
  1740. case (2): att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) ; break;
  1741. default: att = ((0x00000200) | (0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)); break;
  1742. }
  1743. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  1744.  
  1745. if ( _hewin_instmode == (1) )
  1746. {
  1747. instfile = "*.apl *.env *.icn *.ini *.itm *.tif";
  1748. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) & (~(0x00000001));
  1749. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  1750. }
  1751.  
  1752.  
  1753. syl_putf("HEwin CUSTOMIZE");
  1754. _hewin_setup(instdir,item_setup);
  1755.  
  1756. if ( ret == (0) && item_setup != 0 )
  1757. {
  1758. syl_putf("HEwin ITEM SETUP");
  1759. if ( _hewin_scnmode >= 0 )
  1760. {
  1761. switch ( _hewin_scnmode )
  1762. {
  1763. case 0: i = '0'; break;
  1764. case 2: i = '2'; break;
  1765. case 5: i = 'H'; break;
  1766. }
  1767. sprintf(scnmode_para, "-scnMode %c ", i);
  1768. } else
  1769. scnmode_para[0] = '\0';
  1770. if ( isalpha(_hewin_swapDrv) )
  1771. sprintf(item_para,"%s-swapDrv %c", scnmode_para, _hewin_swapDrv);
  1772. else
  1773. strcpy( item_para, scnmode_para);
  1774. drv = toupper(instdir[0]) - 'A';
  1775. strcpy(tmp,instdir);
  1776. add_path_fn(tmp,item_prog);
  1777. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  1778. }
  1779.  
  1780. return (ret);
  1781. }
  1782.  
  1783. int _hewin_setup(char *instdir,int item_setup)
  1784. {
  1785. return _hewin_edia_setup("hewin.mac", instdir, item_setup);
  1786. }
  1787. # 5 "..\TAROPYON\INSTALL\_edia.c"
  1788. int _edia_config(char *instdir, int item_setup)
  1789. {
  1790. int ret;
  1791. char *dlgTxm;
  1792. char *dlgGets;
  1793. char tmp[256], buf[8];
  1794.  
  1795. _edia_swapDrv = -1;
  1796.  
  1797. _tc_pre_config( instdir, "edia.exp", "EDIA" );
  1798.  
  1799. if ( item_setup )
  1800. {
  1801. if ( (dlgGets = DlgGets_open()) == (0) )
  1802. return ((-1));
  1803.  
  1804. DlgGets_setTitle(dlgGets,Fnt16x16,"EDIA 環境設定");
  1805. buf[0] = _edia_swapDrv < 0 ? toupper(instdir[0]) : _edia_swapDrv + 'A';
  1806. buf[1] = '\0';
  1807. DlgGets_setSize(dlgGets,320,64);
  1808. DlgGets_putf( dlgGets, Fnt16x16, 1, "作業ドライブを指定してください(例:「D」)。" );
  1809. DlgGets_setPosition(dlgGets,(1));
  1810. if ( DlgGets_start(dlgGets,3,buf) == (0) )
  1811. {
  1812. if ( isalpha(buf[0]) )
  1813. _edia_swapDrv = toupper(buf[0]);
  1814. else
  1815. _edia_swapDrv = -1;
  1816. }
  1817. DlgGets_close(dlgGets);
  1818. }
  1819.  
  1820.  
  1821. _edia_scnmode = -1;
  1822. if ( item_setup )
  1823. {
  1824. dlgTxm = DlgTxm_open(ColBoxNormal);
  1825. DlgTxm_setTitle(dlgTxm,Fnt16x16,"EDIA 画面モード");
  1826.  
  1827. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  1828. "動作画面モードを指定してください。");
  1829. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  1830.  
  1831. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度    … 640×480ドット                            " );
  1832. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "高解像度    … 1024×768ドット 高解像度TBIOS を組み込んだ" );
  1833. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "               場合に使用できます。高解像度に対応した機種" );
  1834. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "               (MX/MA/HC/HB/HA等)で使用できます。  " );
  1835.  
  1836.  
  1837. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
  1838. 1, "", 0, "中解像度  : [N]");
  1839. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  1840. 2, "", 0, "高解像度 : [H]");
  1841.  
  1842. DlgTxm_setSize(dlgTxm,320,40);
  1843. DlgTxm_setPosition(dlgTxm,(1));
  1844. do
  1845. {
  1846. ret = DlgTxm_start(dlgTxm);
  1847. } while ( ret < 0 );
  1848. DlgTxm_close(dlgTxm);
  1849. switch ( ret )
  1850. {
  1851. case 1: _edia_scnmode = 0; break;
  1852. case 2: _edia_scnmode = 5; break;
  1853. }
  1854. }
  1855.  
  1856.  
  1857. return ((0));
  1858. }
  1859.  
  1860. int _edia_install(char *instdir,int item_setup)
  1861. {
  1862. int ret, att, drv;
  1863. char *srcdir, *instfile;
  1864. char *item_prog, *item_ttl, item_para[128];
  1865. int item_att;
  1866. char tmp[256], scnmode_para[32];
  1867.  
  1868. syl_putf("EDIA INSTALL");
  1869.  
  1870. srcdir = "/OH_TOWNS/TAROPYON/EDIA";
  1871. instfile = "*.exp *.cci *.c *.h *.rex *.dll *.doc";
  1872. item_prog = "EDIA.EXP";
  1873. item_ttl = "EDIA";
  1874. item_para[0] = '\0';
  1875. item_att = 2;
  1876.  
  1877. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  1878. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  1879. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  1880.  
  1881.  
  1882. syl_putf("EDIA CUSTOMIZE");
  1883. _edia_setup(instdir,item_setup);
  1884.  
  1885. if ( ret == (0) && item_setup != 0 )
  1886. {
  1887. syl_putf("EDIA ITEM SETUP");
  1888. if ( _edia_scnmode == 5 )
  1889. strcpy(scnmode_para, "-scnMode H ");
  1890. else
  1891. scnmode_para[0] = '\0';
  1892. if ( isalpha(_edia_swapDrv) )
  1893. sprintf(item_para,"%s-swapDrv %c", scnmode_para, _edia_swapDrv);
  1894. else
  1895. strcpy( item_para, scnmode_para);
  1896. drv = toupper(instdir[0]) - 'A';
  1897. strcpy(tmp,instdir);
  1898. add_path_fn(tmp,item_prog);
  1899. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  1900. }
  1901.  
  1902. return (ret);
  1903. }
  1904.  
  1905. int _edia_setup(char *instdir,int item_setup)
  1906. {
  1907. return _hewin_edia_setup("edia.mac", instdir, item_setup);
  1908. }
  1909. # 7 "..\TAROPYON\INSTALL\_gsplay.c"
  1910. int _gsplay_set_instdata(char *instdir);
  1911.  
  1912. int _gsplay_config(char *instdir, int item_setup)
  1913. {
  1914. int ret;
  1915. char *mnu_midi, *mnu_internal, *mnu_rsmidi, *mnu;
  1916. char tmp[128], *msg;
  1917.  
  1918. _gsplay_midi = 0;
  1919. _gsplay_rsmidi = -1;
  1920. _gsplay_internal = -1;
  1921. _gsplay_datapath_fmb[0] = '\0';
  1922. _gsplay_datapath_pmb[0] = '\0';
  1923. _gsplay_datapath_snd[0] = '\0';
  1924.  
  1925. _tc_pre_config( instdir, "gsplay.exp", "GSPLAY" );
  1926.  
  1927. if ( item_setup )
  1928. {
  1929. mnu_midi = MNU_open();
  1930. mnu_rsmidi = MNU_open();
  1931. mnu_internal = MNU_open();
  1932.  
  1933. MNU_datAdd( mnu_midi , 0, 'A', Rom16x16, 0x01, "", (0), "port A (card-1)");
  1934. MNU_datAdd( mnu_midi , 0, 'B', Rom16x16, 0x02, "", (0), "port B (card-1)");
  1935. MNU_datAdd( mnu_midi , 0, 'C', Rom16x16, 0x03, "", (0), "port C (card-2)");
  1936. MNU_datAdd( mnu_midi , 0, 'D', Rom16x16, 0x04, "", (0), "port D (card-2)");
  1937. MNU_datAdd( mnu_midi , 0, 'E', Rom16x16, 0x05, "", (0), "port E (card-3)");
  1938. MNU_datAdd( mnu_midi , 0, 'F', Rom16x16, 0x06, "", (0), "port F (card-3)");
  1939. MNU_datAdd( mnu_midi , 0, 'G', Rom16x16, 0x07, "", (0), "port G (card-4)");
  1940. MNU_datAdd( mnu_midi , 0, 'H', Rom16x16, 0x08, "", (0), "port H (card-4)");
  1941. MNU_datAdd( mnu_midi , 0, 0 , (0) , 0, "", 0, (0) );
  1942. MNU_datAdd( mnu_midi , 0, 'O', Rom16x16, 0x00, "", (0), "MIDI device not use");
  1943. MNU_setPosition(mnu_midi,-1);
  1944.  
  1945. MNU_datAdd( mnu_rsmidi , 0, '1', Rom16x16, 0x21, "", (0), "ON  使う");
  1946. MNU_datAdd( mnu_rsmidi , 0, '0', Rom16x16, 0x20, "", (0), "OFF 使わない");
  1947. MNU_setPosition(mnu_rsmidi,-1);
  1948.  
  1949. MNU_datAdd( mnu_internal, 0, '1', Rom16x16, 0x31, "", (0), "ON  使う");
  1950. MNU_datAdd( mnu_internal, 0, '0', Rom16x16, 0x30, "", (0), "OFF 使わない");
  1951. MNU_setPosition(mnu_internal,-1);
  1952.  
  1953. do
  1954. {
  1955. if ( (mnu = MNU_open()) == (0) )
  1956. break;
  1957. MNU_setTitle( mnu, Fnt16x16, "GSPLAY 演奏データ出力デバイス" );
  1958. if ( _gsplay_midi < 0 )
  1959. {
  1960. msg = "not use";
  1961. } else
  1962. {
  1963. msg = tmp;
  1964. sprintf(msg,"port %c",_gsplay_midi + 'A' );
  1965. }
  1966. MNU_mnuAdd( mnu, 0, 'M', Fnt16x16, mnu_midi , "MIDI         [%s]", msg);
  1967.  
  1968. msg = (_gsplay_rsmidi < 0) ? "not use" : "ON";
  1969. MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, mnu_rsmidi , "RS-232C MIDI [%s]", msg);
  1970.  
  1971. msg = (_gsplay_internal < 0) ? "not use" : "ON";
  1972. MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, mnu_internal, "内蔵音源     [%s]", msg);
  1973.  
  1974. MNU_datAdd( mnu, 0, 0 , (0) , 0, "", 0, (0) );
  1975. MNU_datAdd( mnu, 0, 'N', Rom16x16, 0xFF, "", 0, " >>> 次へ進む >>>");
  1976.  
  1977. MNU_setPosition(mnu,(0),8,32);
  1978. ret = MNU_start(mnu);
  1979. if ( ret >= 0x01 && ret <= 0x08 )
  1980. {
  1981. _gsplay_midi = ret - 0x01;
  1982. } else
  1983. {
  1984. switch ( ret )
  1985. {
  1986. case 0x00: _gsplay_midi = -1; break;
  1987. case 0x20: _gsplay_rsmidi = -1; break;
  1988. case 0x21: _gsplay_rsmidi = 0; break;
  1989. case 0x30: _gsplay_internal = -1; break;
  1990. case 0x31: _gsplay_internal = 0; break;
  1991. }
  1992. }
  1993. MNU_close(mnu);
  1994. MNU_datClear(mnu);
  1995. } while ( ret != 0xFF );
  1996. MNU_datClear(mnu_midi );
  1997. MNU_datClear(mnu_rsmidi );
  1998. MNU_datClear(mnu_internal);
  1999. }
  2000. _gsplay_set_instdata(instdir);
  2001.  
  2002. return ((0));
  2003. }
  2004.  
  2005.  
  2006. int _gsplay_set_instdata(char *instdir)
  2007. {
  2008. # 202 "..\TAROPYON\INSTALL\_gsplay.c"
  2009. int ret;
  2010. char *dlgTxm;
  2011. char *mnu, *mnu_fmb, *mnu_pmb, *mnu_snd;
  2012.  
  2013. if ( _gsplay_internal < 0 )
  2014. return ((0));
  2015.  
  2016. dlgTxm = DlgTxm_open(ColBoxNormal);
  2017. DlgTxm_setTitle(dlgTxm,Fnt16x16,"GSPLAY");
  2018.  
  2019. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "内蔵音源で演奏するには音色データファイルが必要です。");
  2020. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  2021. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "ただし,著作権の関係で音色データファイルは");
  2022. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "CD-ROMには収録されていません。            ");
  2023.  
  2024. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
  2025. 1, "", 0, "OK : [実行]");
  2026.  
  2027. DlgTxm_setSize(dlgTxm,320,40);
  2028. DlgTxm_setPosition(dlgTxm,(1));
  2029. do
  2030. {
  2031. ret = DlgTxm_start(dlgTxm);
  2032. } while ( ret < 0 );
  2033. DlgTxm_close(dlgTxm);
  2034.  
  2035. return ((0));
  2036. }
  2037.  
  2038. int _gsplay_install(char *instdir,int item_setup)
  2039. {
  2040. int ret, att, drv;
  2041. char *srcdir, *instfile;
  2042. char *item_prog, *item_ttl, item_para[128];
  2043. int item_att;
  2044. char tmp[256], ttl[80];
  2045.  
  2046. syl_putf("GSPLAY INSTALL");
  2047.  
  2048. srcdir = "/OH_TOWNS/TAROPYON/GSPLAY";
  2049. instfile = "*.exp *.dat *.gsd *.doc *.mex *.mid *.mtk *.kok *.tif";
  2050. item_prog = "GSPLAY.EXP";
  2051. item_ttl = "GSPLAY/pure";
  2052. item_para[0] = '\0';
  2053. item_att = 2;
  2054.  
  2055. srcdir = _tc_getFcopySrcDir(srcdir,tmp);
  2056. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2057. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2058.  
  2059.  
  2060. if ( ret == (0) && isalpha(_gsplay_datapath_fmb[0]) )
  2061. {
  2062. srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/FMB", tmp);
  2063. ret = FCOPY_exec(att, srcdir, "*.fmb", _gsplay_datapath_fmb);
  2064. }
  2065. if ( ret == (0) && isalpha(_gsplay_datapath_pmb[0]) )
  2066. {
  2067. srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/PMB", tmp);
  2068. ret = FCOPY_exec(att, srcdir, "*.pmb", _gsplay_datapath_pmb);
  2069. }
  2070. if ( ret == (0) && isalpha(_gsplay_datapath_snd[0]) )
  2071. {
  2072. srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/SND", tmp);
  2073. ret = FCOPY_exec(att, srcdir, "*.snd", _gsplay_datapath_snd);
  2074. }
  2075.  
  2076.  
  2077. if ( ret == (0) )
  2078. {
  2079. syl_putf("GSPLAY CUSTOMIZE");
  2080. _gsplay_setup(instdir,item_setup);
  2081. }
  2082.  
  2083. if ( ret == (0) && item_setup != 0 )
  2084. {
  2085. syl_putf("GSPLAY ITEM SETUP");
  2086.  
  2087. strcpy(tmp,instdir);
  2088. add_path_fn(tmp,item_prog);
  2089.  
  2090. drv = toupper(instdir[0]) - 'A';
  2091. if ( _gsplay_midi >= 0 )
  2092. {
  2093. item_ttl = "GSPLAY/pure (MIDI)";
  2094. sprintf(item_para,"-gsPort %c", _gsplay_midi + 'A');
  2095. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  2096. }
  2097. if ( _gsplay_internal >= 0 )
  2098. {
  2099. item_ttl = "GSPLAY/pure (内蔵)";
  2100. strcpy(item_para,"-gsPort A -intPort A");
  2101. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  2102. }
  2103. if ( _gsplay_rsmidi >= 0 )
  2104. {
  2105. item_ttl = "GSPLAY/pure (RS)";
  2106. strcpy(item_para,"-rsmidi -gsPort R");
  2107. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  2108. }
  2109. }
  2110.  
  2111. return (ret);
  2112. }
  2113.  
  2114. char *_gsplay_snd_dir[12] =
  2115. {
  2116. "808" ,
  2117. "BRUSH",
  2118. "ELEC" ,
  2119. "INST" ,
  2120. "ORCHE",
  2121. "PERC" ,
  2122. "POWER",
  2123. "ROOM" ,
  2124. "SFX" ,
  2125. "STD" ,
  2126. (0)
  2127. };
  2128.  
  2129. int _gsplay_setup(char *instdir,int item_setup)
  2130. {
  2131. int i;
  2132. char fn[256], tmp[256], *dir;
  2133. char *fp;
  2134.  
  2135.  
  2136. if ( _gsplay_datapath_fmb[0] != '\0' )
  2137. {
  2138. strcpy( fn, instdir); add_path_fn( fn, "fminst.dat");
  2139. if ( (fp = FS_fopen(fn,"wb")) != (0) )
  2140. {
  2141. if ( _gsplay_datapath_fmb[0] == '@' )
  2142. {
  2143. fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/FMB\r\n");
  2144. } else
  2145. {
  2146. fprintf(fp,"%s\r\n", _gsplay_datapath_fmb );
  2147. }
  2148. FS_fclose(fp);
  2149. }
  2150. }
  2151.  
  2152.  
  2153. if ( _gsplay_datapath_pmb[0] != '\0' )
  2154. {
  2155. strcpy( fn, instdir); add_path_fn( fn, "pcminst.dat");
  2156. if ( (fp = FS_fopen(fn,"wb")) != (0) )
  2157. {
  2158. if ( _gsplay_datapath_pmb[0] == '@' )
  2159. {
  2160. fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/PMB\r\n");
  2161. } else
  2162. {
  2163. fprintf(fp,"%s\r\n", _gsplay_datapath_pmb );
  2164. }
  2165. FS_fclose(fp);
  2166. }
  2167. }
  2168.  
  2169.  
  2170. if ( _gsplay_datapath_snd[0] != '\0' )
  2171. {
  2172. strcpy( fn, instdir); add_path_fn( fn, "sndinst.dat");
  2173. if ( (fp = FS_fopen(fn,"wb")) != (0) )
  2174. {
  2175. for ( i = 0; _gsplay_snd_dir[i] != (0); ++i )
  2176. {
  2177. dir = _gsplay_snd_dir[i];
  2178. if ( _gsplay_datapath_snd[0] == '@' )
  2179. {
  2180. fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/SND/%s\r\n", dir );
  2181. } else
  2182. {
  2183. strcpy( tmp, instdir);
  2184. add_path_fn(tmp,dir);
  2185. fprintf(fp,"%s\r\n", tmp );
  2186. }
  2187. }
  2188. FS_fclose(fp);
  2189. }
  2190. }
  2191.  
  2192. return ((0));
  2193. }
  2194. # 5 "..\TAROPYON\INSTALL\_he386.c"
  2195. int _he386_install(char *instdir,int item_setup)
  2196. {
  2197. int ret, att;
  2198. char *srcdir, *instfile;
  2199. char tmp[256];
  2200.  
  2201. syl_putf("HE386 INSTALL");
  2202.  
  2203. srcdir = "/OH_TOWNS/TAROPYON/HE386";
  2204. instfile = "*.exp *.dll *.cci *.c *.h *.doc *.mml *.def";
  2205.  
  2206. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2207. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2208. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2209.  
  2210. return (ret);
  2211. }
  2212. # 5 "..\TAROPYON\INSTALL\_cci.c"
  2213. int _cci_install(char *instdir,int item_setup)
  2214. {
  2215. int ret, att;
  2216. char *srcdir, *instfile;
  2217. char tmp[256];
  2218.  
  2219. syl_putf("CCI INSTALL");
  2220.  
  2221. srcdir = "/OH_TOWNS/TAROPYON/CCI";
  2222. instfile = "*.exp *.dll *.doc *.lst *.h *.c *.bat *.exe";
  2223.  
  2224. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2225. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2226. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2227.  
  2228. return (ret);
  2229. }
  2230. # 5 "..\TAROPYON\INSTALL\_wallpop.c"
  2231. int _wallpop_install(char *instdir,int item_setup)
  2232. {
  2233. int ret, att;
  2234. char *srcdir, *instfile;
  2235. char tmp[256];
  2236.  
  2237. syl_putf("WallPop INSTALL");
  2238.  
  2239. srcdir = "/OH_TOWNS/TAROPYON/WALLPOP";
  2240. instfile = "*.doc *.exp *.cfg *.rex *.dll";
  2241.  
  2242. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2243. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2244. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2245.  
  2246. return (ret);
  2247. }
  2248. # 5 "..\TAROPYON\INSTALL\_dostool.c"
  2249. int _dostool_install(char *instdir,int item_setup)
  2250. {
  2251. int ret, att;
  2252. char *srcdir, *instfile;
  2253. char tmp[256];
  2254.  
  2255. syl_putf("DOS TOOL INSTALL");
  2256.  
  2257. srcdir = "/OH_TOWNS/TAROPYON/DOS";
  2258. instfile = "*.exe *.doc";
  2259.  
  2260. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2261. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2262. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2263.  
  2264. return (ret);
  2265. }
  2266. # 5 "..\TAROPYON\INSTALL\_tostool.c"
  2267. int _tostool_if2tmp( char *instdir );
  2268.  
  2269. int _tostool_install(char *instdir,int item_setup)
  2270. {
  2271. int ret, att, drv;
  2272. char *srcdir, *instfile;
  2273. char *item_prog, *item_ttl, item_para[128];
  2274. int item_att;
  2275. char tmp[256];
  2276.  
  2277. syl_putf("TOS TOOL INSTALL");
  2278.  
  2279. srcdir = "/OH_TOWNS/TAROPYON/TOOL";
  2280. instfile = "*.exp *.dll *.doc";
  2281.  
  2282. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2283. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2284. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2285. # 57 "..\TAROPYON\INSTALL\_tostool.c"
  2286. if ( ret == (0) )
  2287. ret = _tostool_if2tmp( instdir );
  2288.  
  2289. return (ret);
  2290. }
  2291.  
  2292.  
  2293.  
  2294. char *_tostool_file[16] =
  2295. {
  2296. "CCI 00 20 cci.exp" ,
  2297. "LZH 00 20 lhx2.exp" ,
  2298. "MID 00 20 gsplay.exp" ,
  2299. "MOV 00 20 ugkplay.exp" ,
  2300. "MVE 00 20 mveplay.exp" ,
  2301. "WRD 00 20 jcomp.exp" ,
  2302. "V02 00 20 ugkplay.exp" ,
  2303. (0)
  2304. };
  2305.  
  2306. int _tostool_if2tmp( char *instdir )
  2307. {
  2308. int i, argc;
  2309. char fn[256], tmp[256], **argv;
  2310. char *fp;
  2311.  
  2312. strcpy( tmp, instdir); add_path_fn(tmp,"tmenuif2.tmp");
  2313. if ( (fp = FS_fopen(tmp,"wb")) == (0) )
  2314. return ((-1));
  2315.  
  2316. for ( i = 0; _tostool_file[i] != (0); ++i )
  2317. {
  2318. if ( (argc = DTA_makeArg(_tostool_file[i],&argv)) > 0 )
  2319. {
  2320. if ( argc > 3 )
  2321. {
  2322. strcpy( tmp, instdir); add_path_fn(tmp,argv[3]);
  2323. FS_dosFn(fn,tmp);
  2324. fprintf(fp,"%-3s,%s,%s,%s\r\n",
  2325. argv[0], argv[1], argv[2], fn );
  2326. }
  2327. DTA_clearArg(argc,argv);
  2328. }
  2329. }
  2330. FS_fclose(fp);
  2331. return ((0));
  2332. }
  2333. # 5 "..\TAROPYON\INSTALL\_sdktool.c"
  2334. int _sdktool_make_template( char *instdir );
  2335.  
  2336. char *_sdktool_file[10] =
  2337. {
  2338. "メニュー           sdkmenu.exp" ,
  2339. "数式計算           sdkcalc.exp" ,
  2340. "CD演奏開始         sdkcdt.exp    \"play -cdvol 127\"",
  2341. "CD演奏停止         sdkcdt.exp    \"stop\"" ,
  2342. "CD辞書検索         sdkdic.exp" ,
  2343. "ファイルセレクタ   sdkfs.exp" ,
  2344. "システムロック     sdklock.exp" ,
  2345. "SMFPLAY            smfplay.exp" ,
  2346. (0)
  2347. };
  2348. # 87 "..\TAROPYON\INSTALL\_sdktool.c"
  2349. int _sdktool_install(char *instdir,int item_setup)
  2350. {
  2351. int ret, att;
  2352. char *srcdir, *instfile;
  2353. char tmp[256];
  2354.  
  2355. syl_putf("SIDEWORK PROGRAM INSTALL");
  2356.  
  2357. srcdir = "/OH_TOWNS/TAROPYON/SDK";
  2358. instfile = "*.exp *.dll *.doc";
  2359.  
  2360. srcdir = _tc_getFcopySrcDir( srcdir, tmp);
  2361. att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
  2362. ret = FCOPY_exec(att, srcdir, instfile, instdir);
  2363.  
  2364. if ( ret == (0) )
  2365. {
  2366. ret = _sdktool_make_template( instdir );
  2367. }
  2368. return (ret);
  2369. }
  2370.  
  2371. int _sdktool_make_template( char *instdir )
  2372. {
  2373. int i, argc;
  2374. char *fp;
  2375. char **argv, tmp[256], fn[256], para[256];
  2376.  
  2377. strcpy( tmp, instdir); add_path_fn(tmp,"sidework.tmp");
  2378. if ( (fp = FS_fopen(tmp,"wb")) == (0) )
  2379. return (-1);
  2380. for ( i = 0; _sdktool_file[i] != (0); ++i )
  2381. {
  2382. if ( (argc = DTA_makeArg(_sdktool_file[i],&argv)) > 0 )
  2383. {
  2384. if ( argc > 1 )
  2385. {
  2386. strcpy( tmp, instdir); add_path_fn(tmp,argv[1]);
  2387. FS_dosFn(fn,tmp);
  2388. if ( argc > 2 )
  2389. sprintf(para," %s", argv[2]);
  2390. else
  2391. para[0] = '\0';
  2392. fprintf(fp,"%c \"%s\" %s%s\r\n",
  2393. i + 'A', argv[0], fn, para);
  2394. }
  2395. DTA_clearArg(argc,argv);
  2396. }
  2397. }
  2398. FS_fclose(fp);
  2399. return (0);
  2400. }
  2401. # 5 "instgame.c"
  2402. char *get_inst_game_mnu()
  2403. {
  2404. char *mnu;
  2405.  
  2406. if ( (mnu = MNU_open()) == (0) )
  2407. return ((0));
  2408. MNU_datAdd( mnu, 0, 'A', Rom16x16, 0, "install_airhockey" , 0, "AIR  HOCKEY" );
  2409. MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_drops" , 0, "Drops" );
  2410. MNU_datAdd( mnu, 0, 'L', Rom16x16, 0, "install_luckey" , 0, "LUCKY GAME" );
  2411. MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_mitamura" , 0, "MITAMURAショートプログラム集");
  2412. MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "install_mayor" , 0, "都市シミュレ-ションMayor" );
  2413. MNU_setPosition(mnu,-1);
  2414.  
  2415. return (mnu);
  2416. }
  2417.  
  2418. int install_airhockey()
  2419. {
  2420. static char *buf[5] =
  2421. {
  2422. "softname    \"AIR  HOCKEY\"",
  2423. "instfile    /OH_TOWNS/AHOCKEY    \"*.*\"",
  2424. "help        AHOCKEY.DOC",
  2425. "item        \"AIR HOCKEY\",AHOCKEY.EXP,,2",
  2426. (0)
  2427. };
  2428.  
  2429. return install_exec(buf);
  2430. }
  2431.  
  2432.  
  2433. int install_drops()
  2434. {
  2435. static char *buf[5] =
  2436. {
  2437. "softname    \"Drops\"",
  2438. "instfile    /OH_TOWNS/DROPS    \"*.*\"",
  2439. "help        DROPS.TXT",
  2440. "item        \"Drops\",BALL.EXP,,2",
  2441. (0)
  2442. };
  2443.  
  2444. return install_exec(buf);
  2445. }
  2446.  
  2447.  
  2448. int install_mayor()
  2449. {
  2450. static char *buf[5] =
  2451. {
  2452. "softname    \"「都市シミュレーション Mayor」\"",
  2453. "instfile    /OH_TOWNS/MAYOR    \"*.*\"",
  2454. "help        MAYOR.MAN",
  2455. "item        \"都市シミュレーション Mayor\",MAYOR.EXP,,2",
  2456. (0)
  2457. };
  2458.  
  2459. return install_exec(buf);
  2460. }
  2461.  
  2462.  
  2463. int install_luckey()
  2464. {
  2465. static char *buf[6] =
  2466. {
  2467. "softname    \"LUCKY GAME \"",
  2468. "instfile    /OH_TOWNS/LUCK    \"*.*\"",
  2469. "help        README.DOC",
  2470. "item        \"LUCKY GAME/386\",LUCK386.EXP,,2",
  2471. "item        \"LUCKY GAME/486\",LUCK486.EXP,,2",
  2472. (0)
  2473. };
  2474.  
  2475. return install_exec(buf);
  2476. }
  2477.  
  2478. int install_mitamura()
  2479. {
  2480. static char *buf[5] =
  2481. {
  2482. "softname    \"MITAMURAショートプログラム集\"",
  2483. "instfile    /OH_TOWNS/MITAMURA    \"*.*\"",
  2484. "help        README.DOC",
  2485. "item        \"MITAMURAショートプログラム集\",STARTUP.EXP,,2",
  2486. (0)
  2487. };
  2488.  
  2489. return install_exec(buf);
  2490. }
  2491. # 5 "instdata.c"
  2492. char *get_inst_data_mnu()
  2493. {
  2494. char *mnu;
  2495.  
  2496. if ( (mnu = MNU_open()) == (0) )
  2497. return ((0));
  2498. MNU_datAdd( mnu, 0, 'Y', Rom16x16, 0, "install_hyoushi" , 0, "Oh!FM TOWNS 表\紙CGデータ集" );
  2499. MNU_datAdd( mnu, 0, 'C', Rom16x16, 0, "install_calendar" , 0, "Oh!FM TOWNS カレンダーCG" );
  2500. MNU_datAdd( mnu, 0, 'W', Rom16x16, 0, "install_mv_dark" , 0, "暗黒のワイドショー" );
  2501. MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "install_mv_hensyubu", 0, "暗黒の編集部" );
  2502. MNU_datAdd( mnu, 0, 'F', Rom16x16, 0, "install_mv_teo" , 0, "フィンク,おいで~" );
  2503. MNU_datAdd( mnu, 0, 'K', Rom16x16, 0, "install_mv_kakusei" , 0, "覚醒" );
  2504. MNU_datAdd( mnu, 0, 'U', Rom16x16, 0, "install_mv_pekopeko", 0, "はじめての宇宙旅行" );
  2505. MNU_datAdd( mnu, 0, 'G', Rom16x16, 0, "install_mv_kigae" , 0, "着替えの女の子" );
  2506. MNU_setPosition(mnu,-1);
  2507.  
  2508. return (mnu);
  2509. }
  2510.  
  2511. int install_hyoushi()
  2512. {
  2513. int ret, fcopy_att, srcdrv;
  2514. char *softname;
  2515. char *helpfn;
  2516. char *srcdir;
  2517. char instdir[256], *instfile;
  2518. char *dlgTxm;
  2519. char tmp[256];
  2520. static char *tiflist[10] =
  2521. {
  2522. "towns412.tif",
  2523. "towns501.tif",
  2524. "towns502.tif",
  2525. "towns503.tif",
  2526. "towns504.tif",
  2527. "towns505.tif",
  2528. "towns506.tif",
  2529. "towns507.tif",
  2530. "towns508.tif",
  2531. (0)
  2532. };
  2533.  
  2534. instdir[0] = '\0';
  2535. softname = "Oh!FMTOWNS 表\紙CGデータ集";
  2536. srcdir = "/OH_TOWNS/HYOUSHI";
  2537. helpfn = "/OH_TOWNS/HYOUSHI/HYOUSHI.GGG";
  2538.  
  2539. srcdrv = toupper(DirStart[0]) - 'A';
  2540.  
  2541. _TOP:
  2542. syl_putf("%s",softname);
  2543. dlgTxm = DlgTxm_open(ColBoxNormal);
  2544. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2545. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2546. "%s をインストールします。", softname );
  2547. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  2548.  
  2549. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  2550. 1, "", 0, "インストール : [実行]");
  2551. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  2552. 2, "inst_help", helpfn, "説明 : [H]");
  2553. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
  2554. 3, "", 0, "表\示 : [D]");
  2555. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  2556. 4, "", (0), "取消 : [取消]");
  2557.  
  2558. DlgTxm_setSize(dlgTxm,480,40);
  2559. DlgTxm_setPosition(dlgTxm,(1));
  2560. do
  2561. {
  2562. ret = DlgTxm_start(dlgTxm);
  2563. } while ( ret == 2 );
  2564. DlgTxm_close(dlgTxm);
  2565. if ( ret == 3 )
  2566. {
  2567. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2568. FS_chdir( "/OH_TOWNS/HYOUSHI" );
  2569. tiflist_disp(tiflist);
  2570. goto _TOP;
  2571. } else if ( ret != 1 )
  2572. goto _RET;
  2573.  
  2574.  
  2575. dlgTxm = DlgTxm_open(ColBoxNormal);
  2576. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2577. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2578. "インストールする表\紙CGデータの画像データ形式を指定してください。" );
  2579. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  2580.  
  2581. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'A' , 0x1E00 ,
  2582. 3, "", 0, "TIFF & BMP : [A]");
  2583. DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'T' , 0x1500 ,
  2584. 1, "", 0, "TIFF : [T]");
  2585. DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'B' , 0x2E00 ,
  2586. 2, "", 0, "BMP : [B]");
  2587. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  2588. 0, "", (0), "取消 : [取消]");
  2589.  
  2590. DlgTxm_setSize(dlgTxm,480,40);
  2591. DlgTxm_setPosition(dlgTxm,(1));
  2592. ret = DlgTxm_start(dlgTxm);
  2593. DlgTxm_close(dlgTxm);
  2594. switch ( ret )
  2595. {
  2596. case 1: instfile = "*.tif *.doc"; break;
  2597. case 2: instfile = "*.bmp *.doc"; break;
  2598. case 3: instfile = "*.tif *.bmp *.doc"; break;
  2599. default:
  2600. goto _TOP;
  2601. }
  2602.  
  2603.  
  2604. ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
  2605. if ( ret )
  2606. goto _TOP;
  2607.  
  2608. dlgTxm = DlgTxm_open(ColBoxNormal);
  2609. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2610. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2611. "%s", instdir );
  2612. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2613. "このディレクトリにインストールしてもいいですか?" );
  2614. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  2615. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール : [実行]");
  2616. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
  2617. DlgTxm_setSize(dlgTxm,320,40);
  2618. DlgTxm_setPosition(dlgTxm,(1));
  2619. ret = DlgTxm_start(dlgTxm);
  2620. DlgTxm_close(dlgTxm);
  2621. if ( ret != 1 )
  2622. goto _TOP;
  2623.  
  2624.  
  2625.  
  2626. syl_putf("INSTALL START");
  2627. FS_chdrv(srcdrv);
  2628. FS_getFullPn(tmp,srcdir);
  2629. fcopy_att = (0x00000010) | (0x00000100);
  2630. ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
  2631.  
  2632.  
  2633. install_end( softname, ret );
  2634.  
  2635. _RET:
  2636. syl_clear();
  2637. return (0);
  2638. }
  2639.  
  2640.  
  2641. int install_calendar()
  2642. {
  2643. int ret, fcopy_att, srcdrv;
  2644. char *softname;
  2645. char *helpfn;
  2646. char *srcdir;
  2647. char instdir[256], *instfile;
  2648. char *dlgTxm;
  2649. char tmp[256];
  2650. static char *tiflist[16] =
  2651. {
  2652. "midori12.tif",
  2653. "midori01.tif",
  2654. "midori02.tif",
  2655. "midori03.tif",
  2656. "midori04.tif",
  2657. "midori05.tif",
  2658. "midori06.tif",
  2659. "nukunu06.tif",
  2660. "nukunu07.tif",
  2661. "nukunu08.tif",
  2662. "nukunu09.tif",
  2663. "nukunu10.tif",
  2664. "nukunu11.tif",
  2665. "nukunu12.tif",
  2666. (0)
  2667. };
  2668.  
  2669. instdir[0] = '\0';
  2670. softname = "Oh!FM TOWNS オリジナルカレンダーCG";
  2671. srcdir = "/OH_TOWNS/CALENDAR";
  2672. helpfn = "/OH_TOWNS/CALENDAR/CALENDAR.GGG";
  2673.  
  2674. srcdrv = toupper(DirStart[0]) - 'A';
  2675.  
  2676. _TOP:
  2677. syl_putf("%s",softname);
  2678. dlgTxm = DlgTxm_open(ColBoxNormal);
  2679. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2680. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2681. "%s をインストールします。", softname );
  2682. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  2683.  
  2684. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  2685. 1, "", 0, "インストール : [実行]");
  2686. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  2687. 2, "inst_help", helpfn, "説明 : [H]");
  2688. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
  2689. 3, "", 0, "表\示 : [D]");
  2690. DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  2691. 4, "", (0), "取消 : [取消]");
  2692.  
  2693. DlgTxm_setSize(dlgTxm,480,40);
  2694. DlgTxm_setPosition(dlgTxm,(1));
  2695. do
  2696. {
  2697. ret = DlgTxm_start(dlgTxm);
  2698. } while ( ret == 2 );
  2699. DlgTxm_close(dlgTxm);
  2700. if ( ret == 3 )
  2701. {
  2702. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2703. FS_chdir( "/OH_TOWNS/CAL_DEMO" );
  2704. tiflist_disp(tiflist);
  2705. goto _TOP;
  2706. } else if ( ret != 1 )
  2707. goto _RET;
  2708.  
  2709.  
  2710. dlgTxm = DlgTxm_open(ColBoxNormal);
  2711. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2712. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2713. "インストールするCGデータの画像データ形式を指定してください。" );
  2714. DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
  2715.  
  2716. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'A' , 0x1E00 ,
  2717. 3, "", 0, "オリジナル & BMP : [A]");
  2718. DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'O' , 0x1900 ,
  2719. 1, "", 0, "オリジナル : [O]");
  2720. DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'B' , 0x2E00 ,
  2721. 2, "", 0, "BMP : [B]");
  2722. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  2723. 0, "", (0), "取消 : [取消]");
  2724.  
  2725. DlgTxm_setSize(dlgTxm,480,40);
  2726. DlgTxm_setPosition(dlgTxm,(1));
  2727. ret = DlgTxm_start(dlgTxm);
  2728. DlgTxm_close(dlgTxm);
  2729. switch ( ret )
  2730. {
  2731. case 1: instfile = "*.tif *.jpg       *.doc"; break;
  2732. case 2: instfile = "*.bmp             *.doc"; break;
  2733. case 3: instfile = "*.tif *.jpg *.bmp *.doc"; break;
  2734. default:
  2735. goto _TOP;
  2736. }
  2737.  
  2738.  
  2739. ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
  2740. if ( ret )
  2741. goto _TOP;
  2742.  
  2743. dlgTxm = DlgTxm_open(ColBoxNormal);
  2744. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  2745. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2746. "%s", instdir );
  2747. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  2748. "このディレクトリにインストールしてもいいですか?" );
  2749. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  2750. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール : [実行]");
  2751. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
  2752. DlgTxm_setSize(dlgTxm,320,40);
  2753. DlgTxm_setPosition(dlgTxm,(1));
  2754. ret = DlgTxm_start(dlgTxm);
  2755. DlgTxm_close(dlgTxm);
  2756. if ( ret != 1 )
  2757. goto _TOP;
  2758.  
  2759.  
  2760. syl_putf("INSTALL START");
  2761. FS_chdrv(srcdrv);
  2762. FS_getFullPn(tmp,srcdir);
  2763. fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
  2764. ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
  2765.  
  2766.  
  2767. install_end( softname, ret );
  2768.  
  2769. _RET:
  2770. syl_clear();
  2771. return (0);
  2772. }
  2773.  
  2774.  
  2775. int install_mv_dark()
  2776. {
  2777. static char *buf[6] =
  2778. {
  2779. "softname    \"『暗黒のワイドショー』\"",
  2780. "instfile    /OH_TOWNS/MOVIE/DARK    \"*.*\"",
  2781. "help        wideshow.ggg",
  2782. "demo    \"再生\"    _mv_dark_play",
  2783. (0)
  2784. };
  2785.  
  2786. return install_exec(buf);
  2787. }
  2788.  
  2789. int _mv_dark_play()
  2790. {
  2791. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2792. FS_chdir( "/OH_TOWNS/MOVIE/DARK" );
  2793.  
  2794. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 wideshow.v02" );
  2795.  
  2796. return (0);
  2797. }
  2798.  
  2799.  
  2800. int install_mv_hensyubu()
  2801. {
  2802. static char *buf[6] =
  2803. {
  2804. "softname    \"『暗黒の編集部』\"",
  2805. "instfile    /OH_TOWNS/MOVIE/HENSYUBU    \"*.*\"",
  2806. "help        hensyubu.ggg",
  2807. "demo    \"再生\"    _mv_hensyubu_play",
  2808. (0)
  2809. };
  2810.  
  2811. return install_exec(buf);
  2812. }
  2813.  
  2814. int _mv_hensyubu_play()
  2815. {
  2816. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2817. FS_chdir( "/OH_TOWNS/MOVIE/HENSYUBU" );
  2818.  
  2819. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 hensyub1.v02 hensyub2.v02" );
  2820.  
  2821. return (0);
  2822. }
  2823.  
  2824.  
  2825. int install_mv_teo()
  2826. {
  2827. static char *buf[6] =
  2828. {
  2829. "softname    \"『フィンク,おいで~』\"",
  2830. "instfile    /OH_TOWNS/MOVIE/TEO    \"*.*\"",
  2831. "help        teo.ggg",
  2832. "demo    \"再生\"    _mv_teo_play",
  2833. (0)
  2834. };
  2835.  
  2836. return install_exec(buf);
  2837. }
  2838.  
  2839. int _mv_teo_play()
  2840. {
  2841. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2842. FS_chdir( "/OH_TOWNS/MOVIE/TEO" );
  2843.  
  2844. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 teo1.v02 teo2.v02 teo3.v02" );
  2845.  
  2846. return (0);
  2847. }
  2848.  
  2849.  
  2850. int install_mv_kakusei()
  2851. {
  2852. static char *buf[6] =
  2853. {
  2854. "softname    \"『覚醒』\"",
  2855. "instfile    /OH_TOWNS/MOVIE/HOUREN    \"*.*\"",
  2856. "help        kakusei.doc",
  2857. "demo    \"再生\"    _mv_kakusei_play",
  2858. (0)
  2859. };
  2860.  
  2861. return install_exec(buf);
  2862. }
  2863.  
  2864. int _mv_kakusei_play()
  2865. {
  2866. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2867. FS_chdir( "/OH_TOWNS/MOVIE/HOUREN" );
  2868.  
  2869. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-wait 3 kakusei.mov" );
  2870.  
  2871. return (0);
  2872. }
  2873.  
  2874.  
  2875. int install_mv_kigae()
  2876. {
  2877. static char *buf[6] =
  2878. {
  2879. "softname    \"『着替えの女の子』\"",
  2880. "instfile    /OH_TOWNS/MOVIE/KIGAE    \"*.*\"",
  2881. "help        kigae.ggg",
  2882. "demo    \"再生\"    _mv_kigae_play",
  2883. (0)
  2884. };
  2885.  
  2886. return install_exec(buf);
  2887. }
  2888.  
  2889. int _mv_kigae_play()
  2890. {
  2891. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2892. FS_chdir( "/OH_TOWNS/MOVIE/KIGAE" );
  2893.  
  2894. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-wait 3 kigae.mov" );
  2895.  
  2896. return (0);
  2897. }
  2898.  
  2899.  
  2900. int install_mv_pekopeko()
  2901. {
  2902. static char *buf[6] =
  2903. {
  2904. "softname    \"『はじめての宇宙旅行』\"",
  2905. "instfile    /OH_TOWNS/MOVIE/PEKOPEKO    \"*.*\"",
  2906. "help        pekopeko.doc",
  2907. "demo    \"再生\"    _mv_pekopeko_play",
  2908. (0)
  2909. };
  2910.  
  2911. return install_exec(buf);
  2912. }
  2913.  
  2914. int _mv_pekopeko_play()
  2915. {
  2916. FS_chdrv( toupper(DirStart[0]) - 'A' );
  2917. FS_chdir( "/OH_TOWNS/MOVIE/PEKOPEKO" );
  2918.  
  2919. exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp","/OH_TOWNS/MOVIE/PEKOPEKO/UCHYU/uchyu.mov /OH_TOWNS/MOVIE/PEKOPEKO/KAISETSU/kaisetu.mov" );
  2920.  
  2921. return (0);
  2922. }
  2923. # 5 "instexec.c"
  2924. int install_exec( char **probuf )
  2925. {
  2926. int ret, i, fcopy_att, drv, argc, srcdrv;
  2927. char **argv, *p, *typename;
  2928. char instdir[256];
  2929. char softname[80];
  2930. char srcdir[128], instfile[128];
  2931. char helpfn[128];
  2932. char item_ttl[80],item_prog[32], item_para[128];
  2933. int item_setup, item_num, item_att;
  2934. char arcfn[128], arcdir[128], arcflag;
  2935. char runfn[128], runpara[128];
  2936. char demo_msg[80], demo_func[80];
  2937. char *lhalib;
  2938. char *dlgTxm;
  2939. char tmp[256], tmp2[256];
  2940.  
  2941. fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
  2942. instdir[0] = '\0';
  2943. srcdir[0] = '\0';
  2944. instfile[0] = '\0';
  2945. helpfn[0] = '\0';
  2946. item_num = 0;
  2947. item_ttl[0] = '\0';
  2948. arcfn[0] = '\0';
  2949. arcdir[0] = '\0';
  2950. arcflag = 0;
  2951. runpara[0] = '\0';
  2952. runfn[0] = '\0';
  2953. demo_msg[0] = '\0';
  2954. demo_func[0] = '\0';
  2955.  
  2956. srcdrv = toupper(DirStart[0]) - 'A';
  2957.  
  2958.  
  2959. for ( i = 0; probuf[i] != (0); ++i )
  2960. {
  2961. if ( (argc = DTA_makeArg(probuf[i],&argv)) > 0 )
  2962. {
  2963. typename = argv[0];
  2964. if ( strcmpi(typename,"softname") == 0 )
  2965. {
  2966. if ( argc >= 2 )
  2967. strcpy( softname, argv[1]);
  2968. } else if ( strcmpi(typename,"instfile") == 0 )
  2969. {
  2970. if ( argc >= 2 )
  2971. strcpy(srcdir , argv[1]);
  2972. if ( argc >= 3 )
  2973. strcpy(instfile, argv[2]);
  2974. if ( argc >= 4 )
  2975. {
  2976. if ( strcmpi(argv[3],"-nocopydir") == 0 )
  2977. fcopy_att &= (~(0x00000001));
  2978. }
  2979. } else if ( strcmpi(typename,"help") == 0 )
  2980. {
  2981. if ( argc >= 2 )
  2982. {
  2983. if ( FS_isDelim(argv[1][0]) )
  2984. strcpy(helpfn, argv[1]);
  2985. else if ( srcdir[0] != '\0' )
  2986. sprintf(helpfn,"%s/%s",srcdir,argv[1]);
  2987. }
  2988. } else if ( strcmpi(typename,"item") == 0 )
  2989. {
  2990. ++item_num;
  2991. if ( argc >= 5 )
  2992. {
  2993. strcpy(item_ttl , argv[1]);
  2994. strcpy(item_prog, argv[2]);
  2995. strcpy(item_para, argv[3]);
  2996. item_att = atoi(argv[4]);
  2997. }
  2998. } else if ( strcmpi(typename,"arcfile") == 0 )
  2999. {
  3000. if ( argc >= 2 )
  3001. {
  3002. strcpy( arcfn , argv[1]);
  3003. arcflag = 1;
  3004. }
  3005. if ( argc >= 3 )
  3006. strcpy( arcdir, argv[2]);
  3007. } else if ( strcmpi(typename,"runexp") == 0 )
  3008. {
  3009. if ( argc >= 2 && srcdir[0] )
  3010. {
  3011. strcpy(runfn,srcdir);
  3012. add_path_fn(runfn,argv[1]);
  3013. }
  3014. if ( argc >= 3 )
  3015. strcpy(runpara,argv[2]);
  3016. } else if ( strcmpi(typename,"demo") == 0 )
  3017. {
  3018. if ( argc >= 3 )
  3019. {
  3020. strcpy(demo_msg ,argv[1]);
  3021. strcpy(demo_func,argv[2]);
  3022. }
  3023. }
  3024. DTA_clearArg(argc,argv);
  3025. }
  3026. }
  3027.  
  3028.  
  3029. _TOP:
  3030. syl_putf("%s",softname);
  3031. dlgTxm = DlgTxm_open(ColBoxNormal);
  3032. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  3033. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3034. "%s をインストールします。", softname );
  3035. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  3036. 1, "", (0), "インストール : [実行]");
  3037. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
  3038. 2, "inst_help", helpfn, "説明 : [H]");
  3039. if ( runfn[0] )
  3040. {
  3041. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'R' , 0x1400 ,
  3042. 3, "", (0), "実行 : [R]");
  3043. } else if ( demo_msg[0] )
  3044. {
  3045. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
  3046. 3, "", (0), "%s : [D]", demo_msg);
  3047. }
  3048. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  3049. 4, "", (0), "取消 : [取消]");
  3050. DlgTxm_setSize(dlgTxm,320,40);
  3051. DlgTxm_setPosition(dlgTxm,(1));
  3052. do
  3053. {
  3054. ret = DlgTxm_start(dlgTxm);
  3055. } while ( ret == 2 );
  3056. DlgTxm_close(dlgTxm);
  3057. if ( ret == 3 )
  3058. {
  3059. if ( runfn[0] )
  3060. {
  3061. dlgTxm = DlgTxm_open(ColBoxCaution);
  3062. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  3063. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3064. "%s を実行します。", softname );
  3065. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  3066. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3067. "※ メモリが不足している場合は実行できません。" );
  3068. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
  3069. 1, "", (0), "実行 : [実行]");
  3070. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  3071. 0, "", (0), "取消 : [取消]");
  3072. DlgTxm_setSize(dlgTxm,400,40);
  3073. DlgTxm_setPosition(dlgTxm,(1));
  3074. ret = DlgTxm_start(dlgTxm);
  3075. DlgTxm_close(dlgTxm);
  3076. if ( ret == 1 )
  3077. exprun(runfn,runpara);
  3078. } else if ( demo_msg )
  3079. {
  3080. _funcCall(demo_func, 0);
  3081. }
  3082. goto _TOP;
  3083. } else if ( ret != 1 )
  3084. goto _RET;
  3085.  
  3086.  
  3087.  
  3088. if ( arcfn[0] && arcdir[0] )
  3089. {
  3090. dlgTxm = DlgTxm_open(ColBoxNormal);
  3091. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  3092. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3093. "ソ\ースプログラムもインストールしますか?" );
  3094. DlgTxm_setBtn( dlgTxm, Fnt16x16, 160, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'S' , 0x1F00 ,
  3095. 1, "", 0, "ソースをインストールする : [S]");
  3096. DlgTxm_setBtn( dlgTxm, Fnt16x16, 160, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
  3097. 0, "", 0, "インストールしない : [取消]");
  3098. DlgTxm_setSize(dlgTxm,480,40);
  3099. DlgTxm_setPosition(dlgTxm,(1));
  3100. ret = DlgTxm_start(dlgTxm);
  3101. DlgTxm_close(dlgTxm);
  3102. arcflag = (ret == 1) ? 1 : 0;
  3103. }
  3104.  
  3105.  
  3106. ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
  3107. if ( ret )
  3108. goto _TOP;
  3109.  
  3110. dlgTxm = DlgTxm_open(ColBoxNormal);
  3111. DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  3112. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3113. "%s", instdir );
  3114. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3115. "このディレクトリにインストールしてもいいですか?" );
  3116. DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
  3117. if ( item_ttl[0] )
  3118. {
  3119. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3120. "インストール1 … ファイルを複写してTownsMENU にアイテム登録");
  3121. DlgTxm_putf( dlgTxm, Fnt16x16, (1),
  3122. "インストール2 … ファイルを複写(アイテム登録はしない)    ");
  3123.  
  3124. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
  3125. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
  3126. } else
  3127. {
  3128. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 2, "", 0, "インストール : [実行]");
  3129. }
  3130. DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
  3131. DlgTxm_setSize(dlgTxm,320,40);
  3132. DlgTxm_setPosition(dlgTxm,(1));
  3133. ret = DlgTxm_start(dlgTxm);
  3134. DlgTxm_close(dlgTxm);
  3135. if ( ret != 1 && ret != 2 )
  3136. goto _TOP;
  3137. item_setup = (ret == 1 ? 1 : 0);
  3138.  
  3139.  
  3140.  
  3141. syl_putf("INSTALL START");
  3142. FS_chdrv(srcdrv);
  3143. if ( *srcdir == '\0' || *srcdir == '.' )
  3144. {
  3145. strcpy(tmp,DirStart);
  3146. ret = strlen(tmp);
  3147. if ( ret > 3 && FS_isDelim(tmp[ret-1]) )
  3148. tmp[ret-1] = '\0';
  3149. } else
  3150. {
  3151. if ( FS_isDelim(*srcdir) )
  3152. strcpy(tmp,srcdir);
  3153. else
  3154. sprintf(tmp,"%s%s",DirStart, srcdir);
  3155. }
  3156. if ( instfile[0] )
  3157. {
  3158. FS_getFullPn(tmp2,tmp);
  3159. srcdir = tmp2;
  3160. ret = FCOPY_exec(fcopy_att, srcdir, instfile, instdir);
  3161. }
  3162.  
  3163.  
  3164. if ( arcfn[0] && arcflag )
  3165. {
  3166. syl_putf("ARC(.LZH) FILE EXTRACT");
  3167. FS_chdrv(srcdrv);
  3168. strcpy(tmp,srcdir);
  3169. add_path_fn(tmp,arcfn);
  3170.  
  3171. strcpy(tmp2,instdir);
  3172. if ( arcdir[0] )
  3173. add_path_fn(tmp2,arcdir);
  3174. if ( (lhalib = LHA_openArc(tmp)) != (0) )
  3175. {
  3176. ret = LHA_extractAll(lhalib,tmp2);
  3177. LHA_closeArc(lhalib);
  3178. } else
  3179. {
  3180. syl_putf("ARC OPEN ERROR");
  3181. ret = (-1);
  3182. }
  3183. }
  3184.  
  3185.  
  3186. if ( ret == (0) && item_setup != 0 )
  3187. {
  3188. syl_putf("ITEM SETUP");
  3189. drv = toupper(instdir[0]) - 'A';
  3190. if ( item_num == 1 )
  3191. {
  3192. strcpy(tmp,instdir);
  3193. add_path_fn(tmp,item_prog);
  3194. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  3195. } else
  3196. {
  3197. for ( i = 0; probuf[i] != (0); ++i )
  3198. {
  3199. if ( (argc = DTA_makeArg(probuf[i],&argv)) > 0 )
  3200. {
  3201. typename = argv[0];
  3202. if ( strcmpi(typename,"item") == 0 )
  3203. {
  3204. if ( argc >= 5 )
  3205. {
  3206. strcpy(item_ttl , argv[1]);
  3207. strcpy(item_prog, argv[2]);
  3208. strcpy(item_para, argv[3]);
  3209. item_att = atoi(argv[4]);
  3210. strcpy(tmp,instdir);
  3211. add_path_fn(tmp,item_prog);
  3212. item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
  3213. }
  3214. }
  3215. DTA_clearArg(argc,argv);
  3216. }
  3217. }
  3218. }
  3219. }
  3220. install_end( softname, ret );
  3221.  
  3222. _RET:
  3223. syl_clear();
  3224.  
  3225. return (0);
  3226. }
  3227. # 5 "instlib.c"
  3228. int _puts_bold(int x, int y, int col, char *s);
  3229. # 11 "instlib.c"
  3230. int syl_clear()
  3231. {
  3232. char *msg, tmp[80];
  3233.  
  3234. SCN_wrtPage(1);
  3235. PD_curDec();
  3236.  
  3237.  
  3238. sprintf(tmp,"PRESENTED by %c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
  3239. msg = "天晴CD Vol.2 鳳凰の巻";
  3240.  
  3241. SCN_boxf(0,464,639,479,0,ColMesh);
  3242. _puts_bold( 232 ,464 , PltNoWhite,msg);
  3243. SCN_puts(Fnt16x16,tmp,232+23*8+1,464+1,0,(_ScnCol_black) ,0);
  3244. SCN_puts(Fnt16x16,tmp,232+23*8 ,464 ,0,PltNoWhite,0);
  3245. # 35 "instlib.c"
  3246. PD_curInc();
  3247. }
  3248. # 42 "instlib.c"
  3249. int syl_putf(char *form)
  3250. {
  3251. char tmp[256];
  3252. char *ap;
  3253. int n, x;
  3254.  
  3255. (ap = (char *)(&form) + sizeof(int));
  3256. vsprintf(tmp+6,form,ap);
  3257. ;
  3258.  
  3259. SCN_wrtPage(1);
  3260. PD_curDec();
  3261.  
  3262. SCN_boxf(0,464,639,479,0,ColMesh);
  3263.  
  3264. EGB_textDirection(EgbPtr,0);
  3265. EGB_textDisplayDirection(EgbPtr,0);
  3266. EGB_textSpace(EgbPtr,0);
  3267. EGB_textZoom(EgbPtr,0, 8, 16 );
  3268. EGB_textZoom(EgbPtr,1, 16, 16 );
  3269. EGB_fontStyle(EgbPtr,1+4);
  3270. EGB_color(EgbPtr,0,(_ScnColTbl[12]));
  3271. EGB_color(EgbPtr,1,(_ScnCol_black));
  3272. EGB_paintMode(EgbPtr,0x022);
  3273. EGB_writeMode(EgbPtr,0);
  3274.  
  3275. n = strlen(tmp+6);
  3276. x = (640 - n * 8) / 2;
  3277. _setWord(tmp+0, x );
  3278. _setWord(tmp+2, 464+15);
  3279. _setWord(tmp+4, n );
  3280. EGB_sjisString( EgbPtr, tmp);
  3281.  
  3282. PD_curInc();
  3283. }
  3284.  
  3285. int _puts_bold(int x, int y, int col, char *s)
  3286. {
  3287. char para[256];
  3288.  
  3289. EGB_textDirection(EgbPtr,0);
  3290. EGB_textDisplayDirection(EgbPtr,0);
  3291. EGB_textSpace(EgbPtr,0);
  3292. EGB_textZoom(EgbPtr,0, 8, 16 );
  3293. EGB_textZoom(EgbPtr,1, 16, 16 );
  3294. EGB_fontStyle(EgbPtr,1+4);
  3295. EGB_color(EgbPtr,0,col );
  3296. EGB_color(EgbPtr,1,(_ScnCol_black));
  3297. EGB_paintMode(EgbPtr,0x022);
  3298. EGB_writeMode(EgbPtr,0);
  3299.  
  3300. _setWord(para+0, x );
  3301. _setWord(para+2, y+15 );
  3302. _setWord(para+4, strlen(s));
  3303. strcpy(para+6,s);
  3304. EGB_sjisString( EgbPtr, para);
  3305. }
  3306.  
  3307. char *add_path_fn(char *path, char *fn)
  3308. {
  3309. int len;
  3310.  
  3311. len = strlen(path);
  3312.  
  3313. if ( len == 0 || !(path[len-1] == '\\' || path[len-1] == '/') )
  3314. path[len++] = FsPathDelim;
  3315. strcpy( path + len, fn );
  3316. return (path);
  3317. }
  3318. # 116 "instlib.c"
  3319. int tif_load(char *fn)
  3320. {
  3321. char *img;
  3322. short fr[4];
  3323. int x, y;
  3324.  
  3325. SCN_wrtPage(0);
  3326. if ( (img = IMG_open()) != (0) )
  3327. {
  3328. IMG_setPage(img,0);
  3329. IMG_setAtt(img,(0x00010000));
  3330. IMG_setColor( img, (_ScnCol_black), (_ScnCol_white));
  3331. if ( IMG_load(img,fn) == (0) )
  3332. {
  3333. IMG_getFr(img,fr);
  3334. x = (320 - (fr[2] - fr[0] + 1)) / 2;
  3335. y = 10 + (230 - (fr[3] - fr[1] + 1)) / 2;
  3336. IMG_setPos(img,x,y);
  3337. EGB_color(EgbPtr,1,(_ScnCol_black));
  3338.  
  3339. EGB_clearScreen(EgbPtr);
  3340. EGB_paintMode(EgbPtr,0x22);
  3341. IMG_dsp(img);
  3342. }
  3343. IMG_close(img);
  3344. }
  3345. SCN_wrtPage(1);
  3346. return ((0));
  3347. }
  3348. # 150 "instlib.c"
  3349. int tiflist_disp( char **list )
  3350. {
  3351. int i, x, y, ret, pixel, md, x0, y0;
  3352. char *img;
  3353. short fr[4];
  3354. char *fn;
  3355.  
  3356. SCN_wrtPage(1);
  3357. APL_save_desktop();
  3358. SCN_boxf(0,0,639,479,0,0);
  3359. SCN_wrtPage(0);
  3360.  
  3361. for ( i = 0; list[i] != (0); ++i )
  3362. {
  3363. fn = list[i];
  3364.  
  3365. if ( (img = IMG_open()) != (0) )
  3366. {
  3367. IMG_setAtt(img,(0x00010000));
  3368. if ( IMG_load(img,fn) == (0) )
  3369. {
  3370. IMG_getFr(img,fr);
  3371. pixel = IMG_getPixel(img);
  3372. switch ( pixel )
  3373. {
  3374. case 1:
  3375. case 4:
  3376. x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
  3377. y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  3378. md = 3;
  3379. break;
  3380. case 8:
  3381. x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
  3382. y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  3383. md = 12;
  3384. break;
  3385. case 16:
  3386. if ( fr[2] - fr[0] + 1 <= 320 )
  3387. {
  3388. x0 = (320 - (fr[2] - fr[0] + 1)) / 2;
  3389. y0 = (240 - (fr[3] - fr[1] + 1)) / 2;
  3390. md = 10;
  3391. } else
  3392. {
  3393. x0 = (512 - (fr[2] - fr[0] + 1)) / 2;
  3394. y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
  3395. md = 17;
  3396. }
  3397. break;
  3398. default:
  3399. goto _TIF_ERR;
  3400. }
  3401. IMG_setPos(img,x0,y0);
  3402. PD_curOff();
  3403.  
  3404. EGB_displayPage(EgbPtr,0,0);
  3405. EGB_writePage(EgbPtr,0);
  3406. EGB_clearScreen(EgbPtr);
  3407. EGB_resolution(EgbPtr,0,md);
  3408. if ( md == 3 || md == 10 )
  3409. {
  3410. EGB_resolution(EgbPtr,1,3);
  3411. EGB_writePage(EgbPtr,1);
  3412. EGB_clearScreen(EgbPtr);
  3413. }
  3414.  
  3415. EGB_writePage(EgbPtr,0);
  3416. if ( md == 10 )
  3417. {
  3418. EGB_displayStart(EgbPtr,2,2,2);
  3419. EGB_displayStart(EgbPtr,3,320,240);
  3420. }
  3421. EGB_color(EgbPtr,1,0);
  3422. EGB_clearScreen(EgbPtr);
  3423. IMG_dsp(img);
  3424. if ( md == 3 || md == 10 )
  3425. EGB_displayPage(EgbPtr,1,3);
  3426. else
  3427. EGB_displayPage(EgbPtr,0,1);
  3428.  
  3429. _apl_wait(100 * 8);
  3430. while ( PD_getp(&x,&y) )
  3431. ;
  3432. }
  3433. IMG_close(img);
  3434. }
  3435. }
  3436.  
  3437. EGB_writePage(EgbPtr,0);
  3438. EGB_clearScreen(EgbPtr);
  3439.  
  3440. SCN_sysReinit();
  3441. disp_desktop();
  3442. SCN_wrtPage(1);
  3443. APL_load_desktop();
  3444. syl_clear();
  3445.  
  3446. return ((0));
  3447. }
  3448.  
  3449. int mveplay(char *fnmve, int loop)
  3450. {
  3451. char para[256];
  3452.  
  3453. sprintf(para,"-loop %d %s", loop, fnmve );
  3454.  
  3455. exprun("/OH_TOWNS/DEMOTOOL/mveplay.exp", para );
  3456. return (0);
  3457. }
  3458.  
  3459. int exprun(char *fn, char *para)
  3460. {
  3461. unsigned int siz;
  3462. int md;
  3463. char tmp[256];
  3464. char *dlgTxm;
  3465. char *dir;
  3466.  
  3467. siz = APL_getFreeMem();
  3468. if ( siz < 2 * 1024 * 1024 )
  3469. {
  3470. dlgTxm = DlgTxm_open(ColBoxError);
  3471. DlgTxm_setTitle(dlgTxm,Fnt16x16, "OUT OF MEMORY");
  3472.  
  3473. DlgTxm_putf( dlgTxm, Rom16x16, (1),"");
  3474. DlgTxm_putf( dlgTxm, Rom16x16, (1),
  3475. "メモリ不足のため実行できません。" );
  3476. DlgTxm_putf( dlgTxm, Rom16x16, (1),"");
  3477.  
  3478. DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
  3479. (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
  3480. DlgTxm_setSize(dlgTxm,480,48);
  3481. DlgTxm_setPosition(dlgTxm,(1));
  3482.  
  3483. DlgTxm_start(dlgTxm);
  3484. DlgTxm_close(dlgTxm);
  3485. return (-1);
  3486. }
  3487. dir = FS_pushDir();
  3488. FS_chdrv( toupper(DirStart[0]) - 'A' );
  3489. FS_getDnam(tmp,fn);
  3490. add_path_fn(tmp,".");
  3491. FS_chdir(tmp);
  3492.  
  3493.  
  3494. SCN_wrtPage(1);
  3495. APL_save_desktop();
  3496.  
  3497.  
  3498. md = (4) | (8);
  3499. AplDtaInit();
  3500. if ( para != (0) && *para != '\0' )
  3501. {
  3502. AplDtaSetStr("$MainArg","%s %s", fn, para);
  3503. if ( strlen(fn) + strlen(para) + 1 >= 128 )
  3504. md &= (~(8));
  3505. }
  3506. FS_popDir(dir);
  3507. PCL_exec(fn,md);
  3508.  
  3509.  
  3510. SCN_sysReinit();
  3511. disp_desktop();
  3512. SCN_wrtPage(1);
  3513. APL_load_desktop();
  3514. syl_clear();
  3515.  
  3516. return ((0));
  3517. }
  3518. # 324 "instlib.c"
  3519. int inst_help( int evNo, char *evDat, char *fn)
  3520. {
  3521. char tmp[256];
  3522.  
  3523. FS_chdrv(toupper(DirStart[0]) - 'A');
  3524. sprintf(tmp,"%s.",DirStart);
  3525. FS_chdir(tmp);
  3526.  
  3527. APL_textView(Rom16x16,608,391,17,fn,"HELP FILE : %s", fn);
  3528.  
  3529. return (evNo);
  3530. }
  3531. # 341 "instlib.c"
  3532. int install_end( char *soft_name, int err )
  3533. {
  3534. char *dlgTxm;
  3535. int colbox;
  3536. char *msg;
  3537.  
  3538. msg = err == 0 ? "インストールが終わりました。"
  3539. : "インストールに失敗しました。";
  3540.  
  3541. colbox = 0;
  3542. colbox = SCN_tile_newMixCol(colbox,0x00,(_ScnColTbl[12]),(_ScnColTbl[ 7]));
  3543. if ( (dlgTxm = DlgTxm_open(colbox)) != (0) )
  3544. {
  3545. DlgTxm_setTitle(dlgTxm,Fnt16x16,soft_name);
  3546. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "");
  3547. DlgTxm_putf( dlgTxm, Fnt16x16, (1), msg );
  3548. DlgTxm_putf( dlgTxm, Fnt16x16, (1), "");
  3549. DlgTxm_setBtn( dlgTxm, Fnt16x16, 64, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "OK : [実行]");
  3550. DlgTxm_setSize(dlgTxm,480,64);
  3551. DlgTxm_setPosition(dlgTxm,(1));
  3552. DlgTxm_start(dlgTxm);
  3553. DlgTxm_close(dlgTxm);
  3554. }
  3555. SCN_tile_free(colbox);
  3556. }
  3557. # 10 "item.c"
  3558. int item_get_newpos( char *pathItem, int fposBase, short *newfrm );
  3559. int item_chkpos( char *pathItem, int fposStart, short *frmchk );
  3560. int item_get_fr( char *pathItem, int fpos, short *fr );
  3561. int item_adjust_pos( short *newfrm );
  3562.  
  3563. int item_setApl( int drv, int icon, char *ttl, char *path, char *para, int att )
  3564. {
  3565. char pathItem[64], prog[128];
  3566. short fr[4];
  3567. int iconGrp;
  3568. int fpos;
  3569. char *ttlGrp;
  3570.  
  3571. ttlGrp = "天晴";
  3572. iconGrp = 1059;
  3573.  
  3574. sprintf( pathItem, "%c:\\tmenu.itm", drv + 'A');
  3575. if ( FS_isFile(pathItem) != (1) )
  3576. {
  3577. ITM_CreateItemFile(pathItem);
  3578. }
  3579.  
  3580.  
  3581. fr[0] = fr[1] = fr[2] = fr[3] = -1;
  3582. fpos = ITM_GetGrpFPos(pathItem,0,-1,-1,ttlGrp,-1,fr);
  3583. if ( fpos < 0 )
  3584. {
  3585. item_get_newpos( pathItem, 0, fr);
  3586. if ( (fpos = ITM_AddGrpItem(pathItem,0,iconGrp,ttlGrp,fr)) < 0 )
  3587. return ((-1));
  3588. }
  3589.  
  3590.  
  3591. if ( item_get_newpos( pathItem, fpos, fr) < 0 )
  3592. return ((-1));
  3593. FS_dosFn(prog,path);
  3594. FS_strupr(prog);
  3595. if ( ITM_AddAplItem( pathItem, fpos, icon, ttl, prog, para, att, fr) < 0 )
  3596. return ((-1));
  3597. return ((0));
  3598. }
  3599.  
  3600.  
  3601. int item_get_newpos( char *pathItem, int fposBase, short *newfrm )
  3602. {
  3603. int area, x, y, x0, y0;
  3604.  
  3605. for ( area = 0; area < 9; ++area )
  3606. {
  3607. x = area;
  3608. for ( y = 0; y < area; ++y )
  3609. {
  3610. x0 = x * 64; newfrm[0] = x0+8; newfrm[2] = x0 + 63-8;
  3611. y0 = y * 48; newfrm[1] = y0+4; newfrm[3] = y0 + 47-4;
  3612. if ( item_chkpos( pathItem, fposBase, newfrm ) )
  3613. goto _OK;
  3614. }
  3615. y = area;
  3616. for ( x = 0; x <= area; ++x )
  3617. {
  3618. x0 = x * 64; newfrm[0] = x0+8; newfrm[2] = x0 + 63-8;
  3619. y0 = y * 48; newfrm[1] = y0+4; newfrm[3] = y0 + 47-4;
  3620. if ( item_chkpos( pathItem, fposBase, newfrm ) )
  3621. goto _OK;
  3622. }
  3623. }
  3624. _OK:
  3625. x0 = (newfrm[0] + newfrm[2] + 1) / 2 - 12;
  3626. newfrm[0] = (x0+7) & (~7);
  3627. newfrm[1] = newfrm[1] + 4;
  3628. newfrm[2] = newfrm[0] + 24;
  3629. newfrm[3] = newfrm[1] + 24;
  3630. # 86 "item.c"
  3631. return (item_adjust_pos( newfrm ));
  3632. }
  3633.  
  3634. int item_chkpos( char *pathItem, int fposStart, short *frmchk )
  3635. {
  3636. int ret;
  3637. int fpos, nextFPos;
  3638. int etyNum;
  3639. short icnNum;
  3640. char ttlStr[128];
  3641. int atrInf;
  3642. short frm[4];
  3643. int numItem;
  3644. # 105 "item.c"
  3645. if ( (fpos = fposStart) > 0 )
  3646. {
  3647. ret = ITM_GetItmType(pathItem,fpos);
  3648. if ( ret != 1 )
  3649. return (-1);
  3650. ITM_GetGrpData(pathItem,fpos,&etyNum,&icnNum,ttlStr,&nextFPos,frm);
  3651. # 115 "item.c"
  3652. while ( etyNum-- > 0 )
  3653. {
  3654. if ( (fpos = ITM_GetPhysclNextFPos( pathItem, fpos )) < 0 )
  3655. break;
  3656. if ( (ret = item_get_fr( pathItem, fpos, frm )) == 0 )
  3657. {
  3658. if ( frm[0] <= frmchk[2] && frm[2] >= frmchk[0]
  3659. && frm[1] <= frmchk[3] && frm[3] >= frmchk[1] )
  3660. return (0);
  3661. }
  3662. }
  3663. } else
  3664. {
  3665. while ( (fpos = ITM_GetPhysclNextFPos( pathItem, fpos )) > 0 )
  3666. {
  3667. if ( ITM_GetStair( pathItem, fpos ) == 0 )
  3668. {
  3669. if ( (ret = item_get_fr( pathItem, fpos, frm )) == 0 )
  3670. {
  3671. if ( frm[0] <= frmchk[2] && frm[2] >= frmchk[0]
  3672. && frm[1] <= frmchk[3] && frm[3] >= frmchk[1] )
  3673. return (0);
  3674. }
  3675. }
  3676. }
  3677. }
  3678. return (1);
  3679. }
  3680.  
  3681. int item_get_fr( char *pathItem, int fpos, short *fr )
  3682. {
  3683. int ret;
  3684. int nextFPos;
  3685. int etyNum;
  3686. short icnNum;
  3687. char ttlStr[128], pathStr[128], paraStr[128];
  3688. int atrInf;
  3689. # 156 "item.c"
  3690. ret = ITM_GetItmType(pathItem,fpos);
  3691. # 160 "item.c"
  3692. switch ( ret )
  3693. {
  3694. case 1:
  3695. ITM_GetGrpData(pathItem,fpos,&etyNum,&icnNum,ttlStr,&nextFPos,fr);
  3696. # 167 "item.c"
  3697. break;
  3698. case 2:
  3699. ITM_GetAplData(pathItem,fpos,&icnNum,ttlStr,pathStr,paraStr,atrInf,fr);
  3700. # 173 "item.c"
  3701. break;
  3702. case 3:
  3703. return (-1);
  3704.  
  3705. default:
  3706. return (-1);
  3707. }
  3708. return (0);
  3709. }
  3710.  
  3711. int item_adjust_pos( short *newfrm )
  3712. {
  3713. if ( newfrm[2] > 621 )
  3714. {
  3715. newfrm[2] = 621;
  3716. newfrm[0] = newfrm[2] - 24;
  3717. }
  3718. if ( newfrm[3] > 410 )
  3719. {
  3720. newfrm[3] = 410;
  3721. newfrm[1] = newfrm[3] - 24;
  3722. }
  3723. return ((0));
  3724. }
  3725.