home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
install
/
install.cci
< prev
next >
Wrap
Text File
|
1995-06-20
|
91KB
|
3,725 lines
# 1 "main.c"
# 1 "main.c"
# 6 "install.h"
char *get_inst_main_mnu();
char *get_inst_imag_mnu();
char *get_inst_tool_mnu();
char *get_inst_snd_mnu();
char *get_inst_game_mnu();
char *get_inst_data_mnu();
int disp_desktop();
int syl_clear();
int syl_putf(char *form);
char *add_path_fn(char *path, char *fn);
int tif_load(char *fn);
int tiflist_disp( char **list );
int mveplay(char *fn, int loop);
int exprun(char *fn, char *para);
int inst_help( int evNo, char *evDat, char *fn);
int install_end( char *soft_name, int err );
int install_exec( char *probuf );
int item_setApl( int drv, int icon, char *ttl, char *path, char *para, int att );
# 20 "main.c"
int DrvInst = -1;
int PltNoWhite = 5;
int ColBoxNormal = 0;
int ColBoxInfo = 0;
int ColBoxCaution = 0;
int ColBoxError = 0;
int ColMesh = 0;
int init();
int term();
int install_main();
int set_debug_menu(char *mnu);
# 39 "main.c"
int main(int argc, char **argv)
{
init();
install_main();
term();
return (0);
}
int init()
{
char msg[80], tmp[128];
char *mnu;
char *msgMenu[(1)];
char *img;
int winBasCol;
APL_init((0x030A),1,1);
LHA_sysInit((0));
disp_desktop();
SCN_wrtPage(1);
tmp[0] = 0;
tmp[1] = 255;
tmp[2] = 255;
tmp[3] = 255;
SCN_palette(0,PltNoWhite,tmp);
SCN_wrtPage(1);
winBasCol = 0;
winBasCol = (_ScnCol_though);
APL_openBaseWin(winBasCol);
SCN_wrtPage(1);
sprintf(msg,"%c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF);
msgMenu[0] = " INSTALL ";
# 82 "main.c"
APL_openTopBarMenu(Fnt16x16,msg,(_ScnColTbl[12]), (1),Fnt16x12,msgMenu,(_ScnCol_black));
MNU_datAdd( SysMnu, 0, 'A', Fnt16x16, 0, "about_dlg" , 0, "このプログラムについて");
MNU_datAdd( SysMnu, 0, 'F', Fnt16x16, 0, "dsp_freemem", 0, "フリーメモリ" );
mnu = AplMnu[0];
MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "inst_help", "message.doc", "説明" );
MNU_datAdd( mnu, 0, 0 , Rom16x16, 0, "" , 0 , (0) );
MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, get_inst_imag_mnu() , "グラフィック");
MNU_mnuAdd( mnu, 0, 'S', Fnt16x16, get_inst_snd_mnu() , "サウンド" );
MNU_mnuAdd( mnu, 0, 'A', Fnt16x16, get_inst_tool_mnu() , "ツール" );
MNU_mnuAdd( mnu, 0, 'G', Fnt16x16, get_inst_game_mnu() , "ゲーム" );
MNU_mnuAdd( mnu, 0, 'D', Fnt16x16, get_inst_data_mnu() , "データ" );
# 104 "main.c"
APL_setExitEvt("EXIT",(9999),"exit_chk");
AplDtaInit();
ColBoxNormal = SCN_tile_newMixCol(ColBoxNormal ,(0x00),(_ScnCol_dark) ,(_ScnColTbl[ 7]));
ColBoxInfo = SCN_tile_newMixCol(ColBoxInfo ,(0x00),(_ScnColTbl[12]) ,(_ScnColTbl[ 7]));
ColBoxError = SCN_tile_newMixCol(ColBoxError ,(0x00),(_ScnColTbl[10]) ,(_ScnColTbl[ 7]));
ColBoxCaution = SCN_tile_newMixCol(ColBoxCaution,(0x00),(_ScnColTbl[14]),(_ScnColTbl[ 7]));
ColMesh = SCN_tile_newMixCol(ColMesh ,(0x00),(_ScnCol_though),(_ScnColTbl[ 7]));
return ((0));
}
int term()
{
char tmp[256];
FS_chdrv(toupper(DirStart[0]) - 'A');
sprintf(tmp,"%s.",DirStart);
FS_chdir(tmp);
APL_term();
}
int disp_desktop()
{
int n;
char tmp[256];
static char lastno = -1;
static char *tbl[(9)] =
{
"_oht412.tif",
"_oht501.tif",
"_oht502.tif",
"_oht503.tif",
"_oht504.tif",
"_oht505.tif",
"_oht506.tif",
"_oht507.tif",
"_oht508.tif"
};
if ( lastno < 0 )
{
n = (9) - 1;
} else
{
srand( clock() & 0x7FFFFFFF );
do
{
n = rand() % (9);
} while ( n == lastno );
}
sprintf(tmp,"%sWALL/%s", DirStart, tbl[n] );
lastno = n;
return tif_load(tmp);
}
int install_main()
{
int ret;
SCN_wrtPage(1);
syl_clear();
for (;;)
{
PD_curOn();
ret = EV_chk(EvTop,0);
if ( ret == (9999) )
break;
}
return (0);
}
int exit_chk()
{
char *dlgTxm;
int i, ret;
static char *msgtbl[4] =
{
"",
"インストーラを終了しますか?",
"",
(0)
};
dlgTxm = DlgTxm_open(ColBoxCaution);
for ( i = 0; msgtbl[i] != (0); ++i )
DlgTxm_putf( dlgTxm, Fnt16x16, (1), msgtbl[i]);
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnColTbl[15]), (_ScnCol_dark),
'\r' , 0x7300 , (9999), "", 0, "終了 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnColTbl[15]), (_ScnCol_dark),
'\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,64);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != (9999) )
ret = 0;
return (ret);
}
int about_dlg()
{
char *dlgTxm;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16, "天晴CD installer ver.%s edition #%s",
"1.01a", "02" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),"「天晴CD Vol.2 鳳凰の巻」インストールプログラム");
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "%c%c",
Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
DlgTxm_putf( dlgTxm, Rom16x16, (1), "1995 8月号付録");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "%c%c SOFTBANK",
Gaiji_copyright>>8, Gaiji_copyright&0xFF );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
(_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,320,48);
DlgTxm_setPosition(dlgTxm,(1));
DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
return (0);
}
int dsp_freemem()
{
unsigned int siz;
char *dlgTxm;
char tmp1[32], tmp2[32];
siz = APL_getFreeMem();
dlgTxm = DlgTxm_open(ColBoxInfo);
DlgTxm_setTitle(dlgTxm,Fnt16x16, "FREE MEMORY SIZE");
DlgTxm_putf( dlgTxm, Fnt16x12, (1),
"free memory %s (%s) bytes",
fdl_ltoaDig(siz,tmp1), fdl_ltoaMsg(siz,tmp2) );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
(_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,400,64);
DlgTxm_setPosition(dlgTxm,(0),2,22);
DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
}
# 5 "instimg.c"
char *get_inst_imag_mnu()
{
char *mnu;
if ( (mnu = MNU_open()) == (0) )
return ((0));
MNU_datAdd( mnu, 0, 'A', Rom16x16, 0, "install_artemis2", 0, "フルカラー対応 ARTemis" );
MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "install_tetujin" , 0, "画像処理の鉄人達" );
MNU_datAdd( mnu, 0, 'U', Rom16x16, 0, "install_ugoku" , 0, "動くざんす" );
MNU_datAdd( mnu, 0, 'I', Rom16x16, 0, "install_icv" , 0, "減色&画像コンバートツール ICV" );
MNU_datAdd( mnu, 0, 'P', Rom16x16, 0, "install_prin" , 0, "画像入出力ツール PRIN" );
MNU_datAdd( mnu, 0, 'E', Rom16x16, 0, "install_eastray" , 0, "高機能\レイトレーシングシステム EASTRAY" );
MNU_datAdd( mnu, 0, 'O', Rom16x16, 0, "install_okigoku" , 0, "お気楽極楽大作戦「EASTRAY入門」" );
MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_si" , 0, "ビデオ映像表\示 SI" );
MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_marin" , 0, "3D CGツール集 by MARIN" );
MNU_setPosition(mnu,-1);
return (mnu);
}
int install_artemis2()
{
static char *buf[6] =
{
"softname \"「フルカラー対応 ARTemis」\"",
"instfile /OH_TOWNS/ART2 \"artemis*.*\"",
"help artemis2.ggg",
"arcfile src.lzh SRC",
"item \"ARTemis2\",artemis2.exp,\"\",2",
(0)
};
return install_exec(buf);
}
int install_tetujin()
{
static char *buf[7] =
{
"softname \"「画像処理の鉄人達」\"",
"instfile /OH_TOWNS/TETUJIN \"*.exg *.doc\"",
"help TETUJIN.GGG",
"arcfile src.lzh SRC",
"item \"画像処理の鉄人達\" ,TETUJIN.EXG,\"\" ,2",
"item \"画像処理の鉄人達/387\",TETUJINF.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_ugoku()
{
static char *buf[13] =
{
"softname \"「動くざんす」\"",
"instfile /OH_TOWNS/UGOKU \"*.*\"",
"help UGOKU.GGG",
"item \"MOVPLAY\" ,MOVPLAY.EXP,\"\",2",
"item \"MOVPLAY/SHELL\" ,MOVPLAY.EXG,\"\",2",
"item \"MOVREC\" ,MOVREC.EXP ,\"\",2",
"item \"MOVREC/SHELL\" ,MOVREC.EXG ,\"\",2",
"item \"VDSYS\" ,VDSYS.EXP ,\"\",2",
"item \"VDSYS/SHELL\" ,VDSYS.EXG ,\"\",2",
"item \"レリーフ\" ,MOVRLF.EXP ,\"\",2",
"item \"レリーフ/SHELL\" ,MOVRLF.EXG ,\"\",2",
(0)
};
return install_exec(buf);
}
int install_okigoku()
{
static char *buf[4] =
{
"softname \"お気楽極楽大作戦「EASTRAY入門」\"",
"instfile /OH_TOWNS/OKIGOKU \"*.*\"",
"help OKIGOKU.GGG",
(0)
};
return install_exec(buf);
}
int install_icv()
{
static char *buf[6] =
{
"softname \"減色&画像コンバートツール ICV\"",
"instfile /OH_TOWNS/ICV \"*.*\"",
"help ICV099.GGG",
"item \"ICV\" ,ICV.EXP,\"\",2",
"item \"ICV/SHELL\",ICV.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_prin()
{
static char *buf[5] =
{
"softname \"画像入出力ツール PRIN\"",
"instfile /OH_TOWNS/PRIN \"*.*\"",
"help PRIN.GGG",
"item \"PRIN\" ,PRIN.EXP,\"\",2",
(0)
};
return install_exec(buf);
}
int install_si()
{
static char *buf[5] =
{
"softname \"SI version α\"",
"instfile /OH_TOWNS/SI \"*.*\"",
"help SI.DOC",
"item \"SI\" ,SI.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_marin()
{
static char *buf[4] =
{
"softname \"3D CGツール集 by MARIN\"",
"instfile /OH_TOWNS/MARIN \"*.*\"",
"help MARIN.DOC",
(0)
};
return install_exec(buf);
}
# 5 "_eastray.c"
int _eastray_demo()
{
static char *tiflist[16] =
{
"MOON.TIF" ,
"RAYTRACE.TIF",
"BALL3_2.TIF" ,
"FPICS.TIF" ,
"FPICS2.TIF" ,
"FR_C.TIF" ,
"PLANET_C.TIF",
"SAM10.TIF" ,
"SAM13.TIF" ,
"SAM9.TIF" ,
"TEST10.TIF" ,
"TOUMEI_C.TIF",
"FIG3X.TIF" ,
"FIG5X.TIF" ,
"FIG6_2.TIF" ,
(0)
};
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/EASTRAY/DEMO" );
tiflist_disp(tiflist);
return (0);
}
int install_eastray()
{
int ret, drv, fcopy_att, prog_type, srcdrv, item_setup;
char *softname;
char *helpfn;
char *srcdir;
char instdir[256], *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char *dlgTxm;
char tmp[256], tmp2[256];
instdir[0] = '\0';
softname = "「高機能\レイトレーシング システム EASTRAY」";
srcdir = "/OH_TOWNS/EASTRAY";
instfile = "*.*";
helpfn = "/OH_TOWNS/EASTRAY/EASTRAY.GGG";
item_att = 2;
srcdrv = toupper(DirStart[0]) - 'A';
_TOP:
syl_putf("%s",softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", helpfn, "説明 : [H]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
3, "", 0, "デモ : [D");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
4, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret == 3 )
{
_eastray_demo();
goto _TOP;
} else if ( ret != 1 )
goto _RET;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"プログラムの種別を指定してください。" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (0), " 1. TOS386 … TOWNS 用" );
DlgTxm_putf( dlgTxm, Fnt16x16, (0), " 2. TOS387 … TOWNS 用 (数値演算プロセッサ/ODP 搭載機種)" );
DlgTxm_putf( dlgTxm, Fnt16x16, (0), " 3. DOS386 … DOS-EXTENDER汎用" );
DlgTxm_putf( dlgTxm, Fnt16x16, (0), " 4. DOS387 … DOS-EXTENDER汎用(数値演算プロセッサ/ODP 搭載機種)" );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '1', 0x0200,
1, "", 0, "TOS386 : [1]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '2', 0x0300,
2, "", 0, "TOS387 : [2]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '3', 0x0400,
3, "", 0, "DOS386 : [3]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '4', 0x0500,
4, "", 0, "DOS387 : [4]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 1 );
DlgTxm_close(dlgTxm);
prog_type = ret;
ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
if ( ret )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"このディレクトリにインストールしてもいいですか?" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
if ( prog_type == 1 || prog_type == 2 )
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール1 … ファイルを複写してTownsMENU にアイテム登録");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール2 … ファイルを複写(アイテム登録はしない) ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
} else
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 2, "", 0, "インストール : [実行]");
}
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 && ret != 2 )
goto _TOP;
item_setup = (ret == 1 ? 1 : 0);
syl_putf("INSTALL START");
switch ( prog_type )
{
case 1: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/TOWNS386"; break;
case 2: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/TOWNS387"; break;
case 3: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/EXTEN386"; break;
case 4: srcdir = "/OH_TOWNS/EASTRAY/PROGRAM/EXTEN387"; break;
}
FS_chdrv(srcdrv);
FS_getFullPn(tmp,srcdir);
fcopy_att = (0x00000010) | (0x00000100);
instfile = "*.*";
ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
if ( ret == (0) && item_setup != 0 )
{
syl_putf("ITEM SETUP");
drv = toupper(instdir[0]) - 'A';
strcpy(item_para,"");
strcpy(tmp,instdir);
add_path_fn(tmp,"SUPPORT.EXP");
item_setApl( drv, 1024, "EASTRAY/SUPPORT", tmp, item_para, item_att );
}
install_end( softname, ret );
_RET:
syl_clear();
return (0);
}
# 6 "instsnd.c"
char *get_inst_snd_mnu()
{
char *mnu;
if ( (mnu = MNU_open()) == (0) )
return ((0));
MNU_datAdd( mnu, 0, 'O', Rom16x16, 0, "install_otohime", 0, "音姫七変化" );
MNU_datAdd( mnu, 0, 'G', Rom16x16, 0, "install_gwav" , 0, "PCM Player 'GWAV'");
MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_gcanvas", 0, "GraphicCanvas" );
MNU_setPosition(mnu,-1);
return (mnu);
}
int install_otohime()
{
static char *buf[7] =
{
"softname \"音姫七変化シリーズ\"",
"instfile /OH_TOWNS/OTOHIME \"*.*\"",
"help WAVHIME.GGG",
"item \"音姫七変化/WAVE\",WAVHIME.EXG,\"\",2",
"item \"音姫七変化/SND\" ,OTOHIME.EXP,\"\",2",
"item \"音姫七録音機\" ,HIMEREC.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_gwav()
{
static char *buf[5] =
{
"softname \"「PCM Player 'GWAV'」\"",
"instfile /OH_TOWNS/GWAV \"*.*\"",
"help SRC/GWAV.DOC",
"item \"PCM Player GWAV\",EXP\\GWAV.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_gcanvas()
{
static char *buf[5] =
{
"softname \"GraphicCanvas\"",
"instfile /OH_TOWNS/GCANVAS \"*.*\"",
"help GCANVAS.DOC",
"item \"GraphicCanvas\",GCANVAS.EXP,\"\",2",
(0)
};
return install_exec(buf);
}
# 5 "insttool.c"
int install_bascheck();
int install_ccheck();
char *get_inst_tool_mnu()
{
char *mnu;
if ( (mnu = MNU_open()) == (0) )
return ((0));
MNU_datAdd( mnu, 0, 'K', Rom16x16, 0, "install_kakeibo" , 0, "マルチウインド型家計簿" );
MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_gdev" , 0, "エセ統合環境 (GDEV)" );
MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_gdlldbg" , 0, "Townsシェルデバッグ表\示設定" );
MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "install_ssaver" , 0, "Townsシェルスクリーンセーバー" );
MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_dic" , 0, "CD辞書検索プログラム DIC" );
MNU_datAdd( mnu, 0, 'W', Rom16x16, 0, "install_whereis" , 0, "WHEREIS [WHEREIS.EXG]" );
MNU_datAdd( mnu, 0, 'B', Rom16x16, 0, "install_bascheck", 0, "BASICチェックサム" );
MNU_datAdd( mnu, 0, 'C', Rom16x16, 0, "install_ccheck" , 0, "Cソ\ースコードチェックサム" );
MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "install_his" , 0, "ハードウェア割込支援ライブラリ" );
MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "tarosc_install" , 0, "TaroPYON SoftWare collection" );
MNU_setPosition(mnu,-1);
return (mnu);
}
int install_whereis()
{
static char *buf[5] =
{
"softname \"WHEREIS [WHEREIS.EXG] V1.4\"",
"instfile /OH_TOWNS/WHEREIS \"*.*\"",
"help WHEREIS.GGG",
"item \"WHEREIS\",WHEREIS.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_gdev()
{
static char *buf[5] =
{
"softname \"エセ統合環境 V0.1 L10β\"",
"instfile /OH_TOWNS/GDEV \"*.*\"",
"help GDEV.DOC",
"item \"エセ統合環境(GDEV)\",GDEV.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_gdlldbg()
{
static char *buf[5] =
{
"softname \"Townsシェルデバッグ表\示設定\"",
"instfile /OH_TOWNS/GDLLDBG \"*.*\"",
"help GDLLDBG.DOC",
"item \"シェルデバッグ表\示設定\",GDLLDBG.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_ssaver()
{
static char *buf[5] =
{
"softname \"Townsシェルスクリーンセーバー SSAVER\"",
"instfile /OH_TOWNS/SSAVER \"*.*\"",
"help SSAVER.DOC",
"item \"SSAVER\",SSAVER.EXG,\"\",2",
(0)
};
return install_exec(buf);
}
int install_dic()
{
static char *buf[4] =
{
"softname \"CD辞書検索プログラム DIC\"",
"instfile /OH_TOWNS/DIC \"dic.exe dic.doc\"",
"help DIC.GGG",
(0)
};
return install_exec(buf);
}
int install_his()
{
static char *buf[4] =
{
"softname \"ハードウェア割込支援ライブラリ\"",
"instfile /OH_TOWNS/HIS \"*.*\"",
"help HIS.GGG",
(0)
};
return install_exec(buf);
}
int install_bascheck()
{
static char *buf[4] =
{
"softname \"BASICチェックサム\"",
"instfile /OH_TOWNS/LISTTOOL/BASCHECK \"*.bas *.doc\"",
"help BASCHECK.GGG",
(0)
};
return install_exec(buf);
}
int install_ccheck()
{
static char *buf[4] =
{
"softname \"Cソ\ースコードチェックサム\"",
"instfile /OH_TOWNS/LISTTOOL/CCHECK \"*.exe *.c *.doc\"",
"help CHK.GGG",
(0)
};
return install_exec(buf);
}
# 5 "_kakeibo.c"
int _kakeibo_make_cfg(char *instdir);
int install_kakeibo()
{
int ret, drv, fcopy_att, srcdrv, item_setup;
char *softname;
char *helpfn;
char *srcdir;
char instdir[256], *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char *dlgTxm;
char tmp[256];
instdir[0] = '\0';
softname = "マルチウインド型家計簿";
srcdir = "/OH_TOWNS/KAKEIBO";
instfile = "*.*";
helpfn = "/OH_TOWNS/KAKEIBO/KAKEIBO.GGG";
item_ttl = "家計簿";
item_prog = "KAKEIBO.EXP";
item_att = 2;
srcdrv = toupper(DirStart[0]) - 'A';
_TOP:
syl_putf("%s",softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", helpfn, "説明 : [H]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
3, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret != 1 )
goto _RET;
ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
if ( ret )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"このディレクトリにインストールしてもいいですか?" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール1 … ファイルを複写してTownsMENU にアイテム登録");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール2 … ファイルを複写(アイテム登録はしない) ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 && ret != 2 )
goto _TOP;
item_setup = (ret == 1 ? 1 : 0);
syl_putf("INSTALL START");
FS_chdrv(srcdrv);
FS_getFullPn(tmp,srcdir);
fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
if ( ret == (0) )
ret = _kakeibo_make_cfg(instdir);
if ( ret == (0) && item_setup != 0 )
{
syl_putf("ITEM SETUP");
drv = toupper(instdir[0]) - 'A';
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
item_para[0] = '\0';
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
install_end( softname, ret );
_RET:
syl_clear();
return (0);
}
int _kakeibo_make_cfg(char *instdir)
{
int ret, ch, len;
char *fpsrc, *fpdst;
char *s, tmp[256], tmp2[256], buf[256];
ret = (-1);
fpsrc = (0);
fpdst = (0);
strcpy(tmp,DirStart); add_path_fn(tmp,"_kakeibo.cfg");
if ( (fpsrc = FS_fopen(tmp,"r")) == (0) )
goto _ERR;
strcpy(tmp,instdir); add_path_fn(tmp,"kakeibo.cfg");
if ( (fpdst = FS_fopen(tmp,"w")) == (0) )
goto _ERR;
while ( fgets(buf,256,fpsrc) != (0) )
{
if ( buf[0] == '*' )
{
fputs(buf,fpdst);
} else
{
s = buf;
while ( *s != '\0' )
{
if ( *s == '$' && *(char *)(s + 1) == '(' )
{
s += 2;
if ( strncmp(s,"INSTDIR)",8) == 0 )
{
s += 8;
FS_cnvFn(tmp,instdir);
len = strlen(tmp);
if ( len > 0 && tmp[len-1] == '/' )
tmp[len-1] = '\0';
FS_dosFn(tmp2,tmp);
fputs(tmp2,fpdst);
}
} else
{
ch = (*s) & 0xFF;
++s;
fputc(ch,fpdst);
}
}
}
}
ret = (0);
_ERR:
if ( fpsrc != (0) ) FS_fclose(fpsrc);
if ( fpdst != (0) ) FS_fclose(fpdst);
return (ret);
}
# 12 "..\TAROPYON\INSTALL\_tarocol.c"
char *_tc_aplname[(9)] =
{
"HEwin" ,
"EDIA" ,
"GSPLAY" ,
"HE386" ,
"CCI" ,
"WallPop" ,
"DOS tools" ,
"TownsOS tools",
"Sidework"
};
char _tc_skey[(9)] =
{
'H',
'E',
'G',
'M',
'C',
'W',
'D',
'T',
'S'
};
char _tc_instdir[(9)][128];
char _tc_defdir[128];
int _hewin_swapDrv, _hewin_scnmode, _hewin_instmode;
int _edia_swapDrv , _edia_scnmode;
int _gsplay_midi, _gsplay_rsmidi, _gsplay_internal;
char _gsplay_datapath[256];
char _gsplay_datapath_fmb[256];
char _gsplay_datapath_pmb[256];
char _gsplay_datapath_snd[256];
# 58 "..\TAROPYON\INSTALL\_tarocol.c"
int _tc_setinstdir(char *instdir);
int _tc_setapldir();
int _tc_check_config(int item_setup);
int _hewin_config(char *instdir, int item_setup);
int _hewin_install(char *instdir,int item_setup);
int _hewin_setup(char *instdir,int item_setup);
int _edia_config(char *instdir, int item_setup);
int _edia_install(char *instdir,int item_setup);
int _edia_setup(char *instdir,int item_setup);
int _hewin_edia_setup(char *fn_mac, char *instdir,int item_setup);
int _chk_pathlist( char *pathlist, char *path );
int _gsplay_config(char *instdir, int item_setup);
int _gsplay_install(char *instdir,int item_setup);
int _gsplay_setup(char *instdir,int item_setup);
int _he386_install(char *instdir,int item_setup);
int _cci_install(char *instdir,int item_setup);
int _wallpop_install(char *instdir,int item_setup);
int _dostool_install(char *instdir,int item_setup);
int _tostool_install(char *instdir,int item_setup);
int _sdktool_config(char *instdir,int item_setup);
int _sdktool_install(char *instdir,int item_setup);
int tarosc_install()
{
int ret, i, att, len, drv, argc, item_setup;
char *fp;
char **argv, *p, *typename;
char *instdir;
char *softname;
char srcdir[128], instfile[128];
char helpfn[128];
char item_ttl[80],item_prog[16], item_para[128];
int item_att;
char *dlgTxm;
char tmp[256], tmp2[256];
instdir = _tc_defdir; instdir[0] = '\0';
strcpy( instdir, "D:/USR");
softname = "TaroPYON SoftWare collection";
_TOP:
syl_putf(softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", "/OH_TOWNS/TAROPYON/tarocol.doc", "説明 : [H]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
3, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret != 1 )
goto _RET;
_SETDIR:
if ( _tc_setinstdir(instdir) )
goto _TOP;
if ( _tc_setapldir() < 0 )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"以下のディレクトリにインストールします。" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
ret = 0;
for ( i = 0; i < (9); ++i )
{
if ( _tc_instdir[i][0] )
{
ret = 1;
DlgTxm_putf( dlgTxm, Fnt16x12, (0),
" %-14s [%s]", _tc_aplname[i], _tc_instdir[i] );
}
}
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール1 … ファイルを複写してTownsMENU にアイテム登録");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール2 … ファイルを複写(アイテム登録はしない) ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 && ret != 2 )
goto _TOP;
item_setup = (ret == 1 ? 1 : 0);
if ( _tc_instdir[(0) ][0] ) _hewin_config( _tc_instdir[(0) ], item_setup);
if ( _tc_instdir[(1) ][0] ) _edia_config( _tc_instdir[(1) ], item_setup);
if ( _tc_instdir[(2) ][0] ) _gsplay_config( _tc_instdir[(2) ], item_setup);
ret = _tc_check_config(item_setup);
if ( ret < 0 )
goto _TOP;
if ( ret == 0 )
goto _SETDIR;
if ( _tc_instdir[(0) ][0] ) _hewin_install( _tc_instdir[(0) ], item_setup);
if ( _tc_instdir[(1) ][0] ) _edia_install( _tc_instdir[(1) ], item_setup);
if ( _tc_instdir[(2) ][0] ) _gsplay_install( _tc_instdir[(2) ], item_setup);
if ( _tc_instdir[(3) ][0] ) _he386_install( _tc_instdir[(3) ], item_setup);
if ( _tc_instdir[(4) ][0] ) _cci_install( _tc_instdir[(4) ], item_setup);
if ( _tc_instdir[(5)][0] ) _wallpop_install(_tc_instdir[(5)], item_setup);
if ( _tc_instdir[(6)][0] ) _dostool_install(_tc_instdir[(6)], item_setup);
if ( _tc_instdir[(7)][0] ) _tostool_install(_tc_instdir[(7)], item_setup);
if ( _tc_instdir[(8)][0] ) _sdktool_install(_tc_instdir[(8)], item_setup);
install_end( softname, 0 );
_RET:
syl_clear();
return ((0));
}
int _tc_setinstdir(char *instdir)
{
char tmp[256];
if ( APL_setInstallDir(instdir,"インストール先指定") )
return ((-1));
strcpy(tmp,instdir);
add_path_fn(tmp,"");
sprintf( _tc_instdir[(0) ], "%s%s", tmp, "HEWIN" );
sprintf( _tc_instdir[(1) ], "%s%s", tmp, "EDIA" );
sprintf( _tc_instdir[(2) ], "%s%s", tmp, "GSPLAY" );
sprintf( _tc_instdir[(3) ], "%s%s", tmp, "HE386" );
sprintf( _tc_instdir[(4) ], "%s%s", tmp, "CCI" );
sprintf( _tc_instdir[(5)], "%s%s", tmp, "WALLPOP");
sprintf( _tc_instdir[(6)], "%s%s", tmp, "DOS" );
sprintf( _tc_instdir[(7)], "%s%s", tmp, "TOOL" );
sprintf( _tc_instdir[(8)], "%s%s", tmp, "SDK" );
sprintf( _gsplay_datapath , "%s%s", tmp, "DATA" );
return ((0));
}
int _tc_setapldir()
{
char *mnu, *mnuapl[(9)];
char *dir;
int i, flag, ret;
for ( i = 0; i < (9); ++i )
{
if ( (mnuapl[i] = MNU_open()) != (0) )
{
MNU_datAdd( mnuapl[i], 0, '1', Rom16x16, i, "_setdir_tarosc" , (0), "ディレクトリ指定" );
MNU_datAdd( mnuapl[i], 0, '0', Rom16x16, i, "_noinstall_tarosc", (0), "インストールしない");
MNU_setPosition(mnuapl[i],-1);
}
}
do
{
if ( (mnu = MNU_open()) == (0) )
return ((-1));
for ( i = 0; i < (9); ++i )
{
dir = _tc_instdir[i];
if ( *dir == '\0' )
dir = "No install";
MNU_mnuAdd( mnu, 0, _tc_skey[i], Fnt16x16, mnuapl[i],
"%-14s [%s]", _tc_aplname[i], dir);
}
MNU_datAdd( mnu, 0, 0 , (0) , 0, "", 0, (0) );
MNU_datAdd( mnu, 0, 'N', Rom16x16, 1, "", 0, " >>> 次へ進む >>>");
MNU_setPosition(mnu,(0),8,32);
ret = MNU_start(mnu);
MNU_close(mnu);
MNU_datClear(mnu);
} while ( ret == 0 );
flag = 0;
for ( i = 0; i < (9); ++i )
{
if ( _tc_instdir[i][0] )
flag = 1;
MNU_datClear( mnuapl[i] );
}
if ( flag == 0 )
ret = -1;
return (ret);
}
int _setdir_tarosc(int evNo, char *evdat)
{
char *aplname;
char *instdir;
instdir = _tc_instdir[evNo];
if ( *instdir == '\0' )
strcpy(instdir,_tc_defdir);
APL_setInstallDir(instdir,"%s インストール先指定", _tc_aplname[evNo]);
return (0);
}
int _noinstall_tarosc(int evNo, char *evdat)
{
_tc_instdir[evNo][0] = '\0';
return (0);
}
# 289 "..\TAROPYON\INSTALL\_tarocol.c"
int _tc_check_config(int item_setup)
{
int ret, i;
char *dlgTxm;
char tmp[256], *msg;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"設定の確認");
for ( i = 0; i < (9); ++i )
{
if ( _tc_instdir[i][0] )
sprintf( tmp, "%-14s インストール先 … %s",
_tc_aplname[i], _tc_instdir[i] );
else
sprintf( tmp, "%-16s インストールしない",
_tc_aplname[i], _tc_instdir[i] );
DlgTxm_putf( dlgTxm, Fnt16x16, (0), "%s", tmp );
if ( _tc_instdir[i][0] )
{
switch ( i )
{
case (0):
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 初期設定 … [%s]",
_hewin_instmode == (1) ? "する" : "しない");
if ( item_setup )
{
if ( _hewin_swapDrv < 0 )
msg = "指定なし";
else
{
msg = tmp;
sprintf(msg,"%c:", _hewin_swapDrv);
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 作業ドライブ … [%s]", msg);
switch ( _hewin_scnmode )
{
case 2 : msg = "中解像度 736×496" ; break;
case 5 : msg = "高解像度 1024×768"; break;
default: msg = "中解像度 640×480" ; break;
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 画面モード … [%s]", msg);
}
break;
case (1):
if ( item_setup )
{
if ( _edia_swapDrv < 0 )
msg = "指定なし";
else
{
msg = tmp;
sprintf(msg,"%c:", _hewin_swapDrv);
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 作業ドライブ … [%s]", msg);
switch ( _edia_scnmode )
{
case 5 : msg = "高解像度 1024×768"; break;
default: msg = "中解像度 640×480" ; break;
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 画面モード … [%s]", msg);
}
break;
case (2):
if ( item_setup && (_gsplay_midi >= 0 || _gsplay_rsmidi || _gsplay_internal >=0) )
{
if ( _gsplay_midi < 0 )
{
msg = "未使用";
} else
{
msg = tmp;
sprintf(msg,"port %c", _gsplay_midi + 'A' );
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" 演奏データ出力先 … [MIDI card (%s)]", msg);
if ( _gsplay_rsmidi >= 0 )
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" … [RS-232C MIDI]");
if ( _gsplay_internal >= 0 )
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
" … [内蔵音源]");
}
if ( _gsplay_datapath_fmb[0] )
{
DlgTxm_putf( dlgTxm, Fnt16x12, (0),
" FMB data file … [%s]",
isalpha(_gsplay_datapath_fmb[0]) ? "install" : "read from CD-ROM" );
}
if ( _gsplay_datapath_pmb[0] )
{
DlgTxm_putf( dlgTxm, Fnt16x12, (0),
" PMB data file … [%s]",
isalpha(_gsplay_datapath_pmb[0]) ? "install" : "read from CD-ROM" );
}
if ( _gsplay_datapath_snd[0] )
{
DlgTxm_putf( dlgTxm, Fnt16x12, (0),
" SND data file … [%s]",
isalpha(_gsplay_datapath_snd[0]) ? "install" : "read from CD-ROM" );
}
break;
# 407 "..\TAROPYON\INSTALL\_tarocol.c"
}
}
}
DlgTxm_putf( dlgTxm, Fnt16x16, (0), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (0),
"実行ファイルのアイテム登録 … [%s]",
item_setup ? "行う" : "行わない" );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール開始 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'R' , 0x1400 ,
2, "", 0, " 再設定 : [R] ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
3, "", 0, " 取消 : [取消] ");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1:
return (1);
case 2:
return (0);
default:
return (-1);
}
}
int _tc_pre_config( char *instdir, char *exefn, char *aplname )
{
int ret, instflag;
char *dlgTxm;
char fn[256];
strcpy(fn, instdir); add_path_fn(fn, exefn);
instflag = ( FS_isFile(fn) == (1) ) ? 1 : 0;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"%s環境設定", aplname);
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "インストール先 : %s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
if ( instflag )
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"指定のディレクトリには既に%sがインストールされています。", aplname);
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
}
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
1, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 0 );
DlgTxm_close(dlgTxm);
return (instflag);
}
char *_tc_getFcopySrcDir( char *srcdir, char *buf )
{
int len;
char tmp[256];
FS_chdrv( toupper(DirStart[0]) - 'A' );
if ( *srcdir == '\0' || *srcdir == '.' )
{
strcpy(tmp,DirStart);
len = strlen(tmp);
if ( len > 3 && FS_isDelim(tmp[len-1]) )
tmp[len-1] = '\0';
} else
{
if ( FS_isDelim(*srcdir) )
strcpy(tmp,srcdir);
else
sprintf(tmp,"%s%s",DirStart, srcdir);
}
FS_getFullPn(buf,tmp);
return (buf);
}
int _hewin_edia_setup(char *fn_mac, char *instdir,int item_setup)
{
char *p, *s, *dir, *pathInst, fnMac[256], path[1024];
char *MACROKEY_EXPSEARCH_PATH;
char *amac;
pathInst = instdir;
MACROKEY_EXPSEARCH_PATH = "Exp_search_path";
strcpy(fnMac,pathInst);
add_path_fn(fnMac,fn_mac);
if ( (amac = AMAC_allocWork(0)) == (0) )
return ((-1));
AMAC_load( amac, fnMac );
if ( (p = AMAC_getName( amac, MACROKEY_EXPSEARCH_PATH)) == (0) || *p == '\0' )
{
path[0] = '\0';
p = path;
dir = _tc_instdir[(2)];
if ( *dir )
{
if ( p != path ) { *p = ';'; ++p; }
strcpy(p, dir);
p += strlen(dir);
}
dir = _tc_instdir[(3)];
if ( *dir )
{
if ( p != path ) { *p = ';'; ++p; }
strcpy(p, dir);
p += strlen(dir);
}
dir = _tc_instdir[(4)];
if ( *dir )
{
if ( p != path ) { *p = ';'; ++p; }
strcpy(p, dir);
p += strlen(dir);
}
dir = _tc_instdir[(5)];
if ( *dir )
{
if ( p != path ) { *p = ';'; ++p; }
strcpy(p, dir);
p += strlen(dir);
}
dir = _tc_instdir[(7)];
if ( *dir )
{
if ( p != path ) { *p = ';'; ++p; }
strcpy(p, dir);
p += strlen(dir);
}
if ( p != path )
AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
} else
{
strcpy(path,p);
dir = _tc_instdir[(2)];
if ( _chk_pathlist(path,dir) == 0 )
{
strcat(path,";");
strcat(path,dir);
}
dir = _tc_instdir[(3)];
if ( _chk_pathlist(path,dir) == 0 )
{
strcat(path,";");
strcat(path,dir);
}
dir = _tc_instdir[(4)];
if ( _chk_pathlist(path,dir) == 0 )
{
strcat(path,";");
strcat(path,dir);
}
dir = _tc_instdir[(5)];
if ( _chk_pathlist(path,dir) == 0 )
{
strcat(path,";");
strcat(path,dir);
}
dir = _tc_instdir[(7)];
if ( _chk_pathlist(path,dir) == 0 )
{
strcat(path,";");
strcat(path,dir);
}
AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
}
AMAC_save( amac, fnMac, fn_mac);
AMAC_freeWork(amac);
return ((0));
}
int _chk_pathlist( char *pathlist, char *path )
{
char s1[1024], s2[256];
strcpy(s1,pathlist); FS_strupr(s1);
strcpy(s2,path); FS_strupr(s2);
if ( strstr(s1,s2) == (0) )
return (0);
else
return (1);
}
# 5 "..\TAROPYON\INSTALL\_hewin.c"
char *_hewin_usrfile[8] =
{
"hewin.ini" ,
"hewin.itm" ,
"hewin.icn" ,
"hewin.apl" ,
"hewin.env" ,
(0)
};
int _hewin_config(char *instdir, int item_setup)
{
int ret, i, instflag, updateflag;
char *dlgTxm;
char *dlgGets;
char tmp[256], buf[8];
_hewin_instmode = (0);
strcpy(tmp,instdir); add_path_fn(tmp,"hewin.exp");
instflag = ( FS_isFile(tmp) == (1) ) ? 1 : 0;
if ( instflag )
{
updateflag = 1;
i = 0;
while ( _hewin_usrfile[i] != (0) )
{
strcpy(tmp,instdir); add_path_fn(tmp,_hewin_usrfile[i]);
if ( FS_isFile(tmp) != (1) )
{
updateflag = 0;
break;
}
++i;
}
} else
updateflag = 0;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"HEwin 環境設定");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "インストール先 : %s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
if ( instflag )
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"指定のディレクトリには既にHEwin がインストールされています。");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール時に設定情報を初期化しますか?");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"初期設定 … インストール時にHEwin の設定情報をすべて初期化します。 ");
if ( updateflag )
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
" 既にインストールされているHEwin の設定情報は失われます。");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"更新 … 既にインストールされているHEwin の設定情報は残したまま ");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
" 実行ファイルだけ新しくインストールします。 ");
} else
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"なし … 実行ファイルだけ新しくインストールします。 ");
}
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'I' , 0x1800 ,
1, "", 0, "初期設定 : [I]");
if ( updateflag )
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'U' , 0x1700 ,
2, "", 0, "更新 : [U]");
} else
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
0, "", 0, "なし : [N]");
}
} else
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
1, "", 0, "OK : [実行]");
}
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 0 );
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1 : _hewin_instmode = (1) ; break;
case 2 : _hewin_instmode = (2) ; break;
default: _hewin_instmode = (0); break;
}
_hewin_swapDrv = -1;
if ( item_setup )
{
if ( (dlgGets = DlgGets_open()) == (0) )
return ((-1));
DlgGets_setTitle(dlgGets,Fnt16x16,"HEwin 環境設定");
buf[0] = _hewin_swapDrv < 0 ? toupper(instdir[0]) : _hewin_swapDrv + 'A';
buf[1] = '\0';
DlgGets_setSize(dlgGets,320,64);
DlgGets_putf( dlgGets, Fnt16x16, 1, "作業ドライブを指定してください(例:「D」)。" );
DlgGets_setPosition(dlgGets,(1));
if ( DlgGets_start(dlgGets,3,buf) == (0) )
{
if ( isalpha(buf[0]) )
_hewin_swapDrv = toupper(buf[0]);
else
_hewin_swapDrv = -1;
}
DlgGets_close(dlgGets);
}
_hewin_scnmode = -1;
if ( item_setup )
{
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"HEwin 画面モード");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"動作画面モードを指定してください。");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度 … 640×480ドット " );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度 #2 … 736×496ドット ディスプレイによっては正常" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), " に表\示されないことがあります。 " );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "高解像度 … 1024×768ドット 高解像度TBIOS を組み込んだ" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), " 場合に使用できます。高解像度に対応した機種" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), " (MX/MA/HC/HB/HA等)で使用できます。 " );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
1, "", 0, "中解像度 : [N]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'S' , 0x1F00 ,
2, "", 0, "中解像度 #2 : [S]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
3, "", 0, "高解像度 : [H]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 0 );
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1: _hewin_scnmode = 0; break;
case 2: _hewin_scnmode = 2; break;
case 3: _hewin_scnmode = 5; break;
}
}
return ((0));
}
char *_hewin_init_delfile[10] =
{
"center.dat" ,
"hewin.apl" ,
"hewin.env" ,
"hewin.icn" ,
"hewin.ini" ,
"hewin.itm" ,
"hewin.mac" ,
"tdpedit.his",
(0)
};
int _hewin_install(char *instdir,int item_setup)
{
int ret, i, att, drv;
char *srcdir, *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char tmp[256], scnmode_para[32];
syl_putf("HEwin INSTALL");
if ( _hewin_instmode == (1) )
{
i = 0;
while ( _hewin_init_delfile[i] != (0) )
{
strcpy(tmp,instdir); add_path_fn(tmp,_hewin_init_delfile[i]);
if ( FS_isFile(tmp) == (1) )
FS_remove(tmp);
++i;
}
}
srcdir = "/OH_TOWNS/TAROPYON/HEWIN";
instfile = "*.exp *.cci *.c *.h *.rex *.dll *.exe *.doc *.hlp *.lst *.tbl";
item_prog = "HEWIN.EXP";
item_ttl = "HEwin";
item_para[0] = '\0';
item_att = 2;
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
switch ( _hewin_instmode )
{
case (1) : att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) ; break;
case (2): att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) ; break;
default: att = ((0x00000200) | (0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)); break;
}
ret = FCOPY_exec(att, srcdir, instfile, instdir);
if ( _hewin_instmode == (1) )
{
instfile = "*.apl *.env *.icn *.ini *.itm *.tif";
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000)) & (~(0x00000001));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
}
syl_putf("HEwin CUSTOMIZE");
_hewin_setup(instdir,item_setup);
if ( ret == (0) && item_setup != 0 )
{
syl_putf("HEwin ITEM SETUP");
if ( _hewin_scnmode >= 0 )
{
switch ( _hewin_scnmode )
{
case 0: i = '0'; break;
case 2: i = '2'; break;
case 5: i = 'H'; break;
}
sprintf(scnmode_para, "-scnMode %c ", i);
} else
scnmode_para[0] = '\0';
if ( isalpha(_hewin_swapDrv) )
sprintf(item_para,"%s-swapDrv %c", scnmode_para, _hewin_swapDrv);
else
strcpy( item_para, scnmode_para);
drv = toupper(instdir[0]) - 'A';
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
return (ret);
}
int _hewin_setup(char *instdir,int item_setup)
{
return _hewin_edia_setup("hewin.mac", instdir, item_setup);
}
# 5 "..\TAROPYON\INSTALL\_edia.c"
int _edia_config(char *instdir, int item_setup)
{
int ret;
char *dlgTxm;
char *dlgGets;
char tmp[256], buf[8];
_edia_swapDrv = -1;
_tc_pre_config( instdir, "edia.exp", "EDIA" );
if ( item_setup )
{
if ( (dlgGets = DlgGets_open()) == (0) )
return ((-1));
DlgGets_setTitle(dlgGets,Fnt16x16,"EDIA 環境設定");
buf[0] = _edia_swapDrv < 0 ? toupper(instdir[0]) : _edia_swapDrv + 'A';
buf[1] = '\0';
DlgGets_setSize(dlgGets,320,64);
DlgGets_putf( dlgGets, Fnt16x16, 1, "作業ドライブを指定してください(例:「D」)。" );
DlgGets_setPosition(dlgGets,(1));
if ( DlgGets_start(dlgGets,3,buf) == (0) )
{
if ( isalpha(buf[0]) )
_edia_swapDrv = toupper(buf[0]);
else
_edia_swapDrv = -1;
}
DlgGets_close(dlgGets);
}
_edia_scnmode = -1;
if ( item_setup )
{
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"EDIA 画面モード");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"動作画面モードを指定してください。");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "中解像度 … 640×480ドット " );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "高解像度 … 1024×768ドット 高解像度TBIOS を組み込んだ" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), " 場合に使用できます。高解像度に対応した機種" );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), " (MX/MA/HC/HB/HA等)で使用できます。 " );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'N' , 0x2F00 ,
1, "", 0, "中解像度 : [N]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "", 0, "高解像度 : [H]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 0 );
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1: _edia_scnmode = 0; break;
case 2: _edia_scnmode = 5; break;
}
}
return ((0));
}
int _edia_install(char *instdir,int item_setup)
{
int ret, att, drv;
char *srcdir, *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char tmp[256], scnmode_para[32];
syl_putf("EDIA INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/EDIA";
instfile = "*.exp *.cci *.c *.h *.rex *.dll *.doc";
item_prog = "EDIA.EXP";
item_ttl = "EDIA";
item_para[0] = '\0';
item_att = 2;
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
syl_putf("EDIA CUSTOMIZE");
_edia_setup(instdir,item_setup);
if ( ret == (0) && item_setup != 0 )
{
syl_putf("EDIA ITEM SETUP");
if ( _edia_scnmode == 5 )
strcpy(scnmode_para, "-scnMode H ");
else
scnmode_para[0] = '\0';
if ( isalpha(_edia_swapDrv) )
sprintf(item_para,"%s-swapDrv %c", scnmode_para, _edia_swapDrv);
else
strcpy( item_para, scnmode_para);
drv = toupper(instdir[0]) - 'A';
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
return (ret);
}
int _edia_setup(char *instdir,int item_setup)
{
return _hewin_edia_setup("edia.mac", instdir, item_setup);
}
# 7 "..\TAROPYON\INSTALL\_gsplay.c"
int _gsplay_set_instdata(char *instdir);
int _gsplay_config(char *instdir, int item_setup)
{
int ret;
char *mnu_midi, *mnu_internal, *mnu_rsmidi, *mnu;
char tmp[128], *msg;
_gsplay_midi = 0;
_gsplay_rsmidi = -1;
_gsplay_internal = -1;
_gsplay_datapath_fmb[0] = '\0';
_gsplay_datapath_pmb[0] = '\0';
_gsplay_datapath_snd[0] = '\0';
_tc_pre_config( instdir, "gsplay.exp", "GSPLAY" );
if ( item_setup )
{
mnu_midi = MNU_open();
mnu_rsmidi = MNU_open();
mnu_internal = MNU_open();
MNU_datAdd( mnu_midi , 0, 'A', Rom16x16, 0x01, "", (0), "port A (card-1)");
MNU_datAdd( mnu_midi , 0, 'B', Rom16x16, 0x02, "", (0), "port B (card-1)");
MNU_datAdd( mnu_midi , 0, 'C', Rom16x16, 0x03, "", (0), "port C (card-2)");
MNU_datAdd( mnu_midi , 0, 'D', Rom16x16, 0x04, "", (0), "port D (card-2)");
MNU_datAdd( mnu_midi , 0, 'E', Rom16x16, 0x05, "", (0), "port E (card-3)");
MNU_datAdd( mnu_midi , 0, 'F', Rom16x16, 0x06, "", (0), "port F (card-3)");
MNU_datAdd( mnu_midi , 0, 'G', Rom16x16, 0x07, "", (0), "port G (card-4)");
MNU_datAdd( mnu_midi , 0, 'H', Rom16x16, 0x08, "", (0), "port H (card-4)");
MNU_datAdd( mnu_midi , 0, 0 , (0) , 0, "", 0, (0) );
MNU_datAdd( mnu_midi , 0, 'O', Rom16x16, 0x00, "", (0), "MIDI device not use");
MNU_setPosition(mnu_midi,-1);
MNU_datAdd( mnu_rsmidi , 0, '1', Rom16x16, 0x21, "", (0), "ON 使う");
MNU_datAdd( mnu_rsmidi , 0, '0', Rom16x16, 0x20, "", (0), "OFF 使わない");
MNU_setPosition(mnu_rsmidi,-1);
MNU_datAdd( mnu_internal, 0, '1', Rom16x16, 0x31, "", (0), "ON 使う");
MNU_datAdd( mnu_internal, 0, '0', Rom16x16, 0x30, "", (0), "OFF 使わない");
MNU_setPosition(mnu_internal,-1);
do
{
if ( (mnu = MNU_open()) == (0) )
break;
MNU_setTitle( mnu, Fnt16x16, "GSPLAY 演奏データ出力デバイス" );
if ( _gsplay_midi < 0 )
{
msg = "not use";
} else
{
msg = tmp;
sprintf(msg,"port %c",_gsplay_midi + 'A' );
}
MNU_mnuAdd( mnu, 0, 'M', Fnt16x16, mnu_midi , "MIDI [%s]", msg);
msg = (_gsplay_rsmidi < 0) ? "not use" : "ON";
MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, mnu_rsmidi , "RS-232C MIDI [%s]", msg);
msg = (_gsplay_internal < 0) ? "not use" : "ON";
MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, mnu_internal, "内蔵音源 [%s]", msg);
MNU_datAdd( mnu, 0, 0 , (0) , 0, "", 0, (0) );
MNU_datAdd( mnu, 0, 'N', Rom16x16, 0xFF, "", 0, " >>> 次へ進む >>>");
MNU_setPosition(mnu,(0),8,32);
ret = MNU_start(mnu);
if ( ret >= 0x01 && ret <= 0x08 )
{
_gsplay_midi = ret - 0x01;
} else
{
switch ( ret )
{
case 0x00: _gsplay_midi = -1; break;
case 0x20: _gsplay_rsmidi = -1; break;
case 0x21: _gsplay_rsmidi = 0; break;
case 0x30: _gsplay_internal = -1; break;
case 0x31: _gsplay_internal = 0; break;
}
}
MNU_close(mnu);
MNU_datClear(mnu);
} while ( ret != 0xFF );
MNU_datClear(mnu_midi );
MNU_datClear(mnu_rsmidi );
MNU_datClear(mnu_internal);
}
_gsplay_set_instdata(instdir);
return ((0));
}
int _gsplay_set_instdata(char *instdir)
{
# 202 "..\TAROPYON\INSTALL\_gsplay.c"
int ret;
char *dlgTxm;
char *mnu, *mnu_fmb, *mnu_pmb, *mnu_snd;
if ( _gsplay_internal < 0 )
return ((0));
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,"GSPLAY");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "内蔵音源で演奏するには音色データファイルが必要です。");
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "ただし,著作権の関係で音色データファイルは");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "CD-ROMには収録されていません。 ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300,
1, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret < 0 );
DlgTxm_close(dlgTxm);
return ((0));
}
int _gsplay_install(char *instdir,int item_setup)
{
int ret, att, drv;
char *srcdir, *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char tmp[256], ttl[80];
syl_putf("GSPLAY INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/GSPLAY";
instfile = "*.exp *.dat *.gsd *.doc *.mex *.mid *.mtk *.kok *.tif";
item_prog = "GSPLAY.EXP";
item_ttl = "GSPLAY/pure";
item_para[0] = '\0';
item_att = 2;
srcdir = _tc_getFcopySrcDir(srcdir,tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
if ( ret == (0) && isalpha(_gsplay_datapath_fmb[0]) )
{
srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/FMB", tmp);
ret = FCOPY_exec(att, srcdir, "*.fmb", _gsplay_datapath_fmb);
}
if ( ret == (0) && isalpha(_gsplay_datapath_pmb[0]) )
{
srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/PMB", tmp);
ret = FCOPY_exec(att, srcdir, "*.pmb", _gsplay_datapath_pmb);
}
if ( ret == (0) && isalpha(_gsplay_datapath_snd[0]) )
{
srcdir = _tc_getFcopySrcDir( "/OH_TOWNS/TAROPYON/DATA/SND", tmp);
ret = FCOPY_exec(att, srcdir, "*.snd", _gsplay_datapath_snd);
}
if ( ret == (0) )
{
syl_putf("GSPLAY CUSTOMIZE");
_gsplay_setup(instdir,item_setup);
}
if ( ret == (0) && item_setup != 0 )
{
syl_putf("GSPLAY ITEM SETUP");
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
drv = toupper(instdir[0]) - 'A';
if ( _gsplay_midi >= 0 )
{
item_ttl = "GSPLAY/pure (MIDI)";
sprintf(item_para,"-gsPort %c", _gsplay_midi + 'A');
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
if ( _gsplay_internal >= 0 )
{
item_ttl = "GSPLAY/pure (内蔵)";
strcpy(item_para,"-gsPort A -intPort A");
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
if ( _gsplay_rsmidi >= 0 )
{
item_ttl = "GSPLAY/pure (RS)";
strcpy(item_para,"-rsmidi -gsPort R");
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
}
return (ret);
}
char *_gsplay_snd_dir[12] =
{
"808" ,
"BRUSH",
"ELEC" ,
"INST" ,
"ORCHE",
"PERC" ,
"POWER",
"ROOM" ,
"SFX" ,
"STD" ,
(0)
};
int _gsplay_setup(char *instdir,int item_setup)
{
int i;
char fn[256], tmp[256], *dir;
char *fp;
if ( _gsplay_datapath_fmb[0] != '\0' )
{
strcpy( fn, instdir); add_path_fn( fn, "fminst.dat");
if ( (fp = FS_fopen(fn,"wb")) != (0) )
{
if ( _gsplay_datapath_fmb[0] == '@' )
{
fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/FMB\r\n");
} else
{
fprintf(fp,"%s\r\n", _gsplay_datapath_fmb );
}
FS_fclose(fp);
}
}
if ( _gsplay_datapath_pmb[0] != '\0' )
{
strcpy( fn, instdir); add_path_fn( fn, "pcminst.dat");
if ( (fp = FS_fopen(fn,"wb")) != (0) )
{
if ( _gsplay_datapath_pmb[0] == '@' )
{
fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/PMB\r\n");
} else
{
fprintf(fp,"%s\r\n", _gsplay_datapath_pmb );
}
FS_fclose(fp);
}
}
if ( _gsplay_datapath_snd[0] != '\0' )
{
strcpy( fn, instdir); add_path_fn( fn, "sndinst.dat");
if ( (fp = FS_fopen(fn,"wb")) != (0) )
{
for ( i = 0; _gsplay_snd_dir[i] != (0); ++i )
{
dir = _gsplay_snd_dir[i];
if ( _gsplay_datapath_snd[0] == '@' )
{
fprintf(fp,"Q:/OH_TOWNS/TAROPYON/DATA/SND/%s\r\n", dir );
} else
{
strcpy( tmp, instdir);
add_path_fn(tmp,dir);
fprintf(fp,"%s\r\n", tmp );
}
}
FS_fclose(fp);
}
}
return ((0));
}
# 5 "..\TAROPYON\INSTALL\_he386.c"
int _he386_install(char *instdir,int item_setup)
{
int ret, att;
char *srcdir, *instfile;
char tmp[256];
syl_putf("HE386 INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/HE386";
instfile = "*.exp *.dll *.cci *.c *.h *.doc *.mml *.def";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
return (ret);
}
# 5 "..\TAROPYON\INSTALL\_cci.c"
int _cci_install(char *instdir,int item_setup)
{
int ret, att;
char *srcdir, *instfile;
char tmp[256];
syl_putf("CCI INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/CCI";
instfile = "*.exp *.dll *.doc *.lst *.h *.c *.bat *.exe";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
return (ret);
}
# 5 "..\TAROPYON\INSTALL\_wallpop.c"
int _wallpop_install(char *instdir,int item_setup)
{
int ret, att;
char *srcdir, *instfile;
char tmp[256];
syl_putf("WallPop INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/WALLPOP";
instfile = "*.doc *.exp *.cfg *.rex *.dll";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
return (ret);
}
# 5 "..\TAROPYON\INSTALL\_dostool.c"
int _dostool_install(char *instdir,int item_setup)
{
int ret, att;
char *srcdir, *instfile;
char tmp[256];
syl_putf("DOS TOOL INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/DOS";
instfile = "*.exe *.doc";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
return (ret);
}
# 5 "..\TAROPYON\INSTALL\_tostool.c"
int _tostool_if2tmp( char *instdir );
int _tostool_install(char *instdir,int item_setup)
{
int ret, att, drv;
char *srcdir, *instfile;
char *item_prog, *item_ttl, item_para[128];
int item_att;
char tmp[256];
syl_putf("TOS TOOL INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/TOOL";
instfile = "*.exp *.dll *.doc";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
# 57 "..\TAROPYON\INSTALL\_tostool.c"
if ( ret == (0) )
ret = _tostool_if2tmp( instdir );
return (ret);
}
char *_tostool_file[16] =
{
"CCI 00 20 cci.exp" ,
"LZH 00 20 lhx2.exp" ,
"MID 00 20 gsplay.exp" ,
"MOV 00 20 ugkplay.exp" ,
"MVE 00 20 mveplay.exp" ,
"WRD 00 20 jcomp.exp" ,
"V02 00 20 ugkplay.exp" ,
(0)
};
int _tostool_if2tmp( char *instdir )
{
int i, argc;
char fn[256], tmp[256], **argv;
char *fp;
strcpy( tmp, instdir); add_path_fn(tmp,"tmenuif2.tmp");
if ( (fp = FS_fopen(tmp,"wb")) == (0) )
return ((-1));
for ( i = 0; _tostool_file[i] != (0); ++i )
{
if ( (argc = DTA_makeArg(_tostool_file[i],&argv)) > 0 )
{
if ( argc > 3 )
{
strcpy( tmp, instdir); add_path_fn(tmp,argv[3]);
FS_dosFn(fn,tmp);
fprintf(fp,"%-3s,%s,%s,%s\r\n",
argv[0], argv[1], argv[2], fn );
}
DTA_clearArg(argc,argv);
}
}
FS_fclose(fp);
return ((0));
}
# 5 "..\TAROPYON\INSTALL\_sdktool.c"
int _sdktool_make_template( char *instdir );
char *_sdktool_file[10] =
{
"メニュー sdkmenu.exp" ,
"数式計算 sdkcalc.exp" ,
"CD演奏開始 sdkcdt.exp \"play -cdvol 127\"",
"CD演奏停止 sdkcdt.exp \"stop\"" ,
"CD辞書検索 sdkdic.exp" ,
"ファイルセレクタ sdkfs.exp" ,
"システムロック sdklock.exp" ,
"SMFPLAY smfplay.exp" ,
(0)
};
# 87 "..\TAROPYON\INSTALL\_sdktool.c"
int _sdktool_install(char *instdir,int item_setup)
{
int ret, att;
char *srcdir, *instfile;
char tmp[256];
syl_putf("SIDEWORK PROGRAM INSTALL");
srcdir = "/OH_TOWNS/TAROPYON/SDK";
instfile = "*.exp *.dll *.doc";
srcdir = _tc_getFcopySrcDir( srcdir, tmp);
att = ((0x00000001) | (0x00000010) | (0x00000100) | (0x01000000));
ret = FCOPY_exec(att, srcdir, instfile, instdir);
if ( ret == (0) )
{
ret = _sdktool_make_template( instdir );
}
return (ret);
}
int _sdktool_make_template( char *instdir )
{
int i, argc;
char *fp;
char **argv, tmp[256], fn[256], para[256];
strcpy( tmp, instdir); add_path_fn(tmp,"sidework.tmp");
if ( (fp = FS_fopen(tmp,"wb")) == (0) )
return (-1);
for ( i = 0; _sdktool_file[i] != (0); ++i )
{
if ( (argc = DTA_makeArg(_sdktool_file[i],&argv)) > 0 )
{
if ( argc > 1 )
{
strcpy( tmp, instdir); add_path_fn(tmp,argv[1]);
FS_dosFn(fn,tmp);
if ( argc > 2 )
sprintf(para," %s", argv[2]);
else
para[0] = '\0';
fprintf(fp,"%c \"%s\" %s%s\r\n",
i + 'A', argv[0], fn, para);
}
DTA_clearArg(argc,argv);
}
}
FS_fclose(fp);
return (0);
}
# 5 "instgame.c"
char *get_inst_game_mnu()
{
char *mnu;
if ( (mnu = MNU_open()) == (0) )
return ((0));
MNU_datAdd( mnu, 0, 'A', Rom16x16, 0, "install_airhockey" , 0, "AIR HOCKEY" );
MNU_datAdd( mnu, 0, 'D', Rom16x16, 0, "install_drops" , 0, "Drops" );
MNU_datAdd( mnu, 0, 'L', Rom16x16, 0, "install_luckey" , 0, "LUCKY GAME" );
MNU_datAdd( mnu, 0, 'M', Rom16x16, 0, "install_mitamura" , 0, "MITAMURAショートプログラム集");
MNU_datAdd( mnu, 0, 'T', Rom16x16, 0, "install_mayor" , 0, "都市シミュレ-ションMayor" );
MNU_setPosition(mnu,-1);
return (mnu);
}
int install_airhockey()
{
static char *buf[5] =
{
"softname \"AIR HOCKEY\"",
"instfile /OH_TOWNS/AHOCKEY \"*.*\"",
"help AHOCKEY.DOC",
"item \"AIR HOCKEY\",AHOCKEY.EXP,,2",
(0)
};
return install_exec(buf);
}
int install_drops()
{
static char *buf[5] =
{
"softname \"Drops\"",
"instfile /OH_TOWNS/DROPS \"*.*\"",
"help DROPS.TXT",
"item \"Drops\",BALL.EXP,,2",
(0)
};
return install_exec(buf);
}
int install_mayor()
{
static char *buf[5] =
{
"softname \"「都市シミュレーション Mayor」\"",
"instfile /OH_TOWNS/MAYOR \"*.*\"",
"help MAYOR.MAN",
"item \"都市シミュレーション Mayor\",MAYOR.EXP,,2",
(0)
};
return install_exec(buf);
}
int install_luckey()
{
static char *buf[6] =
{
"softname \"LUCKY GAME \"",
"instfile /OH_TOWNS/LUCK \"*.*\"",
"help README.DOC",
"item \"LUCKY GAME/386\",LUCK386.EXP,,2",
"item \"LUCKY GAME/486\",LUCK486.EXP,,2",
(0)
};
return install_exec(buf);
}
int install_mitamura()
{
static char *buf[5] =
{
"softname \"MITAMURAショートプログラム集\"",
"instfile /OH_TOWNS/MITAMURA \"*.*\"",
"help README.DOC",
"item \"MITAMURAショートプログラム集\",STARTUP.EXP,,2",
(0)
};
return install_exec(buf);
}
# 5 "instdata.c"
char *get_inst_data_mnu()
{
char *mnu;
if ( (mnu = MNU_open()) == (0) )
return ((0));
MNU_datAdd( mnu, 0, 'Y', Rom16x16, 0, "install_hyoushi" , 0, "Oh!FM TOWNS 表\紙CGデータ集" );
MNU_datAdd( mnu, 0, 'C', Rom16x16, 0, "install_calendar" , 0, "Oh!FM TOWNS カレンダーCG" );
MNU_datAdd( mnu, 0, 'W', Rom16x16, 0, "install_mv_dark" , 0, "暗黒のワイドショー" );
MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "install_mv_hensyubu", 0, "暗黒の編集部" );
MNU_datAdd( mnu, 0, 'F', Rom16x16, 0, "install_mv_teo" , 0, "フィンク,おいで~" );
MNU_datAdd( mnu, 0, 'K', Rom16x16, 0, "install_mv_kakusei" , 0, "覚醒" );
MNU_datAdd( mnu, 0, 'U', Rom16x16, 0, "install_mv_pekopeko", 0, "はじめての宇宙旅行" );
MNU_datAdd( mnu, 0, 'G', Rom16x16, 0, "install_mv_kigae" , 0, "着替えの女の子" );
MNU_setPosition(mnu,-1);
return (mnu);
}
int install_hyoushi()
{
int ret, fcopy_att, srcdrv;
char *softname;
char *helpfn;
char *srcdir;
char instdir[256], *instfile;
char *dlgTxm;
char tmp[256];
static char *tiflist[10] =
{
"towns412.tif",
"towns501.tif",
"towns502.tif",
"towns503.tif",
"towns504.tif",
"towns505.tif",
"towns506.tif",
"towns507.tif",
"towns508.tif",
(0)
};
instdir[0] = '\0';
softname = "Oh!FMTOWNS 表\紙CGデータ集";
srcdir = "/OH_TOWNS/HYOUSHI";
helpfn = "/OH_TOWNS/HYOUSHI/HYOUSHI.GGG";
srcdrv = toupper(DirStart[0]) - 'A';
_TOP:
syl_putf("%s",softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", helpfn, "説明 : [H]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
3, "", 0, "表\示 : [D]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
4, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret == 3 )
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/HYOUSHI" );
tiflist_disp(tiflist);
goto _TOP;
} else if ( ret != 1 )
goto _RET;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストールする表\紙CGデータの画像データ形式を指定してください。" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'A' , 0x1E00 ,
3, "", 0, "TIFF & BMP : [A]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'T' , 0x1500 ,
1, "", 0, "TIFF : [T]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'B' , 0x2E00 ,
2, "", 0, "BMP : [B]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
0, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1: instfile = "*.tif *.doc"; break;
case 2: instfile = "*.bmp *.doc"; break;
case 3: instfile = "*.tif *.bmp *.doc"; break;
default:
goto _TOP;
}
ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
if ( ret )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"このディレクトリにインストールしてもいいですか?" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 )
goto _TOP;
syl_putf("INSTALL START");
FS_chdrv(srcdrv);
FS_getFullPn(tmp,srcdir);
fcopy_att = (0x00000010) | (0x00000100);
ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
install_end( softname, ret );
_RET:
syl_clear();
return (0);
}
int install_calendar()
{
int ret, fcopy_att, srcdrv;
char *softname;
char *helpfn;
char *srcdir;
char instdir[256], *instfile;
char *dlgTxm;
char tmp[256];
static char *tiflist[16] =
{
"midori12.tif",
"midori01.tif",
"midori02.tif",
"midori03.tif",
"midori04.tif",
"midori05.tif",
"midori06.tif",
"nukunu06.tif",
"nukunu07.tif",
"nukunu08.tif",
"nukunu09.tif",
"nukunu10.tif",
"nukunu11.tif",
"nukunu12.tif",
(0)
};
instdir[0] = '\0';
softname = "Oh!FM TOWNS オリジナルカレンダーCG";
srcdir = "/OH_TOWNS/CALENDAR";
helpfn = "/OH_TOWNS/CALENDAR/CALENDAR.GGG";
srcdrv = toupper(DirStart[0]) - 'A';
_TOP:
syl_putf("%s",softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", helpfn, "説明 : [H]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
3, "", 0, "表\示 : [D]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 120, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
4, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret == 3 )
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/CAL_DEMO" );
tiflist_disp(tiflist);
goto _TOP;
} else if ( ret != 1 )
goto _RET;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストールするCGデータの画像データ形式を指定してください。" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'A' , 0x1E00 ,
3, "", 0, "オリジナル & BMP : [A]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'O' , 0x1900 ,
1, "", 0, "オリジナル : [O]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 136, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'B' , 0x2E00 ,
2, "", 0, "BMP : [B]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
0, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
switch ( ret )
{
case 1: instfile = "*.tif *.jpg *.doc"; break;
case 2: instfile = "*.bmp *.doc"; break;
case 3: instfile = "*.tif *.jpg *.bmp *.doc"; break;
default:
goto _TOP;
}
ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
if ( ret )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"このディレクトリにインストールしてもいいですか?" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 0, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 )
goto _TOP;
syl_putf("INSTALL START");
FS_chdrv(srcdrv);
FS_getFullPn(tmp,srcdir);
fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
ret = FCOPY_exec(fcopy_att, tmp, instfile, instdir);
install_end( softname, ret );
_RET:
syl_clear();
return (0);
}
int install_mv_dark()
{
static char *buf[6] =
{
"softname \"『暗黒のワイドショー』\"",
"instfile /OH_TOWNS/MOVIE/DARK \"*.*\"",
"help wideshow.ggg",
"demo \"再生\" _mv_dark_play",
(0)
};
return install_exec(buf);
}
int _mv_dark_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/DARK" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 wideshow.v02" );
return (0);
}
int install_mv_hensyubu()
{
static char *buf[6] =
{
"softname \"『暗黒の編集部』\"",
"instfile /OH_TOWNS/MOVIE/HENSYUBU \"*.*\"",
"help hensyubu.ggg",
"demo \"再生\" _mv_hensyubu_play",
(0)
};
return install_exec(buf);
}
int _mv_hensyubu_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/HENSYUBU" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 hensyub1.v02 hensyub2.v02" );
return (0);
}
int install_mv_teo()
{
static char *buf[6] =
{
"softname \"『フィンク,おいで~』\"",
"instfile /OH_TOWNS/MOVIE/TEO \"*.*\"",
"help teo.ggg",
"demo \"再生\" _mv_teo_play",
(0)
};
return install_exec(buf);
}
int _mv_teo_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/TEO" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-display 2 teo1.v02 teo2.v02 teo3.v02" );
return (0);
}
int install_mv_kakusei()
{
static char *buf[6] =
{
"softname \"『覚醒』\"",
"instfile /OH_TOWNS/MOVIE/HOUREN \"*.*\"",
"help kakusei.doc",
"demo \"再生\" _mv_kakusei_play",
(0)
};
return install_exec(buf);
}
int _mv_kakusei_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/HOUREN" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-wait 3 kakusei.mov" );
return (0);
}
int install_mv_kigae()
{
static char *buf[6] =
{
"softname \"『着替えの女の子』\"",
"instfile /OH_TOWNS/MOVIE/KIGAE \"*.*\"",
"help kigae.ggg",
"demo \"再生\" _mv_kigae_play",
(0)
};
return install_exec(buf);
}
int _mv_kigae_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/KIGAE" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp", "-wait 3 kigae.mov" );
return (0);
}
int install_mv_pekopeko()
{
static char *buf[6] =
{
"softname \"『はじめての宇宙旅行』\"",
"instfile /OH_TOWNS/MOVIE/PEKOPEKO \"*.*\"",
"help pekopeko.doc",
"demo \"再生\" _mv_pekopeko_play",
(0)
};
return install_exec(buf);
}
int _mv_pekopeko_play()
{
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_chdir( "/OH_TOWNS/MOVIE/PEKOPEKO" );
exprun("/OH_TOWNS/TAROPYON/TOOL/ugkplay.exp","/OH_TOWNS/MOVIE/PEKOPEKO/UCHYU/uchyu.mov /OH_TOWNS/MOVIE/PEKOPEKO/KAISETSU/kaisetu.mov" );
return (0);
}
# 5 "instexec.c"
int install_exec( char **probuf )
{
int ret, i, fcopy_att, drv, argc, srcdrv;
char **argv, *p, *typename;
char instdir[256];
char softname[80];
char srcdir[128], instfile[128];
char helpfn[128];
char item_ttl[80],item_prog[32], item_para[128];
int item_setup, item_num, item_att;
char arcfn[128], arcdir[128], arcflag;
char runfn[128], runpara[128];
char demo_msg[80], demo_func[80];
char *lhalib;
char *dlgTxm;
char tmp[256], tmp2[256];
fcopy_att = (0x00000001) | (0x00000010) | (0x00000100);
instdir[0] = '\0';
srcdir[0] = '\0';
instfile[0] = '\0';
helpfn[0] = '\0';
item_num = 0;
item_ttl[0] = '\0';
arcfn[0] = '\0';
arcdir[0] = '\0';
arcflag = 0;
runpara[0] = '\0';
runfn[0] = '\0';
demo_msg[0] = '\0';
demo_func[0] = '\0';
srcdrv = toupper(DirStart[0]) - 'A';
for ( i = 0; probuf[i] != (0); ++i )
{
if ( (argc = DTA_makeArg(probuf[i],&argv)) > 0 )
{
typename = argv[0];
if ( strcmpi(typename,"softname") == 0 )
{
if ( argc >= 2 )
strcpy( softname, argv[1]);
} else if ( strcmpi(typename,"instfile") == 0 )
{
if ( argc >= 2 )
strcpy(srcdir , argv[1]);
if ( argc >= 3 )
strcpy(instfile, argv[2]);
if ( argc >= 4 )
{
if ( strcmpi(argv[3],"-nocopydir") == 0 )
fcopy_att &= (~(0x00000001));
}
} else if ( strcmpi(typename,"help") == 0 )
{
if ( argc >= 2 )
{
if ( FS_isDelim(argv[1][0]) )
strcpy(helpfn, argv[1]);
else if ( srcdir[0] != '\0' )
sprintf(helpfn,"%s/%s",srcdir,argv[1]);
}
} else if ( strcmpi(typename,"item") == 0 )
{
++item_num;
if ( argc >= 5 )
{
strcpy(item_ttl , argv[1]);
strcpy(item_prog, argv[2]);
strcpy(item_para, argv[3]);
item_att = atoi(argv[4]);
}
} else if ( strcmpi(typename,"arcfile") == 0 )
{
if ( argc >= 2 )
{
strcpy( arcfn , argv[1]);
arcflag = 1;
}
if ( argc >= 3 )
strcpy( arcdir, argv[2]);
} else if ( strcmpi(typename,"runexp") == 0 )
{
if ( argc >= 2 && srcdir[0] )
{
strcpy(runfn,srcdir);
add_path_fn(runfn,argv[1]);
}
if ( argc >= 3 )
strcpy(runpara,argv[2]);
} else if ( strcmpi(typename,"demo") == 0 )
{
if ( argc >= 3 )
{
strcpy(demo_msg ,argv[1]);
strcpy(demo_func,argv[2]);
}
}
DTA_clearArg(argc,argv);
}
}
_TOP:
syl_putf("%s",softname);
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s をインストールします。", softname );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", (0), "インストール : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'H' , 0x2300 ,
2, "inst_help", helpfn, "説明 : [H]");
if ( runfn[0] )
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'R' , 0x1400 ,
3, "", (0), "実行 : [R]");
} else if ( demo_msg[0] )
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'D' , 0x2000 ,
3, "", (0), "%s : [D]", demo_msg);
}
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
4, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
do
{
ret = DlgTxm_start(dlgTxm);
} while ( ret == 2 );
DlgTxm_close(dlgTxm);
if ( ret == 3 )
{
if ( runfn[0] )
{
dlgTxm = DlgTxm_open(ColBoxCaution);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s を実行します。", softname );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"※ メモリが不足している場合は実行できません。" );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 ,
1, "", (0), "実行 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
0, "", (0), "取消 : [取消]");
DlgTxm_setSize(dlgTxm,400,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret == 1 )
exprun(runfn,runpara);
} else if ( demo_msg )
{
_funcCall(demo_func, 0);
}
goto _TOP;
} else if ( ret != 1 )
goto _RET;
if ( arcfn[0] && arcdir[0] )
{
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"ソ\ースプログラムもインストールしますか?" );
DlgTxm_setBtn( dlgTxm, Fnt16x16, 160, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'S' , 0x1F00 ,
1, "", 0, "ソースをインストールする : [S]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 160, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200,
0, "", 0, "インストールしない : [取消]");
DlgTxm_setSize(dlgTxm,480,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
arcflag = (ret == 1) ? 1 : 0;
}
ret = APL_setInstallDir(instdir,"%s : インストール先指定", softname);
if ( ret )
goto _TOP;
dlgTxm = DlgTxm_open(ColBoxNormal);
DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"%s", instdir );
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"このディレクトリにインストールしてもいいですか?" );
DlgTxm_putf( dlgTxm, Fnt16x12, (1),"");
if ( item_ttl[0] )
{
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール1 … ファイルを複写してTownsMENU にアイテム登録");
DlgTxm_putf( dlgTxm, Fnt16x16, (1),
"インストール2 … ファイルを複写(アイテム登録はしない) ");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "インストール1 : [実行]");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), 'C' , 0x2C00 , 2, "", 0, "インストール2 : [C]");
} else
{
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 2, "", 0, "インストール : [実行]");
}
DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\x1B', 0x7200, 3, "", 0, "取消 : [取消]");
DlgTxm_setSize(dlgTxm,320,40);
DlgTxm_setPosition(dlgTxm,(1));
ret = DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
if ( ret != 1 && ret != 2 )
goto _TOP;
item_setup = (ret == 1 ? 1 : 0);
syl_putf("INSTALL START");
FS_chdrv(srcdrv);
if ( *srcdir == '\0' || *srcdir == '.' )
{
strcpy(tmp,DirStart);
ret = strlen(tmp);
if ( ret > 3 && FS_isDelim(tmp[ret-1]) )
tmp[ret-1] = '\0';
} else
{
if ( FS_isDelim(*srcdir) )
strcpy(tmp,srcdir);
else
sprintf(tmp,"%s%s",DirStart, srcdir);
}
if ( instfile[0] )
{
FS_getFullPn(tmp2,tmp);
srcdir = tmp2;
ret = FCOPY_exec(fcopy_att, srcdir, instfile, instdir);
}
if ( arcfn[0] && arcflag )
{
syl_putf("ARC(.LZH) FILE EXTRACT");
FS_chdrv(srcdrv);
strcpy(tmp,srcdir);
add_path_fn(tmp,arcfn);
strcpy(tmp2,instdir);
if ( arcdir[0] )
add_path_fn(tmp2,arcdir);
if ( (lhalib = LHA_openArc(tmp)) != (0) )
{
ret = LHA_extractAll(lhalib,tmp2);
LHA_closeArc(lhalib);
} else
{
syl_putf("ARC OPEN ERROR");
ret = (-1);
}
}
if ( ret == (0) && item_setup != 0 )
{
syl_putf("ITEM SETUP");
drv = toupper(instdir[0]) - 'A';
if ( item_num == 1 )
{
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
} else
{
for ( i = 0; probuf[i] != (0); ++i )
{
if ( (argc = DTA_makeArg(probuf[i],&argv)) > 0 )
{
typename = argv[0];
if ( strcmpi(typename,"item") == 0 )
{
if ( argc >= 5 )
{
strcpy(item_ttl , argv[1]);
strcpy(item_prog, argv[2]);
strcpy(item_para, argv[3]);
item_att = atoi(argv[4]);
strcpy(tmp,instdir);
add_path_fn(tmp,item_prog);
item_setApl( drv, 1024, item_ttl, tmp, item_para, item_att );
}
}
DTA_clearArg(argc,argv);
}
}
}
}
install_end( softname, ret );
_RET:
syl_clear();
return (0);
}
# 5 "instlib.c"
int _puts_bold(int x, int y, int col, char *s);
# 11 "instlib.c"
int syl_clear()
{
char *msg, tmp[80];
SCN_wrtPage(1);
PD_curDec();
sprintf(tmp,"PRESENTED by %c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
msg = "天晴CD Vol.2 鳳凰の巻";
SCN_boxf(0,464,639,479,0,ColMesh);
_puts_bold( 232 ,464 , PltNoWhite,msg);
SCN_puts(Fnt16x16,tmp,232+23*8+1,464+1,0,(_ScnCol_black) ,0);
SCN_puts(Fnt16x16,tmp,232+23*8 ,464 ,0,PltNoWhite,0);
# 35 "instlib.c"
PD_curInc();
}
# 42 "instlib.c"
int syl_putf(char *form)
{
char tmp[256];
char *ap;
int n, x;
(ap = (char *)(&form) + sizeof(int));
vsprintf(tmp+6,form,ap);
;
SCN_wrtPage(1);
PD_curDec();
SCN_boxf(0,464,639,479,0,ColMesh);
EGB_textDirection(EgbPtr,0);
EGB_textDisplayDirection(EgbPtr,0);
EGB_textSpace(EgbPtr,0);
EGB_textZoom(EgbPtr,0, 8, 16 );
EGB_textZoom(EgbPtr,1, 16, 16 );
EGB_fontStyle(EgbPtr,1+4);
EGB_color(EgbPtr,0,(_ScnColTbl[12]));
EGB_color(EgbPtr,1,(_ScnCol_black));
EGB_paintMode(EgbPtr,0x022);
EGB_writeMode(EgbPtr,0);
n = strlen(tmp+6);
x = (640 - n * 8) / 2;
_setWord(tmp+0, x );
_setWord(tmp+2, 464+15);
_setWord(tmp+4, n );
EGB_sjisString( EgbPtr, tmp);
PD_curInc();
}
int _puts_bold(int x, int y, int col, char *s)
{
char para[256];
EGB_textDirection(EgbPtr,0);
EGB_textDisplayDirection(EgbPtr,0);
EGB_textSpace(EgbPtr,0);
EGB_textZoom(EgbPtr,0, 8, 16 );
EGB_textZoom(EgbPtr,1, 16, 16 );
EGB_fontStyle(EgbPtr,1+4);
EGB_color(EgbPtr,0,col );
EGB_color(EgbPtr,1,(_ScnCol_black));
EGB_paintMode(EgbPtr,0x022);
EGB_writeMode(EgbPtr,0);
_setWord(para+0, x );
_setWord(para+2, y+15 );
_setWord(para+4, strlen(s));
strcpy(para+6,s);
EGB_sjisString( EgbPtr, para);
}
char *add_path_fn(char *path, char *fn)
{
int len;
len = strlen(path);
if ( len == 0 || !(path[len-1] == '\\' || path[len-1] == '/') )
path[len++] = FsPathDelim;
strcpy( path + len, fn );
return (path);
}
# 116 "instlib.c"
int tif_load(char *fn)
{
char *img;
short fr[4];
int x, y;
SCN_wrtPage(0);
if ( (img = IMG_open()) != (0) )
{
IMG_setPage(img,0);
IMG_setAtt(img,(0x00010000));
IMG_setColor( img, (_ScnCol_black), (_ScnCol_white));
if ( IMG_load(img,fn) == (0) )
{
IMG_getFr(img,fr);
x = (320 - (fr[2] - fr[0] + 1)) / 2;
y = 10 + (230 - (fr[3] - fr[1] + 1)) / 2;
IMG_setPos(img,x,y);
EGB_color(EgbPtr,1,(_ScnCol_black));
EGB_clearScreen(EgbPtr);
EGB_paintMode(EgbPtr,0x22);
IMG_dsp(img);
}
IMG_close(img);
}
SCN_wrtPage(1);
return ((0));
}
# 150 "instlib.c"
int tiflist_disp( char **list )
{
int i, x, y, ret, pixel, md, x0, y0;
char *img;
short fr[4];
char *fn;
SCN_wrtPage(1);
APL_save_desktop();
SCN_boxf(0,0,639,479,0,0);
SCN_wrtPage(0);
for ( i = 0; list[i] != (0); ++i )
{
fn = list[i];
if ( (img = IMG_open()) != (0) )
{
IMG_setAtt(img,(0x00010000));
if ( IMG_load(img,fn) == (0) )
{
IMG_getFr(img,fr);
pixel = IMG_getPixel(img);
switch ( pixel )
{
case 1:
case 4:
x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 3;
break;
case 8:
x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 12;
break;
case 16:
if ( fr[2] - fr[0] + 1 <= 320 )
{
x0 = (320 - (fr[2] - fr[0] + 1)) / 2;
y0 = (240 - (fr[3] - fr[1] + 1)) / 2;
md = 10;
} else
{
x0 = (512 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 17;
}
break;
default:
goto _TIF_ERR;
}
IMG_setPos(img,x0,y0);
PD_curOff();
EGB_displayPage(EgbPtr,0,0);
EGB_writePage(EgbPtr,0);
EGB_clearScreen(EgbPtr);
EGB_resolution(EgbPtr,0,md);
if ( md == 3 || md == 10 )
{
EGB_resolution(EgbPtr,1,3);
EGB_writePage(EgbPtr,1);
EGB_clearScreen(EgbPtr);
}
EGB_writePage(EgbPtr,0);
if ( md == 10 )
{
EGB_displayStart(EgbPtr,2,2,2);
EGB_displayStart(EgbPtr,3,320,240);
}
EGB_color(EgbPtr,1,0);
EGB_clearScreen(EgbPtr);
IMG_dsp(img);
if ( md == 3 || md == 10 )
EGB_displayPage(EgbPtr,1,3);
else
EGB_displayPage(EgbPtr,0,1);
_apl_wait(100 * 8);
while ( PD_getp(&x,&y) )
;
}
IMG_close(img);
}
}
EGB_writePage(EgbPtr,0);
EGB_clearScreen(EgbPtr);
SCN_sysReinit();
disp_desktop();
SCN_wrtPage(1);
APL_load_desktop();
syl_clear();
return ((0));
}
int mveplay(char *fnmve, int loop)
{
char para[256];
sprintf(para,"-loop %d %s", loop, fnmve );
exprun("/OH_TOWNS/DEMOTOOL/mveplay.exp", para );
return (0);
}
int exprun(char *fn, char *para)
{
unsigned int siz;
int md;
char tmp[256];
char *dlgTxm;
char *dir;
siz = APL_getFreeMem();
if ( siz < 2 * 1024 * 1024 )
{
dlgTxm = DlgTxm_open(ColBoxError);
DlgTxm_setTitle(dlgTxm,Fnt16x16, "OUT OF MEMORY");
DlgTxm_putf( dlgTxm, Rom16x16, (1),"");
DlgTxm_putf( dlgTxm, Rom16x16, (1),
"メモリ不足のため実行できません。" );
DlgTxm_putf( dlgTxm, Rom16x16, (1),"");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, (_ScnCol_black),
(_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r', 0x7300, 0, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,480,48);
DlgTxm_setPosition(dlgTxm,(1));
DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
return (-1);
}
dir = FS_pushDir();
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_getDnam(tmp,fn);
add_path_fn(tmp,".");
FS_chdir(tmp);
SCN_wrtPage(1);
APL_save_desktop();
md = (4) | (8);
AplDtaInit();
if ( para != (0) && *para != '\0' )
{
AplDtaSetStr("$MainArg","%s %s", fn, para);
if ( strlen(fn) + strlen(para) + 1 >= 128 )
md &= (~(8));
}
FS_popDir(dir);
PCL_exec(fn,md);
SCN_sysReinit();
disp_desktop();
SCN_wrtPage(1);
APL_load_desktop();
syl_clear();
return ((0));
}
# 324 "instlib.c"
int inst_help( int evNo, char *evDat, char *fn)
{
char tmp[256];
FS_chdrv(toupper(DirStart[0]) - 'A');
sprintf(tmp,"%s.",DirStart);
FS_chdir(tmp);
APL_textView(Rom16x16,608,391,17,fn,"HELP FILE : %s", fn);
return (evNo);
}
# 341 "instlib.c"
int install_end( char *soft_name, int err )
{
char *dlgTxm;
int colbox;
char *msg;
msg = err == 0 ? "インストールが終わりました。"
: "インストールに失敗しました。";
colbox = 0;
colbox = SCN_tile_newMixCol(colbox,0x00,(_ScnColTbl[12]),(_ScnColTbl[ 7]));
if ( (dlgTxm = DlgTxm_open(colbox)) != (0) )
{
DlgTxm_setTitle(dlgTxm,Fnt16x16,soft_name);
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "");
DlgTxm_putf( dlgTxm, Fnt16x16, (1), msg );
DlgTxm_putf( dlgTxm, Fnt16x16, (1), "");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 64, 20, (_ScnCol_black), (_ScnColTbl[ 7]), (_ScnCol_hilight), (_ScnCol_dark), '\r' , 0x7300 , 1, "", 0, "OK : [実行]");
DlgTxm_setSize(dlgTxm,480,64);
DlgTxm_setPosition(dlgTxm,(1));
DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
}
SCN_tile_free(colbox);
}
# 10 "item.c"
int item_get_newpos( char *pathItem, int fposBase, short *newfrm );
int item_chkpos( char *pathItem, int fposStart, short *frmchk );
int item_get_fr( char *pathItem, int fpos, short *fr );
int item_adjust_pos( short *newfrm );
int item_setApl( int drv, int icon, char *ttl, char *path, char *para, int att )
{
char pathItem[64], prog[128];
short fr[4];
int iconGrp;
int fpos;
char *ttlGrp;
ttlGrp = "天晴";
iconGrp = 1059;
sprintf( pathItem, "%c:\\tmenu.itm", drv + 'A');
if ( FS_isFile(pathItem) != (1) )
{
ITM_CreateItemFile(pathItem);
}
fr[0] = fr[1] = fr[2] = fr[3] = -1;
fpos = ITM_GetGrpFPos(pathItem,0,-1,-1,ttlGrp,-1,fr);
if ( fpos < 0 )
{
item_get_newpos( pathItem, 0, fr);
if ( (fpos = ITM_AddGrpItem(pathItem,0,iconGrp,ttlGrp,fr)) < 0 )
return ((-1));
}
if ( item_get_newpos( pathItem, fpos, fr) < 0 )
return ((-1));
FS_dosFn(prog,path);
FS_strupr(prog);
if ( ITM_AddAplItem( pathItem, fpos, icon, ttl, prog, para, att, fr) < 0 )
return ((-1));
return ((0));
}
int item_get_newpos( char *pathItem, int fposBase, short *newfrm )
{
int area, x, y, x0, y0;
for ( area = 0; area < 9; ++area )
{
x = area;
for ( y = 0; y < area; ++y )
{
x0 = x * 64; newfrm[0] = x0+8; newfrm[2] = x0 + 63-8;
y0 = y * 48; newfrm[1] = y0+4; newfrm[3] = y0 + 47-4;
if ( item_chkpos( pathItem, fposBase, newfrm ) )
goto _OK;
}
y = area;
for ( x = 0; x <= area; ++x )
{
x0 = x * 64; newfrm[0] = x0+8; newfrm[2] = x0 + 63-8;
y0 = y * 48; newfrm[1] = y0+4; newfrm[3] = y0 + 47-4;
if ( item_chkpos( pathItem, fposBase, newfrm ) )
goto _OK;
}
}
_OK:
x0 = (newfrm[0] + newfrm[2] + 1) / 2 - 12;
newfrm[0] = (x0+7) & (~7);
newfrm[1] = newfrm[1] + 4;
newfrm[2] = newfrm[0] + 24;
newfrm[3] = newfrm[1] + 24;
# 86 "item.c"
return (item_adjust_pos( newfrm ));
}
int item_chkpos( char *pathItem, int fposStart, short *frmchk )
{
int ret;
int fpos, nextFPos;
int etyNum;
short icnNum;
char ttlStr[128];
int atrInf;
short frm[4];
int numItem;
# 105 "item.c"
if ( (fpos = fposStart) > 0 )
{
ret = ITM_GetItmType(pathItem,fpos);
if ( ret != 1 )
return (-1);
ITM_GetGrpData(pathItem,fpos,&etyNum,&icnNum,ttlStr,&nextFPos,frm);
# 115 "item.c"
while ( etyNum-- > 0 )
{
if ( (fpos = ITM_GetPhysclNextFPos( pathItem, fpos )) < 0 )
break;
if ( (ret = item_get_fr( pathItem, fpos, frm )) == 0 )
{
if ( frm[0] <= frmchk[2] && frm[2] >= frmchk[0]
&& frm[1] <= frmchk[3] && frm[3] >= frmchk[1] )
return (0);
}
}
} else
{
while ( (fpos = ITM_GetPhysclNextFPos( pathItem, fpos )) > 0 )
{
if ( ITM_GetStair( pathItem, fpos ) == 0 )
{
if ( (ret = item_get_fr( pathItem, fpos, frm )) == 0 )
{
if ( frm[0] <= frmchk[2] && frm[2] >= frmchk[0]
&& frm[1] <= frmchk[3] && frm[3] >= frmchk[1] )
return (0);
}
}
}
}
return (1);
}
int item_get_fr( char *pathItem, int fpos, short *fr )
{
int ret;
int nextFPos;
int etyNum;
short icnNum;
char ttlStr[128], pathStr[128], paraStr[128];
int atrInf;
# 156 "item.c"
ret = ITM_GetItmType(pathItem,fpos);
# 160 "item.c"
switch ( ret )
{
case 1:
ITM_GetGrpData(pathItem,fpos,&etyNum,&icnNum,ttlStr,&nextFPos,fr);
# 167 "item.c"
break;
case 2:
ITM_GetAplData(pathItem,fpos,&icnNum,ttlStr,pathStr,paraStr,atrInf,fr);
# 173 "item.c"
break;
case 3:
return (-1);
default:
return (-1);
}
return (0);
}
int item_adjust_pos( short *newfrm )
{
if ( newfrm[2] > 621 )
{
newfrm[2] = 621;
newfrm[0] = newfrm[2] - 24;
}
if ( newfrm[3] > 410 )
{
newfrm[3] = 410;
newfrm[1] = newfrm[3] - 24;
}
return ((0));
}