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

  1. # 1 "main.c"
  2.  
  3. # 1 "main.c"
  4. # 2 "midilib.c"
  5. char _OUT_OF_STRING_SPACE[24] = "Out of string space!";
  6. # 8 "midilib.c"
  7. int make_sysEx( char *buf, unsigned int siz, unsigned char *dat )
  8. {
  9. int i, len;
  10. char *p, tmp[8];
  11.  
  12. p = buf;
  13. strcpy( p, "@EXCL(");
  14. p += 6;
  15. for ( i = 1; i < siz - 1; ++i )
  16. {
  17. sprintf(tmp, "%d", dat[i] & 0xFF );
  18. strcpy(p,tmp); p += strlen(tmp);
  19. if ( i < siz - 2 )
  20. {
  21. *p = ',';
  22. ++p;
  23. }
  24. }
  25. *p = ')'; ++p;
  26. *p = '\0';
  27.  
  28. return (strlen(buf));
  29. }
  30. # 2 "gm.c"
  31. char *GmFuncTbl[2] =
  32. {
  33. "exGM_systemOn" ,
  34. (0)
  35. };
  36.  
  37. int GM_macroInit( char *sqr )
  38. {
  39. int i;
  40.  
  41. for ( i = 0; GmFuncTbl[i] != (0); ++i )
  42. MMac_extDefine( sqr, GmFuncTbl[i], GmFuncTbl[i], (4), (0) );
  43. MMac_extDefine( sqr, "_GM_MACRO_DEFINED", "", (0) , (0) );
  44. return ((0));
  45. }
  46. # 25 "gm.c"
  47. int exGM_systemOn( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  48. {
  49. char dat[32], tmp[256];
  50. unsigned siz;
  51.  
  52. dat[0] = 0xF0;
  53. dat[1] = 0x7E;
  54. dat[2] = 0x7F;
  55. dat[3] = 0x09;
  56. dat[4] = 0x01;
  57. dat[5] = 0xF7;
  58. siz = 6;
  59. siz = make_sysEx(tmp, siz, dat );
  60. if ( siz >= bufSiz )
  61. {
  62. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  63. return ((-1));
  64. }
  65. memcpy( buf, tmp, siz );
  66. return (siz);
  67. }
  68. # 8 "gs.c"
  69. int GsDeviceID = 16;
  70.  
  71. char *GsFuncTbl[32] =
  72. {
  73. "GS_setDeviceNumber" ,
  74. "sysEx_gs" ,
  75. "sysEx_sc55" ,
  76.  
  77. "exGs_reset" ,
  78. "exGs_masterVolume" ,
  79. "exGs_partialReserve",
  80. "exGs_reverbMacro" ,
  81. "exGs_reverbPara" ,
  82. "exGs_chorusMacro" ,
  83. "exGs_chorusPara" ,
  84.  
  85. "exGs_rxChannel" ,
  86. "exGs_assignMode" ,
  87. "exGs_rymMap" ,
  88.  
  89. "exGs_mod" ,
  90. "exGs_bend" ,
  91. "exGs_caf" ,
  92. "exGs_paf" ,
  93. "exGs_cc1number" ,
  94. "exGs_cc2number" ,
  95. "exGs_cc1control" ,
  96. "exGs_cc2control" ,
  97.  
  98. "exSC55_msgSet" ,
  99. "exSC55_dotSet" ,
  100. "SC55_initDotBuffer" ,
  101. "SC55_setDotBuffer" ,
  102. "exSC55_dotBuffer" ,
  103.  
  104. (0)
  105. };
  106.  
  107. int GS_macroInit( char *sqr )
  108. {
  109. int i;
  110.  
  111. GsDeviceID = 17 - 1;
  112. for ( i = 0; GsFuncTbl[i] != (0); ++i )
  113. MMac_extDefine( sqr, GsFuncTbl[i], GsFuncTbl[i], (4), (0) );
  114. MMac_extDefine( sqr, "_GS_MACRO_DEFINED", "", (0) , (0) );
  115. return ((0));
  116. }
  117. # 64 "gs.c"
  118. int GS_setDeviceNumber( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  119. {
  120. int n;
  121.  
  122. if ( argc < 1 )
  123. {
  124. _ERR: MM_setErrMsg(sqr,"[GS] device number error!");
  125. return ((-1));
  126. }
  127. n = atoi(argv[0]) - 1;
  128. if ( n < 1 || n > 32 )
  129. goto _ERR;
  130. GsDeviceID = n - 1;
  131. return (0);
  132. }
  133. # 84 "gs.c"
  134. int roland_excl( unsigned char *buf, int deviceID, int modelID, unsigned int adr, unsigned int siz, unsigned char *dat )
  135. {
  136. int i, sum;
  137.  
  138. buf[0] = 0xF0;
  139. buf[1] = 0x41;
  140. buf[2] = deviceID;
  141. buf[3] = modelID;
  142. buf[4] = 0x12;
  143. buf[5] = (adr>>16); buf[6] = (adr>>8); buf[7] = (adr);
  144. sum = buf[5] + buf[6] + buf[7];
  145. for ( i = 0; i < siz; ++i )
  146. {
  147. buf[8+i] = dat[i];
  148. sum += dat[i];
  149. }
  150. sum = (0x80 - (sum & 0x7F)) & 0x7F;
  151. buf[8+siz] = sum;
  152. buf[9+siz] = 0xF7;
  153.  
  154. return (siz + 10);
  155. }
  156.  
  157. int gs_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
  158. {
  159. int ret;
  160. char excl[256], tmp[1024];
  161.  
  162. ret = roland_excl( excl, GsDeviceID, (0x42), adr, siz, dat );
  163. ret = make_sysEx( tmp, ret, excl );
  164. if ( ret >= bufSiz )
  165. {
  166. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  167. return ((-1));
  168. }
  169. memcpy( buf, tmp, ret );
  170. return (ret);
  171. }
  172.  
  173. int sc55_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
  174. {
  175. int ret;
  176. char excl[256], tmp[1024];
  177.  
  178. ret = roland_excl( excl, GsDeviceID, (0x45), adr, siz, dat );
  179. ret = make_sysEx( tmp, ret, excl );
  180. if ( ret >= bufSiz )
  181. {
  182. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  183. return ((-1));
  184. }
  185. memcpy( buf, tmp, ret );
  186. return (ret);
  187. }
  188. # 146 "gs.c"
  189. int sysEx_gs( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  190. {
  191. char dat[128];
  192. unsigned int adr, siz;
  193. int i, ret;
  194.  
  195. if ( argc < 3 )
  196. {
  197. MM_setErrMsg(sqr,"GS system exclusive error!");
  198. return ((-1));
  199. }
  200. sscanf(argv[0],"%x",&adr);
  201. siz = atoi(argv[1]);
  202. if ( siz < 1 || argc < 2 + siz )
  203. return ((-1));
  204. for ( i = 0; i < siz; ++i )
  205. dat[i] = atoi(argv[2+i]);
  206.  
  207. return gs_genMML( sqr, bufSiz, buf, adr, siz, dat );
  208. }
  209. # 173 "gs.c"
  210. int sysEx_sc55( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  211. {
  212. char dat[128];
  213. unsigned int adr, siz;
  214. int i, ret;
  215.  
  216. if ( argc < 3 )
  217. {
  218. MM_setErrMsg(sqr,"SC-55 system exclusive error!");
  219. return ((-1));
  220. }
  221. sscanf(argv[0],"%x",&adr);
  222. siz = atoi(argv[1]);
  223. if ( siz < 1 || argc < 2 + siz )
  224. return ((-1));
  225. for ( i = 0; i < siz; ++i )
  226. dat[i] = atoi(argv[2+i]);
  227.  
  228. return sc55_genMML( sqr, bufSiz, buf, adr, siz, dat );
  229. }
  230. # 198 "gs.c"
  231. int exGs_reset( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  232. {
  233. char dat[4];
  234. int ret;
  235.  
  236. if ( argc != 0 )
  237. {
  238. MM_setErrMsg(sqr,"[GS] \"reset\" error!");
  239. return((-1));
  240. }
  241. dat[0] = 0x00;
  242. return gs_genMML( sqr, bufSiz, buf, 0x40007F, 1, dat );
  243. }
  244. # 219 "gs.c"
  245. int exGs_masterVolume( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  246. {
  247. char dat[4];
  248. int ret;
  249.  
  250. if ( argc != 1 )
  251. {
  252. MM_setErrMsg(sqr,"[GS] Master volume error!");
  253. return((-1));
  254. }
  255.  
  256. dat[0] = atoi(argv[0]);
  257. return gs_genMML( sqr, bufSiz, buf, 0x400004, 1, dat );
  258. }
  259. # 240 "gs.c"
  260. int exGs_partialReserve( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  261. {
  262. int i;
  263. char dat[32];
  264. int ret;
  265.  
  266. if ( argc != 16 )
  267. {
  268. MM_setErrMsg(sqr,"[GS] Partial reserve error!");
  269. return((-1));
  270. }
  271.  
  272. for ( i = 0; i < 16; ++i )
  273. dat[i] = atoi(argv[i]);
  274. return gs_genMML( sqr, bufSiz, buf, 0x400110, 16, dat );
  275. }
  276. # 263 "gs.c"
  277. int exGs_reverbMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  278. {
  279. char dat[4];
  280. int ret;
  281.  
  282. if ( argc != 1 )
  283. {
  284. MM_setErrMsg(sqr,"[GS] Reverb macro error!");
  285. return((-1));
  286. }
  287.  
  288. dat[0] = atoi(argv[0]);
  289. return gs_genMML( sqr, bufSiz, buf, 0x400130, 1, dat );
  290. }
  291. # 284 "gs.c"
  292. int exGs_reverbPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  293. {
  294. int i;
  295. char dat[8];
  296. int ret;
  297.  
  298. if ( argc != 6 )
  299. {
  300. MM_setErrMsg(sqr,"[GS] Reverb parameter error!");
  301. return((-1));
  302. }
  303.  
  304. for ( i = 0; i < 6; ++i )
  305. dat[i] = atoi(argv[i]);
  306. return gs_genMML( sqr, bufSiz, buf, 0x400131, 6, dat );
  307. }
  308. # 307 "gs.c"
  309. int exGs_chorusMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  310. {
  311. char dat[4];
  312. int ret;
  313.  
  314. if ( argc != 1 )
  315. {
  316. MM_setErrMsg(sqr,"[GS] Chorus macro error!");
  317. return((-1));
  318. }
  319.  
  320. dat[0] = atoi(argv[0]);
  321. return gs_genMML( sqr, bufSiz, buf, 0x400138, 1, dat );
  322. }
  323. # 328 "gs.c"
  324. int exGs_chorusPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  325. {
  326. int i;
  327. char dat[8];
  328. int ret;
  329.  
  330. if ( argc != 7 )
  331. {
  332. MM_setErrMsg(sqr,"[GS] Chorus parameter error!");
  333. return((-1));
  334. }
  335.  
  336. for ( i = 0; i < 7; ++i )
  337. dat[i] = atoi(argv[i]);
  338. return gs_genMML( sqr, bufSiz, buf, 0x400139, 7, dat );
  339. }
  340.  
  341. int GsPartTbl[16] = {1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15};
  342.  
  343. int gs_getpart_n( int part )
  344. {
  345. if ( part < 1 || part > 16 )
  346. return (-1);
  347. return (GsPartTbl[part-1]);
  348. }
  349. # 361 "gs.c"
  350. int exGs_rxChannel( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  351. {
  352. int i, part, ch;
  353. char dat[4];
  354. int ret;
  355.  
  356. if ( argc != 2 )
  357. {
  358. _PARA_ERR:
  359. MM_setErrMsg(sqr,"[GS] 'Rx.channel' error!");
  360. return((-1));
  361. }
  362.  
  363. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  364. goto _PARA_ERR;
  365. ch = atoi(argv[1]);
  366. if ( ch < 0 || ch > 16 )
  367. goto _PARA_ERR;
  368. if ( ch > 0 )
  369. --ch;
  370. else
  371. ch = 0;
  372. dat[0] = ch;
  373. return gs_genMML( sqr, bufSiz, buf, ((0x401002)+((part)<<8)), 1, dat );
  374. }
  375. # 393 "gs.c"
  376. int exGs_assignMode( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  377. {
  378. int i, part;
  379. char dat[4];
  380. int ret;
  381.  
  382. if ( argc != 2 )
  383. {
  384. _PARA_ERR:
  385. MM_setErrMsg(sqr,"[GS] 'Assign mode' error!");
  386. return((-1));
  387. }
  388.  
  389. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  390. goto _PARA_ERR;
  391. dat[0] = atoi(argv[1]);
  392. return gs_genMML( sqr, bufSiz, buf, ((0x401014)+((part)<<8)), 1, dat );
  393. }
  394. # 14 "gs_cc.c"
  395. int exGs_mod( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  396. {
  397. int part, v;
  398. char dat[16];
  399. int ret;
  400.  
  401. if ( argc != 12 )
  402. {
  403. _PARA_ERR:
  404. MM_setErrMsg(sqr,"[GS] 'MOD control' error!");
  405. return((-1));
  406. }
  407.  
  408. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  409. goto _PARA_ERR;
  410.  
  411.  
  412. v = atoi(argv[1]);
  413. if ( v < -24 || v > 24 )
  414. goto _PARA_ERR;
  415. dat[0] = v + 0x40;
  416.  
  417.  
  418. v = atoi(argv[2]);
  419. if ( v < -64 || v > 63 )
  420. goto _PARA_ERR;
  421. dat[1] = v + 0x40;
  422.  
  423.  
  424. v = atoi(argv[3]);
  425. if ( v < -64 || v > 63 )
  426. goto _PARA_ERR;
  427. dat[2] = v + 0x40;
  428.  
  429.  
  430. v = atoi(argv[4]);
  431. if ( v < -64 || v > 63 )
  432. goto _PARA_ERR;
  433. dat[3] = v + 0x40;
  434.  
  435.  
  436. v = atoi(argv[5]);
  437. if ( v < 0 || v > 127 )
  438. goto _PARA_ERR;
  439. dat[4] = v;
  440.  
  441.  
  442. v = atoi(argv[6]);
  443. if ( v < 0 || v > 127 )
  444. goto _PARA_ERR;
  445. dat[5] = v;
  446.  
  447.  
  448. v = atoi(argv[7]);
  449. if ( v < 0 || v > 127 )
  450. goto _PARA_ERR;
  451. dat[6] = v;
  452.  
  453.  
  454. v = atoi(argv[8]);
  455. if ( v < -64 || v > 63 )
  456. goto _PARA_ERR;
  457. dat[7] = v + 0x40;
  458.  
  459.  
  460. v = atoi(argv[9]);
  461. if ( v < 0 || v > 127 )
  462. goto _PARA_ERR;
  463. dat[8] = v;
  464.  
  465.  
  466. v = atoi(argv[10]);
  467. if ( v < 0 || v > 127 )
  468. goto _PARA_ERR;
  469. dat[9] = v;
  470.  
  471.  
  472. v = atoi(argv[11]);
  473. if ( v < 0 || v > 127 )
  474. goto _PARA_ERR;
  475. dat[10] = v;
  476. return gs_genMML( sqr, bufSiz, buf, ((0x402000)+((part)<<8)), 11, dat );
  477. }
  478. # 107 "gs_cc.c"
  479. int exGs_bend( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  480. {
  481. int part, v;
  482. char dat[16];
  483. int ret;
  484.  
  485. if ( argc != 12 )
  486. {
  487. _PARA_ERR:
  488. MM_setErrMsg(sqr,"[GS] 'Pitch control' error!");
  489. return((-1));
  490. }
  491.  
  492. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  493. goto _PARA_ERR;
  494.  
  495.  
  496. v = atoi(argv[1]);
  497. if ( v < 0 || v > 24 )
  498. goto _PARA_ERR;
  499. dat[0] = v + 0x40;
  500.  
  501.  
  502. v = atoi(argv[2]);
  503. if ( v < -64 || v > 63 )
  504. goto _PARA_ERR;
  505. dat[1] = v + 0x40;
  506.  
  507.  
  508. v = atoi(argv[3]);
  509. if ( v < -64 || v > 63 )
  510. goto _PARA_ERR;
  511. dat[2] = v + 0x40;
  512.  
  513.  
  514. v = atoi(argv[4]);
  515. if ( v < -64 || v > 63 )
  516. goto _PARA_ERR;
  517. dat[3] = v + 0x40;
  518.  
  519.  
  520. v = atoi(argv[5]);
  521. if ( v < 0 || v > 127 )
  522. goto _PARA_ERR;
  523. dat[4] = v;
  524.  
  525.  
  526. v = atoi(argv[6]);
  527. if ( v < 0 || v > 127 )
  528. goto _PARA_ERR;
  529. dat[5] = v;
  530.  
  531.  
  532. v = atoi(argv[7]);
  533. if ( v < 0 || v > 127 )
  534. goto _PARA_ERR;
  535. dat[6] = v;
  536.  
  537.  
  538. v = atoi(argv[8]);
  539. if ( v < -64 || v > 63 )
  540. goto _PARA_ERR;
  541. dat[7] = v + 0x40;
  542.  
  543.  
  544. v = atoi(argv[9]);
  545. if ( v < 0 || v > 127 )
  546. goto _PARA_ERR;
  547. dat[8] = v;
  548.  
  549.  
  550. v = atoi(argv[10]);
  551. if ( v < 0 || v > 127 )
  552. goto _PARA_ERR;
  553. dat[9] = v;
  554.  
  555.  
  556. v = atoi(argv[11]);
  557. if ( v < 0 || v > 127 )
  558. goto _PARA_ERR;
  559. dat[10] = v;
  560. return gs_genMML( sqr, bufSiz, buf, ((0x402010)+((part)<<8)), 11, dat );
  561. }
  562. # 200 "gs_cc.c"
  563. int exGs_caf( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  564. {
  565. int part, v;
  566. char dat[16];
  567. int ret;
  568.  
  569. if ( argc != 12 )
  570. {
  571. _PARA_ERR:
  572. MM_setErrMsg(sqr,"[GS] 'CAf control' error!");
  573. return((-1));
  574. }
  575.  
  576. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  577. goto _PARA_ERR;
  578.  
  579.  
  580. v = atoi(argv[1]);
  581. if ( v < -24 || v > 24 )
  582. goto _PARA_ERR;
  583. dat[0] = v + 0x40;
  584.  
  585.  
  586. v = atoi(argv[2]);
  587. if ( v < -64 || v > 63 )
  588. goto _PARA_ERR;
  589. dat[1] = v + 0x40;
  590.  
  591.  
  592. v = atoi(argv[3]);
  593. if ( v < -64 || v > 63 )
  594. goto _PARA_ERR;
  595. dat[2] = v + 0x40;
  596.  
  597.  
  598. v = atoi(argv[4]);
  599. if ( v < -64 || v > 63 )
  600. goto _PARA_ERR;
  601. dat[3] = v + 0x40;
  602.  
  603.  
  604. v = atoi(argv[5]);
  605. if ( v < 0 || v > 127 )
  606. goto _PARA_ERR;
  607. dat[4] = v;
  608.  
  609.  
  610. v = atoi(argv[6]);
  611. if ( v < 0 || v > 127 )
  612. goto _PARA_ERR;
  613. dat[5] = v;
  614.  
  615.  
  616. v = atoi(argv[7]);
  617. if ( v < 0 || v > 127 )
  618. goto _PARA_ERR;
  619. dat[6] = v;
  620.  
  621.  
  622. v = atoi(argv[8]);
  623. if ( v < -64 || v > 63 )
  624. goto _PARA_ERR;
  625. dat[7] = v + 0x40;
  626.  
  627.  
  628. v = atoi(argv[9]);
  629. if ( v < 0 || v > 127 )
  630. goto _PARA_ERR;
  631. dat[8] = v;
  632.  
  633.  
  634. v = atoi(argv[10]);
  635. if ( v < 0 || v > 127 )
  636. goto _PARA_ERR;
  637. dat[9] = v;
  638.  
  639.  
  640. v = atoi(argv[11]);
  641. if ( v < 0 || v > 127 )
  642. goto _PARA_ERR;
  643. dat[10] = v;
  644. return gs_genMML( sqr, bufSiz, buf, ((0x402020)+((part)<<8)), 11, dat );
  645. }
  646. # 293 "gs_cc.c"
  647. int exGs_paf( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  648. {
  649. int part, v;
  650. char dat[16];
  651. int ret;
  652.  
  653. if ( argc != 12 )
  654. {
  655. _PARA_ERR:
  656. MM_setErrMsg(sqr,"[GS] 'PAf control' error!");
  657. return((-1));
  658. }
  659.  
  660. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  661. goto _PARA_ERR;
  662.  
  663.  
  664. v = atoi(argv[1]);
  665. if ( v < -24 || v > 24 )
  666. goto _PARA_ERR;
  667. dat[0] = v + 0x40;
  668.  
  669.  
  670. v = atoi(argv[2]);
  671. if ( v < -64 || v > 63 )
  672. goto _PARA_ERR;
  673. dat[1] = v + 0x40;
  674.  
  675.  
  676. v = atoi(argv[3]);
  677. if ( v < -64 || v > 63 )
  678. goto _PARA_ERR;
  679. dat[2] = v + 0x40;
  680.  
  681.  
  682. v = atoi(argv[4]);
  683. if ( v < -64 || v > 63 )
  684. goto _PARA_ERR;
  685. dat[3] = v + 0x40;
  686.  
  687.  
  688. v = atoi(argv[5]);
  689. if ( v < 0 || v > 127 )
  690. goto _PARA_ERR;
  691. dat[4] = v;
  692.  
  693.  
  694. v = atoi(argv[6]);
  695. if ( v < 0 || v > 127 )
  696. goto _PARA_ERR;
  697. dat[5] = v;
  698.  
  699.  
  700. v = atoi(argv[7]);
  701. if ( v < 0 || v > 127 )
  702. goto _PARA_ERR;
  703. dat[6] = v;
  704.  
  705.  
  706. v = atoi(argv[8]);
  707. if ( v < -64 || v > 63 )
  708. goto _PARA_ERR;
  709. dat[7] = v + 0x40;
  710.  
  711.  
  712. v = atoi(argv[9]);
  713. if ( v < 0 || v > 127 )
  714. goto _PARA_ERR;
  715. dat[8] = v;
  716.  
  717.  
  718. v = atoi(argv[10]);
  719. if ( v < 0 || v > 127 )
  720. goto _PARA_ERR;
  721. dat[9] = v;
  722.  
  723.  
  724. v = atoi(argv[11]);
  725. if ( v < 0 || v > 127 )
  726. goto _PARA_ERR;
  727. dat[10] = v;
  728. return gs_genMML( sqr, bufSiz, buf, ((0x402030)+((part)<<8)), 11, dat );
  729. }
  730. # 384 "gs_cc.c"
  731. int exGs_cc1number( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  732. {
  733. int i, part;
  734. char dat[4];
  735. int ret;
  736.  
  737. if ( argc != 2 )
  738. {
  739. _PARA_ERR:
  740. MM_setErrMsg(sqr,"[GS] 'CC1 controller number' error!");
  741. return((-1));
  742. }
  743.  
  744. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  745. goto _PARA_ERR;
  746. dat[0] = atoi(argv[1]);
  747. return gs_genMML( sqr, bufSiz, buf, ((0x40101F)+((part)<<8)), 1, dat );
  748. }
  749. # 409 "gs_cc.c"
  750. int exGs_cc2number( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  751. {
  752. int i, part;
  753. char dat[4];
  754. int ret;
  755.  
  756. if ( argc != 2 )
  757. {
  758. _PARA_ERR:
  759. MM_setErrMsg(sqr,"[GS] 'CC2 controller number' error!");
  760. return((-1));
  761. }
  762.  
  763. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  764. goto _PARA_ERR;
  765. dat[0] = atoi(argv[1]);
  766. return gs_genMML( sqr, bufSiz, buf, ((0x401020)+((part)<<8)), 1, dat );
  767. }
  768. # 438 "gs_cc.c"
  769. int exGs_cc1control( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  770. {
  771. int part, v;
  772. char dat[16];
  773. int ret;
  774.  
  775. if ( argc != 12 )
  776. {
  777. _PARA_ERR:
  778. MM_setErrMsg(sqr,"[GS] 'CC1 control' error!");
  779. return((-1));
  780. }
  781.  
  782. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  783. goto _PARA_ERR;
  784.  
  785.  
  786. v = atoi(argv[1]);
  787. if ( v < -24 || v > 24 )
  788. goto _PARA_ERR;
  789. dat[0] = v + 0x40;
  790.  
  791.  
  792. v = atoi(argv[2]);
  793. if ( v < -64 || v > 63 )
  794. goto _PARA_ERR;
  795. dat[1] = v + 0x40;
  796.  
  797.  
  798. v = atoi(argv[3]);
  799. if ( v < -64 || v > 63 )
  800. goto _PARA_ERR;
  801. dat[2] = v + 0x40;
  802.  
  803.  
  804. v = atoi(argv[4]);
  805. if ( v < -64 || v > 63 )
  806. goto _PARA_ERR;
  807. dat[3] = v + 0x40;
  808.  
  809.  
  810. v = atoi(argv[5]);
  811. if ( v < 0 || v > 127 )
  812. goto _PARA_ERR;
  813. dat[4] = v;
  814.  
  815.  
  816. v = atoi(argv[6]);
  817. if ( v < 0 || v > 127 )
  818. goto _PARA_ERR;
  819. dat[5] = v;
  820.  
  821.  
  822. v = atoi(argv[7]);
  823. if ( v < 0 || v > 127 )
  824. goto _PARA_ERR;
  825. dat[6] = v;
  826.  
  827.  
  828. v = atoi(argv[8]);
  829. if ( v < -64 || v > 63 )
  830. goto _PARA_ERR;
  831. dat[7] = v + 0x40;
  832.  
  833.  
  834. v = atoi(argv[9]);
  835. if ( v < 0 || v > 127 )
  836. goto _PARA_ERR;
  837. dat[8] = v;
  838.  
  839.  
  840. v = atoi(argv[10]);
  841. if ( v < 0 || v > 127 )
  842. goto _PARA_ERR;
  843. dat[9] = v;
  844.  
  845.  
  846. v = atoi(argv[11]);
  847. if ( v < 0 || v > 127 )
  848. goto _PARA_ERR;
  849. dat[10] = v;
  850. return gs_genMML( sqr, bufSiz, buf, ((0x402040)+((part)<<8)), 11, dat );
  851. }
  852. # 531 "gs_cc.c"
  853. int exGs_cc2control( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  854. {
  855. int part, v;
  856. char dat[16];
  857. int ret;
  858.  
  859. if ( argc != 12 )
  860. {
  861. _PARA_ERR:
  862. MM_setErrMsg(sqr,"[GS] 'CC2 control' error!");
  863. return((-1));
  864. }
  865.  
  866. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  867. goto _PARA_ERR;
  868.  
  869.  
  870. v = atoi(argv[1]);
  871. if ( v < -24 || v > 24 )
  872. goto _PARA_ERR;
  873. dat[0] = v + 0x40;
  874.  
  875.  
  876. v = atoi(argv[2]);
  877. if ( v < -64 || v > 63 )
  878. goto _PARA_ERR;
  879. dat[1] = v + 0x40;
  880.  
  881.  
  882. v = atoi(argv[3]);
  883. if ( v < -64 || v > 63 )
  884. goto _PARA_ERR;
  885. dat[2] = v + 0x40;
  886.  
  887.  
  888. v = atoi(argv[4]);
  889. if ( v < -64 || v > 63 )
  890. goto _PARA_ERR;
  891. dat[3] = v + 0x40;
  892.  
  893.  
  894. v = atoi(argv[5]);
  895. if ( v < 0 || v > 127 )
  896. goto _PARA_ERR;
  897. dat[4] = v;
  898.  
  899.  
  900. v = atoi(argv[6]);
  901. if ( v < 0 || v > 127 )
  902. goto _PARA_ERR;
  903. dat[5] = v;
  904.  
  905.  
  906. v = atoi(argv[7]);
  907. if ( v < 0 || v > 127 )
  908. goto _PARA_ERR;
  909. dat[6] = v;
  910.  
  911.  
  912. v = atoi(argv[8]);
  913. if ( v < -64 || v > 63 )
  914. goto _PARA_ERR;
  915. dat[7] = v + 0x40;
  916.  
  917.  
  918. v = atoi(argv[9]);
  919. if ( v < 0 || v > 127 )
  920. goto _PARA_ERR;
  921. dat[8] = v;
  922.  
  923.  
  924. v = atoi(argv[10]);
  925. if ( v < 0 || v > 127 )
  926. goto _PARA_ERR;
  927. dat[9] = v;
  928.  
  929.  
  930. v = atoi(argv[11]);
  931. if ( v < 0 || v > 127 )
  932. goto _PARA_ERR;
  933. dat[10] = v;
  934.  
  935. return gs_genMML( sqr, bufSiz, buf, ((0x402050)+((part)<<8)), 11, dat );
  936. }
  937. # 7 "gs_drum.c"
  938. int exGs_rymMap( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  939. {
  940. int i, part;
  941. char dat[4];
  942. int ret;
  943.  
  944. if ( argc != 2 )
  945. {
  946. _PARA_ERR:
  947. MM_setErrMsg(sqr,"[GS] 'rhythm map' error!");
  948. return((-1));
  949. }
  950.  
  951. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  952. goto _PARA_ERR;
  953. dat[0] = atoi(argv[1]);
  954. return gs_genMML( sqr, bufSiz, buf, ((0x401015)+((part)<<8)), 1, dat );
  955. }
  956. # 5 "sc55disp.c"
  957. char *Sc55dispFuncTbl[8] =
  958. {
  959. "exSC55_msgSet" ,
  960. "exSC55_dotSet" ,
  961. "SC55_initDotBuffer" ,
  962. "SC55_setDotBuffer" ,
  963. "exSC55_dotBuffer" ,
  964.  
  965. (0)
  966. };
  967.  
  968. int SC55disp_macroInit( char *sqr )
  969. {
  970. int i;
  971.  
  972. for ( i = 0; Sc55dispFuncTbl[i] != (0); ++i )
  973. MMac_extDefine( sqr, Sc55dispFuncTbl[i], Sc55dispFuncTbl[i], (4), (0) );
  974. MMac_extDefine( sqr, "_SC55DISP_MACRO_DEFINED", "", (0) , (0) );
  975. return ((0));
  976. }
  977.  
  978. int _isSC55dot(int ch)
  979. {
  980. ch &= 0xFF;
  981. if ( ch == '0' || ch == ' ' )
  982. return (0);
  983. else
  984. return (1);
  985. }
  986. # 41 "sc55disp.c"
  987. int exSC55_msgSet( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  988. {
  989. int len, siz;
  990. char *msg;
  991.  
  992. if ( argc < 1 )
  993. {
  994. _ERR: MM_setErrMsg(sqr,"[SC-55] displayed letter error!");
  995. return((-1));
  996. }
  997. msg = argv[0];
  998. len = strlen(msg);
  999. if ( len < 1 || len > 32 )
  1000. goto _ERR;
  1001. return sc55_genMML( sqr, bufSiz, buf, 0x100000, len, msg );
  1002. }
  1003. # 65 "sc55disp.c"
  1004. int exSC55_dotSet( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1005. {
  1006. int i, level;
  1007. char *s, dat[128];
  1008. unsigned char dot[256];
  1009.  
  1010. if ( argc < 16 )
  1011. {
  1012. _ERR: MM_setErrMsg(sqr,"[SC-55] displayed dot data error!");
  1013. return((-1));
  1014. }
  1015.  
  1016. for ( level = 0; level < 16; ++level )
  1017. {
  1018. s = argv[level];
  1019. while ( isspace(*s) )
  1020. ++s;
  1021. if ( strlen(s) < 16 )
  1022. goto _ERR;
  1023.  
  1024. for ( i = 0; i < 16; ++i )
  1025. {
  1026. dot[(level*16)+i] = _isSC55dot(*s);
  1027. ++s;
  1028. }
  1029. }
  1030.  
  1031. for ( i = 0; i < 16; ++i )
  1032. {
  1033. dat[i ] = (dot[i*16+ 0]<<4) + (dot[i*16+ 1]<<3) + (dot[i*16+ 2]<<2) + (dot[i*16+ 3]<<1) + (dot[i*16+ 4]);
  1034. dat[i+16] = (dot[i*16+ 5]<<4) + (dot[i*16+ 6]<<3) + (dot[i*16+ 7]<<2) + (dot[i*16+ 8]<<1) + (dot[i*16+ 9]);
  1035. dat[i+32] = (dot[i*16+10]<<4) + (dot[i*16+11]<<3) + (dot[i*16+12]<<2) + (dot[i*16+13]<<1) + (dot[i*16+14]);
  1036. dat[i+48] = (dot[i*16+15]<<4);
  1037. }
  1038. return sc55_genMML( sqr, bufSiz, buf, 0x100100, 64, dat );
  1039. }
  1040.  
  1041. int Sc55dotBufXs = 0;
  1042. int Sc55dotBufYs = 0;
  1043. unsigned char *Sc55dotBuffer = (0);
  1044. # 112 "sc55disp.c"
  1045. int SC55_initDotBuffer( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1046. {
  1047. int x, y;
  1048.  
  1049. if ( argc < 2 )
  1050. {
  1051. _ERR: MM_setErrMsg(sqr,"\x22SC55_initDotBuffer()\x22 parameter error!");
  1052. return((-1));
  1053. }
  1054. x = atoi(argv[0]);
  1055. y = atoi(argv[1]);
  1056. if ( x < 16 || y < 16 )
  1057. goto _ERR;
  1058. Sc55dotBufXs = x;
  1059. Sc55dotBufYs = y;
  1060. if ( (Sc55dotBuffer = calloc(Sc55dotBufXs*Sc55dotBufYs,1)) == (0) )
  1061. goto _ERR;
  1062. return (0);
  1063. }
  1064. # 138 "sc55disp.c"
  1065. int SC55_setDotBuffer( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1066. {
  1067. int x, y;
  1068. char *s;
  1069.  
  1070. if ( Sc55dotBuffer == (0) || Sc55dotBufXs < 16 || Sc55dotBufYs < 16 )
  1071. {
  1072. MM_setErrMsg(sqr,"SC-55 dot buffer not initiarize!");
  1073. return((-1));
  1074. }
  1075. if ( argc < 2 )
  1076. {
  1077. _ERR: MM_setErrMsg(sqr,"\x22SC55_setDotBuffer()\x22 parameter error!");
  1078. return((-1));
  1079. }
  1080. y = atoi(argv[0]);
  1081. s = argv[1];
  1082. while ( isspace(*s) )
  1083. ++s;
  1084. if ( *s )
  1085. {
  1086. for ( x = 0; x < Sc55dotBufXs; ++x )
  1087. {
  1088. Sc55dotBuffer[y * Sc55dotBufXs + x] = _isSC55dot(*s);
  1089. ++s;
  1090. if ( *s == '\0' )
  1091. break;
  1092. }
  1093. }
  1094. return (0);
  1095. }
  1096. # 177 "sc55disp.c"
  1097. int exSC55_dotBuffer( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1098. {
  1099. int y, x0, y0;
  1100. char *s, dat[128];
  1101. unsigned char dot[256];
  1102.  
  1103. if ( Sc55dotBuffer == (0) || Sc55dotBufXs < 16 || Sc55dotBufYs < 16 )
  1104. {
  1105. MM_setErrMsg(sqr,"SC-55 dot buffer not initiarize!");
  1106. return((-1));
  1107. }
  1108. if ( argc < 2 )
  1109. {
  1110. _ERR: MM_setErrMsg(sqr,"\x22exSC55_dotBuffer()\x22 parameter error!");
  1111. return((-1));
  1112. }
  1113. x0 = atoi(argv[0]);
  1114. y0 = atoi(argv[1]);
  1115. if ( x0 < 0 || x0 + 15 > Sc55dotBufXs || y0 < 0 || y0 + 15 > Sc55dotBufYs )
  1116. goto _ERR;
  1117.  
  1118. for ( y = 0; y < 16; ++y, ++y0 )
  1119. {
  1120. dat[y ] = (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 0]<<4)
  1121. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 1]<<3)
  1122. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 2]<<2)
  1123. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 3]<<1)
  1124. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 4]);
  1125. dat[y+16] = (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 5]<<4)
  1126. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 6]<<3)
  1127. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 7]<<2)
  1128. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 8]<<1)
  1129. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+ 9]);
  1130. dat[y+32] = (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+10]<<4)
  1131. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+11]<<3)
  1132. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+12]<<2)
  1133. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+13]<<1)
  1134. + (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+14]);
  1135. dat[y+48] = (Sc55dotBuffer[(y0*Sc55dotBufXs)+x0+15]<<4);
  1136. }
  1137. return sc55_genMML( sqr, bufSiz, buf, 0x100100, 64, dat );
  1138. }
  1139. # 8 "tg300.c"
  1140. int TG300devNum = 0;
  1141.  
  1142. char *Tg300funcTbl[64] =
  1143. {
  1144. "TG300_setDeviceNumber" ,
  1145. "sysEx_TG300" ,
  1146.  
  1147. "exTG300_allParameterReset" ,
  1148. "exTG300_masterTune" ,
  1149. "exTG300_masterVolume" ,
  1150. "exTG300_masterPan" ,
  1151. "exTG300_masterCutoff" ,
  1152. "exTG300_masterPModDep" ,
  1153. "exTG300_varSendCtChg" ,
  1154.  
  1155. "exTG300_chorusType" ,
  1156. "exTG300_variationType" ,
  1157. "exTG300_preVariationType" ,
  1158. "exTG300_preReverbType" ,
  1159. "exTG300_reverbType" ,
  1160. "exTG300_effectInput" ,
  1161. "exTG300_dryLevel" ,
  1162. "exTG300_effectReturn" ,
  1163. "exTG300_effectSend" ,
  1164. "exTG300_choParam" ,
  1165. "exTG300_varParam" ,
  1166. "exTG300_preVarParam" ,
  1167. "exTG300_preRevParam" ,
  1168. "exTG300_revParam" ,
  1169.  
  1170. "exTG300_elementReserve" ,
  1171. "exTG300_bank" ,
  1172. "exTG300_programNo" ,
  1173. "exTG300_rcvChannel" ,
  1174. "exTG300_monoPolyMode" ,
  1175. "exTG300_keyAssign" ,
  1176. "exTG300_partMode" ,
  1177. "exTG300_noteShift" ,
  1178. "exTG300_detune" ,
  1179. "exTG300_volume" ,
  1180. "exTG300_velSensDepth" ,
  1181. "exTG300_velSensOffst" ,
  1182. "exTG300_pan" ,
  1183. "exTG300_mwControl" ,
  1184. "exTG300_bendControl" ,
  1185. "exTG300_catControl" ,
  1186. "exTG300_patControl" ,
  1187. "exTG300_ac1Control" ,
  1188. "exTG300_ac2Control" ,
  1189.  
  1190. "exTG300_drumSetup" ,
  1191.  
  1192. "exTG300_voiceDataSet" ,
  1193.  
  1194. (0)
  1195. };
  1196.  
  1197. int TG300_macroInit( char *sqr )
  1198. {
  1199. int i;
  1200.  
  1201. TG300devNum = 0;
  1202. for ( i = 0; Tg300funcTbl[i] != (0); ++i )
  1203. MMac_extDefine( sqr, Tg300funcTbl[i], Tg300funcTbl[i], (4), (0) );
  1204. MMac_extDefine( sqr, "_TG300_MACRO_DEFINED", "", (0) , (0) );
  1205. return ((0));
  1206. }
  1207. # 83 "tg300.c"
  1208. int TG300_setDeviceNumber( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1209. {
  1210. int n;
  1211.  
  1212. if ( argc < 1 )
  1213. {
  1214. _ERR: MM_setErrMsg(sqr,"TG300 device number!");
  1215. return ((-1));
  1216. }
  1217. n = atoi(argv[0]) - 1;
  1218. if ( n < 0 || n > 15 )
  1219. goto _ERR;
  1220. TG300devNum = n;
  1221. return (0);
  1222. }
  1223. # 104 "tg300.c"
  1224. int tg300_excl( unsigned char *buf, unsigned int adr, unsigned int siz, unsigned char *dat )
  1225. {
  1226. int i, sum;
  1227.  
  1228. buf[0] = 0xF0;
  1229. buf[1] = (0x43);
  1230. buf[2] = 0x10+TG300devNum;
  1231. buf[3] = (0x2B);
  1232. buf[4] = (adr>>16); buf[5] = (adr>>8); buf[6] = (adr);
  1233. sum = buf[4] + buf[5] + buf[6];
  1234. for ( i = 0; i < siz; ++i )
  1235. {
  1236. buf[7+i] = dat[i];
  1237. sum += dat[i];
  1238. }
  1239. sum = (0x80 - (sum & 0x7F)) & 0x7F;
  1240. buf[7+siz] = sum;
  1241. buf[8+siz] = 0xF7;
  1242.  
  1243. return (siz + 9);
  1244. }
  1245.  
  1246. int tg300_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
  1247. {
  1248. int ret;
  1249. char excl[256], tmp[1024];
  1250.  
  1251. ret = tg300_excl( excl, adr, siz, dat );
  1252. ret = make_sysEx( tmp, ret, excl );
  1253. if ( ret >= bufSiz )
  1254. {
  1255. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  1256. return ((-1));
  1257. }
  1258. memcpy( buf, tmp, ret );
  1259. return (ret);
  1260. }
  1261. # 149 "tg300.c"
  1262. int sysEx_TG300( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1263. {
  1264. char dat[256];
  1265. unsigned adr, siz;
  1266. int i, ret;
  1267.  
  1268. if ( argc < 3 )
  1269. {
  1270. MM_setErrMsg(sqr,"TG300 system exclusive error!");
  1271. return ((-1));
  1272. }
  1273. sscanf(argv[0],"%x",&adr);
  1274. siz = atoi(argv[1]);
  1275. if ( siz < 1 || argc < 2 + siz )
  1276. return ((-1));
  1277. for ( i = 0; i < siz; ++i )
  1278. dat[i] = atoi(argv[2+i]);
  1279.  
  1280. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1281. }
  1282. # 176 "tg300.c"
  1283. int exTG300_allParameterReset( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1284. {
  1285. char dat[4];
  1286.  
  1287. if ( argc != 0 )
  1288. {
  1289. MM_setErrMsg(sqr,"TG300 \"All Parameter Reset\" error!");
  1290. return((-1));
  1291. }
  1292. dat[0] = 0;
  1293. return tg300_genMML( sqr, bufSiz, buf, 0x00007F, 1, dat );
  1294. }
  1295. # 197 "tg300.c"
  1296. int exTG300_masterTune( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1297. {
  1298. char dat[4];
  1299. int tune;
  1300.  
  1301. if ( argc != 1 )
  1302. {
  1303. _ERR: MM_setErrMsg(sqr,"TG300 \"MASTER TUNE\" error!");
  1304. return((-1));
  1305. }
  1306. tune = atoi(argv[0]) + 1024;
  1307. if ( tune < 0 || tune > 0x7FF )
  1308. goto _ERR;
  1309. dat[0] = (tune>>12) & 0x0F;
  1310. dat[1] = (tune>> 8) & 0x0F;
  1311. dat[2] = (tune>> 4) & 0x0F;
  1312. dat[3] = tune & 0x0F;
  1313. return tg300_genMML( sqr, bufSiz, buf, 0x000000, 4, dat );
  1314. }
  1315. # 225 "tg300.c"
  1316. int exTG300_masterVolume( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1317. {
  1318. char dat[4];
  1319. int vol;
  1320.  
  1321. if ( argc != 1 )
  1322. {
  1323. _ERR: MM_setErrMsg(sqr,"TG300 \"MASTER VOLUM\" error!");
  1324. return((-1));
  1325. }
  1326. vol = atoi(argv[0]);
  1327. if ( vol < 0 || vol > 127 )
  1328. goto _ERR;
  1329. dat[0] = vol;
  1330. return tg300_genMML( sqr, bufSiz, buf, 0x000004, 1, dat );
  1331. }
  1332. # 250 "tg300.c"
  1333. int exTG300_masterPan( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1334. {
  1335. char dat[32];
  1336. int pan;
  1337.  
  1338. if ( argc != 1 )
  1339. {
  1340. _ERR: MM_setErrMsg(sqr,"TG300 \"MASTER PAN\" error!");
  1341. return((-1));
  1342. }
  1343. pan = atoi(argv[0]) + 64;
  1344. if ( pan < 1 || pan > 127 )
  1345. goto _ERR;
  1346. dat[0] = pan;
  1347. return tg300_genMML( sqr, bufSiz, buf, 0x000006, 1, dat );
  1348. }
  1349. # 275 "tg300.c"
  1350. int exTG300_masterCutoff( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1351. {
  1352. char dat[32];
  1353. int v;
  1354.  
  1355. if ( argc != 1 )
  1356. {
  1357. _ERR: MM_setErrMsg(sqr,"TG300 \"MASTER CUTOFF\" error!");
  1358. return((-1));
  1359. }
  1360. v = atoi(argv[0]) + 64;
  1361. if ( v < 0 || v > 127 )
  1362. goto _ERR;
  1363. dat[0] = v;
  1364. return tg300_genMML( sqr, bufSiz, buf, 0x000007, 1, dat );
  1365. }
  1366. # 300 "tg300.c"
  1367. int exTG300_masterPModDep( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1368. {
  1369. char dat[32];
  1370. int v;
  1371.  
  1372. if ( argc != 1 )
  1373. {
  1374. _ERR: MM_setErrMsg(sqr,"TG300 \"MASTER PITCH MODULATION DEPTH\" error!");
  1375. return((-1));
  1376. }
  1377. v = atoi(argv[0]) + 64;
  1378. if ( v < 0 || v > 127 )
  1379. goto _ERR;
  1380. dat[0] = v;
  1381. return tg300_genMML( sqr, bufSiz, buf, 0x000008, 1, dat );
  1382. }
  1383. # 325 "tg300.c"
  1384. int exTG300_varSendCtChg( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1385. {
  1386. char dat[32];
  1387. int v;
  1388.  
  1389. if ( argc != 1 )
  1390. {
  1391. _ERR: MM_setErrMsg(sqr,"TG300 \"VARIATION EFFECT SEND CONTROL CHANGE NUMBER\" error!");
  1392. return((-1));
  1393. }
  1394. v = atoi(argv[0]);
  1395. if ( v < 0 || v > 95 )
  1396. goto _ERR;
  1397. dat[0] = v;
  1398. return tg300_genMML( sqr, bufSiz, buf, 0x000009, 1, dat );
  1399. }
  1400. # 13 "tg300me.c"
  1401. int exTG300_chorusType( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1402. {
  1403. char dat[32];
  1404. int v;
  1405.  
  1406. if ( argc != 1 )
  1407. {
  1408. _ERR: MM_setErrMsg(sqr,"TG300 \"CHORUS TYPE\" error!");
  1409. return((-1));
  1410. }
  1411. v = atoi(argv[0]);
  1412. if ( v < 0 || v > 7 )
  1413. goto _ERR;
  1414. dat[0] = v;
  1415. return tg300_genMML( sqr, bufSiz, buf, 0x010000, 1, dat );
  1416. }
  1417. # 38 "tg300me.c"
  1418. int exTG300_variationType( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1419. {
  1420. char dat[32];
  1421. int v;
  1422.  
  1423. if ( argc != 1 )
  1424. {
  1425. _ERR: MM_setErrMsg(sqr,"TG300 \"VARIATION TYPE\" error!");
  1426. return((-1));
  1427. }
  1428. v = atoi(argv[0]);
  1429. if ( v < 0 || v > 0x19 )
  1430. goto _ERR;
  1431. dat[0] = v;
  1432. return tg300_genMML( sqr, bufSiz, buf, 0x010001, 1, dat );
  1433. }
  1434. # 63 "tg300me.c"
  1435. int exTG300_preVariationType( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1436. {
  1437. char dat[32];
  1438. int v;
  1439.  
  1440. if ( argc != 1 )
  1441. {
  1442. _ERR: MM_setErrMsg(sqr,"TG300 \"Pre-VARIATION TYPE\" error!");
  1443. return((-1));
  1444. }
  1445. v = atoi(argv[0]);
  1446. if ( v < 0 || v > 4 )
  1447. goto _ERR;
  1448. dat[0] = v;
  1449. return tg300_genMML( sqr, bufSiz, buf, 0x010002, 1, dat );
  1450. }
  1451. # 88 "tg300me.c"
  1452. int exTG300_preReverbType( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1453. {
  1454. char dat[32];
  1455. int v;
  1456.  
  1457. if ( argc != 1 )
  1458. {
  1459. _ERR: MM_setErrMsg(sqr,"TG300 \"Pre-REVERB TYPE\" error!");
  1460. return((-1));
  1461. }
  1462. v = atoi(argv[0]);
  1463. if ( v < 0 || v > 5 )
  1464. goto _ERR;
  1465. dat[0] = v;
  1466. return tg300_genMML( sqr, bufSiz, buf, 0x010003, 1, dat );
  1467. }
  1468. # 112 "tg300me.c"
  1469. int exTG300_reverbType( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1470. {
  1471. char dat[32];
  1472. int v;
  1473.  
  1474. if ( argc != 1 )
  1475. {
  1476. _ERR: MM_setErrMsg(sqr,"TG300 \"REVERB TYPE\" error!");
  1477. return((-1));
  1478. }
  1479. v = atoi(argv[0]);
  1480. if ( v < 0 || v > 0x0B )
  1481. goto _ERR;
  1482. dat[0] = v;
  1483. return tg300_genMML( sqr, bufSiz, buf, 0x010004, 1, dat );
  1484. }
  1485. # 142 "tg300me.c"
  1486. int exTG300_effectInput( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1487. {
  1488. char dat[32];
  1489. unsigned int adr, siz;
  1490. int rev, cho, var;
  1491.  
  1492. if ( argc < 2 )
  1493. {
  1494. _ERR: MM_setErrMsg(sqr,"TG300 \"Effect Input\" error!");
  1495. return((-1));
  1496. }
  1497. switch ( atoi(argv[0]) )
  1498. {
  1499. case 0:
  1500. if ( argc != 4 )
  1501. goto _ERR;
  1502. rev = atoi(argv[1]); if ( rev < 0 || rev > 127 ) goto _ERR;
  1503. cho = atoi(argv[2]); if ( cho < 0 || cho > 127 ) goto _ERR;
  1504. var = atoi(argv[3]); if ( var < 0 || var > 127 ) goto _ERR;
  1505. dat[0] = rev;
  1506. dat[1] = cho;
  1507. dat[2] = var;
  1508. adr = 0x010005;
  1509. siz = 3;
  1510. break;
  1511.  
  1512. case 1:
  1513. rev = atoi(argv[1]);
  1514. if ( rev < 0 || rev > 127 )
  1515. goto _ERR;
  1516. dat[0] = rev;
  1517. adr = 0x010005;
  1518. siz = 1;
  1519. break;
  1520.  
  1521. case 2:
  1522. cho = atoi(argv[1]);
  1523. if ( cho < 0 || cho > 127 )
  1524. goto _ERR;
  1525. dat[0] = cho;
  1526. adr = 0x010006;
  1527. siz = 1;
  1528. break;
  1529.  
  1530. case 3:
  1531. var = atoi(argv[1]);
  1532. if ( var < 0 || var > 127 )
  1533. goto _ERR;
  1534. dat[0] = var;
  1535. adr = 0x010007;
  1536. siz = 1;
  1537. break;
  1538. default:
  1539. goto _ERR;
  1540. }
  1541. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1542. }
  1543. # 208 "tg300me.c"
  1544. int exTG300_dryLevel( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1545. {
  1546. char dat[32];
  1547. int v;
  1548.  
  1549. if ( argc != 1 )
  1550. {
  1551. _ERR: MM_setErrMsg(sqr,"TG300 \"DRY level\" error!");
  1552. return((-1));
  1553. }
  1554. v = atoi(argv[0]);
  1555. if ( v < 0 || v > 127 )
  1556. goto _ERR;
  1557. dat[0] = v;
  1558. return tg300_genMML( sqr, bufSiz, buf, 0x010008, 1, dat );
  1559. }
  1560. # 238 "tg300me.c"
  1561. int exTG300_effectReturn( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1562. {
  1563. char dat[32];
  1564. unsigned int adr, siz;
  1565. int rev, cho, var;
  1566.  
  1567. if ( argc < 2 )
  1568. {
  1569. _ERR: MM_setErrMsg(sqr,"TG300 \"Effect Return\" error!");
  1570. return((-1));
  1571. }
  1572. switch ( atoi(argv[0]) )
  1573. {
  1574. case 0:
  1575. if ( argc != 4 )
  1576. goto _ERR;
  1577. rev = atoi(argv[1]); if ( rev < 0 || rev > 127 ) goto _ERR;
  1578. cho = atoi(argv[2]); if ( cho < 0 || cho > 127 ) goto _ERR;
  1579. var = atoi(argv[3]); if ( var < 0 || var > 127 ) goto _ERR;
  1580. dat[0] = rev;
  1581. dat[1] = cho;
  1582. dat[2] = var;
  1583. adr = 0x010009;
  1584. siz = 3;
  1585. break;
  1586.  
  1587. case 1:
  1588. rev = atoi(argv[1]);
  1589. if ( rev < 0 || rev > 127 )
  1590. goto _ERR;
  1591. dat[0] = rev;
  1592. adr = 0x010009;
  1593. siz = 1;
  1594. break;
  1595.  
  1596. case 2:
  1597. cho = atoi(argv[1]);
  1598. if ( cho < 0 || cho > 127 )
  1599. goto _ERR;
  1600. dat[0] = cho;
  1601. adr = 0x01000A;
  1602. siz = 1;
  1603. break;
  1604.  
  1605. case 3:
  1606. var = atoi(argv[1]);
  1607. if ( var < 0 || var > 127 )
  1608. goto _ERR;
  1609. dat[0] = var;
  1610. adr = 0x01000B;
  1611. siz =1;
  1612. break;
  1613.  
  1614. default:
  1615. goto _ERR;
  1616. }
  1617. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1618. }
  1619. # 310 "tg300me.c"
  1620. int exTG300_effectSend( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1621. {
  1622. char dat[32];
  1623. unsigned int adr, siz;
  1624. int var2cho, var2rev, cho2rev;
  1625.  
  1626. if ( argc < 2 )
  1627. {
  1628. _ERR: MM_setErrMsg(sqr,"TG300 \"Effect Send\" error!");
  1629. return((-1));
  1630. }
  1631. switch ( atoi(argv[0]) )
  1632. {
  1633. case 0:
  1634. if ( argc != 4 )
  1635. goto _ERR;
  1636. var2cho = atoi(argv[1]); if ( var2cho < 0 || var2cho > 127 ) goto _ERR;
  1637. var2rev = atoi(argv[2]); if ( var2rev < 0 || var2rev > 127 ) goto _ERR;
  1638. cho2rev = atoi(argv[3]); if ( cho2rev < 0 || cho2rev > 127 ) goto _ERR;
  1639. dat[0] = var2cho;
  1640. dat[1] = var2rev;
  1641. dat[2] = cho2rev;
  1642. adr = 0x01000C;
  1643. siz = 3;
  1644. break;
  1645.  
  1646. case 1:
  1647. var2cho = atoi(argv[1]);
  1648. if ( var2cho < 0 || var2cho > 127 )
  1649. goto _ERR;
  1650. dat[0] = var2cho;
  1651. adr = 0x01000C;
  1652. siz = 1;
  1653. break;
  1654.  
  1655. case 2:
  1656. var2rev = atoi(argv[1]);
  1657. if ( var2rev < 0 || var2rev > 127 )
  1658. goto _ERR;
  1659. dat[0] = var2rev;
  1660. adr = 0x01000D;
  1661. siz = 1;
  1662. break;
  1663.  
  1664. case 3:
  1665. cho2rev = atoi(argv[1]);
  1666. if ( cho2rev < 0 || cho2rev > 127 )
  1667. goto _ERR;
  1668. dat[0] = cho2rev;
  1669. adr = 0x01000E;
  1670. siz = 1;
  1671. break;
  1672.  
  1673. default:
  1674. goto _ERR;
  1675. }
  1676. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1677. }
  1678. # 379 "tg300me.c"
  1679. int exTG300_choParam( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1680. {
  1681. char dat[16];
  1682. unsigned int adr, siz;
  1683. int typ, v, i;
  1684.  
  1685. if ( argc < 2 )
  1686. {
  1687. _ERR: MM_setErrMsg(sqr,"TG300 \"CHORUS Parameter\" error!");
  1688. return((-1));
  1689. }
  1690. typ = atoi(argv[0]);
  1691. if ( typ < 0 || typ > 10 )
  1692. goto _ERR;
  1693. if ( typ == 0 )
  1694. {
  1695. if ( argc != 11 )
  1696. goto _ERR;
  1697. for ( i = 0; i < 10; ++i )
  1698. {
  1699. v = atoi(argv[i+1]);
  1700. if ( v < 0 || v > 0x7F )
  1701. goto _ERR;
  1702. dat[i] = v;
  1703. }
  1704. adr = 0x01000F;
  1705. siz = 10;
  1706. } else
  1707. {
  1708. if ( argc != 2 )
  1709. goto _ERR;
  1710. v = atoi(argv[i+1]);
  1711. if ( v < 0 || v > 0x7F )
  1712. goto _ERR;
  1713. dat[0] = v;
  1714. adr = 0x01000F + typ - 1;
  1715. siz = 1;
  1716. }
  1717. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1718. }
  1719. # 435 "tg300me.c"
  1720. int exTG300_varParam( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1721. {
  1722. char dat[32];
  1723. unsigned int adr, siz;
  1724. int typ, v, i;
  1725.  
  1726. if ( argc < 3 )
  1727. {
  1728. _ERR: MM_setErrMsg(sqr,"TG300 \"VARIATION Parameter\" error!");
  1729. return((-1));
  1730. }
  1731. typ = atoi(argv[0]);
  1732. if ( typ < 0 || typ > 10 )
  1733. goto _ERR;
  1734. if ( typ == 0 )
  1735. {
  1736. if ( argc != 21 )
  1737. goto _ERR;
  1738. for ( i = 0; i < 5; ++i )
  1739. {
  1740. v = atoi(argv[i*2+1]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1741. dat[i*2 ] = v;
  1742. v = atoi(argv[i*2+2]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1743. dat[i*2+1] = v;
  1744. }
  1745. for ( i = 0; i < 5; ++i )
  1746. {
  1747. v = atoi(argv[11+i]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1748. dat[10+i] = v;
  1749. }
  1750. adr = 0x010019;
  1751. siz = 15;
  1752. } else
  1753. {
  1754. if ( typ <= 5 )
  1755. {
  1756. if ( argc != 3 )
  1757. goto _ERR;
  1758. v = atoi(argv[1]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1759. dat[0] = v;
  1760. v = atoi(argv[2]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1761. dat[1] = v;
  1762. adr = 0x010019 + (typ - 1)*2;
  1763. siz = 2;
  1764. } else
  1765. {
  1766. if ( argc != 2 )
  1767. goto _ERR;
  1768. v = atoi(argv[1]); if ( v < 0 || v > 0x7F ) goto _ERR;
  1769. dat[0] = v;
  1770. adr = 0x010023 + typ - 6;
  1771. siz = 1;
  1772. }
  1773. }
  1774. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1775. }
  1776. # 503 "tg300me.c"
  1777. int exTG300_preVarParam( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1778. {
  1779. char dat[16];
  1780. unsigned int adr, siz;
  1781. int typ, v, i;
  1782.  
  1783. if ( argc < 2 )
  1784. {
  1785. _ERR: MM_setErrMsg(sqr,"TG300 \"Pre-VARIATION Parameter\" error!");
  1786. return((-1));
  1787. }
  1788. typ = atoi(argv[0]);
  1789. if ( typ < 0 || typ > 8 )
  1790. goto _ERR;
  1791. if ( typ == 0 )
  1792. {
  1793. if ( argc != 9 )
  1794. goto _ERR;
  1795. for ( i = 0; i < 8; ++i )
  1796. {
  1797. v = atoi(argv[i+1]);
  1798. if ( v < 0 || v > 0x7F )
  1799. goto _ERR;
  1800. dat[i] = v;
  1801. }
  1802. adr = 0x010028;
  1803. siz = 8;
  1804. } else
  1805. {
  1806. if ( argc != 2 )
  1807. goto _ERR;
  1808. v = atoi(argv[1]);
  1809. if ( v < 0 || v > 0x7F )
  1810. goto _ERR;
  1811. dat[0] = v;
  1812. adr = 0x010028 + typ - 1;
  1813. siz = 1;
  1814. }
  1815. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1816. }
  1817. # 554 "tg300me.c"
  1818. int exTG300_preRevParam( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1819. {
  1820. char dat[16];
  1821. unsigned int adr, siz;
  1822. int typ, v, i;
  1823.  
  1824. if ( argc < 2 )
  1825. {
  1826. _ERR: MM_setErrMsg(sqr,"TG300 \"Pre-REVERB Parameter\" error!");
  1827. return((-1));
  1828. }
  1829. typ = atoi(argv[0]);
  1830. if ( typ < 0 || typ > 9 )
  1831. goto _ERR;
  1832. if ( typ == 0 )
  1833. {
  1834. if ( argc != 10 )
  1835. goto _ERR;
  1836. for ( i = 0; i < 9; ++i )
  1837. {
  1838. v = atoi(argv[i+1]);
  1839. if ( v < 0 || v > 0x7F )
  1840. goto _ERR;
  1841. dat[i] = v;
  1842. }
  1843. adr = 0x010032;
  1844. siz = 8;
  1845. } else
  1846. {
  1847. if ( argc != 2 )
  1848. goto _ERR;
  1849. v = atoi(argv[i+1]);
  1850. if ( v < 0 || v > 0x7F )
  1851. goto _ERR;
  1852. dat[0] = v;
  1853. adr = 0x010032 + typ - 1;
  1854. siz = 1;
  1855. }
  1856. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1857. }
  1858. # 605 "tg300me.c"
  1859. int exTG300_revParam( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1860. {
  1861. char dat[16];
  1862. unsigned int adr, siz;
  1863. int typ, v, i;
  1864.  
  1865. if ( argc < 2 )
  1866. {
  1867. _ERR: MM_setErrMsg(sqr,"TG300 \"REVERB Parameter\" error!");
  1868. return((-1));
  1869. }
  1870. typ = atoi(argv[0]);
  1871. if ( typ < 0 || typ > 10 )
  1872. goto _ERR;
  1873. if ( typ == 0 )
  1874. {
  1875. if ( argc != 11 )
  1876. goto _ERR;
  1877. for ( i = 0; i < 10; ++i )
  1878. {
  1879. v = atoi(argv[i+1]);
  1880. if ( v < 0 || v > 0x7F )
  1881. goto _ERR;
  1882. dat[i] = v;
  1883. }
  1884. adr = 0x01003C;
  1885. siz = 10;
  1886. } else
  1887. {
  1888. if ( argc != 2 )
  1889. goto _ERR;
  1890. v = atoi(argv[i+1]);
  1891. if ( v < 0 || v > 0x7F )
  1892. goto _ERR;
  1893. dat[0] = v;
  1894. adr = 0x01003C + typ - 1;
  1895. siz = 1;
  1896. }
  1897. return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  1898. }
  1899. # 5 "tg300mp.c"
  1900. int Tg300partAdrOfs[16] =
  1901. {
  1902. 0x100,0x200,0x300,0x400,0x500,0x600,0x700,0x800,0x900,0x000,0xA00,0xB00,0xC00,0xD00,0xE00,0xF00
  1903. };
  1904.  
  1905. int tg300_getPart( char *s )
  1906. {
  1907. int part;
  1908.  
  1909. part = atoi(s) - 1;
  1910. if ( part < 0 || part > 15 )
  1911. return (-1);
  1912. return (part);
  1913. }
  1914. # 27 "tg300mp.c"
  1915. int exTG300_elementReserve( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1916. {
  1917. char dat[4];
  1918. int part, v;
  1919.  
  1920. if ( argc != 2 )
  1921. {
  1922. _ERR: MM_setErrMsg(sqr,"TG300 \"ELEMENT RESERVE\" error!");
  1923. return((-1));
  1924. }
  1925. if ( (part = tg300_getPart(argv[0])) < 0 )
  1926. goto _ERR;
  1927. v = atoi(argv[1]);
  1928. if ( v < 0 || v > 32 )
  1929. goto _ERR;
  1930. dat[0] = v;
  1931. return tg300_genMML( sqr, bufSiz, buf, 0x020000+Tg300partAdrOfs[part], 1, dat );
  1932. }
  1933. # 54 "tg300mp.c"
  1934. int exTG300_bank( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1935. {
  1936. char dat[4];
  1937. int part, msb, lsb;
  1938.  
  1939. if ( argc != 3 )
  1940. {
  1941. _ERR: MM_setErrMsg(sqr,"TG300 \"BANK SELECT\" error!");
  1942. return((-1));
  1943. }
  1944. if ( (part = tg300_getPart(argv[0])) < 0 )
  1945. goto _ERR;
  1946. msb = atoi(argv[1]); if ( msb < 0 || msb > 0x7F ) goto _ERR;
  1947. lsb = atoi(argv[2]); if ( lsb < 0 || lsb > 0x7F ) goto _ERR;
  1948. dat[0] = msb;
  1949. dat[1] = lsb;
  1950. return tg300_genMML( sqr, bufSiz, buf, 0x020001+Tg300partAdrOfs[part], 2, dat );
  1951. }
  1952. # 82 "tg300mp.c"
  1953. int exTG300_programNo( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1954. {
  1955. char dat[4];
  1956. int part, v;
  1957.  
  1958. if ( argc != 2 )
  1959. {
  1960. _ERR: MM_setErrMsg(sqr,"TG300 \"PROGRAM NUMBER\" error!");
  1961. return((-1));
  1962. }
  1963. if ( (part = tg300_getPart(argv[0])) < 0 )
  1964. goto _ERR;
  1965. v = atoi(argv[1]) - 1;
  1966. if ( v < 0 || v > 127 )
  1967. goto _ERR;
  1968. dat[0] = v;
  1969. return tg300_genMML( sqr, bufSiz, buf, 0x020003+Tg300partAdrOfs[part], 2, dat );
  1970. }
  1971. # 109 "tg300mp.c"
  1972. int exTG300_rcvChannel( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1973. {
  1974. char dat[4];
  1975. int part, v;
  1976.  
  1977. if ( argc != 2 )
  1978. {
  1979. _ERR: MM_setErrMsg(sqr,"TG300 \"Rcv CHANNEL\" error!");
  1980. return((-1));
  1981. }
  1982. if ( (part = tg300_getPart(argv[0])) < 0 )
  1983. goto _ERR;
  1984. v = atoi(argv[1]);
  1985. if ( v == 0 )
  1986. v = 0x10;
  1987. else
  1988. --v;
  1989. if ( v < 0 || v > 16 )
  1990. goto _ERR;
  1991. dat[0] = v;
  1992. return tg300_genMML( sqr, bufSiz, buf, 0x020004+Tg300partAdrOfs[part], 1, dat );
  1993. }
  1994. # 141 "tg300mp.c"
  1995. int exTG300_monoPolyMode( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  1996. {
  1997. char dat[4];
  1998. int part, v;
  1999.  
  2000. if ( argc != 2 )
  2001. {
  2002. _ERR: MM_setErrMsg(sqr,"TG300 \"MONO/POLY MODE\" error!");
  2003. return((-1));
  2004. }
  2005. if ( (part = tg300_getPart(argv[0])) < 0 )
  2006. goto _ERR;
  2007. v = atoi(argv[1]);
  2008. if ( v < 0 || v > 1 )
  2009. goto _ERR;
  2010. dat[0] = v;
  2011. return tg300_genMML( sqr, bufSiz, buf, 0x020015+Tg300partAdrOfs[part], 1, dat );
  2012. }
  2013. # 170 "tg300mp.c"
  2014. int exTG300_keyAssign( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2015. {
  2016. char dat[4];
  2017. int part, v;
  2018.  
  2019. if ( argc != 2 )
  2020. {
  2021. _ERR: MM_setErrMsg(sqr,"TG300 \"SAME NOTE NUMBER KEY ON ASSIGN\" error!");
  2022. return((-1));
  2023. }
  2024. if ( (part = tg300_getPart(argv[0])) < 0 )
  2025. goto _ERR;
  2026. v = atoi(argv[1]);
  2027. if ( v < 0 || v > 2 )
  2028. goto _ERR;
  2029. dat[0] = v;
  2030. return tg300_genMML( sqr, bufSiz, buf, 0x020016+Tg300partAdrOfs[part], 1, dat );
  2031. }
  2032. # 198 "tg300mp.c"
  2033. int exTG300_partMode( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2034. {
  2035. char dat[4];
  2036. int part, v;
  2037.  
  2038. if ( argc != 2 )
  2039. {
  2040. _ERR: MM_setErrMsg(sqr,"TG300 \"PART MODE\" error!");
  2041. return((-1));
  2042. }
  2043. if ( (part = tg300_getPart(argv[0])) < 0 )
  2044. goto _ERR;
  2045. v = atoi(argv[1]);
  2046. if ( v < 0 || v > 1 )
  2047. goto _ERR;
  2048. dat[0] = v;
  2049. return tg300_genMML( sqr, bufSiz, buf, 0x020017+Tg300partAdrOfs[part], 1, dat );
  2050. }
  2051. # 225 "tg300mp.c"
  2052. int exTG300_noteShift( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2053. {
  2054. char dat[4];
  2055. int part, v;
  2056.  
  2057. if ( argc != 2 )
  2058. {
  2059. _ERR: MM_setErrMsg(sqr,"TG300 \"NOTE SHIFT\" error!");
  2060. return((-1));
  2061. }
  2062. if ( (part = tg300_getPart(argv[0])) < 0 )
  2063. goto _ERR;
  2064. v = atoi(argv[1]) + 0x40;
  2065. if ( v < 0x28 || v > 0x58 )
  2066. goto _ERR;
  2067. dat[0] = v;
  2068. return tg300_genMML( sqr, bufSiz, buf, 0x020018+Tg300partAdrOfs[part], 1, dat );
  2069. }
  2070. # 252 "tg300mp.c"
  2071. int exTG300_detune( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2072. {
  2073. char dat[4];
  2074. int part, v;
  2075.  
  2076. if ( argc != 2 )
  2077. {
  2078. _ERR: MM_setErrMsg(sqr,"TG300 \"DETUNE\" error!");
  2079. return((-1));
  2080. }
  2081. if ( (part = tg300_getPart(argv[0])) < 0 )
  2082. goto _ERR;
  2083. v = atoi(argv[1]) + 0x80;
  2084. if ( v < 0x00 || v > 0xFF )
  2085. goto _ERR;
  2086. dat[0] = (v >> 4) & 0x0F;
  2087. dat[1] = v & 0x0F;
  2088. return tg300_genMML( sqr, bufSiz, buf, 0x020019+Tg300partAdrOfs[part], 2, dat );
  2089. }
  2090. # 280 "tg300mp.c"
  2091. int exTG300_volume( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2092. {
  2093. char dat[4];
  2094. int part, v;
  2095.  
  2096. if ( argc != 2 )
  2097. {
  2098. _ERR: MM_setErrMsg(sqr,"TG300 \"VOLUME\" error!");
  2099. return((-1));
  2100. }
  2101. if ( (part = tg300_getPart(argv[0])) < 0 )
  2102. goto _ERR;
  2103. v = atoi(argv[1]);
  2104. if ( v < 0 || v > 0x7F )
  2105. goto _ERR;
  2106. dat[0] = v;
  2107. return tg300_genMML( sqr, bufSiz, buf, 0x02001B+Tg300partAdrOfs[part], 1, dat );
  2108. }
  2109. # 308 "tg300mp.c"
  2110. int exTG300_velSensDepth( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2111. {
  2112. char dat[4];
  2113. int part, v;
  2114.  
  2115. if ( argc != 2 )
  2116. {
  2117. _ERR: MM_setErrMsg(sqr,"TG300 \"VELOCITY SENSE DEPTH\" error!");
  2118. return((-1));
  2119. }
  2120. if ( (part = tg300_getPart(argv[0])) < 0 )
  2121. goto _ERR;
  2122. v = atoi(argv[1]);
  2123. if ( v < 0 || v > 0x7F )
  2124. goto _ERR;
  2125. dat[0] = v;
  2126. return tg300_genMML( sqr, bufSiz, buf, 0x02001C+Tg300partAdrOfs[part], 1, dat );
  2127. }
  2128. # 335 "tg300mp.c"
  2129. int exTG300_velSensOffst( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2130. {
  2131. char dat[4];
  2132. int part, v;
  2133.  
  2134. if ( argc != 2 )
  2135. {
  2136. _ERR: MM_setErrMsg(sqr,"TG300 \"VELOCITY SENSE OFFSET\" error!");
  2137. return((-1));
  2138. }
  2139. if ( (part = tg300_getPart(argv[0])) < 0 )
  2140. goto _ERR;
  2141. v = atoi(argv[1]);
  2142. if ( v < 0 || v > 0x7F )
  2143. goto _ERR;
  2144. dat[0] = v;
  2145. return tg300_genMML( sqr, bufSiz, buf, 0x02001D+Tg300partAdrOfs[part], 1, dat );
  2146. }
  2147. # 362 "tg300mp.c"
  2148. int exTG300_pan( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2149. {
  2150. char dat[4];
  2151. int part, v;
  2152.  
  2153. if ( argc != 2 )
  2154. {
  2155. _ERR: MM_setErrMsg(sqr,"TG300 \"PAN\" error!");
  2156. return((-1));
  2157. }
  2158. if ( (part = tg300_getPart(argv[0])) < 0 )
  2159. goto _ERR;
  2160. if ( strcmpi(argv[1],"rnd") == 0 )
  2161. v = 0;
  2162. else
  2163. {
  2164. v = atoi(argv[1]);
  2165. if ( v < -63 || v > 63 )
  2166. goto _ERR;
  2167. v += 64;
  2168. }
  2169. dat[0] = v;
  2170. return tg300_genMML( sqr, bufSiz, buf, 0x02001E+Tg300partAdrOfs[part], 1, dat );
  2171. }
  2172. # 400 "tg300mp.c"
  2173. int exTG300_mwControl( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2174. {
  2175. char dat[8];
  2176. int part, pitch, filter, amp, pmod, fmod;
  2177.  
  2178. if ( argc != 6 )
  2179. {
  2180. _ERR: MM_setErrMsg(sqr,"TG300 \"MW CONTROL\" error!");
  2181. return((-1));
  2182. }
  2183. if ( (part = tg300_getPart(argv[0])) < 0 )
  2184. goto _ERR;
  2185. pitch = atoi(argv[1]) + 0x40;
  2186. filter = atoi(argv[2]) + 0x40;
  2187. amp = atoi(argv[3]) + 0x40;
  2188. pmod = atoi(argv[4]);
  2189. fmod = atoi(argv[5]);
  2190. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2191. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2192. goto _ERR;
  2193. dat[0] = pitch;
  2194. dat[1] = filter;
  2195. dat[2] = amp;
  2196. dat[3] = pmod;
  2197. dat[4] = fmod;
  2198. return tg300_genMML( sqr, bufSiz, buf, 0x02003B+Tg300partAdrOfs[part], 5, dat );
  2199. }
  2200. # 441 "tg300mp.c"
  2201. int exTG300_bendControl( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2202. {
  2203. char dat[8];
  2204. int part, pitch, filter, amp, pmod, fmod;
  2205.  
  2206. if ( argc != 6 )
  2207. {
  2208. _ERR: MM_setErrMsg(sqr,"TG300 \"BEND CONTROL\" error!");
  2209. return((-1));
  2210. }
  2211. if ( (part = tg300_getPart(argv[0])) < 0 )
  2212. goto _ERR;
  2213. pitch = atoi(argv[1]) + 0x40;
  2214. filter = atoi(argv[2]) + 0x40;
  2215. amp = atoi(argv[3]) + 0x40;
  2216. pmod = atoi(argv[4]);
  2217. fmod = atoi(argv[5]);
  2218. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2219. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2220. goto _ERR;
  2221. dat[0] = pitch;
  2222. dat[1] = filter;
  2223. dat[2] = amp;
  2224. dat[3] = pmod;
  2225. dat[4] = fmod;
  2226. return tg300_genMML( sqr, bufSiz, buf, 0x020041+Tg300partAdrOfs[part], 5, dat );
  2227. }
  2228. # 481 "tg300mp.c"
  2229. int exTG300_catControl( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2230. {
  2231. char dat[8];
  2232. int part, pitch, filter, amp, pmod, fmod;
  2233.  
  2234. if ( argc != 6 )
  2235. {
  2236. _ERR: MM_setErrMsg(sqr,"TG300 \"CAT CONTROL\" error!");
  2237. return((-1));
  2238. }
  2239. if ( (part = tg300_getPart(argv[0])) < 0 )
  2240. goto _ERR;
  2241. pitch = atoi(argv[1]) + 0x40;
  2242. filter = atoi(argv[2]) + 0x40;
  2243. amp = atoi(argv[3]) + 0x40;
  2244. pmod = atoi(argv[4]);
  2245. fmod = atoi(argv[5]);
  2246. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2247. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2248. goto _ERR;
  2249. dat[0] = pitch;
  2250. dat[1] = filter;
  2251. dat[2] = amp;
  2252. dat[3] = pmod;
  2253. dat[4] = fmod;
  2254. return tg300_genMML( sqr, bufSiz, buf, 0x020047+Tg300partAdrOfs[part], 5, dat );
  2255. }
  2256. # 521 "tg300mp.c"
  2257. int exTG300_patControl( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2258. {
  2259. char dat[8];
  2260. int part, pitch, filter, amp, pmod, fmod;
  2261.  
  2262. if ( argc != 6 )
  2263. {
  2264. _ERR: MM_setErrMsg(sqr,"TG300 \"PAT CONTROL\" error!");
  2265. return((-1));
  2266. }
  2267. if ( (part = tg300_getPart(argv[0])) < 0 )
  2268. goto _ERR;
  2269. pitch = atoi(argv[1]) + 0x40;
  2270. filter = atoi(argv[2]) + 0x40;
  2271. amp = atoi(argv[3]) + 0x40;
  2272. pmod = atoi(argv[4]);
  2273. fmod = atoi(argv[5]);
  2274. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2275. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2276. goto _ERR;
  2277. dat[0] = pitch;
  2278. dat[1] = filter;
  2279. dat[2] = amp;
  2280. dat[3] = pmod;
  2281. dat[4] = fmod;
  2282. return tg300_genMML( sqr, bufSiz, buf, 0x02004D+Tg300partAdrOfs[part], 5, dat );
  2283. }
  2284. # 561 "tg300mp.c"
  2285. int exTG300_ac1Control( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2286. {
  2287. char dat[8];
  2288. int part, pitch, filter, amp, pmod, fmod;
  2289.  
  2290. if ( argc != 6 )
  2291. {
  2292. _ERR: MM_setErrMsg(sqr,"TG300 \"AC1 CONTROL\" error!");
  2293. return((-1));
  2294. }
  2295. if ( (part = tg300_getPart(argv[0])) < 0 )
  2296. goto _ERR;
  2297. pitch = atoi(argv[1]) + 0x40;
  2298. filter = atoi(argv[2]) + 0x40;
  2299. amp = atoi(argv[3]) + 0x40;
  2300. pmod = atoi(argv[4]);
  2301. fmod = atoi(argv[5]);
  2302. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2303. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2304. goto _ERR;
  2305. dat[0] = pitch;
  2306. dat[1] = filter;
  2307. dat[2] = amp;
  2308. dat[3] = pmod;
  2309. dat[4] = fmod;
  2310. return tg300_genMML( sqr, bufSiz, buf, 0x020053+Tg300partAdrOfs[part], 5, dat );
  2311. }
  2312. # 601 "tg300mp.c"
  2313. int exTG300_ac2Control( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2314. {
  2315. char dat[8];
  2316. int part, pitch, filter, amp, pmod, fmod;
  2317.  
  2318. if ( argc != 6 )
  2319. {
  2320. _ERR: MM_setErrMsg(sqr,"TG300 \"AC2 CONTROL\" error!");
  2321. return((-1));
  2322. }
  2323. if ( (part = tg300_getPart(argv[0])) < 0 )
  2324. goto _ERR;
  2325. pitch = atoi(argv[1]) + 0x40;
  2326. filter = atoi(argv[2]) + 0x40;
  2327. amp = atoi(argv[3]) + 0x40;
  2328. pmod = atoi(argv[4]);
  2329. fmod = atoi(argv[5]);
  2330. if ( pitch < 0x28 || pitch > 0x58 || filter < 0 || filter > 0x7F
  2331. || amp < 0 || amp > 0x7F || pmod < 0 || pmod > 0x7F || fmod < 0 || fmod > 0x7F )
  2332. goto _ERR;
  2333. dat[0] = pitch;
  2334. dat[1] = filter;
  2335. dat[2] = amp;
  2336. dat[3] = pmod;
  2337. dat[4] = fmod;
  2338. return tg300_genMML( sqr, bufSiz, buf, 0x020059+Tg300partAdrOfs[part], 5, dat );
  2339. }
  2340. # 5 "tg300ds.c"
  2341. int Tg300drumBlockOfs[16] =
  2342. {
  2343. 0x10000,0x20000,0x30000,0x40000,0x50000,0x60000,0x70000,0x80000,
  2344. 0x90000,0x00000,0xA0000,0xB0000,0xC0000,0xD0000,0xE0000,0xF0000
  2345. };
  2346. # 38 "tg300ds.c"
  2347. int exTG300_drumSetup( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2348. {
  2349. char dat[20];
  2350. int part, note;
  2351. int pitch, fine, level, grp, pan, rev, cho, kasn;
  2352. int rxOff, rxOn, freq, reso, atak, dc1, dc2, var;
  2353.  
  2354. if ( argc != 18 )
  2355. {
  2356. _ERR: MM_setErrMsg(sqr,"TG300 \"DRUM SETUP PARAMETER\" error!");
  2357. return((-1));
  2358. }
  2359. if ( (part = tg300_getPart(argv[0])) < 0 )
  2360. goto _ERR;
  2361. note = atoi(argv[1]);
  2362. if ( note < 0x1B || note > 0x58 )
  2363. goto _ERR;
  2364. pitch = atoi(argv[ 2]);
  2365. fine = atoi(argv[ 3]) + 0x40;
  2366. level = atoi(argv[ 4]);
  2367. if ( strcmpi( argv[ 5],"rnd") == 0 )
  2368. pan = 0;
  2369. else
  2370. pan = atoi(argv[ 5]) + 0x40;
  2371. rev = atoi(argv[ 6]);
  2372. cho = atoi(argv[ 7]);
  2373. var = atoi(argv[ 8]);
  2374. freq = atoi(argv[ 9]);
  2375. reso = atoi(argv[10]);
  2376. grp = atoi(argv[11]);
  2377. kasn = atoi(argv[12]);
  2378. rxOn = atoi(argv[13]);
  2379. rxOff = atoi(argv[14]);
  2380. atak = atoi(argv[15]);
  2381. dc1 = atoi(argv[16]);
  2382. dc2 = atoi(argv[17]);
  2383.  
  2384. dat[ 0] = pitch;
  2385. dat[ 1] = fine;
  2386. dat[ 2] = level;
  2387. dat[ 3] = grp;
  2388. dat[ 4] = pan;
  2389. dat[ 5] = rev;
  2390. dat[ 6] = cho;
  2391. dat[ 7] = kasn;
  2392. dat[ 8] = rxOff;
  2393. dat[ 9] = rxOn;
  2394. dat[10] = freq;
  2395. dat[11] = reso;
  2396. dat[12] = atak;
  2397. dat[13] = dc2;
  2398. dat[14] = dc1;
  2399. dat[15] = var;
  2400. return tg300_genMML( sqr, bufSiz, buf, 0x100000+Tg300drumBlockOfs[part]+(note<<8), 16, dat );
  2401. }
  2402. # 5 "tg300vm.c"
  2403. int _tg300_readVoiceData( char *fp, char *common, char *e1buf, char *e2buf );
  2404. int my_isxdigit(int ch);
  2405. # 19 "tg300vm.c"
  2406. int exTG300_voiceDataSet( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  2407. {
  2408. int ret, vno, retsiz;
  2409. char *fp;
  2410. char *fn, excl[256], tmp[1024];
  2411. char common[16], e1buf[0x80], e2buf[0x80];
  2412.  
  2413. if ( argc != 2 )
  2414. {
  2415. _ERR: MM_setErrMsg(sqr,"TG300 \"VOICE DATA SET\" error!");
  2416. return((-1));
  2417. }
  2418. vno = atoi(argv[0]) - 1;
  2419. if ( vno < 0 || vno > 127 )
  2420. goto _ERR;
  2421. fn = argv[1];
  2422. if ( (fp = MM_fopen(sqr,fn,"r")) == (0) )
  2423. {
  2424. MM_setErrMsg(sqr,"TG300 \"VOICE DATA SET\" file open eror! (%s)", fn);
  2425. return((-1));
  2426. }
  2427. ret = _tg300_readVoiceData( fp, common, e1buf, e2buf );
  2428. fclose(fp);
  2429. if ( ret )
  2430. goto _ERR;
  2431.  
  2432. retsiz = 0;
  2433.  
  2434.  
  2435. ret = tg300_excl( excl, 0x040000 + (vno<<8), 0x0B, common);
  2436. ret = make_sysEx( tmp, ret, excl);
  2437. if ( ret >= bufSiz )
  2438. {
  2439. _STR_ERR:
  2440. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  2441. return ((-1));
  2442. }
  2443. memcpy( buf, tmp, ret );
  2444. bufSiz -= ret;
  2445. buf += ret;
  2446. retsiz += ret;
  2447.  
  2448.  
  2449. ret = tg300_excl( excl, 0x050000 + (vno<<8), 0x50, e1buf);
  2450. ret = make_sysEx( tmp, ret, excl);
  2451. if ( ret >= bufSiz )
  2452. goto _STR_ERR;
  2453. memcpy( buf, tmp, ret );
  2454. bufSiz -= ret;
  2455. buf += ret;
  2456. retsiz += ret;
  2457.  
  2458.  
  2459. if ( common[1] == 1 )
  2460. {
  2461. ret = tg300_excl( excl, 0x060000 + (vno<<8), 0x50, e2buf);
  2462. ret = make_sysEx( tmp, ret, excl);
  2463. if ( ret >= bufSiz )
  2464. goto _STR_ERR;
  2465. memcpy( buf, tmp, ret );
  2466. bufSiz -= ret;
  2467. retsiz += ret;
  2468. buf += ret;
  2469. }
  2470. return (retsiz);
  2471. }
  2472.  
  2473. int _tg300_readVoiceData( char *fp, char *common, char *e1buf, char *e2buf )
  2474. {
  2475. char *s, buf[512];
  2476. int siz, ret, dat, c1, c2, len, mode;
  2477. unsigned adr;
  2478. char name[12];
  2479. char flgCommon, flgEle1, flgEle2;
  2480.  
  2481. ret = (0);
  2482. flgCommon = 0;
  2483. flgEle1 = 0;
  2484. flgEle2 = 0;
  2485. mode = -1;
  2486. while ( fgets(buf,512,fp) != (0) )
  2487. {
  2488. s = buf;
  2489. while(isspace(*(s))) ++(s);
  2490. if ( *s == '#' || *s == '\0' )
  2491. goto _NEXT_LINE;
  2492. if ( *s == '.' )
  2493. {
  2494. if ( mode >= 0 )
  2495. break;
  2496. ++s;
  2497. while(isspace(*(s))) ++(s);
  2498. if ( strncmp(s,"voice",5) == 0 )
  2499. {
  2500. s += 5;
  2501. while(isspace(*(s))) ++(s);
  2502. strncpy( name, s, 8 ); name[8] = '\0';
  2503. mode = 0;
  2504. siz = 0;
  2505. } else if ( strncmp(s,"element",7) == 0 )
  2506. {
  2507. s += 7;
  2508. while(isspace(*(s))) ++(s);
  2509. mode = atoi(s);
  2510. if ( mode < 1 || mode > 2 )
  2511. {
  2512. ret = (-1);
  2513. break;
  2514. }
  2515. siz = 0;
  2516. }
  2517. } else if ( mode >= 0 )
  2518. {
  2519. for (;;)
  2520. {
  2521. if ( *s == '#' )
  2522. goto _NEXT_LINE;
  2523. c1 = my_isxdigit(s[0]);
  2524. c2 = my_isxdigit(s[1]);
  2525. if ( c1 >= 0 && c2 >= 0 )
  2526. {
  2527. s += 2;
  2528. dat = (c1<<4) | c2;
  2529. switch ( mode )
  2530. {
  2531. case 0:
  2532. common[siz++] = dat;
  2533. if ( siz == 3 )
  2534. {
  2535. len = strlen(name);
  2536. memcpy(&common[3],"        ",8 );
  2537. memcpy(&common[3],name ,len);
  2538. flgCommon = 1;
  2539. mode = -1;
  2540. goto _NEXT_LINE;
  2541. }
  2542. break;
  2543.  
  2544. case 1:
  2545. e1buf[siz++] = dat;
  2546. if ( siz == 0x50 )
  2547. {
  2548. flgEle1 = 1;
  2549. mode = -1;
  2550. goto _NEXT_LINE;
  2551. }
  2552. break;
  2553.  
  2554. case 2:
  2555. e2buf[siz++] = dat;
  2556. if ( siz == 0x50 )
  2557. {
  2558. flgEle2 = 1;
  2559. mode = -1;
  2560. goto _NEXT_LINE;
  2561. }
  2562. break;
  2563. }
  2564. } else
  2565. ++s;
  2566. }
  2567. }
  2568. _NEXT_LINE:
  2569. ;
  2570. }
  2571. if ( ret != (0) )
  2572. return ((-1));
  2573.  
  2574. if ( flgCommon == 0 || flgEle1 == 0 )
  2575. return ((-1));
  2576. if ( common[1] == 1 && flgEle2 ==0 )
  2577. return ((-1));
  2578.  
  2579. return ((0));
  2580. }
  2581.  
  2582. int my_isxdigit(int ch)
  2583. {
  2584. if ( ch >= '0' && ch <= '9' )
  2585. return (ch - '0');
  2586. else if ( ch >= 'A' && ch <= 'Z' )
  2587. return (ch - 'A' + 10);
  2588. else if ( ch >= 'a' && ch <= 'z' )
  2589. return (ch - 'a' + 10);
  2590. else
  2591. return (-1);
  2592. }
  2593. # 18 "main.c"
  2594. int HE386_start( char *sqr )
  2595. {
  2596. GM_macroInit(sqr);
  2597. GS_macroInit(sqr);
  2598.  
  2599.  
  2600. SC55disp_macroInit( sqr );
  2601. # 30 "main.c"
  2602. TG300_macroInit(sqr);
  2603.  
  2604.  
  2605. return ((0));
  2606. }
  2607.