home *** CD-ROM | disk | FTP | other *** search
/ swCHIP 1991 January / swCHIP_95-1.bin / dos / arj241cz / arj241cz.exe / TECHNOTE.DOC < prev    next >
Text File  |  1994-09-12  |  10KB  |  203 lines

  1.  
  2.      TECHNICKÉ INFORMACE O ARJ                                    Zá⌐í 1994
  3.  
  4.  
  5.      ** DªLEÆITÉ ZMëNY ****************************************************
  6.  
  7.      Nêkteré programy, které usnadñují práci s archivaçními utilitami,
  8.      pouæívají k identifikaci ARJ archívu postup, kterÿ není spolehlivÿ.
  9.      Poçínaje ARJ verzí 2.39, existují dvê varianty "velkého" (ARJSFX)
  10.      samorozbalovacího modulu. Modul o délce 17kB umoæñuje zabezpeçení
  11.      archívu ochrannou obálkou ARJ-SECURITY, standardnê poæívanÿ modul
  12.      o délce 15kB pouæití obálky neumoæñuje. Poprvé v historii jsou
  13.      ve⌐ejnê popsána pole v hlaviçce ARJ archívu vyuæívaná bezpeçnostní
  14.      obálkou.
  15.  
  16.      Dal¿í zmênou je, æe hlavní hlaviçka ARJ archívu v samorozbalovacím
  17.      archívu nyní nenásleduje têsnê za dekompresním EXE modulem.
  18.  
  19.      ARJ pouæívá k identifikaci ARJ archívu stále stejnÿ postup, kterÿ
  20.      se od verze 1.00 nezmênil. Algoritmus je následující:
  21.  
  22.      (1) Najdi identifikaçní bajty hlaviçky ARJ archívu, 0x60 a 0xEA.
  23.      (2) P⌐eçti z dal¿ích dvou bajtû délku hlaviçky v bajtech
  24.      (3) Jestliæe délka hlaviçky p⌐ekroçí 2600 bajtû, vraƒ se zpátky
  25.          k identifikaçním bajtûm, posuñ se têsnê za nê a pokraçuj opêt
  26.          krokem (1).
  27.      (4) P⌐eçti hlaviçku archívu (délku zná¿)
  28.      (5) Spoçítej dvaat⌐icetibitovÿ kontrolní souçet (CRC) hlaviçky.
  29.      (6) P⌐eçti z dal¿ích çty⌐ bajtû uloæenÿ kontrolní souçet hlaviçky.
  30.      (7) Pokud se skuteçnÿ kontrolní souçet li¿í od uloæeného, vraƒ se
  31.          k identifikaçním bajtûm, posuñ se têsnê za nê a pokraçuj opêt
  32.          krokem (1).
  33.  
  34.      Tento algoritmus je v nezkrácené podobê obsaæen ve zdrojovém kódu
  35.      k programu UNARJ.
  36.  
  37.      Pouæívají-li p⌐i práci s ARJ soubory-seznamy, mêly by podpûrné
  38.      ARJ programy (archivaçní "shelly" apod.) p⌐epínaçem "-p" zajistit,
  39.      æe ARJ z archívu rozbalí opravdu pouze specifikované soubory. Mûæe
  40.      to bÿt dûleæité u archívû, v nichæ jsou uchovávána jména adresá⌐û,
  41.      ve kterÿch byly archivované soubory pûvodnê uloæeny.
  42.  
  43.      Ve zpracování roz¿í⌐ené hlaviçky ve star¿ích verzích ARJ, AV.C
  44.      a UNARJ.C je chyba. P⌐i zpracování hlaviçky ve funkci read_header()
  45.      by se mêly p⌐eskoçit çty⌐i bajty kontrolního souçtu, a ne jen dva.
  46.      Tato chyba v¿ak v souçasné dobê nemá æádné negativní dûsledky,
  47.      protoæe æádná verze ARJ zatím roz¿í⌐enou hlaviçku nepouæívá.
  48.  
  49.      **********************************************************************
  50.  
  51.      Seznam provedenÿch zmên:
  52.      Datum     Popis zmêny:
  53.      --------  ------------------------------------------------------------
  54.      03/17/93  P⌐ipojena informace o "rozdvojení" ARJSFX modulu.
  55.      02/17/93  P⌐ipojen popis polí vyuæívanÿch bezpeçnostní obálkou.
  56.                P⌐ipojen popis pole, v nêmæ se uchovává datum/ças,
  57.                kdy byla v archívu naposledy provedena zmêna.
  58.      12/03/91  K p⌐íznakûm v hlaviçce ARJ p⌐ipojen p⌐íznak BACKUP.
  59.      11/21/91  Oddêlenê popsány obê varianty hlaviçek, které se
  60.                v ARJ archívech vyskytují.
  61.      11/11/91  P⌐ipojena informace o odli¿nostech p⌐i pouæití
  62.                textového reæimu.
  63.      06/28/91  P⌐ipojeno nêkolik novÿch çísel pro dal¿í operaçní systémy.
  64.      05/19/91  Vylep¿en popis zpracování roz¿í⌐ené hlaviçky.
  65.      05/11/91  Zjednodu¿ení dokumentu.
  66.                P⌐ipojen typ "název disku" (volume label).
  67.      03/11/91  P⌐ipojen typ "adresá⌐" (directory).
  68.      02/23/91  P⌐ipojeny dal¿í komentá⌐e.
  69.      01/10/91  Opraven popis pole datum/ças a po⌐adí reæimu p⌐ístupu
  70.                k souboru.
  71.      10/30/90  Opraveny hodnoty ARJ p⌐íznakû.
  72.  
  73.  
  74.      ARJ archív obsahuje dva druhy hlaviçek:
  75.  
  76.       Hlavní hlaviçku achívu                 - na zaçátku archívu.
  77.       Lokální hlaviçky archivovanÿch souborû - p⌐edcházejí kaædému
  78.                                                archivovanému souboru.
  79.  
  80.      Struktura hlavní hlaviçky archívu
  81.      (⌐ádovê nejniæ¿í slabiky jsou uvádêny jako první):
  82.  
  83.      Bajty Popis
  84.      ----- -------------------------------------------------------------------
  85.        2   identifikaçní bajty hlaviçky (hlavní i lokální) = 0x60 0xEA
  86.        2   základní velikost hlaviçky (od 'first_hdr_size' do 'comment')
  87.              = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
  88.              = 0 jde-li o konec archívu
  89.              maximální délka hlaviçky mûæe bÿt 2600 bajtû.
  90.  
  91.        1   first_hdr_size (délka aæ k p⌐ípadnému roz¿í⌐ení vçetnê).
  92.        1   çíslo verze ARJ.
  93.        1   nejniæ¿í çíslo verze ARJ, která umoæní rozbalení archívu.
  94.        1   hostitelskÿ operaçní systém (0 = MSDOS, 1 = PRIMOS, 2 = UNIX,
  95.              3 = AMIGA, 4 = MAC-OS, 5 = OS/2, 6 = APPLE GS, 7 = ATARI ST,
  96.              8 = NEXT, 9 = VAX VMS)
  97.        1   p⌐íznaky
  98.                  (0x01 = nevyuæito)
  99.                  (0x02 = OLD_SECURED_FLAG; p⌐íznak staré verze
  100.                                            bezpeçnostní obálky)
  101.                  (0x04 = VOLUME_FLAG)  indikuje existenci svazku, kterÿ
  102.                                        na tento svazek navazuje.
  103.                  (0x08 = nevyuæito)
  104.                  (0x10 = PATHSYM_FLAG) indikuje, æe jméno archívu bylo
  105.                                        p⌐eloæeno ("\" zmênêno na "/")
  106.                  (0x20 = BACKUP_FLAG) indikuje archív se zálohami
  107.                  (0x40 = SECURED_FLAG)
  108.        1   verze bezpeçnostní obálky (2 = souçasná)
  109.        1   typ souboru           (musí bÿt roven 2)
  110.        1   vyhrazeno
  111.        4   datum/ças prvotního vytvo⌐ení archívu.
  112.        4   datum/ças naposledy provedené zmêny v archívu.
  113.        4   velikost archívu (v souçasné dobê vyuæito jen v archívech
  114.                              chránênÿch bezpeçnostní obálkou)
  115.        4   umístêní bezpeçnostní obálky
  116.        2   zaçátek jména souboru ve specifikaci souboru
  117.        2   délka bezpeçnostní obálky v bajtech
  118.        2   (prozatím nevyuæito)
  119.        ?   (prozatím nic)
  120.  
  121.        ?   pûvodní název archívu (zakonçen nulovÿm terminátorem)
  122.        ?   komentá⌐ k archívu (zakonçen nulovÿm terminátorem)
  123.  
  124.        4   kontrolní souçet základní çásti hlaviçky
  125.  
  126.        2   velikost první roz¿í⌐ené hlaviçky (0, jestliæe neexistuje)
  127.        ?   první roz¿í⌐ená hlaviçka (prozatím se nevyuæívá)
  128.        4   kontrolní souçet první roz¿í⌐ené hlaviçky (pouze,
  129.            je-li délka roz¿í⌐ené hlaviçky nenulová)
  130.  
  131.  
  132.      Struktura lokální hlaviçky archivovaného souboru
  133.      (⌐ádovê nejniæ¿í slabiky jsou uvádêny jako první):
  134.  
  135.      Bajty Popis
  136.      ----- -------------------------------------------------------------------
  137.        2   identifikaçní bajty hlaviçky (hlavní i lokální) = 0x60 0xEA
  138.        2   základní velikost hlaviçky (od 'first_hdr_size' do 'comment')
  139.              = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
  140.              = 0 jde-li o konec archívu
  141.              maximální délka hlaviçky mûæe bÿt 2600 bajtû.
  142.  
  143.        1   first_hdr_size (délka aæ k p⌐ípadnému roz¿í⌐ení vçetnê).
  144.        1   çíslo verze ARJ.
  145.        1   nejniæ¿í çíslo verze ARJ, která umoæní rozbalení souboru.
  146.        1   hostitelskÿ operaçní systém (0 = MSDOS, 1 = PRIMOS, 2 = UNIX,
  147.              3 = AMIGA, 4 = MAC-OS, 5 = OS/2, 6 = APPLE GS, 7 = ATARI ST,
  148.              8 = NEXT, 9 = VAX VMS)
  149.        1   p⌐íznaky (0x01 = GARBLED_FLAG) indikuje za¿ifrovanÿ soubor
  150.                  (0x02 = nevyuæito)
  151.                  (0x04 = VOLUME_FLAG)  indikuje soubor, kterÿ pokraçuje
  152.                                  v dal¿ím svazku (soubor je rozdêlen)
  153.                  (0x08 = EXTFILE_FLAG) indikuje soubor, kterÿ zaçíná
  154.                                  v p⌐edcházejícím svazku
  155.                  (0x10 = PATHSYM_FLAG) indikuje, æe jméno souboru bylo
  156.                                        p⌐eloæeno ("\" zmênêno na "/")
  157.                  (0x20 = BACKUP_FLAG)  indikuje soubor oznaçenÿ jako záloha
  158.        1   pouæitá kompresní metoda (0 = bez komprese,
  159.                                      1 = komprimováno co nejúçinnêji...
  160.                                      4 = komprimováno co nejrychleji)
  161.        1   typ souboru (0 = binární, 1 = sedmibitovÿ text,
  162.                         3 = adresá⌐, 4 = název disku)
  163.        1   vyhrazeno
  164.        4   datum/ças naposledy provedené zmêny v souboru
  165.        4   délka po sbalení
  166.        4   pûvodní délka (li¿í se u souborû sbalenÿch v textovém reæimu)
  167.        4   kontrolní souçet pûvodního souboru
  168.        2   zaçátek jména souboru ve specifikaci souboru
  169.        2   reæim p⌐ístupu k souboru
  170.        2   informace o hostitelském operaçním systému (prozatím nevyuæito)
  171.        ?   p⌐ípadné dal¿í údaje
  172.            4 bajty v p⌐ípadê, æe soubor pokraçuje z p⌐edcházejícího
  173.              svazku (pak obsahuje pozici zaçátku této çásti souboru)
  174.              (tyto çty⌐i bajty jsou obsaæeny jen v p⌐ípadê, æe je nastaven
  175.               p⌐íznak EXTFILE_FLAG).
  176.            0 bajtû ve v¿ech ostatních p⌐ípadech.
  177.  
  178.        ?   název souboru (zakonçen nulovÿm terminátorem)
  179.        ?   komentá⌐ k souboru (zakonçen nulovÿm terminátorem)
  180.  
  181.        4   kontrolní souçet základní çásti hlaviçky
  182.  
  183.        2   velikost první roz¿í⌐ené hlaviçky (0, jestliæe neexistuje)
  184.        ?   první roz¿í⌐ená hlaviçka (prozatím se nevyuæívá)
  185.        4   kontrolní souçet první roz¿í⌐ené hlaviçky (pouze,
  186.            je-li délka roz¿í⌐ené hlaviçky nenulová)
  187.  
  188.        ...
  189.  
  190.        ?   komprimovanÿ soubor
  191.  
  192.  
  193.      Formát polí datum/ças:
  194.  
  195.       31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
  196.        |<---- rok-1980 ---->|<- mêsíc ->|<--- den ---->|
  197.  
  198.       15 14 13 12 11 10  9  8  7  6  5  4  3      2  1  0
  199.        |<-- hodiny -->|<---- minuty --->|<- sekundy/2 ->|
  200.  
  201.  
  202.      konec dokumentu
  203.