Kolibri-A: non-cacheable WinMap = BARE TEST VERSION! =

git-svn-id: svn://kolibrios.org@1710 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Artem Jerdev (art_zh) 2010-11-24 16:10:45 +00:00
parent e4c65f154e
commit 5ce26ca2da
8 changed files with 27 additions and 32 deletions

View File

@ -252,6 +252,7 @@ Screen_Max_Y equ (OS_BASE+0x000FE04)
BytesPerScanLine equ (OS_BASE+0x000FE08) BytesPerScanLine equ (OS_BASE+0x000FE08)
SCR_MODE equ (OS_BASE+0x000FE0C) SCR_MODE equ (OS_BASE+0x000FE0C)
KERNEL_ALLOC_FLAG equ (OS_BASE+0x000FE70)
mmio_pcie_cfg_addr equ (OS_BASE+0x000FE74) mmio_pcie_cfg_addr equ (OS_BASE+0x000FE74)
mmio_pcie_cfg_lim equ (OS_BASE+0x000FE78) mmio_pcie_cfg_lim equ (OS_BASE+0x000FE78)
mmio_pcie_cfg_pdes equ (OS_BASE+0x000FE7C) mmio_pcie_cfg_pdes equ (OS_BASE+0x000FE7C)

View File

@ -110,6 +110,7 @@ proc init_kernel_heap
mov [mem_used.fd], eax mov [mem_used.fd], eax
mov [mem_used.bk], eax mov [mem_used.bk], eax
mov [KERNEL_ALLOC_FLAG], dword PG_SW
stdcall alloc_pages, dword 32 stdcall alloc_pages, dword 32
mov ecx, 32 mov ecx, 32
mov edx, eax mov edx, eax
@ -571,7 +572,7 @@ proc kernel_alloc stdcall, size:dword
mov edi, eax mov edi, eax
mov edx, [lin_addr] mov edx, [lin_addr]
@@: @@:
stdcall map_page,edx,edi,dword PG_SW stdcall map_page,edx,edi,dword [KERNEL_ALLOC_FLAG]
add edx, 0x1000 add edx, 0x1000
add edi, 0x1000 add edi, 0x1000
dec ecx dec ecx
@ -1538,3 +1539,5 @@ proc shmem_close stdcall, name:dword
.fail: .fail:
ret ret
endp endp
diff16 "heap code end ",0,$
diff16 "heap code size",init_kernel_heap,$

View File

@ -1441,3 +1441,5 @@ proc create_ring_buffer stdcall, size:dword, flags:dword
.fail: .fail:
ret ret
endp endp
diff16 "memman code end",0,$
diff16 "memman code sze",alloc_page,$

View File

@ -130,3 +130,5 @@ dtext: ; Text String Output (rw by Johnny_B[john@kolibrios.org])
popad popad
pop eax ; << // Alver 22.06.2008 // << pop eax ; << // Alver 22.06.2008 // <<
ret ret
diff16 "font code end ",0,$
diff16 "font code size",dtext,$

View File

@ -699,3 +699,6 @@ mouse._.check_sys_window_actions: ;////////////////////////////////////////////
.exit: .exit:
ret ret
diff16 "mouse code end ",0,$
diff16 "mouse code size",mouse_check_events,$

View File

@ -68,10 +68,10 @@ ends
struct SKIN_BUTTONS struct SKIN_BUTTONS
.type dd ? .type dd ?
.pos: .pos:
.left dw ? .left dw ?
.top dw ? .top dw ?
.size: .size:
.width dw ? .width dw ?
.height dw ? .height dw ?
ends ends
@ -458,3 +458,5 @@ drawwindow_IV:
ret 4 ret 4
diff16 "skin code end ",0,$
diff16 "skin code size",read_skin_file,$

View File

@ -2083,3 +2083,6 @@ window._.draw_negative_box: ;//////////////////////////////////////////////////
call draw_rectangle.forced call draw_rectangle.forced
pop esi ebx eax pop esi ebx eax
ret ret
diff16 "window code end",0,$
diff16 "window.inc size",syscall_draw_window,$

View File

@ -198,7 +198,6 @@ diff16 "end of tmp_gdt ",0,$
include "data16.inc" include "data16.inc"
diff16 "end of data16 ",0,$
use32 use32
org $+0x10000 org $+0x10000
@ -500,9 +499,11 @@ v20ga32:
shr eax,16 shr eax,16
mov [graph_data_l+4],al mov [graph_data_l+4],al
mov [graph_data_l+7],ah mov [graph_data_l+7],ah
or [KERNEL_ALLOC_FLAG], dword PG_NOCACHE
stdcall kernel_alloc, [_WinMapSize] stdcall kernel_alloc, [_WinMapSize]
mov [_WinMapAddress], eax mov [_WinMapAddress], eax
xor [KERNEL_ALLOC_FLAG], dword PG_NOCACHE
xor eax,eax xor eax,eax
inc eax inc eax
@ -894,31 +895,9 @@ if preboot_blogesc
jne .bll1 jne .bll1
end if end if
; mov [ENABLE_TASKSWITCH],byte 1 ; multitasking enabled
; UNMASK ALL IRQ'S
; mov esi,boot_allirqs
; call boot_log
;
; cli ;guarantee forbidance of interrupts.
; mov al,0 ; unmask all irq's
; out 0xA1,al
; out 0x21,al
;
; mov ecx,32
;
; ready_for_irqs:
;
; mov al,0x20 ; ready for irqs
; out 0x20,al
; out 0xa0,al
;
; loop ready_for_irqs ; flush the queue
stdcall attach_int_handler, 1, irq1, 0 stdcall attach_int_handler, 1, irq1, 0
; mov [dma_hdd],1
cmp [IDEContrRegsBaseAddr], 0 cmp [IDEContrRegsBaseAddr], 0
setnz [dma_hdd] setnz [dma_hdd]
mov [timer_ticks_enable],1 ; for cd driver mov [timer_ticks_enable],1 ; for cd driver
@ -926,11 +905,9 @@ end if
sti sti
call change_task call change_task
jmp osloop jmp osloop ; Fly :)
; jmp $ ; wait here for timer to take control diff16 "init code end: ",0,$
; Fly :)
include 'unpacker.inc' include 'unpacker.inc'
include 'fdo.inc' include 'fdo.inc'
@ -2238,6 +2215,7 @@ nosb1:
test ecx, ecx test ecx, ecx
jz @f jz @f
cmp eax, static_background_data cmp eax, static_background_data
jz .ret jz .ret
@@: @@:
mov ebx, [mem_BACKGROUND] mov ebx, [mem_BACKGROUND]
@ -2726,6 +2704,7 @@ sys_redrawstat:
mov [edx + RECT.left], 0 mov [edx + RECT.left], 0
mov [edx + RECT.top], 0 mov [edx + RECT.top], 0
mov eax, [Screen_Max_X] mov eax, [Screen_Max_X]
mov [edx + RECT.right], eax mov [edx + RECT.right], eax
mov eax, [Screen_Max_Y] mov eax, [Screen_Max_Y]
mov [edx + RECT.bottom], eax mov [edx + RECT.bottom], eax