358,7 → 358,7 |
|
cmp dword [LFBAddress], -1 |
jne @f |
mov [BOOT_VAR+BOOT_MTRR], byte 2 |
mov [BOOT_VARS+BOOT_MTRR], byte 2 |
; max VGA=640*480*4=1228800 bytes |
; + 32*640*4=81920 bytes for mouse pointer |
stdcall alloc_pages, ((1228800+81920)/4096) |
378,7 → 378,7 |
@@: |
test [SCR_MODE], word 0100000000000000b |
jnz @f |
mov [BOOT_VAR+BOOT_MTRR], byte 2 |
mov [BOOT_VARS+BOOT_MTRR], byte 2 |
ret |
@@: |
call init_mtrr |
1199,7 → 1199,7 |
cmp ebx, 11 |
jb .fail |
|
cmp ebx, 25 |
cmp ebx, 27 |
ja .fail |
|
jmp dword [f68call+ebx*4-11*4] |
1310,6 → 1310,15 |
mov [esp+32], eax |
ret |
|
.27: |
cmp ecx, OS_BASE |
jae .fail |
|
stdcall load_file_umode, ecx |
mov [esp+24], edx |
mov [esp+32], eax |
ret |
|
.fail: |
xor eax, eax |
mov [esp+32], eax |
1335,6 → 1344,7 |
dd f68.24 ; set exception handler |
dd f68.25 ; unmask exception |
dd f68.26 ; user_unmap |
dd f68.27 ; load_file_umode |
|
|
align 4 |
1361,7 → 1371,7 |
align 4 |
proc init_mtrr |
|
cmp [BOOT_VAR+BOOT_MTRR], byte 2 |
cmp [BOOT_VARS+BOOT_MTRR], byte 2 |
je .exit |
|
bt [cpu_caps], CAPS_MTRR |
1456,7 → 1466,7 |
mov ebx, [size] |
dec ebx |
mov eax, 0xFFFFFFFF |
mov edx, 0x0000000F |
mov edx, 0x00000000 |
sub eax, ebx |
sbb edx, 0 |
or eax, 0x800 |