/******************************************************************************/
/*			    Header command.h				      */
/*									      */
/*			    ver 1.00 91/11/15				      */
/*			    ver 1.50 92/01/17				      */
/******************************************************************************/

extern int InputChar() ;
extern int MoveCursorUp() ;
extern int MoveCursorDown() ;
extern int MoveCursorRight() ;
extern int MoveCursorLeft() ;
extern int ScrollDown() ;
extern int ScrollUp() ;
extern int PageUp() ;
extern int PageDown() ;
extern int MoveTopLine() ;
extern int MoveBottomLine() ;
extern int Tabulation() ;
extern int BackTab() ;
extern int MoveTextTop() ;
extern int MoveTextBottom() ;

extern int DeleteChar() ;
extern int BackSpace() ;
extern int InsertMode() ;
extern int EraseLine() ;
extern int EraseLineAll() ;
extern int InsertLine() ;
extern int DeleteLine() ;
extern int CopyLine() ;
extern int PasteDeletedLine() ;
extern int CarriageReturn() ;
extern int DuplicateLine() ;
extern int AdjustIndent() ;
extern int ChangeAutoIndent() ;
extern int DefineKeyMacro() ;
extern int ExecuteKeyMacro() ;

extern int SetTextBlock() ;
extern int DeleteBlock() ;
extern int CopyBlock() ;
extern int DeleteWord() ;
extern int SavePartText() ;
extern int PasteBlock() ;

extern int SearchString() ;
extern int ReplaceString() ;
extern int RangeSet();
extern int NextSearchReplace() ;
extern int ChangeLatin() ;
extern int DotCount();

extern int  WinMenu1();
extern int  WinMenu2();
extern int  WinMenu3();
extern int  WinMenu4();


static int SaveFile() ;
static int ExitEditor() ;
static int QuitEditor() ;
static int ChangeFileName() ;
static int MargeFile() ;


int (*CommandProcess[55])() = {
    ExecuteKeyMacro,   /*  00H: Control - @  キーマクロの実行			    */
    MoveTopLine,       /*  01H: Control - A  カーソルを行の先頭に移動		    */
    MoveTextBottom,    /*  02H: Control - B  カーソルをファイルの最後に移動	    */
    PageDown,	       /*  03H: Control - C  １画面スクロールアップ		    */
    MoveCursorRight,   /*  04H: Control - D  （→）カーソルを右に移動		    */
    MoveCursorUp,      /*  05H: Control - E  （↑）カーソルを上に移動		    */
    MoveBottomLine,    /*  06H: Control - F   カーソルを行の最後に移動		    */
    CopyLine,	       /*  07H: Control - G   カーソル行を行バッファに登録	    */
    BackSpace,	       /*  08H: Control - H  （ＢＳ）カーソルの前の文字を削除	    */
    Tabulation,	       /*  09H: Control - I  （ＴＡＢ）カーソルを次のタブ位置に移動 */
    MoveTextTop,       /*  0AH: Control - J   カーソルをファイルの先頭に移動	    */
    EraseLine,	       /*  0BH: Control - K   カーソル以降の文字を消去		    */
    NextSearchReplace, /*  0CH: Control - L   検索、置換の再実行		    */
    CarriageReturn,    /*  0DH: Control - M   （ＲＥＴＵＲＮ）			    */
    InsertLine,	       /*  0EH: Control - N   １行挿入				    */
    InsertMode,	       /*  0FH: Control - O   インサートモードの切り替え	    */
    DuplicateLine,     /*  10H: Control - P   行の二重化			    */
    BackTab,	       /*  11H: Control - Q   カーソルを前のタブ位置に移動	    */
    PageUp,	       /*  12H: Control - R   １画面スクロールダウン		    */
    MoveCursorLeft,    /*  13H: Control - S   （←）カーソルを左に移動		    */
    DeleteWord,	       /*  14H: Control - T   文字列削除			    */
    ChangeAutoIndent,  /*  15H: Control - U   オートタブモードの切り替え	    */
    AdjustIndent,      /*  16H: Control - V   カーソル位置に行頭を合わせる	    */
    ScrollDown,	       /*  17H: Control - W   １行スクロールダウン		    */
    MoveCursorDown,    /*  18H: Control - X   （↓）カーソルを下に移動		    */
    DeleteLine,	       /*  19H: Control - Y   カーソル行を削除し行バッファに登録    */
    ScrollUp,	       /*  1AH: Control - Z   １行スクロールアップ		    */
    InputChar,	       /*  1BH: Escape	- @					    */
    InputChar,	       /*  1CH: Escape	- A					    */
    SetTextBlock,      /*  1DH: Escape	- B   ブロック選択			    */
    CopyBlock,	       /*  1EH: Escape	- C   ブロック複写			    */
    DeleteBlock,       /*  1FH: Escape	- D   ブロック削除			    */
    ExitEditor,	       /*  20H: Escape	- E   セーブして終了			    */
    SearchString,      /*  21H: Escape	- F   文字列検索			    */
    WinMenu1,	       /*  22H: Escape	- G   メニュー１			    */
    WinMenu2,	       /*  23H: Escape	- H   メニュー２			    */
    PasteDeletedLine,  /*  24H: Escape	- I   行バッファの張り付け		    */
    WinMenu3,	       /*  25H: Escape	- J   メニュー３			    */
    WinMenu4,	       /*  26H: Escape	- K   メニュー４			    */
    InputChar,	       /*  27H: Escape	- L					    */
    DefineKeyMacro,    /*  28H: Escape	- M   キーマクロの定義			    */
    ChangeFileName,    /*  29H: Escape	- N   ファイル名の変更			    */
    InputChar,	       /*  2AH: Escape	- O					    */
    PasteBlock,	       /*  2BH: Escape	- P   ブロック張り付け			    */
    QuitEditor,	       /*  2CH: Escape	- Q   セーブせずに終了			    */
    RangeSet,	       /*  2DH: Escape	- R   検索置換レンジの設定		    */
    SaveFile,	       /*  2EH: Escape	- S   ファイルをセーブ			    */
    InputChar,	       /*  2FH: Escape	- T					    */
    DotCount,	       /*  30H: Escape	- U   ドットのカウント			    */
    EraseLineAll,      /*  31H: Escape	- V   カーソル行をバッファに登録し、消去する*/
    SavePartText,      /*  32H: Escape	- W   部分セーブ			    */
    ReplaceString,     /*  33H: Escape	- X   文字列置換			    */
    MargeFile,	       /*  34H: Escape	- Y   ファイルのマージ			    */
    ChangeLatin,       /*  35H: Escape	- Z   ラテン文字の入力			    */
    DeleteChar	       /*  36H: Delete code   カーソルの下の文字を削除		    */
} ;
