474,9 → 474,6 |
cmp ax,0x004f |
mov si, novesa-0x10000 |
jnz @f |
mov bx, word [es:di+0x12] |
shl ebx,16 |
mov [es:0x9050], ebx |
mov ax,[es:di+4] |
add ax,'0'*256+'0' |
mov si,vervesa-0x10000 |
827,7 → 824,7 |
mov al, 32 ; BPP |
jb @f |
mov [es:0x9000], al |
mov dword [es:0x9018], 0xFFFFFFFF; 0x800000 |
mov dword [es:0x9018], 0x800000 |
@@: |
mov [es:0x9008],bx |
mov [es:0x900A],cx |
1233,41 → 1230,37 |
; PAGE TABLE |
|
push dword [es:0x9018] |
; |
; mmap_mem equ 64 ; amount of memory to map |
; |
|
map_mem equ 64 ; amount of memory to map |
|
push 0x6000 |
pop es ; es:di = 6000:0 |
; xor di,di |
; mov cx,256*mmap_mem ; Map (mapmem) M |
;; initialize as identity mapping |
; xor eax, eax |
; call pagetable_set |
; |
; |
xor di,di |
mov cx,256*map_mem ; Map (mapmem) M |
; initialize as identity mapping |
xor eax, eax |
call pagetable_set |
|
|
; 4 KB PAGE DIRECTORY |
; |
|
push 0x7F00 |
pop es ; es:di = 7F00:0 |
; xor di, di |
; mov cx, 64 / 4 |
; mov eax, 0x60007 ; for 0 M |
; call pagetable_set |
; xor si,si |
; mov di,second_base_address shr 20 |
; mov cx,64/2 |
; rep movs word [es:di], [es:si] |
xor di, di |
mov cx, 64 / 4 |
mov eax, 0x60007 ; for 0 M |
call pagetable_set |
xor si,si |
mov di,second_base_address shr 20 |
mov cx,64/2 |
rep movs word [es:di], [es:si] |
|
; mov eax, 0x7F000 +8+16 ; Page directory and enable caches |
; mov cr3, eax |
mov eax, 0x7F000 +8+16 ; Page directory and enable caches |
mov cr3, eax |
|
; SET GRAPHICS |
|
pop es |
|
xor ax, ax |
mov es, ax |
|
mov ax,[es:0x9008] ; vga & 320x200 |
mov bx, ax |
cmp ax,0x13 |