/kernel/trunk/core/sys32.inc |
---|
677,24 → 677,22 |
ret |
restore .slot |
iglobal |
if lang eq ru |
boot_sched_1 db '®§¤ ¨¥ GDT TSS 㪠§ ⥫ï',0 |
boot_sched_2 db '®§¤ ¨¥ IDT â ¡«¨æë',0 |
else |
boot_sched_1 db 'Building gdt tss pointer',0 |
boot_sched_2 db 'Building IDT table',0 |
end if |
endg |
;iglobal |
;if lang eq ru |
; boot_sched_1 db '®§¤ ¨¥ GDT TSS 㪠§ ⥫ï',0 |
; boot_sched_2 db '®§¤ ¨¥ IDT â ¡«¨æë',0 |
;else |
; boot_sched_1 db 'Building gdt tss pointer',0 |
; boot_sched_2 db 'Building IDT table',0 |
;end if |
;endg |
build_scheduler: |
mov esi, boot_sched_1 |
call boot_log |
;build_scheduler: |
; mov esi, boot_sched_1 |
; call boot_log |
; call build_process_gdt_tss_pointer |
; mov esi,boot_sched_2 |
; call boot_log |
ret |
; ret |
/kernel/trunk/data32.inc |
---|
49,11 → 49,23 |
if lang eq ru |
; boot_fonts db 'à¨äâë § £à㦥ë',0 |
boot_initirq db '¨æ¨ «¨§ æ¨ï IRQ',0 |
boot_picinit db '¨æ¨ «¨§ æ¨ï PIC',0 |
boot_v86machine db '¨æ¨ «¨§ æ¨ï á¨á⥬ë V86 ¬ è¨ë',0 |
boot_inittimer db '¨æ¨ «¨§ æ¨ï á¨á⥬®£® â ©¬¥à (IRQ0)',0 |
boot_initapic db '®¯ë⪠¨¨æ¨ «¨§ 樨 APIC',0 |
boot_enableirq db 'ª«îç¨âì ¯à¥àë¢ ¨ï 2, 6, 13, 14, 15',0 |
boot_enablint_ide db ' §à¥è¥¨¥ ¯à¥àë¢ ¨© ¢ ª®â஫«¥à¥ IDE',0 |
boot_detectfloppy db '®¨áª floppy ¤¨áª®¢®¤®¢',0 |
boot_detecthdcd db '®¨áª ¦¥áâª¨å ¤¨áª®¢ ¨ ATAPI ¯à¨¢®¤®¢',0 |
boot_getcache db '®«ã票¥ ¯ ¬ï⨠¤«ï ªíè ',0 |
boot_detectpart db '®¨áª à §¤¥«®¢ ¤¨áª®¢ëå ãáâனá⢠å',0 |
boot_init_sys db '¨æ¨ «¨§ æ¨ï á¨á⥬®£® ª â «®£ /sys',0 |
boot_loadlibs db ' £à㧪 ¡¨¡«¨®â¥ª (.obj)',0 |
boot_memdetect db '®«¨ç¥á⢮ ®¯¥à ⨢®© ¯ ¬ïâ¨',' ',' ¡',0 |
boot_tss db 'áâ ®¢ª TSSs',0 |
boot_cpuid db '⥨¥ CPUIDs',0 |
boot_devices db '®¨áª ãáâனáâ¢',0 |
; boot_devices db '®¨áª ãáâனáâ¢',0 |
boot_timer db 'áâ ®¢ª â ©¬¥à ',0 |
boot_irqs db '¥à¥®¯à¥¤¥«¥¨¥ IRQ',0 |
boot_setmouse db 'áâ ®¢ª ¬ëè¨',0 |
69,15 → 81,30 |
boot_pal_vga db 'áâ ®¢ª VGA 640x480 ¯ «¨âàë',0 |
boot_failed db ' £à㧪 ¯¥à¢®£® ¯à¨«®¦¥¨ï ¥ 㤠« áì',0 |
boot_mtrr db 'áâ ®¢ª MTRR',0 |
boot_APIC_found db 'APIC ¢ª«îç¥', 0 |
boot_APIC_nfound db 'APIC ¥ ©¤¥', 0 |
if preboot_blogesc |
boot_tasking db 'ᥠ£®â®¢® ¤«ï § ¯ã᪠, ¦¬¨âॠESC ¤«ï áâ àâ ',0 |
end if |
else |
; boot_fonts db 'Fonts loaded',0 |
boot_initirq db 'Initialize IRQ',0 |
boot_picinit db 'Initialize PIC',0 |
boot_v86machine db 'Initialize system V86 machine',0 |
boot_inittimer db 'Initialize system timer (IRQ0)',0 |
boot_initapic db 'Try to initialize APIC',0 |
boot_enableirq db 'Enable interrupts 2, 6, 13, 14, 15',0 |
boot_enablint_ide db 'Enable interrupts in IDE controller',0 |
boot_detectfloppy db 'Search floppy drives',0 |
boot_detecthdcd db 'Search hard drives and ATAPI drives',0 |
boot_getcache db 'Get memory for cache',0 |
boot_detectpart db 'Search partitions on disk devices',0 |
boot_init_sys db 'Initialize system directory /sys',0 |
boot_loadlibs db 'Loading librares (.obj)',0 |
boot_memdetect db 'Determining amount of memory',0 |
boot_tss db 'Setting TSSs',0 |
boot_cpuid db 'Reading CPUIDs',0 |
boot_devices db 'Detecting devices',0 |
; boot_devices db 'Detecting devices',0 |
boot_setmouse db 'Setting mouse',0 |
boot_windefs db 'Setting window defaults',0 |
boot_bgr db 'Calculating background',0 |
90,14 → 117,14 |
boot_pal_vga db 'Setting VGA 640x480 palette',0 |
boot_failed db 'Failed to start first app',0 |
boot_mtrr db 'Setting MTRR',0 |
boot_APIC_found db 'APIC enabled', 0 |
boot_APIC_nfound db 'APIC not found', 0 |
if preboot_blogesc |
boot_tasking db 'All set - press ESC to start',0 |
end if |
end if |
boot_APIC_found db 'APIC enabled', 0 |
boot_APIC_nfound db 'APIC not found', 0 |
;new_process_loading db 'K : New Process - loading',13,10,0 |
;new_process_running db 'K : New Process - done',13,10,0 |
start_not_enough_memory db 'K : New Process - not enough memory',13,10,0 |
/kernel/trunk/kernel.asm |
---|
447,6 → 447,10 |
mov [GETPIXEL], dword Vesa20_getpixel32 |
no_mode_0x12: |
mov [MOUSE_PICTURE], dword mousepointer |
mov [_display.check_mouse], check_mouse_area_for_putpixel |
mov [_display.check_m_pixel], check_mouse_area_for_getpixel |
; -------- Fast System Call init ---------- |
; Intel SYSENTER/SYSEXIT (AMD CPU support it too) |
bt [cpu_caps], CAPS_SEP |
610,19 → 614,31 |
rep stosd |
; REDIRECT ALL IRQ'S TO INT'S 0x20-0x2f |
mov esi, boot_initirq |
call boot_log |
call init_irqs |
call init_irqs |
mov esi, boot_picinit |
call boot_log |
call PIC_init |
mov esi, boot_v86machine |
call boot_log |
; Initialize system V86 machine |
call init_sys_v86 |
mov esi, boot_inittimer |
call boot_log |
; Initialize system timer (IRQ0) |
call PIT_init |
mov esi, boot_initapic |
call boot_log |
; Try to Initialize APIC |
call APIC_init |
mov esi, boot_enableirq |
call boot_log |
; 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 |
632,6 → 648,8 |
stdcall enable_irq, 14 |
stdcall enable_irq, 15 |
mov esi, boot_enablint_ide |
call boot_log |
; Enable interrupts in IDE controller |
mov al, 0 |
mov dx, 0x3F6 |
640,9 → 658,25 |
out dx, al |
;!!!!!!!!!!!!!!!!!!!!!!!!!! |
include 'detect/disks.inc' |
; mov esi, boot_detectdisks |
; call boot_log |
;include 'detect/disks.inc' |
mov esi, boot_detectfloppy |
call boot_log |
include 'detect/dev_fd.inc' |
mov esi, boot_detecthdcd |
call boot_log |
include 'detect/dev_hdcd.inc' |
mov esi, boot_getcache |
call boot_log |
include 'detect/getcache.inc' |
mov esi, boot_detectpart |
call boot_log |
include 'detect/sear_par.inc' |
;!!!!!!!!!!!!!!!!!!!!!!!!!! |
mov esi, boot_init_sys |
call boot_log |
call Parser_params |
if ~ defined extended_primary_loader |
662,6 → 696,9 |
mov ax, [OS_BASE+0x10000+bx_from_load] |
cmp ax, 'r1'; if using not ram disk, then load librares and parameters {SPraid.simba} |
je no_lib_load |
mov esi, boot_loadlibs |
call boot_log |
; LOADING LIBRARES |
stdcall dll.Load, @IMPORT ; loading librares for kernel (.obj files) |
call load_file_parse_table ; prepare file parse table |
669,18 → 706,6 |
no_lib_load: |
end if |
; LOAD FONTS I and II |
; stdcall read_file, char, FONT_I, 0, 2304 |
; stdcall read_file, char2, FONT_II, 0, 2560 |
mov [MOUSE_PICTURE], dword mousepointer |
mov [_display.check_mouse], check_mouse_area_for_putpixel |
mov [_display.check_m_pixel], check_mouse_area_for_getpixel |
; mov esi, boot_fonts |
; call boot_log |
; Display APIC status |
mov esi, boot_APIC_found |
cmp [irq_mode], IRQ_APIC |
687,6 → 712,7 |
je @f |
mov esi, boot_APIC_nfound |
@@: |
call boot_log |
; PRINT AMOUNT OF MEMORY |
mov esi, boot_memdetect |
709,10 → 735,10 |
; BUILD SCHEDULER |
call build_scheduler; sys32.inc |
; call build_scheduler; sys32.inc |
mov esi, boot_devices |
call boot_log |
; mov esi, boot_devices |
; call boot_log |
mov [pci_access_enabled], 1 |