diff --git a/boot/common/bootinfo.inc b/boot/common/bootinfo.inc index 0382330..b3f6dd3 100644 --- a/boot/common/bootinfo.inc +++ b/boot/common/bootinfo.inc @@ -29,6 +29,11 @@ boot_info_add_memmap: cmp eax, 0x100000 jne @f mov [boot_structure.high_mem], edx + add [boot_structure.high_mem], eax +@@: + or eax, eax + jnz @f + mov [boot_structure.low_mem], edx @@: ; end hack ; ---------------------------------------------------------------------- diff --git a/docs/config/Menu.txt b/docs/config/Menu.txt index 645ff2e..49fb9a0 100644 --- a/docs/config/Menu.txt +++ b/docs/config/Menu.txt @@ -20,7 +20,7 @@ Timestamp: Updated yyyy/mm/dd # These are indexes you deleted, so Natural Docs will not add them again # unless you remove them from this line. -Don't Index: Variables, Classes, Macros +Don't Index: Classes, Macros, Variables # -------------------------------------------------------------------------- @@ -89,25 +89,43 @@ Group: BootLoader { Group: Kernel { File: Introduction (kernel/intro.txt) + File: gdt.inc (kernel/gdt.inc) + File: heap.inc (kernel/heap.inc) + File: idt.inc (kernel/idt.inc) File: isr.inc (kernel/isr.inc) File: kernel.asm (kernel/kernel.asm) File: klog.inc (kernel/klog.inc) Group: Devices { - File: IBM PC/AT (kernel/dev/at/intro.txt) - File: vga_console.inc (kernel/dev/vga_console.inc) + Group: At { + + File: IBM PC/AT (kernel/dev/at/intro.txt) + File: cga.inc (kernel/dev/at/cga.inc) + File: cmos.inc (kernel/dev/at/cmos.inc) + File: com.inc (kernel/dev/at/com.inc) + File: floppy.inc (kernel/dev/at/floppy.inc) + File: ide.inc (kernel/dev/at/ide.inc) + File: kbd.inc (kernel/dev/at/kbd.inc) + File: ne2k.inc (kernel/dev/at/ne2k.inc) + File: pit.inc (kernel/dev/at/pit.inc) + } # Group: At + + File: console.inc (kernel/dev/console.inc) + File: dev.inc (kernel/dev/dev.inc) } # Group: Devices Group: File Systems { File: fat.inc (kernel/fs/fat.inc) File: stpdfs.inc (kernel/fs/stpdfs.inc) + File: xv6fs.inc (kernel/fs/xv6fs.inc) } # Group: File Systems Group: System Includes { File: bootinfo.inc (kernel/sys/bootinfo.inc) + File: coff.inc (kernel/sys/coff.inc) File: cpu.inc (kernel/sys/cpu.inc) File: mmu.inc (kernel/sys/mmu.inc) File: registers.inc (kernel/sys/register.inc) @@ -121,6 +139,7 @@ Group: Kernel { File: lock.inc (kernel/lock.inc) File: pic.inc (kernel/pic.inc) + File: vfs.inc (kernel/vfs.inc) } # Group: Kernel Group: Lib { @@ -163,5 +182,7 @@ Group: Index { Constant Index: Constants File Index: Files Function Index: Functions + Struct Index: Structs + Type Index: Types } # Group: Index diff --git a/docs/propaganda.txt b/docs/propaganda.txt new file mode 100644 index 0000000..6df7991 --- /dev/null +++ b/docs/propaganda.txt @@ -0,0 +1,6 @@ +File: Propaganda + +About: Web buttons + +(see 80x15.png) +(see 88x31.png) diff --git a/kernel/dev/at/com.inc b/kernel/dev/at/com.inc index 52755c8..134ef68 100644 --- a/kernel/dev/at/com.inc +++ b/kernel/dev/at/com.inc @@ -2,9 +2,15 @@ COM_MAJOR = 1 +com_init: + ret + com_probe: ret com_irq: + pusha + + popa iret diff --git a/kernel/dev/at/floppy.inc b/kernel/dev/at/floppy.inc index 5ea2dcc..a4d30d6 100644 --- a/kernel/dev/at/floppy.inc +++ b/kernel/dev/at/floppy.inc @@ -78,8 +78,13 @@ floppy_psize: ret floppy_irq: + pusha + mov esi, szMsgFloppyIRQ + popa iret +szMsgFloppyIRQ db 'Floppy: IRQ', 0 + floppy_device: db 'floppy', 0, 0 dd floppy_init diff --git a/kernel/fs/stpdfs.inc b/kernel/fs/stpdfs.inc index 0864454..805c410 100644 --- a/kernel/fs/stpdfs.inc +++ b/kernel/fs/stpdfs.inc @@ -22,6 +22,7 @@ STPDFS_ROOTINO = 1 ;; Constant: STPDFS_NDIRECT STPDFS_NDIRECT = 7 ;; Constant: STPDFS_NAME_MAX + ;; Max file name length (28) STPDFS_NAME_MAX = 28 ;; Enum: StupidFS State @@ -81,6 +82,17 @@ struc StpdFS_Sb { DEFN StpdFS_Sb ;; Struc: StpdFS_Inode + ;; StupidFS on disk i-node + ;; + ;; .mode - TODO + ;; .nlink - TODO + ;; .uid - TODO + ;; .gid - TODO + ;; .flags - TODO + ;; .size - Date size in byte + ;; .zone - TODO + ;; .actime - TODO + ;; .modtime - TODO struc StpdFS_Inode { .mode dw ? .nlink dw ? diff --git a/kernel/idt.inc b/kernel/idt.inc index 88c4fd5..ccecfcc 100644 --- a/kernel/idt.inc +++ b/kernel/idt.inc @@ -33,6 +33,14 @@ idt_setup: cmp ecx, 0x30 jb @b + mov ecx, 36 + mov eax, com_irq + call idt_set_gate + + mov ecx, 38 + mov eax, floppy_irq + call idt_set_gate + mov ecx, 0x42 mov eax, isr_syscall call idt_set_gate