/kernel/branches/flat_kernel/blkdev/rd.inc |
---|
1796,7 → 1796,12 |
jnz .disk_full2 |
dec edi |
dec edi |
lea eax, [edi-(RAMDISK_FAT)] |
; lea eax, [edi-(RAMDISK_FAT)] |
mov eax, edi |
sub edi, RAMDISK_FAT |
shr eax, 1 ; eax = cluster |
mov word [edi], 0xFFF ; mark as last cluster |
xchg edi, [esp] |
/kernel/branches/flat_kernel/const.inc |
---|
134,7 → 134,7 |
SSE_INIT equ (SSE_IM+SSE_DM+SSE_ZM+SSE_OM+SSE_UM+SSE_PM) |
OS_BASE equ 0x01000000 |
OS_BASE equ 0x80000000 |
window_data equ OS_BASE |
261,13 → 261,13 |
page_tabs equ 0x7FC00000 |
master_tab equ 0x7FDFF000 |
app_page_tabs equ 0x7FE00000 |
app_page_tabs equ 0x7FC00000 ;0x7FE00000 |
sys_pgdir equ (OS_BASE+0x00050000) |
sys_pgmap equ (OS_BASE+0x00052000) |
new_app_base equ 0x80000000 |
new_app_base equ 0x01000000 ; 0= flat |
twdw equ (CURRENT_TASK-window_data) |
/kernel/branches/flat_kernel/core/malloc.inc |
---|
972,9 → 972,7 |
align 4 |
init_malloc: |
stdcall kernel_alloc, 0x20000 |
mov [mst.top], eax |
mov [mst.topsize], 128*1024 |
mov dword [eax+4], (128*1024) or 1 |
/kernel/branches/flat_kernel/core/memory.inc |
---|
476,19 → 476,17 |
mov ebx, [ebp-4] |
cmp ebx, 0x80000000 |
jae .user_space |
jae .kernel_space |
cmp ebx, page_tabs+0x800 |
jae .tab_space |
cmp ebx, app_page_tabs |
jae .alloc |
cmp ebx, page_tabs |
jae .tab_space |
cmp ebx, 0x7DC00000 |
jae .lfb_addr |
jmp .kernel_space |
.user_space: |
shr ebx, 12 |
mov ecx, ebx |
/kernel/branches/flat_kernel/core/taskman.inc |
---|
392,20 → 392,21 |
mov [dir_addr], eax |
stdcall map_page,[tmp_task_pdir],eax,dword PG_SW |
mov esi, sys_pgdir |
mov edi, [tmp_task_pdir] |
mov ecx, (page_tabs shr 20)/4 |
mov ecx, (LFB_BASE shr 20)/4 ;(page_tabs shr 20)/4 |
xor eax, eax |
rep stosd |
mov esi, sys_pgdir+(LFB_BASE shr 20) ;(OS_BASE shr 20) |
mov ecx, (OS_BASE shr 20)/4 |
cld |
rep movsd |
mov edi, [tmp_task_pdir] |
mov eax, [dir_addr] |
or eax, PG_SW |
stosd ; [(page_tabs shr 20)]= eax |
mov [edi+(page_tabs shr 20)], eax |
mov ecx, 0x800/4 |
xor eax, eax |
rep stosd |
mov eax, [dir_addr] |
call set_cr3 |
471,7 → 472,6 |
add edx, 0x1000 |
dec [app_pages] |
jnz .alloc |
end if |
.done: |
557,8 → 557,7 |
and eax, not 0xFFF |
stdcall map_page,[tmp_task_pdir],eax,dword PG_SW |
mov esi, [tmp_task_pdir] |
add esi, 0x800 |
mov edi, 0x800/4 |
mov edi, (LFB_BASE shr 20)/4 |
.destroy: |
mov eax, [esi] |
test eax, 1 |
/kernel/branches/flat_kernel/data32.inc |
---|
149,7 → 149,7 |
dw 0 |
db 0 |
db cpl3 |
dw G32+D32+0x8000+0x7; |
dw G32+D32+(new_app_base shr 16)+0x7; |
app_data_l: |
dw 0xFFFF |
156,7 → 156,7 |
dw 0 |
db 0 |
db drw3 |
dw G32+D32+0x8000+0x7; |
dw G32+D32+(new_app_base shr 16)+0x7; |
; --------------- APM --------------------- |
apm_code_32: |
/kernel/branches/flat_kernel/fdo.inc |
---|
230,7 → 230,7 |
pushad |
movzx ebx,al |
mov eax,1 |
call sys_msg_board |
; call sys_msg_board |
popad |
ret |
debug_endf |
243,7 → 243,7 |
movzx ebx,byte[edx] |
or bl,bl |
jz .l2 |
call sys_msg_board |
; call sys_msg_board |
inc edx |
jmp .l1 |
.l2: ret |
/kernel/branches/flat_kernel/fs/fat12.inc |
---|
1891,7 → 1891,11 |
jnz .ret |
dec edi |
dec edi |
lea eax, [edi-(FLOPPY_FAT)] |
; lea eax, [edi-FLOPPY_FAT] |
mov eax, edi |
sub edi, FLOPPY_FAT |
shr eax, 1 ; eax = cluster |
mov word [edi], 0xFFF ; mark as last cluster |
xchg edi, [esp+4] |
/kernel/branches/flat_kernel/init.inc |
---|
32,7 → 32,6 |
align 4 |
proc init_mem |
mov eax, [MEM_AMOUNT-OS_BASE] |
mov [pg_data.mem_amount-OS_BASE], eax |
mov [pg_data.kernel_max-OS_BASE], eax |
74,20 → 73,20 |
sub [pg_data.kernel_tables-OS_BASE], 2 |
mov [edx], eax |
mov [edx+16], eax |
mov [edx+(OS_BASE shr 20)], eax |
add eax, 0x00400000 |
mov [edx+4], eax |
mov [edx+20], eax |
mov [edx+(OS_BASE shr 20)+4], eax |
add eax, 0x00400000 |
mov [edx+8], eax |
mov [edx+24], eax |
mov [edx+(OS_BASE shr 20)+8], eax |
add eax, 0x00400000 |
mov [edx+12], eax |
mov [edx+28], eax |
add edx, 32 |
mov [edx+(OS_BASE shr 20)+12], eax |
add edx, (OS_BASE shr 20)+16 |
add eax, 0x00400000 |
; mov eax, 0x800000+PG_SW |
128,7 → 127,7 |
proc init_page_map |
mov edi, sys_pgmap-OS_BASE |
mov ecx, (HEAP_BASE/4096)/32 ;384/4 |
mov ecx, ((HEAP_BASE-OS_BASE)/4096)/32 ;384/4 |
mov ebx, ecx |
xor eax,eax |
cld |
143,8 → 142,8 |
lea edi, [sys_pgmap-OS_BASE+ebx*4] ;+384 |
mov edx, [pg_data.pages_count-OS_BASE] |
mov ecx, [pg_data.kernel_tables-OS_BASE] |
add ecx, (HEAP_BASE/4096) and 31 |
sub edx, HEAP_BASE/4096 |
add ecx, ((HEAP_BASE-OS_BASE)/4096) and 31 |
sub edx, (HEAP_BASE-OS_BASE)/4096 |
sub edx, ecx |
mov [pg_data.pages_free-OS_BASE], edx |
/kernel/branches/flat_kernel/kernel.asm |
---|
163,7 → 163,7 |
xor eax,eax |
mov edi,0x280000 |
mov ecx,(HEAP_BASE-0x280000) / 4 |
mov ecx,(HEAP_BASE-OS_BASE-0x280000) / 4 |
cld |
rep stosd |
202,6 → 202,7 |
mov eax,cr0 |
or eax,CR0_PG |
mov cr0,eax |
lgdt [gdts] |
jmp pword os_code:high_code |
210,7 → 211,6 |
include 'init.inc' |
org OS_BASE+$ |
include 'fdo.inc' |
align 4 |
high_code: |
353,7 → 353,6 |
call init_LFB |
call init_fpu |
call init_malloc |
stdcall alloc_kernel_space, 0x4F000 |
382,7 → 381,6 |
mov [ipc_ptab], eax |
call init_events |
mov eax, srv.fd-SRV_FD_OFFSET |
mov [srv.fd], eax |
mov [srv.bk], eax |
731,6 → 729,7 |
include 'unpacker.inc' |
include 'fdo.inc' |
align 4 |
boot_log: |
1293,11 → 1292,15 |
mov eax,[esp+64+32-8+4] |
push edx ; add window start x & y |
mov edx,[TASK_BASE] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
mov ebx,[edx-twdw+WDATA.box.left] |
add ebx, [(edx-CURRENT_TASK)*8+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add ebx,[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
shl ebx,16 |
add ebx,[edx-twdw+WDATA.box.top] |
add ebx, [(edx-CURRENT_TASK)*8+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add ebx,[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add eax,ebx |
pop edx |
mov ebx,[esp+64+32-12+4] |
2476,7 → 2479,7 |
mov esi,[esp] |
shl esi,5 |
add esi,window_data + WDATA.box |
mov al,[esi+window_data+WDATA.fl_wstate] |
mov al,[esi+WDATA.fl_wstate] |
mov [edi],al |
pop ebx |
2488,9 → 2491,6 |
mov [esp+36],eax |
ret |
align 4 |
sys_clock: |
cli |