Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 512 → Rev 513

/kernel/trunk/const.inc
266,6 → 266,9
FONT_II equ (OS_BASE+0x003EC00)
FONT_I equ (OS_BASE+0x003F600)
DRIVE_DATA equ (OS_BASE+0x0040000)
 
sys_pgdir equ (OS_BASE+0x0050000)
 
SLOT_BASE equ (OS_BASE+0x0080000)
 
;unused
304,9 → 307,10
WinMapAddress equ (OS_BASE+0x043F000)
display_data equ (OS_BASE+0x043F000)
 
tmp_page_tab equ 0x057F000;
sys_pgmap equ (OS_BASE+0x057F000)
 
HEAP_BASE equ (OS_BASE+tmp_page_tab)
 
HEAP_BASE equ (OS_BASE+0x0800000)
HEAP_MIN_SIZE equ 0x01000000
 
page_tabs equ 0xFDC00000
316,10 → 320,7
 
LFB_BASE equ 0xFE000000
 
sys_pgdir equ (OS_BASE+0x00050000)
sys_pgmap equ (OS_BASE+0x00052000)
 
 
new_app_base equ 0;
 
twdw equ 0x3000 ;(CURRENT_TASK-window_data)
/kernel/trunk/fs/parse_fn.inc
12,7 → 12,7
; ¯¥à¥¡¨à ¥â ¯® ä ©«ã ¢ à¨ ­âë § ¬¥­
proc full_file_name stdcall,sourc,dest
locals
tmpsrc rb 60 ; ¢à¥¬¥­­®¥ åà ­¥­¨¥ ¯à¥®¡à §®¢ ­¨ï
tmpsrc rb 260 ; ¢à¥¬¥­­®¥ åà ­¥­¨¥ ¯à¥®¡à §®¢ ­¨ï
endl
pushad
mov esi,[sourc]
/kernel/trunk/init.inc
40,6 → 40,10
shr eax, 3
mov [pg_data.pagemap_size-OS_BASE], eax
 
add eax, (sys_pgmap-OS_BASE)+4095
and eax, not 4095
mov [tmp_page_tabs], eax
 
cmp edx, (OS_BASE/4096)
jbe @F
mov edx, (OS_BASE/4096)
74,21 → 78,23
or ebx, CR4_PGE
@@:
mov cr4, ebx
sub [pg_data.kernel_tables-OS_BASE], 1
dec [pg_data.kernel_tables-OS_BASE]
 
mov [edx], eax
add eax, 0x00400000
; mov [edx+4], eax
add edx, 4
 
mov eax, 0x400000+PG_SW
mov ecx, (tmp_page_tab-0x400000)/4096
mov ecx, [tmp_page_tabs]
sub ecx, 0x400000
shr ecx, 12 ;ecx/=4096
jmp .map_low
.no_PSE:
mov eax, PG_SW
mov ecx, tmp_page_tab/4096
mov ecx, [tmp_page_tabs]
shr ecx, 12
.map_low:
mov edi, tmp_page_tab
mov edi, [tmp_page_tabs]
@@: ;
stosd
add eax, 0x1000
101,7 → 107,8
rep stosd
 
mov ecx, [pg_data.kernel_tables-OS_BASE]
mov eax, tmp_page_tab+PG_SW
mov eax, [tmp_page_tabs]
or eax, PG_SW
mov edi, edx
 
.map_kernel_tabs:
131,29 → 138,23
proc init_page_map
 
mov edi, sys_pgmap-OS_BASE
mov ecx, ((HEAP_BASE-OS_BASE)/4096)/32 ;384/4
mov ebx, ecx
xor eax,eax
cld
rep stosd
 
not eax
mov ecx, [pg_data.pagemap_size-OS_BASE]
sub ecx, ebx
shr ecx, 2
or eax, -1
cld
rep stosd
 
lea edi, [sys_pgmap-OS_BASE+ebx*4] ;+384
mov ecx, [tmp_page_tabs]
mov edx, [pg_data.pages_count-OS_BASE]
mov ecx, [pg_data.kernel_tables-OS_BASE]
add ecx, ((HEAP_BASE-OS_BASE)/4096) and 31
sub edx, (HEAP_BASE-OS_BASE)/4096
shr ecx, 12
add ecx, [pg_data.kernel_tables-OS_BASE]
sub edx, ecx
mov [pg_data.pages_free-OS_BASE], edx
 
xor eax, eax
mov edi, sys_pgmap-OS_BASE
mov ebx, ecx
shr ecx, 5
xor eax, eax
rep stosd
 
not eax
169,7 → 170,6
mov [page_end-OS_BASE], ebx
 
mov [pg_data.pg_mutex-OS_BASE], 0
 
ret
endp
 
/kernel/trunk/kernel.asm
251,7 → 251,8
lgdt [gdts]
jmp pword os_code:high_code
 
 
align 4
tmp_page_tabs dd ?
use16
org $-0x10000
include "boot/shutdown.inc" ; shutdown or restart
/kernel/trunk/memmap.inc
128,9 → 128,8
; 0x80040000 -> 4FFFF data of retrieved disks and partitions (Mario79)
 
; 0x80050000 -> 50FFF main page directory
; 0x80050200 -> 5FFFF pages bitmap
; 0x80051000 -> 7FFFF free (188 Kb)
 
; 0x80060000 -> 7FFFF free (128 Kb)
; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries
;
; 00 11db name of app running
205,29 → 204,28
; 0x802E0000 -> 2EFFFF irq data area
; 0x802F0000 -> 2FFFFF low memory save
;
; 0x80300000 -> 45FFFF background image, max 1,375 M
; 0x80300000 -> 400000 hd cache
 
; 0x80400000 -> 41FFFF tcp memory 128 Kb
; 0x80420000 -> 427FFF tcp memory 32 Kb
;
; 0x80460000 -> 5FFFFF display info
;
; 0x80600000 -> 6FFFFF hd cache
;
; 0x80700000 -> 71ffff tcp memory 128 Kb
; 0x80720000 -> 75ffff free (256 kb)
;
; 0x80760000 -> 76ffff !vrr driver
; 0x80770000 -> 777fff tcp memory 32 Kb
;
; 0x80780000 -> 0x80782FFF draw data - 256 entries
; 0x80428000 -> 42FFFF !vrr driver 32 Kb
 
; 0x80430000 -> 477FFF skin data
 
; 0x80438000 -> 43AFFF draw data - 256 entries
; 00 dword draw limit - x start
; 04 dword draw limit - y start
; 08 dword draw limit - x end
; 0C dword draw limit - y end
 
; 0x8043BF80 -> 43BFFF TSS 128 bytes
; 0x8043C000 -> 43DFFF IO map for (8192*8)=65536 ports
 
; 0x8043F000 -> 57EFFF display info
; 0x8057F000 -> 58FFFF page map max 128 Kb
;
; 0x80783F80 -> 0x80783FFF TSS 128 bytes
;
; 0x80784000 -> 0x80785FFF IO map for (8192*8)=65536 ports
;
; 0x80786000 -> kernel heap
; 0x80800000 -> kernel heap
; 0x81FFFFFF heap min limit
; 0xFDBFFFFF heap max limit