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
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
15 /*callbios.c 32bit
\82©
\82çBIOS
\82ð
\83R
\81[
\83\8b\82·
\82é
\82½
\82ß
\82Ì
\8aÖ
\90\94\8cQ*/
\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
24 /*cfunc.c vsnprintf
\82Ì
\93Æ
\8e©
\8eÀ
\91\95\93\99*/
\r
25 void srand(uint seed);
\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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
565 void asm_InterruptHandler20(void);
\r
566 void asm_InterruptHandler21(void);
\r
567 void asm_InterruptHandler27(void);
\r
568 void asm_InterruptHandler2c(void);
\r
570 /*nasfunc2.nas 16bit
\83R
\81[
\83h*/
\r
571 void asm_16bit_CallBIOSTask(void);
\r