Übersetzung der Anleitung zu CS-DOS Extra Utilities Pack 4.0 durch eMSch in 3/'93

CS-DOS Extra Utilities Pack 4.0

Programm und Anleitung (c) 1992 Bruce Vrieling (25.12.1992)

Die Programm-Module dürfen nach Belieben weitergegeben werden, solange der Code nicht verpfuscht wird. Hast Du Ideen für Weiterentwicklungen, laß' es mich bitte wissen (wie ich erreichbar bin: s.u.).

Erscheint bei einigen Modulen in der Dokumentation ein Hinweis auf 'Copyright Parsec', sind die betreffenden Dateien Updates ('neue Versionen') des Original-CS-DOS. Siehe in der CS-DOS Dokumentation nach dem genauen Copyrighthinweis.

Inhalt

Das vorliegende 'CS-DOS Extra Utilities Pack 4.0' ist die neueste Version mächtiger Werkzeuge für das CS-DOS-System.

Die wichtigste Neuheit in V4.0 ist das vollständige UNZIP System, das hier BVUNZIP heißt. Damit kannst Du die heute (in der IBM-Welt) weitverbreiteten ZIP Dateien der PKWARE- Technik dearchivieren. BVUNZIP erschließt die reichhaltigen Informationen, die in ZIP Dateien der IBM-BBSen und anderer Quellen enthalten sind und für Commodore-Betreiber bislang unerreichbar waren. Obwohl das dearchivieren relativ langsam geht, scheint es doch mit jeder Art von ZIP Datei umgehen zu können.

Lies unbedingt zuerst BVUNZIP.TXT, um das Modul richtig zu installieren, versuche nicht, es direkt von Diskette zu starten.

Eine anderes neues Teil ist WHERE, das dazu dient, im angegebenen Laufwerk nach allen Dateien zu suchen, die dem Suchmuster entsprechen. Wichtig ist dabei, daß es auch CMD Unterverzeichnisse durchsucht und aufspürt, was sonst verschollen schien. Es gibt eine Liste aller 'Treffer' (entsprechend Suchmuster) einer Partition (Unterverzeichnis) aus.

Hinweise zum Gebrauch

Um besten Nutzen aus beiliegenden Dateien zu ziehen, sollten sie in der RAM-Disk INSTALLiert sein (und für BVUNZIP ist es unbedingt notwendig).

Ein paar Module sind etwas lang und die Ladezeit kann langweilig werden. Schaue in der CS-DOS-Anleitung nach, wie das INSTALLieren genau geht.

Beachte auch, daß SETRAM auf dem Bootlaufwerk vorhanden sein muß. Denn AUTOEXEC schaut dort nach, nicht auf der RAM-Disk. Willst Du SETRAM auch auf der RAM-Disk haben, mußt Du zuerst das alte SETRAM entfernen, bevor die neue Version installiert werden kann (siehe CS- INSTALL und REMOVE).

Anleitung

Die (englischen Original-) Anleitungen zu jedem Befehl findest Du in diesem Archiv unter COMMAND.TXT. Dort findest Du auch die genaue Syntax.

Die nächste Version

Die jetzt neuen Befehle sind nicht genau das, was ich letztens unter 'Die nächste Version' (als COPY und ICOPY) versprochen hatte, hoffe aber, daß Ihr nicht enttäuscht seid.

Januar 1993 ist für mich der Beginn einer viermonatigen Schulzeit, so daß die Programmiertätigkeit etwas zurückgeht. Für die nächste Version plane ich eine 'Feinabstimmung' der Module, indem ein paar bestehende Befehle auf neuesten Stand gebracht werden ('Update') und vielleicht bringe ich doch noch das ICOPY fertig.

Fragen/Kommentare

Hast Du Fragen, Fehlerberichte ('bug reports'), Meckereien oder Ideen für neue Module, nimm bitte Kontakt mit mir auf - ich reagiere auf alle Fälle:

GEnie: B.VRIELING1

Internet: bvrieling@undergrad.math.waterloo.edu

Fido: Bruce Vrieling @ 1:229/15

Viel Spaß!

CS-DOS Extra Utilities Pack 'Geschichte'

V1.0 8.5.92 Erstausgabe mit CP, MD, RD, CP

V2.0 27.8.92 Erweiterung um WPVIEW, ZIPVIEW

V3.0 2.10.92 Erweiterung um SEARCH, IDIR, RDIR, SETRAM

Änderung des ARC-Formates auf SFX

Aufnahme der EUP-Historie

Korrektur der Internet Adresse in den Dokumentationen

V4.0 25.12.92 Erweiterung um BVUNZIP (einschl. UNSHRINK und UNREDUCE) und WHERE

Aufnahme der Fido Adresse in die Dokumentationen

Befehl: IDIR

siehe auch: DIR, RDIR

Syntax: idir d:

IDIR ist ein CS-DOS-Befehl, der Directories von IBM-Disketten ausgibt, genauer: von Disketten im 360K 5 1/4" und 720K 3 1/2" MFM-Format.

Im Augenblick werden nur Rootdirectories gelesen. Vielleicht werden später 'mal Unterverzeichnisse ('Subdirectories') unterstützt. Der Befehl ignoriert Suchmuster, nur eine Laufwerkskennung kann übergeben werden.

Beispiele:

idir a: zeigt Directory in Laufwerk a:

idir zeigt Directory im aktuellen Laufwerk

Befehl: RDIR

siehe auch: INSTALL, REMOVE, GETRAM, RDOFF

Syntax: rdir/w

*** Anmerkung ***

Der Code und große Teile dieses Textes ist (c) Parsec (die das Programm von Chris Smeets gekauft hat). Ich schrieb dieses Modul nicht, sondern habe es lediglich geändert, mit dem Vorteil, den Extraspeicher einer RAM-Erweiterung zu nutzen. Ich meine, das Modul fällt immer noch unter Parsecs Copyright und gebe es daher nur unter den bei CS-DOS genannten Bedingungen weiter.

*** Anmerkung Ende ***

RDIR wirst Du wahrscheinlich häufig benutzen. Es zeigt einfach eine Liste der Dateien (oder Befehle) in der RAM-Disk an. Die Liste enthält Namen, Start- und Endadresse der Dateien und die belegte und noch freie Kapazität der RAM.

Beispiele:

*rdir sendet RAM-Disk Directory zum Drucker

rdir >ram1.dir sendet RAM-Disk Directory in eine Textdatei namens 'ram1.dir'

rdir/w RAM-Disk Directory mit Ausgabe quer über den Bildschirm,

anstatt abwärts orientiert.

Befehl: SETRAM

siehe auch: RDOFF, RDIR, GETRAM, RAMDISK, PUTRAM, INSTALL, REMOVE

Syntax: setram Bank, Adresse

setram 1750-Bank+1, Anzahl 1750-Bänke

*** Anmerkung ***

Der Code und große Teile dieses Textes ist (c) Parsec (die das Programm von Chris Smeets gekauft hat). Ich schrieb dieses Modul nicht, sondern habe es lediglich geändert, mit dem Vorteil, den Extraspeicher einer RAM-Erweiterung zu nutzen. Ich meine, das Modul fällt immer noch unter Parsecs Copyright und gebe es daher nur unter den bei CS-DOS genannten Bedingungen weiter.

*** Anmerkung Ende ***

SETRAM legt Teile des Speicherplatzes aus dem RAM (C128-intern, oder aus der 17xx Erweiterung) als RAM-Disk fest. Irgendwelche Programme, die in die RAM-Disk kopiert werden, verhalten sich wie eingebaute Befehle. In der MS-DOS-Sprache ausgedrückt, verhält sich die RAM-Disk so, als wäre 'RAM-Disk' die einzige Directory in deinem PATH.

Hast Du mehr als ein Laufwerk zur Verfügung und es macht Dir nichts aus, vor jedem Befehl einen Laufwerksbuchstaben einzutippen, kommst Du ganz gut auch ohne RAM-Disk aus. Alle Befehle können gleichwohl von Disk, wie von RAM-Disk gestartet werden.

Hast Du eine 1750, so installiere dort die RAM-Disk und ignoriere die nächsten paar Absätze.

Ohne Speichererweiterung ist es eine gute Idee, eine kleine 8 oder 12K RAM-Disk in Bank 1 zu installieren und dort kleinere vielbenutzte Befehle abzulegen, und die größeren Befehle (Programme) -wie z.B. ARC- von Diskette zu starten. Die 1571 ist doch ganz schön schnell, so daß sich eine RAM-Disk nicht unbedingt lohnt.

RAM-Disk ist in irgendeine der Bänke 0 bis 11 installierbar. Ich weiß nicht, wofür Commodore die Bänke 2 und 3 konzipiert hat, aber meide sie besser für's erste, da SETRAM für diese beiden die BASIC-Zeiger nicht richtig hinbekommt (Bank 2 ist in Wirklichkeit Bank 0 und Bank 3 die 'echte' Bank 1).

Die Bänke 4 bis 11 sind internes und externes ROM. Hast Du Zugriff auf einen EPROM-Brenner, so könntest Du die RAM-Disk in einer dieser Bänke installieren. Bezüglich des Befehlszeilen-Interpreters macht es keinen Unterschied ob es sich um eine RAM- oder ROM-Disk handelt. Deshalb, spiele ein bißchen 'rum, bis Dir gefällt, was Du im RAM hast, sichere das mit PUTRAM als Diskdatei und brenne die dann auf EPROM.

Wahrscheinlicher ist, daß Du die RAM-Disk in Bank 1 oder 0 installierst. Dabei sind ein paar Dinge zu beachten:

Manche Befehle (bis jetzt sind das ARC, MOVE und COPY) nutzen Bank 1 als Ein-/ Ausgabepuffer, der dort beginnt, wo die DOS-Shell endet ($4000) und bis zum Ende des BASIC-RAM (d.h. falls in Bank 1 Deine RAM-Disk sitzt, bis zu deren Beginn) reicht. Gerät die RAM-Disk zu groß, wird der Puffer zu klein und der Schreib-/Lesekopf des Laufwerks muß Extraschichten einlegen (besonders wenn nur ein Laufwerk zur Verfügung steht).

Auch Bank 0 ist kein sonderlich gut geeigneter Ort für die RAM-Disk. Da es sehr einfach geht, eigene Programme für Bank 0 zu schreiben, kann es gut sein, daß die RAM-Disk durch Dein Programm 'vernascht' wird. ARC benötigt RAM bis $C000 (49152) in Bank 0, deshalb ist dies die niedrigst mögliche Adresse, wenn ARC benutzt werden soll. Kein Befehl geht über $C000 hinaus, deshalb ist dieser Bereich ziemlich sicher (wenn er Dir reicht).

Ich werde versuchen, so gut es geht, den Bereich oberhalb $C000 in allen Bänken freizuhalten (mit LHA ist's nicht möglich).

In allen Bänken ist die absolut niederigste Adresse für die RAM-Disk $4000 (16384).

Für die 1750 lautet die Syntax:

setram ErsteBank,AnzahlBänke

wobei 16, 17 . . . 23 für 'ErsteBank' den 1750-Bänken 0, 1 . . . 7 entspricht. So reserviert

setram 16,8

die ganze 1750,

setram 22,2

nur die letzten beiden Bänke für die RAM-Disk.

setram 24,4

würde die ersten vier Bänke nach den ersten 512K einer aufgrüsteten RAM-Erweiterung benutzen.

Es ist möglich, mehr als eine RAM-Disk zu installieren, aber es kann jeweils nur eine aktiv sein. Die maximale Größe beträgt jeweils 512K oder 8 Bänke.

Da es recht lange dauert, eine große RAM-Disk in die 1750 einzuladen, initialisiert SETRAM die RAM-Disk nicht. Das bedeudet, was auch immer gerade in der RAM-Disk steht, wird als gültige RAM-Disk angesehen. Die AUTOEXEC-Datei, die mit dem CS-DOS kommt, prüft anhand des IF-Befehls, ob die RAM-Disk gültig ist. Ist der IF-Befehl vorhanden, wird eine intakte RAM-Disk angenommen und so die Zeit gespart, sie nochmals laden zu müssen.

Für die Initialisierung der RAM-Disk gibt es zwei Möglichkeiten. Erstens mit GETRAM eine früher ge-save-te RAM-Disk einladen. Zweitens mit dem BASIC-Befehl STASH zwei Nullen an den Anfang der RAM-Disk setzen. Letzteres ist auch notwendig, wenn nach einem SCRATCH eine neue RAM-Disk aufgebaut wird.

Beispiel: (Einrichtung einer RAM-Disk in 1750-Bank 0 und deren Initialisierung)

setram 16,1

poke4864,0:poke4865,0

stash 2,4864,bank,0 (bank=erste benutzte 1750-Bank, hier 0)

weitere Beispiele:

a:setram 1,$b000 installiert RAM-Disk in Bank 1 bei 45056

a:setram 0,49152 installiert RAM-Disk in Bank 0 bei $c000

a:setram 8 $4000 installiert RAM-Disk in die Cartridge. Ist irgendetwas

außer RAM-Disk dort, sind die Ergebnisse unvorher-

sehbar

a:setram 16,1 nutzt nur die erste Bank der REU 17xx

a:setram 24,8 nutzt Bänke 8-15 einer erweiterten Erweiterung

a:setram 43,4 nutzt Bänke 27-31 einer erweiterten Erweiterung

Befehl: SEARCH

siehe auch: FIND, COMP, CHANGE, TEXT, BASIC

Syntax: search/x <Suchstring> <Laufwerk:Dateimuster>

SEARCH ist eine nützliche Funktion, die Textstrings in sequentiellen Dateien findet. Einen Suchstring angegeben, jagt SEARCH durch die Dateien die dem Dateimuster entsprechen und zeigt alle Zeilen an, die den Suchstring enthalten.

Search hat ein paar Schalter; der Wert für x kann sein:

/c führt die Suche ohne Rücksicht auf Groß-/Kleinschreibung durch

/n schaltet die Zeilennummerierung aus

/q schaltet in den 'Quiet-Modus' (unterdrückt unnötige Kommentare)

Beispiele:

search CS-DOS a:*.txt b:*.txt sucht in Laufwerk a: und b: sämtliche Dateien,

die mit '.txt' enden und gibt alle Zeilen aus, die

'CS-DOS' enthalten

search /c /n "dog house" *.wp ohne Rücksicht auf Groß-/Kleinschreibung wird in

allen Dateien mit der Endung '.wp' des aktuellen

Laufwerks der String 'dog house' gesucht. (Zeilen-

nummern unterdrückt)

Befehl: WPVIEW

siehe auch: TYPE, IDIR

Syntax: wpview d:Dateiname

WPVIEW liest WordPerfect Dokument-Dateien und bringt sie auf den Bildschirm. Alle Formatierungsbefehle werden ausgelassen und nur der reine Text angezeigt.

Die Ausgabe des WPVIEW kann auch in eine (neue) Datei umgeleitet und von dort mit irgendwelchen CBM-Textverarbeitungen (die PETSCII- SEQ- Dateien laden können) weiter- verarbeitet werden.

WPVIEW wurde mit IBM- WordPerfect Dateien 4.2, 5.0 und 5.1 getestet. Da das Amiga- WordPerfect kompatibel sein soll, müßte es damit auch gehen. Beim Übertrag der Dateien von IBM nach Commodore soll keine Übersetzung nach ASCII gemacht werden. WPVIEW erwartet Binärdateien des WordPerfect und vollzieht automatisch die Übersetzung nach PETSCII.

Kompliziertere WordPerfectdateien werden nicht korrekt wiedergegeben; schaue Dir 'mal 'ne Tabelle an und was daraus wird. . .

Beispiele:

wpview Datei.txt zeigt den Inhalt von 'Datei.txt' unter der Annahme,

daß es sich um eine WordPerfectdatei handelt

wpview Datei.txt >save.txt wie oben, eine Kopie der Ausgabe geht an das

aktuelle Laufwerk als 'Datei.txt'

Befehl: ZIPVIEW

siehe auch: ARC, CSARC, CSXARC, BVUNZIP

Syntax: zipview d:Dateiname

ZIPVIEW zeigt die Directory einer IBM-ZIP-Datei an. (Beachte, daß das IBM-Format zum Commodoreformat unterschiedlich ist, das ganze Disketten archiviert. ZIPVIEW arbeitet mit letzterem nicht zusammen)

ZIPVIEW kann aus ZIP-Archiven nichts herausholen, nur den Inhalt anzeigen. (ZIP-Dateien sind mit BVUNZIP rückverwandelbar) Der Vorteil des ZIPVIEW gegenüber BVUNZIP liegt darin, daß es vor der Ausführung nicht in die RAM-Disk installiert werden muß.

Beispiele:

zipview a:Zipdatei.zip gibt den Inhalt von Zipdatei auf dem Bildschirm aus

zipview a:Zipdatei.zip >Dir.txt wie oben, Ausgabeumleitung als 'Dir.txt' ins Default-

Laufwerk

Befehl: CD

siehe auch: RD, MD, CP, DIR

Syntax: cd Dirname

CD wechselt die aktuelle Directory in CMD Speichermedien aus der 'native mode' Partition und entspricht dem gleichnamigen MS-DOS-Befehl. Am einfachsten siehst Du die Funktion an ein paar Beispielen:

cd Test geht zum Unterverzeichnis 'Test'

cd /Test wie oben, startet aber aus dem Rootverzeichnis

cd /Test/Dat startet aus Rootverzeichnis, geht über 'Test' in das 'Dat'-Verzeichnis

Ein kritischer Blick über die Beispiele zeigt, daß der einzige Unterschied zum MS-DOS im 'normalen' Schrägstrich besteht (anstatt 'Backslash'). Ein weiterer Unterschied liegt in '.' und '. .' als Pseudodirectorynamen:

cd . . /Dat1 geht nicht eine Unterverzeichnisebene zurück und dann vorwärts in

die 'Dat1' (bei MS-DOS möglich), aber:

cd . bleibt im aktuellen Verzeichnis (d.h. tut nichts)

cd . . geht ein Unterverzeichnis zurück (Richtung Root)

Befehl: CP

siehe auch: CD, MD, RD, DIR

Syntax: cp PartitionNr

CP ändert die Partition (das Unterverzeichnis) auf CMD-Speichermedien.

Beispiel:

cp 2 wechselt zur Partition Nummer 2

Befehl: MD

siehe auch: CD, RD, CP, DIR

Syntax: md Dirname

MD legt aus der 'native mode' Partition heraus ein neues Unterverzeichnis an (CMD- Speichermedien). MD akzeptiert keine Pfadnamen. Der einzig akzeptierte Parameter ist der 'Dirname' für das zu erstellende Unterverzeichnis. Das heißt, das aktuelle (Unter-) Verzeichnis ist der Stamm für das zu erstellende.

Beispiele:

md Test erstellt aus dem aktuellen Verzeichnis heraus das Unterverzeichnis

'Test'

md /Test/Dat *** FEHLER *** Pfadangabe nicht erlaubt !!

Befehl: RD

siehe auch: CD, MD, CP, DIR

Syntax: rd Dirname

RD löscht (im 'native mode' Partition) ein Unterverzeichnis aus CMD- Speichermedien. RD akzeptiert keine Pfadnamen. Der einzig akzeptierte Parameter ist der 'Dirname' für das zu löschende Unterverzeichnis. Das heißt, das aktuelle (Unter-) Verzeichnis ist der Stamm für das zu löschende.

Beispiele:

rd Test löscht aus dem aktuellen Verzeichnis das Unterverzeichnis 'Test'

rd /Test/Dat *** FEHLER *** Pfadangabe nicht erlaubt !!

Befehl: BVUNZIP

siehe auch: ARC, CSARC, CSXARC, ZIPVIEW

Syntax: bvunzip <d:Dateiname> <Dateiangabe>

BVUNZIP ist ein UNZIP für den C128 unter CS-DOS. Es kann alle V1.x PKWARE Dateien 'entpacken', dh. '.ZIP'-Dateien aus der IBM- (und wahrscheinlich auch aus der Amiga-) Welt.

WICHTIG:

1.) BVUNZIP kommt mit zwei Untermodulen UNSHRINK und UNREDUCE ('exploding' und 'unstoring' macht BVUNZIP selbst. Du brauchst alle drei Module (BVUNZIP, UNSHRINK und UNREDUCE) um erfolgreich Dateien zu ent-ZIP-pen.

2.) Alle drei Dateien müssen innerhalb CS-DOS auf die RAM-Disk INSTALLiert und von dort auch gestartet werden. Lies das nochmal. Alle drei Dateien müssen sich in der RAM-Disk befinden (sie benötigen zusammen etwa 35K).

(Es passiert keine Katastrophe, wenn Du doch von Diskette BVUNZIP startest, Du bekommst einen 'Syntax error' mit Abbruch des Programms, wenn es UNSHRINK von RAM-Disk zu lesen versucht. Ich mußte das so lösen, weil die Handhabung der Inputdateien zusammenbricht, wenn sich zwei Dateien auf Diskette duellieren (A.d.Ü.: Es kann zur Zeit immer nur eine Datei geöffnet sein). Das vorzeitige 'end of zipfile' war zu umgehen, indem BVUNZIP von RAM-Disk startet.)

3.) Alle drei Dateien müssen ihren originalen Namen behalten, sie greifen so ineinander ein, daß sie sich durch den korrekten Namen finden müssen.

Dieser ent-Zip-per arbeitet nur mit '.ZIP'-Dateien im IBM-Format (nicht mit ZIPCODE-Dateien die mit C64/128 erstellt wurden).

Bitte entschuldigt die 'Holperigkeit' des Programm-Codes, aber ich war in Eile, das Programm bis Weihnachten '92 fertigzustellen. Du darfst ein Update mit Fehlerkorrektur und weiteren Fortschritten erwarten.

Ich freue mich über alle 'bug reports' (Berichte über aufgetretene Fehler), die über eine meiner Mailboxen einlaufen. Ich bin sehr daran interessiert, dieses Paket 100%ig zum laufen zu bringen und je eher ich von Problemen weiß, desto besser. Wenn Du auch die problematische Zip-Datei schicken könntest, hilft das, das Problem sehr viel schneller zu finden.

Beispiele:

bvunzip zeigt den Copyright- und kurze Anwender-Hinweise

bvunzip a:Zipdatei.zip listet den Inhalt von 'Zipdatei.zip' (in Laufwerk a:) auf

dem Bildschirm

bvunzip a:Zipdatei.zip * ent-zip-t alle Dateien aus 'Zipdatei.zip' (in Laufwerk a:)

auf das aktuelle Laufwerk

bvunzip graphics.zip *.gif ent-zip-t alle Dateien mit der Endung '.gif' aus der Datei

'graphics.zip' im aktuellen Laufwerk

Dieses 'CS-DOS Extra Utilities Pack V4.0' ist 'freeware' und darf nach Belieben weitergegeben werden.

Fragen, Kommentare, Fehler-/Mängelberichte bitte an: