home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
A
/
ARC20.ARC
/
ARCCPM.DOC
< prev
next >
Wrap
Text File
|
1989-11-10
|
10KB
|
274 lines
--------------------------
A R C C P M Version 1.0
--------------------------
Copyright (c) August 1987 by Reimer Mellin
Sulenstr.8, 8000 Muenchen 71, West Germany
RBBS: T-Bus Muenchen (FidoNet 507/Node 14)
CP/M-80 Section (Area 4),Tel#:(089)/293881
--------------------------
A R C C P M Version 2.0
--------------------------
Copyright (c) November 1989 by Tilmann Reh
In der Grossenbach 46, D-5900 Siegen, FRG
Mail: CosmoNet Hannover, tilmann@cosmo.uucp
ALLGEMEINE VORBEMERKUNGEN
-------------------------
ARCCPM Version 2.0 ist eine vollstaendig neu geschriebene Realisierung
des Archivierungsprogramms ARCCPM V1.0, welches durch Reimer Mellin von
den C-Quelltexten ins Turbo-Pascal umgesetzt wurde.
ARC V2.0 ist nicht nur etwa 5 KB kleiner und 5 mal so schnell wie V1.0,
sondern bietet darueberhinaus noch funktionelle Erweiterungen:
- Squeezing und Unsqueezing (Ver.4) werden ab sofort voll unterstuetzt.
- Unter CP/M-Plus werden Datum und Uhrzeit der Dateien ins Archiv
uebernommen. Existiert kein Zeiteintrag (oder bei CP/M 2.2), so wird
die aktuelle bzw. die eingegebene Zeit verwendet.
- Die Eingabezeile wird durch einen Patch auf die volle Laenge von 127
Zeichen vergroessert. Ohne Patch stehen unveraendert 32 Zeichen zur
Verfuegung. Der Patch (3 Byte im Kompilat) ist in CLINE127.INC
beschrieben.
- Mit dem Schalter 'k' kann die Kompressionsart 'Crunching' fest vorge-
geben werden.
Das Programm sollte mit einer Endadresse von etwa E000h kompiliert werden,
um systemresidente Programme nicht unnoetig einzuengen. Bei extrem kleinen
Systemen, in denen dies nicht moeglich ist, kann durch Aendern des Hash-
Verfahrens beim LZW-Crunching etwa 4 KB Heap gespart werden, d.h. die
Endadresse kann auf etwa D000h gelegt werden.
Nach jedem Kompilieren den 127-Zeichen-Patch nicht vergessen!
Die folgende Beschreibung von ARCCPM ist bis auf die o.g. funktionellen
Erweiterungen das Werk von Reimer Mellin.
Tilmann Reh, D-5900 Siegen, 10. November 1989.
WARUM ARCEN :
Komprimierung und Archivierung von Dateien ist besonders in der DFUE
wichtig (eigentlich sogar notwendig), da hier jede Minute Uebertrag-
ungszeit Geld bedeutet. Der in diesem Programm implementierte Algo-
rithmus komprimiert eine Datei auf ca. 20-60% der Originalgroesse. Zu-
saetzlich koennen zusammengehoerende Dateien auch in einem ARChiv
(z.B zu Backupzwecken) zusammengefasst werden. Das bedeutet fuer den
Anwender groessere Uebersichtlichkeit auf seinen Speichermedien und
reduziert gerade bei Diskettenformaten kleiner Kapazitaet die Anzahl
der notwendigen Directory Eintraege.
EINSCHRAENKUNGEN :
ARCCPM beherrscht - leider - nur einen Subset des original ARC's.
Unterstuetze Komprimierungsverfahren:
- Storing(nur speichern ohne Komprimieren),
- Packing (identische Bytefolgen zusammenfassen),
- Squeezing (Huffman-Encoding),
- Crunching (Lempel-Ziv-Welch Verfahren).
Unterstuetze Dekomprimierungsverfahren:
- Ent-Storing (na klar),
- Ent-Packing (logisch),
- Ent-Squeezing (auch das),
- Ent-Crunching (sowieso).
NICHT Unterstuetze Verfahren:
- Ent-Crunching nach aelteren Verfahren,
- Squashing/Entsquash.
Dokumentation zu ARCCPM Version 1.0 Seite 1
WIE FUNKTIONIERT ARCCPM ?
-------------------------
Ein Aufruf von ARCCPM lautet immer:
,--------------------------------------------------------------------,
l ARC {adelmvx}[bknstw][g<password>] <archiv> [<filelist>...] l
'--------------------------------------------------------------------'
Symbole in [] sind optional, Angaben in <> sind unbedingt zu machen !
Von den Symbolen in {} (Flags) ist jeweils eines unbedingt anzugeben !
<password> ist ein String von hoechstens 10 Zeichen, die Dateibezeich-
nungen <archiv> & <filelist> duerfen Laufwerksbezeichner oder die CP/M
ueblichen Wildcards ('*' und '?') enthalten.
Wirkung der Symbole :
a Add to Archive. Ein noch nicht existierendes Archiv wird neu an-
gelegt. Alle gefundenen Files der <filelist> werden in das Archiv
einsortiert.
d Delete Files from Archive. Die angebenen Dateien werden aus dem
Archiv geloescht.
x,e Extract from Archive. Die angegebenen Dateien werden aus dem
Archiv extrahiert. Ohne Angabe von Parametern: Alle Dateien.
l,v 'Verbose Listing' of Archive. Das 'ausfuehrliche Directory' des
Archivs wird auf dem Bildschirm dargestellt.
m Move to Archive. Wie 'a' , aber die einsortierten Dateien werden
anschliessend geloescht.
b Keep Backup. Das alte Archiv bleibt im Falle von Aenderungen als
BAK-file erhalten.
k Force Crunching. Die zu addierenden Dateien werden grundsaetzlich
gecruncht. Der Zeitgewinn hierdurch ist allerdings kaum messbar.
n Suppress Notes. Kommentare werden unterdrueckt.
s Store only. Nur sinnvoll bei der 'A'dd Option. Die zu addierenden
Dateien werden nur kopiert (Storing).
t Set Time. Unter CP/M-Plus wird explizit nach Datum und Uhrzeit
gefragt. In diesem Fall werden auch die Zeiteintraege der CP/M-
Plus-Dateien nicht verwendet. Unter CP/M 2.2 ist dieser Schalter
wirkungslos.
w Suppress Warnings. Warnungen werden unterdrueckt.
g Password Entry. Die folgende durch <space> abgeschlossene Zeich-
enkette wird als Password zum Verschluesseln/Entschluesseln her-
genommen.
Dokumentation zu ARCCPM Version 1.0 Seite 2
BEISPIELE
---------
'arc l *'
Listet alle Files im ersten Archiv des Default Drives auf.
'arc v a:*'
Listet alle Files im ersten gefundenen Archiv auf Laufwerk A:
auf.
'arc l test *.doc *.com *.?q?
Listet alle Files mit Endung '.doc','.com','.?q?' auf, welche
im Archiv test.arc gefunden werden.
'arc x c:test a:*.*'
Extrahiert alle Files im Archiv 'c:test.arc' auf das Drive A:.
'arc e a:* c:*.doc b:*.com'
Extrahiert alle Files '*.doc' ( im ersten gefundenen Archiv auf
Laufwerk A:) auf das Laufwerk C: und alle Files '*.com' auf das
Laufwerk B:.
'arc a y* d:*.inc d:arc*.*'
Sucht auf dem Default Drive das Archiv 'y*.arc' und addiert alle
Files '*.inc' und 'arc*.*' vom Laufwerk D: dazu.
'arc m test a:*.lbr'
Sucht 'test.arc' ( falls nicht gefunden, generiert es ) und ad-
diert vom Laufwerk A: alle Files mit Endung '.LBR'. Anschlies-
send werden diese Files geloescht !
'arc d test *.txt'
Entfernt vom Archiv 'test.arc' alle Files mit Endung '.TXT'.
Dokumentation zu ARCCPM Version 1.0 Seite 3
HINWEISE
--------
Das Programm darf auf keinen Fall unter Turbo-Pascal 2.0 kompiliert
werden, da in Inline-Anweisungen direkte Zugriffe auf die Laufzeit-
bibliothek von Turbo-3.0 erfolgen.
Es duerfen maximal 10 Dateinamen als Parameter angegeben werden.
Werden mehr angegeben, kann es zu furchtbaren Effekten kommen.
Die CP/M-Spezifikation von Dateinamen mit Wildcards muss eingehalten
werden. Es ist nicht zulaessig, nach einem '*' ein weiteres Einzelzeichen
anzugeben (nur '.' oder Namensende erlaubt). Zwei Punkte hintereinander
sind nicht zulaessig.
Wird bei der Frage nach dem Datum (Schalter 't' oder CP/M 2.2) nur
RETURN eingegeben, so wird nicht weiter nach der Uhrzeit gefragt und kein
Datum/Zeiteintrag im Archiv gemacht. Wird nur bei der Uhrzeit RETURN
eingegeben, so enthaelt das Archiv den Datumseintrag ohne Zeitangabe.
User Areas werden derzeit noch nicht unterstuetzt, alle Files werden
im eingestellten User-Bereich erwartet.
Beim Addieren werden auf der Diskette des Archivs folgende Dateien
temporaer erstellt:
- arcname.$$$ <-- das in Bearbeitung befindliche neue Archiv,
- arcname.crn <-- Komprimierte Datei, die gerade addiert wird.
Es wird nicht vor dem Archivieren ueberprueft, ob genug Speicherplatz
auf der Diskette ist. Es muss daher immer mindestens die Kapazitaet des
bearbeiteten Archivs frei sein.
Wenn die 'Keepbak' Option gesetzt ist, dann wird das alte Archiv zu
'arcname.BAK' umbenannt und nicht geloescht. In jedem Fall wird die
Datei 'arcname.$$$' in 'arcname.ARC' umbenannt.
Falls die 's'(store only) Option gesetzt wird, wird das Crunchen
uebersprungen und nur kopiert. Diese Option kann man dann anwenden,
wenn man zusammengehoerige Files nur zusammenfassen moechte.
Anhand der Filegroesse des komprimierten Files (nach dem Analysieren)
erkennt ARCCPM, welches Verfahren am guenstigsten ist.
GEPLANTE ERWEITERUNGEN :
- Eventuell eine Implementierung des 'SQUASHING' Algorithmus.
(Ich habe noch keine Algorithmen hierzu.)
OK das wars, Nachfragen & Bugreports bitte an obige Adresse !
Viel Spass and keep ARC'ing .... Tilmann Reh, 10.11.89