From 7e141ac4d88bd26996e8cf502fd28c8d1e33bb51 Mon Sep 17 00:00:00 2001 From: "Sergey Semyonov (Serge)" Date: Thu, 22 Sep 2011 12:21:49 +0000 Subject: [PATCH] acpi: bugfixes git-svn-id: svn://kolibrios.org@2229 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/Kolibri-acpi/core/apic.inc | 157 +---- kernel/branches/Kolibri-acpi/core/irq.inc | 24 + kernel/branches/Kolibri-acpi/kernel.asm | 21 +- kernel/branches/Kolibri-acpi/kernel32.inc | 632 ++++++++++----------- 4 files changed, 352 insertions(+), 482 deletions(-) diff --git a/kernel/branches/Kolibri-acpi/core/apic.inc b/kernel/branches/Kolibri-acpi/core/apic.inc index e4ab5486e5..e0b9b6d904 100644 --- a/kernel/branches/Kolibri-acpi/core/apic.inc +++ b/kernel/branches/Kolibri-acpi/core/apic.inc @@ -5,7 +5,6 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -IRQ_RESERVED = 24 ; 16 or 24 iglobal IRQ_COUNT dd 24 @@ -54,9 +53,11 @@ APIC_init: stdcall load_file, dev_data_path test eax, eax - mov [acpi_dev_data], eax jz .no_apic + mov [acpi_dev_data], eax + mov [acpi_dev_size], ebx + call IRQ_mask_all ; IOAPIC init @@ -112,28 +113,9 @@ APIC_init: mov al, 1 out 0x23, al + call pci_irq_fixup .no_apic: -;init handlers table - - mov ecx, IRQ_RESERVED - mov edi, irqh_tab -@@: - mov eax, edi - stosd - stosd - loop @B - - mov ecx, 47 - mov eax, irqh_pool+IRQH.sizeof - mov [next_irqh], irqh_pool -@@: - mov [eax-IRQH.sizeof], eax - add eax, IRQH.sizeof - loop @B - - mov [eax-IRQH.sizeof], dword 0 - ret ;=========================================================== @@ -430,137 +412,6 @@ pci_irq_fixup: ret -; IRQ_TYPE_DISABLE equ 0 -; IRQ_TYPE_PIC equ 1 -; IRQ_TYPE_APIC equ 2 - -; uglobal -; irq_type_to_set rd 1 -; irq_types rd IRQ_RESERVE -; endg - -; ----------------------------------------- -; End Of Interrupt -; al - IRQ number -; align 16 -; IRQ_EOI: - ; movzx eax, al - ; cmp dword[irq_types + eax * 4], IRQ_TYPE_APIC - ; jne @f - ; mov eax, [LAPIC_BASE] - ; mov dword [eax + APIC_EOI], 0 ; EOI - ; ret -; @@: - ; cmp al, 8 - ; mov al, 0x20 - ; jb @f - ; out 0xa0, al -; @@: out 0x20, al - ; ret - -; align 4 -; proc enable_irq stdcall, irq_line:dword - ; cmp dword[irq_type_to_set], IRQ_TYPE_APIC - ; jne @f - ; stdcall APIC_enable_irq, [irq_line] - ; ret -; @@: stdcall PIC_enable_irq, [irq_line] - ; ret -; endp - -; align 4 -; proc disable_irq stdcall, irq_line:dword - ; push eax - ; mov eax, [irq_line] - ; cmp dword[irq_types + eax * 4], IRQ_TYPE_APIC - ; jne @f - ; stdcall APIC_disable_irq, eax - ; pop eax - ; ret -; @@: stdcall PIC_disable_irq, eax - ; pop eax - ; ret -; endp - -; align 4 -; proc PIC_enable_irq stdcall, irq_line:dword - ; pusha - ; mov ebx, [irq_line] - ; mov eax, [irq_types + ebx * 4] - ; cmp eax, IRQ_TYPE_DISABLE - ; je @f - ; cmp eax, IRQ_TYPE_PIC - ; je @f - ; stdcall disable_irq, ebx -; @@: mov dword[irq_types + ebx * 4], IRQ_TYPE_PIC - ; mov edx, 0x21 - ; cmp ebx, 8 - ; jb @F - ; mov edx, 0xA1 - ; sub ebx,8 -; @@: in al,dx - ; btr eax, ebx - ; out dx, al - ; popa - ; ret -; endp - -; align 4 -; proc PIC_disable_irq stdcall, irq_line:dword - ; pusha - ; mov ebx, [irq_line] - ; mov dword[irq_types + ebx * 4], IRQ_TYPE_DISABLE - ; mov edx, 0x21 - ; cmp ebx, 8 - ; jb @F - ; mov edx, 0xA1 - ; sub ebx,8 -; @@: in al,dx - ; bts eax, ebx - ; out dx, al - ; popa - ; ret -; endp - -; align 4 -; proc APIC_enable_irq stdcall, irq_line:dword - ; pusha - ; mov ebx, [irq_line] - ; mov eax, [irq_types + ebx * 4] - ; cmp eax, IRQ_TYPE_DISABLE - ; je @f - ; cmp eax, IRQ_TYPE_APIC - ; je @f - ; stdcall disable_irq, ebx -; @@: mov dword[irq_types + ebx * 4], IRQ_TYPE_APIC - ; shl ebx, 1 - ; add ebx, 0x10 - ; mov eax, ebx - ; call IOAPIC_read - ; and eax, 0xfffeffff ; bit 16 - ; xchg eax, ebx - ; call IOAPIC_write - ; popa - ; ret -; endp - -; align 4 -; proc APIC_disable_irq stdcall, irq_line:dword - ; pusha - ; mov ebx, [irq_line] - ; mov dword[irq_types + ebx * 4], IRQ_TYPE_DISABLE - ; shl ebx, 1 - ; add ebx, 0x10 - ; mov eax, ebx - ; call IOAPIC_read - ; or eax, 0x10000 - ; xchg eax, ebx - ; call IOAPIC_write - ; popa - ; ret -; endp - - diff --git a/kernel/branches/Kolibri-acpi/core/irq.inc b/kernel/branches/Kolibri-acpi/core/irq.inc index 6d1af88aa1..076ff66cdc 100644 --- a/kernel/branches/Kolibri-acpi/core/irq.inc +++ b/kernel/branches/Kolibri-acpi/core/irq.inc @@ -5,6 +5,7 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IRQ_RESERVED equ 24 IRQ_POOL_SIZE equ 48 @@ -21,6 +22,29 @@ irq_failed rd IRQ_RESERVED endg +align 4 +init_irqs: + + mov ecx, IRQ_RESERVED + mov edi, irqh_tab +@@: + mov eax, edi + stosd + stosd + loop @B + + mov ecx, IRQ_POOL_SIZE-1 + mov eax, irqh_pool+IRQH.sizeof + mov [next_irqh], irqh_pool +@@: + mov [eax-IRQH.sizeof], eax + add eax, IRQH.sizeof + loop @B + + mov [eax-IRQH.sizeof], dword 0 + ret + + align 4 proc attach_int_handler stdcall, irq:dword, handler:dword, user_data:dword locals diff --git a/kernel/branches/Kolibri-acpi/kernel.asm b/kernel/branches/Kolibri-acpi/kernel.asm index 95462d8c92..830b92b63d 100644 --- a/kernel/branches/Kolibri-acpi/kernel.asm +++ b/kernel/branches/Kolibri-acpi/kernel.asm @@ -226,7 +226,7 @@ B32: mov fs,ax mov gs,ax mov ss,ax - mov esp,0x5ec00 ; Set stack + mov esp,0x006CC00 ; Set stack ; CLEAR 0x280000 - HEAP_BASE @@ -236,13 +236,11 @@ B32: cld rep stosd - mov edi,0x40000 - mov ecx,(0x90000-0x40000)/4 - rep stosd - ; CLEAR KERNEL UNDEFINED GLOBALS mov edi, endofcode-OS_BASE - mov ecx, (uglobals_size/4)+4 + mov ecx, 0x90000 + sub ecx, edi + shr ecx, 2 rep stosd ; SAVE & CLEAR 0-0xffff @@ -604,7 +602,8 @@ high_code: ; REDIRECT ALL IRQ'S TO INT'S 0x20-0x2f - call PIC_init + call init_irqs + call PIC_init ; Initialize system V86 machine call init_sys_v86 @@ -615,8 +614,6 @@ high_code: ; Try to Initialize APIC call APIC_init - call pci_irq_fixup - ; Enable timer IRQ (IRQ0) and hard drives IRQs (IRQ14, IRQ15) ; they are used: when partitions are scanned, hd_read relies on timer call unmask_timer @@ -680,11 +677,9 @@ end if ; Display APIC status mov esi, boot_APIC_found cmp [irq_mode], IRQ_APIC - jne @f - + je @f mov esi, boot_APIC_nfound @@: - call boot_log ; PRINT AMOUNT OF MEMORY mov esi, boot_memdetect @@ -822,7 +817,7 @@ end if mov edx, 0xFFFFFF xor edi,edi mov eax, 0x00040000 - inc edi + inc edi call display_number_force ; SET VARIABLES diff --git a/kernel/branches/Kolibri-acpi/kernel32.inc b/kernel/branches/Kolibri-acpi/kernel32.inc index c6cc0b5d89..0a0300d454 100644 --- a/kernel/branches/Kolibri-acpi/kernel32.inc +++ b/kernel/branches/Kolibri-acpi/kernel32.inc @@ -1,316 +1,316 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; ;; -;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; -;; Distributed under terms of the GNU General Public License ;; -;; ;; -;; KERNEL32.INC ;; -;; ;; -;; Included 32 bit kernel files for MenuetOS ;; -;; ;; -;; This file is kept separate as it will be easier to ;; -;; maintain and compile with an automated SETUP program ;; -;; in the future. ;; -;; ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -$Revision$ - - -;struc db [a] { common . db a -; if ~used . -; display 'not used db: ',`.,13,10 -; end if } -;struc dw [a] { common . dw a -; if ~used . -; display 'not used dw: ',`.,13,10 -; end if } -;struc dd [a] { common . dd a -; if ~used . -; display 'not used dd: ',`.,13,10 -; end if } -;struc dp [a] { common . dp a -; if ~used . -; display 'not used dp: ',`.,13,10 -; end if } -;struc dq [a] { common . dq a -; if ~used . -; display 'not used dq: ',`.,13,10 -; end if } -;struc dt [a] { common . dt a -; if ~used . -; display 'not used dt: ',`.,13,10 -; end if } - -struc POINT { - .x dd ? - .y dd ? - .sizeof: -} -virtual at 0 - POINT POINT -end virtual - -struc RECT { - .left dd ? - .top dd ? - .right dd ? - .bottom dd ? - .sizeof: -} -virtual at 0 - RECT RECT -end virtual - -struc BOX { - .left dd ? - .top dd ? - .width dd ? - .height dd ? - .sizeof: -} -virtual at 0 - BOX BOX -end virtual - -struc DISPMODE { - .width rw 1 - .height rw 1 - .bpp rw 1 - .freq rw 1 -} - -; constants definition -WSTATE_NORMAL = 00000000b -WSTATE_MAXIMIZED = 00000001b -WSTATE_MINIMIZED = 00000010b -WSTATE_ROLLEDUP = 00000100b - -WSTATE_REDRAW = 00000001b -WSTATE_WNDDRAWN = 00000010b - -WSTYLE_HASCAPTION = 00010000b -WSTYLE_CLIENTRELATIVE = 00100000b - -struc TASKDATA -{ - .event_mask dd ? - .pid dd ? - dw ? - .state db ? - db ? - dw ? - .wnd_number db ? - db ? - .mem_start dd ? - .counter_sum dd ? - .counter_add dd ? - .cpu_usage dd ? -} -virtual at 0 - TASKDATA TASKDATA -end virtual - -TSTATE_RUNNING = 0 -TSTATE_RUN_SUSPENDED = 1 -TSTATE_WAIT_SUSPENDED = 2 -TSTATE_ZOMBIE = 3 -TSTATE_TERMINATING = 4 -TSTATE_WAITING = 5 -TSTATE_FREE = 9 - -; structures definition -struc WDATA { - .box BOX - .cl_workarea dd ? - .cl_titlebar dd ? - .cl_frames dd ? - .reserved db ? - .fl_wstate db ? - .fl_wdrawn db ? - .fl_redraw db ? - .sizeof: -} -virtual at 0 - WDATA WDATA -end virtual -label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3 - -struc APPDATA -{ - .app_name db 11 dup(?) - db 5 dup(?) - - .fpu_state dd ? ;+16 - .ev_count_ dd ? ;unused ;+20 - .exc_handler dd ? ;+24 - .except_mask dd ? ;+28 - .pl0_stack dd ? ;+32 - .heap_base dd ? ;+36 - .heap_top dd ? ;+40 - .cursor dd ? ;+44 - .fd_ev dd ? ;+48 - .bk_ev dd ? ;+52 - .fd_obj dd ? ;+56 - .bk_obj dd ? ;+60 - .saved_esp dd ? ;+64 - .io_map rd 2 ;+68 - .dbg_state dd ? ;+76 - .cur_dir dd ? ;+80 - .wait_timeout dd ? ;+84 - .saved_esp0 dd ? ;+88 - .wait_begin dd ? ;+92 +++ - .wait_test dd ? ;+96 +++ - .wait_param dd ? ;+100 +++ - .tls_base dd ? ;+104 - .dlls_list_ptr dd ? ;+108 - db 16 dup(?) ;+112 - - .wnd_shape dd ? ;+128 - .wnd_shape_scale dd ? ;+132 - dd ? ;+136 - .mem_size dd ? ;+140 - .saved_box BOX - .ipc_start dd ? - .ipc_size dd ? - .event_mask dd ? - .debugger_slot dd ? - dd ? - .keyboard_mode db ? - db 3 dup(?) - .dir_table dd ? - .dbg_event_mem dd ? - .dbg_regs: - .dbg_regs.dr0 dd ? - .dbg_regs.dr1 dd ? - .dbg_regs.dr2 dd ? - .dbg_regs.dr3 dd ? - .dbg_regs.dr7 dd ? - .wnd_caption dd ? - .wnd_clientbox BOX -} -virtual at 0 - APPDATA APPDATA -end virtual - -;// mike.dld, 2006-29-01 ] - -struc MUTEX -{ - .wait LHEAD - .count rd 1 -} - -virtual at 0 - MUTEX MUTEX -end virtual - - -; Core functions -include "core/sync.inc" ; macros for synhronization objects -include "core/sys32.inc" ; process management -include "core/sched.inc" ; process scheduling -include "core/syscall.inc" ; system call -include "core/fpu.inc" ; all fpu/sse support -include "core/memory.inc" -include "core/heap.inc" ; kernel and app heap -include "core/malloc.inc" ; small kernel heap -include "core/taskman.inc" -include "core/dll.inc" -include "core/peload.inc" ; -include "core/exports.inc" -include "core/string.inc" -include "core/v86.inc" ; virtual-8086 manager -include "core/apic.inc" ; Interrupt Controller functions -include "core/irq.inc" ; irq handling functions -include "core/timers.inc" - -; GUI stuff -include "gui/window.inc" -include "gui/event.inc" -include "gui/font.inc" -include "gui/button.inc" - -; shutdown - -; file system - -include "blkdev/disk.inc" ; support for plug-n-play disks -include "blkdev/disk_cache.inc" ; caching for plug-n-play disks -include "fs/fs.inc" ; syscall -include "fs/fat32.inc" ; read / write for fat32 filesystem -include "fs/ntfs.inc" ; read / write for ntfs filesystem -include "fs/fat12.inc" ; read / write for fat12 filesystem -include "blkdev/rd.inc" ; ramdisk read /write -include "fs/fs_lfn.inc" ; syscall, version 2 -include "fs/iso9660.inc" ; read for iso9660 filesystem CD -include "fs/ext2.inc" ; read / write for ext2 filesystem - -; sound - -include "sound/playnote.inc" ; player Note for Speaker PC - -; display - -include "video/vesa12.inc" ; Vesa 1.2 functions -include "video/vesa20.inc" ; Vesa 2.0 functions -include "video/blitter.inc" ; -include "video/vga.inc" ; VGA 16 color functions -include "video/cursors.inc" ; cursors functions - -; Network Interface & TCPIP Stack - -include "network/stack.inc" - -;include "drivers/uart.inc" - - -; Mouse pointer - -include "gui/mouse.inc" - -; Window skinning - -include "gui/skincode.inc" - -; Pci functions - -include "bus/pci/pci32.inc" - -; Floppy drive controller - -include "blkdev/fdc.inc" -include "blkdev/flp_drv.inc" - -; IDE cache -include "blkdev/ide_cache.inc" - -; HD drive controller -include "blkdev/hd_drv.inc" - -; CD drive controller - -include "blkdev/cdrom.inc" -include "blkdev/cd_drv.inc" - -; Character devices - -include "hid/keyboard.inc" -include "hid/mousedrv.inc" - -; setting date,time,clock and alarm-clock - -include "hid/set_dtc.inc" - -;% -include - -;parser file names -include "fs/parse_fn.inc" - -; work with conf lib -include "core/conf_lib.inc" - -; load external lib -include "core/ext_lib.inc" - -; list of external functions -include "imports.inc" +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; +;; Distributed under terms of the GNU General Public License ;; +;; ;; +;; KERNEL32.INC ;; +;; ;; +;; Included 32 bit kernel files for MenuetOS ;; +;; ;; +;; This file is kept separate as it will be easier to ;; +;; maintain and compile with an automated SETUP program ;; +;; in the future. ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +$Revision$ + + +;struc db [a] { common . db a +; if ~used . +; display 'not used db: ',`.,13,10 +; end if } +;struc dw [a] { common . dw a +; if ~used . +; display 'not used dw: ',`.,13,10 +; end if } +;struc dd [a] { common . dd a +; if ~used . +; display 'not used dd: ',`.,13,10 +; end if } +;struc dp [a] { common . dp a +; if ~used . +; display 'not used dp: ',`.,13,10 +; end if } +;struc dq [a] { common . dq a +; if ~used . +; display 'not used dq: ',`.,13,10 +; end if } +;struc dt [a] { common . dt a +; if ~used . +; display 'not used dt: ',`.,13,10 +; end if } + +struc POINT { + .x dd ? + .y dd ? + .sizeof: +} +virtual at 0 + POINT POINT +end virtual + +struc RECT { + .left dd ? + .top dd ? + .right dd ? + .bottom dd ? + .sizeof: +} +virtual at 0 + RECT RECT +end virtual + +struc BOX { + .left dd ? + .top dd ? + .width dd ? + .height dd ? + .sizeof: +} +virtual at 0 + BOX BOX +end virtual + +struc DISPMODE { + .width rw 1 + .height rw 1 + .bpp rw 1 + .freq rw 1 +} + +; constants definition +WSTATE_NORMAL = 00000000b +WSTATE_MAXIMIZED = 00000001b +WSTATE_MINIMIZED = 00000010b +WSTATE_ROLLEDUP = 00000100b + +WSTATE_REDRAW = 00000001b +WSTATE_WNDDRAWN = 00000010b + +WSTYLE_HASCAPTION = 00010000b +WSTYLE_CLIENTRELATIVE = 00100000b + +struc TASKDATA +{ + .event_mask dd ? + .pid dd ? + dw ? + .state db ? + db ? + dw ? + .wnd_number db ? + db ? + .mem_start dd ? + .counter_sum dd ? + .counter_add dd ? + .cpu_usage dd ? +} +virtual at 0 + TASKDATA TASKDATA +end virtual + +TSTATE_RUNNING = 0 +TSTATE_RUN_SUSPENDED = 1 +TSTATE_WAIT_SUSPENDED = 2 +TSTATE_ZOMBIE = 3 +TSTATE_TERMINATING = 4 +TSTATE_WAITING = 5 +TSTATE_FREE = 9 + +; structures definition +struc WDATA { + .box BOX + .cl_workarea dd ? + .cl_titlebar dd ? + .cl_frames dd ? + .reserved db ? + .fl_wstate db ? + .fl_wdrawn db ? + .fl_redraw db ? + .sizeof: +} +virtual at 0 + WDATA WDATA +end virtual +label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3 + +struc APPDATA +{ + .app_name db 11 dup(?) + db 5 dup(?) + + .fpu_state dd ? ;+16 + .ev_count_ dd ? ;unused ;+20 + .exc_handler dd ? ;+24 + .except_mask dd ? ;+28 + .pl0_stack dd ? ;+32 + .heap_base dd ? ;+36 + .heap_top dd ? ;+40 + .cursor dd ? ;+44 + .fd_ev dd ? ;+48 + .bk_ev dd ? ;+52 + .fd_obj dd ? ;+56 + .bk_obj dd ? ;+60 + .saved_esp dd ? ;+64 + .io_map rd 2 ;+68 + .dbg_state dd ? ;+76 + .cur_dir dd ? ;+80 + .wait_timeout dd ? ;+84 + .saved_esp0 dd ? ;+88 + .wait_begin dd ? ;+92 +++ + .wait_test dd ? ;+96 +++ + .wait_param dd ? ;+100 +++ + .tls_base dd ? ;+104 + .dlls_list_ptr dd ? ;+108 + db 16 dup(?) ;+112 + + .wnd_shape dd ? ;+128 + .wnd_shape_scale dd ? ;+132 + dd ? ;+136 + .mem_size dd ? ;+140 + .saved_box BOX + .ipc_start dd ? + .ipc_size dd ? + .event_mask dd ? + .debugger_slot dd ? + dd ? + .keyboard_mode db ? + db 3 dup(?) + .dir_table dd ? + .dbg_event_mem dd ? + .dbg_regs: + .dbg_regs.dr0 dd ? + .dbg_regs.dr1 dd ? + .dbg_regs.dr2 dd ? + .dbg_regs.dr3 dd ? + .dbg_regs.dr7 dd ? + .wnd_caption dd ? + .wnd_clientbox BOX +} +virtual at 0 + APPDATA APPDATA +end virtual + +;// mike.dld, 2006-29-01 ] + +struc MUTEX +{ + .wait LHEAD + .count rd 1 +} + +virtual at 0 + MUTEX MUTEX +end virtual + + +; Core functions +include "core/sync.inc" ; macros for synhronization objects +include "core/sys32.inc" ; process management +include "core/sched.inc" ; process scheduling +include "core/syscall.inc" ; system call +include "core/fpu.inc" ; all fpu/sse support +include "core/memory.inc" +include "core/heap.inc" ; kernel and app heap +include "core/malloc.inc" ; small kernel heap +include "core/taskman.inc" +include "core/dll.inc" +include "core/peload.inc" ; +include "core/exports.inc" +include "core/string.inc" +include "core/v86.inc" ; virtual-8086 manager +include "core/irq.inc" ; irq handling functions +include "core/apic.inc" ; Interrupt Controller functions +include "core/timers.inc" + +; GUI stuff +include "gui/window.inc" +include "gui/event.inc" +include "gui/font.inc" +include "gui/button.inc" + +; shutdown + +; file system + +include "blkdev/disk.inc" ; support for plug-n-play disks +include "blkdev/disk_cache.inc" ; caching for plug-n-play disks +include "fs/fs.inc" ; syscall +include "fs/fat32.inc" ; read / write for fat32 filesystem +include "fs/ntfs.inc" ; read / write for ntfs filesystem +include "fs/fat12.inc" ; read / write for fat12 filesystem +include "blkdev/rd.inc" ; ramdisk read /write +include "fs/fs_lfn.inc" ; syscall, version 2 +include "fs/iso9660.inc" ; read for iso9660 filesystem CD +include "fs/ext2.inc" ; read / write for ext2 filesystem + +; sound + +include "sound/playnote.inc" ; player Note for Speaker PC + +; display + +include "video/vesa12.inc" ; Vesa 1.2 functions +include "video/vesa20.inc" ; Vesa 2.0 functions +include "video/blitter.inc" ; +include "video/vga.inc" ; VGA 16 color functions +include "video/cursors.inc" ; cursors functions + +; Network Interface & TCPIP Stack + +include "network/stack.inc" + +;include "drivers/uart.inc" + + +; Mouse pointer + +include "gui/mouse.inc" + +; Window skinning + +include "gui/skincode.inc" + +; Pci functions + +include "bus/pci/pci32.inc" + +; Floppy drive controller + +include "blkdev/fdc.inc" +include "blkdev/flp_drv.inc" + +; IDE cache +include "blkdev/ide_cache.inc" + +; HD drive controller +include "blkdev/hd_drv.inc" + +; CD drive controller + +include "blkdev/cdrom.inc" +include "blkdev/cd_drv.inc" + +; Character devices + +include "hid/keyboard.inc" +include "hid/mousedrv.inc" + +; setting date,time,clock and alarm-clock + +include "hid/set_dtc.inc" + +;% -include + +;parser file names +include "fs/parse_fn.inc" + +; work with conf lib +include "core/conf_lib.inc" + +; load external lib +include "core/ext_lib.inc" + +; list of external functions +include "imports.inc"