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

  1. /*************************************************************************
  2. *    "he386.c"
  3. *************************************************************************/
  4.  
  5. char    *_he386p_ = "he386p.exp";
  6. char    he386_option[256]  = {0};
  7.  
  8. int        he386_compile( char *pn )
  9. {
  10.     int        ret, drv;
  11.     char    tmp[256], fn[256];
  12.  
  13.     /* カレント変更    */
  14.     drv = toupper(pn[0]) - 'A';
  15.     FS_chdrv(drv);
  16.     FS_getDnamPath(tmp,pn);
  17.     FS_chdir(tmp);
  18.  
  19.     /* DTA 領域の設定    */
  20.     AplDtaInit();
  21.     AplDtaSetStr( "$MainArg", "%s %s %s", _he386p_, he386_option, pn );
  22.  
  23.     ret = AplPclExec( _he386p_, 4 );
  24.  
  25.     FS_getFnam(fn,pn);
  26.     FS_appendSnam( fn, fn, ".mid" );
  27.     if ( FS_isFileExist(fn) > 0 )
  28.         MID_playStart( fn );
  29.  
  30.     return (NORMAL);
  31. }
  32.  
  33. int        he386_menu( char *pn )
  34. {
  35.     int        ret;
  36.     char    tmp[256];
  37.     char    *dlg;
  38.     char    *mnu;
  39.     char    *obj;
  40.     char    *p;
  41.  
  42.     if ( pn[0] == '\0' )
  43.         return (NORMAL);
  44.  
  45.     obj = MNU_alloc(3);
  46.     MNU_setObj(obj, 0, MNU_NOR, 'O', "Option"          , NULL, 1, NULL, NULL);
  47.     MNU_setObj(obj, 1, MNU_BLK,  0 , NULL              , NULL, 2, NULL, NULL);
  48.     MNU_setObj(obj, 2, MNU_NOR, 'C', "Compile (normal)", NULL, 3, NULL, NULL);
  49.  
  50.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT,
  51.                                                         obj, "MML Compile" );
  52.  
  53.     for(;;)
  54.     {
  55.         ret = MNU_start ( mnu );
  56.         switch ( ret )
  57.         {
  58.             case 1: /* option */
  59.                 dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
  60.                                     "HE386 のオプションパラメータを入力してください。");
  61.                 DLG_getsSetTitle( dlg, "MML Compiler option parameter" );
  62.                 strcpy( tmp, he386_option);
  63.                 ret = DLG_getsStart( dlg, 255, tmp );
  64.                 if ( ret >= 0 )
  65.                     strcpy( he386_option, tmp );
  66.                 DLG_getsClose(dlg);
  67.                 break;
  68.  
  69.             case 3: /* compile */
  70.                 he386_compile( pn );
  71.                 goto _RET;
  72.             default:
  73.                 goto _RET;
  74.         }
  75.     }
  76.  
  77. _RET:
  78.     MNU_close(mnu);
  79.     MNU_free(obj);
  80.     return (NORMAL);
  81. }
  82.