Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 6316 → Rev 6317

/kernel/branches/Kolibri-acpi/bootloader/boot_fat12.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/floppy1743.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/floppy1680.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/floppy2880.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win/kordldr.win.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win/ntfs.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win/fat.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win/kordldr.win.txt
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/after_win
Property changes:
Deleted: bugtraq:number
-true
\ No newline at end of property
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat32/kordldr.f32.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat32/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat32/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat32/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat32
Property changes:
Deleted: bugtraq:number
-true
\ No newline at end of property
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/cdfs/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/cdfs/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/cdfs/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/cdfs
Property changes:
Deleted: bugtraq:number
-true
\ No newline at end of property
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat1x/kordldr.f1x.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat1x/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat1x/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat1x/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader/fat1x
Property changes:
Deleted: bugtraq:number
-true
\ No newline at end of property
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/bootloader/extended_primary_loader
Property changes:
Deleted: bugtraq:number
-true
\ No newline at end of property
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/bootloader/floppy1440.inc
File deleted
/kernel/branches/Kolibri-acpi/bootloader/readme
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat1x/kordldr.f1x.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat1x/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat1x/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat1x/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat1x
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/build.bat
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/PrimaryLoader.txt
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/mkfloppy.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win/kordldr.win.txt
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win/kordldr.win.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win/ntfs.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win/fat.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/after_win
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/floppy.asc
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat32/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat32/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat32/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat32/kordldr.f32.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/fat32
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/cdfs/bootsect.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/cdfs/build.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/cdfs/bootsect.txt
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot/cdfs
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader/trunk/debug_msg.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/loader.lst
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse_loader.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/sl_proc.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/build_ru.bat
File deleted
\ No newline at end of file
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse_dat.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/startos.ini
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse_def_sect.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/listing.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/boot_st.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/loader.asm
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse_any.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/parse_err.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk/sl_equ.inc
File deleted
/kernel/branches/Kolibri-acpi/sec_loader/trunk
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/sec_loader
Property changes:
Deleted: tsvn:logminsize
-5
\ No newline at end of property
/kernel/branches/Kolibri-acpi/const.inc
501,7 → 501,7
terminate_protection dd ? ;+176
keyboard_mode db ? ;+180
rb 3
dd ? ;+184
exec_params dd ? ;+184
dbg_event_mem dd ? ;+188
dbg_regs DBG_REGS ;+192
wnd_caption dd ? ;+212
/kernel/branches/Kolibri-acpi/core/memory.inc
575,15 → 575,6
cmp ebx, kernel_tabs
jb .alloc;.app_tabs ;таблицы страниц приложения ;
;просто создадим одну
if 0 ;пока это просто лишнее
cmp ebx, LFB_BASE
jb .core_tabs ;таблицы страниц ядра
;Ошибка
.lfb:
;область LFB
;Ошибка
jmp .fail
end if
.core_tabs:
.fail: ;simply return to caller
mov esp, ebp
/kernel/branches/Kolibri-acpi/core/string.inc
115,6 → 115,7
proc strnlen stdcall, s:dword, n:dword
 
push edi
mov ecx, [n]
mov edi, [s] ; edi = string
xor al, al ; Look for a zero byte
mov edx, ecx ; Save maximum count
/kernel/branches/Kolibri-acpi/core/taskman.inc
30,13 → 30,17
i_icon dd ? ;+32
ends
 
 
struct APP_PARAMS
app_cmdline dd ? ;0x00
app_path dd ? ;0x04
app_eip dd ? ;0x08
app_esp dd ? ;0x0C
app_mem dd ? ;0x10
struct APP_HDR
cmdline rd 1 ;0x00
path rd 1 ;0x04
eip rd 1 ;0x08
esp rd 1 ;0x0C
_edata rd 1 ;0x10
_emem rd 1 ;0x14
img_base rd 1 ;0x18
img_size rd 1
filename_size rd 1
cmdline_size rd 1
ends
 
macro _clear_ op
46,163 → 50,73
rep stosd
}
 
 
_strlen:
mov ecx, 0xFFFFFFFF
xor eax, eax
repne scasb
mov eax, 0xFFFFFFFE
sub eax, ecx
retn
 
 
fs_execute_from_sysdir:
xor ebx, ebx
fs_execute_from_sysdir_param:
xor edx, edx
mov esi, sysdir_path
 
align 4
proc fs_execute
 
;fn_read:dword, file_size:dword, cluster:dword
 
; ebx - cmdline
; edx - flags
; ebp - full filename
; [esp+4] = procedure DoRead, [esp+8] = filesize & [esp+12]... - arguments for it
 
locals
cmdline_size dd ? ; +0 ; cmdline -12
cmdline_adr dd ? ; +4 ; cmdline -8
cmdline_flag dd ? ; +8 ; cmdline -4
cmdline rd 64 ;256/4
filename rd 256 ;1024/4
flags dd ?
filename rd 1
cmdline rd 1
flags rd 1
 
save_proc dd ?
slot dd ?
slot_base dd ?
file_base dd ?
file_size dd ?
; handle dd ? ;temp. for default cursor handle for curr. thread
slot rd 1
slot_base rd 1
 
;app header data
hdr_cmdline dd ? ;0x00
hdr_path dd ? ;0x04
hdr_eip dd ? ;0x08
hdr_esp dd ? ;0x0C
hdr_mem dd ? ;0x10
hdr_i_end dd ? ;0x14
 
hdr_cmdline rd 1 ;0x00
hdr_path rd 1 ;0x04
hdr_eip rd 1 ;0x08
hdr_esp rd 1 ;0x0C
hdr_edata rd 1 ;0x10
hdr_emem rd 1 ;0x14
file_base rd 1 ;0x18
file_size rd 1 ;0x1c
filename_size rd 1 ;0x20
cmdline_size rd 1 ;0x24
 
endl
 
pushad
 
; cmp [SCR_MODE], word 0x13
; jbe @f
; pushad
; stdcall set_cursor, [def_cursor_clock]
; mov [handle], eax
; mov [redrawmouse_unconditional], 1
; call wakeup_osloop
; popad
;@@:
xchg bx, bx
mov eax, [ebp]
mov [flags], edx
 
; [ebp] pointer to filename
 
lea edi, [filename]
lea ecx, [edi+1024]
mov al, '/'
stosb
@@:
cmp edi, ecx
jae .bigfilename
lodsb
stosb
test al, al
jnz @b
mov esi, [ebp]
test esi, esi
jz .namecopied
mov byte [edi-1], '/'
@@:
cmp edi, ecx
jae .bigfilename
lodsb
stosb
test al, al
jnz @b
jmp .namecopied
.bigfilename:
popad
mov eax, -ERROR_FILE_NOT_FOUND
 
jmp .final
 
.namecopied:
xor eax, eax
mov [cmdline_flag], eax
mov [cmdline_adr], eax
mov [cmdline_size], eax
 
mov [cmdline], ebx
test ebx, ebx
jz .no_copy
;--------------------------------------
pushad
pushfd
mov esi, ebx
mov ecx, 65536 ; 64 Kb max for ext.cmdline
cld
@@:
dec ecx
jz .end_string
mov [filename], eax
 
lodsb
test al, al
jnz @b
call lock_application_table
 
.end_string:
mov eax, 65536 ; 64 Kb max for ext.cmdline
sub eax, ecx
mov [cmdline_size], eax
cmp eax, 255
ja @f
 
popfd
popad
jmp .old_copy
 
@@:
xor eax, eax
dec eax
mov [cmdline_flag], eax
popfd
popad
; get memory for the extended command line
stdcall kernel_alloc, [cmdline_size] ;eax
call alloc_thread_slot
mov esi, -0x20 ; too many processes
test eax, eax
jz .old_copy ; get memory failed
jz .err_0
 
mov [cmdline_adr], eax
mov [slot], eax
shl eax, 8
add eax, SLOT_BASE
mov [slot_base], eax
 
pushad
pushfd
mov esi, ebx
mov edi, eax
mov ecx, [cmdline_size]
cld
rep movsb
popfd
popad
jmp .no_copy
 
.old_copy:
; clear flag because old method with 256 bytes
xor eax, eax
mov [cmdline_flag], eax
;--------------------------------------
lea eax, [cmdline]
mov dword [eax+252], 0
.copy:
stdcall strncpy, eax, ebx, 255
.no_copy:
lea eax, [filename]
mov eax, [filename]
stdcall load_file, eax
 
mov esi, -ERROR_FILE_NOT_FOUND
test eax, eax
jz .err_file
jz .err_0
 
mov [file_base], eax
mov [file_size], ebx
213,20 → 127,13
test eax, eax
jz .err_hdr
 
call lock_application_table
;clean extended information about process
mov edi, [slot_base]
mov ecx, 265/4
xor eax, eax
cld
rep stosd
 
call alloc_thread_slot
test eax, eax
mov esi, -0x20 ; too many processes
jz .err
 
mov [slot], eax
shl eax, 8
add eax, SLOT_BASE
mov [slot_base], eax
mov edi, eax
_clear_ 256 ;clean extended information about process
 
; write application name
lea eax, [filename]
stdcall strrchr, eax, '/' ; now eax points to name without path
246,20 → 153,32
jz .copy_process_name_done
stosb
loop .copy_process_name_loop
 
.copy_process_name_done:
 
mov ebx, [current_process]
mov [save_proc], ebx
mov edi, [cmdline]
xor eax, eax
test edi, edi
jz @F
 
stdcall create_process, [hdr_mem], [file_base], [file_size]
call _strlen
cmp eax, 256
jb @F
lea ebx, [eax+1]
add [hdr_emem], ebx
@@:
mov [cmdline_size], eax
 
stdcall create_process, [hdr_emem]
 
mov esi, -30; no memory
test eax, eax