Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6672 → Rev 6673

/programs/fs/kfar/trunk/kfar_arc/archiver_deflate.txt
1,4 → 1,7
archiver.obj ýêñïîðòèðóåò äâå ôóíêöèè äëÿ ðàñïàêîâêè deflate-äàííûõ.
À òàêæå ôóíêöèè: deflateInit, deflateInit2, deflateReset, deflate,
deflateEnd äëÿ óïàêîâêè deflate-äàííûõ, ñäåëàííûå íà îñíîâå ñâîáîäíî
ðàñïðîñòðàíÿåìîé áèáëèîòåêè zlib.
 
Ïåðâàÿ: deflate_unpack
Îáúÿâëåíèå â ñòèëå Ñè: void* __stdcall deflate_unpack(const void* data, unsigned* pLength);
64,3 → 67,17
mov [ecx], length
mov eax, buffer
ret 8
 
Àëãîðèòì äëÿ óïàêîâêè äàííûõ:
1) Âûçîâ ôóíêöèè deflateInit èëè deflateInit2.
2) Ðàçáèåíèå âõîäíîãî ïîòîêà äàííûõ íà ïîðöèè ïî 64 Êá.
Äëÿ êàæäîãî áëîêà â 64 Êá â öèêëå äîëæåí äåëàòüñÿ âûçîâ ôóíêöèè deflate.
Çà îäèí âûçîâ ôóíêöèè deflate ñæàòûõ äàííûõ îáðàçóåòñÿ íå áîëåå 16 Êá.
Ò. å. åñëè ñæèìàåìûõ äàííûõ ìåíåå 16 Êá, òî èõ ìîæíî óïàêîâàòü çà îäèí âûçîâ deflate.
Åñëè ñæèìàåìûõ äàííûõ ìåíåå 64 Êá, òî èõ ìîæíî óïàêîâàòü îðãàíèçîâàâ îäèí öèêë ñ âûçîâîì deflate.
Åñëè ñæèìàåìûõ äàííûõ áîëåå 64 Êá, òî èõ ìîæíî óïàêîâàòü îðãàíèçîâàâ äâîéíîé öèêë ñ âûçîâîì deflate.
3) Âûçîâ ôóíêöèè deflateEnd äëÿ î÷èñòêè ïàìÿòè.
Çàìå÷àíèÿ:
Áîëüøèå óðîâíè ñæàòèÿ ïîêà ÷òî íå ïîääåðæèâàþòñÿ.
Ôóíêöèÿ deflate íå êîðåêòíî ðàáîòàåò ñ ïàðàìåòðîì Z_NO_FLUSH.
(Ïîêà ïðîáëåìà íå óñòðàíåíà ðåêîìåíäóåòñÿ âñåãäà ñòàâèòü Z_FINISH)
/programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm
3,7 → 3,7
; target platform: KolibriOS
; compiler: FASM 1.67.14
; version: 0.17
; last update: 2009-09-03 (Sep 03, 2009)
; last update: 2016-11-04 (Nov 04, 2016)
; minimal KFar version: 0.43
; minimal kernel: no limit
;
32,6 → 32,7
include '7zaes.inc' ; AES cryptor for *.7z
include 'zip.inc' ; *.zip
include 'deflate.inc' ; Deflate[64] decoder for *.7z and *.zip
include '../zlib/zlib.asm' ; deflate coder
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;; Interface for KFar ;;;;;;;;;;;;;;
1242,9 → 1243,9
mov ecx, 10000h
jmp [eax+streamInfo.fillBuf]
@@:
push 68
push SF_SYS_MISC
pop eax
push 20
push SSF_MEM_REALLOC
pop ebx
int 0x40
test eax, eax
1280,9 → 1281,9
jnz @f
inc ecx
@@:
push 68
push SF_SYS_MISC
pop eax
push 20
push SSF_MEM_REALLOC
pop ebx
int 0x40
test eax, eax
1297,9 → 1298,9
and ecx, 3
rep movsb
push eax
push 68
push SF_SYS_MISC
pop eax
push 13
push SSF_MEM_FREE
pop ebx
lea ecx, [ebp-streamInfo.size-8]
int 40h
1306,9 → 1307,9
pop eax
jmp .ret
.nomem:
push 68
push SF_SYS_MISC
pop eax
push 13
push SSF_MEM_FREE
pop ebx
test edx, edx
jz @f
1342,9 → 1343,9
ret
 
mypgalloc:
push 68
push SF_SYS_MISC
pop eax
push 12
push SSF_MEM_ALLOC
pop ebx
int 0x40
ret
1371,6 → 1372,13
dd aClose, myclose
dd aDeflateUnpack, deflate_unpack
dd aDeflateUnpack2,deflate_unpack2
dd adeflateInit, deflateInit
dd adeflateInit2, deflateInit2
dd adeflateReset, deflateReset
dd adeflate, deflate
dd adeflateEnd, deflateEnd
dd azError, zError
dd acalc_crc32, calc_crc32
dd 0
 
; exported names
1389,6 → 1397,13
aClose db 'close',0
aDeflateUnpack db 'deflate_unpack',0
aDeflateUnpack2 db 'deflate_unpack2',0
adeflateInit db 'deflateInit',0
adeflateInit2 db 'deflateInit2',0
adeflateReset db 'deflateReset',0
adeflate db 'deflate',0
adeflateEnd db 'deflateEnd',0
azError db 'zError',0
acalc_crc32 db 'calc_crc32',0
 
; common strings
if lang eq ru
1512,6 → 1527,8
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;; Uninitialized data ;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
purge data ;used in 'macros.inc'
purge section ;used in 'macros.inc'
 
section '.udata' data readable writable align 16
kfar_info dd ?
/programs/fs/kfar/trunk/zlib/build.bat
1,5 → 1,3
@fasm.exe -m 32768 zlib.asm zlib.obj
@kpack zlib.obj
@fasm.exe -m 32768 example1.asm example1.kex
@kpack example1.kex
pause
/programs/fs/kfar/trunk/zlib/crc32.asm
23,8 → 23,8
 
align 4
crc_table_empty dd 1
align 4
crc_table rd TBLS*256
;align 4
;crc_table rd TBLS*256
 
; Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
; x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
/programs/fs/kfar/trunk/zlib/example1.asm
245,12 → 245,6
align 4
import_archiver:
deflate_unpack dd sz_deflate_unpack
dd 0,0
sz_deflate_unpack db 'deflate_unpack',0
 
align 4
import_zlib:
; dd sz_lib_init
deflateInit dd sz_deflateInit
deflateInit2 dd sz_deflateInit2
deflateReset dd sz_deflateReset
257,10 → 251,8
deflate dd sz_deflate
deflateEnd dd sz_deflateEnd
calc_crc32 dd sz_calc_crc32
 
dd 0,0
 
; sz_lib_init db 'lib_init',0
sz_deflate_unpack db 'deflate_unpack',0
sz_deflateInit db 'deflateInit',0
sz_deflateInit2 db 'deflateInit2',0
sz_deflateReset db 'deflateReset',0
272,21 → 264,14
system_dir_0 db '/sys/lib/'
lib_name_0 db 'archiver.obj',0
 
system_dir_1 db '/sys/lib/'
lib_name_1 db 'zlib.obj',0
 
err_message_found_lib0 db 'Sorry I cannot load library archiver.obj',0
err_message_found_lib1 db 'Sorry I cannot load library zlib.obj',0
head_f_i:
head_f_l db 'System error',0
err_message_import0 db 'Error on load import library archiver.obj',0
err_message_import1 db 'Error on load import library zlib.obj',0
 
l_libs_start:
lib0 l_libs lib_name_0, cur_dir_path, library_path, system_dir_0,\
err_message_found_lib0, head_f_l, import_archiver,err_message_import0, head_f_i
lib1 l_libs lib_name_1, cur_dir_path, library_path, system_dir_1,\
err_message_found_lib1, head_f_l, import_zlib, err_message_import1, head_f_i
load_lib_end:
;---------------------------------------------------------------------
 
/programs/fs/kfar/trunk/zlib/zlib.asm
1,8 → 1,4
format MS COFF
public EXPORTS
 
section '.flat' code readable align 16
 
include '../../../../proc32.inc'
include '../../../../macros.inc'
include '../../../../KOSfuncs.inc'
44,7 → 40,7
include 'zlib.inc'
include 'deflate.inc'
include 'zutil.asm'
include '../kfar_arc/crc.inc'
;include '../kfar_arc/crc.inc'
include 'crc32.asm'
include 'adler32.asm'
include 'trees.asm'
170,25 → 166,3
@@:
ret
 
; export table
align 4
EXPORTS:
dd adeflateInit, deflateInit
dd adeflateInit2, deflateInit2
dd adeflateReset, deflateReset
dd adeflate, deflate
dd adeflateEnd, deflateEnd
dd adeflateCopy, deflateCopy
dd azError, zError
dd acalc_crc32, calc_crc32
dd 0
 
; exported names
adeflateInit db 'deflateInit',0
adeflateInit2 db 'deflateInit2',0
adeflateReset db 'deflateReset',0
adeflate db 'deflate',0
adeflateEnd db 'deflateEnd',0
adeflateCopy db 'deflateCopy',0
azError db 'zError',0
acalc_crc32 db 'calc_crc32',0
/programs/fs/kfar/trunk/zlib/zlib.inc
226,30 → 226,15
; unsigned char *next;
; z_off64_t pos;
;};
;int gzgetc_ OF((gzFile file)); /* backward compatibility */
;if Z_PREFIX_SET
 
if Z_PREFIX_SET eq 1
;# undef z_gzgetc
;# define z_gzgetc(g) \
; ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
;#else
else
;# define gzgetc(g) \
; ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
end if
 
; provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
; change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
; both are true, the application gets the *64 functions, and the regular
; functions are changed to 64 bits) -- in case these are set on systems
; without large file support, _LFS64_LARGEFILE must also be true
end if
 
; undocumented functions
;const char * zError OF((int));
;int inflateSyncPoint OF((z_streamp));
;const z_crc_t FAR * get_crc_table OF((void));
;int inflateUndermine OF((z_streamp, int));
;int inflateResetKeep OF((z_streamp));
;#if defined(_WIN32) && !defined(Z_SOLO)
;gzFile gzopen_w OF((const wchar_t *path,
; const char *mode));
;end if