R.F.I. Ralf Fitzner Infotronik                   Frankfurt, d. 26.03.90
Limburger Str. 14
6240 Knigstein               

Mailbox : 06174/5355 (300-1200-2400/8/N/1)  User# 1111 
FAX     : 06174/3834

So... Nun hab ich einige Wochen gebastelt, und hier ist das Ergebnis :

HDInfo , damit die bersicht nicht verloren geht...

Das Programm ist natrlich in GfA-Basic geschrieben. (Was sonst...) 

Zum  Glck  hatte ich nun endlich Version 3.5, bei der der Compiler richtig 
funktioniert. Bei der Version 3.04 gab es Probleme mit der Systemvariablen GB.

Besonders stolz bin ich darauf, das mein Programm nicht nur in langweiligem 
schwarz/wei luft, sondern auch mit mehreren Farben in mittlerer Auflsung. 

Warum ich nicht den Original Basic-Source-Code 'rausgebe ?!?

Nun, dies ist nicht mein erstes PD-Programm. Und ich mute schon mehrmals 
feststellen, da es fr viele Leute unheimlich reizvoll ist, als erstes 
meinen Namen 'rauszuschmeien. Und da man mit PD-Programmen schon kein Geld 
verdienen kann,  so mchte ich doch zumindest als Belohnung fr die  Arbeit 
MEINEN Namen unten stehen haben...  

Vielleicht  kennt der eine oder andere bereits HDInfo Version 3.4. Ich frage 
mich heute noch, wie diese Version berhaupt laufen konnte...
Da steht zwar in jeder Zeitung und jedem Buch, man soll auf keinen Fall 
undokumentierte Systemvariablen benutzen. Aber wenn diese z.B. im Sybex ST-
Profibuch beschrieben werden, woher wei ich dann, da sie trotzdem nicht 
richtig sind... Na ja, diese Version 5.0 sollte jedenfalls mit allen ST's 
laufen.

Soooo... 
Das Programm an sich ist wohl nicht weiter  erklrungsbedrftig. Ich mchte 
nur darauf hinweisen,  da ich keine Gewhr bernehme,  wenn mehr als  eine 
Harddisk angeschlossen ist, oder jemand ein Fremdfabrikat benutzt. 
Dieses Programm ist getestet mit je einer SH204/5 und Megafile 20/30/44/60, 
Vortex HD20, Protar-Profile40.
(Vielen Dank an die Firmen KFC-Computer in Knigstein , STAR-Micronics-
Herr Blachnik- , Fa. Polypal -Herr Thissen-.)

Ja ja...ich wei,da interessiert keinen, aber die Leute haben mir wirklich 
geholfen.

Zunchst einmal fragt das Programm nach der Bildschirmauflsung.  Dazu wird 
eine XBIOS Funktion benutzt,  die je nach Auflsung eine 0,1 oder 2 (hohe ) 
liefert : mo=xbios(4)
Und wenn mo=0 ist, dann geht's leider nicht weiter.
Ich konnte leider nicht mehr testen, was den fr ein Wert bei einem 19" Monitor 
zurckgegeben wird.  Da empfehle ich dann die 640*400 Emulation.  Sieht richtig 
gut aus, so gro.

Dann  werden  ein paar Striche und Boxen gezeichnet,  damit die  Daten  den 
richtigen Rahmen haben...

Um  die TOS-Version zu erkennen habe ich nicht etwa einfach mit  GEMDOS(48) 
nachgesehen.  Da bekommt man nmlich fr das alte RAM-TOS (1.1) und fr das 
erste  ROM-TOS  (1.2 vom 06.02.86) die gleiche Rckmeldung.  Also  hab  ich 
einfach mal bei der Adresse $FC0018 nachgesehen.  In meinem ST-INTERN steht 
nmlich,  da  da das Erstellungsdatum sein soll. Tja und tatschlich, da 
steht das  Datum.  Aber beim STE steht da was ganz anderes.  Aber in der 
 ST-Computer 1/90  ist  ab  Seite 122 ein interessanter Bericht  ber  alle 
mglichen  TOS-Versionen. Da hab ich ein wenig berlegen mssen, und bin 
dann an die richtigen Adressen gekommen, um alles ber TOS , GEMDOS und 
VDI zu erfahren. 

Danach wird nachgesehen, ob ein Blitter im Gehuse verstaubt. Dazu wird die 
XBIOS(64) Funktion benutzt.  Tjaaaa, werden da manche sagen, diese Funktion 
gibts  ja im TOS 1.2 noch gar nicht.  Aber das interessiert  mein  Programm 
nicht  weiter.  Wenn keine Rckmeldung kommt,  dann ist eben  kein  Blitter 
drin. Klare Sache und damit hopp. (War das nicht von Kempowski ?)

Und weil ich noch ein wenig Platz hatte,  hab ich noch nachgesehen,  ob  da 
vielleicht  ein  Drucker ONLINE am Kabel hngt.  Dazu gibt's  die  Funktion 
GEMDOS(17). 
Wenn  sie Kapitalist sein sollten,  und sich einen  LASERdrucker  geleistet 
haben,  dann  kann  ich Ihnen nicht helfen.  Ich prfe  nur  die  parallele 
Schnittstelle, und bin fr DMA nicht zustndig.

Ich hab dann auch noch kurz nachgesehen,  was sie denn so fr  RAM-Speicher 
eingebaut  haben.  Auch  wenn sie 2.5KByte haben sollten stellt  das  keine 
Schwierigkeiten  fr's  Programm dar.  Da gibts nmlich schon  wieder  eine 
Systemvariable  an der Adresse $FF801,  und da steht drin,  wie die  beiden 
RAM-Bnke  bestckt sind.  brigens wre es auch mglich einen ST mit  256k 
oder  mit 640KByte zu bestcken,  aber was mglich ist mu nicht  unbedingt 
gut sein...
Ach  ja, beim STE steht das mit dem Speicher dann auch wieder ganz  wo  
anders. Aber  im  TOS gibts noch mehr Variablen.  Machen Sie doch  mal  
PEEK(1060)  und PEEK(1061). Da ist dann der Speicher nochmal beschrieben.
Wenn sie sich wundern sollten,  wo denn die ganzen Bytes hin sind,  die  da 
als  belegt gekennzeichnet sind,  dann geht es Ihnen nicht anders als  mir. 
Also 32KByte gehren schonmal zum Bildschirmspeicher.  Na und dann gibts da 
eine  Menge  Systemvariablen.  Aber ich bin auch nicht  auf  ber  100KByte 
gekommen. Nun ja, wird schon richtig sein...

Hmmm....
Also wer tatschlich bis hierhin gelesen hat,  den interessiert  vielleicht 
auch noch, wie die einzelnen Daten erzeugt werden.

Wenn Sie nun gar keine Harddisk haben, dann ist hier eigentlich schon 
Schlu.  Aber Sie knnen ja trotzdem mal HARDDISK-INFO anklicken... 

Dann wird nachgesehen, was da so an Laufwerken vorhanden ist. Das mache ich 
mit der BIOS(10) Funktion.  Diese liefert als Rckmeldung einen  Wert,  der 
noch Bitweise kontrolliert werden mu.  Bit 0 = Laufwerk A ,  Bit 1 = LW  B 
usw.  Dabei  habe ich auch daran gedacht,  das man ja vielleicht auch  eine 
RAM-Disk installiert hat z.B.  als C,D oder G,H.  Na jedenfalls kommt  mein 
Programm damit klar.

So,  jetzt  gehts  dann endlich los.  Wie sagt mir die  Harddisk,  wie  sie 
formatiert  und  partitioniert wurde...  Das habe ich mich  auch  2  Wochen 
gefragt.  Bis  ich in einem uralten Assembler-Buch von Markt&Technik  einen 
Hinweis  auf einen BIOS-PARAMETER-BLOCK fand.  Da legt  das  Betriebssystem 
doch tatschlich eine Liste an,  wo drin steht, was das Laufwerk so bietet. 
Sektorgre,Cluster Anzahl der Daten-Cluster usw.  Und mit ein bichen PEEK 
und BIOS(7,LW) kommt man an die Werte.  Blo...  irgentwie fehlen da  immer 
2048 Byte.  Wo die hingehren hab ich bisher noch nicht rausbekommen,  aber 
es mten eigentlich zur Datenspeicherung 2 Cluster mehr da sein. Na ja, da 
mu  man mit Leben.  Leider steht in diesem BPB nicht,  was da so  fr  die 
FAT's  und  das  Directory  'draufgeht.  Also mute  es  noch  eine  andere 
Mglichkeit geben,  um an die wirklich formatierten Sektoren zu kommen.  Da 
bleibt  dann  nichts  anderes mehr brig,  als  den  Bootsektor  von  jeder 
Partition auszulesen und zu zerstckeln.  Da darf man dann nicht mit  INTEL 
und MOTOROLA Schreibweise durcheinanderkommen. Zum Auslesen des Bootsektors 
nimmt man den BIOS4 Befehl. Im GfA-Basic 3.0 Handbuch steht auf Seite 12-16 
wie   man   den  Befehl  anwendet.   Aber  woher  bekommt  man   da   einen 
Speicherbereich,  in den die Daten geschrieben werden ?  Zu 64er Zeiten war 
das eigentlich kein Problem.  Irgentwo waren da immer ein paar Bytes brig. 
Aber  man  kann  doch  nicht  einfach  sagen  :   So,   nun  nimm  mal  den 
Speicherbereich da irgentwo ab $5000 oder was wei ich wo.  Und schlielich 
programmieren  wir nicht in Assembler,  wo das Programm eine Anweisung  zum 
Speicherreservieren  kennt.  Ums kurz zu machen :  In  meiner  Verzweiflung 
einen freien Speicherbereich zu finden,  bin ich beim Durchblttern des 3.0 
Handbuchs  auf  die  Seite 2-41 gekommen.  Da  steht  eine  Variable  HIMEM 
erklrt,  die  angibt,  ab welcher Adresse der Speicher nach  dem  Programm 
wieder frei ist.  Na also,  da war ja endlich was,  wo man mit BIOS4  seine 
Daten ablegen konnte,  und mit PEEK wieder abfragen.  So kommt man also  an 
die tatschlich formatierten Partitiongren. Die Gren fr die FAT's sind 
nicht   unbedingt  interessant.   Das  Directory  belegt  bei   Festplatten 
256*32Byte  = 16 Sektoren (Bei Floppys sind dies 112*32Byte = 7  Sektoren). 
D.H.  das man auf eine Diskette nur max.112 Files speichern kann,  und  auf 
einer   Harddisk-Parti-
tion  je  256. Beim TOS 1.4  ist   das  ein   bischen    
anders. Da knnen es schon mal mehr als 256 Files pro Partition sein.

Aber das ist eigentlich uninteressant.  Auf jeden Fall mu man wissen,  das 
eine Datei, auch wenn sie nur 1 Byte lang ist, auf der Harddisk mindestens 
1024  Byte  belegt !  Da wundert man sich dann nicht mehr,  wenn  bei  viel 
Kleinkram   tatschlich  hunderte  von  KBytes  verschwinden...   Mit   dem 
"normalen" ZEIGE INFO wird die FAT durchsucht,  und aus den darin stehenden 
Programmlngen  eine  Gesamtbelegungszahl gebildet.  Die ist  aber  relativ 
uninteressant,  denn  wohl  jeder wird schon mal gemerkt  haben,  das  beim 
Kopieren von Dateien,  die eigentlich passen mten, pltzlich "Disk hat zu 
wenig  Speicher" erscheint.  Und daher zeigt das Programm  die  tatschlich 
belegten Bytes an. 

Ich  mu leider eingestehen, da ich noch Probleme habe, wenn die Partition 
nicht unter TOS formatiert wurde. (z.B. DOS unter Supercharger.) Aber das 
kommt dann  auch noch irgentwann.  Auerdem erkennt das Programm  die 
angeschlossene Platte  nicht,  wenn  mehr  als ein Laufwerk  eigesetzt ist.
z.B.  SH204  mit zustzlichem 20MB Laufwerk und Eickmann-Treiber.

Leider dauert es bei den "alten" Tos-Versionen, einschlielich Blitter-Tos, 
furchtbar lange bis die Werte eingelesen sind. Erst das "neue" Tos 1.4, das 
nun  endlich  erhltlich  ist macht da richtig dampf und luft bis zu 10mal 
schneller.

Tja,  zur  grafischen  Ausgabe gibts nicht viel zu sagen. Jede vorhandene 
Partition  wird  als  Balkengrafik angezeigt. Ganz links in dem Kreis ist 
angezeigt, wie die einzelnen Partitions auf der Platte verteilt sind. ganz 
rechts setzt sich aus den einzelnen Blcken eine Gesamtanzeige fr belegte 
KBytes zusammen. 

Sie lesen ja immer noch ?!? Haben Sie denn gar nichts besseres zu tun ?!?

Hmmm, und dann noch die Sache mit der Zugriffszeit. Also, sie sollten nicht 
annehmen,  das  diese angezeigte Zahl nun wirklich die  wahre  Zugriffszeit 
ist. Sie mssen das mal so sehen. Da gibt es im Atari einen Timer, der eine 
"Auflsung" von 200msec.  hat. Und dann gibt es die Harddisk, die schneller 
als 100msec.  ist.  Und wie wollen Sie da eine Zugriffszeit im Bereich  von 
z.B.  50msec.  messen ?  Also ich hab einfach 100 mal einen Sector von  der 
Platte  in den Speicher eingelesen,  und die Gesamtzeit durch 100  geteilt. 
Und  so  kommt  dann zum Schlu eine  Zugriffszeit  heraus.  Der  jeweilige 
Sector,  der gelesen wird, wird zufllig ermittelt, aus der Gesamtzahl, der 
auf der Partition vorhandenen Sektoren.  Daraus ergibt sich, das je kleiner 
die Partition ist,  umso krzer auch die Zugriffszeit ist.  Nehmen sie  den 
Wert einfach als Anhaltspunkt.

Ich verspreche Ihnen hoch und heilig, da ich mit keinem Bit auf die Platte 
schreibe. Der Test ist ein reiner Lese-Test.

Zum zhlen der Ordner und Dateien: Das geht erst ab TOS 1.4, weil ich nicht 
berprfen wollte, ob jemand mit FOLDERx00 den Fehler im alten TOS umgeht.

Wenn bei Ihnen ganz unten rechts 00.01 Uhr stehen sollte ,  dann sollten sie 
sich  berlegen,  ob Sie sich nicht eine Uhr einbauen  lassen ,  damit  mal 
etwas Abwechslung in's Inhaltsverzeichnis kommt,  oder bevorzugen sie  etwa 
die Darstellung als Bild ? Na ja, soll's auch geben...
 
Haben sie wirklich bis hierhin gelesen ???     Respekt,respekt.

Das Programm begann mal als 10 Zeiler.  Ich hatte gerade seit 2 Tagen meine 
gebrauchte SH205 und wollte ein kleines Accesory schreiben,  das den freien 
Speicherplatz der Platte ausgibt,  aber dann hat's mich mal wieder gepackt, 
und dabei ist dieses Programm entstanden. Der Source-Code (bldes Wort) hat 
nach  einer Woche etwa 11KByte erreicht,  und nach ein wenig berlegen  kam 
ich  dann unter 7.5KByte. Man soll gar nicht glauben,  was beim Mergen  und 
Verschieben fr ein Bldsinn an den unmglichsten Stellen stehen bleibt. 
Na,  und  dann  kam der Tag,  an dem ich aus  versehen  das  Quell-Programm 
berschrieben  hatte,  und nur noch die Compilierte Version brig  war.  Da 
mute ich dann nochmal komplett neu anfangen.  Dabei ist  dann  die Version 
3.4 herausgekommen. 

Tja und dann kamen nicht etwa Spenden auf mein Konto,weil den Leuten dieses 
Programm so gut gefallen hat...nein...beschwert haben sich die meisten, da
ich Trottel auf die Idee komme, man wrde nur 4 Partitions benutzen. Ich 
htte doch auf  den  ganzen Grafik-Schnick-Schnack verszichten  sollen, und
lieber  mehr Partitions  zulassen sollen.  Na gut,  hier ist dann also 
Version  5.0.  Und  8 angezeigte  Partitions mssen reichen ! Dann schreibt
euch doch selbst so  ein Programm, wenn es euch nicht gefllt... rgert Ihr 
euch doch mit eurer Freundin rum, wenn es abends wieder spt wird, vor  dem
Computer... Ich  bin  jedenfalls stolz darauf,  da ich dieses Programm 
zusammen  bekommen habe. Jawoll. Und mir gefllt es. 

OK,  ich wei,  sie haben keine Lust mehr meinen Bldsinn weiter zu  lesen. 
Kann ich verstehen. Htte ich auch nicht gemacht.

Ich mchte noch kurz darauf hinweisen,  wo man sich die ntigen  Grundlagen 
fr ein solches Programm verschafft : 

ATARI ST Profibuch      (SYBEX 1988)
ATARI ST Intern         (Data Becker)
ATARI ST Assembler-Buch (Markt und Technik)
GfA Handbuch TOS & GEM  (GfA-Systemtechnik)
GfA BASIC 3.0 Handbuch  (GfA-Systemtechnik)
ST-Computer,ST-Magazin  (Diverse)
Asterix auf Korsika     (EHAPA-Verlag)

Ja ja, Scheibenkleister habe ich inzwischen auch gelesen. Aber gekauft habe 
ich es mir nicht... 

Fr die musikalische Untesttzung danke ich den PUHDYS aus Ost-Berlin.

Das mit den 20,- fr PD-Software mu nun wirklich nicht sein. Ich freu mich 
schon, wenn Sie das Program nicht gleich wieder lschen...

MfG Fitzner

Aaaach....Haaaalt....Hab ich doch nochwas vergessen :

Ich hab mich doch inzwischen selbstndig gemacht.  Bei  mir  gibts  z.B. 
Lfterschalter, damit der Festplatten oder MEGA-Lfter nur dann luft, wenn 
es  wirklich zu warm wird.  Oder auch SCART-Umschalter,  die wirklich  alle 
Pin's umschalten. Oder BTX-Decoder, weil Mailboxen auf die Dauer langweilig 
sind, oder alle Ersatzteile von ATARI,Tandon,Star,NEC,Schneider usw.
Neugierig ? Na dann wrd ich einfach mal weitere Info's anfordern. Oder  im 
68000er  ST-Magazin oder der ST-Computer 9/89 den Bericht im  NEWS-Teil
lesen, oder die Mini-Anzeige im ST-Magazin 5/90.

Bis dann...



