Unterschiede PDRIVE in NEWDOS zu PD in G-DOS

  • Aktuell habe ich ja einen Genie Computer GIIIs mit G-DOS am laufen und möchte auch Daten von anderen Disketten laden.
    Diese sind aber auf anderen kompatiblen Systemen mit anderer Laufwerksgeometrie ( 40Spur) beschrieben worden.


    Unter NEWDOS gibt es zur Laufwerkskonfiguration das Programm PDRIVE, das Äquivalent unter G-DOS ist PD


    G-DOS ist ein eingedeutschtes und erweitertes NEWDOS/80 V2.0 weshalb zwar vieles gleich ist aber andere Bezeichnungen hat. :(
    So auch bei PDRIVE und PD.



    Code
    Beispiel:
    
    
    NEWDOS80:  TI=A,TD=E,TC=40,SPT=18,TSR=0,GPL=2,DDSL=17,DDGA=4
    ---------------------++----+++----+++---+++---++++----++++--    
    G-DOS:     TI=A,TD=E,SP=40,SEK=18,SWZ=0,EIB=2,SBIV=17,AEIV=4
    
    
    Was auffällt sind die unterschiedlichen Kürzel bei "++" – diese sind leider durch das konsequente "Eindeutschen" entstanden und 
    dienen ausgezeichnet dazu den Anwender zu verwirren.


    Diese Unterschiede habe ich in einem kleinen Text aufgearbeitet der hier zu finden ist.


    http://oldcomputers.dyndns.org…tion/My_PDrive_Lesson.pdf

    Mit freundlichen Grüßen


    fritz

  • Danke Fritz für diese Gegenüberstellung!


    Wenn Du nichts dagegen hast, dann schreibe ich hier auch mal etwas grundlegendes zum Thema PDRIVE rein. Diese doch etwas komplexe NEWDOS/80-Funktion ist wohl in manchen Teilen für viele Anwender so etwas wie ein Hexenwerk ...


    Grüße,
    Rainer

  • NEWDOS/80 ist ein vielfältig konfigurierbares Betriebssystem. Mit den angebotenen Möglichkeiten steigt aber auch die Komplexität und damit die Gefahr von suboptimalen oder fehlerhaften Konfigurationen. Dies betrifft vor allem die PDRIVE-Parameter, mit denen die Floppy-Disk-Laufwerke und die Disketten konfiguriert werden können.


    Beim NEWDOS/80 ist es durch die PDRIVE-Parameter möglich,
    - die Anzahl der Spuren
    - einseitige oder zweiseitige Disketten
    - single Density, double Density
    - 5" oder 8" Laufwerke
    - Lage und Größe des Inhaltsverzeichnisses auf der Diskette
    und andere Vorgaben zu bestimmen.


    Dabei ist es möglich, daß jedes angeschlossene Diskettenlaufwerk andere Parameter enthalten kann. 10 verschiedene Parametersätze werden im NEWDOS vorgehalten und bei Bedarf kann zwischen ihnen umgeschaltet werden.


    Viele Benutzer machen verständlicherweise einen großen Bogen um die PDRIVE-Parameter, weil sie nicht alle auf den ersten Blick leicht verständlich sind. In diesem Thema hier wird auf die Besonderheiten des PDRIVE eingegangen und versucht, die größten Unklarheiten auszuräumen.


    Den Anfang macht hier zur Einführung ein Auszug aus dem NEWDOS/80 v2.0 Manual, welches 1982 in der deutschen Übersetzung erschienen ist.
    Fritz hat das Manual freundlicherweise incl. OCR in einem PDF zur Verfügung gestellt und es ist online abrufbar.

  • NEWDOS/80 v2.0 Handbuch
    =======================



    2.37 PDRIVE
    --------------


    Standardwerte für die Floppy-Laufwerke eingeben


    PDRIVE,<passwort1:>dn1,<dn2(=dn3)><,TI=typ1><,TD=typ2><,TC=Tc1><,SPT=sc1><,TSR=rc1><,GPL=gc2><,DDSL=ln1><,DDGA=gc1><,A>


    PDRIVE kann nicht im MINI-DOS aufgerufen werden.


    NEWDOS/80 hat eine begrenzte Anzahl von Möglichkeiten, verschiedene 5-Zoll Floppies und 8-Zoll Floppies anzusprechen. Über das Kommando PDRIVE können für jede Floppy die physikalischen Eigenschaften angegeben werden.


    Jedes PDRIVE-Komnando listet die Angaben für max. 10 Laufwerke, obwohl die Anzahl der angeschlossenen Laufwerke und die beim SYSTEM-Parameter AL angegebene Anzahl der Laufwerke auf keinen Fall 4 überschreiten darf. Die Laufwerke innerhalb des Bereichs von AL werden beim Kommando PDRIVE mit einem Stern nach der Laufwerksnummer angezeigt. Die Angaben über die 10 Laufwerke werden vom System von der Diskette in Laufwerk 0 übernommen. Aus Gründen der Zeitersparnis werden die Laufwerksangaben von den unter 'AL' angegebenen Laufwerken von Diskette 0 im Arbeitsspeicher (RAM) gehalten und bei jedem Reset neu in den Speicher geholt. Ist jedoch eine der 10 möglichen Angaben falsch, kann auch die Übernahme der 4 gültigen Angaben nicht erfolgen und das System bleibt beim nächsten Reset hängen. Die Tabelle der Laufwerksangaben wird ebenfalls beim PDRIVE-Kommando mit dem Parameter ',A' in den Arbeitsspeicher übernommen.


    Die Angabe 'dn1' bezieht sich auf das Floppy-Laufwerk, in dem sich die Floppy mit dem Betriebssystem befindet. Im 3.Sektor von BOOT/SYS dieser Floppy werden die Angaben über die einzelnen Laufwerke abgespeichert und mit dem Kommando PDRIVE verändert.


    Wird beispielsweise das Kommando 'PDRIVE,1,4,TC=80' eingegeben, so erhält die Diskette in Laufwerk 1 die Kontrollinformation für Laufwerk 5 mit 80 Spuren. Da 'dn' einen Wert von 0 bis 9 annehmen kann, bedeutet 4 das Laufwerk 5. Die Laufwerksparameter der anderen Laufwerke werden nicht beeinflusst.


    Wenn die Passwörter aktiv sind, muss das Haupt-Passwort für die Diskette eingegeben werden, auf der die Parameter verändert werden (dn1), andernfalls kann das Passwort weggelassen werden.


    Es werden nur die Parameter eines Laufwerks verändert, die auch mit dem Kommando angegeben werden. Da das System die eingegebenen Parameter nicht überprüft (*1), muss bei diesem Kommando besonders auf die Richtigkeit der Eingaben geachtet werden.


    Mit dem Kommando PDRIVE,dn1 werden die 10 Laufwerksparameter gelistet, die auf der Diskette in Laufwerk 'dn1' gespeichert sind.


    TI=typ1
    Gibt die Art der Verbindung (Interface) zwischen Z80-CPU und der Floppy an. typ1 muss ein einzelner Buchstabe sein und zwar bei Modell I nur A, B, C oder E. Beim Modell III darf es nur A oder D sein. Die anderen Angaben sind optional, abhängig von der Art des Interfaces zu den Floppies. Manche Angaben dürfen nicht im Zusammenhang mit anderen Angaben weiterer Laufwerke stehen. Wird also beispielsweise für Laufwerk 1 eine bestimmte Anschaltung eingegeben, darf Laufwerk 2 nicht eine andere Anschaltungsart enthalten. Im Moment sind für das Modell I die Angaben B, C und E entweder für alle oder für kein Laufwerk anzugeben.


    A
    bedeutet, daß das Standard-Interface für Diskettenoperationen installiert ist. Beim Modell I kann dieses Interface die Optionen A und C unterstützen, beim Modell III die Optionen A, C, E und G.


    B
    (nur Modell I) Omikron 8-Zoll Floppy-Interface. Dieses Interface unterstützt die Optionen A, B, C und D auch wenn es sich um ein Omikron-Interface handelt.


    C
    (nur Modell I) PERCOM Doubler-Interface ist installiert und wird für Floppy Ein- und Ausgaben benutzt. Mit diesem Interface können die Optionen A, C, E und G benutzt werden.


    D
    (nur Modell III) bedeutet, daß der Disk-Controller von Apparat installiert ist und für Floppy Ein- und Ausgabe benutzt wird. Die Optionen A bis H können benutzt werden.


    E
    (nur Modell I) bedeutet, daß der LNW-Disk-Controller installiert ist und für Floppy Ein- und Ausgabe benutzt wird. Die Optionen A bis H können benutzt werden.


    H
    bedeutet, daß beim Wechsel von einer Diskette auf diese mit H angegebene Diskette eine Zeitverzögerung für die Kopfpositiomerung eingehalten wird. Bei 5"-Floppies für Modell I und III wird der Kopf mit dem Motorstart neu positioniert, eine Zeitverzögerung ist also nicht nötig. Sie ist nur für 8"-Floppies.


    I
    bedeutet, daß der niedrigste Sektor die Nummer 1 hat. Dies ist der Standard für Disketten von Modell III TRSDOS. Wenn I nicht angegeben ist, ist der 1.Sektor einer Spur Sektor 0. Dies ist Standard beim Modell I und beim NEWDOS/80 im Modell III.


    J
    bedeutet, daß der niedrigste Sektor die Nummer 0 hat. Dies ist der Standard für Disketten von Modell I und III im NEWDOS/80.


    K
    bedeutet, daß die Spur 0 formatiert wird (oder ist) mit einer anderen Schreibdichte als die anderen Spuren. Dadurch wird die Spur 0 für normale Disk Ein- und Ausgabe unbrauchbar. Es kann nur entweder J oder K gesetzt werden. Der Zweck für die unterschiedliche Formatierung liegt darin, daß ein System von einer derartigen Diskette geladen werden kann (Spur 0 einfache Schreibdichte bei Modell I, alle anderen Spuren doppelte Schreibdichte, bei Modell III die erste Spur doppelte Schreibdichte, alle anderen Spuren einfache). Mit dem Flag K teilt man den Befehlen FORMAT und COPY mit, die Spur 0 in umgekehrter Schreibdichte wie die anderen Spuren zu formatieren oder zu kopieren. Flag K darf nicht für Modell III-Disketten angegeben werden, außer der Benutzer möchte unbedingt die Standard-Diskette von Modell III auf Modell I ohne NEWDOS/80 v.2 laufen lassen. Wenn K dann angegeben wird, muss bei TC eine Spur weniger als eigentlich vorhanden angegeben werden.


    L
    bedeutet, daß von einer Spur zur nächsten zwei Schritt-Impulse an den Schreibkopf gegeben werden. Damit können Disketten mit 35 oder 40 Spuren auf einem Laufwerk mit 80 Spuren gelesen werden. Es kann zwar auch damit geschrieben werden, dies kann aber beim Lesen zu Problemen führen und sollte deshalb vermieden werden.


    M
    bedeutet, daß die Floppy im Standard Modell III TRSDOS beschrieben ist. Nur das DOS-Kommando COPY wird aber berücksichtigen, daß die Floppy in diesem Format beschrieben ist und sich darin von der NEWDOS/8O-Diskette unterscheidet.


    Wurde mit Änderung (Zap) #030 erweitert auf Modell I TRSDOS 2.3B.


    Die Optionen F und G sowie N bis Z werden nicht gebraucht und sind für spätere Anwendungen reserviert.

  • TD=typ2
    Gibt den Typ der Floppy an. typ2 muss ein einzelner Buchstabe nach folgendem Schema sein:


    1. A = 5" Floppy, einfache Dichte, einseitig
    2. B = 8" Floppy, einfache Dichte, einseitig
    3. C = 5" Floppy, einfache Dichte, zweiseitig
    4. D = 8" Floppy, einfache Dichte, zweiseitig
    5. E = 5" Floppy, doppelte Dichte, einseitig
    6. F = 8" Floppy, doppelte Dichte, einseitig
    7. G = 5" Floppy, doppelte Dichte, zweiseitig
    8. H = 8" Floppy, doppelte Dichte, zweiseitig


    Wenn eine CPU-Taktfrequenzerhöhung installiert ist, und diese Beschleunigung während der Ein- und Ausgabe auf die Floppy aufgehoben wird, muss darauf geachtet werden, daß die Ein-/Ausgabegeschwindigkeit nicht niedriger wird als die Geschwindigkeit der nicht umgebauten CPU.
    Die Disk Ein- und Ausgabeloops im NEWDOS/80 können keine unterschiedliche Geschwindigkeit tolerieren. Dies gilt besonders für die Optionen B, D, E und G. Mit der SYSTEM-Option 'BJ' kann die CPU jedoch mit der schnelleren Geschwindigkeit laufen, auch bei Disk Ein- und Ausgabe. Diese SYSTEM-Option wurde von Apparat jedoch noch nicht genügend ausgetestet, eine Garantie für das Funktionieren kann also nicht gegeben werden.


    Die Optionen 'TD=F' oder 'TD=H' verlangen jedoch den Umbau der CPU auf eine höhere Geschwindigkeit; sie muss bei der Ein- und Ausgabe von der Floppy mindestens doppelt so hoch sein.


    Bei Laufwerken vom Typ C, D, G und H behandelt das NEWD0S/80 beim normalen Interface (TI=A, B, C, D oder E) eine zweiseitig beschriebene Floppy als eine gesamte Floppy. Die niedrigen Sektoren einer Spur liegen auf der ersten Seite, die höheren Sektoren auf der Rückseite. Eine solche Floppy hat auch nur ein Directory. Der Pin 32 der Floppy wird für den Seitenwechsel angesteuert (Spezialkabel). Doppeltseitige Floppies mit 5" und 8" können mit dem NEWD0S/80 v.2 beim Modell I und III benutzt werden.


    Apparat hat in der Version 1 des NEWDOS/80 Floppies mit doppelter Schreibdichte nicht unterstützt. Einer der Hauptgründe war, daß Laufwerke mit doppelter Schreibdichte bei weitem nicht die Datensicherheit erreichen, wie mit einfacher Schreibdichte. Einer der Gründe hierfür war der Data-Separator. Obwohl sich das im letzten Jahr etwas gebessert hat, ist die Datensicherheit dieser Floppies noch wesentlich geringer.


    TC=tc1
    Gibt die Anzahl der Spuren für die Diskette in Drive 'dn2' an (ausschliesslich Spur 0 bei der Option 'K'). Wenn das Flag 'K' nicht gesetzt ist, gilt TC=35 für ein Laufwerk mit 35 Spuren, TC=40 für 40 Spuren. Wenn 'K' gesetzt ist, gilt TC=34 für Floppies mit 35 Spuren und TC=39 für 40 Spuren.


    SPT=sc1
    Gibt die Anzahl der Sektoren je Spur an. 'sc1' muss bei doppeltseitigen Laufwerken (TD=C, D, G oder H) doppelt so hoch sein wie bei gleichen Laufwerken, die nur einseitig sind, 'sc1' kann jeden Wert zwischen 1 und der maximalen Anzahl von 256 Byte langen Sektoren einer Spur sein. Hier noch die Maximalwerte für die verschiedenen Laufwerkstypen: A=10, B=17, C=20, D=34, E=18, F=26, G=36 und H=52.


    TSR=rc1
    Gibt die Zeit der Impulse für die Kopfpositionierung an. 'rc1' kann einen Wert von 0 bis 3 haben. Er wird benutzt bei den Kontroller-Kommandos SEEK, STEP und RESTORE. Beim Standard-Kontroller des Modell I und III ergibt TSR=0 eine Wartezeit von 5ms, TSR=1 ergibt 10ms, mit TSR=2 werden 20ms gewartet und bei TSR=4 40ms. Beim Modell I ist TSR=3 der Standardwert. Benutzt werden kann, je nach Fabrikat des Laufwerks, auch TSR=2 oder TSR=1. Beim Modell III wird TSR=0 benutzt. Bei Problemen mit der Floppy ist TSR=3 der sicherste Wert.


    GPL=gc2
    Gibt die Anzahl der Granules pro 'Lump' an. 'gc2' darf zwischen 2 und 8 liegen. Beim TRSDOS für das Modell I und III, sowie bei den älteren NEWDOS-Versionen wurde die Unterteilung der Floppy über Granules (5 Sektoren pro Granule beim Modell I und 3 Sektoren pro Granule beim Modell III) und Spuren (2 Granules pro Spur beim Modell I, 6 Granules pro Spur beim Modell III) vorgenommen. Beim NEWDOS/80 v.2 für beide Modelle werden noch immer 5 Sektoren pro Granule erzeugt, und 2 bis 8 Granules pro 'Lump' (nicht Spur). Wenn eine Spurnummer im Directory steht (im GAT-Sektor oder im FXDE) wird diese ersetzt durch eine 'Lump'-Nummer. Auf diese Art kann ein Granule in einer Spur anfangen und in der nächsten Spur aufhören. So kann bei einer 8"-Diskette mit doppelter Schreibdichte unter Beibehaltung des bisherigen Formats des Directorys die Anzahl der Sektoren maximiert werden. Bei 'GPL=2' ist das Directory genau so aufgebaut, wie beim TRSDOS und allen anderen NEWDOS/80 Versionen. Floppies und einzelne Files können dann zwischen den einzelnen Betriebssystemen hin- und her transferiert werden. Bei 'GPL=8' kann das Directory jetzt 192*8*5=7680 Sektoren oder 1966000 Bytes behandeln.


    DDSL=ln1
    entspricht in seiner Funktion dem DDST-Parameter von NEWDOS/80 Version 1. 'ln1' gibt die 'Lump'-Nummer an, in welcher der erste Sektor des Directorys steht. Dieser Wert wird beim FORMAT im 3.Byte des BOOT-Sektors abgespeichert. In den älteren Betriebssystemen enthielt dieses 3.Byte die Spurnummer, in der das Directory anfängt. Da aber bei NEWDOS/80 v.2 nur noch der Ausdruck 'Lump' anstelle von Spur benutzt wird, steht hier eben die 'Lump’-Nummer. Um die relative Sektornummer des ersten Sektors (GAT-Sektor) des Directory zu erhalten, greift das System auf das 3.Byte des BOOT-Sektors zu und multipliziert es mit 5*GPL. DDSL=17 ergibt die gleiche Startadresse bei der einseitigen, mit einfacher Dichte beschriebenen Floppy, wie bei älteren Betriebssystemen. DDSL sollte auf den gleichen Wert gesetzt werden, wie der Parameter DDST bei der Version1.


    DDGA=gc1
    (Wert zwischen 2 und 6) gibt bei FORMAT oder COPY die Anzahl der Granules an, die für das Directory reserviert werden, falls der Parameter 'DDGA' bei diesen Kommandos nicht mit eingegeben wird. Der Standardwert von 'DDGA' ist für die Verwendung mit anderen Betriebssystemen außer NEWDOS/80 immer 2. Wenn dieser Wert ungleich 2 ist, enthält das 32.Byte im HIT-Sektor die Anzahl der zusätzlichen Sektoren für das Directory (5, 10, 15 oder 20). Jeder dieser zusätzlichen Sektoren enthält 8 zusätzliche Einträge. So kann das Directory bei den Werten DDGA=2, 3, 4, 5 oder 6 entsprechend 64, 104, 144, 184 oder 224 Einträge enthalten. Es können alle Einträge außer zwei, nämlich den beiden für BOOT/SYS und DIR/SYS benutzt werden.


    A
    gibt an, daß die Eingaben von PDRIVE (allerdings nur, wenn sie fehlerfrei sind) sofort auf dasjenige Laufwerk geladen und aktiv werden, welches im SYSTEM-Parameter 'AL' angegeben ist. Dadurch entfällt nach der Eingabe das Reset. Wenn 'A' angegeben wird, muss 'dn1' gleich 0 sein.

  • Beispiele für PDRIVE:


    1.)


    PDRIVE,dn1,dn2,TI=A,TD=A,TC=35,SPT=10,TSR=3,GPL=2,DDSL=17,DDGA=2


    Dies ist die Standardeingabe für Disketten beim Modell I, die eine Größe von 5" haben, 35 Spuren, einfache Schreibdichte und für den Austausch mit NEWDOS/80 Version 1 und anderen DOS-Versionen wie TRSDOS geeignet sind. Diese Angabe kann ebenfalls beim Modell III benutzt werden. Für Disketten mit TRSDOS 2.3B im Modell I ist TI=AM zu benutzen (siehe Änderung Zap #030).


    2.)


    PDRIVE,dn1,dn2,TI=A,TD=E,TC=40,SPT=18,TSR=3,GPL=2,DDSL=17,DDGA=2


    Dies ist die Standardeingabe für Disketten, die ein Größe von 5" haben, 40 Spuren, doppelte Schreibdichte und einseitig, also im Modell III eingesetzt werden. Beim Modell I gibt man anstelle von TI=A den Wert TI=C an. Mit dieser PDRIVE-Angabe kann man die Diskette ebenfalls im Modell I mit Laufwerken doppelter Schreibdichte verarbeiten.


    3.)


    PDRIVE,dn1,dn2,TI=AM,TD=E,TC=40,SPT=18,TSR=3,GPL=6,DDSL=17,DDGA=2


    Diese Eingabe kann beim Modell III gemacht werden (Modell I muss TI=CM oder TI=EM haben), um Disketten mit TRSDOS zu lesen oder zu schreiben. Die Diskette hat 40Spuren, doppelte Schreibdichte und ist 5" einseitig. Dies ist das einzige TRSDOS-Format, das auch mit NEWDOS/80 zu verarbeiten ist. Da diese Disketten vom Modell III im NEWDOS nicht formatiert werden können, ist die Angabe von DDSL und DDGA ohne Bedeutung. GPL=6 muss angegeben werden. Im NEWDOS/80 kann nur das COPY-Kommando mit TRSDOS-Disketten vom Modell III benutzt werden, außerdem SUPERZAP mit den Funktionen DD, DM, DTS, VDS, CDS, CDD usw., nicht aber Funktionen, die sich auf einen File (Datei) beziehen (z.B. DFS darf nicht benutzt werden).


    4.)


    PDRIVE,dn1,dn2,TI=A,TD=C,TC=80,SPT=20,TSR=2,GPL=8,DDSL=20,DDGA=6


    Diese Eingabe behandelt eine 5"-Floppy mit 80 Spuren, einfacher Schreibdichte, zweiseitig, mit einer Wartezeit von 20ms, 8 Granules pro 'Lump' und grösstmöglichem Directory in der Mitte der Floppy. Beim Modell III ist diese Eingabe nicht erlaubt, da keine Floopies mit einfacher Schreibdichte in Laufwerk 0 sein dürfen.


    5.)


    PDRIVE,dn1,dn2,TI=A,TD=G,TC=80,SPT=20,TSR=2,GPL=8,DDSL=35,DDGA=6


    Diese Eingabe behandelt eine 5"-Floppy mit 80 Spuren für Modell III (bei Modell I TI=C oder TI=E benutzen) mit doppelter Schreibdichte, zweiseitig, mit 20ms Wartezeit von Spur zu Spur, 8 Granules pro 'Lump' und größtmöglichem Directory in der Mitte der Floppy. Beim Modell I ist diese Eingabe nicht erlaubt, da keine Floppies mit doppelter Schreibdichte in Laufwerk 0 sein dürfen.


    6.)


    PDRIVE,dn1,dn2,TI=CK,TD=E,TC=39,SPT=18,TSR=3,GPL=2,DDSL=17,DDGA=2


    Diese Eingabe behandelt eine 5"-Floppy mit 40 Spuren für das Model I (beim Modell III TI=AK benutzen) mit doppelter Schreibdichte und einseitig beschrieben. Bei dieser Floppy ist die Spur 0 mit einfacher Schreibdichte formatiert, folglich sind nur 39 Spuren für den normalen Gebrauch zugelassen. Mit dieser Angabe können Disketten verarbeitet werden, die mit dem PERCOM-Doubler unter NEWDOS/80 Version 1 und TRSDOS erzeugt wurden. Ebenfalls kann diese Angabe benutzt werden, wenn eine Diskette mit doppelter Schreibdichte im Modell I auf dem Laufwerk 0 benutzt wird. Bei Benutzung des LNW-Interface beim Modell I benutzt man die Angabe TI=EK.


    7.)


    PDRIVE,dn1,dn2,TI=CK,TD=G,TC=79,SPT=36,TSR=3,GPL=8,DDSL=35,DDGA=6


    Diese Eingaben können beim Modell I gemacht werden (beim Modell III TI=AK benutzen) für eine 5"-Diskette mit 80 Spuren, doppelter Schreibdichte und zweiseitig, deren erste Spur mit einfacher Dichte beschrieben ist. Mit einem LNW-Interface setzt man beim Modell I TI=EK ein. Achtung: zweiseitige Disketten mit doppelter Schreibdichte, die unter der geänderten Version 1 von NEWDOS/80 beschrieben wurden, können nicht in der Version 2 laufen.


    8.)


    PDRIVE,dn1,dn2,TI=AL,TD=A,TC=35,SPT=10,TSR=3,GPL=2,DDSL=17,DDGA=2


    Diese Eingaben können bei 5"-Floppies gemacht werden mit 35Spuren, einseitig mit einfacher Schreibdichte um sie mit einem Laufwerk mit 80 Spuren lesen zu können. Das Laufwerk mit 80 Spuren hat nur die halbe Schrittweite von Spur zu Spur. Mit der Angabe TI=AL bewirkt man, daß von Spur zu Spur zwei Schritte zur Kopfpositionierung gemacht werden.


    9.)


    PDRIVE,dn1,dn2,TI=BH,TD=B,TC=77,SPT=17,TSR=3,GPL=3,DDSL=17,DDGA=6


    Mit dieser Eingabe für das Modell I kann man 8"-Floppies mit 77 Spuren, einseitig und mit einfacher Schreibdichte verarbeiten. Dabei ist zu beachten, daß in der NEWDOS/80 Version 1 bei solchen Disketten SPT=15 und GPL=3 vorgegeben war, so daß diese Disketten in der Version 2 nur mit diesen Parametern zu verarbeiten sind. Es sollte von derartigen Disketten ein COPY auf andere Disketten mit DDGA=17 erfolgen, da darauf 12% mehr Speicherplatz ist. Mit dem Flag TI=BH wird bewirkt, daß eine Verzögerungszeit bei der Kopfpositionierung eingehalten wird. Dies muss bei den meisten 8”-Floppies beachtet werden.


    10.)


    PDRIVE,dn1,dn2,TI=BH,TD=D,TC=77,SPT=34,TSR=3,GPL=8,DDSL=17,DDGA=6


    Mit dieser Eingabe für das Modell I kann man 8"-Floppies mit 77Spuren, zweiseitig und mit einfacher Schreibdichte verarbeiten, eine Verzögerungszeit von 25ms bei der Kopfpositionierung wird eingehalten.


    11.)


    PDRIVE,dn1,dn2=dn3


    Mit dieser Eingabe werden die Parameter von Drive 2 für Drive 3 übernommen.


    12.)


    PDRIVE,dn1,dn2=dn3,TC=40,TSR=2


    Mit dieser Eingabe werden die Parameter von Drive 2 für Drive 3 übernommen. Zusätzlich werden die Parameter 'TC und 'TSR' für Drive 3 verändert.


    13.)


    PDRIVE,0,A


    Mit dieser Eingabe werden die Parameter für 'AL' (siehe "SYSTEM" auf Seite 46) Floppies in den Speicher übernommen.


    14.)


    PDRIVE,0,dn2=dn3,A


    Mit dieser Eingabe werden die Parameter für das Laufwerk 'dn2' von den Parametern von 'dn3' überschrieben und ebenso wie beim letzten Beispiel in den Speicher übernommen und somit sofort aktiviert.


    *1
    Eine Parameterüberprüfung findet teilweise dennoch statt. Bei fehlerhaft erkannten Werten wird nach dem betreffenden Parameterblock dann '*** ERROR ***' angezeigt.


    Hiermit ist das Ende des offiziellen NEWDOS-Manuals zum Thema PDRIVE erreicht.

  • Relativ einfach verständliche PDRIVE-Parameter, wie:
    - TI (Interfaceart),
    - TD (Floppy-Disk-Typ),
    - TC (Anzahl der Spuren),
    - SPT (Sektoren je Spur),
    - TSR (Kopfpositionierungszeit)
    stelle ich erst mal zurück, da sie im NEWDOS/80 Handbuch ausreichend gut erklärt sind.


    Die etwas komplexeren PDRIVE-Parameter sind:
    - GPL (Granules pro 'Lump'),
    - DDSL (Default Directory Starting Lump),
    - DDGA (Default Directory Gran Allocation).


    Mit GPL wird die Disketten-interne Datenverwaltung, mit DDSL die Lage des Inhaltsverzeichnisses auf der Diskette und mit DDGA die Größe des Inhaltsverzeichnisses optimiert.
    Also los geht´s mit einer Einführung in die komplexeren PDRIVE-Parameter.
    Hinweise, Kommentare und Verbesserungen sind gerne willkommen!

  • GPL - Granules pro 'Lump'
    ----------------------------------


    Nun ist erstmal die Frage berechtigt, "was ist überhaupt ein Lump?" Lump heißt auf Deutsch soviel wie Klumpen oder Stück. Damit ist beim NEWDOS einfach eine Ansammlung (oder Klumpen) von Granules gemeint. Granules (Englisch für Körnchen) sind wiederum unterteilt in Sektoren.


    Schematisch kann das so aussehen (5 Sektoren pro Granule, 2 Granules pro Lump):


    <.................Lump.................>
    <.....Granule1.....><.....Granule2.....>
    <S1><S2><S3><S4><S5><S1><S2><S3><S4><S5>


    oder beispielsweise auch so (5 Sektoren pro Granule, 4 Granules pro Lump):


    <.....................................Lump.....................................>
    <.....Granule1.....><.....Granule2.....><.....Granule3.....><.....Granule4.....>
    <S1><S2><S3><S4><S5><S1><S2><S3><S4><S5><S1><S2><S3><S4><S5><S1><S2><S3><S4><S5>


    Gemäß NEWDOS/80-Manual (v.2.0) bilden immer 5 Sektoren (jeder 256 Bytes) ein Granule (=1280 Bytes), die für Nutzerdaten bereitstehen. Die Anzahl von 5 Sektoren kann im NEWDOS/80 v.2.0 nicht verändert werden, anders in der Version 2.5, wo dies -zumindest für Festplatten- möglich ist, aber das ist ein extra Thema wert.


    Ein Granule ist die kleinste durch Benutzerdaten belegbare Einheit auf der Diskette. Egal, wie wenig Nutzerdaten in einer Datei gespeichert sind, sie belegt immer mindestens ein Granule. Mit GPL kann man einstellen, wieviel Granules ein Lump bilden. Dieser Wert darf zwischen 2 und 8 liegen. Ein Lump ist ein spurübergreifender Datenblock. Der Benutzer hat auf die Lumps keinen direkten Zugriff. NEWDOS kann mit Hilfe von Lumps seine Datenverwaltung besser (d.h. mit weniger Aufwand) steuern, so die Idee der Entwickler. Ein Lump kann in einer Spur anfangen und in einer anderen Spur aufhören. Diskettenspuren spielen also bei der internen Disketten-Speicherverwaltung von NEWDOS nur eine untergeordnete Rolle. Zu den Lumps später noch mehr.


    Aber nun zurück zum GPL-Parameter, welcher auch einen Einfluss auf den Umfang der zu verwaltenden Daten im Inhaltsverzeichnis hat. Auf einer Diskette sind 192 Lumps (mit variabler Größe von GPL=2 bis GPL=8) technisch maximal möglich. Diese Limitierung ist im GAT (Gran Allocation Table) begründet, da dort genau 192 Bytes für die Lump-Verwaltung zur Verfügung stehen. Jedes dieser 192 Bytes kann ein Lump verwalten.


    Bei GPL=2 kann das Inhaltsverzeichnis 192 Lumps * 5 Sektoren/Granule * 2 Granule/Lump * 256 Bytes/Sektor = 491520 Bytes verwalten.
    Eine einseitige Double Density Diskette (80 Spuren * 18 Sektoren * 256 Bytes/Sektor) fasst 368640 Bytes (360kB). Dafür ist ein GPL=2 ausreichend.


    Dagegen hat eine doppelseitige Double Density Diskette (80 Spuren * 36 Sektoren * 256 Bytes/Sektor) = 737280 Bytes (720kB) an Kapazität.
    Ein Inhaltsverzeichnis mit dem Parameter GPL=2 kann mit dieser großen Datenmenge nicht mehr umgehen. Für eine solche Diskette muß mindestens GPL=4 eingestellt werden: 192 Lumps * 5 Sektoren/Granule * 4 Granule/Lump * 256 Bytes/Sektor = 983040 Bytes. Ein größerer GPL-Parameter würde hier auch funktionieren, bringt aber keine Vorteile.


    Hier ein Parameter-Beispiel mit GPL=4 für eine 80-Spuren Diskette (incl. einem optimierten DDSL-Wert, Directory-Start bei Spur 30):
    PDRIVE: TI=A,TD=G,TC=80,SPT=36,TSR=0,GPL=4,DDSL=54,DDGA=6

  • DDSL - Default Directory Starting Lump
    ----------------------------------------------------


    Hier nochmals näheres zu den Lumps und dem damit zusammenhängenden Parameter DDSL. So fängt das Inhaltsverzeichnis (Directory) der Diskette nicht bei einer bestimmten Spur, sondern bei einem definierten Lump an. Dies regelt der Parameter DDSL. Ein z.B. häufig benutzter DDSL-Parameter ist 17. Mit GPL=2 vorausgesetzt, bilden 10 Sektoren ein Lump (2 Granules * 5 Sektoren = 10 Sektoren pro Lump). Das Inhaltsverzeichnis startet dann bei Sektor 170 (17 Lumps * 10 Sektoren). Wenn jede Spur 18 Sektoren hat (SPT=18), dann fängt das Inhaltsverzeichnis mitten in einer Spur, nämlich bei Spur 9, Sektor 8 an (siehe auch Formeln zur Berechnung unten).


    Formeln für die Berechnung von Inhaltsverzeichnis-Startspur/Startsektor:


    DDSL * GPL * 5Sek = Startsektor-Summe des Inhaltsverzeichnisses (SSdI)
    SSdI div SPT = Startspur des Inhaltsverzeichnisses (SspI)
    (SsdI mod SPT) * SPT = Startsektor des Inhaltsverzeichnisses innerhalb der Startspur des Inhaltsverzeichnisses (SsISsp)


    Berechnungsbeispiel mit den Werten von oben:
    DDSL=17
    GPL=2
    SPT=18


    DDSL * GPL * 5Sek = Startsektor-Summe des Inhaltsverzeichnisses (SSdI)
    17 * 2 * 5Sek = 170


    SsdI div SPT = Startspur des Inhaltsverzeichnisses (SspI)
    170 div 18 = 9


    (SsdI mod SPT) * SPT = Startsektor des Inhaltsverzeichnisses innerhalb der Startspur des Inhaltsverzeichnisses (SsISsp)
    (170 mod 18) * 18 = 8


    Ergebnis:
    SspI, SsISsp = Spur 9, Sektor 8


    Eine kleine Berechnungstabelle (Excel-xls), welche die o.g. Formeln enthält, kann bei mir per PM angefordert werden. Damit ist die Berechnung dann ganz einfach.


    Mit Hilfe der o.g. Formeln kann also der Startsektor und damit der Ort des Inhaltsverzeichnisses auf der Diskette durch den Benutzer selbst festgelegt und optimiert werden. Wofür sollte das nützlich sein?


    Das Inhaltsverzeichnis einer Diskette ist ein häufig benutzter Bereich auf der Diskette. Bei jedem Lese- und Schreibzugriff wird zuerst das Inhaltsverzeichnis über die Lage einer vorhandenen Datei abgefragt oder für eine neue Datei noch freier Platz gesucht.


    Das Inhaltsverzeichnis ist also die Verwaltungszentrale einer Diskette. Sie sollte deshalb auch zentral gelegen sein, damit der Schreib-/Lesekopf sie von jeder anderen Spur aus möglichst schnell erreichen kann. Die Entwicker von NEWDOS sind davon ausgegangen, daß eine Diskette oft nur zur Hälfte mit Dateien gefüllt ist. Der Schreib-/Lesekopf wird deshalb fast immer irgendwo in der ersten Hälfte (die ersten Spuren sind im Außenbereich) der Diskette verweilen und auf das nächste Kommando warten. Deshalb wurde als DDSL-Standardparameter oft 17 gewählt, da bei 40 Spuren und 18 Sektoren/Spur in Verbindung mit GPL=2 das Inhaltsverzeichnis in die Spur 9 fällt. Wenn man -wie die Entwickler- davon ausgeht, daß oft nur 20 Spuren mit Dateien belegt sind, liegt Spur 9 also ungefähr in der günstigen Mitte.

  • DDGA - Default Directory Gran Allocation
    ------------------------------------------------------


    Der Parameter für die Verwaltungskapazität ist DDGA. Er bestimmt die Größe des Inhaltsverzeichnisses und damit Anzahl der (noch) möglichen Einträge (Dateien) im Inhaltsverzeichnis (wird z.B. bei DIR oder FREE angezeigt) und kann Werte zwischen 2 und 6 annehmen:
    2=64 FDES
    3=104 FDES
    4=144 FDES
    5=184 FDES
    6=224 FDES
    (FDES=Free Directory Entries)


    Von diesen theoretischen FDES-Werten müssen immer noch zwei schon auf den frisch formatierten Disketten versteckt vorhandene Dateien (BOOT/SYS und DIR/SYS) abgezogen werden, so daß dann nach dem Formatieren folgende Werte (mit DIR oder FREE) angezeigt weren:
    2=62 FDES
    3=102 FDES
    4=142 FDES
    5=182 FDES
    6=222 FDES


    Eine Diskette mit 720kB Kapazität kann z.B. 45 Dateien (z.B. Programme) mit jeweils 16kB aufnehmen. Dafür sind die 62 FDES ausreichend. Wenn diese 720kB-Diskette als Datendiskette genutzt wird und viele kleine Dateien mit jeweils 4kB enthält, werden für eine gefüllte Diskette 180 Einträge benötigt. Dafür wäre dann der DDGA-Parameter 5 oder 6 geeignet. Dies muss man aber schon bei der Formatierung wissen. Eine nachträgliche Änderung dieses Parameters geht nicht ohne Neuformatierung, da das Directory neu geschrieben werden muss.


    Auch belegt ein größeres Inhaltsverzeichnis mehr Platz auf der Diskette. Zu den zwei Standard-Verwaltungs-Sektoren im Inhaltsverzeichnis (GAT und HIT zusammen 512 Bytes) im Directory kommt dann noch jeweils die Anzahl der Directory Erweiterungs-Sektoren für die FXDE (File Extended Directory Entry):


    DDGA=2 = 62 FDES = 8 Sektoren = 2048 Bytes + 512 Bytes (für GAT/HIT) = 2560 Bytes = insg. 2,50kB
    DDGA=3 = 102 FDES = 13 Sektoren = 3328 Bytes + 512 Bytes (für GAT/HIT) = 3840 Bytes = insg. 3,75kB
    DDGA=4 = 142 FDES = 18 Sektoren = 4608 Bytes + 512 Bytes (für GAT/HIT) = 5120 Bytes = insg. 5,00kB
    DDGA=5 = 182 FDES = 23 Sektoren = 5888 Bytes + 512 Bytes (für GAT/HIT) = 6400 Bytes = insg. 6,25kB
    DDGA=6 = 222 FDES = 28 Sektoren = 7168 Bytes + 512 Bytes (für GAT/HIT) = 7680 Bytes = insg. 7,50kB


    Mit jeder Vergrößerung der FDES um 5 Sektoren ist ein Granule (1280 Bytes) weniger Diskettenkapazität verfügbar. Dieser Speicherplatzbedarf ist aber in Bezug auf die Gesamtkapazität von 720kB zu verschmerzen. So kann eigentlich immer der größte sinnvolle Wert genommen werden, um auf Nummer sicher zu gehen.

  • Die etwas komplexeren PDRIVE-Parameter sind:
    - GPL (Granules pro 'Lump'),
    - DDSL (Default Directory Starting Lump),
    - DDGA (Default Directory Gran Allocation).


    Danke chip für die weiteren Erläuterungen. Mein erstes Betriebssystem war ja NEWDOS/80, ich habe mich später aber mehr mit CP/M beschäftigt.

    Mit freundlichen Grüßen


    fritz