0,0 → 1,176 |
@RCHER FOR MENUET v1.0 July 14, 2005 |
Written in pure assembler by Ivushkin Andrey aka Willow |
|
Deflate unpacker |
|
Vivat assembler et MENUETOS! |
I tender thanks to everyone who spends his time in feasible effortsfor that |
little OS evolution. Now in my own rating the Mario79's distro named Kolibri4 |
takes 1th place. It is always pleasant to use modern software. Go on! |
|
@RCHER is intended to view & unpack data compressed by Deflate method |
(including both static and dynamic Huffman). This method (although it isn't the |
best already) is used by such file formats as ZIP (modern versions: PKZIP for |
MS-DOS can create archives using other, less effective compression methods, |
which @RCHER doesn't support), GZIP, JAR, OpenOffice files, SFX ZIP executables |
and some others. I couldn't prevent myself to include support of PNG images |
(they use the similar compression) and TAR and TAR+GZIP archives. |
|
When the program is started, a little button carrying a @ symbol appears in the |
left top corner of screen. Clicking this button opens a SYSXTREE dialog to |
select a file being unpacked. Doubleclick closes the application. @RCHER |
outputs its information messages to Debug Board. If an archive contains more |
than one file, the 1st is by default unpacked into /HD/1/OUT.TXT (you may |
change the DUMPFILE constant in @RCHER.ASM) and is opened through TINYPAD |
or - if it's a PNG image - in the built-in viewer. |
|
These are unpacking flags that may exist in a commandline before an archive |
filename: |
|
s - do not close the program after unpacking; |
n - decompress the K-th archive file, where K is the following dword in |
commandline; |
N - decompress the K-th archive file, where K is ASCII number from the |
following 6 bytes of commandline; |
R - "raw" Deflate data, without descriptors and headers; |
q - begin file parsing from offset of K, where K is following dword in |
commandline; |
Q - begin file parsing from offset of K, where K is ASCII number from the |
following 6 bytes of commandline. |
|
Commandline example: |
|
cmd_string: |
db 'sN000037q' |
dd 1465 |
db '/hd/1/png.zip',0 |
|
It means to open the 34th (counting from 0) file of archive /hd/1/png.zip |
and do not terminate. Archive will be parsed starting at offset 1465. |
|
|
To-Do list: |
|
1. Support for interlaced PNG, alpha-channels, gamma-correction, background, |
Significant bits and a lot of cool parts of that format. |
2. Output of archive content through IPC or into a built-in window like SYSTREE |
(as we are going to decide with the respected colleagues). |
3. Searching of archive files by name and wildcards! |
4. Unpacking into a file specified. |
5. Means on saving memory space (now @RCHER gorges 8 Mb!): moving RAM areas, |
blocked file output. To do the last thing it is necessary to test carefully |
the reliability of harddisk I/O, directory creation and file deletion. These |
kernel capabilities aren't still documented. |
6. Archive contents integration into SYSXTREE & MFAR filemanagers. We have to |
unify the calling format (like a structure in the sysfunc 58). |
7. Add comments to source. |
8. Correct bugs to be found |
|
Special thanks to: |
|
Explanation of algorythm of Deflate format decoder with decoding samples |
(evm.narod.ru) |
RFC 1951 DEFLATE Compressed Data Format Specification version 1.3 |
ZIP File Format Specification version 4.5 by PKWARE Inc. |
"An Explanation of the Deflate Algorithm" by Antaeus Feldspar |
RFC 1952 GZIP file format specification version 4.3 |
TAR Format. Information from File Format List 2.0 by Max Maischein. |
RFC 1950 ZLIB Compressed Data Format Specification version 3.3 |
PNG (Portable Network Graphics) Specification version 1.0 |
Michael Dipperstein's Huffman Code Page |
|
I expect your remarks and suggestions on the @RCHER's topic, "Coding" section |
at meos.sysbin.com forum. |
|
See you later! |
|
|
**************************************** |
**************************************** |
|
@RCHER MENUET v1.0 14 ¨î«ï 2005 £. |
¯¨á ç¨á⮬ áᥬ¡«¥à¥ ¢ãèª¨ë¬ ¤à¥¥¬ (Willow) |
|
Deflate à ᯠª®¢é¨ª |
|
Vivat assembler et MenuetOS! |
ëà ¦ î ¨áªà¥îî ¡« £®¤ à®áâì ¢á¥¬ ⥬, ªâ® ¥ ¦ «¥ï ᢮¥£® ¢à¥¬¥¨, |
¤¥« ¥â ¯®á¨«ìë© ¢ª« ¤ ¢ à §¢¨â¨¥ í⮩ ¬ «¥ìª®© . ¥©ç á ¢ ¬®¥¬ ᮡá⢥®¬ |
३⨣¥ 1-¥ ¬¥áâ® § ¨¬ ¥â ¤¨áâਡã⨢ Mario79 Kolibri4. ᥣ¤ ¯à¨ïâ® |
¯®«ì§®¢ âìáï ᮢ६¥ë¬ . ª ¤¥à¦ âì! |
|
@RCHER ¯à¥¤ § ç¥ ¤«ï ¯à®á¬®âà ¨ à ᯠª®¢ª¨ ¤ ëå, ᦠâëå á ¯®¬®éìî ¬¥â®¤ |
Deflate (¢ª«îç ï áâ â¨ç¥áª¨© ¨ ¤¨ ¬¨ç¥áª¨© ää¬ ). ë¬ ¬¥â®¤®¬ (å®âï ® |
㦥 ¥ ¯à¥â¥¤ã¥â §¢ ¨¥ ¨«ãç襣®) ¯®«ì§ãîâáï ä®à¬ âë ä ©«®¢ ZIP |
(ᮢ६¥ë¥ ¢¥àᨨ: PKZIP ¤«ï MS-DOS ¬®¦¥â ᮧ¤ ¢ âì à娢ë á ¤à㣨¬¨, ¬¥¥¥ |
íä䥪⨢묨 ¬¥â®¤ ¬¨ ᦠâ¨ï, ª®â®àë¥ @RCHER ¥ ¯®¤¤¥à¦¨¢ ¥â), GZIP, JAR, |
ä ©«ë OpenOffice, SFX-ZIP ¯à¨«®¦¥¨ï ¨ àï¤ ¤à㣨å. ¥ ¬®£ 㤥ঠâìáï ¨ ¥ |
ᤥ« âì ¯®¤¤¥à¦ªã ¨§®¡à ¦¥¨© ¢ ä®à¬ ⥠PNG (¨á¯®«ì§ãîé¨å தáâ¢¥ë© ¬¥â®¤ |
ᦠâ¨ï) ¨ à娢®¢ TAR ¨ TAR+GZIP. |
|
ਠ§ ¯ã᪥ ¯à®£à ¬¬ë ¢ «¥¢®¬ ¢¥à奬 㣫ã íªà ¯®ï¢«ï¥âáï ¬ «¥ìª ï ª®¯ª |
á® § 窮¬ @. ਠ¦ ⨨ ¥¥ ®âªàë¢ ¥âáï ®ª® ¢ë¡®à ä ©« (SYSXTREE) ¤«ï |
à ᯠª®¢ª¨. ¢®©®© 饫箪 § ªàë¢ ¥â ¯à¨«®¦¥¨¥. ä®à¬ æ¨®ë¥ á®®¡é¥¨ï |
@RCHER ¢ë¢®¤¨â ¤®áªã ®â« ¤ª¨.
᫨ à娢 ᮤ¥à¦¨â ¥áª®«ìª® ä ©«®¢, ¯® |
㬮«ç ¨î ¯¥à¢ë© ¨§ ¨å à ᯠª®¢ë¢ ¥âáï /HD/1/OUT.TXT (¯®¬¥ï©â¥ ¯à¨ |
¥®¡å®¤¨¬®á⨠ª®áâ âã DUMPFILE ¢ @RCHER.ASM) ¨ ®âªàë¢ ¥âáï ç¥à¥§ TINYPAD |
¨«¨ - ¢ á«ãç ¥ ª à⨪¨ PNG - ¢ ®ª¥ ¢áâ஥®£® ¯à®á¬®âà騪 . |
|
ª®¬ ¤®© áâப¥ ¯¥à¥¤ ¨¬¥¥¬ à娢 ¬®£ãâ ¢ ¯à®¨§¢®«ì®¬ ¯®à浪¥ 㪠§ë¢ âìáï |
ä« £¨ à ᯠª®¢ª¨: |
|
s - ¥ § ªàë¢ âì ¯à®£à ¬¬ã ¯®á«¥ à ᯠª®¢ª¨; |
n - à ᯠª®¢ âì K-© ä ©« à娢 , £¤¥ K - á«¥¤ãî騩 dword ¢ ª®¬ ¤®© áâப¥; |
N - à ᯠª®¢ âì K-© ä ©« à娢 , £¤¥ K - ASCII ç¨á«® ¨§ á«¥¤ãîé¨å 6 ¡ ©â |
ª®¬ ¤®© áâப¨; |
R - "áëàë¥" Deflate-¤ ë¥, ¡¥§ ®¯¨á ⥫¥© ¨ § £®«®¢ª®¢; |
q - ¯à®á¬®âà ä ©« ç âì ᮠᬥ饨ï K, £¤¥ K - á«¥¤ãî騩 dword ¢ ª®¬ ¤®© |
áâப¥; |
Q - ¯à®á¬®âà ä ©« ç âì ᮠᬥ饨ï K, £¤¥ K - ASCII ç¨á«® ¨§ á«¥¤ãîé¨å 6 |
¡ ©â ª®¬ ¤®© áâப¨. |
|
ਬ¥à ª®¬ ¤®© áâப¨: |
|
cmd_string: |
db 'sN000037q' |
dd 1465 |
db '/hd/1/png.zip',0 |
|
â® ®§ ç ¥â, çâ® á«¥¤ã¥â ®âªàëâì 34-© (áç¨â ï ®â 0) ä ©« à娢 /hd/1/png.zip |
¨ ¥ § ¢¥àè âì à ¡®âã. à®á¬®âà à娢 ç¥âáï ᮠᬥ饨ï 1465. |
|
|
â® ¥é¥ 㦮 ᤥ« âì: |
|
1. ®¤¤¥à¦ª ç¥à¥ááâà®çëå (interlaced) PNG, â ª¦¥ «ìä -ª «®¢, £ ¬¬ë, |
ä® , Significant bits ¨ ªãç¨ ¤àã£¨å ¯à¨¬®ç¥ª í⮣® ä®à¬ â . |
2. 뢮¤ ᮤ¥à¦¨¬®£® à娢®¢ ç¥à¥§ IPC ¨«¨ ¢® ¢áâ஥®¬ ®ª¥ ¯®¤®¡¨¥ SYSTREE |
(íâ® ª ª à¥è¨¬ á 㢠¦ ¥¬ë¬¨ ª®««¥£ ¬¨). |
3. ®¨áª ä ©«®¢ ¢ à娢¥ ¯® ¨¬¥¨ ¨ ¤ ¦¥ ¬ ᪥! |
4. ᯠª®¢ª ¢ 㪠§ ë© ä ©«. |
5. ¥à®¯à¨ïâ¨ï ¯® íª®®¬¨¨ ¯ ¬ï⨠(ᥩç á @RCHER ¦à¥â 8 ¡!): ¯¥à¥¬¥é¥¨¥ |
ãç á⪮¢ ¯ ¬ïâ¨, ¡«®çë© ¢ë¢®¤ ¢ ä ©«. «ï ¯®á«¥¤¥£® ¥®¡å®¤¨¬® âé â¥«ì® |
¯à®â¥áâ¨à®¢ âì ¤¥¦®áâì ¢®®¤ -¢ë¢®¤ , ᮧ¤ ¨ï ª â «®£®¢ ¨ 㤠«¥¨ï |
ä ©«®¢. ®ª í⨠¢®§¬®¦®á⨠ï¤à ¥ ¤®ªã¬¥â¨à®¢ ë. |
6. ⥣à æ¨ï à娢ëå ª â «®£®¢ ¢ ä ©«®¢ë¥ ¬¥¥¤¦¥àë SYSXTREE, MFAR. |
®âॡã¥âáï ã¨ä¨æ¨à®¢ âì ä®à¬ ⠢맮¢ ( ¯®¤®¡¨¥ áâàãªâãàë ¢ 58 äãªæ¨¨). |
7. ⪮¬¬¥â¨à®¢ âì ª®¤. |
8. á¯à ¢¨âì ¡ £¨, ª®â®àë¥, ¥á®¬¥®, ©¤ãâáï ;-) |
|
á®¡ë¥ ¡« £®¤ à®áâ¨: |
|
¯¨á ¨¥ «£®à¨â¬ ¤¥ª®¤¥à ä®à¬ â Deflate ¯à¨¬¥à å ¤¥ª®¤¨à®¢ ¨ï |
(evm.narod.ru) |
RFC 1951 DEFLATE Compressed Data Format Specification version 1.3 |
ZIP File Format Specification version 4.5 by PKWARE Inc. |
"An Explanation of the Deflate Algorithm" by Antaeus Feldspar |
RFC 1952 GZIP file format specification version 4.3 |
TAR Format. Information from File Format List 2.0 by Max Maischein. |
RFC 1950 ZLIB Compressed Data Format Specification version 3.3 |
PNG (Portable Network Graphics) Specification version 1.0 |
Michael Dipperstein's Huffman Code Page |
|
¤ã ¢ è¨å § ¬¥ç ¨© ¨ ¯à¥¤«®¦¥¨© ®¤®¨¬¥®© ¢¥âª¥ à §¤¥« "®¤¨£" ä®à㬠|
meos.sysbin.com |
|
® ®¢ëå ¢áâà¥ç! |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |