File system: new function 70.4 to set file size

Graphics: fixed error when putimage and drawrect do not draw pixels
          on right and bottom window sides
Processes: fixed kernel fault when program to load is too big
Programs: EYES: now it works with new kernel (rev. 130). Size optimization.
                Blinking deleted.

git-svn-id: svn://kolibrios.org@133 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond)
2006-08-21 13:06:02 +00:00
parent 8df5cba38d
commit ec76c66cd2
19 changed files with 1571 additions and 1239 deletions

View File

@@ -35,10 +35,9 @@ file_system:
; IN:
;
; eax = 0 ; read file /RamDisk/First 6 /HardDisk/First 30
; eax = 0 ; read file /RamDisk/First 6
; eax = 1 ; write file /RamDisk/First 33 /HardDisk/First 56
; eax = 2 ; delete file /RamDisk/First 32 /HardDisk/First 57
; eax = 3 ; append to a file /RamDisk/First ?? /HardDisk/First ??
; eax = 2 ; delete file /RamDisk/First 32
; eax = 4 ; makedir
; eax = 5 ; rename file/directory
; eax = 8 ; lba read
@@ -103,10 +102,7 @@ file_system:
jz no_checks_for_kernel
mov edx,eax
cmp dword [eax+0],1
jz .check_for_write_op
cmp dword [eax+0],3
jnz .usual_check
.check_for_write_op:
mov ebx,[eax+12]
add ebx,std_application_base_address
mov ecx,[eax+8]
@@ -139,13 +135,6 @@ endg
mov eax,edx
no_checks_for_kernel:
cmp dword [eax+0],3 ; APPEND - allow write 0 bytes (truncate)
je fs_read
cmp dword [eax+8],0 ; read or write 0 blocks/bytes ?
jne fs_read
and dword [esp+36],0
ret
fs_read:
mov ebx,[eax+20] ; program wants root directory ?
@@ -602,27 +591,6 @@ hd_err_return:
fs_noharddisk_delete:
cmp dword [esp+20],3 ; APPEND
jne fs_noharddisk_append
mov eax,[esp+0] ; /dirname or /filename
mov byte [eax],0 ; path to asciiz
inc eax ; filename start
mov edx,[esp+4]
add edx,12*2 ; path start
mov ecx,[esp+8] ; buffer
mov ebx,[esp+12] ; count to write
mov esi,[esp+16] ; bytes to skip over
call file_append
mov edi,[esp+0]
mov byte [edi],'/'
jmp file_system_return
fs_noharddisk_append:
cmp dword [esp+20],4 ; MAKEDIR
jne fs_noharddisk_makedir