OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / core.h
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/core.h b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/core.h
deleted file mode 100644 (file)
index 3c7bfd5..0000000
+++ /dev/null
@@ -1,813 +0,0 @@
-\r
-/*include files*/\r
-#include <stdio.h>\r
-#include <stdarg.h>\r
-#include <math.h>\r
-#include <string.h>\r
-\r
-int rand(void);\r
-#define srand(seed)                    (void) (rand_seed = (seed))\r
-extern unsigned int rand_seed;\r
-\r
-/*definemacros*/\r
-#define RGB16(r,g,b) ((r)<<11|(g)<<5|(b))\r
-\r
-/*settings*/\r
-#define system (*sys_main_str_buf)\r
-\r
-#define ADR_BOOTINFO   0x00000ff0\r
-#define ADR_VESAINFO   0x00000e00\r
-#define ADR_DISKIMG    0x00100000\r
-\r
-#define EFLAGS_AC_BIT  0x00040000\r
-\r
-#define CR0_PROTECTIONENABLE   0x00000001\r
-#define CR0_MONITORCOPROCESSOR 0x00000002\r
-#define CR0_EMULATION          0x00000004\r
-#define CR0_TASKSWITCH         0x00000008\r
-#define CR0_EXTENDEDTYPE       0x00000010\r
-#define CR0_NUMERICERROR       0x00000020\r
-#define CR0_WRITEPROTECT       0x00010000\r
-#define CR0_ALIGNMENTMASK      0x00040000\r
-#define CR0_NOTWRITETHROUGH    0x20000000\r
-#define CR0_CACHE_DISABLE      0x40000000\r
-#define CR0_PAGING             0x80000000\r
-\r
-#define CR0_ALL_CACHE_DISABLE  CR0_NOTWRITETHROUGH + CR0_CACHE_DISABLE\r
-\r
-#define PG_NOTPRESENT  0x00000000\r
-#define PG_PRESENT     0x00000001\r
-#define PG_READONLY    0x00000000\r
-#define PG_WRITABLE    0x00000002\r
-#define PG_SUPERVISOR  0x00000000\r
-#define PG_USER                0x00000004\r
-#define PG_WRITEBACK   0x00000000\r
-#define PG_WRITETHROUGH        0x00000008\r
-#define PG_CACHE_ENABLE        0x00000000\r
-#define PG_CACHE_DISABLE       0x00000010\r
-#define PG_NOTACCESSED 0x00000000\r
-#define PG_ACCESSED    0x00000020\r
-#define PG_NOTWRITTEN  0x00000000\r
-#define PG_WRITTEN     0x00000040\r
-#define PG_4KBPAGE     0x00000000\r
-#define PG_4MBPAGE     0x00000080\r
-#define PG_NOTGLOBAL   0x00000000\r
-#define        PG_GLOBAL       0x00000100\r
-\r
-#define ADR_IDT                0x0026f800\r
-#define LIMIT_IDT      0x000007ff\r
-#define ADR_GDT                0x00270000\r
-#define LIMIT_GDT      0x0000ffff\r
-#define ADR_BOTPAK     0x00280000\r
-#define LIMIT_BOTPAK   0x0007ffff\r
-#define AR_DATA32_RW   0x4092\r
-#define AR_CODE32_ER   0x409a\r
-#define AR_LDT         0x0082\r
-#define AR_TSS32       0x0089\r
-#define AR_INTGATE32   0x008e\r
-#define AR_APP         0x60\r
-\r
-#define COL8_000000            0\r
-#define COL8_FF0000            1\r
-#define COL8_00FF00            2\r
-#define COL8_FFFF00            3\r
-#define COL8_0000FF            4\r
-#define COL8_FF00FF            5\r
-#define COL8_00FFFF            6\r
-#define COL8_FFFFFF            7\r
-#define COL8_C6C6C6            8\r
-#define COL8_840000            9\r
-#define COL8_008400            10\r
-#define COL8_848400            11\r
-#define COL8_000084            12\r
-#define COL8_840084            13\r
-#define COL8_008484            14\r
-#define COL8_848484            15\r
-\r
-#define INV_COL32      0xFFFFFFFF\r
-#define INV_COL16      0x1192\r
-#define INV_COL8       0xFF\r
-\r
-#define DESKTOP_COL8   COL8_C6C6C6\r
-#define TASKBAR_COL8   COL8_0000FF\r
-\r
-#define DESKTOP_COL16  RGB16(17,33,17)         /*\8f\89\8aú\92l\81F10,20,10*/\r
-#define TASKBAR_COL16  RGB16(20,40,30)         /*\8f\89\8aú\92l\81F20,40,30*/\r
-\r
-#define DESKTOP_COL32  0x34FF1E\r
-#define TASKBAR_COL32  0x5EC1E8\r
-\r
-#define TASKBAR_HEIGHT 40\r
-\r
-#define MEMMAN_FREES   4000\r
-\r
-#define INV_COL32      0xFFFFFFFF\r
-#define INV_COL16      0x1192\r
-#define INV_COL8       0xFF\r
-\r
-#define MAX_SHEETS     1024\r
-\r
-#define PIC0_ICW1      0x0020\r
-#define PIC0_OCW2      0x0020\r
-#define PIC0_IMR       0x0021\r
-#define PIC0_ICW2      0x0021\r
-#define PIC0_ICW3      0x0021\r
-#define PIC0_ICW4      0x0021\r
-#define PIC1_ICW1      0x00a0\r
-#define PIC1_OCW2      0x00a0\r
-#define PIC1_IMR       0x00a1\r
-#define PIC1_ICW2      0x00a1\r
-#define PIC1_ICW3      0x00a1\r
-#define PIC1_ICW4      0x00a1\r
-\r
-#define MAX_TASKS      1000\r
-#define TASK_GDT_START 3\r
-#define MAX_LEVEL_TASKS        100\r
-#define MAX_LEVELS     10\r
-\r
-#define MAX_TIMER      512\r
-\r
-#define FIFO32_PUT_OVERFLOW    0x0001\r
-\r
-#define SYS_FIFOSIZE   256\r
-#define KEYCMD_FIFOSIZE        128\r
-#define KEYCTRL_FIFOSIZE       128\r
-#define MOUSECTRL_FIFOSIZE     128\r
-\r
-#define PIT_CTRL       0x0043\r
-#define PIT_CNT0       0x0040\r
-\r
-#define KEYB_DATA      0x0060\r
-#define PORT_KEYSTA    0x0064\r
-#define KEYSTA_SEND_NOTREADY   0x02\r
-#define KEYCMD_WRITE_MODE      0x60\r
-#define KBC_MODE       0x47\r
-#define PORT_KEYCMD    0x0064\r
-#define KEYCMD_SENDTO_MOUSE    0xd4\r
-#define MOUSECMD_ENABLE        0xf4\r
-#define KEYCMD_LED     0xed\r
-\r
-#define MAX_WINDOWS    256\r
-#define WIN_COL8_ACTIVE                0x000084\r
-#define WIN_COL8_INACTIVE      0x848484\r
-#define WIN_COL16_ACTIVE       0x60F8f0\r
-#define WIN_COL16_INACTIVE     0xBCFCF8\r
-#define WIN_COL32_ACTIVE       0x93D9FF\r
-#define WIN_COL32_INACTIVE     0xD0EFFF\r
-\r
-#define CONSOLE_FIFO_BUF_SIZE  128\r
-#define CONSOLE_FIFO_START_KEYB        128\r
-#define CONSOLE_FIFO_CURSOR_START      2\r
-#define CONSOLE_FIFO_CURSOR_STOP       3\r
-#define CONSOLE_COLOR_BACKGROUND       0x000000\r
-#define CONSOLE_COLOR_CHAR     0xFFFFFF\r
-#define CONSOLE_CMDLINE_BUF_SIZE       128\r
-#define MAX_CONSOLES   16\r
-\r
-#define DATA_BYTE      0xFF\r
-#define DATA_WORD      0xFFFF\r
-#define DATA_DWORD     0xFFFFFFFF\r
-\r
-/*new object types*/\r
-typedef enum _bool { false, true} bool;\r
-typedef enum _state_alloc { none, initialized, allocated, configured, inuse} state_alloc;\r
-typedef enum _col_text { black, blue, green, skyblue, red, purple, brown, white} col_text;\r
-typedef unsigned char uchar;\r
-typedef unsigned short ushort;\r
-typedef unsigned int uint;\r
-\r
-/*structures*/\r
-struct BOOTINFO { \r
-       uchar cyls; \r
-       uchar leds; \r
-       uchar vmode; \r
-       uchar reserve;\r
-       ushort scrnx, scrny;\r
-       uchar *vram;\r
-};\r
-\r
-struct VESAINFO {/*0xe00--->512byte*/\r
-       ushort  ModeAttributes;\r
-       uchar   WinAAttributes;\r
-       uchar   WinBAttributes;\r
-       ushort  WinGranularity;\r
-       ushort  WinSize;\r
-       ushort  WinASegment;\r
-       ushort  WinBSegment;\r
-       uint    WinFuncPtr;\r
-       ushort  BytesPerScanLine;\r
-       ushort  XResolution;\r
-       ushort  YResolution;\r
-       uchar   XCharSize;\r
-       uchar   YCharSize;\r
-       uchar   NumberOfPlanes;\r
-       uchar   BitsPerPixel;\r
-       uchar   NumberOfBanks;\r
-       uchar   MemoryModel;\r
-       uchar   BankSize;\r
-       uchar   NumberOfImagePages;\r
-       uchar   Reserved;\r
-       uchar   RedMaskSize;\r
-       uchar   RedFieldPosition;\r
-       uchar   GreenMaskSize;\r
-       uchar   GreenFieldPosition;\r
-       uchar   BlueMaskSize;\r
-       uchar   BlueFieldPosition;\r
-       uchar   RsvdMaskSize;\r
-       uchar   RsvdFieldPodition;\r
-       uchar   DirectColorModeInfo;\r
-       uint*   PhysBasePtr;\r
-};\r
-\r
-struct SEGMENT_DESCRIPTOR { \r
-       short limit_low,base_low;\r
-       char base_mid,access_right;\r
-       char limit_high,base_high;\r
-};\r
-\r
-struct GATE_DESCRIPTOR { \r
-       short offset_low,selector;\r
-       char dw_count,access_right;\r
-       short offset_high;\r
-};\r
-\r
-struct MEMMAN {\r
-       int frees,maxfrees,lostsize,losts;\r
-       struct MEM_FREEINFO {\r
-               uint addr, size;\r
-       } free[MEMMAN_FREES];\r
-};\r
-\r
-struct SHEET {\r
-       void *buf;\r
-       uint col_inv;\r
-       int bxsize, bysize, vx0, vy0, height;\r
-       state_alloc flags; \r
-};\r
-\r
-struct SHTCTL {\r
-       uint *map;\r
-       void *vram;\r
-       int xsize, ysize, top;\r
-       struct SHEET *sheets[MAX_SHEETS];\r
-       struct SHEET sheets0[MAX_SHEETS];\r
-};\r
-\r
-struct TSS32 {\r
-       int backlink, esp0, ss0, esp1, ss1, esp2, ss2, cr3;\r
-       int eip, eflags, eax, ecx, edx, ebx, esp, ebp, esi, edi;\r
-       int es, cs, ss, ds, fs, gs;\r
-       int ldtr, iomap;\r
-};\r
-\r
-struct FIFO32 {\r
-       uint *buf;\r
-       uint p, q, size, free, flags;\r
-       struct TASK *task;\r
-};\r
-\r
-struct TASK {\r
-       int selector;\r
-       state_alloc flags;\r
-       int level, priority;\r
-       struct FIFO32 fifo;\r
-       struct TSS32 tss;\r
-};\r
-\r
-struct TASKCTL {\r
-       int level_now;\r
-       bool change_lv_next;\r
-       struct TASKLEVEL {\r
-               int running_tasks;\r
-               int task_now;\r
-               struct TASK *tasks[MAX_LEVEL_TASKS];\r
-       } level[MAX_LEVELS];\r
-       struct TASK tasks0[MAX_TASKS];\r
-};\r
-\r
-struct TIMER {\r
-       struct TIMER *next_timer;\r
-       uint timeout;\r
-       struct FIFO32 *fifo;\r
-       uint data;\r
-       state_alloc flags;\r
-};\r
-\r
-struct TIMERCTL {\r
-       uint count, next_count;\r
-       struct TIMER timer[MAX_TIMER];\r
-       struct TIMER *timers;\r
-};\r
-\r
-struct KEYINFO {\r
-       uchar c;\r
-       uint keycode;\r
-       bool make;\r
-       bool alphabet;\r
-};\r
-\r
-struct MOUSE_DECODE {\r
-       uint buf[4], scrool;\r
-       int x, y, btn, whinfo;\r
-       uchar phase; \r
-};\r
-\r
-struct POSITION_2D {\r
-       int x, y;\r
-};\r
-\r
-struct WINDOWINFO {\r
-       char title[32];\r
-       struct SHEET *win;\r
-       void *buf;\r
-       int winxsize, winysize, xsize, ysize;\r
-       struct POSITION_2D position;\r
-       struct POSITION_2D origin;\r
-       state_alloc flags;\r
-       bool active;\r
-       void *app_buf;\r
-       uchar app_buf_bits;\r
-       struct TASK *task;\r
-};\r
-\r
-struct WINCTL {\r
-       struct WINDOWINFO winfos[MAX_WINDOWS];\r
-};\r
-\r
-struct FILEINFO {\r
-       uchar name[8];\r
-       uchar ext[3];\r
-       uchar type;\r
-       uchar reserve;\r
-       uchar VFAT_createTimeMs;\r
-       ushort VFAT_createTime;\r
-       ushort VFAT_createDate;\r
-       ushort VFAT_accessDate;\r
-       ushort VFAT_clusterHighWord;\r
-       ushort time;\r
-       ushort date;\r
-       ushort clustno;\r
-       uint size;\r
-};\r
-\r
-struct SYS_UI_CONSOLES {\r
-       struct TASK *task;\r
-       struct WINDOWINFO *win;\r
-       struct POSITION_2D prompt;\r
-       struct POSITION_2D cursor;\r
-       uchar *app_cs_base;\r
-       uchar *app_ds_base;\r
-       struct TIMER *timer;\r
-       bool cursor_state;\r
-       bool cursor_on;\r
-       uint cursor_c;\r
-};\r
-\r
-struct _UUID {\r
-       uchar data[16];\r
-};\r
-\r
-struct FORMAT_HRB {\r
-       uint DataSegmentSize;\r
-       uchar sign[4];\r
-       uint DataSegmentExtSize;\r
-       uint DefaultESP;\r
-       uint TransferToDataSegBytes;\r
-       uint OriginDataSection;\r
-       uint JMPCode;\r
-       uint EntryPoint;\r
-       uint StartMallocAddr;\r
-};\r
-\r
-/*typedef structures*/\r
-typedef struct BOOTINFO                        DATA_BootInfo;\r
-typedef struct VESAINFO                        DATA_VESAInfo;\r
-typedef struct SEGMENT_DESCRIPTOR      IO_SegmentDescriptor;\r
-typedef struct GATE_DESCRIPTOR         IO_GateDescriptor;\r
-typedef struct MEMMAN                  IO_MemoryControl;\r
-typedef struct SHEET                   UI_Sheet;\r
-typedef struct SHTCTL                  UI_SheetControl;\r
-typedef struct FIFO32                  DATA_FIFO;\r
-typedef struct TSS32                   IO_TaskStatusSegment32;\r
-typedef struct TASK                    UI_Task;\r
-typedef struct TASKCTL                 UI_TaskControl;\r
-typedef struct TIMER                   UI_Timer;\r
-typedef struct TIMERCTL                        UI_TimerControl;\r
-typedef struct KEYINFO                 UI_KeyInfo;\r
-typedef struct MOUSE_DECODE            UI_Mouse;\r
-typedef struct POSITION_2D             DATA_Position2D;\r
-typedef struct WINDOWINFO              UI_Window;\r
-typedef struct WINCTL                  UI_WindowControl;\r
-typedef struct FILEINFO                        IO_FileInfo;\r
-typedef struct SYS_UI_CONSOLES         UI_Console;\r
-typedef struct _UUID                   UUID;\r
-typedef struct FORMAT_HRB              FORMAT_Haribote;\r
-\r
-/*virtual classes*/\r
-struct SYSTEM {\r
-       struct SYS_IO {\r
-               struct SYS_IO_MEM {\r
-                       struct SYS_IO_MEM_PAGING {\r
-                               uint *dir;\r
-                               uint (*table)[1024];\r
-                       } paging;\r
-                       struct SYS_IO_MEM_SEGMENT {\r
-                               IO_SegmentDescriptor *gdt;\r
-                       } segment;\r
-                       uint total;\r
-                       IO_MemoryControl ctrl;\r
-               } mem;\r
-               struct SYS_IO_INTERRUPT {\r
-                       IO_GateDescriptor *idt;\r
-               } interrupt;\r
-               struct SYS_IO_KEYBOARD {\r
-                       int cmd_wait;\r
-               } keyboard;\r
-               struct SYS_IO_MOUSE {\r
-                       UI_Mouse decode;\r
-               } mouse;\r
-               struct SYS_IO_FILE {\r
-                       IO_FileInfo *list;\r
-                       ushort *fat;\r
-               } file;\r
-       } io;\r
-       struct SYS_UI {\r
-               struct SYS_UI_DRAW {\r
-                       struct SYS_UI_DRAW_SHT {\r
-                               UI_SheetControl ctrl;\r
-                               UI_Sheet *core;\r
-                               UI_Sheet *desktop;\r
-                               UI_Sheet *taskbar;\r
-                               UI_Sheet *mouse;\r
-                               void *core_buf;\r
-                               void *desktop_buf;\r
-                               void *taskbar_buf;\r
-                               void *mouse_buf;\r
-                       } sht;\r
-               } draw;\r
-               struct SYS_UI_TASK {\r
-                       UI_Task *idle;\r
-                       UI_Task *main;\r
-                       UI_Task *keyctrl;\r
-                       UI_Task *mousectrl;\r
-               } task;\r
-               struct SYS_UI_TIMER {\r
-                       UI_Timer *taskswitch;\r
-                       UI_TimerControl ctrl;\r
-               } timer;\r
-               struct SYS_UI_CONSOLE {\r
-                       int org_xsize;\r
-                       int org_ysize;\r
-                       int org_xchars;\r
-                       int org_ychars;\r
-                       UI_Console consoles[MAX_CONSOLES];\r
-               } console;\r
-               struct SYS_UI_WINDOW {\r
-                       UI_WindowControl ctrl;\r
-               } window;\r
-       } ui;\r
-       struct SYS_DATA {\r
-               struct SYS_DATA_INFO {\r
-                       DATA_BootInfo boot;\r
-                       DATA_VESAInfo vesa;\r
-               } info;\r
-               struct SYS_DATA_FIFO {\r
-                       DATA_FIFO main;\r
-                       uint main_buf[SYS_FIFOSIZE];\r
-                       DATA_FIFO keycmd;\r
-                       uint keycmd_buf[KEYCMD_FIFOSIZE];\r
-                       DATA_FIFO keyctrl;\r
-                       uint keyctrl_buf[MOUSECTRL_FIFOSIZE];\r
-                       DATA_FIFO mousectrl;\r
-                       uint mousectrl_buf[MOUSECTRL_FIFOSIZE];\r
-               } fifo;\r
-       } data;\r
-};\r
-\r
-/*externs*/\r
-extern struct SYSTEM *sys_main_str_buf;\r
-extern uchar hankaku[4096];\r
-extern char cursor[24][24];\r
-extern uint rgb_int2char_list[16];\r
-extern uint key_shift;\r
-\r
-/*functions*/\r
-/*bootpack.c*/\r
-void KeyBoardControlTask(void);\r
-void MouseControlTask(void);\r
-\r
-/*api.c*/\r
-uint hrb_api(uint edi, uint esi, uint ebp, uint esp, uint ebx, uint edx, uint ecx, uint eax);\r
-uint GetWindowNumber(UI_Window *win);\r
-UI_Window *GetWindowInfo(uint n);\r
-\r
-/*uuid.c*/\r
-void gen_UUID(UUID *uuid);\r
-\r
-/*file.c*/\r
-void decode_fat(ushort *fat, bool backup);\r
-void load_file(uint finfo_no, uchar *buf);\r
-uint search_file(char *name);\r
-\r
-/*console.c*/\r
-void console_main(UI_Console *cons);\r
-void cons_reset_cmdline(uchar *cmdline, uint *cmdlines, bool *cmdline_overflow);\r
-void cons_command_start(UI_Console *cons, uchar *cmdline, uint *cmdlines, bool *cmdline_overflow);\r
-void cons_command_mem(UI_Console *cons);\r
-void cons_command_dir(UI_Console *cons);\r
-void cons_command_fdc(UI_Console *cons, uchar *cmdline);\r
-void cons_command_type(UI_Console *cons, uchar *cmdline);\r
-void cons_command_cpuid(UI_Console *cons, uchar *cmdline);\r
-void cons_command_systeminfo(UI_Console *cons, uchar *cmdline);\r
-uint cons_app_hrb_start(UI_Console *cons, uchar *cmdline);\r
-void cons_put_str(UI_Console *cons, uchar *str);\r
-void cons_put_char(UI_Console *cons, uchar c);\r
-void cons_put_prompt(UI_Console *cons);\r
-void cons_new_line(UI_Console *cons);\r
-void cons_new_line_no_prompt(UI_Console *cons);\r
-void cons_slide_line(UI_Console *cons);\r
-void cons_check_newline(UI_Console *cons);\r
-\r
-/*window.c*/\r
-void init_windows(void);\r
-UI_Window *window_alloc(void);\r
-void window_free(UI_Window *winfo);\r
-UI_Window *make_window(uchar *title, int xsize, int ysize, int px, int py, int height, bool active);\r
-UI_Window *make_window_app(uchar *title, int xsize, int ysize, int px, int py, int height, bool active, uint *buf, UI_Task *task);\r
-UI_Window *make_window_app_compatible_hrb(uchar *title, int xsize, int ysize, int px, int py, int height, bool active, uint *buf, UI_Task *task);\r
-void free_window_app(UI_Window *winfo);\r
-void change_window(UI_Window *winfo, uchar *title, bool active);\r
-void change_window_title(UI_Window *winfo, uchar *title);\r
-void change_window_active(UI_Window *winfo, bool active);\r
-void slide_window(UI_Window *winfo, int px, int py);\r
-void refresh_window(UI_Window *winfo);\r
-void refresh_window_alpha(UI_Window *winfo);\r
-void boxfill_win(UI_Window *winfo, uint c, int x0, int y0, int x1, int y1);\r
-void point_win(UI_Window *winfo, uint c, int x, int y);\r
-void putfonts_win(UI_Window *winfo, int x, int y, uint c, uint bc, const uchar *s);\r
-void putfonts_win_no_bc(UI_Window *winfo, int x, int y, uint c, const uchar *s);\r
-void scrool_win(UI_Window *winfo);\r
-void scrool_win_32(UI_Window *winfo, uint *vram);\r
-void scrool_win_16(UI_Window *winfo, ushort *vram);\r
-void scrool_win_8(UI_Window *winfo, uchar *vram);\r
-void line_win(UI_Window *winfo, int x0, int y0, int x1, int y1, uint c);\r
-void draw_hexagon_win(UI_Window *winfo, int a, int x, int y, uint c);\r
-\r
-\r
-/*mouse.c*/\r
-void init_mouse(uint offset);\r
-void inthandler2c(int *esp);\r
-int decode_mouse(uint data);\r
-void sendto_mouse(uint data);\r
-\r
-/*keyboard.c*/\r
-void init_keyboard(uint offset);\r
-void inthandler21(int *esp);\r
-void decode_key(UI_KeyInfo *info, uint data);\r
-void keylock(uint led);\r
-void wait_KBC_sendready(void);\r
-\r
-/*fifo.c*/\r
-void fifo32_init(DATA_FIFO *fifo, uint size, uint *buf, UI_Task *task);\r
-int fifo32_put(DATA_FIFO *fifo, uint data);\r
-uint fifo32_get(DATA_FIFO *fifo);\r
-uint fifo32_status(DATA_FIFO *fifo);\r
-\r
-/*mtask.c*/\r
-void task_init(void);\r
-UI_Task *task_alloc(void);\r
-void task_run(UI_Task *task, int level, int priority);\r
-void task_switch(void);\r
-void task_sleep(UI_Task *task);\r
-void task_arguments(UI_Task *task, int args, ...);\r
-UI_Task *task_now(void);\r
-void task_add(UI_Task *task);\r
-void task_remove(UI_Task *task);\r
-void task_switchsub(void);\r
-void task_idle(void);\r
-\r
-/*timer.c*/\r
-void inthandler20(int *esp);\r
-void init_pit(void);\r
-UI_Timer *timer_alloc(void);\r
-void timer_free(UI_Timer *timer);\r
-void timer_init(UI_Timer *timer, DATA_FIFO *fifo, uint data);\r
-void timer_settime(UI_Timer *timer, uint timeout);\r
-void timer_settime_millisec(UI_Timer *timer, uint timeout_ms);\r
-\r
-/*gdtidt.c*/\r
-void init_gdtidt(void);\r
-void set_segmdesc(IO_SegmentDescriptor *sd, uint limit, int base, int ar);\r
-void set_gatedesc(IO_GateDescriptor *gd, int offset, int selector, int ar);\r
-\r
-/*graphic.c grap_08.c grap_16.c grap_32.c*/\r
-/*All*/\r
-void init_screen_i(void *desktop, void *taskbar, void *mousecursor);\r
-void init_desktop_i(void *vrami);\r
-void init_taskbar_i(void *vrami);\r
-void init_mousecursor_i(void *vrami);\r
-uint mix_color(uint c0, uint c1);\r
-void point_i(void *vrami, int x, int y, uint c, int xsize);\r
-void point_bpp(void *vrami, int x, int y, uint c, int xsize, uint bpp);\r
-void boxfill_i(void *vrami, int xsize, uint c, int x0, int y0, int x1, int y1);\r
-void boxfill_bpp(void *vrami, int xsize, uint c, int x0, int y0, int x1, int y1, uint bpp);\r
-void putfonts_asc_i(void *vrami, int xsize, int x, int y, uint c, const uchar *s);\r
-void putblock_i(void *vrami, int vxsize, int pxsize, int pysize, int px0, int py0, void *buf, int bxsize);\r
-void putblock_i_convert(void *to, int xsize, int px0, int py0, int px1, int py1, void *from, int tobpp, int frombpp);\r
-void line_i(void *vrami, int xsize, int x0, int y0, int x1, int y1, uint c);\r
-void line_bpp(void *vrami, int xsize, int x0, int y0, int x1, int y1, uint c, uint bpp);\r
-void draw_hexagon_i(void *vrami, int xsize, int a, int x, int y, uint c);\r
-void draw_chnos_logo(void *vrami, int xsize, int a, int x, int y);\r
-uchar rgb_int2char (uint c32);\r
-ushort rgb_int2short (uint c32);\r
-void col_pat(void *vrami, int xsize, int ysize);\r
-void putfonts_asc_sht_i(UI_Sheet *sht, int x, int y, uint c, uint bc, const uchar *s);\r
-void putfonts_asc_sht_i_no_bc(UI_Sheet *sht, int x, int y, uint c, const uchar *s);\r
-\r
-/*08Bits*/\r
-void boxfill8(uchar *vram, int xsize, uchar c, int x0, int y0, int x1, int y1);\r
-void init_desktop8(uchar *vram, uint xsize, uint ysize);\r
-void init_taskbar8(uchar *vram, uint xsize);\r
-void putfont8(uchar *vram, int xsize, int x, int y, uchar c, uchar *font);\r
-void putfonts8_asc(uchar *vram, int xsize, int x, int y, uchar c, const uchar *s);\r
-void init_mouse_cursor8(uchar *mouse);\r
-void putblock8_8(uchar *vram, int vxsize, int pxsize,int pysize, int px0, int py0, uchar *buf, int bxsize);\r
-void init_palette(void);\r
-void set_palette(int start, int end, uchar *rgb);\r
-/*16Bits*/\r
-void boxfill16(ushort *vram, int xsize, ushort c, int x0, int y0, int x1, int y1);\r
-void init_desktop16(ushort *vram, uint xsize, uint ysize);\r
-void init_taskbar16(ushort *vram, uint xsize);\r
-void putfont16(ushort *vram, int xsize, int x, int y, ushort c, uchar *font);\r
-void putfonts16_asc(ushort *vram, int xsize, int x, int y, ushort c, const uchar *s);\r
-void init_mouse_cursor16(ushort *mouse);\r
-void putblock16_16(ushort *vram, int vxsize, int pxsize,int pysize, int px0, int py0, ushort *buf, int bxsize);\r
-/*32Bits*/\r
-void boxfill32(uint *vram, int xsize, uint c, int x0, int y0, int x1, int y1);\r
-void init_desktop32(uint *vram, uint xsize, uint ysize);\r
-void init_taskbar32(uint *vram, uint xsize);\r
-void putfont32(uint *vram, int xsize, int x, int y, uint c, uchar *font);\r
-void putfonts32_asc(uint *vram, int xsize, int x, int y, uint c, const uchar *s);\r
-void init_mouse_cursor32(uint *mouse);\r
-void putblock32_32(uint *vram, int vxsize, int pxsize,int pysize, int px0, int py0, uint *buf, int bxsize);\r
-\r
-/*init.c*/\r
-void init_system(void);\r
-\r
-/*intrpt.c*/\r
-void init_pic(void);\r
-void inthandler27(int *esp);\r
-void cpu_exception_abort(int exception, int *esp);\r
-uint cpu_exception_fault(int exception, int *esp);\r
-void inthandler00(int *esp);\r
-void inthandler01(int *esp);\r
-void inthandler02(int *esp);\r
-void inthandler03(int *esp);\r
-void inthandler04(int *esp);\r
-void inthandler05(int *esp);\r
-void inthandler06(int *esp);\r
-void inthandler07(int *esp);\r
-void inthandler08(int *esp);\r
-void inthandler09(int *esp);\r
-void inthandler0a(int *esp);\r
-void inthandler0b(int *esp);\r
-void inthandler0c(int *esp);\r
-void inthandler0d(int *esp);\r
-void inthandler0e(int *esp);\r
-void inthandler0f(int *esp);\r
-void inthandler11(int *esp);\r
-void inthandler12(int *esp);\r
-void inthandler13(int *esp);\r
-void inthandler14(int *esp);\r
-void inthandler15(int *esp);\r
-void inthandler16(int *esp);\r
-void inthandler17(int *esp);\r
-void inthandler18(int *esp);\r
-void inthandler19(int *esp);\r
-void inthandler1a(int *esp);\r
-void inthandler1b(int *esp);\r
-void inthandler1c(int *esp);\r
-void inthandler1d(int *esp);\r
-void inthandler1e(int *esp);\r
-void inthandler1f(int *esp);\r
-\r
-/*io.c*/\r
-void init_serial(void);\r
-void send_serial(uchar *s);\r
-uint readcmos(uchar addr);\r
-void readrtc(uchar *t);\r
-void fdc_motor_on(uchar d);\r
-void fdc_motor_off(uchar d);\r
-void reset_cpu(void);\r
-\r
-/*memory.c*/\r
-uint memtest(uint start, uint end);\r
-void memman_init(IO_MemoryControl *man);\r
-uint memman_free_total(IO_MemoryControl *man);\r
-void *memman_alloc(IO_MemoryControl *man, uint size);\r
-int memman_free(IO_MemoryControl *man, void *addr0, uint size);\r
-void *memman_alloc_page(IO_MemoryControl *man);\r
-void sys_memman_init(void);\r
-uint sys_memman_free_total(void);\r
-void *sys_memman_alloc(uint size);\r
-int sys_memman_free(void *addr, uint size);\r
-void *sys_memman_alloc_page(void);\r
-\r
-/*paging.c*/\r
-void init_paging(void);\r
-void paging_set_dir(uint *dir_entry, uint *table_base, uint attribute, uint available);\r
-void paging_set_table(uint *table_entry, uint *page_base, uint attribute, uint available);\r
-\r
-/*sheet.c*/\r
-void init_sheets(void *vram, int xsize, int ysize, uchar bits);\r
-UI_Sheet *sheet_alloc(void);\r
-void sheet_setbuf(UI_Sheet *sht, void *buf,int xsize, int ysize, uint col_inv);\r
-void sheet_updown(UI_Sheet *sht, int height);\r
-void sheet_refresh(UI_Sheet *sht, int bx0, int by0, int bx1, int by1);\r
-void sheet_refresh_full_alpha(UI_Sheet *sht);\r
-void sheet_refresh_full(UI_Sheet *sht);\r
-void sheet_slide(UI_Sheet *sht, int vx0, int vy0);\r
-void sheet_free(UI_Sheet *sht);\r
-void sheet_refreshsub32(int vx0, int vy0, int vx1, int vy1, int h0, int h1);\r
-void sheet_refreshsub16(int vx0, int vy0, int vx1, int vy1, int h0, int h1);\r
-void sheet_refreshsub8(int vx0, int vy0, int vx1, int vy1, int h0, int h1);\r
-void sheet_refreshmap32(int vx0, int vy0, int vx1, int vy1, int h0);\r
-void sheet_refreshmap16(int vx0, int vy0, int vx1, int vy1, int h0);\r
-void sheet_refreshmap8(int vx0, int vy0, int vx1, int vy1, int h0);\r
-int sheet_get_topheight(void);\r
-\r
-/* naskfunc.nas */\r
-void cpuid(void *addr, uint idaddr);\r
-void read_tsc(uint *addr);\r
-void pipelineflush(void);\r
-void pit_beep_on(void);\r
-void pit_beep_off(void);\r
-void clts(void);\r
-void fnsave(uint *addr);\r
-void frstore(uint *addr);\r
-void asm_inthandler07(void);\r
-void io_hlt(void);\r
-void io_cli(void);\r
-void io_sti(void);\r
-void io_stihlt(void);\r
-uint io_in8(uint port);\r
-uint io_in16(uint port);\r
-uint io_in32(uint port);\r
-void io_out8(uint port, uint data);\r
-void io_out16(uint port, uint data);\r
-void io_out32(uint port, uint data);\r
-uint io_load_eflags(void);\r
-void io_store_eflags(uint eflags);\r
-void load_gdtr(uint limit, uint addr);\r
-void load_idtr(uint limit, uint addr);\r
-uint load_cr0(void);\r
-void store_cr0(uint cr0);\r
-uint load_cr1(void);\r
-void store_cr1(uint cr1);\r
-uint load_cr2(void);\r
-void store_cr2(uint cr2);\r
-uint load_cr3(void);\r
-void store_cr3(uint cr3);\r
-void load_tr(uint tr);\r
-uint memtest_sub(uint start, uint end);\r
-void farjmp(uint eip, uint cs);\r
-void farcall(uint eip, uint cs);\r
-void start_app(int eip, int cs, int esp, int ds, int *tss_esp0);\r
-void asm_end_app(void);\r
-void asm_hrb_api(void);\r
-void asm_inthandler00(void);\r
-void asm_inthandler01(void);\r
-void asm_inthandler02(void);\r
-void asm_inthandler03(void);\r
-void asm_inthandler04(void);\r
-void asm_inthandler05(void);\r
-void asm_inthandler06(void);\r
-void asm_inthandler07(void);\r
-void asm_inthandler08(void);\r
-void asm_inthandler09(void);\r
-void asm_inthandler0a(void);\r
-void asm_inthandler0b(void);\r
-void asm_inthandler0c(void);\r
-void asm_inthandler0d(void);\r
-void asm_inthandler0e(void);\r
-void asm_inthandler0f(void);\r
-void asm_inthandler10(void);\r
-void asm_inthandler11(void);\r
-void asm_inthandler12(void);\r
-void asm_inthandler13(void);\r
-void asm_inthandler14(void);\r
-void asm_inthandler15(void);\r
-void asm_inthandler16(void);\r
-void asm_inthandler17(void);\r
-void asm_inthandler18(void);\r
-void asm_inthandler19(void);\r
-void asm_inthandler1a(void);\r
-void asm_inthandler1b(void);\r
-void asm_inthandler1c(void);\r
-void asm_inthandler1d(void);\r
-void asm_inthandler1e(void);\r
-void asm_inthandler1f(void);\r
-void asm_inthandler20(void);\r
-void asm_inthandler21(void);\r
-void asm_inthandler27(void);\r
-void asm_inthandler2c(void);\r