shutdown code now correctly handles >128 Kb file kernel.mnt

git-svn-id: svn://kolibrios.org@681 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2007-12-13 18:45:44 +00:00
parent d59aaca0fa
commit a3ee7f3740
2 changed files with 19 additions and 13 deletions

View File

@ -233,19 +233,25 @@ restart_kernel_4000:
cli
push ds
pop es
mov cx, 0x8000
pop es
mov cx, 0x8000
push cx
mov ds, cx
xor si, si
xor di, di
rep movsw
push 0x9000
pop ds
push 0x7000
pop ds
xor si, si
xor di, di
rep movsw
pop cx
mov ds, cx
push 0x2000
pop es
pop cx
rep movsw
pop es
rep movsw
push 0x9000
pop ds
push 0x3000
pop es
mov cx, 0xE000/2
rep movsw
wbinvd ; write and invalidate cache

View File

@ -5203,12 +5203,12 @@ system_shutdown: ; shut down the system
yes_shutdown_param:
cli
mov eax, kernel_file ; load kernel.mnt to 0x8000:0
mov eax, kernel_file ; load kernel.mnt to 0x7000:0
push 12
pop esi
xor ebx,ebx
or ecx,-1
mov edx, OS_BASE+0x80000
mov edx, OS_BASE+0x70000
call fileread
mov esi, restart_kernel_4000+OS_BASE+0x10000 ; move kernel re-starter to 0x4000:0