From a09266b339e0cb6f6499aaefc1749e1cd98033ae Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Mon, 27 Nov 1989 10:14:08 +0000 Subject: [PATCH] new --- WEGA/src/cmd/doscopy/dos.1 | 209 +++++++++++++++++++++++++++++++++++++ WEGA/src/cmd/doscopy/dos.h | 74 +++++++++++++ WEGA/src/cmd/doscopy/mk | 1 + 3 files changed, 284 insertions(+) create mode 100644 WEGA/src/cmd/doscopy/dos.1 create mode 100644 WEGA/src/cmd/doscopy/dos.h create mode 100755 WEGA/src/cmd/doscopy/mk diff --git a/WEGA/src/cmd/doscopy/dos.1 b/WEGA/src/cmd/doscopy/dos.1 new file mode 100644 index 0000000..90ae50a --- /dev/null +++ b/WEGA/src/cmd/doscopy/dos.1 @@ -0,0 +1,209 @@ +.TH dos 1 WEGA +.\" Version 1.1 +.fi +.ad +.SH NAME +dos - Zugriff auf DCP-Dateien +.SH SYNTAX +.B doscat +.B [-r] +.I file ... +.br +.B doscp +.B [-r] +.I file1 file2 +.br +.B doscp +.B [-r] +.I file ... +.I directory +.br +.B dosdir +.I directory ... +.br +.B dosls +.I directory ... +.br +.B dosmkdir +.I directory ... +.br +.B dosrm +.I file ... +.br +.B dosrmdir +.I directory ... +.br +\fBdosformat [[-48ds9\fR|\fB-96ds9\fR|\fB-96ds15]\fR +.I device] + +.SH BESCHREIBUNG +Die dos-Kommandos gewaehrleisten den Zugriff auf Dateien und +Verzeichnisse von DCP-Disketten. +.PP +.TP 10 +.B doscat +Kopiert ein oder mehrere DCP-Dateien auf die Standardausgabe. +Wird die +.B -r +Option angegeben, werden die Dateien ohne Newline-Konvertierung +kopiert (s. "Benutzung"). +.TP +.B doscp +Kopiert Dateien zwischen einem DCP-Datentraeger und einem WEGA-Dateisystem. +Werden die Dateien +.I file1 +und +.I file2 +angegeben, so wird +.I file1 +zu +.I file2 +kopiert. Wird ein Verzeichnis benutzt, werden ein oder +mehrere Dateien zu diesem Verzeichnis uebertragen. +Die +.B -r +Option bewirkt die +Unterdrueckung der Newline-Umwandlung (s. "Benutzung"). +.TP +.B dosdir +Gibt DCP-Dateien im DCP-typischen Verzeichnisformat aus. +.TP +.B dosls +Gibt DCP-Dateien und -Verzeichnisse im WEGA-Format aus +(s. (ls(1)). +.TP +.B dosrm +Loescht Dateien auf einem DCP-Datentraeger. +.TP +.B dosmkdir +Erzeugt ein Verzeichnis auf einem DCP-Datentraeger. +.TP +.B dosrmdir +Loescht Verzeichnisse auf einem DCP-Datentraeger. +.TP +.B dosformat +Formatiert DCP-Disketten. +.PP +Die Datei- und Verzeichnisargumente fuer DCP haben die Form: +.sp +.in +10 +.IR device:name +.in -10 +.sp +wobei +.I device +ein WEGA-Pfadname fuer die spezielle Geraetedatei, +welche die DCP-Disk enthaelt, ist und +.I name +ein Pfadname zu +einer Datei oder einem Verzeichnis auf der DCP-Disk. +Die beiden Komponenten +werden durch Doppelpunkt (\fB:\fR) getrennt. +Zum Beispiel spezifiziert +.in +10 +.sp +/dev/fd0:/src/file.asm +.in -10 +.sp +die DCP-Datei +.I file.asm +im Verzeichnis +.I src +auf der Disk +.I /dev/fd0. +Beachte die Trennzeichen (\fB/\fR) fuer Dateinamen in DCP-Pfadnamen! +Argumente, die kein "\fIdevice\fR:" enthalten, +werden als WEGA-Dateien betrachtet. +.PP +Sind in der Datei +.I $HOME/.dos +oder in +.I /etc/default/dos +DCP-Laufwerke +definiert, koennen diese an Stelle von speziellen +Geraetedateipfadnamen verwendet +werden. Enthaelt z.B. diese Datei folgende Zeile: +.sp +.in +10 +.B A=/dev/fd0 +.in -10 +.sp +kann der Laufwerksbuchstabe "\fBA\fR" fuer den Geraetepfadnamen /dev/fd0 +verwendet werden (s. "Beispiele"). + +.SH BENUTZUNG +Alle DCP-Textdateien verwenden eine carrige-return/linefeed Kombination, +CR-LF, um ein Newline darzustellen. WEGA verwendet jedoch ein einzelnes +Newline-Zeichen (LF). Wenn die Kommandos doscat und doscp DCP-Textdateien +zu WEGA transportieren, so wird das CR automatisch gestrichen. +Das Zeichen Control-Z (1A hex) wird als Endekennzeichen von +DCP-Textdateien interpretiert. +Werden +Textdateien nach DCP transportiert, so fuegen diese Kommandos vor jedem +LF ein CR ein. Die +.B -r +Option kann benutzt werden, um die automatische +Konvertierung zu umgehen und zwingt das Kommando zu einer echten byteweisen +Uebertragung unabhaengig vom Dateityp. +.SH BEISPIELE +.B doscat /dev/fd0:docs/memo.txt +.br +Es wird die Datei docs\\memo.txt der DCP-Diskette in +/dev/fd0 auf der Standardausgabe ausgegeben. +.sp +.B doscat /tmp/f1 /dev/fd0:src/file.asm +.br +Ausgabe einer WEGA-Dateien und einer DCP-Datei. +.sp +.B dosdir /dev/fd0:src +.br +Es werden Informationen zur DCP-Disketten-Datei src ausgegeben. +.sp +.B dosdir A:src A:dev +.br +Unter der Voraussetzung, dass die Laufwerksbuchstaben im System +vereinbart wurden, werden zwei Dateien im DCP-Verzeichnisformat +ausgegeben. +.sp +.B doscp myfile.txt /dev/fd0:memo.txt +.br +Die WEGA-Datei myfile.txt wird mit Newline-Konvertierung +auf die DCP-Diskette als Datei memo.txt kopiert. +.sp +.B doscp /tmp/f1 /tmp/f2 /dev/fd0:mydir +.br +Es werden beide WEGA-Dateien in das DCP-Unterverzeichnis mydir +kopiert. +.sp +.B dosls /dev/fd0:src +.br +Die DCP-Datei src wird wird im WEGA-Verzeichnisformat ausgegeben. +.sp +.B dosls B: +.br +Es wird der Inhalt des Stammverzeichnisses der Diskette im definierten +Laufwerk B: angezeigt. +.sp +.B dosmkdir /dev/fd0:usr/docs +.br +Das DCP-Verzeichnis usr/docs im angegebenen Diskettenlaufwerk wird +erzeugt. +.sp +.B dosrm /dev/fd0:docs/memo.txt +.br +Loeschen einer DCP-Disketten-Datei. +.sp +.B dosrmdir /dev/fd0:usr/docs +.br +Es wird das DCP-Verzeichnis usr/docs geloescht. + +.SH DATEIEN +$HOME/.dos Laufwerkszuordnung +.br +/etc/default/dos Laufwerkszuordnung, falls .dos nicht existiert +.br +/dev/fd* Floppy-Disk-Geraete + +.SH EINSCHRAENKUNGEN +Es ist nicht moeglich, auf DCP-Verzeichnisse mit wildcard Spezifikation +Bezug zu nehmen. diff --git a/WEGA/src/cmd/doscopy/dos.h b/WEGA/src/cmd/doscopy/dos.h new file mode 100644 index 0000000..afd5c81 --- /dev/null +++ b/WEGA/src/cmd/doscopy/dos.h @@ -0,0 +1,74 @@ +/************************************************************************** +*************************************************************************** + + W E G A - Quelle (C) TU KMSt / ZFT/KEAW Abt. WAE - 1988 + Header-Datei: dos.h + + Bearbeiter : P. Hoge + Datum : 21.11.89 + Version : 1.3 + +*************************************************************************** +**************************************************************************/ + +/* Umwandlung der Clusternummer in log. Sektoradresse + * Offset zu Datenbereichsbeginn +*/ +#define DOSADR(x,y) (((long)x-2)*y) + + +/* DCP-Disk Vereinbarungen */ + +/* Absolutadressen und Parameter der DCP-Disk */ +struct dosdisc { + int fd; /* Filedeskriptor */ + unsigned long fat1; /* Startadresse 1. FAT */ + int fatnum; /* Anzahl der FAT's */ + unsigned long maindir; /* Startadresse Stammverzeichnis */ + int dirnum; /* Anzahl der Verzeichniseintraege */ + unsigned long data; /* Startadresse Datenbereich */ + unsigned clustsiz; /* Anzahl Byte / Cluster */ + unsigned nclust; /* Anzahl der Cluster */ + int fatlen; /* Anzahl Bit / FAT-Eintrag */ + unsigned vol; /* Anzahl Sektoren gesamt */ +}; + + +/* Dateiattribute */ +struct dostat { + unsigned char name[12]; /* Dateiname */ + char attr; + int mode; /* Dateimodus */ + int flag; /* Zugriffsart */ + struct _date { /* Datum der letzten Modifikation */ + int year; + int month; + int day; + } date; + struct _time { /* Zeit der letzten Modifikation */ + int hour; + int min; + int sec; + } time; + unsigned first; /* Startcluster-Nummer */ + long dim; /* Dateigroesse */ +}; + +#define _FILE 1102 /* Filetyp */ +#define _SDIR 1103 /* Subdirectory */ +#define _SYSDAT 1105 /* Systemdatei */ +#define _BLOCKED 1106 /* verborgene Datei */ + +#define READ_ONLY 0x01 +#define HIDDEN_FILE 0x02 +#define SYSTEM_FILE 0x04 +#define VOLUME_LABEL 0x08 +#define SUBDIR 0x10 +#define ARCHIVE 0x20 + +#define RO 01 /* nur Lesen */ +#define RW 02 /* Lesen und Schreiben */ + +#define LMAX 50 /* Laenge Pfad-Name */ + +long lseek(); diff --git a/WEGA/src/cmd/doscopy/mk b/WEGA/src/cmd/doscopy/mk new file mode 100755 index 0000000..08fed84 --- /dev/null +++ b/WEGA/src/cmd/doscopy/mk @@ -0,0 +1 @@ +make doscat doscp dosrm dosdir dosls dosmkdir dosrmdir dosformat