Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4440 → Rev 4441

/kernel/trunk/bootloader/grub4kos.asm
56,7 → 56,7
cld
mov esi, mboot
mov edi, 0x80000
mov ecx, 600/4 ;magic value
mov ecx, 624/4 ;magic value
rep movsd
jmp .check_mbi
 
64,24 → 64,26
align 4
.check_mbi:
cmp eax, 0x2BADB002
mov ecx, sz_invboot
jne .fault
mov esi, sz_invboot
jne .panic
 
bt dword [ebx], 3
mov ecx, sz_nomods
jnc .fault
mov esi, sz_nomods
jnc .panic
 
mov edx, [ebx+20] ;mods_count
mov esi, [ebx+24] ;mods_addr
mov edi, [ebx+24] ;mods_addr
cmp edx, 1
jne .fault
mov esi, sz_nomods
jne .panic
 
.scan_mod:
mov ebp, [esi] ;image start
mov ecx, [esi+4] ;image end
mov ebp, [edi] ;image start
mov ecx, [edi+4] ;image end
sub ecx, ebp ;image size
cmp ecx, 512*18*80*2 ;1.44 floppy
jne .fault
mov esi, sz_image
jne .panic
 
mov [_image_start], ebp
mov [_image_size], ecx
133,8 → 135,8
cmp esi, eax ; end of directory
jb .loop_find_dir_entry
 
mov ecx, sz_kernel
jmp .fault
mov esi, sz_kernel
jmp .panic
 
; === KERNEL FOUND. LOADING... ===
 
218,10 → 220,28
lgdt [.tmp_gdt]
jmp far 0x08:.mode_16 and 0xFFFF
 
.fault:
; push ecx
; call _lcls
; call __bprintf
.panic:
mov ebx, sz_halt
mov edx, 0xb8000+160*10+2
mov ah, 0x07
.line:
mov edi, edx
.print:
lodsb
test al, al
jz .print_next
stosw
jmp .print
 
.print_next:
test ebx, ebx
jz ._hlt
 
mov esi, ebx
xor ebx, ebx
add edx, 160
jmp .line
 
._hlt:
hlt
jmp ._hlt
253,14 → 273,14
mov fs, ax
jmp far 0x1000:0000
 
sz_invboot db 'Invalid multiboot loader magic value',cr,lf
db 'Halted',0
 
sz_nomods db 'No modules loaded',cr,lf
db 'Halted',0
sz_invboot db 'Invalid multiboot loader magic value',0
sz_nomods db 'No image loaded',0
sz_image db 'Image size invalid',0
sz_halt db 'Halted',0
 
sz_kernel db cr,lf
kernel_name db 'KERNEL MNT ?',cr,lf,0
sz_kernel db cr
kernel_name db 'KERNEL MNT ?',0
 
org $+0x80000
__edata: