home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / taropyon / edia / edia.cci < prev    next >
Text File  |  1995-06-20  |  31KB  |  1,510 lines

  1. # 1 "main.c"
  2.  
  3. # 1 "main.c"
  4. # 10 "main.c"
  5. char *SysMacro = 0;
  6. char SYSMACRO_FN[12] = {'e','d','i','a','.','m','a','c','\0'};
  7. char MACROKEY_EXPSEARCH_PATH[16] = {'E','x','p','_','s','e','a','r','c','h','_','p','a','t','h','\0'};
  8. # 18 "lib.c"
  9. char *GetAsciiTime( char *s, long t )
  10. {
  11. int *tm;
  12.  
  13. tm = localtime( &t );
  14. sprintf( s, "%04d/%02d/%02d %02d:%02d",
  15. (tm[5])+1900, (tm[4])+1, (tm[3]),
  16. (tm[2]), (tm[1]) );
  17. return (s);
  18. }
  19.  
  20. int TxdUsr_saveColTbl( char *txd )
  21. {
  22. int ret;
  23. char *fdl;
  24. char tmp[128], *fn;
  25.  
  26. if ( (fdl = FDL_open(0)) == 0 )
  27. return ((-1));
  28. FDL_set_wildcard( fdl, "*.tbl");
  29. FDL_set_title( fdl, "SAVE COLOR TABLE");
  30. ret = FDL_start(fdl);
  31. fn = FDL_get_filename(fdl);
  32. if ( ret != (0) || strlen(fn) == 0 )
  33. {
  34. FDL_close(fdl);
  35. return ((-1));
  36. }
  37. FS_appendSnam( tmp, fn, ".tbl");
  38. TXD_saveColTbl(txd,tmp);
  39. FDL_close(fdl);
  40.  
  41. return ((0));
  42. }
  43. # 1 "pcl.c"
  44. int SetExpSearchPath()
  45. {
  46. char *p;
  47. char buf[256];
  48. char *tok, *terminator;
  49.  
  50. if ( (p = AMAC_getName( SysMacro, MACROKEY_EXPSEARCH_PATH )) == 0 )
  51. {
  52.  
  53.  
  54.  
  55.  
  56. return ((0));
  57.  
  58. }
  59. terminator = ";";
  60. strcpy(buf,p);
  61.  
  62. tok = strtok(buf, terminator);
  63. while ( tok )
  64. {
  65. p = tok;
  66. while ( isspace(*p) )
  67. ++p;
  68. if ( *p )
  69. AplPclSetPath( p );
  70. tok = strtok(0, terminator);
  71. }
  72. return ((0));
  73. }
  74.  
  75. int CCI_setExpSearchPath()
  76. {
  77. int ret;
  78. char *p;
  79. char buf[256];
  80. char *dlg;
  81.  
  82. if ( (p = AMAC_getName( SysMacro, MACROKEY_EXPSEARCH_PATH )) == 0 )
  83. buf[0] = '\0';
  84. else
  85. strcpy(buf,p);
  86.  
  87. dlg = DLG_getsOpen( (0x10010), (0x10010), 480,"セミコロン(;)で区切って複数指定できます。");
  88. DLG_getsSetTitle( dlg, "EXP SEARCH PATH" );
  89. ret = DLG_getsStart( dlg, 255, buf );
  90. if ( ret > 0 && buf[0] )
  91. {
  92. AMAC_setKey( SysMacro, MACROKEY_EXPSEARCH_PATH, buf );
  93. SetExpSearchPath();
  94. }
  95. DLG_getsClose(dlg);
  96. return ((0));
  97. }
  98. # 5 "he386.c"
  99. char *_he386p_ = "he386p.exp";
  100. char he386_option[256] = {0};
  101.  
  102. int he386_compile( char *pn )
  103. {
  104. int ret, drv;
  105. char tmp[256], fn[256];
  106.  
  107.  
  108. drv = toupper(pn[0]) - 'A';
  109. FS_chdrv(drv);
  110. FS_getDnamPath(tmp,pn);
  111. FS_chdir(tmp);
  112.  
  113.  
  114. AplDtaInit();
  115. AplDtaSetStr( "$MainArg", "%s %s %s", _he386p_, he386_option, pn );
  116.  
  117. ret = AplPclExec( _he386p_, 4 );
  118.  
  119. FS_getFnam(fn,pn);
  120. FS_appendSnam( fn, fn, ".mid" );
  121. if ( FS_isFileExist(fn) > 0 )
  122. MID_playStart( fn );
  123.  
  124. return ((0));
  125. }
  126.  
  127. int he386_menu( char *pn )
  128. {
  129. int ret;
  130. char tmp[256];
  131. char *dlg;
  132. char *mnu;
  133. char *obj;
  134. char *p;
  135.  
  136. if ( pn[0] == '\0' )
  137. return ((0));
  138.  
  139. obj = MNU_alloc(3);
  140. MNU_setObj(obj, 0, (2), 'O', "Option" , 0, 1, 0, 0);
  141. MNU_setObj(obj, 1, (0), 0 , 0 , 0, 2, 0, 0);
  142. MNU_setObj(obj, 2, (2), 'C', "Compile (normal)", 0, 3, 0, 0);
  143.  
  144. mnu = MNU_open( (0x10010), (0x10010), (1),
  145. obj, "MML Compile" );
  146.  
  147. for(;;)
  148. {
  149. ret = MNU_start ( mnu );
  150. switch ( ret )
  151. {
  152. case 1:
  153. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  154. "HE386 のオプションパラメータを入力してください。");
  155. DLG_getsSetTitle( dlg, "MML Compiler option parameter" );
  156. strcpy( tmp, he386_option);
  157. ret = DLG_getsStart( dlg, 255, tmp );
  158. if ( ret >= 0 )
  159. strcpy( he386_option, tmp );
  160. DLG_getsClose(dlg);
  161. break;
  162.  
  163. case 3:
  164. he386_compile( pn );
  165. goto _RET;
  166. default:
  167. goto _RET;
  168. }
  169. }
  170.  
  171. _RET:
  172. MNU_close(mnu);
  173. MNU_free(obj);
  174. return ((0));
  175. }
  176. # 5 "cciexp.c"
  177. char *_cci_exp_ = "cci.exp";
  178. char cci_cci_option[256] = {0};
  179. char cci_usr_option[256] = {0};
  180.  
  181. int cci_call( char *_pn )
  182. {
  183. int ret, drv;
  184. char tmp[256], pn[256], fn[256], exfn[256];
  185. char *dlg;
  186.  
  187.  
  188. drv = toupper(pn[0]) - 'A';
  189. FS_chdrv(drv);
  190. FS_getDnamPath(tmp,pn);
  191. FS_chdir(tmp);
  192.  
  193.  
  194. FS_unix2dos(pn, _pn);
  195. FS_getFnam(fn,pn);
  196. FS_appendSnam( exfn, fn, "._ci" );
  197. sprintf( tmp, "cpp -D__CCI__ %s > %s", pn, exfn );
  198. dlg = DLG_msgOpen( (0x10030), (0x10030),
  199. 80*6, 14*12, 1, 3, (0x1000|(((12)&15)<<4)|((7)&15)),
  200. "CPP" );
  201. if ( dlg )
  202. {
  203. DLG_msgSetConfig( dlg, 4, 6, 12 );
  204. DLG_msgClear( dlg, -1 );
  205. DLG_msgConsSet( dlg, 1, 15);
  206. }
  207. MOS_curDisp(2);
  208. system( tmp );
  209. MOS_curDisp(3);
  210. if ( dlg )
  211. {
  212. DLG_msgPrintf(dlg,"\r\n***** COMPLETED *****\r\n");
  213. DLG_msgConsEnd( dlg );
  214. DLG_msgClose(dlg);
  215. }
  216.  
  217.  
  218. AplDtaInit();
  219. AplDtaSetStr( "$MainArg", "%s %s %s -- %s", _cci_exp_, cci_cci_option, exfn, cci_usr_option );
  220.  
  221. ret = AplPclExec( _cci_exp_, 7 );
  222.  
  223. FS_getFnam(fn,pn);
  224. FS_appendSnam( fn, fn, ".mid" );
  225. # 58 "cciexp.c"
  226. return ((0));
  227. }
  228.  
  229. int cci_call_menu( char *pn )
  230. {
  231. int ret;
  232. char tmp[256];
  233. char *dlg;
  234. char *mnu;
  235. char *obj;
  236. char *p;
  237.  
  238. if ( pn[0] == '\0' )
  239. return ((0));
  240.  
  241. obj = MNU_alloc(4);
  242. MNU_setObj(obj, 0, (2), 'S', "System option", 0, 1, 0, 0);
  243. MNU_setObj(obj, 1, (2), 'U', "User Option" , 0, 2, 0, 0);
  244. MNU_setObj(obj, 2, (0), 0 , 0 , 0, 3, 0, 0);
  245. MNU_setObj(obj, 3, (2), 'C', "Call CCI" , 0, 4, 0, 0);
  246.  
  247. mnu = MNU_open( (0x10010), (0x10010), (1),
  248. obj, "CCI" );
  249.  
  250. for(;;)
  251. {
  252. ret = MNU_start ( mnu );
  253. switch ( ret )
  254. {
  255. case 1:
  256. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  257. "CCI のオプションパラメータを入力してください。");
  258. DLG_getsSetTitle( dlg, "CCI system option parameter" );
  259. strcpy( tmp, cci_cci_option);
  260. ret = DLG_getsStart( dlg, 255, tmp );
  261. if ( ret >= 0 )
  262. strcpy( cci_cci_option, tmp );
  263. DLG_getsClose(dlg);
  264. break;
  265.  
  266. case 2:
  267. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  268. "CCI のオプションパラメータを入力してください。");
  269. DLG_getsSetTitle( dlg, "CCI user option parameter" );
  270. strcpy( tmp, cci_usr_option);
  271. ret = DLG_getsStart( dlg, 255, tmp );
  272. if ( ret >= 0 )
  273. strcpy( cci_usr_option, tmp );
  274. DLG_getsClose(dlg);
  275. break;
  276.  
  277. case 4:
  278. cci_call( pn );
  279. goto _RET;
  280. default:
  281. goto _RET;
  282. }
  283. }
  284.  
  285. _RET:
  286. MNU_close(mnu);
  287. MNU_free(obj);
  288. return ((0));
  289. }
  290. # 11 "edi.c"
  291. char *EdiTbl_metakey[26] =
  292. {
  293. "$swave(note,cmd,len,Tn,wn,&,x,sp,ep,sin,amp,ang,spd,amp,sub)",
  294. "$cho(note,len,n,x,sp,ep)",
  295. "continue",
  296. "#define\\t",
  297. "#endif",
  298. "fprintf(\x22",
  299. "fgets(buf,len,fp);",
  300. ".mmltype\\tfb386\\n.fm\\t\\t\\tfmtone2\\n.pcm\\t\\tensam01\\n",
  301. "#include\\t",
  302. "#ifdef\\n#\\tdefine\\tEXT\\n#else\\n#\\tdefine\\tEXT\\textern\\n#endif\\n",
  303. "iskanji\x28",
  304.  
  305.  
  306.  
  307. "/*************************************************************************\\n*\\n*************************************************************************/\\n",
  308.  
  309. "void\\tmain(int argc,char *argv[])\\n{\\t",
  310. "NORMAL",
  311. "if ( (fp = fopen(filename,\x22rb\x22))==NULL )\\n",
  312. "printf(\x22",
  313. "exit();",
  314. "return",
  315. "$slide(note,cmd,n,&,x,sp,ep)",
  316. "typedef",
  317. "unsigned",
  318. "$vib(note,len,n,sin,sp,a,spd,ang)",
  319. "$wave(note,cmd,n,&,sin,sp,a,spd,ang)",
  320. "FALSE",
  321. "TRUE",
  322. "register"
  323. };
  324. # 49 "edi.c"
  325. int EdiUsr_sysInit()
  326. {
  327. int i;
  328.  
  329. EdiHistFlag = (1);
  330. for ( i = 0; i < 26; ++i )
  331. EdiMetaKeySet( 'A'+i, EdiTbl_metakey[i]);
  332.  
  333.  
  334. TxdSetSearchPattern("NIFTY TITLE", "[0-9]..../[0-9].... ........  .* .*\\|[0-9]../[0-9]..   ...[0-9]....  .* .*" );
  335. TxdSetSearchPattern("C FUNCTION" , "^[A-Za-z_].*[ \\t]*[a-zA-Z_].*(.*)" );
  336. TxdSetSearchPattern("TITLE" ,
  337. "^[ \\t]*[★☆●○◎■□◆◇・§]\\|^[ \\t]*[((【《][ 0-90-9]*[))】》]" );
  338. TxdSetSearchPattern("#ifdef~else~endif" ,
  339. "^#[ \\t]*if\\|^#[ \\t]*else\\|^#[ \\t]*endif" );
  340. return ((0));
  341. }
  342.  
  343. int EdiUsr_sysTerm()
  344. {
  345. return ((0));
  346. }
  347. # 76 "edi.c"
  348. int EdiUsr_guideMsg()
  349. {
  350. int y, x1,y1,x2,y2;
  351.  
  352. x1 = EdiFr[0];
  353. y1 = EdiFr[1];
  354. x2 = EdiFr[2];
  355. y2 = y1 + 14*2 - 1;
  356.  
  357. EdiFr[1] = y2 + 1;
  358.  
  359. DSP_writePage(0);
  360. DSP_boxf(x1,y1,x2,y2,0,1);
  361. y = y1 + 1;
  362. DSP_putf12(x1,y,14,1,
  363. " ^Y:行削除 ^T:左削除 ^U:右削除  ^A:1単語戻る ^F:1単語進む  ^W:1行上 ^Z:1行下  ^R:1頁上 ^C:1頁下 ");
  364. y += 14;
  365. DSP_putf12(x1,y,14,1,
  366. " ^B:UNDO ^~B:REDO ^O:TAB・改行表\\示切替 ^Q:拡張1 ^K:拡張2 ^P:ポケット ^L:行削除バッファ・ペースト ^J・G:ガイド・オフ");
  367.  
  368. return ((0));
  369. }
  370. # 105 "edi.c"
  371. int EdiUsr_openFunc( char *edi )
  372. {
  373. char *txd;
  374. # 118 "edi.c"
  375. txd = EdiGetTxdPtr(edi);
  376. TXD_cstSetKey( txd, (0x04)|(0x10)|0x4800 , (241), 0, "dup_line    行複写");
  377. TXD_cstSetKey( txd, (0x10)|0x1D00, (241), 0, "template    テンプレート");
  378. TXD_cstSetKey( txd, (0x04)|(0x10)|0x2100 , (241), 0, "getxt_searchPattern    検索パターンの取得");
  379.  
  380. TXD_cstSetPfxKey( txd, (0x10)|0x1100 , 0x1200, (241), 0, "word_help    キーワード説明");
  381. TXD_cstSetPfxKey( txd, (0x10)|0x2500 , 0x1200, (241), 0, "cut_word        1単語選択");
  382. TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x2400 , 0x1700, (241), 0, "undo_info    UNDO/REDO情報の表\\示");
  383. TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x2400 , 0x2C00, (241), 0, "clear_undo_buffer    撤回用バッファの削除");
  384. TXD_cstSetPfxKey( txd, (0x10)|0x2500 , (0x04)|0x1400,
  385. (241), 0, "auto_rect_edit    罫線内の矩形編集");
  386.  
  387. TXD_cstSetPfxKey( txd, (0x10)|0x1100 , 0x1200, (241), 0, "pg_help        プログラム・ヘルパ");
  388. # 134 "edi.c"
  389. TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x3000 , 0x1500, (241), 0, "mml_toneGen    mml generate");
  390. # 153 "edi.c"
  391. return ((0));
  392.  
  393.  
  394. }
  395. # 162 "edi.c"
  396. int EdiUsr_saveFunc( char *edi, char *fn )
  397. {
  398. return ((0));
  399. }
  400. # 171 "edi.c"
  401. int EdiUsr_quitFunc( char *edi )
  402. {
  403. return ((0));
  404. }
  405. # 180 "edi.c"
  406. int ediUsr_evtFunc( int evtNo, char *sbj )
  407. {
  408. return EDI_cmdJump( GetEvtSbjPtr(sbj), evtNo );
  409. }
  410. # 189 "edi.c"
  411. int EdiUsr_setPathname( char *edi, char *pn )
  412. {
  413. return ((0));
  414. }
  415.  
  416. int EDI_menu_1( char *edi, int x, int y )
  417. {
  418. int ret;
  419. char *mnu;
  420. char *obj;
  421. char *func;
  422.  
  423. func = "ediUsr_evtFunc";
  424. obj = MNU_alloc(11);
  425.  
  426. MNU_setObj(obj, 0, (2), 'O', "File Open" , 0, (1101) ,func, edi );
  427. MNU_setObj(obj, 1, (2), 'C', "File Close" , 0, (1102) ,func, edi );
  428. MNU_setObj(obj, 2, (0), 0, 0 , 0, 0, 0, 0);
  429. MNU_setObj(obj, 3, (2), 'W', "Write file" , 0, (1104) ,func, edi );
  430. MNU_setObj(obj, 4, (2), 'R', "Read file" , 0, (1103) ,func, edi );
  431. MNU_setObj(obj, 5, (2), 'U', "Update file" , 0, (1105) ,func, edi );
  432. MNU_setObj(obj, 6, (2), 'F', "Change Filename", 0, (1106) ,func, edi );
  433. MNU_setObj(obj, 7, (2), 'E', "Edit original" , 0, (1107),func, edi );
  434. MNU_setObj(obj, 8, (0), 0, 0 , 0, 0, 0, 0);
  435. MNU_setObj(obj, 9, (2), 'P', "UPdate all" , 0, (1110) ,func, edi );
  436. MNU_setObj(obj,10, (2), 'N', "New window" , 0, (1108) ,func, edi );
  437. mnu = MNU_open( x, y, (1), obj, "MENU1 (FILE)" );
  438. # 231 "edi.c"
  439. ret = MNU_start ( mnu );
  440. MNU_close(mnu);
  441. MNU_free(obj);
  442.  
  443. return (ret);
  444. }
  445. # 242 "edi.c"
  446. int edi_evt_jump( int evtNo, char *sbj )
  447. {
  448. char *edi;
  449. char *txd;
  450. char *dlg;
  451. int ret, ln;
  452. char buf[16];
  453.  
  454. edi = GetEvtSbjPtr(sbj);
  455. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  456.  
  457. "Input line number ?"
  458. # 257 "edi.c"
  459. );
  460. DLG_getsSetTitle( dlg, "JUMP" );
  461. buf[0] = '\0';
  462. ret = DLG_getsStart( dlg, 15, buf );
  463. if ( ret > 0 && (ln = atoi(buf)) > 0 )
  464. {
  465. txd = EdiGetTxdPtr(edi);
  466. TXD_jumpLine( txd, ln - 1 );
  467. }
  468. DLG_getsClose(dlg);
  469. return (0);
  470. }
  471. # 274 "edi.c"
  472. int _ediSetRplPtn( int evtNo, char *sbj )
  473. {
  474. char *edi;
  475. char *txd;
  476. char buf[256];
  477.  
  478. edi = GetEvtSbjPtr(sbj);
  479. txd = EdiGetTxdPtr(edi);
  480. memset( buf, 0, 256);
  481. if ( TXD_getCutBuf(txd,buf,256) >= 0 )
  482. TXD_setReplacePtn( txd, buf );
  483.  
  484. return (evtNo);
  485. }
  486. # 293 "edi.c"
  487. int _ediSetRplStr( int evtNo, char *sbj )
  488. {
  489. char *edi;
  490. char *txd;
  491. char buf[256];
  492.  
  493. edi = GetEvtSbjPtr(sbj);
  494. txd = EdiGetTxdPtr(edi);
  495. memset( buf, 0, 256);
  496. if ( TXD_getCutBuf(txd,buf,256) >= 0 )
  497. TXD_setReplaceStr( txd, buf );
  498.  
  499. return (evtNo);
  500. }
  501. # 312 "edi.c"
  502. int _ediSetSearch( int evtNo, char *sbj )
  503. {
  504. char *edi;
  505. char *txd;
  506. int len;
  507. char buf[256];
  508.  
  509. edi = GetEvtSbjPtr(sbj);
  510. txd = EdiGetTxdPtr(edi);
  511. if ( (len = TXD_getCutBuf(txd,buf,256)) >= 0 )
  512. TXD_setSearchPtn( txd, buf, len );
  513.  
  514. return (evtNo);
  515. }
  516. # 331 "edi.c"
  517. int EDI_menu_2( char *edi, int x, int y )
  518. {
  519. int ret;
  520. char *mnu;
  521. char *obj;
  522.  
  523. obj = MNU_alloc(13);
  524.  
  525. MNU_setObj(obj, 0, (2), 'F', "Find & jump", 0, (184) , 0, edi );
  526. MNU_setObj(obj, 1, (2), 'S', "Search", 0, (180) , 0, edi );
  527. MNU_setObj(obj, 2, (2), 'R', "Replace", 0, (190) , 0, edi );
  528. MNU_setObj(obj, 3, (2), 'A', "Multi replace All", 0, (191) , 0, edi );
  529. MNU_setObj(obj, 4, (2), '1', "Set repalce pattern", 0, 0, "_ediSetRplPtn", edi );
  530. MNU_setObj(obj, 5, (2), '2', "Set repalce strings", 0, 0, "_ediSetRplStr", edi );
  531. MNU_setObj(obj, 6, (2), '3', "Set search pattern", 0, 0, "_ediSetSearch", edi );
  532. MNU_setObj(obj, 7, (0), 0, 0, 0, 0, 0, 0);
  533. MNU_setObj(obj, 8, (2), 'J', "Jump", 0, 0, "edi_evt_jump" , edi );
  534. MNU_setObj(obj, 9, (2), 'T', "Top of text", 0, (97) , 0, edi );
  535. MNU_setObj(obj,10, (2), 'B', "Bottom of text", 0, (98) , 0, edi );
  536. MNU_setObj(obj,11, (2), 'L', "Last touch", 0, (99) , 0, edi );
  537. MNU_setObj(obj,12, (2), 'M', "Mark", 0, (1201) , 0, edi );
  538. mnu = MNU_open( x, y, (1), obj, "MENU2 (EDIT)" );
  539. # 370 "edi.c"
  540. ret = MNU_start ( mnu );
  541. MNU_close(mnu);
  542. MNU_free(obj);
  543.  
  544. if ( ret > 0 )
  545. return EDI_cmdJump(edi,ret);
  546. else
  547. return (ret);
  548. }
  549. # 384 "edi.c"
  550. int EDI_menu_3( char *edi, int x, int y )
  551. {
  552. int ret;
  553. char *mnu;
  554. char *obj;
  555. char *txd;
  556. int md;
  557. unsigned u[4];
  558. char undoMsg[80], redoMsg[80];
  559.  
  560. txd = EdiGetTxdPtr(edi);
  561.  
  562. obj = MNU_alloc(12);
  563. if ( TXD_getUndoInfo( txd, u ) == (0) && u[3] > 0 )
  564. {
  565. md = (2);
  566.  
  567. sprintf( undoMsg, "Undo (%4d)", u[3] );
  568. # 405 "edi.c"
  569. } else
  570. {
  571. md = (2) | (0x80);
  572.  
  573. strcpy( undoMsg, "Undo");
  574. # 413 "edi.c"
  575. }
  576. MNU_setObj(obj, 0, md, 'U', undoMsg , 0, (141), 0, edi );
  577.  
  578. if ( TXD_getRedoInfo( txd, u ) == (0) && u[3] > 0 )
  579. {
  580. md = (2);
  581.  
  582. sprintf( redoMsg, "Redo (%4d)", u[3] );
  583. # 424 "edi.c"
  584. } else
  585. {
  586. md = (2) | (0x80);
  587.  
  588. strcpy( redoMsg, "Redo");
  589. # 432 "edi.c"
  590. }
  591. MNU_setObj(obj, 1, md, 'R', redoMsg, 0, (142), 0, edi );
  592.  
  593. MNU_setObj(obj, 2, (0), 0, 0, 0, 0 , 0, 0);
  594.  
  595.  
  596. MNU_setObj(obj, 3, (2), '1', "Split 1 left/right", 0, (1310), 0, edi );
  597. MNU_setObj(obj, 4, (2), '2', "Split 2 up/down", 0, (1320), 0, edi );
  598. MNU_setObj(obj, 5, (0), 0, 0, 0, 0, 0, 0);
  599. MNU_setObj(obj, 6, (2), 'P', "Print CUT-BUFFER", 0, (1304), 0, edi );
  600. MNU_setObj(obj, 7, (2), 'T', "Text printout", 0, (1330) , 0, edi );
  601. MNU_setObj(obj, 8, (0), 0, 0, 0, 0, 0, 0);
  602. MNU_setObj(obj, 9, (2), 'C', "Calculator", 0, (3041), 0, edi );
  603. MNU_setObj(obj,10, (2), 'A', "Ascii code list", 0, (1301), 0, edi );
  604. MNU_setObj(obj,11, (2), 'K', "Kanji code list", 0, (1302), 0, edi );
  605. mnu = MNU_open( x, y, (1), obj, "MENU3 (UTILITY)" );
  606. # 461 "edi.c"
  607. ret = MNU_start ( mnu );
  608. MNU_close(mnu);
  609. MNU_free(obj);
  610.  
  611. if ( ret > 0 )
  612. return EDI_cmdJump(edi,ret);
  613. else
  614. return (ret);
  615. }
  616. # 475 "edi.c"
  617. int _ediSaveSetup( int evtNo, char *sbj )
  618. {
  619. char *edi;
  620. char *txd;
  621. char *fdl;
  622. int ret;
  623. char tmp[128], *fn;
  624.  
  625. edi = GetEvtSbjPtr(sbj);
  626. txd = EdiGetTxdPtr(edi);
  627.  
  628. if ( (fdl = FDL_open(0)) == 0 )
  629. return ((-1));
  630. FDL_set_title( fdl,"SAVE SETUP");
  631. FDL_set_wildcard( fdl, "*.kst" );
  632. ret = FDL_start(fdl);
  633. fn = FDL_get_filename(fdl);
  634. if ( ret != (0) || strlen(fn) == 0 )
  635. {
  636. FDL_close(fdl);
  637. return ((-1));
  638. }
  639. FS_appendSnam( tmp, fn, ".kst" );
  640. EDI_saveKeySetup(edi,tmp);
  641. FDL_close(fdl);
  642.  
  643. return ((0));
  644. }
  645.  
  646.  
  647. int _ediLoadSetup( int evtNo, char *sbj )
  648. {
  649. char *edi;
  650. char *txd;
  651. char *fdl;
  652. int ret;
  653. char tmp[128], *fn;
  654.  
  655. edi = GetEvtSbjPtr(sbj);
  656. txd = EdiGetTxdPtr(edi);
  657.  
  658. if ( (fdl = FDL_open(0)) == 0 )
  659. return ((-1));
  660. FDL_set_title( fdl,"LOAD SETUP");
  661. FDL_set_wildcard( fdl, "*.kst" );
  662. ret = FDL_start(fdl);
  663. fn = FDL_get_filename(fdl);
  664. if ( ret != (0) || strlen(fn) == 0 )
  665. {
  666. FDL_close(fdl);
  667. return ((-1));
  668. }
  669. FS_appendSnam( tmp, fn, ".kst" );
  670. EDI_loadKeySetup(edi,tmp);
  671. FDL_close(fdl);
  672.  
  673. return ((0));
  674. }
  675.  
  676. int _ediCallCCI( int evtNo, char *sbj )
  677. {
  678. char *edi;
  679. char *pn;
  680.  
  681. edi = GetEvtSbjPtr(sbj);
  682. pn = ((edi)+(40));
  683. cci_call_menu(pn);
  684.  
  685. return ((0));
  686. }
  687.  
  688. int _ediCallHE386( int evtNo, char *sbj )
  689. {
  690. char *edi;
  691. char *pn;
  692.  
  693. edi = GetEvtSbjPtr(sbj);
  694. pn = ((edi)+(40));
  695. he386_menu( pn );
  696.  
  697. return ((0));
  698. }
  699.  
  700. int _ediCallGSPLAY( int evtNo, char *sbj )
  701. {
  702. AplDtaInit();
  703. AplDtaSetStr( "$MainArg", "gsplay -wrdplay H:/USR/SND/JCOMP/jcomp.exp");
  704. AplPclExec( "GSPLAY.EXP", 7 );
  705.  
  706. return ((0));
  707. }
  708.  
  709. int _ediCallExpPath( int evtNo, char *sbj )
  710. {
  711. CCI_setExpSearchPath();
  712. return ((0));
  713. }
  714. # 577 "edi.c"
  715. int EDI_menu_4( char *edi, int x, int y )
  716. {
  717. int ret;
  718. char *mnu;
  719. char *obj;
  720.  
  721. obj = MNU_alloc(10);
  722.  
  723. MNU_setObj(obj, 0, (2), 'A', "Alphabet buffer" , 0, (3000) , 0, edi );
  724. MNU_setObj(obj, 1, (2), 'K', "Key customize" , 0, (2032) , 0, edi );
  725. MNU_setObj(obj, 2, (2), 'S', "Save key setup data", 0, 0, "_ediSaveSetup" , edi );
  726. MNU_setObj(obj, 3, (2), 'L', "Load key setup data", 0, 0, "_ediLoadSetup" , edi );
  727. MNU_setObj(obj, 4, (0), 0 , 0 , 0, 0, 0 , 0);
  728. MNU_setObj(obj, 5, (2), 'C', "CCI" , 0, 0, "_ediCallCCI" , edi );
  729. MNU_setObj(obj, 6, (2), 'M', "MML Compile" , 0, 0, "_ediCallHE386" , edi );
  730. MNU_setObj(obj, 7, (2), 'G', "GSPLAY" , 0, 0, "_ediCallGSPLAY" , edi );
  731. MNU_setObj(obj, 8, (0), 0 , 0 , 0, 0, 0 , 0);
  732. MNU_setObj(obj, 9, (2), 'P', "EXP search path" , 0, 0, "_ediCallExpPath", edi );
  733. mnu = MNU_open( x, y, (1), obj, "MENU4 (OTHER)" );
  734. # 610 "edi.c"
  735. ret = MNU_start ( mnu );
  736. MNU_close(mnu);
  737. MNU_free(obj);
  738.  
  739. if ( ret > 0 )
  740. return EDI_cmdJump(edi,ret);
  741. else
  742. return (ret);
  743. }
  744.  
  745.  
  746. int EDI_menu_5( char *edi ) { return ((-1)); }
  747. int EDI_menu_6( char *edi ) { return ((-1)); }
  748. int EDI_menu_7( char *edi ) { return ((-1)); }
  749. int EDI_menu_8( char *edi ) { return ((-1)); }
  750.  
  751. int _ediSaveColTbl( int evtNo, char *sbj )
  752. {
  753. char *edi;
  754. char *txd;
  755.  
  756. edi = GetEvtSbjPtr(sbj);
  757. txd = EdiGetTxdPtr(edi);
  758. TxdUsr_saveColTbl( txd );
  759. return ((0));
  760. }
  761. # 641 "edi.c"
  762. int EDI_setup2( char *edi )
  763. {
  764. int ret;
  765. char *mnu;
  766. char *obj;
  767.  
  768. obj = MNU_alloc(2);
  769.  
  770. MNU_setObj(obj, 0, (2), 'C' , "Change color table", 0, (1910) , 0 , edi );
  771. MNU_setObj(obj, 1, (2), 'S' , "Save color table" , 0, 0 , "_ediSaveColTbl", edi );
  772. mnu = MNU_open( (0x10020), (0x10020),
  773. (1), obj, "SETUP2" );
  774. # 660 "edi.c"
  775. ret = MNU_start( mnu );
  776. MNU_close(mnu);
  777. MNU_free(obj);
  778.  
  779. if ( ret > 0 )
  780. return EDI_cmdJump(edi,ret);
  781. else
  782. return (ret);
  783. }
  784. # 674 "edi.c"
  785. int TxdUsr_cut_word(char *txd )
  786. {
  787. if ( _getByte((txd)+(682)) != 0 )
  788. return (0);
  789. TXD_cmdJump( txd, (161) );
  790. TXD_cmdJump( txd, (95) );
  791. TXD_cmdJump( txd, (163) );
  792. return ((0));
  793. }
  794. # 688 "edi.c"
  795. int TxdUsr_dup_line( char *txd )
  796. {
  797. if ( _getByte((txd)+(682)) != 0 )
  798. return (0);
  799. TXD_cmdJump( txd, (85) );
  800. TXD_cmdJump( txd, (171) );
  801. TXD_cmdJump( txd, (82) );
  802. TXD_cmdJump( txd, (172));
  803.  
  804. return ((0));
  805. }
  806.  
  807. int _txd_printUndoInf( char *dlg, int *ubuf )
  808. {
  809. DLG_msgPrintf(dlg,"  最大バッファサイズ %8d bytes\r\n", ubuf[0] );
  810. DLG_msgPrintf(dlg,"  使用バッファサイズ %8d bytes\r\n", ubuf[1] );
  811. DLG_msgPrintf(dlg,"  最大回数           %8d 回\r\n" , ubuf[2] );
  812. DLG_msgPrintf(dlg,"  現在有効数         %8d 回" , ubuf[3] );
  813. }
  814. # 712 "edi.c"
  815. int TxdUsr_undo_info( char *txd )
  816. {
  817. char *dlg;
  818. int ch, x, y;
  819. int u[4];
  820. unsigned ec;
  821.  
  822. DSP_writePage(1);
  823. dlg = DLG_msgOpen( (0x10020),(0x10020),
  824. 8*38,16*10,1,3,(0x1000|(((12)&15)<<4)|((7)&15)),
  825. "UNDO/REDO BUFFER INFORMATION");
  826. if ( dlg == 0 )
  827. return ((-1));
  828. DLG_msgClear( dlg, -1 );
  829.  
  830. if ( TXD_getUndoInfo( txd, u ) == (0) )
  831. {
  832. DLG_msgPuts( dlg,"- UNDO -\r\n" );
  833. _txd_printUndoInf( dlg, u );
  834. if ( TXD_getRedoInfo( txd, u ) == (0) )
  835. {
  836. DLG_msgPuts( dlg,"\r\n- REDO -\r\n" );
  837. _txd_printUndoInf( dlg, u );
  838. } else
  839. {
  840. DLG_msgPuts(dlg,"\r\n\n REDO機能\は使用されていません。\r\n" );
  841. }
  842. } else
  843. {
  844. DLG_msgPuts(dlg,"\r\n UNDO機能\は使用されていません。\r\n" );
  845. }
  846.  
  847. while ( 1 )
  848. {
  849. ch = EVT_getkey(&ec);
  850. if ( ch != 0xFFFF || EVT_mos_pget(&x,&y) )
  851. break;
  852. EVT_idl();
  853. }
  854. DLG_msgClose(dlg);
  855. EVT_mos_waitBO();
  856.  
  857. return ((0));
  858. }
  859. # 761 "edi.c"
  860. int TxdUsr_clear_undo_buffer( char *txd )
  861. {
  862. TXD_undo_freeAll( txd );
  863. return ((0));
  864. }
  865. # 771 "edi.c"
  866. int _txd_isRectCha(int ch)
  867. {
  868. switch ( ch )
  869. {
  870. case 0x84A1:
  871. case 0x84A4:
  872. case 0x84A5:
  873. case 0x84A3:
  874. case 0x84A2:
  875. case 0x84A7:
  876. case 0x84A8:
  877. case 0x84A6:
  878. case 0x84A9:
  879. return (0);
  880. case 0x84A0:
  881. return (1);
  882. case 0x849F:
  883. return (2);
  884.  
  885. case 0x84AC:
  886. case 0x84AD:
  887. case 0x84AE:
  888. case 0x84AF:
  889. case 0x84B0:
  890. case 0x84B1:
  891. case 0x84B2:
  892. case 0x84B3:
  893. case 0x84B4:
  894. return (0);
  895. case 0x84AB:
  896. return (1);
  897. case 0x84AA:
  898. return (2);
  899.  
  900. case 0x84CC:
  901. case 0x84CD:
  902. case 0x84CE:
  903. case 0x84CF:
  904. case 0x84D0:
  905. case 0x84D1:
  906. case 0x84D2:
  907. case 0x84D3:
  908. case 0x84D4:
  909. return (0);
  910. case 0x84CB:
  911. return (1);
  912. case 0x84CA:
  913. return (2);
  914.  
  915. default:
  916. return (-1);
  917. }
  918. }
  919. # 829 "edi.c"
  920. int TxdUsr_auto_rect_edit( char *txd )
  921. {
  922. int saveLnL;
  923. int saveOfs;
  924. int typ, x, y;
  925. int x1, y1, x2, y2;
  926. int pos1LnL, pos1Ofs;
  927. int pos2LnL, pos2Ofs;
  928.  
  929.  
  930. saveLnL = _getDword((txd)+(652));
  931. saveOfs = _getDword((txd)+(664));
  932. if ( saveLnL == 0 || _getDword((txd)+(648)) == 0 || _getDword((txd)+(672)) == 0 )
  933. return ((0));
  934. if ( _txd_isRectCha(TXD_getch(txd)) >= 0 )
  935. return ((0));
  936.  
  937.  
  938. for(;;)
  939. {
  940. TXD_cmdJump(txd,(83));
  941. typ = _txd_isRectCha(TXD_getch(txd));
  942. if ( typ == (1) )
  943. {
  944. x1 = _getDword((txd)+(672));
  945. break;
  946. } else if ( _getDword((txd)+(672)) == 0 )
  947. goto _ERR;
  948. }
  949.  
  950.  
  951. for(;;)
  952. {
  953. TXD_cmdJump(txd,(81));
  954. x = _getDword((txd)+(672));
  955. if ( x != x1 )
  956. goto _ERR;
  957. typ = _txd_isRectCha(TXD_getch(txd));
  958. if ( typ == (0) )
  959. {
  960. y1 = _getDword((txd)+(656));
  961. break;
  962. } else if ( typ != (1) )
  963. goto _ERR;
  964. }
  965.  
  966. pos1LnL = _getDword((txd)+(652));
  967. pos1Ofs = _getDword((txd)+(664));
  968.  
  969.  
  970. for(;;)
  971. {
  972. TXD_cmdJump(txd,(82));
  973. x = _getDword((txd)+(672));
  974. if ( x != x1 )
  975. goto _ERR;
  976. typ = _txd_isRectCha(TXD_getch(txd));
  977. if ( typ == (0) )
  978. {
  979. y2 = _getDword((txd)+(656));
  980. break;
  981. } else if ( typ != (1) )
  982. goto _ERR;
  983. }
  984.  
  985.  
  986. for(;;)
  987. {
  988. TXD_cmdJump(txd,(84));
  989. y = _getDword((txd)+(656));
  990. if ( y != y2 )
  991. goto _ERR;
  992. typ = _txd_isRectCha(TXD_getch(txd));
  993. if ( typ == (0) )
  994. {
  995. x2 = _getDword((txd)+(672));
  996. break;
  997. } else if ( typ != (2) )
  998. goto _ERR;
  999. }
  1000.  
  1001. if ( x1 >= x2 || y1 >= y2 )
  1002. goto _ERR;
  1003.  
  1004. pos2LnL = _getDword((txd)+(652));
  1005. pos2Ofs = _getDword((txd)+(664));
  1006.  
  1007. TXD_jumpPos( txd, pos1LnL, pos1Ofs );
  1008. TXD_cmdJump(txd,(84));
  1009. TXD_cmdJump(txd,(82));
  1010. TXD_cmdJump(txd,(231));
  1011.  
  1012. TXD_jumpPos( txd, pos2LnL, pos2Ofs );
  1013. TXD_cmdJump(txd,(81));
  1014. TXD_cmdJump(txd,(232));
  1015.  
  1016. return ((0));
  1017.  
  1018. _ERR:
  1019. TXD_jumpPos( txd, saveLnL, saveOfs );
  1020. return ((0));
  1021. }
  1022. # 940 "edi.c"
  1023. int TxdUsr_getxt_searchPattern( char *txd )
  1024. {
  1025. unsigned int curLnL, curOfs;
  1026. int ret, ch, len;
  1027. char ptn[256+4];
  1028.  
  1029.  
  1030. curLnL = _getDword((txd)+(652));
  1031. curOfs = _getDword((txd)+(664));
  1032.  
  1033. if ( (ch = TXD_getch(txd)) > 0 )
  1034. {
  1035. len = 0;
  1036. while( len < 256 )
  1037. {
  1038. ch = TXD_getch(txd);
  1039. TXD_cmdJump( txd, (84) );
  1040. if ( (ch & 0xFF) < 0x20 )
  1041. break;
  1042. if ( ch < 256 )
  1043. {
  1044. if ( isdigit(ch) || isalpha(ch) || ch == '_' )
  1045. ptn[len++] = ch;
  1046. else
  1047. break;
  1048. } else
  1049. {
  1050. ptn[len++] = (ch>>8) & 0xFF;
  1051. ptn[len++] = ch & 0xFF;
  1052. }
  1053. }
  1054. ptn[len] = '\0';
  1055. TXD_jumpPos( txd, curLnL, curOfs );
  1056. if ( len == 0 )
  1057. return ((0));
  1058.  
  1059. if ( TXD_setSearchPtn( txd, ptn, len ) == (0) )
  1060. {
  1061. DSP_writePage(1);
  1062. DLG_tmpMsgTime( (0x10020), (0x10020),
  1063. 1, 3, (0x1000|(((5)&15)<<4)|((7)&15)),
  1064. 2, "Sear search pattern \n %s ", ptn );
  1065. }
  1066. }
  1067. return ((0));
  1068. }
  1069. # 991 "edi.c"
  1070. int TxdUsr_form_1( char *txd )
  1071. {
  1072. char *edi;
  1073.  
  1074. edi = _getDword((txd)+(84));
  1075. _setByte((edi)+(32),(0));
  1076.  
  1077. _setByte((txd)+(369),(0));
  1078. _setByte((txd)+(370),(1));
  1079. _setByte((txd)+(371),(1));
  1080. _setByte((txd)+(376),(0));
  1081. _setByte((txd)+(373),(1));
  1082. _setByte((txd)+(374),(1));
  1083. _setByte((txd)+(375),(0));
  1084. _setDword((txd)+(560),(6));
  1085. _setDword((txd)+(564),(12));
  1086. _setDword((txd)+(576),(256));
  1087. _setDword((txd)+(588),(4));
  1088.  
  1089. TXD_chgSize(txd);
  1090.  
  1091. return ((0));
  1092. }
  1093. # 1019 "edi.c"
  1094. int TxdUsr_form_2( char *txd )
  1095. {
  1096. char *edi;
  1097.  
  1098. edi = _getDword((txd)+(84));
  1099. _setByte((edi)+(32),(0));
  1100.  
  1101. _setByte((txd)+(369),(1));
  1102. _setByte((txd)+(370),(0));
  1103. _setByte((txd)+(371),(1));
  1104. _setByte((txd)+(376),(1));
  1105. _setByte((txd)+(373),(1));
  1106. _setByte((txd)+(374),(1));
  1107. _setByte((txd)+(375),(0));
  1108. _setDword((txd)+(560),(8));
  1109. _setDword((txd)+(564),(16));
  1110. _setDword((txd)+(576),(38));
  1111. _setDword((txd)+(588),(2));
  1112.  
  1113. TXD_chgSize(txd);
  1114.  
  1115. return ((0));
  1116. }
  1117. # 5 "edimml.c"
  1118. int mml_tone_gen( char *txd, char *name )
  1119. {
  1120. char tmp[256];
  1121.  
  1122. TXD_setBuf( txd, 0, 2, "\r\n");
  1123.  
  1124. sprintf( tmp, "#define\tA_%s\t$TONE_MODIFY(64,64,64, 64,64, 64,64,64)\r\n", name );
  1125. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1126.  
  1127. sprintf( tmp, "#define\tF_%s\t$INSTFILTER(off:0,off:0,rnd:-1/1)\r\n", name );
  1128. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1129.  
  1130. sprintf( tmp, "#define\tT_%s\t$F_%s() $INSTMAC(  0, 40, 80, 14,100, 0, 0,12) $A_%s()\r\n", name, name, name );
  1131. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1132.  
  1133. sprintf( tmp, "#define\tD_%s\t?(delay:*0..8)\r\n", name );
  1134. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1135.  
  1136. sprintf( tmp, "#define\tO_%s\to4\r\n", name );
  1137. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1138.  
  1139. sprintf( tmp, "#define\tG_%s\tq92 ?#(gate:*-16..0)\r\n", name );
  1140. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1141.  
  1142. sprintf( tmp, "#define\tC_%s\tv100 x127 i0 m0 p0\r\n", name );
  1143. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1144.  
  1145. sprintf( tmp, "#define\t  %s\t$D_%s() $O_%s() $C_%s() $G_%s() $GenPin()\r\n", name, name, name, name, name );
  1146. TXD_setBuf( txd, 0, strlen(tmp), tmp);
  1147.  
  1148. TXD_scnFlush( txd );
  1149. return ((0));
  1150. }
  1151.  
  1152. int TxdUsr_mml_toneGen( char *txd )
  1153. {
  1154. int ret;
  1155. char *dlg;
  1156. char name[128];
  1157.  
  1158. DSP_writePage(1);
  1159. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  1160. "音色マクロ名を入力してください。");
  1161. DLG_getsSetTitle( dlg, "MML GENERATE" );
  1162. name[0] = '\0';
  1163. ret = DLG_getsStart( dlg, 127, name );
  1164. if ( ret > 0 && name[0] != '\0' )
  1165. {
  1166. mml_tone_gen( txd, name );
  1167. }
  1168. DLG_getsClose(dlg);
  1169. return (0);
  1170. }
  1171. # 5 "edipghlp.c"
  1172. char *MACROKEY_PGHELP_PATH = "ProgHelp_path";
  1173. char *_PGHELP_FN = "_index";
  1174. # 16 "edipghlp.c"
  1175. int _pgHelp_hash(char *name)
  1176. {
  1177. int hash, ch;
  1178.  
  1179. hash = 0;
  1180. while ( *name )
  1181. {
  1182. ch = (*name) & 0xFF;
  1183. hash = hash + (ch * 31);
  1184. ++name;
  1185. }
  1186. return (hash & ((16)-1));
  1187. }
  1188.  
  1189. int _pgHelp(char *name)
  1190. {
  1191. char *path, fnIndex[256], fn[256];
  1192. char *fpIndex, *fp;
  1193. int ret, hash, numfn, n, ch, i;
  1194. char *s, *p, buf[(512)];
  1195. char *fntbl, fninf[(16)];
  1196. char tag[(40)+4], func[(28)+4];
  1197.  
  1198. char fbuf[64];
  1199. long fpos;
  1200.  
  1201. int x0, y0;
  1202. char *dlg;
  1203. char *txtPtr;
  1204.  
  1205. DSP_writePage(1);
  1206. x0 = y0 = (0x10030);
  1207. txtPtr = 0;
  1208.  
  1209. hash = _pgHelp_hash(name);
  1210. if ( (path = AMAC_getName( SysMacro, MACROKEY_PGHELP_PATH)) == 0 )
  1211. {
  1212. sprintf(buf, "%sMANUAL/", AplGetStartPath() );
  1213. AMAC_setKey( SysMacro, MACROKEY_PGHELP_PATH, buf );
  1214. if ( (path = AMAC_getName( SysMacro, MACROKEY_PGHELP_PATH)) == 0 )
  1215. return ((-1));
  1216. }
  1217.  
  1218.  
  1219. sprintf( fnIndex, "%s%s.%03d", path, _PGHELP_FN, hash );
  1220. if ( (fpIndex = fopen(fnIndex,"rb")) == 0 )
  1221. {
  1222. DLG_tmpMsgTime( (0x10020), (0x10020),
  1223. 1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
  1224. 3, "  %s : \n  Can't open index file!! ", fnIndex );
  1225. return ((-1));
  1226. }
  1227.  
  1228. ret = 0;
  1229. for(;;)
  1230. {
  1231. if ( fread(tag,(40),1,fpIndex) < 1 )
  1232. {
  1233. ret = -1;
  1234. break;
  1235. }
  1236. if ( strncmp( name, tag + ((40) - (28)), (28)) == 0 )
  1237. break;
  1238. }
  1239. fclose(fpIndex);
  1240.  
  1241. if ( ret )
  1242. {
  1243. DLG_tmpMsgTime( (0x10020), (0x10020),
  1244. 1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
  1245. 3, "  %s : \n  Pattern not found!! ", name );
  1246. return ((-1));
  1247. }
  1248.  
  1249.  
  1250. sprintf( fnIndex, "%s%s.tbl", path, _PGHELP_FN );
  1251. if ( (fpIndex = fopen(fnIndex,"rb")) == 0 )
  1252. {
  1253. DLG_tmpMsgTime( (0x10020), (0x10020),
  1254. 1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
  1255. 3, "  %s : \n  Can't open index file!! ", fnIndex );
  1256. return ((-1));
  1257. }
  1258. fpos = tag[0] * (16);
  1259. fseek(fpIndex,fpos,(0));
  1260. fread(fninf,(16),1,fpIndex);
  1261. fclose(fpIndex);
  1262.  
  1263. if ( fninf[0] != tag[0] )
  1264. return ((-1));
  1265.  
  1266. sprintf(fn,"%s%s", path, fninf + 1);
  1267. if ( (fp = fopen(fn,"rb")) == 0 )
  1268. {
  1269. DLG_tmpMsgTime( (0x10020), (0x10020),
  1270. 1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
  1271. 3, "  %s : \n  Can't open manual file!! ", fn );
  1272. return ((-1));
  1273. }
  1274. fpos = _getDword(tag + 1);
  1275. fseek(fp,fpos,(0));
  1276.  
  1277.  
  1278. fgets(buf,(512),fp);
  1279. while ( fgets(buf,(512),fp) != 0 )
  1280. {
  1281. if ( buf[0] == '.' )
  1282. break;
  1283. txtPtr = DLG_txtSetLinBuf( txtPtr, 8, 80, "%s", buf );
  1284. }
  1285. fclose(fp);
  1286.  
  1287. if ( (dlg = DLG_txtOpen(x0,y0,80,20,txtPtr,0)) == 0 )
  1288. {
  1289. DLG_txtFreeLinBuf( txtPtr );
  1290. return ((-1));
  1291. }
  1292. DLG_txtSetTitle( dlg, "PROGRAM HELPER" );
  1293. DLG_txtSetGuideMsg( dlg, "Function : %s", name );
  1294. DLG_txtStart( dlg );
  1295. DLG_txtClose( dlg );
  1296. DLG_txtFreeLinBuf( txtPtr );
  1297.  
  1298. return ((0));
  1299. }
  1300. # 147 "edipghlp.c"
  1301. int TxdUsr_pg_help( char *txd )
  1302. {
  1303. int ret, ch, len;
  1304. char func[(28)+4];
  1305. unsigned int curLnL, curOfs;
  1306. char *dlg;
  1307.  
  1308. if ( _getByte((txd)+(682)) != 0 )
  1309. return (0);
  1310.  
  1311.  
  1312. curLnL = _getDword((txd)+(652));
  1313. curOfs = _getDword((txd)+(664));
  1314.  
  1315. if ( (ch = TXD_getch(txd)) > 0 && ch < 256 && (isalpha(ch) || ch == '_') )
  1316. {
  1317. len = 0;
  1318. while( len < (28) )
  1319. {
  1320. ch = TXD_getch(txd);
  1321. TXD_cmdJump( txd, (84) );
  1322. if ( isalpha(ch) || isdigit(ch) || ch == '_' )
  1323. {
  1324. func[len++] = ch;
  1325. } else
  1326. break;
  1327. }
  1328. func[len] = '\0';
  1329. TXD_jumpPos( txd, curLnL, curOfs );
  1330. if ( len == 0 )
  1331. return ((0));
  1332. } else
  1333. func[0] = '\0';
  1334.  
  1335. DSP_writePage(1);
  1336. dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
  1337. "検索パターンを入力してください。" );
  1338. DLG_getsSetTitle( dlg, "PATTERN" );
  1339. ret = DLG_getsStart( dlg, (28), func );
  1340. DLG_getsClose(dlg);
  1341. if ( ret <= 0 )
  1342. return (0);
  1343.  
  1344. _pgHelp( func );
  1345.  
  1346. return (0);
  1347. }
  1348. # 6 "editmp.c"
  1349. char *_ediTmp = 0;
  1350.  
  1351. int _ediTmpData_open()
  1352. {
  1353. char tmp[256];
  1354.  
  1355. if ( _ediTmp == 0 )
  1356. {
  1357. if ( (_ediTmp = AMAC_allocWork(0)) == 0 )
  1358. return ((-1));
  1359. sprintf( tmp,"%s%s", AplGetStartPath(), "editmp.tbl" );
  1360. AMAC_load( _ediTmp, tmp );
  1361. }
  1362. return ((0));
  1363. }
  1364. # 26 "editmp.c"
  1365. int TxdUsr_template( char *txd )
  1366. {
  1367. char word[256], tmp[4];
  1368. int ch, len;
  1369. unsigned int curLnL, curOfs, lnL;
  1370. char *s;
  1371.  
  1372. if ( _ediTmpData_open() )
  1373. return ((-1));
  1374. if ( _getByte((txd)+(682)) != 0 )
  1375. return (0);
  1376.  
  1377.  
  1378. curLnL = _getDword((txd)+(652));
  1379. if ( (curOfs = _getDword((txd)+(664))) == 0 )
  1380. return ((0));
  1381.  
  1382. TXD_cmdJump( txd, (96) );
  1383. if ( _getDword((txd)+(652)) < curLnL )
  1384. TXD_cmdJump( txd, (84) );
  1385. if ( (ch = TXD_getch(txd)) < 0 || (isalpha(ch) == 0 && ch != '_') )
  1386. {
  1387. TXD_jumpPos( txd, curLnL, curOfs );
  1388. return ((0));
  1389. }
  1390.  
  1391. len = 0;
  1392. while( len < 255 )
  1393. {
  1394. ch = TXD_getch(txd);
  1395. TXD_cmdJump( txd, (84) );
  1396. if ( isalpha(ch) || ch == '_' )
  1397. {
  1398. word[len++] = ch;
  1399. } else
  1400. break;
  1401. }
  1402. word[len] = '\0';
  1403. TXD_jumpPos( txd, curLnL, curOfs );
  1404. if ( len == 0 )
  1405. return ((0));
  1406.  
  1407. if ( (s = AMAC_getName( _ediTmp, word )) == 0 )
  1408. return ((0));
  1409.  
  1410. while ( *s )
  1411. {
  1412. ch = (*s) & 0xFF;
  1413. ++s;
  1414. switch ( ch )
  1415. {
  1416. case '\x02':
  1417. TXD_cmdJump( txd, (85) );
  1418. break;
  1419. case '\x06':
  1420. TXD_cmdJump( txd, (86) );
  1421. break;
  1422. case '\x08':
  1423. TXD_cmdJump( txd, (122) );
  1424. break;
  1425. case '\n':
  1426. TXD_cmdJump( txd, (42) );
  1427. break;
  1428. case '\x0B':
  1429. TXD_jumpPos( txd, curLnL, curOfs );
  1430. break;
  1431. case '\x1C':
  1432. TXD_cmdJump( txd, (84) );
  1433. break;
  1434. case '\x1D':
  1435. TXD_cmdJump( txd, (83) );
  1436. break;
  1437. case '\x1E':
  1438. TXD_cmdJump( txd, (81) );
  1439. break;
  1440. case '\x1F':
  1441. TXD_cmdJump( txd, (82) );
  1442. break;
  1443. case '\x7F':
  1444. TXD_cmdJump( txd, (121) );
  1445. break;
  1446.  
  1447. default:
  1448. if ( iskanji(ch) && iskanji2(*s) )
  1449. {
  1450. tmp[0] = ch;
  1451. tmp[1] = *s; ++s;
  1452. tmp[2] = '\0';
  1453. TXD_setBuf( txd, 0, 2, tmp );
  1454. } else
  1455. {
  1456. tmp[0] = ch;
  1457. tmp[1] = '\0';
  1458. TXD_setBuf( txd, 0, 1, tmp );
  1459. }
  1460. break;
  1461. }
  1462. }
  1463. return ((0));
  1464. }
  1465. # 22 "main.c"
  1466. char *WildCardTbl[4] =
  1467. {
  1468. "*.*" ,
  1469. "*.doc *.txt *.man",
  1470. "*.asm *.c   *.cci *.h",
  1471. "*.mml *.h   *.def"
  1472. };
  1473. # 50 "main.c"
  1474. int EDIA_start()
  1475. {
  1476. int i;
  1477. char tmp[256];
  1478.  
  1479.  
  1480. if ( (SysMacro = AMAC_allocWork(0)) != 0 )
  1481. {
  1482. sprintf( tmp, "%s%s", AplGetStartPath(), SYSMACRO_FN );
  1483. AMAC_load( SysMacro, tmp );
  1484. GetAsciiTime( tmp, time(0) );
  1485. AMAC_setKey( SysMacro, "Startup_time", tmp );
  1486. }
  1487.  
  1488.  
  1489. for ( i = 0 ; i < 4; ++i )
  1490. FdlSetWildCardList( WildCardTbl[i] );
  1491. SetExpSearchPath();
  1492. # 73 "main.c"
  1493. return (0);
  1494. }
  1495. # 80 "main.c"
  1496. int EDIA_term()
  1497. {
  1498. char tmp[256];
  1499.  
  1500. if ( SysMacro )
  1501. {
  1502. GetAsciiTime( tmp, time(0) );
  1503. AMAC_setKey( SysMacro, "Exit_time", tmp );
  1504.  
  1505. sprintf( tmp, "%s%s", AplGetStartPath(), SYSMACRO_FN );
  1506. AMAC_save( SysMacro, tmp, "System macro" );
  1507. }
  1508. return (0);
  1509. }
  1510.