OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_009 / chnos / console.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/console.c b/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/console.c
deleted file mode 100644 (file)
index d91c749..0000000
+++ /dev/null
@@ -1,749 +0,0 @@
-\r
-#include "core.h"\r
-\r
-UI_Console *console_root;\r
-\r
-System_CommonData *sysdata;\r
-\r
-uchar *MIDI_Notes[12] = {\r
-       "C ",\r
-       "C#",\r
-       "D ",\r
-       "D#",\r
-       "E ",\r
-       "F ",\r
-       "F#",\r
-       "G ",\r
-       "G#",\r
-       "A ",\r
-       "A#",\r
-       "B "\r
-};\r
-\r
-ushort ToneTable[12] = {\r
-       262,\r
-       277,\r
-       294,\r
-       311,\r
-       330,\r
-       349,\r
-       370,\r
-       392,\r
-       415,\r
-       440,\r
-       466,\r
-       494\r
-};\r
-\r
-void Initialise_Console(UI_Console *consctrl, System_CommonData *systemdata)\r
-{\r
-       console_root = consctrl;\r
-       console_root->win = 0;\r
-       console_root->input = 0;\r
-       console_root->next = 0;\r
-       console_root->ctimer = 0;\r
-\r
-       sysdata = systemdata;\r
-\r
-       return;\r
-}\r
-\r
-UI_Console *Console_Create(uint xchars, uint ychars)\r
-{\r
-       UI_Console *cons, *end;\r
-       UI_Task *cons_task;\r
-\r
-       cons = MemoryBlock_Allocate_System(sizeof(UI_Console));\r
-       MemoryBlock_Write_Description(cons, "UI_Console");\r
-\r
-       cons->input = InputBox_Initialise(&sys_sheet_ctrl, &sys_mem_ctrl, 0, 0, xchars << 3, ychars << 4, 256, 0xffffff, 0x000000, Sheet_Get_Top_Of_Height(&sys_sheet_ctrl));\r
-       cons->win = Window_Create_User("Console", 0, cons->input->sheet);\r
-\r
-       for(end = console_root; end->next != 0; end = end->next){\r
-\r
-       }\r
-       cons->next = 0;\r
-       end->next = cons;\r
-\r
-       FIFO32_Initialise(&cons->fifo, CONSOLE_FIFO_SIZE);\r
-       Sheet_Set_FIFO(cons->win->client, &cons->fifo, SIGNAL_FLAGS_FOCUSINFO);\r
-\r
-       cons->ctimer = Timer_Get(&cons->fifo, 0x105);\r
-       Timer_Set(cons->ctimer, 50, once);\r
-\r
-       cons_task = MultiTask_Task_Get("ConsoleTask");\r
-       cons_task->tss.ldtr = 0;\r
-       cons_task->tss.iomap = 0x4000;\r
-       cons_task->tss.eip = (uint)&Console_MainTask;\r
-       cons_task->tss.eflags = 0x00000202;\r
-       cons_task->tss.esp = (uint)MemoryBlock_Allocate_System(64 * 1024) + 64 * 1024;\r
-       MemoryBlock_Write_Description((void *)(cons_task->tss.esp - 64 * 1024), "Console-Stack");\r
-       cons_task->tss.es = 1 * 8;\r
-       cons_task->tss.cs = 2 * 8;\r
-       cons_task->tss.ss = 1 * 8;\r
-       cons_task->tss.ds = 1 * 8;\r
-       cons_task->tss.fs = 1 * 8;\r
-       cons_task->tss.gs = 1 * 8;\r
-       cons_task->tss.cr3 = (uint)ADR_Paging_Directory;\r
-       MultiTask_Task_Arguments(cons_task, 1, cons);\r
-       MultiTask_Task_Run(cons_task);\r
-\r
-       FIFO32_Set_Task(&cons->fifo, cons_task);\r
-       Timer_Run(cons->ctimer);\r
-\r
-       CHNOS_UI_KeyFocus_Change(cons->win->client);\r
-\r
-       return cons;\r
-}\r
-\r
-void Console_MainTask(UI_Console *cons)\r
-{\r
-       UI_Task *mytask;\r
-       uint i, j;\r
-       uint buf[3];\r
-       bool clear_screen;\r
-       uchar s[64];\r
-\r
-       mytask = MultiTask_Get_NowTask();\r
-       mytask->cons = cons;\r
-       clear_screen = false;\r
-\r
-       InputBox_Put_Prompt(cons->input);\r
-\r
-       for(;;){\r
-               if(FIFO32_Status(&cons->fifo) == 0){\r
-                       MultiTask_Task_Sleep(mytask);\r
-               } else{\r
-                       i = FIFO32_Get(&cons->fifo);\r
-                       if(i < DATA_BYTE){      /*\83L\81[\83{\81[\83h\95\8e\9a\83f\81[\83^*/\r
-                               if(i == '\n'){\r
-                                       InputBox_Set_Record(cons->input, false);\r
-                                       if(cons->input->input_buf[0] != 0x00){\r
-                                               InputBox_NewLine_No_Prompt(cons->input);\r
-                                       }\r
-                                       if(strcmp(cons->input->input_buf, "cls") == 0){\r
-                                               InputBox_Clear(cons->input);\r
-                                               clear_screen = true;\r
-                                       } else if(strcmp(cons->input->input_buf, "memmap") == 0){\r
-                                               Console_Command_memmap(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "memblock") == 0){\r
-                                               Console_Command_memblock(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "mem") == 0){\r
-                                               Console_Command_mem(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "systeminfo") == 0){\r
-                                               Console_Command_systeminfo(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "task") == 0){\r
-                                               Console_Command_task(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "window") == 0){\r
-                                               Console_Command_window(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "console") == 0){\r
-                                               Console_Command_console(cons);\r
-                                       } else if(strncmp(cons->input->input_buf, "type ", 5) == 0){\r
-                                               Console_Command_type(cons, &cons->input->input_buf[5]);\r
-                                       } else if(strcmp(cons->input->input_buf, "dir") == 0){\r
-                                               Console_Command_dir(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "gdt") == 0){\r
-                                               Console_Command_gdt(cons);\r
-                                       } else if(strcmp(cons->input->input_buf, "test") == 0){\r
-                                               sprintf(s, "taskaddr:0x%08X\n", mytask);\r
-                                               InputBox_Put_String(cons->input, s);\r
-                                               IO_Beep(440, 5000000);\r
-                                       } else if(strncmp(cons->input->input_buf, "midi ", 5) == 0){\r
-                                               Console_Command_midi(cons, &cons->input->input_buf[5]);\r
-                                       } else if(cons->input->input_buf[0] != 0x00){\r
-                                               Console_Execute(cons);\r
-                                       }\r
-                                       InputBox_Set_Record(cons->input, true);\r
-                                       InputBox_Reset_Input_Buffer(cons->input);\r
-                                       if(clear_screen){\r
-                                               InputBox_Put_Prompt(cons->input);\r
-                                               clear_screen = false;\r
-                                       } else{\r
-                                               InputBox_NewLine(cons->input);\r
-                                       }\r
-                               } else{\r
-                                       InputBox_Put_Character(cons->input, i);\r
-                               }\r
-                       } else if(i == 0x105){\r
-                               InputBox_Change_Cursor_State(cons->input);\r
-                               Timer_Run(cons->ctimer);\r
-                       } else if(i > SIGNAL_START){\r
-                               buf[0] = i;\r
-                               for(j = 1; j < 3; j++){\r
-                                       buf[j] = 0x00;\r
-                               }\r
-                               for(j = 1; j < 3; j++){\r
-                                       buf[j] = FIFO32_Get(&cons->fifo);\r
-                                       if(buf[j] == SIGNAL_ARGUMENTS_END){\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(i == SIGNAL_WINDOW_FOCUS_GET){\r
-                                       if(buf[2] == SIGNAL_ARGUMENTS_END){     /*\82·\82×\82Ä\90³\8fí\82É\8eó\90M\82µ\82½*/\r
-                                               Timer_Run(cons->ctimer);\r
-                                       }\r
-                               } else if(i == SIGNAL_WINDOW_FOCUS_LOST){\r
-                                       if(buf[2] == SIGNAL_ARGUMENTS_END){     /*\82·\82×\82Ä\90³\8fí\82É\8eó\90M\82µ\82½*/\r
-                                               Timer_Cancel(cons->ctimer);\r
-                                               if(cons->input->cursor_state){  /*\83v\83\8d\83\93\83v\83g\82ª\95\\8e¦\82³\82ê\82Ä\82¢\82½\82ç\8fÁ\82·*/\r
-                                                       InputBox_Change_Cursor_State(cons->input);\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-void Console_Command_memmap(UI_Console *cons)\r
-{\r
-       DATA_BootInfo *bootinfo = (DATA_BootInfo *)ADR_BOOTINFO;\r
-       uchar s[64];\r
-       uint i;\r
-\r
-       sprintf(s, "ACPI 0xe820 MemoryMaps:%d\n", bootinfo->ACPI_MemoryMapEntries);\r
-       InputBox_Put_String(cons->input, s);\r
-       for(i = 0; i < bootinfo->ACPI_MemoryMapEntries; i++){\r
-               sprintf(s, "%02d:[0x%08X%08X](0x%08X%08X) %s 0x%08X\n", i, bootinfo->ACPI_MemoryMap[i].Base.high, bootinfo->ACPI_MemoryMap[i].Base.low, bootinfo->ACPI_MemoryMap[i].Length.high, bootinfo->ACPI_MemoryMap[i].Length.low, ACPI_MemoryMap_Type[bootinfo->ACPI_MemoryMap[i].Type], bootinfo->ACPI_MemoryMap[i].Attribute);\r
-               InputBox_Put_String(cons->input, s);\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_memblock(UI_Console *cons)\r
-{\r
-       uint memusing;\r
-       uchar s[64];\r
-       Memory *memblock;\r
-\r
-       memusing = 0;\r
-       sprintf(s, "MemoryBlocks:%d\n", SystemMemory.size);\r
-       InputBox_Put_String(cons->input, s);\r
-       for(memblock = &SystemMemory; memblock->next != 0; memblock = memblock->next){\r
-               sprintf(s, "[0x%08X](%8u Bytes):%s\n", memblock->next->addr, memblock->next->size, memblock->next->description);\r
-               InputBox_Put_String(cons->input, s);\r
-               memusing += memblock->next->size;\r
-       }\r
-       sprintf(s, "MemoryUsing:%u Bytes + (%u Bytes * %u) = %u(%uM)Bytes.", memusing, sizeof(Memory), SystemMemory.size, memusing + (sizeof(Memory) * SystemMemory.size), (memusing + (sizeof(Memory) * SystemMemory.size)) >> 20);\r
-       InputBox_Put_String(cons->input, s);\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_mem(UI_Console *cons)\r
-{\r
-       uint memusing, i;\r
-       uchar s[64];\r
-       Memory *memblock;\r
-\r
-       memusing = 0;\r
-       sprintf(s, "Memory        :%uByte:%uMB\n", System_MemoryControl_FullSize(), System_MemoryControl_FullSize() >> 20);\r
-       InputBox_Put_String(cons->input, s);\r
-       sprintf(s, "Free          :%uByte:%uMB\n", System_MemoryControl_FreeSize(), System_MemoryControl_FreeSize() >> 20);\r
-       InputBox_Put_String(cons->input, s);\r
-       InputBox_Put_String(cons->input, "Using:\n");\r
-       for(memblock = &SystemMemory; memblock->next != 0; memblock = memblock->next){\r
-               memusing += memblock->next->size;\r
-       }\r
-       sprintf(s, "\tMemoryBlock        :%uByte:%uMB\n", memusing + (sizeof(Memory) * SystemMemory.size), (memusing + (sizeof(Memory) * SystemMemory.size)) >> 20);\r
-       InputBox_Put_String(cons->input, s);\r
-       memusing = 1;\r
-       for(i = 0; i < 1024; i++){\r
-               if((ADR_Paging_Directory[i] & PG_PRESENT) != 0){\r
-                       memusing++;\r
-               }\r
-       }\r
-       sprintf(s, "\tPageDirectory+Table:%uByte:%uMB\n", i << 12, i >> 8);\r
-       InputBox_Put_String(cons->input, s);\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_systeminfo(UI_Console *cons)\r
-{\r
-       DATA_BootInfo *bootinfo = (DATA_BootInfo *)ADR_BOOTINFO;\r
-       uchar s[64];\r
-\r
-       sprintf(s, "ACPI 0xe820 MemoryMaps:%d\n", bootinfo->ACPI_MemoryMapEntries);\r
-       InputBox_Put_String(cons->input, s);\r
-       sprintf(s, "APM-Version:%X.%X\n", bootinfo->APM_Version >> 8, bootinfo->APM_Version & 0x00FF);\r
-       InputBox_Put_String(cons->input, s);\r
-       sprintf(s, "APM-Flags:0x%04X\n", bootinfo->APM_Flags);\r
-       InputBox_Put_String(cons->input, s);\r
-       sprintf(s, "VESA-Version:%X.%X\n", bootinfo->VESA_Version >> 8, bootinfo->VESA_Version & 0x00FF);\r
-       InputBox_Put_String(cons->input, s);\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_task(UI_Console *cons)\r
-{\r
-       UI_Task *task;\r
-       uchar s[64];\r
-\r
-       for(task = taskctrl->next; task != 0; task = task->next){\r
-               sprintf(s, "0x%04X (%10u):%s\n", task->selector, task->cputime, task->description);\r
-               InputBox_Put_String(cons->input, s);\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_window(UI_Console *cons)\r
-{\r
-       UI_Window *win;\r
-       uchar s[64];\r
-\r
-       for(win = sysdata->windowctrl.next; win != 0; win = win->next){\r
-               sprintf(s, "%s\n", win->title);\r
-               InputBox_Put_String(cons->input, s);\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_console(UI_Console *cons)\r
-{\r
-       DATA_BootInfo *bootinfo = (DATA_BootInfo *)ADR_BOOTINFO;\r
-\r
-       Console_Create((bootinfo->scrnx >> 4), (bootinfo->scrny >> 5));\r
-       return;\r
-}\r
-\r
-void Console_Command_type(UI_Console *cons, const uchar filename[])\r
-{\r
-       IO_File file;\r
-       int n;\r
-       uint i;\r
-\r
-       n = FloppyDisk_Search_File(sysdata->fd_boot, filename);\r
-       if(n != -1){\r
-               n = FloppyDisk_Load_File(sysdata->fd_boot, &file, n);\r
-               if(n != -1){\r
-                       for(i = 0; i < file.size; i++){\r
-                               InputBox_Put_Character(cons->input, file.data[i]);\r
-                       }\r
-               } else{\r
-                       InputBox_Put_String(cons->input, "type:File load error.\n");\r
-               }\r
-               File_Free(&file);\r
-       } else{\r
-               InputBox_Put_String(cons->input, "type:File not found.\n");\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_dir(UI_Console *cons)\r
-{\r
-       uint i, j;\r
-       uchar s[64];\r
-\r
-       for(i = 0; i < 224; i++){\r
-               if(sysdata->fd_boot->files[i].name[0] == 0x00){\r
-                       break;\r
-               }\r
-               if(sysdata->fd_boot->files[i].name[0] != 0xe5){\r
-                       sprintf(s, "FILENAME.EXT %7d %04d/%02d/%02d %02d:%02d:%02d\n", sysdata->fd_boot->files[i].size, (sysdata->fd_boot->files[i].updatedate >> 9) + 1980, (sysdata->fd_boot->files[i].updatedate & 0x01e0) >> 5, sysdata->fd_boot->files[i].updatedate & 0x001f, sysdata->fd_boot->files[i].updatetime >> 11, (sysdata->fd_boot->files[i].updatetime & 0x07e0) >> 5, sysdata->fd_boot->files[i].updatetime & 0x1f);\r
-                       for(j = 0; j < 8; j++){\r
-                               s[j] = sysdata->fd_boot->files[i].name[j];\r
-                       }\r
-                       for(j = 9; j < 12; j++){\r
-                               s[j] = sysdata->fd_boot->files[i].name[j - 1];\r
-                       }\r
-                       InputBox_Put_String(cons->input, s);\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void Console_Command_gdt(UI_Console *cons)\r
-{\r
-       uint i, ar;\r
-       uchar s[64];\r
-\r
-       for(i = 0; i < 8192; i++){\r
-               if(System_SegmentDescriptor_Get_Limit(i) != 0){\r
-                       sprintf(s, "0x%04X:[0x%08X](0x%08X) ", i, System_SegmentDescriptor_Get_Base(i), System_SegmentDescriptor_Get_Limit(i));\r
-                       InputBox_Put_String(cons->input, s);\r
-                       ar = System_SegmentDescriptor_Get_AccessRight(i);\r
-                       if((ar & AR_CODE_OR_DATA) != 0){        /*code or data*/\r
-                               if((ar & 0x08) != 0){   /*code*/\r
-                                       InputBox_Put_String(cons->input, "Code Execute");\r
-                                       if((ar & 0x02) != 0){   /*Read*/\r
-                                               InputBox_Put_String(cons->input, "/Read ");\r
-                                       } else{\r
-                                               InputBox_Put_String(cons->input, " Only ");\r
-                                       }\r
-                                       if((ar & 0x04) != 0){   /*Read*/\r
-                                               InputBox_Put_String(cons->input, "Conforming");\r
-                                       }\r
-                               } else{ /*data*/\r
-                                       InputBox_Put_String(cons->input, "Data Read");\r
-                                       if((ar & 0x02) != 0){   /*Read*/\r
-                                               InputBox_Put_String(cons->input, "/Write ");\r
-                                       } else{\r
-                                               InputBox_Put_String(cons->input, " Only ");\r
-                                       }\r
-                                       if((ar & 0x04) != 0){   /*Read*/\r
-                                               InputBox_Put_String(cons->input, "Expand Down");\r
-                                       }\r
-                               }\r
-                       } else{ /*SystemDescriptor*/\r
-                               if((ar & 0x0f) == 0x02){        /*LDT*/\r
-                                       InputBox_Put_String(cons->input, "LDT");\r
-                               } else if((ar & 0x0f) == 0x05){ /*TaskGate*/\r
-                                       InputBox_Put_String(cons->input, "TaskGate");\r
-                               } else{\r
-                                       if((ar & 0x07) == 0x01){\r
-                                               InputBox_Put_String(cons->input, "TSS-Ready");\r
-                                       } else if((ar & 0x07) == 0x03){\r
-                                               InputBox_Put_String(cons->input, "TSS-Busy");\r
-                                       } else if((ar & 0x07) == 0x04){\r
-                                               InputBox_Put_String(cons->input, "CallGate");\r
-                                       } else if((ar & 0x07) == 0x06){\r
-                                               InputBox_Put_String(cons->input, "INTGate");\r
-                                       } else if((ar & 0x07) == 0x07){\r
-                                               InputBox_Put_String(cons->input, "TrapGate");\r
-                                       }\r
-                                       if((ar & 0x08) != 0){   /*32bit*/\r
-                                               InputBox_Put_String(cons->input, "(32bit)");\r
-                                       } else{ /*16bit*/\r
-                                               InputBox_Put_String(cons->input, "(16bit)");\r
-                                       }\r
-                               }\r
-                       }\r
-                       InputBox_Put_String(cons->input, "\n");\r
-               }\r
-       }\r
-}\r
-\r
-void Console_Command_midi(UI_Console *cons, const uchar filename[])\r
-{\r
-       IO_File file;\r
-       int n;\r
-       uint p, q, tracksize, r, datalength, delta;\r
-       uchar s[128];\r
-       uint DeltaTimePerQuarterNote, microsTimePerQuarterNote, microsTimePerDeltaTime;\r
-\r
-       DeltaTimePerQuarterNote = 480;\r
-       microsTimePerQuarterNote = 500000;\r
-       microsTimePerDeltaTime = microsTimePerQuarterNote / DeltaTimePerQuarterNote;\r
-       \r
-       n = FloppyDisk_Search_File(sysdata->fd_boot, filename);\r
-       if(n != -1){\r
-               n = FloppyDisk_Load_File(sysdata->fd_boot, &file, n);\r
-               if(n != -1){\r
-                       p = 0;\r
-                       if(strncmp(&file.data[p + 0], "MThd", 4) == 0){\r
-                               p += 4;\r
-                               p += 4;\r
-\r
-                               sprintf(s, "SMF Format%d ", (file.data[p + 0] << 8) | file.data[p + 1]);\r
-                               InputBox_Put_String(cons->input, s);\r
-                               p += 2;\r
-\r
-                               sprintf(s, "Tracks:%d\n", (file.data[p + 0] << 8) | file.data[p + 1]);\r
-                               InputBox_Put_String(cons->input, s);\r
-                               p += 2;\r
-\r
-                               DeltaTimePerQuarterNote = (file.data[p + 0] << 8) | file.data[p + 1];\r
-                               microsTimePerDeltaTime = microsTimePerQuarterNote / DeltaTimePerQuarterNote;\r
-                               sprintf(s, "DeltaTime(per quarter note):%d\n", DeltaTimePerQuarterNote);\r
-                               InputBox_Put_String(cons->input, s);\r
-                               p += 2;\r
-\r
-                               for(; p < file.size; ){\r
-                                       if(strncmp(&file.data[p + 0], "MTrk", 4) == 0){\r
-                                               InputBox_Put_String(cons->input, "Track:\n");\r
-                                               p += 4;\r
-\r
-                                               tracksize = (file.data[p + 0] << 24) | (file.data[p + 1] << 16) | (file.data[p + 2] << 8) | file.data[p + 3];\r
-                                               sprintf(s, "\tsize:0x%X\n", tracksize);\r
-                                               InputBox_Put_String(cons->input, s);\r
-                                               p += 4;\r
-\r
-                                               for(q = 0; q < tracksize; ){\r
-                                                       delta = Console_Command_midi_Convert_VariableLengthValue(&file.data[p + 0], &q);\r
-                                                       sprintf(s, "\t%8d:", delta);\r
-                                                       InputBox_Put_String(cons->input, s);\r
-\r
-                                                       IO_Wait(microsTimePerDeltaTime * delta);\r
-\r
-                                                       if(file.data[p + q + 0] == 0xff){\r
-                                                               InputBox_Put_String(cons->input, "Meta ");\r
-                                                               q++;\r
-                                                               r = file.data[p + q + 0];\r
-                                                               q++;\r
-                                                               datalength = Console_Command_midi_Convert_VariableLengthValue(&file.data[p + 0], &q);\r
-                                                               if(r == 0x00){          //\83V\81[\83P\83\93\83X\94Ô\8d\86\r
-                                                                       sprintf(s, "SequenceNumber size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x01){   //\83e\83L\83X\83g\r
-                                                                       sprintf(s, "TEXT size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x02){   //\92\98\8dì\8c \95\\8e¦\r
-                                                                       sprintf(s, "Copyright size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x03){   //\83g\83\89\83b\83N\96¼\r
-                                                                       sprintf(s, "TrackName size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x04){   //\8ay\8aí\96¼\r
-                                                                       sprintf(s, "InstrumentName size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x05){   //\89Ì\8e\8c\r
-                                                                       sprintf(s, "Lyrics size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x06){   //\83}\81[\83J\81[\r
-                                                                       sprintf(s, "Marker size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x07){   //\83L\83\85\81[\83|\83C\83\93\83g\r
-                                                                       sprintf(s, "QueuePoint size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x08){   //\89¹\90F\81i\83v\83\8d\83O\83\89\83\80\81j\96¼\r
-                                                                       sprintf(s, "ProgramName size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x09){   //\89¹\8c¹\81i\83f\83o\83C\83X\81j\96¼\r
-                                                                       sprintf(s, "DeviceName size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x20){   //MIDI\83`\83\83\83\93\83l\83\8b\83v\83\8a\83t\83B\83b\83N\83X\r
-                                                                       sprintf(s, "MIDIChannelPrefix size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x21){   //\83|\81[\83g\8ew\92è\r
-                                                                       sprintf(s, "OutPutPort size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x2f){   //End of Track\r
-                                                                       sprintf(s, "End of Track size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x51){   //\83e\83\93\83|\90Ý\92è\81i4\95ª\89¹\95\84\82 \82½\82è\82Ì\83}\83C\83N\83\8d\95b\81j\r
-                                                                       microsTimePerQuarterNote = (file.data[p + q + 0] << 16) | (file.data[p + q + 1] << 8) | file.data[p + q + 2];\r
-                                                                       sprintf(s, "Tempo %dmicrosec per quarter note.\n", datalength);\r
-                                                                       microsTimePerDeltaTime = microsTimePerQuarterNote / DeltaTimePerQuarterNote;\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x54){   //SMPTE\83I\83t\83Z\83b\83g\r
-                                                                       sprintf(s, "SMPTE_Offset size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x58){   //\94\8f\8eq\82Ì\90Ý\92è\r
-                                                                       sprintf(s, "Beat size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x59){   //\92²\82Ì\90Ý\92è\r
-                                                                       sprintf(s, "Tone size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else if(r == 0x7f){   //\83V\81[\83P\83\93\83T\93Á\92è\83\81\83^\83C\83x\83\93\83g\r
-                                                                       sprintf(s, "SequencerSpecialMetaEvent size:%d\n", datalength);\r
-                                                                       InputBox_Put_String(cons->input, s);\r
-                                                                       q += datalength;\r
-                                                               } else{\r
-                                                                       InputBox_Put_String(cons->input, "midi:Unknown Meta Event.\n");\r
-                                                                       break;\r
-                                                               }\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0x80){       //note off\r
-                                                               sprintf(s, "Note:Off ch:%d note:%d%s\n", (file.data[p + q + 0] & 0x0f), (int)(file.data[p + q + 1] / 12) - 1, MIDI_Notes[file.data[p + q + 1] % 12]);\r
-                                                               InputBox_Put_String(cons->input, s);\r
-                                                               PIT_Beep_Off();\r
-                                                               q += 3;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0x90){       //note on or off\r
-                                                               if(file.data[p + q + 2] == 0x00){       //note off\r
-                                                                       sprintf(s, "Note:Off ch:%d note:%d%s\n", (file.data[p + q + 0] & 0x0f), (int)(file.data[p + q + 1] / 12) - 1, MIDI_Notes[file.data[p + q + 1] % 12]);\r
-                                                                       PIT_Beep_Off();\r
-                                                               } else{\r
-                                                                       sprintf(s, "Note:On  ch:%d note:%d%s vel:%d\n", (file.data[p + q + 0] & 0x0f), (int)(file.data[p + q + 1] / 12) - 1, MIDI_Notes[file.data[p + q + 1] % 12], file.data[p + q + 2]);\r
-                                                                       PIT_Beep_On();\r
-                                                                       Console_Command_midi_Beep_Set_NoteNumber(file.data[p + q + 1]);\r
-                                                               }\r
-                                                               InputBox_Put_String(cons->input, s);\r
-                                                               q += 3;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0xa0){       //Polyphonic Key Pressure\r
-                                                               q += 3;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0xb0){       //Control Change\r
-                                                               q += 3;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0xc0){       //Program Change\r
-                                                               q += 2;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0xd0){       //Channel Pressure\r
-                                                               q += 2;\r
-                                                       } else if((file.data[p + q + 0] & 0xf0) == 0xe0){       //Pitch Bend\r
-                                                               q += 3;\r
-                                                       } else{\r
-                                                               break;\r
-                                                       }\r
-                                               }\r
-                                               PIT_Beep_Off();\r
-                                               p += tracksize;\r
-                                       } else{\r
-                                               InputBox_Put_String(cons->input, "midi:Unknown Track.\n");\r
-                                       }\r
-                               }       \r
-                       } else{\r
-                               InputBox_Put_String(cons->input, "midi:Unknown header.\n");\r
-                       }\r
-               } else{\r
-                       InputBox_Put_String(cons->input, "midi:File load error.\n");\r
-               }\r
-               File_Free(&file);\r
-       } else{\r
-               InputBox_Put_String(cons->input, "midi:File not found.\n");\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-uint Console_Command_midi_Convert_VariableLengthValue(uchar *base, uint *offset)\r
-{\r
-       uint i, r;\r
-\r
-       r = 0;\r
-\r
-       for(i = 0; i < 4; i++){\r
-               r = r << 7;\r
-               r += (base[*offset + i] & 0x7f);\r
-               if((base[*offset + i] & 0x80) == 0){\r
-                       i++;\r
-                       break;\r
-               }\r
-       }\r
-\r
-       *offset += i;\r
-\r
-       return r;\r
-}\r
-\r
-void Console_Command_midi_Beep_Set_NoteNumber(uchar n)\r
-{\r
-       uint fq, oct;\r
-\r
-       fq = 0;\r
-       oct = 0;\r
-\r
-       fq = ToneTable[n % 12];\r
-       oct = n / 12;\r
-\r
-       if(n > 71){     //4\83I\83N\83^\81[\83u\82æ\82è\8fã\r
-               oct = oct - 5;\r
-               fq = fq << oct;\r
-       } else if(n < 60){      //4\83I\83N\83^\81[\83u\82æ\82è\89º\r
-               oct = 5 - oct;\r
-               fq = fq >> oct;\r
-       }\r
-\r
-       PIT_Beep_Set(fq);\r
-\r
-       return;\r
-}\r
-\r
-void Console_Execute(UI_Console *cons)\r
-{\r
-       int n;\r
-       uchar *ext, appname[11];\r
-       uint i;\r
-\r
-       ext = 0;\r
-       for(i = 0; cons->input->input_buf[i] != 0x00; i++){\r
-               if(cons->input->input_buf[i] == '.'){\r
-                       ext = &cons->input->input_buf[i];\r
-               }\r
-       }\r
-\r
-       n = FloppyDisk_Search_File(sysdata->fd_boot, cons->input->input_buf);\r
-       if(n != -1){\r
-               if(ext != 0){\r
-                       if(strcmp(ext, ".chn") == 0){\r
-                               Console_Execute_CHNOSProject(cons, n);\r
-                       } else if(strcmp(ext, ".hrb") == 0){\r
-                               Console_Execute_haribote(cons, n);\r
-                       } else{\r
-                               InputBox_Put_String(cons->input, "Console:Unknown file type.\n");\r
-                       }\r
-               } else{\r
-                       InputBox_Put_String(cons->input, "Console:Unknown file type.\n");\r
-               }\r
-       } else{\r
-               if(ext == 0){   /*\83t\83@\83C\83\8b\82ª\91\8dÝ\82¹\82¸\81A\82©\82Â\8ag\92£\8eq\82ª\82È\82©\82Á\82½\8fê\8d\87\81A.chn\82Å\82 \82é\82Æ\89¼\92è\82·\82é\81B*/\r
-                       sprintf(appname, "        .CHN");\r
-                       for(i = 0; i < 8; i++){\r
-                               if(cons->input->input_buf[i] == 0x00){\r
-                                       break;\r
-                               }\r
-                               appname[i] = cons->input->input_buf[i];\r
-                       }\r
-               }\r
-               n = FloppyDisk_Search_File(sysdata->fd_boot, appname);\r
-               if(n != -1){\r
-                       Console_Execute_CHNOSProject(cons, n);\r
-               } else{\r
-                       InputBox_Put_String(cons->input, "Console:No such File or Application.\n");\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Console_Execute_CHNOSProject(UI_Console *cons, int n)\r
-{\r
-       UI_Task *mytask;\r
-\r
-       mytask = MultiTask_Get_NowTask();\r
-       n = FloppyDisk_Load_File(sysdata->fd_boot, &cons->app_codefile, n);\r
-       if(n != -1){\r
-               cons->app_cs = System_SegmentDescriptor_Set(cons->app_codefile.size - 1, (uint)cons->app_codefile.data, AR_CODE32_ER | AR_USER);\r
-               cons->app_ds = System_SegmentDescriptor_Set(64 * 1024 - 1, (uint)MemoryBlock_Allocate_System(64 * 1024), AR_DATA32_RW | AR_USER);\r
-               if(cons->app_codefile.size >= 8 && strncmp(cons->app_codefile.data + 4, "CHNP", 4) == 0){\r
-                       cons->app_codefile.data[0] = 0xe8;\r
-                       cons->app_codefile.data[1] = 0x16;\r
-                       cons->app_codefile.data[2] = 0x00;\r
-                       cons->app_codefile.data[3] = 0x00;\r
-                       cons->app_codefile.data[4] = 0x00;\r
-                       cons->app_codefile.data[5] = 0xcb;\r
-               }\r
-               APP_Run(0, cons->app_cs << 3, System_SegmentDescriptor_Get_Limit(cons->app_ds) + 1, cons->app_ds << 3, &(mytask->tss.esp0));\r
-               System_SegmentDescriptor_Set_Absolute(cons->app_ds, 0, 0, 0);\r
-               cons->app_ds = 0;\r
-               MemoryBlock_Free((void *)System_SegmentDescriptor_Get_Base(cons->app_ds));\r
-               System_SegmentDescriptor_Set_Absolute(cons->app_cs, 0, 0, 0);\r
-               cons->app_cs = 0;\r
-       } else{\r
-               InputBox_Put_String(cons->input, "Console:Execute.chn:File load error.\n");\r
-       }\r
-       File_Free(&cons->app_codefile);\r
-       return;\r
-}\r
-\r
-void Console_Execute_haribote(UI_Console *cons, int n)\r
-{\r
-       n = FloppyDisk_Load_File(sysdata->fd_boot, &cons->app_codefile, n);\r
-       if(n != -1){\r
-               cons->app_cs = System_SegmentDescriptor_Set(cons->app_codefile.size - 1, (uint)cons->app_codefile.data, AR_CODE32_ER);\r
-               if(cons->app_codefile.size >= 8 && strncmp(cons->app_codefile.data + 4, "Hari", 4) == 0){\r
-                       cons->app_codefile.data[0] = 0xe8;\r
-                       cons->app_codefile.data[1] = 0x16;\r
-                       cons->app_codefile.data[2] = 0x00;\r
-                       cons->app_codefile.data[3] = 0x00;\r
-                       cons->app_codefile.data[4] = 0x00;\r
-                       cons->app_codefile.data[5] = 0xcb;\r
-               }\r
-               FarCall(0, cons->app_cs << 3);\r
-               System_SegmentDescriptor_Set_Absolute(cons->app_cs, 0, 0, 0);\r
-               cons->app_cs = 0;\r
-       } else{\r
-               InputBox_Put_String(cons->input, "Console:Execute.hrb:File load error.\n");\r
-       }\r
-       File_Free(&cons->app_codefile);\r
-       return;\r
-}\r