                                Big-DOS


Rechtliches
-----------

Copyright  1995 by Rainer Seitel

Big-DOS ist Freeware, d. h. das Programm darf ohne Zahlung von Lizenzgebhren 
benutzt werden. Die Weitergabe dieser Dateien ist nur komplett und unverndert 
erlaubt; dabei ist mglichst das Original-LZH-Archiv weiterzugeben. Das 
Hinzufgen von Werbung jeglicher Art ist verboten! Das Programm darf generell 
nur kostenlos weitergegeben werden. Der Upload in gebhrenfreie Mailboxen und 
FTP-Server ist erlaubt. Die Verbreitung auf PD-Serien und CD-ROM ist nur mit 
meiner Erlaubnis und in der jeweils neuesten Version erlaubt. Wird Big-DOS 
einem anderen Programm beigelegt, so ist mir eine Vollversion dieses Programmes 
kostenfrei zu berlassen. Von allen hier oder an anderer Stelle erteilten 
Besitz-, Nutzungs- und sonstigen Rechten ausgenommen sind die Dienstnummern 
75029, 26795 und ein 3. Mitarbeiter des Karlsruher Verkehrsverbundes und der 
Stadtwerke Karlsruhe Verkehrsbetriebe, da sie, nachdem sie zweimal ohne 
Beanstandung meinen gltigen Fahrschein kontrolliert hatten - der 
Landesbeauftragten fr den Datenschutz Baden-Wrttemberg haben die Stadtwerke 
Karlsruhe Verkehrsbetriebe ausdrcklich besttigt, da ich ihren Mitarbeitern 
zuvor meinen gltigen Fahrausweis gezeigt hatte -, sich nach Aufforderung durch 
75029 willkrlich, rechtswidrig und mit Gewalt den Quelltext von Big-DOS unter 
den Nagel zu reien versuchten!

Obwohl das Dateisystem bei mir und einigen Testern problemlos luft, kann ich 
nicht dafr garantieren, da Big-DOS mit allen Plattentreibern, TOS- und 
Rechnerkombinationen luft. Die Haftung fr durch Big-DOS entstandene Schden, 
soweit sie nicht auf Vorsatz oder grober Fahrlssigkeit meinerseits beruhen, 
bernehme ich nur bis zur an mich bezahlten Nutzungsgebhr. ;-)

Vorsicht! Nach meinen Tests funktioniert Big-DOS bei MS-DOS-Medien nur 
scheinbar mit dem ICD-Treiber!

Dieses Paket enthlt folgende Dateien:
ahdi6061.bdf        2221  1995-07-02 22:22:04  Binary-Diff fr AHDI 6.061
bigdos.prg         26915  1997-01-05 16:16:22  Das Programm fr den AUTO-Ordner
bigdos-f.prg       26976  1997-01-05 16:22:46  Das Programm fr den Falcon
bigdos.txt         17262  1997-01-05 16:30:00  Dieser Text
bigdos.upl           342  1997-01-05 16:30:00  Upload-Text frs MausNet
bigdos08.tic         458  1997-01-05 16:30:00  Upload-Text frs MausNet
dateisys.txt       11130  1996-08-09 20:34:50
dosmode.tos         8550  1996-12-22 22:00:00  Erlaubte Zeichen einstellen
english.txt        11720  1997-01-05 16:30:00  Dieser Text auf englisch
xhditest.c         10415  1996-12-22 22:00:00
xhditest.prj         307  1996-12-22 22:00:00
xhditest.ttp        8475  1996-12-22 22:00:00  Plattentreiber und BPB testen


Features
--------

Big-DOS ist ein Dateisystem nach DIN EN 29293 = ISO 9293:1987. Es ersetzt das 
GEMDOS des TOS (nicht KAOS und nicht ASH-MagiC!).

 GEMDOS- / ISO-9293:1987- / MS-DOS-Dateisystem
 32 Laufwerke: A..Z1..6 oder A..Z[\]^_`
 Bis 65518 Cluster.
 1 bis 64 Sektoren pro Cluster.
 Mehr als 65535 Sektoren und damit beliebige MS-DOS-Partitionen mglich. Also 
  auch solche mit mehr als 32 MByte.
 1 oder 2 FAT.
 Die erlaubten Zeichen werden - fr jedes Laufwerk getrennt einstellbar - 
  fr GEMDOS, d-Zeichen nach ISO 9293 bzw. ISO 9660 oder MS-DOS beschrnkt. 
  Damit wei man schon vorher, ob MS-DOS oder ein beschrnktes 
  CD-Brenner-Programm alles lesen kann. Mit setter.ttp aus dem HSModem-Paket 
  oder dem setter.prg von Markus Kohm kann dies in Big-DOS gespeichert werden.
 Bei MS-DOS-Bootsektoren wird der Diskname auch dort hineingeschrieben.
 Luft mit und ohne MiNT.
 Wenn mglich, wird beim ffnen von Dateien ber XHDI der Auswurf von 
  Wechselmedien gesperrt. (HDDRIVER, hdpSTACK, HuSHI)
 Fr TOS 1.04 und 1.06 wird kein POOLFIX3.PRG, PFIX_CB.PRG oder POOLFX92.PRG 
  bentigt.
 Fr TOS 4 wird F030HFIX.PRG nicht bentigt.
 94 Standard-Handles fr Dateien statt 75. Mit WINX und ohne MiNT lassen sich 
  in CAT bis zu 31 Gruppen ffnen.
 Cookies DATE und TIME wie bei DTCOOKIE und LED-Panel.
 Die Namen der geladenen Accessories werden ausgegeben.
 Alle GEMDOS-Funktionen des TOS einschlielich Srealloc().
  Srealloc() schreibt z. Z. Informationen auf den Bildschirm.
 Fr Uralt-Programme, wie sie bei Alcyon C dabei sind, wird Cconws() von 
  CP/M-68K nach GEMDOS konvertiert.
 Programmabbruch mit Control-C ergibt wie bei KAOS und ASH-MagiC EBREAK (-68) 
  statt EINVFN (-32).
 Mxalloc() ignoriert die Speicherschutz-Bits.
 Fr Maddalt() ist Speicher unterhalb 16$ 40 0000 ST-RAM.
 Sync() schreibt alle Puffer.
 Eigene Dcntl() wie in dateisys.txt und FUTIME und KER_DOSLIMITS. Mit 
  Dcntl(FUTIME, ...) lt sich (z. B. von Backup-Programmen) auch das Datum von 
  Verzeichnissen ndern.
 Mit Fattrib() lt sich bei Disknamen ein von MS-DOS flschlich gesetztes 
  Archiv-Bit lschen und bei Verzeichnissen das Versteckt- oder System-Bit 
  ndern. Versteckte Ordner werden z. B. vom DESKTOP, Gemini oder Selectric nur 
  dann gezeigt, wenn versteckte Dateien gewnscht werden.
 Dlock() ergibt momentan bei offenen Dateien EACCDN (-36), sonst EINVFN (-32).
 Dpathconf()
 Sysconf()
 Fxattr() liefert als Inode den Startcluster oder bei leeren Dateien den 
  Startcluster des Verzeichnisses + Byte-Position im Verzeichnis * 2^11.
 Gro-/Kleinschreibung der Namen kann fr beliebige Laufwerke beibehalten 
  werden. (--> Setter oder dosmode.tos) Das eignet sich gut zum Testen eigener 
  Programme. Dpathconf(..., DP_TRUNC) kann so konfiguriert werden, da es 
  DP_AUTOTRUNC statt DP_DOSTRUNC zurckgibt. Das ist fr Gemini sinnvoll. 
  Da MiNT Dpathconf() selber bernimmt, funktioniert dies nicht mit MiNT.


Installation
------------

BIGDOS.PRG (fr den Falcon z. Z. BIGDOS-F.PRG) kommt mglichst als erstes 
Programm nach dem Boot-Selektor in den AUTO-Ordner. Auf jeden Fall vor alle 
Programme, die im GEMDOS-Trap hngen und kein XBRA benutzen. BIGDOS.PRG 
installiert sich selber am Ende der XBRA-Kette. (Das klappt mindestens mit 
MetaDOS, CHK_OFLS, NVDI, Overscan, AES-Font und HSModem.) Overscan mu nach 
NVDI und vor Big-DOS stehen! LED-Panel mu nach Big-DOS gestartet werden, damit 
die Zeit richtig angezeigt wird. Nach einem Reset sollte alles normal 
funktionieren.

Fr MS-DOS-Partitionen grer als 32 MByte wird auerdem ein Plattentreiber 
bentigt, der groe MS-DOS-Partitionen (Typ 6) erkennt und ber Rwabs() mehr 
als 65535 Sektoren ansprechen kann. Dafr kommen nur Treiber in Frage, die 
mindestens XHDI 1.20 untersttzen, da ber XHDOSLimits() die 
GEMDOS-Beschrnkungen hochgesetzt werden. Diese Funktion lt sich mit 
XHDItest.ttp testen.

Fr Ataris AHDI 6.061 liegt ein Binary Diff bei. (Bentigt Binary Patch von 
Robert Federle. Zu finden als bptch1??.* oder bdiff???.*.) Dazu sollten 
sich AHDI.PRG und BINPATCH.TTP im Big-DOS-Verzeichnis befinden und BINPATCH.TTP 
wird mit dem Parameter ahdi6061.bdf gestartet. Wer nicht mit AHDI bootet, 
kann zum Testen einfach das dabei entstandene AHDIBIGD.PRG in den AUTO-Ordner 
kopieren. Wer mit AHDI bootet, mu auf der Boot-Partition SHDRIVER.SYS 
umbenennen und dann AHDIBIGD.PRG dorthin kopieren und in SHDRIVER.SYS 
umbenennen. Wenn Big-DOS entfernt wird, mu auch der gepatchte AHDI entfernt 
werden, damit TOS keine zu groen Partitionen angeboten werden! AHDI 
funktioniert nicht mit Platten mit 2^21 oder mehr Sektoren!

Treiber, die ich getestet habe und Version ab der sie gut zusammenarbeiten:
 AHDI 6.061 mit dem Patch von mir, AHDI6061.ZIP
  Prft keine DOS-Grenzen, sperrt nicht den Auswurf von Wechselmedien.
 HDDRIVER 4.51, aktuell 6.10, suchen nach Demo-Version HDDRIV*.ZIP
  Prft DOS-Grenzen, sperrt Auswurf von Wechselmedien.
  HDDRUTIL 6.00 kann beliebig groe MS-DOS-Medien partitionieren.
 CBHD 4.50, aktuell 5.02, suchen nach CBHD???.TOS
  Prft DOS-Grenzen, sperrt nicht den Auswurf von Wechselmedien.

hdpSTACK 2 soll laut ST-Computer 7/1996 Big-DOS untersttzen.


Was tun, wenn's nicht geht
--------------------------

Big-DOS luft nicht, der Rechner strzt ab, usw.:
 Alle AUTO-Ordner-Programme und Accessories deaktivieren.
  Wenn's dann luft: Mir schreiben, welches Programm den Absturz verursacht.
  Wenn's nicht luft: Rechner? RAM? TOS-Version? Plattentreiber?
                      Dessen Version? Big-DOS-Version?

Big-DOS luft, greift aber nicht auf die Platte zu:
 Wird die Platte vom Treiber erkannt (ID und Name angezeigt)?
  Wenn nicht: Da kann ich nichts machen. Hardware testen. (Terminierung,
              Parity, nur mit SCSI-Bus ...)
 Bekommt die Platte eine Laufwerkskennung (bzw. mit Laufwerke anmelden
  auf dem Desktop ein Icon)?
  Wenn nicht: Keine Atari- oder MS-DOS-Partition.
              Zu viele Sektoren fr ACSI-Bus. (1 GByte ohne ICD-Untersttzung)
              Problem des Plattentreibers.
 Ist ein Medium im Laufwerk?
  Wenn nicht: Tja.
 Wenn sich jetzt das Icon nicht ffnen lt:
  Big-DOS testet die Partitionierungsdaten, die der Plattentreiber liefert. 
  Eventuell gibt es eine Kombination, die funktionieren wrde, aber bisher 
  ignoriert wird. Mir die mit XHDItest.ttp erstellte Protokolldatei schicken.


Sonstiges
---------

Mit DOSMODE.TOS lassen sich fr jedes Laufwerk die erlaubten Zeichen einstellen:
    GEMDOS: A..Z0..9!#$%&'()-@^_`{}~"+,;<=>[]| und groe Umlaute
    ISO:    A..Z0..9_
    MS-DOS: A..Z0..9!#$%&'()-@^_`{}~ und groe Umlaute
Mit setter.ttp aus dem HSModem-Paket oder der GEM-Version des Setter von 
Markus Kohm kann dies dauerhaft in Big-DOS gespeichert werden.

Mit XHDItest.ttp lt sich fr alle oder das bergebene DOS-Laufwerk die 
Partitionierung, unbrauchbare Werte im BPB, Name und XHDI-Version des Treibers 
und die Funktion von XHDI-DOS-Limits anzeigen:
    :-(  Funktion nicht vorhanden
    :-/  Funktion vorhanden, aber Grenzen lassen sich nicht ndern
    :-)  Funktion vorhanden und Grenzen lassen sich ndern
Mit > als letztem Argument kann die Ausgabe in xhditest.log, mit >Datei in 
eine beliebige Datei umgeleitet werden. Bei HDDRIVER auf eine Diskette 
speichern! Bei Problemen mit Platten diese Datei mitschicken.


Als Diskmonitor fr MS-DOS-Partitionen mit mehr als 65535 Sektoren empfehle ich 
den SED 5.66 von Claus Brod und Anton Stepper. Mit den Patches von mir 
(sed_566diff.zip) ist er der einzige mir bekannte Diskmonitor, der das kann.

Diskus 3.4x kommt berwiegend mit groen MS-DOS-Partitionen zurecht. Probleme 
bereiten hauptschlich falsche Fehlermeldungen.


Bekannte Probleme
-----------------

 Big-DOS, NVDI und der Treiber fr Screenblaster funktionieren nicht zusammen. 
  Eines der Programme weglassen.
 Die normale Version von Big-DOS 7 funktioniert nicht auf dem Falcon. Dafr 
  liegt bigdos-f.prg bei. Hier mu Big-DOS weiterhin das erste Programm sein, 
  welches sich im GEMDOS-Trap installiert!


Bekannte Probleme anderer Programme
-----------------------------------

 Getbpb() des TOS wertet im Bootsektor von Disketten das Feld mit den 
  reservierten Sektoren nicht aus, sondern addiert dafr 1. Nur damit niemand 
  meint, bei Big-DOS fehle ein ISO-9293-Feature. ;-)
 Nach meinen Tests funktioniert Big-DOS bei MS-DOS-Medien nur scheinbar mit 
  dem ICD-Treiber!
 CHK_OFLS bis 1.02 strzt beim Start ab.
 Ddelete() ergibt beim aktuellen Verzeichnis ECWD (-47). Die Mupfel 1A 
  ignoriert dies und ohne Big-DOS bleibt sogar das gelschte Verzeichnis das 
  aktuelle. Nur NEWDESK von TOS 2.05 bis TOS 4.04 kann seine aktuellen 
  Verzeichnisse lschen. Grrr!
 Fattrib(, , attrib) ist ein 16-Bit-Parameter! Sind undefinierte Bits gesetzt, 
  gibt's gnadenlos EACCDN (-36).
 Programme, die mit Fcreate() Dateien oder mit Dcreate() Verzeichnisse mit 
  z. B. / im Namen anlegen wollen, und die Fehlermeldung EBADRQ (-5) 
  ignorieren, strzen unter Big-DOS wahrscheinlich ab. Selber schuld!
 Programme, die die Speicherverwaltung ber undokumentierte Adressen direkt 
  manipulieren, machen bestimmt Probleme. (Bei mir luft Big-DOS als Patch fr 
  TOS 1.04, dann funktionieren auch solche Programme.) Wer dies unbedingt 
  bentigt, kann bei mir fragen.
 Mindestens mit einer alten Version von TSFM.CPX knnen ohne Warnung 
  Disketten mit zu kurzer FAT formatiert werden. Diese werden von Big-DOS 
  ignoriert.
 Bei HDDRIVER bis 4.50 werden nderungen der DOS-Limits erst wirksam, wenn der 
  Treiber einen Medienwechsel erkannt hat. Meine Empfehlung: 
  MS-DOS-Wechselmedien erst einlegen, wenn der Desktop aktiv ist oder auf 4.51 
  updaten, damit stimmt beim Partitionieren auch das Mediabyte.
 Bei CBHD 4.53 ist XHDI funktionslos.
 CBHD bis 4.57 kann nach einlegen eines neuen Mediums dieses nicht mehr ber 
  XHDI ansprechen. Deshalb klappt die Entnahmesperre nicht.

Auerdem gibt es diverse Formatierprogramme und Platten-Utilities, die das 
Dateisystem nicht richtig initialisieren. Wenn so ein Laufwerk das erste Mal 
angesprochen wird und nach jedem Medienwechsel gibt es Fehlermeldungen. Tretet 
dann die verantwortlichen Programmierer. ;-) (Dieser Test lt sich mit dem 
oben erwhnten Setter inzwischen abstellen.)

 Big-DOS: FAT-Anfang von ?: mu $F?, $FF, $FF [$FF] sein! Schreiben? [JN]
 Big-DOS: FAT start of ?: shall be $F?, $FF, $FF [$FF]! Write? [YN]

 Big-DOS: Media-Byte im Bootsektor von ?: ist $??, mu $F? sein! Schreiben? [JN]
 Big-DOS: Media byte in boot sector of ?: is $??, shall be $F?! Write? [YN]


Danksagung
----------

Ein besonderer Dank geht an Martin Drrschnabel und Norbert Fettig, die 
entscheidend zum Beginn dieses Programmes beigetragen haben.


Neue Versionen
--------------

Updates per Post gibt es nur gegen zusenden
 einer Diskette ISO Typ 301 oder 302 (90 mm, DD oder HD) mit ausreichend 
  frankiertem und adressiertem Rckumschlag oder
 5 DM fr eine Diskette ISO Typ 302 und das Rckporto oder
 aus dem Ausland fr das Rckporto 2 internationale Antwortscheine (en: reply 
  coupon, fr: coupon-rponse international) und fr eine Diskette ISO Typ 302 
  zustzlich 1 internationalen Antwortschein beilegen.

Postanschrift:
Rainer Seitel
Zaystrae 13
D-76437 Rastatt

E-Mail:
MausNet:  Rainer Seitel @ KA
Internet: Rainer_Seitel@ka.maus.de (bevorzugt, keine Mail > 16 KByte pro Tag!)
          Rainer.Seitel@stud.uni-karlsruhe.de

Bezugsadressen:
MAUS Karlsruhe, +49 721 358887, 2400-28800 bps, 08:00/03:00.
http://www.uni-karlsruhe.de/~Rainer.Seitel/bigdos.html
http://wwwrzstud.rz.uni-karlsruhe.de/~ujo7/bigdos.html (fr Links diese nehmen)

Aktuelle Version von CBHD in der MAUS SZ, +49 5341 852024, analog und ISDN X.75.


Neuerungen
----------

In Big-DOS 2 vom 1995-10-10:
 Probleme mit TT und Falcon beseitigt.

In Big-DOS 3 vom 1995-10-22:
 Partitionen mit BPB.numcl == 0 werden ignoriert.
 Kein Absturz, wenn HDDRIVER vor Big-DOS gestartet wird.
 XHDItest.ttp mit deutschem Text wenn _AKP = $??????01??, sonst englisch.

In Big-DOS 4 vom 1995-11-09:
 Mshrink() mit Alternate-RAM funktioniert.

In Big-DOS 5 vom 1995-12-03:
 Geschtzte Minix-Partitionen oder Disketten werden ignoriert.
 Laufwerksabfrage in Dpathconf() korrigiert. Mupfel ls ohne Pfad geht wieder.
 Fxattr() korrigiert.
 XHDItest.ttp kann in eine Datei umleiten und benutzt zustzlich Getbpb().
 XHDOSLimits() nur beim Start statt bei jedem Getbpb().

In Big-DOS 6 vom 1996-01-14:
 NUM_FILEHANDLE -= 28, da MetaDOS Handles ab 100 vergibt.
 Erlaubte Zeichen fr jedes Laufwerk mit Setter einstellbar.
 Fxattr("Ordner\") ist das gleiche wie Fxattr("Ordner").
 Peinlichen Fehler beseitigt, der bei Sektoren ab 2048 Byte auftreten konnte.
 Einige Diskettenformate wurden durch den FAT-Grentest ignoriert.
 XHDItest.ttp gibt an, warum Big-DOS ein Laufwerk trotz BPB ignoriert.

In Big-DOS 7 vom 1996-09-25, Falcon-Version vom 1996-12-22:
 Sektorgre bei MS-DOS-Medien mu nicht mehr 512 Bytes betragen.
 Wird erst nach Big-DOS ein Plattentreiber mit XHDI gestartet, so werden 
  einmal die DOS-Grenzen eingestellt.
 Vor jedem Gebrauch von XHDI wird der XHDI-Cookie neu gesucht.
 Entnahmesperre bei Wechselmedien wird wieder korrekt aufgehoben.
 Vom spanischen TOS 1.00 wird Pool-Erweiterung richtig bernomen.
 Big-DOS installiert sich am Ende der XBRA-Kette. (Overscan, s. Installation.)
 Statt einem OSHEADER mit Zeigern auf mifl und act_pd von Big-DOS werden die 
  Variablen des ROM-GEMDOS benutzt.
 Nach einem Medienwechsel klappt das interne Wiederholen des Zugriffs wieder.
 Gro-/Kleinschreibung der Namen kann beibehalten werden.
 Fxattr() liefert fr Wurzelverzeichnisse von DOS-Medien die Erstellungszeit.
 Fclose() strzt mit XHDI-Treibern nach Fdup() nicht mehr ab.
 XHDItest.ttp ignoriert nicht vorhandenes Laufwerk B:. 

In Big-DOS 8 vom 1997-01-05:
 Setter-Konfigurationsblock war in Version 7 defekt.

Geplant:
 XHDItest.ttp klammert XHDOSLimits() mit Dlock(). Sind Dateien offen, dann 
  werden die DOS-Grenzen nicht verstellt.
