Tip zu PIP

In der #39 stellte Lothar Kordus auf Seite 16 sein Proggy DISKCOMP.BAS vor. Respekt, Lothar, Du arbeitest ja richtig professionell, wenn Du periodisch sicherst.

Vielleicht ist meine Vorgehensweise für einige von Nutzen; wenn ich nämlich ein umfangreicheres Paket code, dann sichere ich immer meine neuen Quelldateien auf eine zweite Diskette. Um nun nicht den ganzen Krempel kopieren zu müssen, setze ich den Oldie PIP von der Systemdiskette ein.

Bei PIP [ein Akronym für Peripheral Interchange Program] handelt es sich um ein universelles Kopierprogramm, das sich vor den vergleichbaren Dienstprogrammen anderer Betriebssysteme nicht zu verstecken braucht. Was z. B. heute noch SNI bei ihren sündteuren Mainframes beim BS2000 ausliefert, ist schon eine ganz groîe Verarsche... Wer das nicht glaubt, sollte mal mit PERCON arbeiten: da müît ihr erst mal eine ganze Seite an BS2000-Kommandos eintippen, bevor dieses Dienstprogramm überhaupt anfängt...

Wenn ich also wieder ein Zwischenstadium erreicht habe, dann lege ich meine Arbeitsdiskette mit den neuen Proggies in Laufwerk B: und meine Sicherungsdiskette in Laufwerk A: ein. Von der RAM-Floppy M: aus starte ich dann PIP:

PIP A:=B:*.*[A]

Damit werden nämlich dann nur diejenigen Proggies vom Laufwerk B: nach A: kopiert, die vorher auf der B:-Diskette geändert oder neu geschrieben wurden. Wieso funzt das eigentlich?

Nun, mit der Option [A] setzt PIP bei jeder kopierten Datei das sog. Archiv-Bit, und wenn bei der Kopiererei Dateien mit bereits gesetztem Archivbit gefunden werden, dann werden diese übersprungen und nicht kopiert. Andererseits ist unser CP/M Plus so clever, und setzt dieses Archivbit zurück, sobald eine Datei verändert oder ganz neu erstellt wird.

Wer nur ein Laufwerk an seiner Joyce hängen hat, kann sich dann mit einem Umweg über die RAM-Floppy behelfen:

PIP M:[G1]=A:*.*[A]

Dann befinden sich alle neuen oder geänderten Dateien in der RAM-Floppy im Benutzerbereich 1; es wird dann ins Laufwerk A: die Sicherungsdiskette eingeworfen und erneut gePIPpt:

PIP A:=M:*.*[G1]

Wer tippfaul ist, kann sich dafür eine SUBMIT-Datei basteln oder das von mir früher veröffentlichte SYNONYM verwenden.

Übrigens, wer wissen will, wo CP/M Plus dieses Archiv-Bit versteckt, der braucht sich nur den Dateityp genauer anzusehen: da werden nämlich die höchstwertigen Bits miîbraucht, um die möglichen Attribute zu markieren:

Da der Dateityp maximal drei Stellen lang sein kann, können drei Merkmale gesetzt werden:

  ◊ 1. Zeichen: Read-Only: Datei kann nicht gelöscht oder verändert werden; bei LocoScript taucht dann der Buchstabe L hinter dem Dateinamen auf.

  ◊ 2. Zeichen: System: auf eine solche Datei kann unter CP/M auch von anderen User-Bereichen aus zugegriffen werden. Bei LocoScript sind diese Dateien versteckt.

  ◊ 3. Zeichen: Archive: Wenn also im dritten Zeichen des Dateityps das höchstwertige Bit gesetzt ist, dann wurde diese Datei mit PIP und der Option [A] kopiert. LocoScript wertet dieses Merkmal nicht aus, stört sich aber auch nicht dran.

Jetzt ist vielleicht auch klar, weshalb manchmal beim FIND$-Befehl unter Basic so komische Dateinamen auftauchen  da sind dann irgendwelche Attribute gesetzt. Wenn wir auf die so verhunzten Dateinamen die Basic-Funktion STRIP$ anwenden, dann schauen die Namen wieder normal aus.

Neben PIP gibt es noch weitere Programme, mit denen unter CP/M Plus Dateiattribute gesetzt werden können, z. B. SET.COM (von der Systemdiskette) oder SWEEP (aus der Public Domain). CP/M Plus verwendet übrigens auch die höchstwertigen Bitstellen der acht Zeichen im Dateinamen, die ersten vier Zeichen sind dem Anwender vorbehalten und frei verfügbar, die Stellen fünf bis acht sollten wir dagegen nicht verändern, weil sie intern vom BDOS verwendet werden; wir können damit CP/M Plus nur verwirren. Das könnte allenfalls ein Angriffspunkt für einen zerstörischen Virus sein...

Die ersten vier Bitstellen dagegen können dazu eingesetzt werden, um Dateien zu klassifizieren. Da wir mit vier Bits Werte von 0 bis 15 darstellen können, sind somit je Diskette und je Userbereich bis zu 16 Klassifikationen möglich. Das kann dann die Ausgangsbasis für einen intelligenten Diskettenkatalog sein und ist eventuell Stoff für einen späteren Artikel...

DangSoft


Abgedruckt in Klubzeitung Nr. 44

 

Und noch mehr Tips zu PIP:   Sammlung vieler nützlicher Hinweise !