OSDN Git Service

AI003:config.txt, words.txtを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_010 / chnos / core.h
1 \r
2 /*includes*/\r
3 #include "coredef0.h"   /*\83V\83X\83e\83\80\92è\90\94\90é\8c¾*/\r
4 #include "coredef1.h"   /*\83V\83X\83e\83\80\83f\81[\83^\8c^\90é\8c¾*/\r
5 #include "coredef2.h"   /*\83V\83X\83e\83\80\8aO\95\94\83\8a\83\\81[\83X\90é\8c¾*/\r
6 #include "coredef3.h"   /*TaskControlMessage\90é\8c¾*/\r
7 #include "keyid.h"              /*KeyIdentifier \83L\81[ID\90é\8c¾*/\r
8 #include "structid.h"   /*SystemCommonStructID\90é\8c¾*/\r
9 \r
10 /*functions*/\r
11 /*bootpack.c \8aî\8a²\95\94\95ª*/\r
12 void KeyboardControlTask(DATA_FIFO32 **InputFocus);\r
13 void MouseControlTask(DATA_FIFO32 **InputFocus, UI_MouseCursor *mcursor);\r
14 \r
15 /*callbios.c 32bit\82©\82çBIOS\82ð\83R\81[\83\8b\82·\82é\82½\82ß\82Ì\8aÖ\90\94\8cQ*/\r
16 \r
17 IO_CallBIOSControl *Initialize_CallBIOS(void);\r
18 void CallBIOS_Execute(IO_CallBIOSControl *ctrl, uchar intn, DATA_FIFO32 *fifo, uint endsignal);\r
19 void CallBIOS_Send_End_Of_Operation(IO_CallBIOSControl *ctrl, uint abort);\r
20 void CallBIOS_Check_Privileged_Operation(uint *esp);\r
21 uint CallBIOS_Push_Data_To_Stack(uint *esp, ushort data);\r
22 uint CallBIOS_Pop_Data_From_Stack(uint *esp);\r
23 \r
24 /*cfunc.c vsnprintf\82Ì\93Æ\8e©\8eÀ\91\95\93\99*/\r
25 void srand(uint seed);\r
26 uint rand(void);\r
27 uint isqrt(uint n);\r
28 uint strtol(const uchar s[], uchar *endptr[], uint base);\r
29 bool CFunction_CompareStrings(const uchar s1[], const uchar s2[]);\r
30 bool CFunction_CompareStrings_n(const uchar s1[], const uchar s2[], unsigned int n);\r
31 uint CFunction_ExtractBits(uint source, uint start, uint end);\r
32 bool CFunction_String_GetWord(const uchar s[], uchar *wordptr[], uint n);\r
33 uint CFunction_MemoryMove(void *destination, uint destination_size, const void *source, uint source_size);\r
34 int snprintf(uchar s[], uint n, const uchar format[], ...);\r
35 int vsnprintf(uchar s[], uint n, const uchar format[], uint vargs[]);\r
36 //\r
37 int CFunction_vsnprintf(uchar s[], uint n, const uchar format[], uint vargs[]);\r
38 void CFunction_vsnprintf_Initialize_WorkArea(CFunction_vsnprintf_WorkArea *work, uchar s[], const uchar format[], uint n, uint vargs[]);\r
39 int CFunction_vsnprintf_Check_FormatBuffer(CFunction_vsnprintf_WorkArea *work);\r
40 int CFunction_vsnprintf_Check_DestinationBuffer(CFunction_vsnprintf_WorkArea *work);\r
41 uchar CFunction_vsnprintf_Read_FormatBuffer(CFunction_vsnprintf_WorkArea *work);\r
42 void CFunction_vsnprintf_Write_DestinationBuffer(CFunction_vsnprintf_WorkArea *work, uchar c);\r
43 void CFunction_vsnprintf_End(CFunction_vsnprintf_WorkArea *work);\r
44 uint CFunction_vsnprintf_Get_NextArgument(CFunction_vsnprintf_WorkArea *work);\r
45 void CFunction_vsnprintf_To_String_From_Hex_Upper(CFunction_vsnprintf_WorkArea *work, uint hex);\r
46 void CFunction_vsnprintf_To_String_From_Hex_Lower(CFunction_vsnprintf_WorkArea *work, uint hex);\r
47 void CFunction_vsnprintf_To_String_From_Decimal_Unsigned(CFunction_vsnprintf_WorkArea *work, uint d);\r
48 \r
49 /*color.c \90F\8aÖ\98A*/\r
50 extern uint RGB_Table_08[16];\r
51 ushort RGB_08_To_16(uchar c8);\r
52 uint RGB_08_To_32(uchar c8);\r
53 uchar RGB_16_To_08(ushort c16);\r
54 uint RGB_16_To_32(ushort c16);\r
55 uchar RGB_32_To_08(uint c32);\r
56 uchar RGB_32_To_08_xy(uint c32, int x, int y);\r
57 ushort RGB_32_To_16(uint c32);\r
58 \r
59 /*console.c \83R\83\93\83\\81[\83\8b\8aÖ\98A*/\r
60 UI_Console *Console_Initialize(void);\r
61 uint Console_SetSize(UI_Console *console, uint xchars, uint ychars);\r
62 uint Console_Run(UI_Console *console);\r
63 void Console_MainTask(UI_Console *console);\r
64 bool Console_CompareCommandline_s(UI_Console *console, const uchar s[]);\r
65 bool Console_CompareCommandline_n(UI_Console *console, const uchar s[], unsigned int n);\r
66 uint Console_printf(UI_Console *console, const uchar format[], ...);\r
67 uint Console_Command_dir(UI_Console *console);\r
68 uint Console_Command_pci(UI_Console *console);\r
69 uint Console_Command_type(UI_Console *console);\r
70 uint Console_Command_task(UI_Console *console);\r
71 \r
72 /*debug.c \83f\83o\83b\83O\8ex\89\87*/\r
73 #ifdef CHNOSPROJECT_DEBUG\r
74 void debug(const uchar format[], ...);\r
75 void Debug_PhysicalMemoryDump(void *addr, uint bytes);\r
76 void Debug_Set_Breakpoint(uint reg, void *addr, uint rw, uint len);\r
77 void Debug_ExceptionHandler(uint *esp);\r
78 #endif\r
79 \r
80 /*display.c \83f\83B\83X\83v\83\8c\83C\90§\8cä\8aÖ\98A*/\r
81 IO_DisplayControl *Initialize_Display(void);\r
82 uint Display_VESA_Set_VideoMode(IO_DisplayControl *ctrl, uint index);\r
83 \r
84 /*draw08.c 8bit\95`\89æ\8aÖ\98A*/\r
85 void Drawing08_Initialize_Palette(void);\r
86 void Drawing08_Set_Palette(uint start, uint end, uchar *rgb);\r
87 void Drawing08_Fill_Rectangle(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
88 void Drawing08_Put_Font(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font);\r
89 void Drawing08_Put_String(void *vram, uint xsize, uint x, uint y, uint c, const uchar s[]);\r
90 void Drawing08_Draw_Point(void *vram, uint xsize, uint x, uint y, uint c);\r
91 \r
92 /*draw16.c 16bit\95`\89æ\8aÖ\98A*/\r
93 void Drawing16_Fill_Rectangle(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
94 void Drawing16_Put_Font(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font);\r
95 void Drawing16_Put_String(void *vram, uint xsize, uint x, uint y, uint c, const uchar s[]);\r
96 void Drawing16_Draw_Point(void *vram, uint xsize, uint x, uint y, uint c);\r
97 \r
98 /*draw32.c 32bit\95`\89æ\8aÖ\98A*/\r
99 void Drawing32_Fill_Rectangle(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
100 void Drawing32_Put_Font(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font);\r
101 void Drawing32_Put_String(void *vram, uint xsize, uint x, uint y, uint c, const uchar s[]);\r
102 void Drawing32_Draw_Point(void *vram, uint xsize, uint x, uint y, uint c);\r
103 \r
104 /*drawing.c \95`\89æ\8aÖ\98A*/\r
105 extern void (*Drawing_Fill_Rectangle)(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
106 extern void (*Drawing_Put_String)(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s);\r
107 extern void (*Drawing_Draw_Point)(void *vram, uint xsize, uint x, uint y, uint c);\r
108 void Drawing_Invalid_Put_String(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s);\r
109 void Drawing_Invalid_Fill_Rectangle(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
110 void Drawing_Invalid_Draw_Point(void *vram, uint xsize, uint x, uint y, uint c);\r
111 void Drawing_Invalid_Draw_Line_PQ(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
112 void Initialize_Drawing(void);\r
113 void Drawing_Draw_Line_PQ(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
114 void Drawing_Draw_Circle(void *vram, uint xsize, uint x, uint y, uint c, uint r);\r
115 void Drawing_Fill_Circle(void *vram, uint xsize, uint x, uint y, uint c, uint r);\r
116 \r
117 /*dsctbl.c \83Z\83O\83\81\83\93\83g\81E\83Q\81[\83g\83f\83B\83X\83N\83\8a\83v\83^\8aÖ\98A*/\r
118 void Initialize_GlobalDescriptorTable(void);\r
119 void Initialize_InterruptDescriptorTable(void);\r
120 void SegmentDescriptor_Set(IO_SegmentDescriptor *seg_desc, uint limit, uint base, uint ar);\r
121 uint SegmentDescriptor_Get_Base(IO_SegmentDescriptor *seg_desc);\r
122 uint SegmentDescriptor_Get_Limit(IO_SegmentDescriptor *seg_desc);\r
123 uint SegmentDescriptor_Get_AccessRight(IO_SegmentDescriptor *seg_desc);\r
124 void GateDescriptor_Set(IO_GateDescriptor *gate_desc, uint offset, uint selector, uint ar);\r
125 \r
126 /*emu86.c x86\83G\83~\83\85\83\8c\81[\83^\81[\8aÖ\98A*/\r
127 void Emulator_x86_Initialize(Emulator_x86_Environment *env);\r
128 uint Emulator_x86_Execute(Emulator_x86_Environment *env);\r
129 uint Emulator_x86_Execute_Auto(Emulator_x86_Environment *env);\r
130 int Emulator_x86_Put_EmulationInformation(Emulator_x86_Environment *env, const uchar format[], ...);\r
131 uint Emulator_x86_FetchCode(Emulator_x86_Environment *env, uint bytes);\r
132 void Emulator_x86_InstructionPointer_Increment(Emulator_x86_Environment *env);\r
133 uint Emulator_x86_Get_EffectivePhysicalAddress(Emulator_x86_Environment *env, uint sreg, uint offset);\r
134 uint Emulator_x86_Get_EffectivePhysicalAddress_FromModRM(Emulator_x86_Environment *env, uint modrm);\r
135 void Emulator_x86_MoveToGReg(Emulator_x86_Environment *env, uint reg, uint data, uint fullsize);\r
136 uint Emulator_x86_MoveFromGReg(Emulator_x86_Environment *env, uint reg, uint fullsize);\r
137 void Emulator_x86_MoveToSReg(Emulator_x86_Environment *env, uint sreg, ushort selector);\r
138 void Emulator_x86_Push_Data_To_Stack(Emulator_x86_Environment *env, uint data, uint size_dword);\r
139 uint Emulator_x86_Pop_Data_From_Stack(Emulator_x86_Environment *env, uint size_dword);\r
140 void Emulator_x86_Push_eIP_To_Stack(Emulator_x86_Environment *env);\r
141 void Emulator_x86_Pop_eIP_From_Stack(Emulator_x86_Environment *env);\r
142 void Emulator_x86_Push_eFLAGS_To_Stack(Emulator_x86_Environment *env);\r
143 void Emulator_x86_Pop_eFLAGS_From_Stack(Emulator_x86_Environment *env);\r
144 void Emulator_x86_Push_SReg_To_Stack(Emulator_x86_Environment *env, uint sreg);\r
145 void Emulator_x86_Pop_SReg_From_Stack(Emulator_x86_Environment *env, uint sreg);\r
146 //\r
147 void Emulator_x86_Operation_MOV_To_Reg_FullSize(Emulator_x86_Environment *env);\r
148 void Emulator_x86_Operation_MOV_To_SegReg(Emulator_x86_Environment *env);\r
149 void Emulator_x86_Operation_MOV_To_ByteReg(Emulator_x86_Environment *env);\r
150 void Emulator_x86_Operation_INTn(Emulator_x86_Environment *env);\r
151 void Emulator_x86_Operation_LEA(Emulator_x86_Environment *env);\r
152 void Emulator_x86_Operation_CALL_Near_Relative(Emulator_x86_Environment *env);\r
153 void Emulator_x86_Operation_PUSHA(Emulator_x86_Environment *env);\r
154 void Emulator_x86_Operation_POPA(Emulator_x86_Environment *env);\r
155 void Emulator_x86_Operation_MOV_To_ByteReg_Gb_Eb(Emulator_x86_Environment *env);\r
156 void Emulator_x86_Operation_CMP_AL(Emulator_x86_Environment *env);\r
157 void Emulator_x86_Operation_Jcc_JE_rel8(Emulator_x86_Environment *env);\r
158 void Emulator_x86_Operation_INC_RegOnly(Emulator_x86_Environment *env);\r
159 void Emulator_x86_Operation_JMP_rel8(Emulator_x86_Environment *env);\r
160 void Emulator_x86_Operation_RET_Near(Emulator_x86_Environment *env);\r
161 void Emulator_x86_Operation_PUSH_RegOnly(Emulator_x86_Environment *env);\r
162 void Emulator_x86_Operation_XOR_Eb_Gb(Emulator_x86_Environment *env);\r
163 void Emulator_x86_Operation_DEC_RegOnly(Emulator_x86_Environment *env);\r
164 void Emulator_x86_Operation_MOV_eAX_Ov(Emulator_x86_Environment *env);\r
165 void Emulator_x86_Operation_MOV_Ov_eAX(Emulator_x86_Environment *env);\r
166 void Emulator_x86_Operation_OUT_AL(Emulator_x86_Environment *env);\r
167 void Emulator_x86_Operation_CMP_Gv_Ev(Emulator_x86_Environment *env);\r
168 void Emulator_x86_Operation_LOOP_Jv(Emulator_x86_Environment *env);\r
169 void Emulator_x86_Operation_POP_Ev(Emulator_x86_Environment *env);\r
170 void Emulator_x86_Operation_POP_RegOnly(Emulator_x86_Environment *env);\r
171 void Emulator_x86_Operation_Jcc_JNE_rel8(Emulator_x86_Environment *env);\r
172 void Emulator_x86_Operation_STI(Emulator_x86_Environment *env);\r
173 void Emulator_x86_Operation_SBB_Gv_Ev(Emulator_x86_Environment *env);\r
174 void Emulator_x86_Operation_MOV_Ev_Gv(Emulator_x86_Environment *env);\r
175 void Emulator_x86_Operation_PUSH_Ib(Emulator_x86_Environment *env);\r
176 void Emulator_x86_Operation_CLD(Emulator_x86_Environment *env);\r
177 \r
178 /*emu86asm.nas x86\83G\83~\83\85\83\8c\81[\83^\81[\8aÖ\98A\83A\83Z\83\93\83u\83\89\8aÖ\90\94*/\r
179 uint asm_Emulator_x86_Get_EFlags_Compare(uint first_op, uint second_op);        //eflags\82ð\95Ô\82·\r
180 uint asm_Emulator_x86_Get_EFlags_Increment(uint first_op);\r
181 uint asm_Emulator_x86_Get_EFlags_XOR(uint first_op, uint second_op);\r
182 uint asm_Emulator_x86_Get_EFlags_Decrement(uint first_op);\r
183 uint asm_Emulator_x86_Get_EFlags_Subtract_with_Borrow(uint *first_op, uint second_op, uint borrow);\r
184 \r
185 /*error.c \83G\83\89\81[\8aÖ\98A*/\r
186 uint Error_Report(uint error_no, ...);\r
187 void Error_Abort(void);\r
188 void Error_Set_Enable_SerialPort(bool serial);\r
189 void Error_Set_Enable_Display_TextMode(bool tdisp);\r
190 void Error_Set_Enable_Display_GraphicMode(bool gdisp, void *vram, uint xsize, uint lines);\r
191 int Error_Put_String(const uchar format[], ...);\r
192 void Error_CPU_Exception_Put_Registers_With_ErrorCode(uint *esp);\r
193 void Error_CPU_Exception_Put_Registers_Without_ErrorCode(uint *esp);\r
194 \r
195 /*fifo.c FIFO\83o\83b\83t\83@\8aÖ\98A*/\r
196 DATA_FIFO32 *FIFO32_Initialize(IO_MemoryControl memctrl, uint size);\r
197 int FIFO32_Put(DATA_FIFO32 *fifo, uint data);\r
198 int FIFO32_Put_Arguments(DATA_FIFO32 *fifo, uint args, ...);\r
199 void FIFO32_Set_Task(DATA_FIFO32 *fifo, UI_Task *task);\r
200 uint FIFO32_Get(DATA_FIFO32 *fifo);\r
201 uint FIFO32_Status(DATA_FIFO32 *fifo);\r
202 void FIFO32_Free(DATA_FIFO32 *fifo);\r
203 uint FIFO32_MyTaskFIFO_Status(void);\r
204 uint FIFO32_MyTaskFIFO_Get(void);\r
205 \r
206 /*file.c \83t\83@\83C\83\8b\8aÖ\98A*/\r
207 IO_File *File_Initilaize(void);\r
208 uint File_Free(IO_File *file);\r
209 \r
210 /*floppy.c \83t\83\8d\83b\83s\81[\83f\83B\83X\83N\8aÖ\98A*/\r
211 IO_FloppyDisk *FloppyDisk_Initialize(void *img);\r
212 uint FloppyDisk_Decode_FAT16(IO_FloppyDisk *fd, bool backup);\r
213 bool FloppyDisk_IsPathExist(IO_FloppyDisk *fd, const uchar path[]);\r
214 uint FloppyDisk_LoadFile(IO_FloppyDisk *fd, IO_File *file, const uchar path[]);\r
215 IO_FloppyDisk_DirectoryEntry *FloppyDisk_Internal_GetDirectoryEntryFromPath(IO_FloppyDisk *fd, const uchar path[]);\r
216 \r
217 /*fmt_bmp.c \83r\83b\83g\83}\83b\83v\95`\89æ\8aÖ\98A*/\r
218 uint Format_BMP_DrawPicture(void *vram, uint xsize, uint x, uint y, uint pxsize, uint pysize, void *bmp);\r
219 \r
220 /*intrpt.c \8a\84\82è\8d\9e\82Ý\8aÖ\98A*/\r
221 void Initialize_ProgrammableInterruptController(void);\r
222 void ProgrammableInterruptController_InterruptMask_Clear(uint irq);\r
223 void ProgrammableInterruptController_InterruptRequest_Complete(uint irq);\r
224 void InterruptHandler27(uint *esp);\r
225 \r
226 /*keyboard.c \83L\81[\83{\81[\83h\8aÖ\98A*/\r
227 void Initialize_Keyboard(void);\r
228 void InterruptHandler21(uint *esp);\r
229 void Keyboard_Set_ReceiveFIFO(DATA_FIFO32 *fifo, uint data0);\r
230 ushort Keyboard_Decode_KeyCode(uchar keycode);\r
231 void KeyboardController_SetLED(uchar leds);\r
232 void KeyboardController_Wait_SendReady(void);\r
233 void KeyboardController_SendData(uchar data);\r
234 void KeyboardController_SendCommand(uchar cmd);\r
235 \r
236 /*memory.c \83\81\83\82\83\8a\8aÖ\98A*/\r
237 uint Memory_Test(uint start, uint end);\r
238 IO_MemoryControl Memory_Initialize_Control(void *start, uint size, uint tags);\r
239 void Memory_Free(IO_MemoryControl ctrl, void *addr, uint size);\r
240 void Memory_Free_Sub(IO_MemoryControl ctrl, uint tagno);\r
241 void *Memory_Allocate(IO_MemoryControl ctrl, uint size);\r
242 void *Memory_Allocate_Aligned(IO_MemoryControl ctrl, uint size, uint align);\r
243 uint Memory_Get_FreeSize(IO_MemoryControl ctrl);\r
244 \r
245 /*mouse.c \83}\83E\83X\8aÖ\98A*/\r
246 IO_MouseControl *Initialize_Mouse(void);\r
247 void InterruptHandler2c(uint *esp);\r
248 void Mouse_Set_ReceiveFIFO(DATA_FIFO32 *fifo, uint data0);\r
249 void Mouse_SendCommand(uint cmd);\r
250 UI_MouseCursor *MouseCursor_Initialize(UI_Sheet *parent);\r
251 uint MouseCursor_Show(UI_MouseCursor *mcursor);\r
252 uint MouseCursor_Move_Relative(UI_MouseCursor *mcursor, int rpx, int rpy);\r
253 uint MouseCursor_Move_Absolute(UI_MouseCursor *mcursor, int apx, int apy);\r
254 bool Mouse_Decode(IO_MouseControl *mctrl, uint data);\r
255 \r
256 /*mtask.c \83}\83\8b\83`\83^\83X\83N\8aÖ\98A*/\r
257 UI_TaskControl *Initialize_MultiTask_Control(IO_MemoryControl sysmemctrl);\r
258 UI_Task *MultiTask_Task_Initialize(UI_TaskControl *ctrl, uint tss_additional_size);\r
259 uint MultiTask_Internal_Task_SetLink(UI_TaskControl *ctrl, UI_Task *task);\r
260 uint MultiTask_Internal_Task_CleartLink(UI_TaskControl *ctrl, UI_Task *task);\r
261 void MultiTask_Task_Run(UI_TaskControl *ctrl, UI_Task *task);\r
262 void MultiTask_TaskSwitch(UI_TaskControl *ctrl);\r
263 void MultiTask_Task_Sleep(UI_TaskControl *ctrl, UI_Task *task);\r
264 void MultiTask_Task_Kill(UI_TaskControl *ctrl, UI_Task *task);\r
265 UI_Task *MultiTask_GetNowTask(UI_TaskControl *ctrl);\r
266 uint MultiTask_Push_Arguments(UI_Task *task, uint args, ...);\r
267 \r
268 /*pci.c PCI\8aÖ\98A*/\r
269 void Initialize_PCI(void);\r
270 void PCI_ConfigurationRegister_SelectDevice(uint bus, uint device, uint function);\r
271 uint PCI_ConfigurationRegister_Read32(uint addr);\r
272 uchar *PCI_GetDeviceVendor(uint id);\r
273 uchar *PCI_GetDeviceClass(uint id);\r
274 uchar *PCI_GetDeviceType(uint id);\r
275 \r
276 /*serial.c \83V\83\8a\83A\83\8b\92Ê\90M\8aÖ\98A*/\r
277 void Initialize_SerialPort(void);\r
278 void SerialPort_Send(const uchar s[]);\r
279 \r
280 /*sheet.c \83V\81[\83g\8aÖ\98A*/\r
281 UI_Sheet *Sheet_Initialize(void);\r
282 uint Sheet_Free(UI_Sheet *sheet);\r
283 uint Sheet_SetBuffer(UI_Sheet *sheet, void *vram, uint xsize, uint ysize, uint bpp);\r
284 uint Sheet_SetParent(UI_Sheet *sheet, UI_Sheet *parent);\r
285 uint Sheet_Show(UI_Sheet *sheet, uint height, int px, int py);\r
286 uint Sheet_ChangeHeight(UI_Sheet *sheet, uint height);\r
287 uint Sheet_RefreshSheet_All(UI_Sheet *sheet);\r
288 uint Sheet_Slide_Absolute(UI_Sheet *sheet, int apx, int apy);\r
289 uint Sheet_Slide_Relative(UI_Sheet *sheet, int rpx, int rpy);\r
290 uint Sheet_RefreshAllInRange(UI_Sheet *parent, int px0, int py0, int px1, int py1);\r
291 uint Sheet_RefreshSheet(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
292 uint Sheet_RefreshMap(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
293 uint Sheet_RefreshMap_All(UI_Sheet *sheet);\r
294 uint Sheet_Enable_InvisibleColor(UI_Sheet *sheet, uint invcol);\r
295 uint Sheet_Disable_InvisibleColor(UI_Sheet *sheet);\r
296 uint Sheet_SetTopmost(UI_Sheet *sheet, bool topmost);\r
297 UI_Sheet *Sheet_GetSheetFromLocation(UI_Sheet *parent, int px, int py);\r
298 uint Sheet_SetMovable(UI_Sheet *sheet, bool movable);\r
299 uint Sheet_SetInputFIFO(UI_Sheet *sheet, DATA_FIFO32 *fifo);\r
300 \r
301 /*sht08.c 8bit\83J\83\89\81\83V\81[\83g\8aÖ\98A*/\r
302 uint Sheet08_Internal_SetBuffer(UI_Sheet *sheet, void *vram, uint xsize, uint ysize, uint bpp);\r
303 uint Sheet08_Config_Functions(UI_Sheet *sheet);\r
304 uint Sheet08_Internal_RefreshSheet_To_08(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
305 uint Sheet08_Internal_RefreshSheet_To_16(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
306 uint Sheet08_Internal_RefreshSheet_To_32(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
307 bool Sheet08_Internal_IsVisiblePixel(UI_Sheet *sheet, int px, int py);\r
308 \r
309 /*sht16.c 16bit\83J\83\89\81\83V\81[\83g\8aÖ\98A*/\r
310 uint Sheet16_Internal_SetBuffer(UI_Sheet *sheet, void *vram, uint xsize, uint ysize, uint bpp);\r
311 uint Sheet16_Config_Functions(UI_Sheet *sheet);\r
312 uint Sheet16_Internal_RefreshSheet_To_16(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
313 uint Sheet16_Internal_RefreshSheet_To_08(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
314 uint Sheet16_Internal_RefreshSheet_To_32(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
315 bool Sheet16_Internal_IsVisiblePixel(UI_Sheet *sheet, int px, int py);\r
316 \r
317 /*sht32.c 32bit\83J\83\89\81\83V\81[\83g\8aÖ\98A*/\r
318 uint Sheet32_Internal_SetBuffer(UI_Sheet *sheet, void *vram, uint xsize, uint ysize, uint bpp);\r
319 uint Sheet32_Config_Functions(UI_Sheet *sheet);\r
320 uint Sheet32_Internal_RefreshSheet_To_32(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
321 uint Sheet32_Internal_RefreshSheet_To_16(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
322 uint Sheet32_Internal_RefreshSheet_To_08_xy(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
323 bool Sheet32_Internal_IsVisiblePixel(UI_Sheet *sheet, int px, int py);\r
324 \r
325 /*shtdraw \83V\81[\83g\95`\89æ\8aÖ\90\94*/\r
326 uint Sheet_Drawing_Fill_Rectangle(UI_Sheet *sheet, uint c, int px0, int py0, int px1, int py1);\r
327 uint Sheet_Drawing_Put_String(UI_Sheet *sheet, int x, int y, uint fc, const uchar s[]);\r
328 uint Sheet_Drawing_Draw_Point(UI_Sheet *sheet, int x, int y, uint c);\r
329 uint Sheet_Drawing_Scroll_Vertical(UI_Sheet *sheet, int vpx);\r
330 //\r
331 uint Sheet_Drawing_Fill_Rectangle_Invalid(UI_Sheet *sheet, uint c, int px0, int py0, int px1, int py1);\r
332 uint Sheet_Drawing_Put_String_Invalid(UI_Sheet *sheet, int x, int y, uint fc, const uchar s[]);\r
333 uint Sheet_Drawing_Draw_Point_Invalid(UI_Sheet *sheet, int x, int y, uint c);\r
334 //\r
335 uint Sheet08_Drawing_Fill_Rectangle(UI_Sheet *sheet, uint c, int px0, int py0, int px1, int py1);\r
336 uint Sheet08_Drawing_Put_String(UI_Sheet *sheet, int x, int y, uint fc, const uchar s[]);\r
337 uint Sheet08_Drawing_Draw_Point(UI_Sheet *sheet, int x, int y, uint c);\r
338 //\r
339 uint Sheet16_Drawing_Fill_Rectangle(UI_Sheet *sheet, uint c, int px0, int py0, int px1, int py1);\r
340 uint Sheet16_Drawing_Put_String(UI_Sheet *sheet, int x, int y, uint fc, const uchar s[]);\r
341 uint Sheet16_Drawing_Draw_Point(UI_Sheet *sheet, int x, int y, uint c);\r
342 //\r
343 uint Sheet32_Drawing_Fill_Rectangle(UI_Sheet *sheet, uint c, int px0, int py0, int px1, int py1);\r
344 uint Sheet32_Drawing_Put_String(UI_Sheet *sheet, int x, int y, uint fc, const uchar s[]);\r
345 uint Sheet32_Drawing_Draw_Point(UI_Sheet *sheet, int x, int y, uint c);\r
346 \r
347 /*shtfunc.c \83V\81[\83g\93à\95\94\8aÖ\90\94*/\r
348 uint Sheet_Internal_GetLocationP(UI_Sheet *sheet, DATA_Location2D *dest);\r
349 uint Sheet_Internal_GetLocationQ(UI_Sheet *sheet, DATA_Location2D *dest);\r
350 uint Sheet_Internal_GetLocationR(UI_Sheet *sheet, DATA_Location2D *dest);\r
351 uint Sheet_Internal_GetLocationS(UI_Sheet *sheet, DATA_Location2D *dest);\r
352 uint Sheet_Internal_MapInitialize(UI_Sheet *parent);\r
353 uint Sheet_Internal_MapWriteFromSheet(UI_Sheet *sheet, bool force, int px0, int py0, int px1, int py1);\r
354 bool Sheet_Internal_IsLocationInRangeOfSheet(UI_Sheet *sheet, int px, int py);\r
355 bool Sheet_Internal_IsRangeOverlappedWithSheet(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
356 UI_Sheet *Sheet_Internal_GetSheetFromLocation(UI_Sheet *parent, int px, int py);\r
357 uint Sheet_Internal_MapRebuild(UI_Sheet *parent, int px0, int py0, int px1, int py1);\r
358 uint Sheet_Internal_MapRefresh(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
359 uint Sheet_Internal_RefreshSheet(UI_Sheet *sheet, int px0, int py0, int px1, int py1);\r
360 uint Sheet_Internal_SlideSub(UI_Sheet *sheet, int rpx, int rpy);\r
361 uint Sheet_Internal_ChangeHeight(UI_Sheet *sheet, uint height);\r
362 bool Sheet_Internal_IsVisiblePixel_Invalid(UI_Sheet *sheet, int px, int py);\r
363 uint Sheet_Internal_RefreshSheet_Invalid(struct UI_SHEET *sheet, int px0, int py0, int px1, int py1);\r
364 \r
365 /*struct.c \83V\83X\83e\83\80\8d\\91¢\91Ì\8b¤\92Ê\8aÇ\97\9d\83\8b\81[\83`\83\93*/\r
366 System_CommonStruct *System_CommonStruct_Allocate(uint structid);\r
367 uint System_CommonStruct_Free(System_CommonStruct *str);\r
368 \r
369 \r
370 /*system.c \83V\83X\83e\83\80\83f\81[\83^\81E\8f\89\8aú\89»\8aÖ\98A*/\r
371 void Initialize_System(void);\r
372 void System_Set_RunningPhase(uint phase);\r
373 uint System_Get_RunningPhase(void);\r
374 uint System_Get_PhisycalMemorySize(void);\r
375 void System_SegmentDescriptor_Set_Absolute(uint selector, uint limit, uint base, uint ar);\r
376 uint System_SegmentDescriptor_Get_Base(uint selector);\r
377 uint System_SegmentDescriptor_Get_Limit(uint selector);\r
378 uint System_SegmentDescriptor_Get_AccessRight(uint selector);\r
379 uint System_SegmentDescriptor_Set(uint limit, uint base, uint ar);\r
380 void System_GateDescriptor_Set(uint irq, uint offset, uint selector, uint ar);\r
381 void System_TaskSwitch(void);\r
382 UI_Task *System_MultiTask_Task_Initialize(uint tss_additional_size);\r
383 void System_MultiTask_Task_Run(UI_Task *task);\r
384 void *System_Memory_Allocate(uint size);\r
385 UI_Task *System_MultiTask_GetNowTask(void);\r
386 IO_CallBIOSControl *System_CallBIOS_Get_Controller(void);\r
387 void System_CallBIOS_Execute(uchar intn, DATA_FIFO32 *fifo, uint endsignal);\r
388 void System_Memory_Free(void *addr, uint size);\r
389 void System_CallBIOS_Send_End_Of_Operation(uint abort);\r
390 void System_MultiTask_Task_Sleep(UI_Task *task);\r
391 void System_MultiTask_Task_Kill(UI_Task *task);\r
392 DATA_FIFO32 *System_FIFO32_Initialize(uint size);\r
393 uint System_Display_VESA_Set_VideoMode(uint index);\r
394 IO_DisplayControl *System_Display_Get_Controller(void);\r
395 uint System_Memory_Get_FreeSize(void);\r
396 uint System_TaskControlMessage_Send_AllTask(uint message);\r
397 uint System_Sheet_SetParentToVRAM(UI_Sheet *sheet);\r
398 uint System_InputFocus_Change(DATA_FIFO32 *fifo);\r
399 UI_TaskControl *System_MultiTask_GetController(void);\r
400 \r
401 /*textbox.c \83e\83L\83X\83g\93ü\97ÍUI\8aÖ\98A*/\r
402 UI_TextBox *TextBox_Initialize(void);\r
403 uint TextBox_SetBuffer(UI_TextBox *textbox, uint xchars, uint ychars, uint bpp, UI_Sheet *parent);\r
404 uint TextBox_Show(UI_TextBox *textbox, uint height, int px, int py);\r
405 uint TextBox_Put_Key(UI_TextBox *textbox, ushort keyid);\r
406 uint TextBox_Put_String(UI_TextBox *textbox, const uchar s[]);\r
407 uint TextBox_Put_Character(UI_TextBox *textbox, uchar c);\r
408 bool TextBox_SetEnable_RecordInputText(UI_TextBox *textbox, bool enable);\r
409 uint TextBox_SetEnable_CursorBlink(UI_TextBox *textbox, bool enable);\r
410 uint TextBox_Cursor_Blink(UI_TextBox *textbox);\r
411 uint TextBox_Internal_Put_Character(UI_TextBox *textbox, uchar c);\r
412 bool TextBox_Internal_Put_Character_TextBuffer(UI_TextBox *textbox, uchar c);\r
413 uint TextBox_Internal_DrawCursor(UI_TextBox *textbox, bool cursor);\r
414 \r
415 /*timer.c \83^\83C\83}\81[\8aÖ\98A*/\r
416 UI_TimerControl *Initialize_ProgrammableIntervalTimer(void);\r
417 void InterruptHandler20(uint *esp);\r
418 void Timer_Set_TaskSwitch(void (*TaskSwitchFunction)(void));\r
419 void Timer_TaskSwitch_Invalid(void);\r
420 UI_Timer *Timer_Initialize(void);\r
421 uint Timer_Config(UI_Timer *timer, uint tick_ms, DATA_FIFO32 *fifo, uint fifo_putdata, bool interval);\r
422 uint Timer_Run(UI_Timer *timer);\r
423 uint Timer_TimeOut(void);\r
424 uint Timer_GetTick(void);\r
425 \r
426 /*vgatmode.c VGA\83e\83L\83X\83g\83\82\81[\83h\8aÖ\98A*/\r
427 uchar VGA_CRTController_ReadRegister(uchar regno);\r
428 void VGA_CRTController_WriteRegister(uchar regno, uchar data);\r
429 void TextMode_Write_TextRAM(ushort index, uchar data);\r
430 void TextMode_Put_Character_Absolute(uchar c, col_text col, ushort location);\r
431 void TextMode_Put_String_Absolute(const uchar s[], col_text col, uint x, uint y);\r
432 void TextMode_Clear_Screen(void);\r
433 ushort TextMode_Get_CursorLocation(void);\r
434 void TextMode_Set_CursorLocation(ushort location);\r
435 void TextMode_Put_Character(uchar c, col_text col);\r
436 void TextMode_Newline(void);\r
437 void TextMode_Put_String(const uchar s[], col_text col);\r
438 \r
439 /*xception.c \97á\8aO\8aÖ\98A*/\r
440 void CPU_ExceptionHandler00(uint *esp);\r
441 void CPU_ExceptionHandler01(uint *esp);\r
442 void CPU_ExceptionHandler02(uint *esp);\r
443 void CPU_ExceptionHandler03(uint *esp);\r
444 void CPU_ExceptionHandler04(uint *esp);\r
445 void CPU_ExceptionHandler05(uint *esp);\r
446 void CPU_ExceptionHandler06(uint *esp);\r
447 void CPU_ExceptionHandler07(uint *esp);\r
448 void CPU_ExceptionHandler08(uint *esp);\r
449 void CPU_ExceptionHandler09(uint *esp);\r
450 void CPU_ExceptionHandler0a(uint *esp);\r
451 void CPU_ExceptionHandler0b(uint *esp);\r
452 void CPU_ExceptionHandler0c(uint *esp);\r
453 void CPU_ExceptionHandler0d(uint *esp);\r
454 void CPU_ExceptionHandler0e(uint *esp);\r
455 void CPU_ExceptionHandler0f(uint *esp);\r
456 void CPU_ExceptionHandler10(uint *esp);\r
457 void CPU_ExceptionHandler11(uint *esp);\r
458 void CPU_ExceptionHandler12(uint *esp);\r
459 void CPU_ExceptionHandler13(uint *esp);\r
460 void CPU_ExceptionHandler14(uint *esp);\r
461 void CPU_ExceptionHandler15(uint *esp);\r
462 void CPU_ExceptionHandler16(uint *esp);\r
463 void CPU_ExceptionHandler17(uint *esp);\r
464 void CPU_ExceptionHandler18(uint *esp);\r
465 void CPU_ExceptionHandler19(uint *esp);\r
466 void CPU_ExceptionHandler1a(uint *esp);\r
467 void CPU_ExceptionHandler1b(uint *esp);\r
468 void CPU_ExceptionHandler1c(uint *esp);\r
469 void CPU_ExceptionHandler1d(uint *esp);\r
470 void CPU_ExceptionHandler1e(uint *esp);\r
471 void CPU_ExceptionHandler1f(uint *esp);\r
472 \r
473 /*nasfunc0.nas \91¼\82Ì\8aÖ\90\94\82É\91S\82­\88Ë\91\82µ\82È\82¢\83A\83Z\83\93\83u\83\89\8aÖ\90\94\8cQ*/\r
474 void IO_HLT(void);                      //CPU\82ð\92â\8e~\82³\82¹\82é\81B\8a\84\82è\8d\9e\82Ý\82ª\82 \82é\82Æ\8dÄ\8aJ\82·\82é\81B\93Á\8c \96½\97ß\81B\r
475 void IO_CLI(void);                      //CPU\82Ö\82Ì\8aO\95\94\8a\84\82è\8d\9e\82Ý\82ð\92â\8e~\82³\82¹\82é\81B\93Á\8c \96½\97ß\81BNMI\82Æ\97á\8aO\82É\82Í\8cø\82©\82È\82¢\81B\r
476 void IO_STI(void);                      //CPU\82Ö\82Ì\8aO\95\94\8a\84\82è\8d\9e\82Ý\82ð\8dÄ\8aJ\82³\82¹\82é\81B\93Á\8c \96½\97ß\81B\r
477 void IO_STIHLT(void);                   //CPU\82Ö\82Ì\8aO\95\94\8a\84\82è\8d\9e\82Ý\82ð\8dÄ\8aJ\82³\82¹\82½\8cã\81ACPU\82ð\92â\8e~\82³\82¹\82é\81Bsti\82Æhlt\82Ì\8aÔ\82É\94­\90\82·\82é\8a\84\82è\8d\9e\82Ý\82Ö\82Ì\91Î\8dô\81B\81B\r
478 uint IO_In8(uint port);                 //port\94Ô\82ÌI/O\83|\81[\83g\82©\82ç\83f\81[\83^\82ð\83o\83C\83g\92P\88Ê\82Å\8eó\82¯\8eæ\82é\81B\96ß\82è\92l\82Í\8eó\82¯\8eæ\82Á\82½\83f\81[\83^\81BI/O\93Á\8c \96½\97ß\81B\r
479 void IO_Out8(uint port, uint data);     //port\94Ô\82ÌI/O\83|\81[\83g\82Édata\82ð\83o\83C\83g\92P\88Ê\82Å\8fo\97Í\82·\82é\81BI/O\93Á\8c \96½\97ß\81B\r
480 uint IO_In16(uint port);                //port\94Ô\82ÌI/O\83|\81[\83g\82©\82ç\83f\81[\83^\82ð\83\8f\81[\83h\92P\88Ê\82Å\8eó\82¯\8eæ\82é\81B\96ß\82è\92l\82Í\8eó\82¯\8eæ\82Á\82½\83f\81[\83^\81BI/O\93Á\8c \96½\97ß\81B\r
481 void IO_Out16(uint port, uint data);    //port\94Ô\82ÌI/O\83|\81[\83g\82Édata\82ð\83\8f\81[\83h\92P\88Ê\82Å\8fo\97Í\82·\82é\81BI/O\93Á\8c \96½\97ß\81B\r
482 uint IO_In32(uint port);                //port\94Ô\82ÌI/O\83|\81[\83g\82©\82ç\83f\81[\83^\82ð\83_\83u\83\8b\83\8f\81[\83h\92P\88Ê\82Å\8eó\82¯\8eæ\82é\81B\96ß\82è\92l\82Í\8eó\82¯\8eæ\82Á\82½\83f\81[\83^\81BI/O\93Á\8c \96½\97ß\81B\r
483 void IO_Out32(uint port, uint data);    //port\94Ô\82ÌI/O\83|\81[\83g\82Édata\82ð\83_\83u\83\8b\83\8f\81[\83h\92P\88Ê\82Å\8fo\97Í\82·\82é\81BI/O\93Á\8c \96½\97ß\81B\r
484 uint IO_Load_EFlags(void);              //EFLAGS\83\8c\83W\83X\83^\82ð\93Ç\82Ý\8d\9e\82Þ\81B\r
485 void IO_Store_EFlags(uint eflags);      //EFLAGS\83\8c\83W\83X\83^\82ðeflags\82É\95Ï\8dX\82·\82é\81B\r
486 uint Load_CR0(void);                    //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^0\82ð\93Ç\82Ý\8d\9e\82Þ\81B\93Á\8c \96½\97ß\81B\r
487 void Store_CR0(uint cr0);               //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^0\82ðcr0\82É\95Ï\8dX\82·\82é\81B\93Á\8c \96½\97ß\81B\r
488 uint Load_CR2(void);                    //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^2\82ð\93Ç\82Ý\8d\9e\82Þ\81B\93Á\8c \96½\97ß\81B\r
489 void Store_CR2(uint cr2);               //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^2\82ðcr2\82É\95Ï\8dX\82·\82é\81B\93Á\8c \96½\97ß\81B\r
490 uint Load_CR3(void);                    //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^3\82ð\93Ç\82Ý\8d\9e\82Þ\81B\93Á\8c \96½\97ß\81B\r
491 void Store_CR3(uint cr3);               //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^3\82ðcr3\82É\95Ï\8dX\82·\82é\81B\93Á\8c \96½\97ß\81B\r
492 uint Load_CR4(void);                    //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^4\82ð\93Ç\82Ý\8d\9e\82Þ\81B\93Á\8c \96½\97ß\81B\r
493 void Store_CR4(uint cr4);               //\83R\83\93\83g\83\8d\81[\83\8b\83\8c\83W\83X\83^4\82ðcr4\82É\95Ï\8dX\82·\82é\81B\93Á\8c \96½\97ß\81B\r
494 uint Load_DR0(void);\r
495 void Store_DR0(uint dr0);\r
496 uint Load_DR1(void);\r
497 void Store_DR1(uint dr1);\r
498 uint Load_DR2(void);\r
499 void Store_DR2(uint dr2);\r
500 uint Load_DR3(void);\r
501 void Store_DR3(uint dr3);\r
502 uint Load_DR6(void);\r
503 void Store_DR6(uint dr6);\r
504 uint Load_DR7(void);\r
505 void Store_DR7(uint dr7);\r
506 void Load_GDTR(uint limit, uint addr);  //\83O\83\8d\81[\83o\83\8b\81E\83f\83B\83X\83N\83\8a\83v\83^\81E\83e\81[\83u\83\8b\81E\83\8c\83W\83X\83^(GDTR)\82É\81Aaddr\82©\82çlimit\82Ì\94Í\88Í\82ðGDT\82Æ\82µ\82Ä\83\8d\81[\83h\82³\82¹\82é\81B\93Á\8c \96½\97ß\81B\r
507 void Load_IDTR(uint limit, uint addr);  //\83C\83\93\83^\83\89\83v\83g\81E\83f\83B\83X\83N\83\8a\83v\83^\81E\83e\81[\83u\83\8b\81E\83\8c\83W\83X\83^(IDTR)\82É\81Aaddr\82©\82çlimit\82Ì\94Í\88Í\82ðIDT\82Æ\82µ\82Ä\83\8d\81[\83h\82³\82¹\82é\81B\93Á\8c \96½\97ß\81B\r
508 void Load_TR(uint tr);                  //\83Z\83O\83\81\83\93\83g\81E\83Z\83\8c\83N\83^tr\82ð\81A\83^\83X\83N\83\8c\83W\83X\83^\82É\8c»\8dÝ\82Ì\83^\83X\83N\82Æ\82µ\82Ä\83\8d\81[\83h\82³\82¹\82é\81B\93Á\8c \96½\97ß\81B\r
509 void FarJMP(uint eip, uint cs);         //\8c»\8dÝ\82Ì\83Z\83O\83\81\83\93\83g\82Æ\82Í\88Ù\82È\82é\83Z\83O\83\81\83\93\83gcs\82Ì\83I\83t\83Z\83b\83geip\82É\83v\83\8d\83O\83\89\83\80\82Ì\90§\8cä\82ð\88Ú\82·\81B\r
510 void FarCall(uint eip, uint cs);        //\8c»\8dÝ\82Ì\83Z\83O\83\81\83\93\83g\82Æ\82Í\88Ù\82È\82é\83Z\83O\83\81\83\93\83gcs\82Ì\83I\83t\83Z\83b\83geip\82É\83v\83\8d\83O\83\89\83\80\82Ì\90§\8cä\82ð\95ª\8aò\82³\82¹\82é\81B\r
511 void CLTS(void);                        //\83R\83\93\83g\83\8d\81[\83\8b\81E\83\8c\83W\83X\83^0\93à\82É\82 \82é\81ATask-Switched\83t\83\89\83O\82ð\83N\83\8a\83A\82·\82é\81BFPU\82Ì\90§\8cä\82É\97\98\97p\81B\93Á\8c \96½\97ß\81B\r
512 void FNSave(uint *addr);                //FPU\93®\8dì\8aÂ\8b«\82ðaddr\82©\82ç\8en\82Ü\82é108\83o\83C\83g\82É\8ai\94[\82µ\81AFPU\82ð\8f\89\8aú\89»\82·\82é\81B\8fÚ\8d×\82È\83`\83F\83b\83N\82Í\8ds\82í\82È\82¢\81B\r
513 void FRStore(uint *addr);               //FPU\93®\8dì\8aÂ\8b«\82ðaddr\82©\82ç\8en\82Ü\82é108\83o\83C\83g\82©\82ç\95\9c\8c³\82·\82é\81B\r
514 void PIT_Beep_On(void);                 //\83r\81[\83v\89¹\82ð\8aJ\8en\82·\82é\81B\r
515 void PIT_Beep_Off(void);                //\83r\81[\83v\89¹\82ð\92â\8e~\82·\82é\81B\r
516 void PIT_Beep_Set(uint fq);             //\83r\81[\83v\89¹\82Ì\8eü\94g\90\94\82ð\81AfqHz\82É\95Ï\8dX\82·\82é\81B\r
517                                         //fq\82Ì\92l\r
518                                         //C:262 C#:277 D:294 D#:311 E:330 F:349 F#:370 G:392 G#:415 A:440 A#:466 B:494 C:523\r
519 void CPUID(void *addr, uint id);        //addr\94Ô\92n\82Ìuint[4]\82É\81ACPU\82Ì\8e¯\95Ê\8fî\95ñid\94Ô\82ðEAX\81EEBX\81EEDX\81EECX\82Ì\8f\87\94Ô\82Å\8ai\94[\82·\82é\81B\r
520 void CPUID2(void *addr, uint id);       //addr\94Ô\92n\82Ìuint[4]\82É\81ACPU\82Ì\8e¯\95Ê\8fî\95ñid\94Ô\82ðEAX\81EEBX\81EECX\81EEDX\82Ì\8f\87\94Ô\82Å\8ai\94[\82·\82é\81B\r
521                                         //\8fã\8bL\93ñ\82Â\82Ì\8aÖ\90\94\82Í\81AEFLAGS\93à\82ÌID\83t\83\89\83O(\83r\83b\83g21)\82ª\95Ï\8dX\89Â\94\\82È\8fê\8d\87\82Ì\82Ý\8eÀ\8ds\82Å\82«\82é\81B\r
522 void TSC_Read(uint *addr);              //addr\94Ô\92n\82Ìuint[2]\82É\81A\83}\83V\83\93\8cÅ\97L\83\8c\83W\83X\83^(MSR)\93à\82É\82 \82é\81A\83^\83C\83\80\81E\83X\83^\83\93\83v\81E\83J\83E\83\93\83^\82Ì\8fã\88Ê\81E\89º\88Ê\82»\82ê\82¼\82ê32\83r\83b\83g\82ð\93Ç\82Ý\8d\9e\82Þ\81B\r
523                                         //\82±\82Ì\8aÖ\90\94\82Í\81Acpuid\82ÌTSC\83r\83b\83g\82ª\97L\8cø\82Å\82È\82¯\82ê\82Î\8eg\97p\82Å\82«\82È\82¢\81B\r
524 uint Memory_Test_Sub(uint start, uint end);\r
525 void INT_3(void);                       //\83u\83\8c\81[\83N\83|\83C\83\93\83g\97á\8aO\82ð\94­\90\82³\82¹\82é\81B\r
526 uint DIV_64_32(uint dividend_low, uint dividend_high, uint divisor);\r
527                                         //=((dividend_high << 32) | dividend_low) / divisor\r
528 uint MOD_64_32(uint dividend_low, uint dividend_high, uint divisor);\r
529                                         //=((dividend_high << 32) | dividend_low) % divisor\r
530 void MOVSD_ZeroFill(void *addr, uint bytes);    //4Byte\92P\88Ê\82Å\83[\83\8d\83t\83B\83\8b\82·\82é\81B\r
531 /*nasfunc1.nas \91¼\82Ì\8aÖ\90\94\82É\88Ë\91\82·\82é\83A\83Z\83\93\83u\83\89\8aÖ\90\94\8cQ*/\r
532 void asm_CPU_ExceptionHandler00(void);\r
533 void asm_CPU_ExceptionHandler01(void);\r
534 void asm_CPU_ExceptionHandler02(void);\r
535 void asm_CPU_ExceptionHandler03(void);\r
536 void asm_CPU_ExceptionHandler04(void);\r
537 void asm_CPU_ExceptionHandler05(void);\r
538 void asm_CPU_ExceptionHandler06(void);\r
539 void asm_CPU_ExceptionHandler07(void);\r
540 void asm_CPU_ExceptionHandler08(void);\r
541 void asm_CPU_ExceptionHandler09(void);\r
542 void asm_CPU_ExceptionHandler0a(void);\r
543 void asm_CPU_ExceptionHandler0b(void);\r
544 void asm_CPU_ExceptionHandler0c(void);\r
545 void asm_CPU_ExceptionHandler0d(void);\r
546 void asm_CPU_ExceptionHandler0e(void);\r
547 void asm_CPU_ExceptionHandler0f(void);\r
548 void asm_CPU_ExceptionHandler10(void);\r
549 void asm_CPU_ExceptionHandler11(void);\r
550 void asm_CPU_ExceptionHandler12(void);\r
551 void asm_CPU_ExceptionHandler13(void);\r
552 void asm_CPU_ExceptionHandler14(void);\r
553 void asm_CPU_ExceptionHandler15(void);\r
554 void asm_CPU_ExceptionHandler16(void);\r
555 void asm_CPU_ExceptionHandler17(void);\r
556 void asm_CPU_ExceptionHandler18(void);\r
557 void asm_CPU_ExceptionHandler19(void);\r
558 void asm_CPU_ExceptionHandler1a(void);\r
559 void asm_CPU_ExceptionHandler1b(void);\r
560 void asm_CPU_ExceptionHandler1c(void);\r
561 void asm_CPU_ExceptionHandler1d(void);\r
562 void asm_CPU_ExceptionHandler1e(void);\r
563 void asm_CPU_ExceptionHandler1f(void);\r
564 //\r
565 void asm_InterruptHandler20(void);\r
566 void asm_InterruptHandler21(void);\r
567 void asm_InterruptHandler27(void);\r
568 void asm_InterruptHandler2c(void);\r
569 \r
570 /*nasfunc2.nas 16bit\83R\81[\83h*/\r
571 void asm_16bit_CallBIOSTask(void);\r