home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
taropyon
/
edia
/
edia.cci
< prev
next >
Wrap
Text File
|
1995-06-20
|
31KB
|
1,510 lines
# 1 "main.c"
# 1 "main.c"
# 10 "main.c"
char *SysMacro = 0;
char SYSMACRO_FN[12] = {'e','d','i','a','.','m','a','c','\0'};
char MACROKEY_EXPSEARCH_PATH[16] = {'E','x','p','_','s','e','a','r','c','h','_','p','a','t','h','\0'};
# 18 "lib.c"
char *GetAsciiTime( char *s, long t )
{
int *tm;
tm = localtime( &t );
sprintf( s, "%04d/%02d/%02d %02d:%02d",
(tm[5])+1900, (tm[4])+1, (tm[3]),
(tm[2]), (tm[1]) );
return (s);
}
int TxdUsr_saveColTbl( char *txd )
{
int ret;
char *fdl;
char tmp[128], *fn;
if ( (fdl = FDL_open(0)) == 0 )
return ((-1));
FDL_set_wildcard( fdl, "*.tbl");
FDL_set_title( fdl, "SAVE COLOR TABLE");
ret = FDL_start(fdl);
fn = FDL_get_filename(fdl);
if ( ret != (0) || strlen(fn) == 0 )
{
FDL_close(fdl);
return ((-1));
}
FS_appendSnam( tmp, fn, ".tbl");
TXD_saveColTbl(txd,tmp);
FDL_close(fdl);
return ((0));
}
# 1 "pcl.c"
int SetExpSearchPath()
{
char *p;
char buf[256];
char *tok, *terminator;
if ( (p = AMAC_getName( SysMacro, MACROKEY_EXPSEARCH_PATH )) == 0 )
{
return ((0));
}
terminator = ";";
strcpy(buf,p);
tok = strtok(buf, terminator);
while ( tok )
{
p = tok;
while ( isspace(*p) )
++p;
if ( *p )
AplPclSetPath( p );
tok = strtok(0, terminator);
}
return ((0));
}
int CCI_setExpSearchPath()
{
int ret;
char *p;
char buf[256];
char *dlg;
if ( (p = AMAC_getName( SysMacro, MACROKEY_EXPSEARCH_PATH )) == 0 )
buf[0] = '\0';
else
strcpy(buf,p);
dlg = DLG_getsOpen( (0x10010), (0x10010), 480,"セミコロン(;)で区切って複数指定できます。");
DLG_getsSetTitle( dlg, "EXP SEARCH PATH" );
ret = DLG_getsStart( dlg, 255, buf );
if ( ret > 0 && buf[0] )
{
AMAC_setKey( SysMacro, MACROKEY_EXPSEARCH_PATH, buf );
SetExpSearchPath();
}
DLG_getsClose(dlg);
return ((0));
}
# 5 "he386.c"
char *_he386p_ = "he386p.exp";
char he386_option[256] = {0};
int he386_compile( char *pn )
{
int ret, drv;
char tmp[256], fn[256];
drv = toupper(pn[0]) - 'A';
FS_chdrv(drv);
FS_getDnamPath(tmp,pn);
FS_chdir(tmp);
AplDtaInit();
AplDtaSetStr( "$MainArg", "%s %s %s", _he386p_, he386_option, pn );
ret = AplPclExec( _he386p_, 4 );
FS_getFnam(fn,pn);
FS_appendSnam( fn, fn, ".mid" );
if ( FS_isFileExist(fn) > 0 )
MID_playStart( fn );
return ((0));
}
int he386_menu( char *pn )
{
int ret;
char tmp[256];
char *dlg;
char *mnu;
char *obj;
char *p;
if ( pn[0] == '\0' )
return ((0));
obj = MNU_alloc(3);
MNU_setObj(obj, 0, (2), 'O', "Option" , 0, 1, 0, 0);
MNU_setObj(obj, 1, (0), 0 , 0 , 0, 2, 0, 0);
MNU_setObj(obj, 2, (2), 'C', "Compile (normal)", 0, 3, 0, 0);
mnu = MNU_open( (0x10010), (0x10010), (1),
obj, "MML Compile" );
for(;;)
{
ret = MNU_start ( mnu );
switch ( ret )
{
case 1:
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"HE386 のオプションパラメータを入力してください。");
DLG_getsSetTitle( dlg, "MML Compiler option parameter" );
strcpy( tmp, he386_option);
ret = DLG_getsStart( dlg, 255, tmp );
if ( ret >= 0 )
strcpy( he386_option, tmp );
DLG_getsClose(dlg);
break;
case 3:
he386_compile( pn );
goto _RET;
default:
goto _RET;
}
}
_RET:
MNU_close(mnu);
MNU_free(obj);
return ((0));
}
# 5 "cciexp.c"
char *_cci_exp_ = "cci.exp";
char cci_cci_option[256] = {0};
char cci_usr_option[256] = {0};
int cci_call( char *_pn )
{
int ret, drv;
char tmp[256], pn[256], fn[256], exfn[256];
char *dlg;
drv = toupper(pn[0]) - 'A';
FS_chdrv(drv);
FS_getDnamPath(tmp,pn);
FS_chdir(tmp);
FS_unix2dos(pn, _pn);
FS_getFnam(fn,pn);
FS_appendSnam( exfn, fn, "._ci" );
sprintf( tmp, "cpp -D__CCI__ %s > %s", pn, exfn );
dlg = DLG_msgOpen( (0x10030), (0x10030),
80*6, 14*12, 1, 3, (0x1000|(((12)&15)<<4)|((7)&15)),
"CPP" );
if ( dlg )
{
DLG_msgSetConfig( dlg, 4, 6, 12 );
DLG_msgClear( dlg, -1 );
DLG_msgConsSet( dlg, 1, 15);
}
MOS_curDisp(2);
system( tmp );
MOS_curDisp(3);
if ( dlg )
{
DLG_msgPrintf(dlg,"\r\n***** COMPLETED *****\r\n");
DLG_msgConsEnd( dlg );
DLG_msgClose(dlg);
}
AplDtaInit();
AplDtaSetStr( "$MainArg", "%s %s %s -- %s", _cci_exp_, cci_cci_option, exfn, cci_usr_option );
ret = AplPclExec( _cci_exp_, 7 );
FS_getFnam(fn,pn);
FS_appendSnam( fn, fn, ".mid" );
# 58 "cciexp.c"
return ((0));
}
int cci_call_menu( char *pn )
{
int ret;
char tmp[256];
char *dlg;
char *mnu;
char *obj;
char *p;
if ( pn[0] == '\0' )
return ((0));
obj = MNU_alloc(4);
MNU_setObj(obj, 0, (2), 'S', "System option", 0, 1, 0, 0);
MNU_setObj(obj, 1, (2), 'U', "User Option" , 0, 2, 0, 0);
MNU_setObj(obj, 2, (0), 0 , 0 , 0, 3, 0, 0);
MNU_setObj(obj, 3, (2), 'C', "Call CCI" , 0, 4, 0, 0);
mnu = MNU_open( (0x10010), (0x10010), (1),
obj, "CCI" );
for(;;)
{
ret = MNU_start ( mnu );
switch ( ret )
{
case 1:
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"CCI のオプションパラメータを入力してください。");
DLG_getsSetTitle( dlg, "CCI system option parameter" );
strcpy( tmp, cci_cci_option);
ret = DLG_getsStart( dlg, 255, tmp );
if ( ret >= 0 )
strcpy( cci_cci_option, tmp );
DLG_getsClose(dlg);
break;
case 2:
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"CCI のオプションパラメータを入力してください。");
DLG_getsSetTitle( dlg, "CCI user option parameter" );
strcpy( tmp, cci_usr_option);
ret = DLG_getsStart( dlg, 255, tmp );
if ( ret >= 0 )
strcpy( cci_usr_option, tmp );
DLG_getsClose(dlg);
break;
case 4:
cci_call( pn );
goto _RET;
default:
goto _RET;
}
}
_RET:
MNU_close(mnu);
MNU_free(obj);
return ((0));
}
# 11 "edi.c"
char *EdiTbl_metakey[26] =
{
"$swave(note,cmd,len,Tn,wn,&,x,sp,ep,sin,amp,ang,spd,amp,sub)",
"$cho(note,len,n,x,sp,ep)",
"continue",
"#define\\t",
"#endif",
"fprintf(\x22",
"fgets(buf,len,fp);",
".mmltype\\tfb386\\n.fm\\t\\t\\tfmtone2\\n.pcm\\t\\tensam01\\n",
"#include\\t",
"#ifdef\\n#\\tdefine\\tEXT\\n#else\\n#\\tdefine\\tEXT\\textern\\n#endif\\n",
"iskanji\x28",
"/*************************************************************************\\n*\\n*************************************************************************/\\n",
"void\\tmain(int argc,char *argv[])\\n{\\t",
"NORMAL",
"if ( (fp = fopen(filename,\x22rb\x22))==NULL )\\n",
"printf(\x22",
"exit();",
"return",
"$slide(note,cmd,n,&,x,sp,ep)",
"typedef",
"unsigned",
"$vib(note,len,n,sin,sp,a,spd,ang)",
"$wave(note,cmd,n,&,sin,sp,a,spd,ang)",
"FALSE",
"TRUE",
"register"
};
# 49 "edi.c"
int EdiUsr_sysInit()
{
int i;
EdiHistFlag = (1);
for ( i = 0; i < 26; ++i )
EdiMetaKeySet( 'A'+i, EdiTbl_metakey[i]);
TxdSetSearchPattern("NIFTY TITLE", "[0-9]..../[0-9].... ........ .* .*\\|[0-9]../[0-9].. ...[0-9].... .* .*" );
TxdSetSearchPattern("C FUNCTION" , "^[A-Za-z_].*[ \\t]*[a-zA-Z_].*(.*)" );
TxdSetSearchPattern("TITLE" ,
"^[ \\t]*[★☆●○◎■□◆◇・§]\\|^[ \\t]*[((【《][ 0-90-9]*[))】》]" );
TxdSetSearchPattern("#ifdef~else~endif" ,
"^#[ \\t]*if\\|^#[ \\t]*else\\|^#[ \\t]*endif" );
return ((0));
}
int EdiUsr_sysTerm()
{
return ((0));
}
# 76 "edi.c"
int EdiUsr_guideMsg()
{
int y, x1,y1,x2,y2;
x1 = EdiFr[0];
y1 = EdiFr[1];
x2 = EdiFr[2];
y2 = y1 + 14*2 - 1;
EdiFr[1] = y2 + 1;
DSP_writePage(0);
DSP_boxf(x1,y1,x2,y2,0,1);
y = y1 + 1;
DSP_putf12(x1,y,14,1,
" ^Y:行削除 ^T:左削除 ^U:右削除 ^A:1単語戻る ^F:1単語進む ^W:1行上 ^Z:1行下 ^R:1頁上 ^C:1頁下 ");
y += 14;
DSP_putf12(x1,y,14,1,
" ^B:UNDO ^~B:REDO ^O:TAB・改行表\\示切替 ^Q:拡張1 ^K:拡張2 ^P:ポケット ^L:行削除バッファ・ペースト ^J・G:ガイド・オフ");
return ((0));
}
# 105 "edi.c"
int EdiUsr_openFunc( char *edi )
{
char *txd;
# 118 "edi.c"
txd = EdiGetTxdPtr(edi);
TXD_cstSetKey( txd, (0x04)|(0x10)|0x4800 , (241), 0, "dup_line 行複写");
TXD_cstSetKey( txd, (0x10)|0x1D00, (241), 0, "template テンプレート");
TXD_cstSetKey( txd, (0x04)|(0x10)|0x2100 , (241), 0, "getxt_searchPattern 検索パターンの取得");
TXD_cstSetPfxKey( txd, (0x10)|0x1100 , 0x1200, (241), 0, "word_help キーワード説明");
TXD_cstSetPfxKey( txd, (0x10)|0x2500 , 0x1200, (241), 0, "cut_word 1単語選択");
TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x2400 , 0x1700, (241), 0, "undo_info UNDO/REDO情報の表\\示");
TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x2400 , 0x2C00, (241), 0, "clear_undo_buffer 撤回用バッファの削除");
TXD_cstSetPfxKey( txd, (0x10)|0x2500 , (0x04)|0x1400,
(241), 0, "auto_rect_edit 罫線内の矩形編集");
TXD_cstSetPfxKey( txd, (0x10)|0x1100 , 0x1200, (241), 0, "pg_help プログラム・ヘルパ");
# 134 "edi.c"
TXD_cstSetPfxKey( txd, (0x04)|(0x10)|0x3000 , 0x1500, (241), 0, "mml_toneGen mml generate");
# 153 "edi.c"
return ((0));
}
# 162 "edi.c"
int EdiUsr_saveFunc( char *edi, char *fn )
{
return ((0));
}
# 171 "edi.c"
int EdiUsr_quitFunc( char *edi )
{
return ((0));
}
# 180 "edi.c"
int ediUsr_evtFunc( int evtNo, char *sbj )
{
return EDI_cmdJump( GetEvtSbjPtr(sbj), evtNo );
}
# 189 "edi.c"
int EdiUsr_setPathname( char *edi, char *pn )
{
return ((0));
}
int EDI_menu_1( char *edi, int x, int y )
{
int ret;
char *mnu;
char *obj;
char *func;
func = "ediUsr_evtFunc";
obj = MNU_alloc(11);
MNU_setObj(obj, 0, (2), 'O', "File Open" , 0, (1101) ,func, edi );
MNU_setObj(obj, 1, (2), 'C', "File Close" , 0, (1102) ,func, edi );
MNU_setObj(obj, 2, (0), 0, 0 , 0, 0, 0, 0);
MNU_setObj(obj, 3, (2), 'W', "Write file" , 0, (1104) ,func, edi );
MNU_setObj(obj, 4, (2), 'R', "Read file" , 0, (1103) ,func, edi );
MNU_setObj(obj, 5, (2), 'U', "Update file" , 0, (1105) ,func, edi );
MNU_setObj(obj, 6, (2), 'F', "Change Filename", 0, (1106) ,func, edi );
MNU_setObj(obj, 7, (2), 'E', "Edit original" , 0, (1107),func, edi );
MNU_setObj(obj, 8, (0), 0, 0 , 0, 0, 0, 0);
MNU_setObj(obj, 9, (2), 'P', "UPdate all" , 0, (1110) ,func, edi );
MNU_setObj(obj,10, (2), 'N', "New window" , 0, (1108) ,func, edi );
mnu = MNU_open( x, y, (1), obj, "MENU1 (FILE)" );
# 231 "edi.c"
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
return (ret);
}
# 242 "edi.c"
int edi_evt_jump( int evtNo, char *sbj )
{
char *edi;
char *txd;
char *dlg;
int ret, ln;
char buf[16];
edi = GetEvtSbjPtr(sbj);
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"Input line number ?"
# 257 "edi.c"
);
DLG_getsSetTitle( dlg, "JUMP" );
buf[0] = '\0';
ret = DLG_getsStart( dlg, 15, buf );
if ( ret > 0 && (ln = atoi(buf)) > 0 )
{
txd = EdiGetTxdPtr(edi);
TXD_jumpLine( txd, ln - 1 );
}
DLG_getsClose(dlg);
return (0);
}
# 274 "edi.c"
int _ediSetRplPtn( int evtNo, char *sbj )
{
char *edi;
char *txd;
char buf[256];
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
memset( buf, 0, 256);
if ( TXD_getCutBuf(txd,buf,256) >= 0 )
TXD_setReplacePtn( txd, buf );
return (evtNo);
}
# 293 "edi.c"
int _ediSetRplStr( int evtNo, char *sbj )
{
char *edi;
char *txd;
char buf[256];
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
memset( buf, 0, 256);
if ( TXD_getCutBuf(txd,buf,256) >= 0 )
TXD_setReplaceStr( txd, buf );
return (evtNo);
}
# 312 "edi.c"
int _ediSetSearch( int evtNo, char *sbj )
{
char *edi;
char *txd;
int len;
char buf[256];
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
if ( (len = TXD_getCutBuf(txd,buf,256)) >= 0 )
TXD_setSearchPtn( txd, buf, len );
return (evtNo);
}
# 331 "edi.c"
int EDI_menu_2( char *edi, int x, int y )
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(13);
MNU_setObj(obj, 0, (2), 'F', "Find & jump", 0, (184) , 0, edi );
MNU_setObj(obj, 1, (2), 'S', "Search", 0, (180) , 0, edi );
MNU_setObj(obj, 2, (2), 'R', "Replace", 0, (190) , 0, edi );
MNU_setObj(obj, 3, (2), 'A', "Multi replace All", 0, (191) , 0, edi );
MNU_setObj(obj, 4, (2), '1', "Set repalce pattern", 0, 0, "_ediSetRplPtn", edi );
MNU_setObj(obj, 5, (2), '2', "Set repalce strings", 0, 0, "_ediSetRplStr", edi );
MNU_setObj(obj, 6, (2), '3', "Set search pattern", 0, 0, "_ediSetSearch", edi );
MNU_setObj(obj, 7, (0), 0, 0, 0, 0, 0, 0);
MNU_setObj(obj, 8, (2), 'J', "Jump", 0, 0, "edi_evt_jump" , edi );
MNU_setObj(obj, 9, (2), 'T', "Top of text", 0, (97) , 0, edi );
MNU_setObj(obj,10, (2), 'B', "Bottom of text", 0, (98) , 0, edi );
MNU_setObj(obj,11, (2), 'L', "Last touch", 0, (99) , 0, edi );
MNU_setObj(obj,12, (2), 'M', "Mark", 0, (1201) , 0, edi );
mnu = MNU_open( x, y, (1), obj, "MENU2 (EDIT)" );
# 370 "edi.c"
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
if ( ret > 0 )
return EDI_cmdJump(edi,ret);
else
return (ret);
}
# 384 "edi.c"
int EDI_menu_3( char *edi, int x, int y )
{
int ret;
char *mnu;
char *obj;
char *txd;
int md;
unsigned u[4];
char undoMsg[80], redoMsg[80];
txd = EdiGetTxdPtr(edi);
obj = MNU_alloc(12);
if ( TXD_getUndoInfo( txd, u ) == (0) && u[3] > 0 )
{
md = (2);
sprintf( undoMsg, "Undo (%4d)", u[3] );
# 405 "edi.c"
} else
{
md = (2) | (0x80);
strcpy( undoMsg, "Undo");
# 413 "edi.c"
}
MNU_setObj(obj, 0, md, 'U', undoMsg , 0, (141), 0, edi );
if ( TXD_getRedoInfo( txd, u ) == (0) && u[3] > 0 )
{
md = (2);
sprintf( redoMsg, "Redo (%4d)", u[3] );
# 424 "edi.c"
} else
{
md = (2) | (0x80);
strcpy( redoMsg, "Redo");
# 432 "edi.c"
}
MNU_setObj(obj, 1, md, 'R', redoMsg, 0, (142), 0, edi );
MNU_setObj(obj, 2, (0), 0, 0, 0, 0 , 0, 0);
MNU_setObj(obj, 3, (2), '1', "Split 1 left/right", 0, (1310), 0, edi );
MNU_setObj(obj, 4, (2), '2', "Split 2 up/down", 0, (1320), 0, edi );
MNU_setObj(obj, 5, (0), 0, 0, 0, 0, 0, 0);
MNU_setObj(obj, 6, (2), 'P', "Print CUT-BUFFER", 0, (1304), 0, edi );
MNU_setObj(obj, 7, (2), 'T', "Text printout", 0, (1330) , 0, edi );
MNU_setObj(obj, 8, (0), 0, 0, 0, 0, 0, 0);
MNU_setObj(obj, 9, (2), 'C', "Calculator", 0, (3041), 0, edi );
MNU_setObj(obj,10, (2), 'A', "Ascii code list", 0, (1301), 0, edi );
MNU_setObj(obj,11, (2), 'K', "Kanji code list", 0, (1302), 0, edi );
mnu = MNU_open( x, y, (1), obj, "MENU3 (UTILITY)" );
# 461 "edi.c"
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
if ( ret > 0 )
return EDI_cmdJump(edi,ret);
else
return (ret);
}
# 475 "edi.c"
int _ediSaveSetup( int evtNo, char *sbj )
{
char *edi;
char *txd;
char *fdl;
int ret;
char tmp[128], *fn;
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
if ( (fdl = FDL_open(0)) == 0 )
return ((-1));
FDL_set_title( fdl,"SAVE SETUP");
FDL_set_wildcard( fdl, "*.kst" );
ret = FDL_start(fdl);
fn = FDL_get_filename(fdl);
if ( ret != (0) || strlen(fn) == 0 )
{
FDL_close(fdl);
return ((-1));
}
FS_appendSnam( tmp, fn, ".kst" );
EDI_saveKeySetup(edi,tmp);
FDL_close(fdl);
return ((0));
}
int _ediLoadSetup( int evtNo, char *sbj )
{
char *edi;
char *txd;
char *fdl;
int ret;
char tmp[128], *fn;
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
if ( (fdl = FDL_open(0)) == 0 )
return ((-1));
FDL_set_title( fdl,"LOAD SETUP");
FDL_set_wildcard( fdl, "*.kst" );
ret = FDL_start(fdl);
fn = FDL_get_filename(fdl);
if ( ret != (0) || strlen(fn) == 0 )
{
FDL_close(fdl);
return ((-1));
}
FS_appendSnam( tmp, fn, ".kst" );
EDI_loadKeySetup(edi,tmp);
FDL_close(fdl);
return ((0));
}
int _ediCallCCI( int evtNo, char *sbj )
{
char *edi;
char *pn;
edi = GetEvtSbjPtr(sbj);
pn = ((edi)+(40));
cci_call_menu(pn);
return ((0));
}
int _ediCallHE386( int evtNo, char *sbj )
{
char *edi;
char *pn;
edi = GetEvtSbjPtr(sbj);
pn = ((edi)+(40));
he386_menu( pn );
return ((0));
}
int _ediCallGSPLAY( int evtNo, char *sbj )
{
AplDtaInit();
AplDtaSetStr( "$MainArg", "gsplay -wrdplay H:/USR/SND/JCOMP/jcomp.exp");
AplPclExec( "GSPLAY.EXP", 7 );
return ((0));
}
int _ediCallExpPath( int evtNo, char *sbj )
{
CCI_setExpSearchPath();
return ((0));
}
# 577 "edi.c"
int EDI_menu_4( char *edi, int x, int y )
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(10);
MNU_setObj(obj, 0, (2), 'A', "Alphabet buffer" , 0, (3000) , 0, edi );
MNU_setObj(obj, 1, (2), 'K', "Key customize" , 0, (2032) , 0, edi );
MNU_setObj(obj, 2, (2), 'S', "Save key setup data", 0, 0, "_ediSaveSetup" , edi );
MNU_setObj(obj, 3, (2), 'L', "Load key setup data", 0, 0, "_ediLoadSetup" , edi );
MNU_setObj(obj, 4, (0), 0 , 0 , 0, 0, 0 , 0);
MNU_setObj(obj, 5, (2), 'C', "CCI" , 0, 0, "_ediCallCCI" , edi );
MNU_setObj(obj, 6, (2), 'M', "MML Compile" , 0, 0, "_ediCallHE386" , edi );
MNU_setObj(obj, 7, (2), 'G', "GSPLAY" , 0, 0, "_ediCallGSPLAY" , edi );
MNU_setObj(obj, 8, (0), 0 , 0 , 0, 0, 0 , 0);
MNU_setObj(obj, 9, (2), 'P', "EXP search path" , 0, 0, "_ediCallExpPath", edi );
mnu = MNU_open( x, y, (1), obj, "MENU4 (OTHER)" );
# 610 "edi.c"
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
if ( ret > 0 )
return EDI_cmdJump(edi,ret);
else
return (ret);
}
int EDI_menu_5( char *edi ) { return ((-1)); }
int EDI_menu_6( char *edi ) { return ((-1)); }
int EDI_menu_7( char *edi ) { return ((-1)); }
int EDI_menu_8( char *edi ) { return ((-1)); }
int _ediSaveColTbl( int evtNo, char *sbj )
{
char *edi;
char *txd;
edi = GetEvtSbjPtr(sbj);
txd = EdiGetTxdPtr(edi);
TxdUsr_saveColTbl( txd );
return ((0));
}
# 641 "edi.c"
int EDI_setup2( char *edi )
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(2);
MNU_setObj(obj, 0, (2), 'C' , "Change color table", 0, (1910) , 0 , edi );
MNU_setObj(obj, 1, (2), 'S' , "Save color table" , 0, 0 , "_ediSaveColTbl", edi );
mnu = MNU_open( (0x10020), (0x10020),
(1), obj, "SETUP2" );
# 660 "edi.c"
ret = MNU_start( mnu );
MNU_close(mnu);
MNU_free(obj);
if ( ret > 0 )
return EDI_cmdJump(edi,ret);
else
return (ret);
}
# 674 "edi.c"
int TxdUsr_cut_word(char *txd )
{
if ( _getByte((txd)+(682)) != 0 )
return (0);
TXD_cmdJump( txd, (161) );
TXD_cmdJump( txd, (95) );
TXD_cmdJump( txd, (163) );
return ((0));
}
# 688 "edi.c"
int TxdUsr_dup_line( char *txd )
{
if ( _getByte((txd)+(682)) != 0 )
return (0);
TXD_cmdJump( txd, (85) );
TXD_cmdJump( txd, (171) );
TXD_cmdJump( txd, (82) );
TXD_cmdJump( txd, (172));
return ((0));
}
int _txd_printUndoInf( char *dlg, int *ubuf )
{
DLG_msgPrintf(dlg," 最大バッファサイズ %8d bytes\r\n", ubuf[0] );
DLG_msgPrintf(dlg," 使用バッファサイズ %8d bytes\r\n", ubuf[1] );
DLG_msgPrintf(dlg," 最大回数 %8d 回\r\n" , ubuf[2] );
DLG_msgPrintf(dlg," 現在有効数 %8d 回" , ubuf[3] );
}
# 712 "edi.c"
int TxdUsr_undo_info( char *txd )
{
char *dlg;
int ch, x, y;
int u[4];
unsigned ec;
DSP_writePage(1);
dlg = DLG_msgOpen( (0x10020),(0x10020),
8*38,16*10,1,3,(0x1000|(((12)&15)<<4)|((7)&15)),
"UNDO/REDO BUFFER INFORMATION");
if ( dlg == 0 )
return ((-1));
DLG_msgClear( dlg, -1 );
if ( TXD_getUndoInfo( txd, u ) == (0) )
{
DLG_msgPuts( dlg,"- UNDO -\r\n" );
_txd_printUndoInf( dlg, u );
if ( TXD_getRedoInfo( txd, u ) == (0) )
{
DLG_msgPuts( dlg,"\r\n- REDO -\r\n" );
_txd_printUndoInf( dlg, u );
} else
{
DLG_msgPuts(dlg,"\r\n\n REDO機能\は使用されていません。\r\n" );
}
} else
{
DLG_msgPuts(dlg,"\r\n UNDO機能\は使用されていません。\r\n" );
}
while ( 1 )
{
ch = EVT_getkey(&ec);
if ( ch != 0xFFFF || EVT_mos_pget(&x,&y) )
break;
EVT_idl();
}
DLG_msgClose(dlg);
EVT_mos_waitBO();
return ((0));
}
# 761 "edi.c"
int TxdUsr_clear_undo_buffer( char *txd )
{
TXD_undo_freeAll( txd );
return ((0));
}
# 771 "edi.c"
int _txd_isRectCha(int ch)
{
switch ( ch )
{
case 0x84A1:
case 0x84A4:
case 0x84A5:
case 0x84A3:
case 0x84A2:
case 0x84A7:
case 0x84A8:
case 0x84A6:
case 0x84A9:
return (0);
case 0x84A0:
return (1);
case 0x849F:
return (2);
case 0x84AC:
case 0x84AD:
case 0x84AE:
case 0x84AF:
case 0x84B0:
case 0x84B1:
case 0x84B2:
case 0x84B3:
case 0x84B4:
return (0);
case 0x84AB:
return (1);
case 0x84AA:
return (2);
case 0x84CC:
case 0x84CD:
case 0x84CE:
case 0x84CF:
case 0x84D0:
case 0x84D1:
case 0x84D2:
case 0x84D3:
case 0x84D4:
return (0);
case 0x84CB:
return (1);
case 0x84CA:
return (2);
default:
return (-1);
}
}
# 829 "edi.c"
int TxdUsr_auto_rect_edit( char *txd )
{
int saveLnL;
int saveOfs;
int typ, x, y;
int x1, y1, x2, y2;
int pos1LnL, pos1Ofs;
int pos2LnL, pos2Ofs;
saveLnL = _getDword((txd)+(652));
saveOfs = _getDword((txd)+(664));
if ( saveLnL == 0 || _getDword((txd)+(648)) == 0 || _getDword((txd)+(672)) == 0 )
return ((0));
if ( _txd_isRectCha(TXD_getch(txd)) >= 0 )
return ((0));
for(;;)
{
TXD_cmdJump(txd,(83));
typ = _txd_isRectCha(TXD_getch(txd));
if ( typ == (1) )
{
x1 = _getDword((txd)+(672));
break;
} else if ( _getDword((txd)+(672)) == 0 )
goto _ERR;
}
for(;;)
{
TXD_cmdJump(txd,(81));
x = _getDword((txd)+(672));
if ( x != x1 )
goto _ERR;
typ = _txd_isRectCha(TXD_getch(txd));
if ( typ == (0) )
{
y1 = _getDword((txd)+(656));
break;
} else if ( typ != (1) )
goto _ERR;
}
pos1LnL = _getDword((txd)+(652));
pos1Ofs = _getDword((txd)+(664));
for(;;)
{
TXD_cmdJump(txd,(82));
x = _getDword((txd)+(672));
if ( x != x1 )
goto _ERR;
typ = _txd_isRectCha(TXD_getch(txd));
if ( typ == (0) )
{
y2 = _getDword((txd)+(656));
break;
} else if ( typ != (1) )
goto _ERR;
}
for(;;)
{
TXD_cmdJump(txd,(84));
y = _getDword((txd)+(656));
if ( y != y2 )
goto _ERR;
typ = _txd_isRectCha(TXD_getch(txd));
if ( typ == (0) )
{
x2 = _getDword((txd)+(672));
break;
} else if ( typ != (2) )
goto _ERR;
}
if ( x1 >= x2 || y1 >= y2 )
goto _ERR;
pos2LnL = _getDword((txd)+(652));
pos2Ofs = _getDword((txd)+(664));
TXD_jumpPos( txd, pos1LnL, pos1Ofs );
TXD_cmdJump(txd,(84));
TXD_cmdJump(txd,(82));
TXD_cmdJump(txd,(231));
TXD_jumpPos( txd, pos2LnL, pos2Ofs );
TXD_cmdJump(txd,(81));
TXD_cmdJump(txd,(232));
return ((0));
_ERR:
TXD_jumpPos( txd, saveLnL, saveOfs );
return ((0));
}
# 940 "edi.c"
int TxdUsr_getxt_searchPattern( char *txd )
{
unsigned int curLnL, curOfs;
int ret, ch, len;
char ptn[256+4];
curLnL = _getDword((txd)+(652));
curOfs = _getDword((txd)+(664));
if ( (ch = TXD_getch(txd)) > 0 )
{
len = 0;
while( len < 256 )
{
ch = TXD_getch(txd);
TXD_cmdJump( txd, (84) );
if ( (ch & 0xFF) < 0x20 )
break;
if ( ch < 256 )
{
if ( isdigit(ch) || isalpha(ch) || ch == '_' )
ptn[len++] = ch;
else
break;
} else
{
ptn[len++] = (ch>>8) & 0xFF;
ptn[len++] = ch & 0xFF;
}
}
ptn[len] = '\0';
TXD_jumpPos( txd, curLnL, curOfs );
if ( len == 0 )
return ((0));
if ( TXD_setSearchPtn( txd, ptn, len ) == (0) )
{
DSP_writePage(1);
DLG_tmpMsgTime( (0x10020), (0x10020),
1, 3, (0x1000|(((5)&15)<<4)|((7)&15)),
2, "Sear search pattern \n %s ", ptn );
}
}
return ((0));
}
# 991 "edi.c"
int TxdUsr_form_1( char *txd )
{
char *edi;
edi = _getDword((txd)+(84));
_setByte((edi)+(32),(0));
_setByte((txd)+(369),(0));
_setByte((txd)+(370),(1));
_setByte((txd)+(371),(1));
_setByte((txd)+(376),(0));
_setByte((txd)+(373),(1));
_setByte((txd)+(374),(1));
_setByte((txd)+(375),(0));
_setDword((txd)+(560),(6));
_setDword((txd)+(564),(12));
_setDword((txd)+(576),(256));
_setDword((txd)+(588),(4));
TXD_chgSize(txd);
return ((0));
}
# 1019 "edi.c"
int TxdUsr_form_2( char *txd )
{
char *edi;
edi = _getDword((txd)+(84));
_setByte((edi)+(32),(0));
_setByte((txd)+(369),(1));
_setByte((txd)+(370),(0));
_setByte((txd)+(371),(1));
_setByte((txd)+(376),(1));
_setByte((txd)+(373),(1));
_setByte((txd)+(374),(1));
_setByte((txd)+(375),(0));
_setDword((txd)+(560),(8));
_setDword((txd)+(564),(16));
_setDword((txd)+(576),(38));
_setDword((txd)+(588),(2));
TXD_chgSize(txd);
return ((0));
}
# 5 "edimml.c"
int mml_tone_gen( char *txd, char *name )
{
char tmp[256];
TXD_setBuf( txd, 0, 2, "\r\n");
sprintf( tmp, "#define\tA_%s\t$TONE_MODIFY(64,64,64, 64,64, 64,64,64)\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tF_%s\t$INSTFILTER(off:0,off:0,rnd:-1/1)\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tT_%s\t$F_%s() $INSTMAC( 0, 40, 80, 14,100, 0, 0,12) $A_%s()\r\n", name, name, name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tD_%s\t?(delay:*0..8)\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tO_%s\to4\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tG_%s\tq92 ?#(gate:*-16..0)\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\tC_%s\tv100 x127 i0 m0 p0\r\n", name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
sprintf( tmp, "#define\t %s\t$D_%s() $O_%s() $C_%s() $G_%s() $GenPin()\r\n", name, name, name, name, name );
TXD_setBuf( txd, 0, strlen(tmp), tmp);
TXD_scnFlush( txd );
return ((0));
}
int TxdUsr_mml_toneGen( char *txd )
{
int ret;
char *dlg;
char name[128];
DSP_writePage(1);
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"音色マクロ名を入力してください。");
DLG_getsSetTitle( dlg, "MML GENERATE" );
name[0] = '\0';
ret = DLG_getsStart( dlg, 127, name );
if ( ret > 0 && name[0] != '\0' )
{
mml_tone_gen( txd, name );
}
DLG_getsClose(dlg);
return (0);
}
# 5 "edipghlp.c"
char *MACROKEY_PGHELP_PATH = "ProgHelp_path";
char *_PGHELP_FN = "_index";
# 16 "edipghlp.c"
int _pgHelp_hash(char *name)
{
int hash, ch;
hash = 0;
while ( *name )
{
ch = (*name) & 0xFF;
hash = hash + (ch * 31);
++name;
}
return (hash & ((16)-1));
}
int _pgHelp(char *name)
{
char *path, fnIndex[256], fn[256];
char *fpIndex, *fp;
int ret, hash, numfn, n, ch, i;
char *s, *p, buf[(512)];
char *fntbl, fninf[(16)];
char tag[(40)+4], func[(28)+4];
char fbuf[64];
long fpos;
int x0, y0;
char *dlg;
char *txtPtr;
DSP_writePage(1);
x0 = y0 = (0x10030);
txtPtr = 0;
hash = _pgHelp_hash(name);
if ( (path = AMAC_getName( SysMacro, MACROKEY_PGHELP_PATH)) == 0 )
{
sprintf(buf, "%sMANUAL/", AplGetStartPath() );
AMAC_setKey( SysMacro, MACROKEY_PGHELP_PATH, buf );
if ( (path = AMAC_getName( SysMacro, MACROKEY_PGHELP_PATH)) == 0 )
return ((-1));
}
sprintf( fnIndex, "%s%s.%03d", path, _PGHELP_FN, hash );
if ( (fpIndex = fopen(fnIndex,"rb")) == 0 )
{
DLG_tmpMsgTime( (0x10020), (0x10020),
1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
3, " %s : \n Can't open index file!! ", fnIndex );
return ((-1));
}
ret = 0;
for(;;)
{
if ( fread(tag,(40),1,fpIndex) < 1 )
{
ret = -1;
break;
}
if ( strncmp( name, tag + ((40) - (28)), (28)) == 0 )
break;
}
fclose(fpIndex);
if ( ret )
{
DLG_tmpMsgTime( (0x10020), (0x10020),
1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
3, " %s : \n Pattern not found!! ", name );
return ((-1));
}
sprintf( fnIndex, "%s%s.tbl", path, _PGHELP_FN );
if ( (fpIndex = fopen(fnIndex,"rb")) == 0 )
{
DLG_tmpMsgTime( (0x10020), (0x10020),
1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
3, " %s : \n Can't open index file!! ", fnIndex );
return ((-1));
}
fpos = tag[0] * (16);
fseek(fpIndex,fpos,(0));
fread(fninf,(16),1,fpIndex);
fclose(fpIndex);
if ( fninf[0] != tag[0] )
return ((-1));
sprintf(fn,"%s%s", path, fninf + 1);
if ( (fp = fopen(fn,"rb")) == 0 )
{
DLG_tmpMsgTime( (0x10020), (0x10020),
1, 3, (0x1000|(((10)&15)<<4)|((7)&15)),
3, " %s : \n Can't open manual file!! ", fn );
return ((-1));
}
fpos = _getDword(tag + 1);
fseek(fp,fpos,(0));
fgets(buf,(512),fp);
while ( fgets(buf,(512),fp) != 0 )
{
if ( buf[0] == '.' )
break;
txtPtr = DLG_txtSetLinBuf( txtPtr, 8, 80, "%s", buf );
}
fclose(fp);
if ( (dlg = DLG_txtOpen(x0,y0,80,20,txtPtr,0)) == 0 )
{
DLG_txtFreeLinBuf( txtPtr );
return ((-1));
}
DLG_txtSetTitle( dlg, "PROGRAM HELPER" );
DLG_txtSetGuideMsg( dlg, "Function : %s", name );
DLG_txtStart( dlg );
DLG_txtClose( dlg );
DLG_txtFreeLinBuf( txtPtr );
return ((0));
}
# 147 "edipghlp.c"
int TxdUsr_pg_help( char *txd )
{
int ret, ch, len;
char func[(28)+4];
unsigned int curLnL, curOfs;
char *dlg;
if ( _getByte((txd)+(682)) != 0 )
return (0);
curLnL = _getDword((txd)+(652));
curOfs = _getDword((txd)+(664));
if ( (ch = TXD_getch(txd)) > 0 && ch < 256 && (isalpha(ch) || ch == '_') )
{
len = 0;
while( len < (28) )
{
ch = TXD_getch(txd);
TXD_cmdJump( txd, (84) );
if ( isalpha(ch) || isdigit(ch) || ch == '_' )
{
func[len++] = ch;
} else
break;
}
func[len] = '\0';
TXD_jumpPos( txd, curLnL, curOfs );
if ( len == 0 )
return ((0));
} else
func[0] = '\0';
DSP_writePage(1);
dlg = DLG_getsOpen( (0x10010), (0x10010), 320,
"検索パターンを入力してください。" );
DLG_getsSetTitle( dlg, "PATTERN" );
ret = DLG_getsStart( dlg, (28), func );
DLG_getsClose(dlg);
if ( ret <= 0 )
return (0);
_pgHelp( func );
return (0);
}
# 6 "editmp.c"
char *_ediTmp = 0;
int _ediTmpData_open()
{
char tmp[256];
if ( _ediTmp == 0 )
{
if ( (_ediTmp = AMAC_allocWork(0)) == 0 )
return ((-1));
sprintf( tmp,"%s%s", AplGetStartPath(), "editmp.tbl" );
AMAC_load( _ediTmp, tmp );
}
return ((0));
}
# 26 "editmp.c"
int TxdUsr_template( char *txd )
{
char word[256], tmp[4];
int ch, len;
unsigned int curLnL, curOfs, lnL;
char *s;
if ( _ediTmpData_open() )
return ((-1));
if ( _getByte((txd)+(682)) != 0 )
return (0);
curLnL = _getDword((txd)+(652));
if ( (curOfs = _getDword((txd)+(664))) == 0 )
return ((0));
TXD_cmdJump( txd, (96) );
if ( _getDword((txd)+(652)) < curLnL )
TXD_cmdJump( txd, (84) );
if ( (ch = TXD_getch(txd)) < 0 || (isalpha(ch) == 0 && ch != '_') )
{
TXD_jumpPos( txd, curLnL, curOfs );
return ((0));
}
len = 0;
while( len < 255 )
{
ch = TXD_getch(txd);
TXD_cmdJump( txd, (84) );
if ( isalpha(ch) || ch == '_' )
{
word[len++] = ch;
} else
break;
}
word[len] = '\0';
TXD_jumpPos( txd, curLnL, curOfs );
if ( len == 0 )
return ((0));
if ( (s = AMAC_getName( _ediTmp, word )) == 0 )
return ((0));
while ( *s )
{
ch = (*s) & 0xFF;
++s;
switch ( ch )
{
case '\x02':
TXD_cmdJump( txd, (85) );
break;
case '\x06':
TXD_cmdJump( txd, (86) );
break;
case '\x08':
TXD_cmdJump( txd, (122) );
break;
case '\n':
TXD_cmdJump( txd, (42) );
break;
case '\x0B':
TXD_jumpPos( txd, curLnL, curOfs );
break;
case '\x1C':
TXD_cmdJump( txd, (84) );
break;
case '\x1D':
TXD_cmdJump( txd, (83) );
break;
case '\x1E':
TXD_cmdJump( txd, (81) );
break;
case '\x1F':
TXD_cmdJump( txd, (82) );
break;
case '\x7F':
TXD_cmdJump( txd, (121) );
break;
default:
if ( iskanji(ch) && iskanji2(*s) )
{
tmp[0] = ch;
tmp[1] = *s; ++s;
tmp[2] = '\0';
TXD_setBuf( txd, 0, 2, tmp );
} else
{
tmp[0] = ch;
tmp[1] = '\0';
TXD_setBuf( txd, 0, 1, tmp );
}
break;
}
}
return ((0));
}
# 22 "main.c"
char *WildCardTbl[4] =
{
"*.*" ,
"*.doc *.txt *.man",
"*.asm *.c *.cci *.h",
"*.mml *.h *.def"
};
# 50 "main.c"
int EDIA_start()
{
int i;
char tmp[256];
if ( (SysMacro = AMAC_allocWork(0)) != 0 )
{
sprintf( tmp, "%s%s", AplGetStartPath(), SYSMACRO_FN );
AMAC_load( SysMacro, tmp );
GetAsciiTime( tmp, time(0) );
AMAC_setKey( SysMacro, "Startup_time", tmp );
}
for ( i = 0 ; i < 4; ++i )
FdlSetWildCardList( WildCardTbl[i] );
SetExpSearchPath();
# 73 "main.c"
return (0);
}
# 80 "main.c"
int EDIA_term()
{
char tmp[256];
if ( SysMacro )
{
GetAsciiTime( tmp, time(0) );
AMAC_setKey( SysMacro, "Exit_time", tmp );
sprintf( tmp, "%s%s", AplGetStartPath(), SYSMACRO_FN );
AMAC_save( SysMacro, tmp, "System macro" );
}
return (0);
}